Tutorial Ethereum: una mirada més profunda a Ethereum.



Aquest tutorial d’Ethereum explica Ethereum des del punt de vista arquitectònic i també com constitueix la plataforma més gran per construir DAPPS i DAO.

Ethereum tutorial:

En aquest bloc d’Ethereum Tutorial, explicaré el funcionament intern de l’arquitectura d’ethereum i també us mostraré la implementació d’ethereum mitjançant una senzilla contracte intel·ligent .

Veig Ethereum com una cadena de blocs programable que servirà a la majoria de les empreses B2C en el futur. Ethereum atorga als desenvolupadors la llibertat de crear models complexos per executar a la cadena de blocs, en lloc de restringir-los a operacions predefinides com la cadena de blocs de Bitcoin.





Amb aquest enfocament, Ethereum s’ha convertit en una plataforma per a una infinitat d’aplicacions i organitzacions descentralitzades que inclou, entre d'altres, les criptomonedes.

Tractaré diversos temes d’una manera exhaustiva a través d’aquest blog “Ethereum Tutorial”. Aquests temes inclouen:



Podeu revisar aquest enregistrament de Ethereum Tutorial on els nostres instructors han explicat els temes de manera detallada amb això us ajudarà a entendre millor aquest concepte.

Tutorial Ethereum | Contractes intel·ligents d’Ethereum | Edureka

Tutorial Ethereum: comptes d'Ethereum

La xarxa Ethereum té dos tipus de comptes, a saber:



  • Comptes externs
  • Comptes de contracte

Aquests comptes, tant externs com contractuals, es coneixen com a 'objectes d'estat' i constitueixen l ''estat' de la xarxa ethereum. Tots els objectes d'estat tenen un estat ben definit. Per als comptes externs, l'estat comprèn el saldo del compte, mentre que per als comptes contractuals l'estat es defineix per l'emmagatzematge i el saldo de memòria.

Em referiré als comptes externs simplement com a comptes. Aquests comptes són propietat d’ells representats per agents externs de la xarxa, que inclouen qualsevol usuari normal, miners, agents automatitzats, etc.

Aquests comptes es controlen generalment amb l'ajut d'algorismes de criptografia de clau pública com RSA. L’objectiu principal dels comptes externs és servir de mitjà perquè els usuaris puguin interactuar amb Ethereum Blockchain.

Els comptes contractuals, en canvi, són una col·lecció de codi que resideix a la cadena de blocs en una adreça específica. Aquests contractes són invocats per comptes externs o per altres contractes mitjançant una funció específica de crida a l'acció. Aquests contractes s’escriuen en llenguatges d’escriptura d’alt nivell com Solidity, Serpent o LLL. Tots els contractes que resideixen a la cadena de blocs d’ethereum s’emmagatzemen en un format específic anomenat codi byt EVM (Ethereum Virtual Machine), que és un format binari específic d’ethereum.

Només serà just que expliqui EVM ara que us he parlat sobre EVM-bytecode.

Tutorial Ethereum: màquina virtual Ethereum

Ethereum, d’una manera rústica, defineix un conjunt de protocols generalitzats que s’han convertit en els pilars del desenvolupament d’aplicacions descentralitzades. Al centre d’això, es troba la màquina virtual Ethereum. La figura següent explica l'arquitectura:

Ethereum Architecture - Tutorial Ethereum - Edureka

què és un objecte escàner

És important tenir en compte que, la màquina virtual Ethereum no només està completament encaixada, sinó que també està completament aïllada. Això significa que el codi que s’executa actualment a l’EVM no té accés a la xarxa ni al sistema de fitxers i pot accedir amb moderació a altres contractes.

Ara que ja entenem el nucli de la plataforma, analitzem més a fons els nodes de xarxa.

Tutorial Ethereum: la xarxa Ethereum

La xarxa ethereum és una xarxa pública de cadenes de blocs. Forma la base de totes les aplicacions descentralitzades peer-to-peer i les organitzacions executades a la xarxa. La xarxa es compon de dos tipus de nodes, a saber, nodes complets i nodes lleugers.

