Tutorial Ethereum - O privire mai profundă asupra Ethereum!



Acest tutorial Ethereum explică Ethereum din punct de vedere arhitectural și, de asemenea, modul în care constituie cea mai mare platformă pentru construirea DAPPS și DAO.

Ethereum Tutorial:

În acest blog Tutorial Ethereum, voi explica funcționarea interioară a arhitecturii ethereum și vă voi arăta, de asemenea, implementarea ethereum printr-un simplu contract inteligent .

Văd Ethereum ca un blockchain programabil care va servi o majoritate a întreprinderilor B2C în viitor. Ethereum le oferă dezvoltatorilor libertatea de a crea modele complexe pentru a fi executate pe blockchain, în loc să le limiteze la operațiuni predefinite, cum ar fi blockchain-ul Bitcoin.





Cu această abordare, Ethereum s-a transformat într-o platformă pentru o mulțime de aplicații și organizații descentralizate, care include, dar nu se limitează la criptomonede.

Voi acoperi o varietate de subiecte într-o manieră exhaustivă prin rularea acestui blog „Tutorial Ethereum”. Aceste subiecte includ:



Puteți parcurge această înregistrare a Tutorialului Ethereum, unde instructorii noștri au explicat subiectele în mod detaliat cu care vă va ajuta să înțelegeți mai bine acest concept.

Tutorial Ethereum | Contracte inteligente Ethereum | Edureka

Tutorial Ethereum: Conturi Ethereum

Rețeaua Ethereum are două tipuri de conturi și anume:



  • Conturi externe
  • Conturi de contract

Aceste conturi, atât externe, cât și contractuale, sunt denumite „obiecte de stat” și cuprind „starea” rețelei ethereum. Fiecare obiect de stare are o stare bine definită. Pentru conturile externe, starea cuprinde soldul contului, în timp ce pentru conturile contractuale starea este definită de stocarea și soldul memoriei.

Mă voi referi la conturi externe pur și simplu ca conturi. Aceste conturi sunt deținute de agenți externi ai rețelei, care includ fiecare utilizator obișnuit, mineri, agenți automatizați etc.

Aceste conturi sunt în general controlate cu ajutorul algoritmilor de criptografie cu cheie publică precum RSA. Scopul principal al conturilor externe este de a servi ca mediu pentru ca utilizatorii să interacționeze cu Ethereum Blockchain.

Conturile contractuale, pe de altă parte, sunt o colecție de cod care se află pe blockchain la o anumită adresă. Aceste contracte sunt invocate prin conturi externe sau prin alte contracte printr-o funcție specifică de îndemn. Aceste contracte sunt scrise în limbaje de scriptare la nivel înalt, cum ar fi Solidity, Serpent sau LLL. Fiecare contract care se află pe blockchain-ul ethereum este stocat într-un format specific denumit cod byt EVM (Ethereum Virtual Machine), care este un format binar specific ethereum.

Va fi corect să explic EVM acum că v-am spus despre EVM-bytecode.

Tutorial Ethereum: Mașină virtuală Ethereum

Ethereum, într-un mod rustic, definește un set de protocoale generalizate care au devenit pilonii dezvoltării aplicațiilor descentralizate. În centrul acestui lucru, se află mașina virtuală Ethereum. Figura de mai jos explică arhitectura:

Arhitectură Ethereum - Tutorial Ethereum - Edureka

managementul achizițiilor în managementul proiectelor

Este important de reținut că, mașina virtuală Ethereum nu este doar complet izolată, ci și complet izolată. Aceasta înseamnă că codul care rulează în prezent pe EVM nu are acces la rețea sau la sistemul de fișiere și poate accesa cu ușurință alte contracte.

Acum, că înțelegem nucleul platformei, să aruncăm o privire mai profundă asupra nodurilor rețelei.

Tutorial Ethereum: Rețeaua Ethereum

Rețeaua ethereum este o rețea publică blockchain. Acesta stă la baza tuturor aplicațiilor descentralizate peer-to-peer și a organizațiilor care rulează în rețea. Rețeaua este alcătuită din două tipuri de noduri și anume, noduri complete și noduri ușoare.

