Kuinka oppia vakautta ja aloittaa blockchain-ohjelmointi

Blockchain-ohjelmoinnista on tullut yksi parhaiten maksavista ja haastavimmista ohjelmistoalueista viime vuosikymmenen aikana. Vaikka estoketjut ovat kieliagostisia ja lohkoketjuinsinöörit käyttävät monia olemassa olevista kielistä, kuten C ++ ja JavaScript (JS), on joitain tehtäviä, joita nykyiset kielet eivät pystyneet toteuttamaan kätevästi, mikä avasi kysynnän uudelle, salauskohtaiset vaihtoehdot. Yksi tällainen kieli on vakavuus.

Vakaus syntyi keskeisenä osana Ethereum-ekosysteemiä. Se absorboi C ​​++: n, JavaScriptin ja Pythonin. Sillä on monia nykyaikaisia ​​piirteitä, kuten kirjastot ja perintö. Solidity on suunniteltu kirjoittamaan ohjelmia, jotka ovat vuorovaikutuksessa Ethereum-tilien kanssa, joita kutsutaan älykkäiksi sopimuksiksi. Älykkäät sopimukset toteutetaan Ethereum Virtual Machine (EVM) -sovelluksella, jolloin niitä hyödyntävät käyttäjät voivat suorittaa hajautetusti esimerkiksi joukkorahoitusta, sokkohuutokauppoja, äänestyksiä ja monia muita. Tunnetuin älykkäiden sopimusten tappaja-sovellus oli hajautettu rahoitus ICO: ssa, mikä aloitti härkä rallin salausmarkkinoilla vuonna 2017.

Olitpa kokenut kehittäjä tai vasta aloittamassa salausta, on hyvä aloittaa Solidityn oppiminen, koska älykkäistä sopimuksista on tullut tärkeä osa blockchain-ekosysteemiä. Sen lisäksi, että dApps toteuttaa ne aktiivisesti, ne integroidaan aktiivisesti infrastruktuurikerroksen lohkoketjuihin ja jopa Bitcoiniin palveluntarjoajien, kuten RSK, kautta. Tietämällä kuinka rakentaa älykkäitä sopimuksia, teet blockchain-urasi kestävämmäksi ja pystyt tuottamaan parempia ratkaisuja. Emme vedä sitä enää irti ja likaantuvat kätemme koodauksella!

Älykkään sopimuksen perusteiden ymmärtäminen

Älykäs sopimustili koostuu kolmesta osasta: saldo, tallennus ja koodi. Tasapaino edustaa kuinka paljon Ethereumilla älykäs sopimus on. Tallennustila sisältää tietoja, kuten merkkijonoja ja taulukoita, jotka ovat sovelluskohtaisia. Koodi-osassa on raaka konekoodi, joka on koottu siitä, mitä kirjoitamme Solidityyn.

Toisin kuin käyttäjätilit, älykkäät sopimustilit eivät ole vastaavien verkkojen ulkopuolisia. Toisin sanoen, voit käyttää lompakkoasi useiden verkkojen, kuten Kovan ja Ropsten, kanssa, mutta et voi tehdä sitä älykkäällä sopimuksella. Älykkäät sopimukset ovat sisäisiä.

Jokaisella älykkäällä sopimuksella on lähde, joka on tallennettu tekijän laitteeseen, ja esiintymät, jotka on tallennettu lohkoketjuun. Älykkään sopimuksen ilmentymän (tilin) ​​luomiseksi meidän on asennettava se verkkoon. Se muistuttaa suuresti luokkien ja ilmentymien suhdetta perinteisessä olio-ohjelmoinnissa (OOP) ja sitä edustavissa kielissä (JS, Ruby). Jotta saisit paremman visuaalisen kuvan, luomme luokan Pyörä ja lisätään siitä esiintymä.

Pyöräluokka & amp; ilmentymäKuva: Utoday