Nodes complets conté tota la història de les transaccions des del bloc Gènesi. Són una prova completa de la integritat de la xarxa blockchain. Els nodes complets han de contenir totes les transaccions que s’hagin verificat d’acord amb les regles establertes per les especificacions d’Ethereum.

Nodes lleugers d'altra banda, només contenen un subconjunt de tota la cadena de blocs. Aquest tipus de nodes s’utilitzen principalment en carteres electròniques que han de tenir un pes lleuger i, per tant, no es pot emmagatzemar tota la cadena de blocs. En canvi, aquests nodes no verificen tots els blocs o transaccions i és possible que no tinguin una còpia de l’estat actual de la cadena de blocs. Confien en nodes complets per proporcionar-los detalls que falten (o simplement no tenen cap funcionalitat particular). L’avantatge dels nodes lleugers és que poden posar-se en marxa i funcionar molt més ràpidament, poden funcionar en dispositius amb més restriccions computacionals o de memòria i no mengen gairebé tant d’emmagatzematge.

Cada blockchain públic té una moneda associada. Ethereum no és diferent. Vegem més a fons la criptomoneda d’Ethereum.

Tutorial Ethereum: èter i gas

Ether és el nom de la criptomoneda que s’utilitza per pagar les transaccions a la xarxa ethereum. A part de pagar per transaccions i serveis generals, Ether també s'utilitza per comprar Gas, que al seu torn s'utilitza per pagar els càlculs dins de l'EVM.

L’èter és la unitat mètrica i té moltes denominacions que ajuden a pagar amb precisió les transaccions i el gas. La denominació més petita coneguda com a unitat base es diu Wei. Les denominacions juntament amb els seus noms específics es poden veure a la taula següent:

UnitatsValor WeiWei
wei1 wei1
Kwei1e3 wei1,000
Mwei1e6 wei1,000,000
Teixir1e9 wei1,000,000,000
microEther1e12 wei1,000,000,000,000
milliEther1e15 wei1,000,000,000,000,000
Èter1e18 wei1,000,000,000,000,000,000

Com s’ha comentat anteriorment, sabem que EVM és responsable d’executar el codi que es desplega a la seva xarxa. Què és el que impedeix a algú executar un bucle infinit a l’EVM i sobrecarregar-ne completament la memòria? Aquí és on entra el concepte de gas.

El gas s’utilitza com a mètrica per pagar recursos computacionals a la xarxa. Cada contracte de la xarxa té una quantitat màxima fixa de gas que pot utilitzar per als seus càlculs. Això es coneix com el ' gas Limit ”Altres termes de gas associats són els següents:

  • Preu del gas : Aquest és el cost del gas en termes de fitxes com Ether i les seves altres denominacions. Per estabilitzar el valor del gas, el preu del gas és un valor flotant de tal manera que, si el cost de les fitxes o la moneda fluctua, el preu del gas canvia per mantenir el mateix valor real.
  • gas Fee : Es tracta efectivament de la quantitat de gas necessària per pagar per executar una transacció o programa concret (anomenat contracte).

Per tant, si algú intenta executar un fragment de codi que s’executa per sempre, el contracte acabarà superant el límit de gas i tota la transacció que va invocar el contracte es recuperarà al seu estat anterior.


Ara que coneixem la moneda, donem una ullada al procés que genera nova moneda.

Tutorial Ethereum: mineria

Ethereum, igual que altres tecnologies de blockchain públiques, garanteix la seguretat mitjançant un model basat en incentius. Això s’anomena mecanisme de prova de treball. La figura següent mostra el funcionament de la mineria d’etereu:

Des d’una perspectiva més tècnica, l’algorisme de prova de treball utilitzat s’anomena Ethash, que és un algorisme de hash inspirat en l’algorisme Dagger-Hashimoto.

Ara que hem vist l’arquitectura de treball de l’eteri i hem discutit els seus elements essencials, vegem un problema del món real i l’enfocament de l’eteri per resoldre-ho.

Tutorial Ethereum: cas d'ús de finançament multitudinari descentralitzat

