de Avadhoot Kulkarni

Cum să scrieți și să implementați primul dvs. contract inteligent

Cum sa scrieti si sa implementati primul dvs contract inteligent

De atunci Ethereum a creat spațiul cripto cu prezența sa la mijlocul anului 2015, invenția revoluționară a programatorului canadian-rus Vitalik Buterin a dat naștere la numeroase aplicații noi descentralizate (dApps). Împreună cu nenumăratele dApp-uri construite, succesul Ethereum este atribuit în principal implementării contractelor inteligente.

Destul de interesant, invenția contractelor inteligente datează din 1996. Informaticianul Nick Szabo a elaborat termenul „contracte inteligente” și le explică după cum urmează:

„Eu numesc aceste contracte noi„ inteligente ”, deoarece sunt mult mai funcționale decât strămoșii lor neînsuflețiți pe hârtie. Nu este implicată nicio utilizare a inteligenței artificiale. Un contract inteligent este un set de promisiuni, specificate în formă digitală, inclusiv protocoale în cadrul cărora părțile îndeplinesc aceste promisiuni ”

Nick Szabo, 1996

Munca sa a inspirat mai târziu mulți alți cercetători și oameni de știință, inclusiv Vitalik, care a creat Ethereum.

Informatii de baza

Înainte de a aprofunda ghidul, este important să înțelegem două concepte importante.

Primul lucru pe care trebuie să îl înțelegem este ceea ce mașina virtuală Ethereum (EVM) este. Singurul său scop este de a acționa ca un mediu de rulare pentru contracte inteligente bazate pe Ethereum. Gândiți-vă la acesta ca la un super computer global care rulează toate contractele inteligente. După cum sugerează și numele, EVM este virtual și nu o mașină fizică. Poti citiți mai multe despre EVM aici.

Al doilea concept pe care trebuie să îl înțelegem este ce este gaz. În EVM, gazul este o unitate de măsură utilizată pentru a atribui o taxă fiecărei tranzacții cu un contract inteligent. Fiecare calcul care se întâmplă în EVM necesită gaz. Cu cât este mai complex și mai plictisitor, cu atât este nevoie de mai mult gaz pentru executarea contractului inteligent.

Fiecare tranzacție specifică prețul gazului pe care este dispus să îl plătească în eter pentru fiecare unitate de gaz, permițând pieței să decidă relația dintre prețul eterului și costul operațiunilor de calcul (măsurat în gaz). Combinația celor două, gazul total utilizat înmulțit cu prețul gazului plătit, rezultă în taxa totală plătită de o tranzacție.

Fee for transaction = Total gas used * gas price;

Citiți mai multe despre gaz aici.

Acum, că aveți cunoștințe de bază despre ceea ce este un contract inteligent și cum funcționează contractul inteligent, putem intra direct în modul în care vom face propriul nostru contract inteligent!

Configurare

Vom folosi un instrument pentru aceasta: Pragma. Este o platformă ușor de utilizat pentru crearea și implementarea contractelor inteligente. Înscrieți-vă aici și mergeți la editor:

1611222066 926 Cum sa scrieti si sa implementati primul dvs contract inteligent

Conectați-vă la Metamask. Dacă nu ați instalat încă MetaMask, poți începe de aici.

Treceți la rețeaua de testare Kovan atât în ​​Pragma, cât și în MetaMask.
Doar pentru a vă oferi o scurtă prezentare generală despre testetele, verificați Acest articol.

1611222066 330 Cum sa scrieti si sa implementati primul dvs contract inteligent

Rețeaua principală Ethereum este rețeaua oficială Ethereum. Este mai sigur și folosește Ether, care are o valoare monetară reală.

Testetele sunt rețele de jocuri Ethereum în care Etherul este de acord să nu aibă valoare monetară. Dezvoltatorii folosesc aceste locuri de joacă pentru a testa aplicații înainte de a le implementa pe mainnet pentru utilizatorii lor.

Pentru a comuta între aceste rețele, faceți clic pe numele rețelei de lângă pictograma MetaMask și selectați rețeaua. Pentru acest tutorial, vă rugăm să alegeți Kovan.

Scrierea contractului inteligent

