Výukový program pre ethereum - hlbší pohľad do ethereum!



Tento výučbový program pre ethereum vysvetľuje ethereum z architektonického hľadiska a tiež ako tvorí najväčšiu platformu pre tvorbu DAPPS a DAO.

Ethereum Výukový program:

V tomto blogu Ethereum Tutorial vysvetlím vnútorné fungovanie architektúry ethereum a tiež vám ukážem implementáciu ethereum prostredníctvom jednoduchého smart kontrakt .

Vnímam Ethereum ako programovateľný blockchain, ktorý bude v budúcnosti slúžiť väčšine podnikov B2C. Ethereum poskytuje vývojárom slobodu vytvárať zložité modely, ktoré sa majú vykonávať na blockchaine, namiesto toho, aby ich obmedzoval na preddefinované operácie, ako je bitcoinový blockchain.





Týmto prístupom sa Ethereum stalo platformou pre množstvo decentralizovaných aplikácií a organizácií, ktoré okrem iného zahŕňajú aj kryptomeny.

Celý blog sa budem podrobne zaoberať rôznymi témami prostredníctvom blogu „Výukový program pre Ethereum“. Medzi tieto témy patria:



Môžete prejsť týmto záznamom výučby pre Ethereum, kde naši inštruktori podrobne vysvetlili témy ktoré vám pomôžu lepšie pochopiť tento pojem.

Výukový program pre ethereum | Inteligentné zmluvy pre Ethereum Edureka

Výukový program pre Ethereum: Účty Ethereum

Sieť Ethereum má dva typy účtov, a to:



  • Externé účty
  • Zmluvné účty

Tieto externé a zmluvné účty sa označujú ako „štátne objekty“ a zahŕňajú „stav“ siete ethereum. Každý stavový objekt má presne definovaný stav. Pre externé účty sa stav skladá zo zostatku na účte, zatiaľ čo pre zmluvné účty je stav definovaný pamäťovým úložiskom a zostatkom.

Externé účty budem označovať jednoducho ako účty. Tieto účty vlastní, sú zastúpené externými agentmi siete, medzi ktorých patria všetci bežní používatelia, baníci, automatizovaní agenti atď.

Tieto účty sa spravidla ovládajú pomocou kryptografických algoritmov verejného kľúča, ako je RSA. Hlavným účelom externých účtov je slúžiť ako médium pre používateľov na interakciu s ethereum blockchainom.

Zmluvné účty sú na druhej strane súborom kódov, ktoré sa nachádzajú v blockchaine na konkrétnej adrese. Tieto zmluvy sú vyvolané externými účtami alebo inými zmluvami prostredníctvom konkrétnej funkcie výzvy na akciu. Tieto zmluvy sú písané v skriptovacích jazykoch na vysokej úrovni, ako sú Solidity, Had alebo LLL. Každá zmluva, ktorá sa nachádza na blockchaine ethereum, je uložená v špecifickom formáte zvanom bajkód EVM (Ethereum Virtual Machine), čo je binárny formát špecifický pre ethereum.

Bude spravodlivé, že vysvetlím EVM teraz, keď som vám hovoril o byte-kóde EVM.

Výukový program pre Ethereum: Virtuálny stroj Ethereum

Ethereum rustikálnym spôsobom definuje súbor všeobecných protokolov, ktoré sa stali piliermi vývoja decentralizovaných aplikácií. V jadre toho leží virtuálny stroj Ethereum. Obrázok nižšie vysvetľuje architektúru:

Ethereum Architecture - Ethereum Tutorial - Edureka

php previesť reťazec do poľa

Je dôležité poznamenať, že virtuálny stroj Ethereum je nielen úplne izolovaný, ale aj úplne izolovaný. To znamená, že kód, ktorý je momentálne spustený na EVM, nemá prístup k sieti alebo k súborovému systému a môže mať mierny prístup k ďalším zmluvám.

Teraz, keď rozumieme jadru platformy, sa pozrime podrobnejšie na sieťové uzly.

Výukový program pre Ethereum: Sieť Ethereum

Sieť ethereum je verejná blockchainová sieť. Tvorí základ všetkých decentralizovaných aplikácií typu peer-to-peer a organizácií prevádzkovaných v sieti. Sieť sa skladá z dvoch typov uzlov, a to úplných uzlov a ľahkých uzlov.