Kirjoitamme sopimuksen määritelmän, joka suoritetaan sitten kääntäjän kautta, joka tuottaa kaksi tiedostoa: tavukoodin ja sovelluksen binaarisen käyttöliittymän (ABI). Bytecode on mitä syötetään EVM: ään ja ABI on kerros tavukoodin ja tavallisen JavaScript-koodin välillä, joka mahdollistaa käyttöliittymän (UI) rakentamisen.

IDE: n valinta & versio Soliditystä

Ennen aloittamista tarvitsemme asianmukaisen integroidun kehitysympäristön (IDE). Toisin sanoen tarvitsemme kätevän päätelaitteen, jolla on tarvittavat työkalut koodin kirjoittamiseen. Tätä opetusohjelmaa varten valitsemme Ethereum-säätiön luoman IDE: n Remix, joka sallii kirjoittamisen, testaamisen, virheenkorjauksen, älykkäiden sopimusten käynnistämisen ja monta lisää. Voit käyttää sitä joko suoraan selaimessa tai ladata sen paikallisesti, jos haluat.

Kun käynnistät Remixin, sinulle näytetään koodieditori keskellä, tiedostonhallinta vasemmalla ja kääntäjä oikealla.

Ensimmäinen remix-ikkunaKuva: Utoday

Siellä on ennalta kirjoitettu koodi – emme tarvitse sitä. Luodaksemme ensimmäisen älykkään sopimuksen, paina terminaalin vasemmassa yläkulmassa olevaa pikku plus-kuvaketta ja anna sille nimi.

Uuden projektin luominen RemixissäKuva: Utoday

Koska meillä on tyhjä.sol-asiakirja, meidän on määritettävä kääntäjän suorittama Solidity-versio. Tämän opetusohjelman uusin versio on 0.5.7. Jos et ole varma, mitä versiota haluat käyttää, voit määrittää versionumeron.

2 tyyppiä määrittämään Solidity-versioKuva: Utoday

Lopuksi annetaan älykkäälle sopimuksellemme nimi ja sen jälkeen suluet.

Älykäs sopimusten nimeäminenKuva: Utoday

Ensimmäisen älykkään sopimuksen kirjoittaminen

Kun kangas on valmis, on aika määritellä perusrakenteet – muuttujat. Vaikka kokeneilla ohjelmistosuunnittelijoilla ei ole ongelmia tämän käsitteen ymmärtämisessä, esitämme sen lyhyesti aloittelijoille. Muuttujat ovat paikkamerkkejä tietokappaleille, joihin myöhemmin niitä ohjaava ohjelma viittaa.

Luodaan muutama muuttuja: merkkijono (symbolisarja) ja kokonaisluku (luku). Ethereumin tapauksessa muuttujat tallennetaan lohkoketjuun muiden sopimusten osien kanssa, ja siksi niitä voidaan käyttää ja päivittää mistä tahansa. Toinen vakavuusmuuttujien keskeinen piirre on, että voit tehdä niistä yksityiset kirjoittamalla muuttujien viereen “yksityiset”. Lopuksi, kokonaisluvuille vakavuudella on kaksi tyyppiä: signeerattu (voi olla positiivinen & negatiivinen) ja allekirjoittamaton (voi olla vain positiivinen). Määritä allekirjoittamaton muuttuja, meidän pitäisi vain laittaa “u” sen eteen.

Yksityinen merkkijono ja kokonaislukuKuva: Utoday

Kun meillä on nimi-muuttuja, meidän on kirjoitettava menetelmät sen asettamiseksi ja saamiseksi. Tämä näyttää JS-toiminnolta. Muista, että vakavuus kirjoitetaan staattisesti, joten meidän on määriteltävä muuttujatyypit. Nyt mikä tahansa arvo, jonka asetamme ‘setName’ -kohtaan, määrittää ‘nimi’ -merkkijonon. Getterissä käytämme ‘getName’ ja määritämme, minkä muuttujan odotamme näkevämme. Nyt on aika tehdä sama iän muuttujalle. Menetelmä on rakennettu samalla tavalla kuin getName.

