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

Publicat: 2020-02-13

Contractele inteligente reprezintă o tendință de vârf în tehnologia Blockchain astăzi. Dacă te gândești să-ți construiești o carieră în domeniu, acest articol te va ajuta cu tot ce trebuie să știi pentru a scrie primul tău smart contract !

Învață cursuri online de software de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Cuprins

Cum să scrieți primul dvs. contract inteligent?

Era digitală de astăzi a permis două părți să încheie acorduri fără implicarea unei terțe părți. Aceste contracte digitale sunt procesate de blockchain și stocate într-o bază de date publică. Deci, tranzacțiile sunt urmăribile și ireversibile.

Dacă doriți să scrieți primul dvs. contract inteligent , resursele compilate mai jos vă vor pune pe drumul cel bun.

Citiți: 10 tendințe și predicții Blockchain pentru 2020

Definirea contractelor inteligente

Termenul „Smart Contract” a fost propus pentru prima dată de informaticianul american Nick Szabo în 1996. Este un computer sau un protocol digital care facilitează, verifică și impune executarea unui contract. Ca un calcul cu scop general, un contract inteligent se află pe un Blockchain sau un registru distribuit.

Cu alte cuvinte, contractul este încorporat în cod sub forma unui program de calculator. Iar actorii desemnați primesc permisiunea de a executa funcția programului. Regulile predefinite trebuie respectate pentru executarea cu succes a contractului inteligent.

Luați o comandă de achiziție (PO), de exemplu. Este un simplu contract între un cumpărător și un vânzător. Pentru realizarea OP trebuie îndeplinite anumite condiții. Aceste specificații includ plata cu succes de către cumpărător, livrarea mărfurilor de către furnizor conform termenilor conveniți la momentul achiziției, condițiile de returnare etc.

Deci, cumpărătorul poate plasa o comandă, iar furnizorul poate onora comanda în format digital. Într-o rețea de calcul, toate acțiunile se numesc tranzacții. Și toate tranzacțiile sunt verificate și aplicate de rețea. Odată confirmate, tranzacțiile nu pot fi anulate.

Citiți: Condiții preliminare pentru a învăța Blockchain. Nu este ceea ce crezi tu că este

Cerințe pentru stabilirea unui contract inteligent

Sunt disponibile diverse limbaje de programare pentru construirea de contracte inteligente. Alegerea limbii depinde în principal de platforma blockchain. De exemplu, Solidity, Vyper, eWASM și bytecode Ethereum sunt unele dintre cele mai populare limbaje de contracte inteligente pentru platforma blockchain Ethereum.

Mediu inteligent de dezvoltare a contractelor

Înainte de a scrie primul tău contract inteligent , amenajează terenul de joacă pentru dezvoltarea lui. Aprofundarea în lumea blockchain ar fi dificilă fără cunoștințele mediilor de dezvoltare. Puteți alege dintre următoarele alternative.

  • Remix IDE: Este un mediu de dezvoltare integrat pentru construirea și testarea contractelor inteligente. Această opțiune complet online este foarte recomandată pentru începători, deoarece nu necesită instalare. Mai mult, ridică mai puține provocări pentru prototiparea și validarea rapidă a contractelor inteligente.
  • Configurare locală: mașinile locale oferă încă o resursă pentru dezvoltarea unui contract inteligent. Instrumentele oferă o flexibilitate mai mare pentru aplicațiile de nivel enterprise. Și, deși este nevoie de timp pentru a configura acest mediu, selectarea instrumentelor pentru Aplicații distribuite sau DApps este un proces destul de simplu.

Structura unui contract inteligent

Să explorăm un contract de comandă dezvoltat folosind limbajul de programare Solidity.

Un contract inteligent Solidity urmează o structură standard, care cuprinde „date” și „funcție”. În timp ce datele mențin starea curentă a contractului inteligent, funcția aplică logica pentru tranziția acestei stări.

Contractul începe cu declarația numită „ directivă pragma ”. Cuvântul cheie „pragma” permite verificările sau caracteristicile compilatorului. Luați în considerare afirmația de mai jos:

soliditate pragma >=0,4,0 <=0,6,0

Declarația intenționează să se asigure că contractul inteligent nu se va compila cu o versiune de compilator anterioară 0.40 și după 0.60.

Urmează „ declarația de contract ”. Următoarea declarație folosește cuvântul cheie „contract” și identifică un contract gol prin numele „Comandă de achiziție”.

contract de comandă de achiziție{}

Stocarea datelor

Fiecare contract sau program de calculator are date stocate în el. Variabilele oferă o modalitate de a stoca, eticheta, prelua și manipula datele. Există două tipuri de variabile în Solidity – Valoare și Referință. Variabilele de tip valoare sunt întotdeauna copiate atunci când sunt utilizate ca argumente ale funcției, cum ar fi booleeni, numere întregi etc.

În timp ce, variabilele de tip referință stochează locația datelor. Orice modificare a unei variabile de referință afectează o altă variabilă. Prin urmare, acestea trebuie gestionate cu atenție. Exemplele includ Arrays și Structs.

Adăugarea datelor

Într-o comandă de achiziție ar avea de obicei asociată o cantitate de produs. Deci, acum, să adăugăm o variabilă de date la contractul inteligent. Vom adăuga o variabilă product_quantity cu presupunerea că va avea doar valori pozitive.

În primul rând, introducem un întreg fără semn reprezentat de uint256. Aici, fără semn (u) înseamnă tipul de variabilă care poate reprezenta doar numere întregi pozitive, iar 256 înseamnă stocarea a 256 de biți.

contractul de comandă de achiziție{uint256 product_quantity;}

Constructor

Constructorul inițializează contractul inteligent cu unele valori atunci când contractul este implementat. Să presupunem că cantitatea de produs este setată la 100.

constructor() public{product_cantity = 100;}

Trebuie remarcat faptul că cuvântul cheie sau modificatorul de acces „public” specifică faptul că funcția nu este restricționată. Deci, poate fi accesat de oricine.

Adăugarea de funcții

Adăugarea de funcții face programul dvs. interactiv. Acestea sunt capabilități controlate precedate de cuvântul cheie „funcție”. Declarația include numele funcției, modificatorul de acces, mutatorul de stare și valoarea returnată.

Pentru a citi valoarea stocată, adăugăm „funcția obține”. Cu „get_quantity”, această funcție are capacitatea de a prelua sau de a citi datele stocate. Uită-te la declarația de mai jos.

funcția get_quantity() public view returns(uint256){return product_cantity;}

Defalcând-o în continuare, vedem că:

  • Numele funcției: get_quantity („()” înseamnă că nu sunt transmise parametri)
  • Modificator de acces: public (accesul nu este restricționat)
  • Mutator de stat: vizualizare (indică faptul că funcția nu schimbă starea contractului, ci doar o citește)
  • Returnări: definește ceea ce este returnat de funcție, adică o variabilă de tip uint256

Funcții setter

Funcția setter intră în imagine atunci când doriți să scrieți sau să actualizați datele. Această funcție preia un parametru de intrare de la utilizator, pe baza căruia actualizează valoarea variabilei „cantitate_produs”. Funcția set (update_quantity) este conectată astfel:

update_cantity(uint256 value) public {product_cantity = product_cantity + value;}

Acum, conectați toate declarațiile de mai sus pentru a scrie primul dvs. contract inteligent .

Implementarea contractului inteligent

Odată ce ați încheiat pașii menționați mai devreme, este timpul să vă testați contractul inteligent. Puteți face același lucru folosind Remix IDE, care oferă capacitatea compilatorului Solidity de a crea, testa și valida contractul dvs. inteligent online.