Plné uzly obsahujú celú históriu transakcií od bloku genézy. Sú plnohodnotným dôkazom integrity blockchainovej siete. Úplné uzly musia obsahovať každú transakciu, ktorá bola overená podľa pravidiel stanovených v špecifikáciách spoločnosti Ethereum.

Ľahké uzly na druhej strane obsahujú iba podmnožinu celého blockchainu. Tieto typy uzlov sa väčšinou používajú v elektronických peňaženkách, ktoré musia mať ľahký charakter, a preto na nich nemožno uložiť celý blockchain. Tieto uzly naopak neoverujú každý blok alebo transakciu a nemusia mať kópiu aktuálneho stavu blockchainu. Spoliehajú sa na úplné uzly, ktoré im poskytnú chýbajúce podrobnosti (alebo im jednoducho chýba konkrétna funkčnosť). Výhodou ľahkých uzlov je, že sa môžu rýchlejšie rozbehnúť, môžu bežať na zariadeniach s obmedzenejšou výpočtovou schopnosťou / pamäťou a nespotrebujú toľko úložného priestoru.

Každý verejný blockchain má k sebe pripojenú menu. Ethereum sa nelíši. Pozrime sa podrobnejšie na kryptomenu Ethereum.

Výukový program pre Ethereum: Éter a plyn

Ether je názov kryptomeny používanej na platby za transakcie v sieti ethereum. Okrem platieb za všeobecné transakcie a služby sa Ether používa aj na nákup plynu, ktorý sa zase používa na platbu za výpočet v rámci EVM.

Ether je metrická jednotka a má veľa nominálnych hodnôt, ktoré pomáhajú presne platiť za transakcie a plyn. Najmenšia nominálna hodnota aka základná jednotka sa nazýva Wei. Nominálne hodnoty spolu s ich konkrétnymi názvami sú uvedené v nasledujúcej tabuľke:

JednotkyWei hodnotaWei
Wei1 weijeden
Kwei1e3 wei1 000
Mwei1e6 wei1 000 000
Knit1e9 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

Ako už bolo spomenuté, vieme, že EVM je zodpovedná za beh kódu, ktorý je nasadený na jeho sieti. Čo teda niekomu bráni v spustení nekonečnej slučky na EVM a úplnom preťažení jeho pamäte? Tu prichádza na rad koncept plynu.

Plyn sa používa ako metrika na úhradu výpočtových zdrojov v sieti. Každá zmluva v sieti má stanovené maximálne množstvo plynu, ktoré môže použiť na svoje výpočty. Toto sa nazýva „ Limit plynu „Ostatné súvisiace výrazy týkajúce sa plynu sú:

  • Cena plynu : Toto sú náklady na plyn v zmysle tokenov, ako je Ether a jeho ďalšie nominálne hodnoty. Na stabilizáciu hodnoty plynu je Cena plynu pohyblivou hodnotou, takže ak náklady na tokeny alebo menu kolíšu, cena plynu sa zmení, aby sa zachovala rovnaká skutočná hodnota.
  • Poplatok za plyn : Toto je efektívne množstvo plynu, ktoré je potrebné zaplatiť za uskutočnenie konkrétnej transakcie alebo programu (nazývaného zmluva).

Preto, ak sa niekto pokúsi spustiť časť kódu, ktorý beží navždy, zmluva nakoniec prekročí svoj limit plynu a celá transakcia, ktorá vyvolala zmluvu, sa vráti späť do predchádzajúceho stavu.


Teraz, keď vieme o mene, sa pozrime na proces, ktorý generuje novú menu.

Výukový program pre Ethereum: Ťažba

Ethereum, podobne ako iné verejné blockchainové technológie, zaisťuje bezpečnosť prostredníctvom modelu založeného na stimuloch. Toto sa nazýva mechanizmus kontroly práce. Obrázok nižšie ukazuje, ako funguje ťažba ethereum:

Z technickejšieho hľadiska sa použitý algoritmus kontroly práce nazýva Ethash, čo je hashovací algoritmus inšpirovaný Dagger-Hashimotovým algoritmom.

Teraz, keď sme videli fungujúcu architektúru ethereum a diskutovali sme o jeho základných prvkoch, pozrime sa na problém zo skutočného sveta a ethereum prístup k jeho riešeniu.

Výukový program pre Ethereum: Prípad použitia decentralizovaného davového financovania