Nimi / ikäasettajat ja gettersKuva: Utoday

Testataan pieni koodipalamme. Mene kääntäjän Suorita-välilehdelle ja paina ‘Ota käyttöön’ sopimuksesi nimen alla. Kääntäjän alaosassa näet nyt ”Käyttöönotetut sopimukset” -osion, jossa menetelmämme ovat käytettävissä. Jotta voisimme siirtää nimen ‘newName’ -arvoon, meidän on varmistettava, että merkkijonomme on kirjoitettu JSON-muodossa, muuten ‘getName’ ei palauta mitään. Aseta ikäsi vain ikäsi ilman lainausmerkkejä. Kuten näette, voimme nyt asettaa ja vastaanottaa ‘nimi’ ja ‘ikä’ muuttujat älykkään sopimuksen kautta.

Kääntäjä, nimi ja ikäKuva: Utoday

Wei: n ja kaasun määrittely

Yksi älykkäiden kontrastien merkittävimmistä ominaisuuksista on, että niiden ottamiseksi käyttöön Ethereum-verkkoon sinun on aloitettava tapahtuma, joka maksaa jonkin verran rahaa, joka maksetaan Etherissä. On tärkeää ymmärtää, miten palkkiot hyödynnetään järjestelmässä, koska ne vähennetään aina, kun olet tekemisissä EVM: n kanssa.

Mikä Wei on?

Oletetaan, että olet lukenut niin pitkälle opetusohjelmaamme, että olet käyttänyt Bitcoinia ainakin kerran. Luultavasti teit pienen tapahtuman, joka oli paljon alle 1 BTC. Siinä tapauksessa käytit Satoshisia, joka on jotain penniä dollariin. Wei on kuin Satoshi – se on pienin osa 1 eetteriä. Jos ajattelemme sitä ohjelmoinnin kannalta, se on verkon alin allekirjoittamaton kokonaisluku. Kun olet vuorovaikutuksessa verkon kanssa, kohtaat enimmäkseen Gweiin, joka viittaa Gigawei: iin ja on miljardi Wei.

Mikä on kaasu?

Kaasu on olennainen osa sopimusten älykästä toteuttamista. Sillä on kaksi arvoa kustakin tapahtumasta: kulutettu kaasu ja sen hinta. On syytä mainita, että tapahtuman aloittava käyttäjä määrittelee nämä arvot. Jos asetettu kaasun arvo ei kuitenkaan riitä tietyn toiminnon käsittelemiseen, kaasu kulutetaan, mutta tapahtuma epäonnistuu. Lisäksi, jos kaasun hinta asetetaan liian matalalle verkolle tiettynä ajankohtana, solmut eivät käsittele tapahtumaa, mikä tekee siitä lopulta epäonnistuneen. Tapahtumiesi optimaalisten arvojen tarkistamiseen on useita palveluja, joista yksi on ethgasstation.info. Koodaamme osan siitä itse, jotta saisimme paremman käsityksen kaasusta ja siitä, miksi se maksaa rahaa.

Palaa Remix-ikkunaasi ja aloita uusi tiedosto. Esimerkissämme kutsumme sitä nimellä “kaasu” ja luomme saman nimisen sopimuksen. Muista, että mitä enemmän tietoja tarvitsemme varastointiin lohkoketjuun, sitä enemmän tarvitsemme kaasua. Tästä huolimatta luomme tätä opetusohjelmaa varten halvan sopimuksen; mitä enemmän lisäät siihen, sitä korkeampi maksu on.

Tulee funktio, joka palauttaa kokonaisluvun, joka on kahden tulon summa. Jotta se olisi mahdollisimman kevyt, tarkennamme, että sopimuksemme ei tallenna mitään lohkoketjuun, ja sen vuoksi laitamme “puhtaan” funktion viereen.