Iată instrucțiunile treptate pentru a proiecta și implementa un contract inteligent cu Remix Online IDE:

  1. Faceți clic pe pictograma plus pentru a crea un fișier nou (gol).
  2. Faceți clic pentru a deschide fișierul gol
  3. Lipiți contractul în acest fișier
  4. Accesați meniul din stânga și faceți clic pe a doua pictogramă, chiar sub pictograma fișierului. Cu aceasta, va apărea opțiunea compilatorului de soliditate
  5. Accesați eticheta compilatorului pentru a selecta versiunea compilatorului
  6. Faceți clic pe fișier pentru a compila contractul inteligent
  7. După compilare, faceți clic pe butonul Detalii compilator pentru a înțelege bytecode și interfața binară a aplicației. Bytecode conține codul operațional Ethereum și logica contractului inteligent după conversie și compilare
  8. În meniul din stânga, faceți clic pe pictograma de sub pictograma de compilare pentru a vă implementa contractul inteligent

Interacțiunea cu contractul implementat

Metodele publice menționate în contract oferă modalități de interacțiune cu contractul desfășurat. În contextul comenzii de achiziție, „update_quantity” și „get_quantity” sunt cele două metode de interacțiune disponibile. De asemenea, puteți introduce parametrii folosind caseta de introducere. Rețineți că orice operațiune care modifică variabilele contractului va avea ca rezultat o tranzacție.

Cu aceasta, am acoperit elementele de bază despre cum să scrieți primul dvs. contract inteligent și cum să-l testați și să îl implementăm folosind limbajul de programare Solidity într-un mediu de dezvoltare online. Am înțeles și procesul de interacțiune cu un contract inteligent și de inițiere a tranzacțiilor. Așadar, aplicați-vă învățarea și creați un contract inteligent astăzi. La urma urmei, practica face perfectă!

Încheierea

Există o creștere a carierelor în tehnologia blockchain și blockchain a schimbat enorm însăși fața industriei tehnologiei pentru totdeauna. Dacă sunteți interesat să deveniți un dezvoltator blockchain și să construiți contracte inteligente și coduri de lanț, verificați programul de certificate avansate de la IIIT-B și upGrad în tehnologia blockchain

Care sunt câteva aplicații posibile ale contractelor inteligente?

Contractele inteligente sunt programe de calculator care realizează automat condițiile unui contract. Ei folosesc tehnologia blockchain, care este o bază de date distribuită care permite tranzacții sigure, transparente și inviolabile. Închirierea de mașini, rezervările la hotel și biletele la evenimente sunt doar câteva exemple ale modului în care ar putea fi utilizate contractele inteligente.

De ce contractele inteligente sunt considerate mai sigure decât contractele obișnuite?

Deoarece contractele inteligente sunt implementate pe o rețea blockchain, acestea sunt considerate mai sigure decât contractele tradiționale. Un blockchain este o bază de date distribuită securizată criptografic. Aceasta înseamnă că informațiile din blockchain nu pot fi modificate sau piratate. Drept urmare, execuția unui contract inteligent este garantată a fi precisă și de încredere. De asemenea, sunt publice și auditabile, ceea ce înseamnă că toată lumea din blockchain poate vedea condițiile contractului și poate verifica dacă acesta este executat. Pe de altă parte, contractele inteligente pot ajuta la reducerea riscului de fraudă și conflicte. Concluzia este că au o mulțime de caracteristici și sunt ușor de utilizat.

De ce contractele inteligente devin din ce în ce mai populare?

Unul dintre cele mai esențiale avantaje ale contractelor inteligente este că pot ajuta organizațiile în automatizarea procedurilor și reducerea costurilor. De exemplu, o companie poate utiliza un acord inteligent pentru a-și plăti furnizorii imediat după efectuarea unei livrări. Acest lucru ar reduce nevoia companiei de a procesa plățile manual, economisind atât timp, cât și bani. Poate fi folosit și pentru a construi încrederea între companii și clienții acestora. De exemplu, un contract inteligent ar putea fi folosit pentru a construi un sistem de plată online sigur. Acest lucru ar permite clienților să efectueze plăți fără teama că informațiile lor personale vor fi compromise. Nu în ultimul rând, poate fi folosit pentru a construi identități digitale atât pentru oameni, cât și pentru afaceri. Companiile ar putea să-și autentifice identitățile clienților și să-i protejeze de fraudă ca urmare a acestui fapt.