Noduri complete conține întregul istoric al tranzacțiilor de la blocul Genesis. Sunt o dovadă deplină a integrității rețelei blockchain. Nodurile complete trebuie să conțină fiecare tranzacție care a fost verificată în conformitate cu regulile stabilite de specificațiile Ethereum.

Noduri ușoare pe de altă parte, conțin doar un subset al întregului blockchain. Aceste tipuri de noduri sunt utilizate în cea mai mare parte în portofelele electronice, care trebuie să fie ușoare în natură și, prin urmare, întregul blockchain nu poate fi stocat pe ele. În schimb, aceste noduri nu verifică fiecare bloc sau tranzacție și este posibil să nu aibă o copie a stării blockchain curente. Se bazează pe noduri complete pentru a le oferi detalii lipsă (sau pur și simplu nu au funcționalități speciale). Avantajul nodurilor ușoare este că pot funcționa mult mai repede, pot rula pe dispozitive mai limitate din punct de vedere calculațional / cu memorie și nu consumă aproape la fel de mult spațiu de stocare.

Fiecare blockchain public are atașată o monedă. Ethereum nu este diferit. Să aruncăm o privire mai profundă asupra criptomonedei Ethereum.

Tutorial Ethereum: eter și gaz

Ether este numele cripto-monedei utilizate pentru plata tranzacțiilor din rețeaua ethereum. În afară de plata pentru tranzacții și servicii generale, Ether este, de asemenea, utilizat pentru a cumpăra gaz, care, la rândul său, este utilizat pentru a plăti calculele în cadrul EVM.

Eterul este unitatea metrică și are o mulțime de denumiri care ajută la plata corectă a tranzacțiilor și a gazelor. Cea mai mică denumire denumită unitatea de bază se numește Wei. Denumirile împreună cu numele lor specifice pot fi văzute în tabelul de mai jos:

UnitățiWei ValueWei
wei1 weiunu
Kwei1e3 wei1.000
Mwei1e6 wei1.000.000
Tricot1e9 wei1.000.000.000
microEther1e12 wei1.000.000.000.000
milliEther1e15 wei1.000.000.000.000.000
Eter1e18 wei1.000.000.000.000.000.000

După cum sa discutat mai devreme, știm că EVM este responsabil pentru rularea codului care este implementat în rețeaua sa. Deci, ce împiedică pe cineva să ruleze o buclă infinită pe EVM și să-și supraîncărce complet memoria? Aici intervine conceptul de gaz.

Gazul este utilizat ca metrică pentru plata resurselor de calcul din rețea. Fiecare contract din rețea are o cantitate maximă stabilită de gaz pe care o poate folosi pentru calculele sale. Acest lucru este cunoscut sub numele de „ Limita de gaz ”Alți termeni asociați gazului sunt după cum urmează:

  • Prețul gazului : Acesta este costul gazului în termeni de jetoane precum Ether și celelalte confesiuni ale acestuia. Pentru a stabiliza valoarea gazului, Prețul gazului este o valoare variabilă astfel încât, dacă costul jetoanelor sau monedei fluctuează, prețul gazului se modifică pentru a păstra aceeași valoare reală.
  • Taxă pe gaz : Aceasta este efectiv cantitatea de gaz necesară pentru a fi plătită pentru a derula o anumită tranzacție sau program (numit contract).

Prin urmare, dacă cineva încearcă să ruleze o bucată de cod care rulează pentru totdeauna, contractul va depăși în cele din urmă limita de gaz și întreaga tranzacție care a invocat contractul va fi revenită la starea sa anterioară.


Acum, că știm despre monedă, să aruncăm o privire asupra procesului care generează o monedă nouă.

Tutorial Ethereum: minerit

Ethereum, la fel ca alte tehnologii publice blockchain, asigură securitatea printr-un model bazat pe stimulente. Aceasta se numește mecanism de dovadă a muncii. Figura de mai jos arată cum funcționează mineritul eteric:

Dintr-o perspectivă mai tehnică, algoritmul de probă a muncii utilizat se numește Ethash, care este un algoritm de hash inspirat din algoritmul Dagger-Hashimoto.

Acum că am văzut arhitectura de lucru a etereului și am discutat despre elementele sale esențiale, să vedem o problemă din lumea reală și abordarea etereului pentru a le rezolva.