Halpa sopimusKuva: Utoday

Nyt voit käyttää sitä kääntäjässä ja syöttää mikä tahansa kaksi numeroa saadaksesi kokonaisluvun c. Tarkistaaksesi tapahtumamme hinnan meidän tulisi katsoa koodiosan alla olevaa terminaalia. Siellä on transaktiokustannukset ja toteutuskustannukset. Ensimmäinen viittaa siihen, kuinka paljon dataa tapahtumalla on. Toinen viittaa siihen, kuinka paljon EVM: n teho vaati tapahtumasta.

Halpa sopimuksen hintaKuva: Utoday

Tämä on erittäin yksinkertainen tapahtuma, joka ei maksa verkolle melkein mitään. Kirjoittamalla mielekkäitä älykkäitä sopimuksia lisäät lisätietoja, jotka lisäävät niiden painoa ja siten transaktiopalkkioita.

Luominen & oman ERC20-tunnuksen käyttöönotto

Tunnustetaan tosiasia, että suurin osa aloittelevista blockchain-kehittäjistä on innokkaita pelaamaan isoja ja luomaan omia blockchainejaan ja rahakkeitaan. Vaikka tämä on erittäin vaikea aihe, joka houkutteli parhaita ohjelmistoinsinöörejä muilta aloilta, perus-ERC20-tunnuksen rakentaminen ei ole raketitiede.

Ensinnäkin meidän on luotava uusi tiedosto Remixiin ja ladattava ERC20-käyttöliittymä, joka on seuraava:

ERC20-standardiKuva: Utoday

TotalSupply-toiminnon avulla voimme nähdä, kuinka monta merkkiä meillä on yhteensä. ‘BalanceOf’ -toimintoa käytetään merkkien määrän hakemiseen tietyille osoitteille. Siirto-toiminnon avulla käyttäjät voivat suorittaa keskinäisiä tapahtumia. Toiminnot “transferFrom”, “korvaus” ja “hyväksy” ovat olemassa, jotta ihmiset voivat antaa joidenkin muiden käyttäjien aloittaa tapahtumia heidän puolestaan. Tapahtumat ovat kirjanpidon kirjaustyökalut.

Itse käyttöliittymän lisäksi tarvitsemme erillisen.sol-tiedoston uudelle tunnuksellemme. Täällä tuomme ERC20-käyttöliittymän ja määritämme tunnuksen symbolin, nimen ja desimaalit.

uToday-tunnusKuva: Utoday

Ennen kuin koomme sen, meidän on määriteltävä rajoitukset.

  • Aloitetaan kokonaismäärästä – se on vakio kokonaislukumuuttuja, jonka teemme yksityiseksi. Tunnisteidemme kokonaismäärä on miljoona, kirjoitamme myös funktion palauttamaan tämän arvon.

  • Toiseksi meidän on tallennettava tunnuksemme jonnekin. Tätä varten meidän on hahmoteltava kartoitus, joka palauttaa minkä tahansa määritetyn osoitteen saldon.

  • Kolmanneksi, merkkisiirroille pitäisi olla toiminto, jolla on olennaisesti vastaanottajan osoite ja siirretyn merkin määrä. Tämän toiminnon pitäisi myös pystyä tarkistamaan, onko lähettäjällä saldossaan tarpeeksi merkkejä, mikä voidaan toteuttaa yksinkertaisen if / then-käskyn avulla. Lisäksi asetamme ehtoja _value-arvolle tavalla, joka estää käyttäjiä lähettämästä tapahtumia 0-tunnuksilla, koska tämä vain valaisisi verkkoa roskapostilla.

  • Neljänneksi meidän on luotava kartoitus muille funktioille, joka on kartoitus kokonaislukuun.

  • Sitten määritämme muutaman nappulan Hyväksy- ja Hyväksyntä-toiminnoissa ja asetamme ehdot ‘siirrosta’.

  • Lopuksi, kaikki tunnukset eivät ole saatavilla markkinoilla. Jotkut rahakkeista jätetään yleensä pois ryhmille, säätiöille, neuvonantajille ja muihin tarkoituksiin. Siksi on tärkeää, että teemme selväksi, kuinka monta rahaketta liikkuu. Kun loimme rahakkeita, kiertävä tarjonta on tasapainossa.

