Kuinka kirjoittaa ja ottaa käyttöön ensimmäinen älykäs sopimus

Siitä lähtien, kun Ethereum koristi salaustilaa läsnäolollaan vuoden 2015 puolivälissä, kanadalais-venäläisen ohjelmoijan Vitalik Buterinin vallankumouksellinen keksintö on synnyttänyt monia uusia hajautettuja sovelluksia (dApps). Lukemattomien rakennettujen dApps: n ohella Ethereumin menestys johtuu pääasiassa älykkäiden sopimusten toteuttamisesta.

Mielenkiintoista on, että älykkäiden sopimusten keksiminen juontaa juurensa vuoteen 1996. Tietojenkäsittelytieteiden tutkija Nick Szabo laati termin "älykkäät sopimukset" ja selitti ne seuraavasti:

"Kutsun näitä uusia sopimuksia" älykkäiksi ", koska ne ovat paljon toimivampia kuin heidän elottomat paperipohjaiset esi-isänsä. Tekoälyn käyttöä ei ole tarkoitettu. Älykäs sopimus on joukko lupauksia, jotka on määritelty digitaalisessa muodossa, mukaan lukien protokollat, joissa osapuolet täyttävät nämä lupaukset ”- Nick Szabo, 1996

Hänen työnsä inspiroi myöhemmin monia muita tutkijoita ja tutkijoita, mukaan lukien Vitalik, joka loi Ethereumin.

Perustiedot

Ennen kuin perehdymme tarkemmin oppaaseen, on tärkeää ymmärtää kaksi tärkeää käsitettä.

Ensimmäinen asia, joka meidän on ymmärrettävä, on mitä Ethereum Virtual Machine ( EVM ) on. Sen ainoa tarkoitus on toimia ajonaikaisena ympäristönä älykkäille sopimuksille, jotka perustuvat Ethereumiin. Ajattele sitä globaalina supertietokoneena, joka hoitaa kaikki älykkäät sopimukset. Kuten nimestä voi päätellä, EVM on virtuaalinen eikä fyysinen kone. Voit lukea lisää EVM: stä täältä.

Toinen käsite, joka meidän on ymmärrettävä, on kaasu . EVM: ssä kaasu on mittayksikkö, jota käytetään määrittämään maksu jokaiselle älykkäellä sopimuksella tehtyyn tapahtumaan. Jokainen EVM: ssä tapahtuva laskenta vaatii kaasua. Mitä monimutkaisempi ja ikävämpi se on, sitä enemmän kaasua tarvitaan älykkään sopimuksen toteuttamiseen.

Jokaisessa liiketoimessa määritetään kaasun hinta, jonka se on valmis maksamaan eetterissä jokaisesta kaasuyksiköstä, jolloin markkinat voivat päättää eetterin hinnan ja laskentatoimen kustannusten välisestä suhteesta (mitattuna kaasuna). Se on kahden käytetyn kaasun yhdistelmä kerrottuna maksetulla kaasun hinnalla, mikä johtaa tapahtuman maksamaan kokonaismaksuun.

Fee for transaction = Total gas used * gas price;

Lue lisää kaasusta täältä.

Nyt kun sinulla on perustiedot siitä, mikä älykäs sopimus on ja kuinka älykäs sopimus toimii, voimme mennä suoraan siihen, miten aiomme tehdä oman älykkään sopimuksen!

Asettaa

Aiomme käyttää tähän työkalua: Pragma. Se on helppokäyttöinen alusta älykkäiden sopimusten luomiseen ja käyttöönottoon. Rekisteröidy täällä ja mene toimittajaan:

Kirjaudu sisään Metamaskiin. Jos et ole vielä asentanut MetaMaskia, voit aloittaa tästä.

Vaihda Kovan-testiverkkoon sekä Pragmassa että MetaMaskissa.

Tässä artikkelissa on vain lyhyt katsaus testnetistä.

Ethereum-mainnet on virallinen Ethereum-verkosto. Se on turvallisempi ja käyttää eetteriä, jolla on todellinen rahallinen arvo.

Testiverkot ovat leikkikentän Ethereum-verkostoja, joissa eetterillä ei ole rahallista arvoa. Kehittäjät käyttävät näitä leikkikenttiä sovellusten testaamiseen, ennen kuin ne asennetaan käyttäjille verkkopalveluun.

Voit vaihtaa näiden verkkojen välillä napsauttamalla MetaMask-kuvakkeen vieressä olevaa verkon nimeä ja valitsemalla verkon. Valitse tämä opetusohjelma valitsemalla Kovan .