Vyhlásenie o probléme : Dobrý ‘nápad‘ nie je v dnešnom svete všetko na to, aby ste začali úspešné podnikanie. Na realizáciu nápadu je potrebné veľa finančných prostriedkov a úsilia. To je miesto, kde prichádzajú na scénu organizácie ako „Kickstarter“. Poskytujú projektom verejné publicity potrebné na dary určené na ich projekt, aby sa mohol rozbehnúť, ale centralizovaná architektúra takéhoto motívu má svoje tienisté stránky, hlavne v spôsobe narábania s odmenami. Pretože centralizovaný orgán robí všetky rozhodnutia, systémy sú náchylné na pravidlá ako:

  • ktokoľvek, kto zmeškal termín kampane, sa už nemôže prihlásiť
  • každý darca, ktorý zmenil názor, sa nemôže dostať von

Prístup :

Na riešenie problému používame decentralizovanú metodiku, ktorá je vysvetlená na obrázku nižšie:

Riešenie :

Tu je solídna inteligentná zmluva pre vyššie uvedené vyhlásenie o probléme.

pragma solidity ^ 0.4.16 token rozhrania {prenos funkcie (adresa príjemcu, výška uint)} zmluva Crowdsale {adresa verejný príjemca uint verejné financovanie Cieľ uint verejné množstvo Zvýšený uint verejný termín uint verejný token ceny verejnosti token Mapovanie odmien (adresa => uint256) verejný zostatok financeGoalReached = false bool crowdsaleClosed = false udalosť GoalReached (príjemca adresy, uint totalAmountRaised) udalosť FundTransfer (podporovateľ adresy, uint suma, bool isContribution) / ** * funkcia Constrctor * * nastavenie vlastníka * / funkcia Crowdsale (adresa ifSuccessfulSendTo // adresa majiteľa, keď je financovanie úspešné uint financeGoalInEthers // cieľová suma na zvýšenie trvania uintInMinutes // daný čas uint etherCostOfEachToken // náklady na kapitál v etherovej adrese addressOfTokenUsedAsReward // tokenová adresa) {beneficient = ifSuccessfulSendTo financováníGoal = financováníGoalInEthers * 1 ether termín = teraz + durationInMinutes * 1 minúta cena = etherCostOfEachToken * 1 éter do kenReward = token (addressOfTokenUsedAsReward)} / ** * Záložná funkcia * * Funkcia bez názvu je predvolená funkcia, ktorá sa volá vždy, keď ktokoľvek pošle prostriedky na zmluvu * / function () splatné {require (! crowdsaleClosed) uint amount = msg. hodnota balanceOf [msg.sender] + = suma amountRaised + = suma tokenReward.transfer (msg.sender, suma / cena) FundTransfer (msg.sender, suma, true)} modifikátor afterDeadline () {if (now = financováníGoal) {financováníGoalReached = true GoalReached (príjemca, sumaRaised)} crowdsaleClosed = true} / ** * Vyberte prostriedky * * Skontroluje, či bol dosiahnutý cieľ alebo časový limit, a ak áno, a či bol dosiahnutý cieľ financovania, * odošle celú sumu príjemcovi. Ak cieľ nebol dosiahnutý, môže každý prispievateľ vybrať * sumu, ktorou prispel. * / function safeWithdrawal () afterDeadline {if (! financováníGoalReached) {uint suma = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (suma> 0) {if (msg.sender.send (suma)) { FundTransfer (msg.sender, suma, nepravda)} else {balanceOf [msg.sender] = suma}}} if (financováníGoalReached && príjemca == msg.sender) {if (beneficient.send (amountRaised)) {FundTransfer (príjemca, amountRaised, false)} else {// Ak sa nám nepodarí prostriedky poslať príjemcovi, odomkneme zostatok finančných prostriedkov donoraGoalReached = false}}}}

Ak máte záujem učiť sa solídne, pozrite si náš blog na , ktorý sa používa na vývojpersonalizovanéinteligentné zmluvy.

Ak sa chcete naučiť blockchain a budovať si kariéru v blockchainových technológiách, pozrite sa na naše ktorá prináša živé školenie vedené inštruktorom a skúsenosti s projektmi v reálnom živote. Toto školenie vám pomôže pochopiť Blockchain do hĺbky a pomôže vám dosiahnuť osvojenie si témy.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a ozveme sa vám čo najskôr.