Tutorial Ethereum: caz de utilizare a finanțării multitudinii descentralizate

Declarație problemă : O „idee” bună nu este totul în lumea de astăzi pentru a începe o afacere de succes. Este nevoie de multă finanțare și efort pentru a pune în aplicare o idee. Aici intervin organizații precum „Kickstarter”. Acestea oferă proiectelor expunerea publică necesară donațiilor către proiectul lor pentru a pune în funcțiune, dar arhitectura centralizată a unui astfel de motiv are dezavantajele sale, în principal în modul în care sunt gestionate recompensele. Deoarece autoritatea centralizată ia toate deciziile, sistemele sunt predispuse la reguli precum:

  • oricine a ratat termenul limită pentru campanie nu mai poate intra
  • orice donator care s-a răzgândit nu poate ieși

Abordare :

Luăm o metodologie descentralizată pentru a aborda problema așa cum este explicat în imaginea de mai jos:

Soluţie :

Iată contractul inteligent de soliditate pentru afirmația problemă de mai sus.

soliditate pragmatică ^ 0.4.16 jeton de interfață {transfer funcție (adresă receptor, sumă uint)} contract Crowdsale {adresă beneficiar public uint finanțare publică Obiectiv uint sumă publică Ridicat uint termen limită public uint preț public jeton public Cartografiere recompensă (adresă => uint256) echilibru publicOf bool financingGoalReached = false bool crowdsaleClosed = eveniment fals GoalReached (adresă destinatar, uint totalAmountRaised) eveniment FundTransfer (adresă backer, uint suma, bool isContribution) / ** * Funcția Constrctor * * Configurați proprietarul * / funcția Crowdsale (adresa ifSuccessfulSendTo // adresa a proprietarului atunci când finanțarea este reușită uint de finanțareGoalInEthers // suma țintă pentru a crește durata uintInminute // acordat timp uint etherCostOfEachToken // costul de capital în adresa ether addressOfTokenUsedAsReward // token address) {beneficiar = ifSuccessfulSendTo financingGoal = financingGoalInEthers * 1 eter + durationInMinutes * 1 minute price = etherCostOfEachToken * 1 ether to kenReward = token (addressOfTokenUsedAsReward)} / ** * Funcție de rezervă * * Funcția fără nume este funcția implicită care este apelată ori de câte ori cineva trimite fonduri către un contract * / funcție () plătibilă {require (! crowdsaleClosed) uint amount = msg. valoare balanceOf [msg.sender] + = sumă amountRaised + = sumă tokenReward.transfer (msg.sender, sumă / preț) FundTransfer (msg.sender, sumă, adevărat)} modificator afterDeadline () {if (now = financingGoal) {financingGoalReached = adevărat GoalReached (beneficiar, amountRaised)} crowdsaleClosed = true} / ** * Retragerea fondurilor * * Verifică dacă obiectivul sau limita de timp au fost atinse și, dacă da, și obiectivul de finanțare a fost atins, * trimite întreaga sumă beneficiarului. Dacă obiectivul nu a fost atins, fiecare colaborator poate retrage * suma pe care a contribuit-o. * / function safeWithdrawal () afterDeadline {if (! financingGoalReached) {uint amount = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (amount> 0) {if (msg.sender.send (amount)) { FundTransfer (msg.sender, amount, false)} else {balanceOf [msg.sender] = amount}}} if (financingGoalReached && beneficiar == msg.sender) {if (beneficiary.send (amountRaised)) {FundTransfer (beneficiar, amountRaised, false)} else {// Dacă nu reușim să trimitem fondurile beneficiarului, deblocăm finanțatorii care finanțează balanceGoalReached = false}}}}

În cazul în care sunteți interesat să învățați soliditatea, consultați blogul nostru pe , care este folosit pentru dezvoltarepersonalizatecontracte inteligente.

Dacă doriți să învățați Blockchain și să construiți o carieră în tehnologiile Blockchain, atunci consultați care vine cu instruire live condusă de instructor și experiență în viața reală a proiectului. Această instruire vă va ajuta să înțelegeți Blockchain în profunzime și vă va ajuta să obțineți stăpânirea asupra subiectului.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii și ne vom contacta cât mai curând posibil.