Älykkään sopimuksen kirjoittaminen

Seuraava sopimus toteuttaa yksinkertaisen salauksen muodon. Kolikoita on mahdollista tuottaa tyhjästä, mutta vain sopimuksen luonut henkilö pystyy siihen (erilainen liikkeeseenlaskumalli on triviaali). Lisäksi kuka tahansa voi lähettää kolikoita toisilleen tarvitsematta rekisteröityä käyttäjänimellä ja salasanalla. Tarvitset vain Ethereum-avaimenperän.

Tämän koodin avulla voit periaatteessa lyödä ja lähettää tunnuksia muille tileille.

Mennään sen läpi rivi riviltä:

pragma solidity ^0.4.21;

Tämä tarkoittaa, että lähdekoodi on kirjoitettu Solidity-versiolle 0.4.21 tai muulle uudelle, joka ei riko toimintoja. Näin varmistetaan, että koodi ei käyttäydy eri tavalla uusien kääntäjäversioiden kanssa.

contract yourToken

Kaikki sinunTokeniin liittyvä menee tämän sopimuksen sisälle. Pohjimmiltaan vankka sopimus on kokoelma toimintoja ja tilaa (koodi ja tiedot), jotka istuvat osoitteessa Ethereum-lohkoketjussa.

address public minter;

Tämä on rahapajan osoite. Avainsana "public" tekee muuttujista luettavissa ulkopuolelta.

event Sent(address from, address to, uint amount);

Tapahtumat antavat kevyille asiakkaille mahdollisuuden reagoida muutoksiin tehokkaasti.

function yourToken() public {
minter = msg.sender;
}

Määritetään Ethereum-osoitteesi sopimuksen lyöjänä. Sinun on käytettävä sopimusta MetaMaskisi kautta, jotta voit lyödä. Me käymme tämän läpi uudestaan ​​sopimuksen käyttöönoton jälkeen.

function mint(address receiver, uint amount) public {
if(msg.sender != minter) return;
balances[receiver]+=amount;
}

Tämän toiminnon avulla voit lyödä haluamasi kolikoiden määrän. Voit lyödä niin monta rahaketta kuin haluat. Jos ehto käskee järjestelmän lopettamaan suorittamisen, jos et ole rahapelaaja, joka on asetettu yourToken-toiminnossa.

Jos olet itse asiassa rahapaja, sen avulla voit lyödä rahakkeita.

function send(address receiver, uint amount) public {
if(balances[msg.sender] < amount) return;
balances[msg.sender]-=amount;
balances[receiver]+=amount;
emit Sent(msg.sender, receiver, amount);
}

Tämä on toiminto, jonka avulla yksi osoite voi lähettää tunnukset toiseen osoitteeseen. Se vaatii kaksi parametria: vastaanotin ja määrä. Se vähentää lähettäjän osoitteesta tulevaa määrää ja lisää saman määrän vastaanottajan osoitteeseen. Aiemmin ilmoittamamme tapahtumalähetys käytetään nyt siirron suorittamiseen. Tällä hetkellä olemme pitäneet lähettäjän lähettäjänä msg.sender, joka on rahanvalmistaja, koska emme halua vaikeuttaa sopimusta.

Se siitä. Sopimuksesi on nyt valmis, joten kootaan se.

Älykkään sopimuksen laatiminen ja käyttöönotto

Kun sopimus on koottu, levitetään se blockchainiin. Kuten aiemmin mainittiin, käytämme sopimusta Kovan testnetillä.

Tarkista, onko älykäs sopimus otettu käyttöön.

Tätä opetusohjelmaa varten käyttöönotetun sopimuksen kohdalla tämä on tapahtuma. Voit nähdä sen myös sopimuksissasi Pragmassa.

Ole vuorovaikutuksessa älykkään sopimuksen kanssa Pragmassa

Siinä sinulla on se. Ensimmäinen älykäs sopimuksesi, joka on otettu käyttöön blockchainissa. :)

Otettiin käyttöön paljon uusia käsitteitä sekä pari hämmästyttävän hyödyllistä työkalua. Se voi olla hieman ylivoimainen, ja se on okei! Yritä vain päästä pääsi käsitteiden ympärille ja sitten juosta sen kanssa.

Oletko luonut yksinkertaisia ​​mutta mielenkiintoisia älykkäitä sopimuksia? Lähetä ne kommentteihin ja minä lisää ne viestiin viitteeksi.

Onko sinulla kysyttävää? Lisää heidät kommentteihin tai liity sähkeryhmäämme ja puhu meille suoraan.