Plantejament del problema : Una bona 'idea' no és tot al món actual per iniciar un negoci amb èxit. Es necessita molt finançament i esforç per implementar una idea. Aquí és on apareixen organitzacions com 'Kickstarter'. Proporcionen projectes amb l’exposició pública necessària per a les donacions al seu projecte per posar-lo en marxa, però l’arquitectura centralitzada d’aquest motiu té els seus inconvenients, principalment en la manera com es gestionen les recompenses. Atès que l'autoritat centralitzada pren totes les decisions, els sistemes són propensos a regles com:

  • tothom que hagi perdut el termini per a la campanya ja no pot entrar
  • qualsevol donant que hagi canviat d’opinió no pot sortir

Aproximació :

Prenem una metodologia descentralitzada per solucionar el problema tal com s’explica a la imatge següent:

Solució :

Aquí teniu el contracte intel·ligent de solidesa per a la declaració de problema anterior.

pragma solidity ^ 0.4.16 token d’interfície {transferència de funció (destinatari d’adreça, uint import)} contracte Crowdsale {adreça beneficiària pública uint finançament públic Objectiu uint import públic Augmentat uint termini públic uint preu públic testimoni públic Assignació de recompenses (address => uint256) financingGoalReached = fals bool crowdsaleClosed = fals esdeveniment Objectiu aconseguit (destinatari de l'adreça, uint totalAmountRaised) Esdeveniment Transferència de fons (adreça de suport, uint quantitat, bool isContribució) / ** * Funció del constructor * * Configureu el propietari * / funció Crowdsale (adreça si s'envia correctament a // l'adreça del propietari quan el finançament té èxit uint financingGoalInEthers // quantitat objectiu per augmentar la durada uInInminuts // temps donat uher etherCostOfEachToken // cost de l’equitat a l’eter address addressOfTokenUsedAsReward // token address) {beneficiari = ifSuccessfulSendTo + durationInMinutes * 1 minutes price = etherCostOfEachToken * 1 ether to kenReward = token (addressOfTokenUsedAsReward)} / ** * Funció de reserva * * La funció sense nom és la funció per defecte que s’anomena sempre que algú envia fons a un contracte * / function () a pagar {require (! crowdsaleClosed) uint amount = msg. valor balanceOf [msg.sender] + = quantitat amountRaised + = quantitat tokenReward.transfer (msg.sender, import / preu) FundTransfer (msg.sender, import, true)} modificador afterDeadline () {if (ara = objectiu de finançament) {financingGoalReached = true GoalReached (beneficiari, amountRaised)} crowdsaleClosed = true} / ** * Retireu els fons * * Comproveu si s'ha assolit l'objectiu o el límit de temps i, en cas afirmatiu, i si s'ha assolit l'objectiu de finançament, * envia l'import sencer al beneficiari. Si no es va assolir l'objectiu, cada col·laborador pot retirar * l'import que va contribuir. * / function safeWithdrawal () afterDeadline {if (! financingGoalReached) {uint amount = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (amount> 0) {if (msg.sender.send (amount)) { Transferència de fons (msg.sender, import, fals)} else {balanceOf [msg.sender] = import}}} if (financingGoalReached && beneficiario == msg.sender) {if (beneficiari.enviament (amountRaised)) {FundTransfer (beneficiari, amountRaised, false)} else {// Si no enviem els fons al beneficiari, desbloquegem el saldo dels finançadors de fundsGoalReached = false}}}}

Per si us interessa aprendre la solidesa, consulteu el nostre bloc a , que s’utilitza per al desenvolupamentpersonalitzatcontractes intel·ligents.

Si voleu aprendre Blockchain i construir una carrera en tecnologies Blockchain, consulteu el nostre que inclou formació en directe dirigida per un instructor i experiència en projectes reals. Aquesta formació us ajudarà a entendre Blockchain en profunditat i us ajudarà a dominar el tema.

Tens alguna pregunta? Esmenta’l a la secció de comentaris i ens posarem en contacte amb vostè el més aviat possible.