uToday-tunnuksen rajoituksetKuva: Utoday

Koodi on valmis, joten testataan sitä. Siirry kääntäjän Suorita-välilehdelle ja ota käyttöön tunnussopimus. Huomaat, että meillä on tunnustietomme sekä tarjonta, saldot ja päästöoikeudet. Onneksi olkoon, ansaitset takana!

Jotta tunnuksemme tosiasiallisesti toimisi verkossa, meidän on otettava käyttöön älykäs sopimus (huomaa, että tämä poikkeaa sen käytöstä testaamista varten Remixissä). Tämän opetusohjelman vuoksi käytämme Remixiä ja Metamaskia, mutta on olemassa muita tapoja tehdä niin. Metamask on yksinkertainen mutta tehokas Ethereum-lompakko-ohjelma, jolla on mukava käyttöliittymä, joka integroituu laajennuksena joihinkin suosituimpiin selaimiin. Meidän tapauksessamme käytämme Operaa. Ensinnäkin, mene metamask.io ja lataa laajennus. Kun se on valmis, selaimen oikeassa yläkulmassa näkyy kettu-kuvake.

Metamaskin lataaminen & amp; kuvakkeen sijaintiKuva: Utoday

Paina kuvaketta ja jatka tarjottujen ohjeiden avulla lompakon luomiseksi. Älä unohda tallentaa salaisia ​​lauseita! Kun sinulla on lompakko, paina Metamask-kuvaketta ja vaihda verkoksi Ropsten, koska emme halua sotkea Ethereumin mainnetin kanssa.

Metamaskin vaihtaminen RopsteniksiKuva: Utoday

Viimeinen vaihe on tuottaa eetteriä (valitettavasti et voi käyttää niitä todellisiin ostoksiin, mutta ne ovat välttämättömiä testauksessa). Suuntaa hana.metamask.io ja pyydä 1 eetteri.

Nyt olet valmis. Palaa Remix-ikkunaan ja vaihda kääntäjän ympäristöksi Injected Web3. Katso myös tili-välilehteä – osoitteesi tulee olla sama kuin Metamaskilla luomasi. Valitse älykäs sopimus, jonka haluat ottaa käyttöön, joka on sinun token-sopimuksesi eikä ERC20-käyttöliittymä, ja paina vastaavaa painiketta. Metamask-ikkuna avautuu, jossa on tapahtuma, sen yksityiskohdat ja vaihtoehdot vuorovaikutukseen sen kanssa. Lähetä tapahtuma, ja tunnuksemme tulee elämään.

Metamask-ponnahdusikkunaKuva: Utoday

Voit nyt leikkiä kaikkien aiemmin määrittelemiemme toimintojen kanssa. Tarkastellaan sopimustamme toiselta puolelta varmistaaksemme, että se toimii oikein. Kuten kaikilla muillakin lohkoketjuilla, Ethereumilla on useita lohkojen tutkimusmatkailijoita, jotka palvelevat välttämätöntä tarkoitusta seurata verkossa tapahtuvaa. Meidän tapauksessamme pidämme kiinni eetteriskannaus, vaikka on olemassa kourallinen muita hyviä vaihtoehtoja. Huomaa, että jos menet vain etherscaniin, näet pääverkon. Koska meidän on nähtävä Ropsten-verkko, sinun on laitettava “ropsten.” Ennen verkkosivuston osoitetta. Kun etsit osoitettasi, näet kaksi tapahtumaa – yksi on ilmaista eetteriä, jonka sait, ja toinen on sopimuksen käyttöönotto.