Următorul contract va implementa cea mai simplă formă de criptomonedă. Este posibil să se genereze monede din aer, dar numai persoana care a creat contractul este capabilă să facă acest lucru (este banal să pună în aplicare o schemă de emisie diferită). În plus, oricine își poate trimite monede reciproc fără a fi nevoie să se înregistreze cu un nume de utilizator și o parolă. Tot ce aveți nevoie este o pereche de chei Ethereum.

Acest cod vă permite practic să creați și să trimiteți jetoane către alte conturi.

Să o parcurgem rând cu rând:

pragma solidity ^0.4.21;

Aceasta indică faptul că codul sursă este scris pentru versiunea Solidity 0.4.21 sau pentru orice altceva mai nouă care nu întrerupe funcționalitatea. Aceasta este pentru a vă asigura că codul nu se comportă diferit cu noile versiuni ale compilatorului.

contract yourToken

Tot ceea ce ține de token-ul tău intră în acest contract. În esență, un contract în soliditate este colectarea funcțiilor și a stării (cod și date) care se află la o adresă pe blockchain-ul Ethereum.

address public minter;

Aceasta este adresa minterului. Cuvântul cheie „public” face ca aceste variabile să fie lizibile din exterior.

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

Evenimentele permit clienților ușori (UI) să reacționeze eficient la schimbări.

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

Să stabilim adresa dvs. Ethereum ca minter al contractului. Va trebui să accesați contractul prin intermediul MetaMask-ului dvs. pentru a putea crea. Vom trece prin asta din nou după implementarea contractului.

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

Această funcție vă permite să bateți cantitatea de monede dorită. Puteți să creați câte jetoane doriți. Condiția if îi spune sistemului să înceteze executarea dacă nu sunteți minter, care este setată în funcția dvs. de token.

Dacă sunteți de fapt minter, vă permite să bateți jetoanele.

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);
}

Aceasta este o funcție care permite unei adrese să trimită jetoanele la altă adresă. Este nevoie de doi parametri: receptor și sumă. Reduce suma de la adresa expeditorului și adaugă aceeași sumă la adresa destinatarului. Evenimentul trimis, pe care l-am declarat anterior, este acum folosit pentru a efectua transferul. În prezent, am păstrat expeditorul ca msg.sender, care este minterul, deoarece nu dorim să complicăm contractul.

Asta e. Contractul dvs. este acum gata, așa că hai să-l compilăm.

Compilarea și implementarea contractului inteligent

1611222066 172 Cum sa scrieti si sa implementati primul dvs contract inteligent

Odată ce contractul a fost compilat, să-l implementăm pe blockchain. După cum sa menționat mai devreme, vom folosi testul Kovan pentru a implementa contractul.

1611222066 551 Cum sa scrieti si sa implementati primul dvs contract inteligent
1611222066 81 Cum sa scrieti si sa implementati primul dvs contract inteligent
1611222066 851 Cum sa scrieti si sa implementati primul dvs contract inteligent

Verificați dacă este implementat contractul inteligent.

Pentru contractul pe care l-am desfășurat pentru acest tutorial, aceasta este tranzacția. O puteți vedea și în Pragma în baza contractelor dvs.

1611222066 140 Cum sa scrieti si sa implementati primul dvs contract inteligent

Interacționați cu contractul inteligent din Pragma

1611222066 140 Cum sa scrieti si sa implementati primul dvs contract inteligent
1611222066 397 Cum sa scrieti si sa implementati primul dvs contract inteligent
1611222066 328 Cum sa scrieti si sa implementati primul dvs contract inteligent
Să batem 1000000 de jetoane!
1611222066 10 Cum sa scrieti si sa implementati primul dvs contract inteligent
Semnarea tranzacției
1611222066 707 Cum sa scrieti si sa implementati primul dvs contract inteligent
Ura!

Iată-l. Primul dvs. contract inteligent, implementat pe blockchain. 🙂

Au fost introduse o mulțime de concepte noi împreună cu câteva instrumente uimitor de utile. S-ar putea să fie un pic copleșitor și este în regulă! Încercați doar să vă întoarceți capul în jurul conceptelor și apoi să alergați cu el.

Ați creat contracte inteligente simple, dar interesante? Postați-le în comentarii și le voi adăuga în postare pentru referință.

Aveți întrebări? Adăugați-le în comentarii sau alăturați-vă grupului nostru de telegrame și vorbeste cu noi direct.