Käyttäjän osoite EtherscanissaKuva: Utoday

Löydät sopimuksesi osoitteen painamalla TxHash-näppäintä ja siirtymällä Vastaanottaja-kenttään. Täältä voit tarkistaa älykkään sopimuksen tapahtumat, koodin ja tapahtumat. Tässä vaiheessa meidän on tarkistettava ja julkaistava sopimuksemme. Siirry Koodi-osioon ja napsauta Vahvista ja julkaise -linkkiä. Täällä sinun on määritettävä uudelleen tunnuksen nimi, kääntäjän versio (meidän tapauksessamme käyttämämme Solidityn uusin versio oli 0,5,7, joten pidämme kiinni asiaankuuluvasta kääntäjäversiosta). Nyt sinun on kopioitava tunnuksen älykäs sopimuskoodi yhdessä ERC20-liitäntäkoodin kanssa Remix-ikkunastasi etherscaniin ja painettava ruudun alaosassa olevaa Vahvista ja julkaise -kuvaketta..

Älykkään sopimuksen tarkistaminenKuva: Utoday

On aika palata sopimuksesi osoitteeseen. Koodi-välilehden koodi vahvistetaan nyt. Lisäksi sinulla on nyt kaksi välilehteä: ”Lue sopimus” & ”Kirjoita sopimus”. Lukuosassa voimme tarkistaa tunnuksen toimivuuden. Syötä (ei sopimuksen) osoite ”balanceOf” -kenttään nähdäksesi, kuinka monta merkkiä sinulla on; sen pitäisi näyttää miljoona, että koodasimme kovasti kokonaistarjonnaksi ja annoimme sen kiertävän lompakkoon. Tämä tarkoittaa, että tunnuksemme toimii nyt oikein testiverkossa.

Saldon vastaanottaminenKuva: Utoday

Yhteenveto

Jos aiot aloittaa uran salausteollisuudessa, sinun on ymmärrettävä, että blockchainilla on uskomaton syvyys huolimatta perusasioiden suhteellisesta yksinkertaisuudesta. Vuodesta 2017 lähtien lohkoketjut ovat kehittyneet merkittävästi, ja niiden käyttötapaukset ylittävät pelkästään rahoitustapahtumat. Ethereumin myötä ilmestyi kokonaan uusi verkkokerros, joka isännöi erilaisia ​​dApps- ja blockchain-pohjaisia ​​ratkaisuja. Tämän kehityksen työkalu oli älykäs sopimus, ja jos haluat tehdä kokemuksestasi arvokkaamman ja tulevaisuutta kestävämmän, sinun tulisi tietää, miten se toimii.

Vaikka voit koodata älykkäitä sopimuksia muilla kielillä, Solidity sopii paremmin tähän tarkoitukseen. Lisäksi, jos haluat tulla Ethereumin kehittäjäksi tai luoda ICO / ERC20-tunnuksen projektillesi, tämä on sinun valinta. Jos sinulla on jonkin verran kokemusta C ++: sta tai JavaScriptistä, Solidityn koodaamisen pitäisi olla suhteellisen helppoa. Sinun on kuitenkin ymmärrettävä joitain eroja asiakaspalvelimen ja hajautettujen ohjelmistojen käynnistämismallien välillä. Ethereum Foundationin ja joidenkin kolmansien osapuolten organisaatioiden ansiosta kehittäjille tarjotaan joukko käteviä työkaluja, kuten Remix ja Etherscan älykkäiden sopimusten koodaamiseen ja käyttöönottoon.

Toivomme, että opetusohjelma auttoi sinua kiertämään suurimman osan Solidityn käsitteistä voidaksesi aloittaa blockchain-matkan. Muista, että voit aina tarkistaa uusimmat Solidity-asiakirjat. Toivotamme sinulle onnea ja käytämme mielellämme joitain dApps-ohjelmistasi jonain päivänä!