„Ethereum“ pamoka - gilesnis žvilgsnis į „Ethereum“!



Šioje „Ethereum“ pamokoje paaiškinama „Ethereum“ architektūros požiūriu ir tai, kaip ji sudaro didžiausią platformą kuriant DAPPS ir DAO.

Ethereum Pamoka:

Šiame „Ethereum Tutorial“ tinklaraštyje aš paaiškinsiu vidinį „ethereum“ architektūros darbą ir taip pat parodysiu jums, kaip įgyvendinamas „ethereum“ per paprastą protinga sutartis .

Aš matau „Ethereum“ kaip programuojamą blokų grandinę, kuri ateityje tarnaus daugumai B2C įmonių. „Ethereum“ suteikia kūrėjams laisvę kurti sudėtingus modelius, kurie turi būti vykdomi „blockchain“, užuot apribojus juos iš anksto nustatytomis operacijomis, tokiomis kaip „Bitcoin blockchain“.





Taikydamas šį požiūrį, „Ethereum“ tapo daugybės decentralizuotų programų ir organizacijų platforma, kuri apima, bet neapsiriboja kriptovaliutomis.

Aš išsamiai aptarsiu įvairias temas naudodamas šį „Ethereum Tutorial“ tinklaraštį. Šios temos apima:



Galite pereiti šį „Ethereum Tutorial“ įrašą, kur mūsų instruktoriai išsamiai paaiškino temas tai padės geriau suprasti šią sąvoką.

„Ethereum“ pamoka | „Ethereum“ išmaniosios sutartys Edureka

„Ethereum“ pamoka: „Ethereum“ sąskaitos

„Ethereum“ tinkle yra dviejų tipų sąskaitos:



  • Išorinės sąskaitos
  • Sutarties sąskaitos

Šios sąskaitos, tiek išorinės, tiek sutartinės, vadinamos „valstybės objektais“ ir apima „ethereum“ tinklo „būseną“. Kiekvienas valstybinis objektas turi tiksliai apibrėžtą būseną. Išorinių sąskaitų būklę sudaro sąskaitos likutis, o sutarčių sąskaitose būseną nustato atminties saugykla ir likutis.

Išorines sąskaitas turėsiu tiesiog kaip sąskaitas. Šias sąskaitas turi išoriniai tinklo agentai, į kuriuos įeina kiekvienas paprastas vartotojas, kalnakasiai, automatiniai agentai ir kt.

Šios paskyros paprastai kontroliuojamos naudojant viešojo rakto kriptografijos algoritmus, tokius kaip RSA. Pagrindinis išorinių paskyrų tikslas yra tarnauti kaip terpė vartotojams bendrauti su „Ethereum Blockchain“.

Kita vertus, sutarties sąskaitos yra kodų rinkinys, kuris gyvena blokų grandinėje konkrečiu adresu. Šiomis sutartimis remiasi išorės sąskaitos arba kitos sutartys per specialią raginimo veikti funkciją. Šios sutartys yra parašytos aukšto lygio scenarijų kalbomis, tokiomis kaip „Solidity“, „Serpent“ ar „LLL“. Kiekviena sutartis, esanti ant ethereum blockchain, yra saugoma tam tikru formatu, vadinamu EVM (Ethereum Virtual Machine) bytecode, kuris yra specialus ethereum dvejetainis formatas.

Tik teisinga, kad paaiškinsiu EVM dabar, kai jau pasakojau apie EVM-bytecode.

„Ethereum“ pamoka: „Ethereum“ virtuali mašina

„Ethereum“ kaimiškai apibūdina apibendrintų protokolų rinkinį, kuris tapo decentralizuotų programų kūrimo ramsčiais. To esmė yra „Ethereum“ virtuali mašina. Žemiau pateiktame paveikslėlyje paaiškinta architektūra:

„Ethereum Architecture“ - „Ethereum“ pamoka - „Edureka“

Svarbu pažymėti, kad „Ethereum Virtual Machine“ yra ne tik visiškai įdėta į smėlio dėžę, bet ir visiškai izoliuota. Tai reiškia, kad kodas, kuris šiuo metu veikia EVM, neturi prieigos prie tinklo ar failų sistemos ir gali taupiai naudotis kitomis sutartimis.

Dabar, kai suprantame platformos šerdį, pažvelkime giliau į tinklo mazgus.

rūšiavimo funkcija c ++

„Ethereum“ pamoka: „Ethereum“ tinklas

„Ethereum“ tinklas yra viešas „blockchain“ tinklas. Tai yra visų decentralizuotų tarpusavio programų ir organizacijų, valdomų tinkle, pagrindas. Tinklas susideda iš dviejų tipų mazgų, būtent, pilnų mazgų ir lengvų mazgų.

Pilni mazgai yra visa operacijų istorija nuo genezės blokavimo. Jie yra visavertis „blockchain“ tinklo vientisumo įrodymas. Visuose mazguose turi būti kiekviena operacija, kuri buvo patikrinta pagal „Ethereum“ specifikacijose nustatytas taisykles.

Lengvi mazgai kita vertus, yra tik visos blokų grandinės pogrupis. Šio tipo mazgai dažniausiai naudojami elektroninėse piniginėse, kurios turi būti lengvos, todėl jose negalima laikyti visos blokų grandinės. Šie mazgai, priešingai, netikrina kiekvieno bloko ar operacijos ir gali neturėti dabartinės „blockchain“ būsenos kopijos. Jie remiasi visais mazgais, kad pateiktų jiems trūkstamą informaciją (arba paprasčiausiai trūksta tam tikro funkcionalumo). Lengvųjų mazgų pranašumas yra tas, kad jie gali daug greičiau įsijungti ir veikti, gali veikti daugiau skaičiavimo / atminties apribojimų turintiems įrenginiams ir nesuvalgo beveik tiek vietos.

Kiekvienas viešasis „blockchain“ turi valiutą. Ethereum nesiskiria. Pažvelkime giliau į Ethereum kriptovaliutą.

„Ethereum“ pamoka: eteris ir dujos

Eteris yra kriptovaliutos, naudojamos atsiskaityti už operacijas ethereum tinkle, pavadinimas. Be atsiskaitymo už bendruosius sandorius ir paslaugas, Eteris taip pat naudojamas dujoms pirkti, kurios savo ruožtu naudojamos apmokėti už skaičiavimus EVM.

Eteris yra metrinis vienetas ir turi daug nominalų, kurie padeda tiksliai sumokėti už sandorius ir dujas. Mažiausias nominalas, be kita ko, bazinis vienetas vadinamas Wei. Nominalus ir jų konkrečius pavadinimus galima pamatyti toliau pateiktoje lentelėje:

Vienetai„Wei Value“Wei
wei1 weivienas
Kwei1e3 wei1 000
„Mwei“1e6 wei1 000 000
Megzti1e9 wei1 000 000 000
mikroEteris1e12 wei1 000 000 000 000
milliEther1e15 wei1 000 000 000 000 000
Eteris1e18 wei1 000 000 000 000 000 000

Kaip jau buvo aptarta anksčiau, mes žinome, kad EVM yra atsakingas už kodo, kuris yra įdiegtas jo tinkle, vykdymą. Taigi kas trukdo paleisti begalinę kilpą EVM ir visiškai perkrauti jo atmintį? Čia atsiranda dujų sąvoka.

Dujos naudojamos kaip metrika mokant už skaičiavimo išteklius tinkle. Kiekvienoje tinklo sutartyje yra nustatytas maksimalus dujų kiekis, kurį ji gali naudoti savo skaičiavimams. Tai vadinama „ Dujų riba „Kiti susiję dujų terminai yra šie:

  • Dujų kaina : Tai yra dujų kaina tokiais ženklais kaip Eteris ir kiti jo nominalai. Norint stabilizuoti dujų vertę, dujų kaina yra kintanti vertė, kuri, jei svyruoja žetonų ar valiutos kaina, dujų kaina keičiasi, kad išlaikytų tą pačią tikrąją vertę.
  • Dujų mokestis : Tai iš tikrųjų yra dujų kiekis, kurį reikia sumokėti vykdant tam tikrą sandorį ar programą (vadinamą sutartimi).

Taigi, jei kas nors bandys paleisti kodą, kuris veikia amžinai, sutartis ilgainiui viršys jos dujų limitą ir visas sandoris, kuriuo pasinaudota sutartimi, bus grąžintas į ankstesnę būseną.


Dabar, kai žinome apie valiutą, pažvelkime į procesą, kuris sukuria naują valiutą.

„Ethereum“ pamoka: kasyba

„Ethereum“, panašiai kaip ir kitos viešosios „blockchain“ technologijos, užtikrina saugumą, naudodamas skatinamąjį modelį. Tai vadinama darbo įrodymo mechanizmu. Žemiau pateiktame paveikslėlyje parodyta, kaip veikia ethereum kasyba:

susijungia į c ++

Žiūrint iš techninės pusės, naudojamas darbo įrodymo algoritmas vadinamas „Ethash“, kuris yra maišos algoritmas, įkvėptas „Dagger-Hashimoto“ algoritmo.

Dabar, kai pamatėme veikiančią ethereum architektūrą ir aptarėme jos esminius elementus, pažiūrėkime į realaus pasaulio problemą ir ethereum požiūrį į tą patį sprendimą.

„Ethereum“ mokymo programa: decentralizuotas minios finansavimo naudojimo atvejis

Problemos pareiškimas : Gera „idėja“ nėra viskas šiandieniniame pasaulyje norint pradėti sėkmingą verslą. Idėjai įgyvendinti reikia daug lėšų ir pastangų. Čia susidaro tokios organizacijos kaip „Kickstarter“. Jie teikia projektams viešą informaciją, reikalingą aukoms jų projektui įgyvendinti, kad jis būtų pradėtas vykdyti, tačiau centralizuota tokio motyvo architektūra turi neigiamų pusių, daugiausia dėl to, kaip elgiamasi su atlygiais. Kadangi centralizuota institucija priima visus sprendimus, sistemos yra linkusios į tokias taisykles:

  • kas praleido kampanijos terminą, daugiau negali patekti
  • bet koks donoras, apsigalvojęs, negali išeiti

metodas :

Mes naudojame decentralizuotą metodiką problemai spręsti, kaip paaiškinta toliau pateiktame paveikslėlyje:

Sprendimas :

Čia pateikiama tvirtumo sutartis dėl minėto problemos teiginio.

„pragma solidity“ ^ 0.4.16 sąsajos žetonas {funkcijos perdavimas (adreso imtuvas, uint suma)} sutartis „Crowdsale“ {adresas viešasis naudos gavėjas uint viešąjį finansavimą Tikslas uint viešoji suma Padidintas uint viešasis terminas uint viešosios kainos žetonas viešasis žetonas Atlygio atvaizdavimas (adresas => uint256) visuomenės balansas financeGoalReached = false Bool crowdsaleClosed = klaidingas įvykis GoalReached (adreso gavėjas, uint totalAmountRaised) įvykis FundTransfer (adreso atsarginė kopija, uint suma, bool isContribution) / ** * Constrctor funkcija * * Nustatykite savininko * / funkciją Crowdsale (adresas ifSuccessfulSendTo // adresas savininko, kai finansavimas sėkmingas, uint financeGoalInEthers // tikslinė suma, skirta padidinti uint durationInMinutes // duotas laikas uint etherCostOfEachToken // nuosavo kapitalo sąnaudos eterio adresu addressOfTokenUsedAsReward // žetono adresas) {naudos gavėjas = ifSuccessfulSendTo financeGoal = financeGoalInEthers * + durationInMinutes * 1 minutes price = etherCostOfEachToken * 1 eteris iki kenReward = token (addressOfTokenUsedAsReward)} / ** * Atsarginė funkcija * * Funkcija be pavadinimo yra numatytoji funkcija, kuri iškviečiama kaskart, kai kas nors siunčia pinigus į sutartį * / function () mokėtinas {reikalauti (! crowdsaleClosed) uint suma = msg. vertės balansas [msg.sender] + = sumos sumaRaised + = suma tokenReward.transfer (msg.sender, suma / kaina) FundTransfer (msg.sender, suma, tiesa)} modifikatorius afterDeadline () {if (now = financeGoal) {financeGoalReached = true GoalReached (naudos gavėjas, amountRaised)} crowdsaleClosed = true} / ** * Išimkite lėšas * * Patikrina, ar pasiektas tikslas ar laiko limitas, ir jei taip, ir ar buvo pasiektas finansavimo tikslas, * atsiunčia visą sumą paramos gavėjui. Jei tikslas nebuvo pasiektas, kiekvienas dalyvis gali atsiimti * sumą, kurią įnešė. * / function safeWithdrawal () afterDeadline {if (! financeGoalReached) {uint amount = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (suma> 0) {if (msg.sender.send (suma)) { „FundTransfer“ (pranešimo siuntėjas, suma, klaidinga)} else {balanceOf [msg.sender] = suma}}} if (financeGoalReached && naudos gavėjas == msg.sender) {if (gavėjas.siųsti (sumaRaised)) {FundTransfer (gavėjas, amountRaised, false)} else {// Jei nepavyksta išsiųsti lėšų gavėjui, atrakinkite finansuotojų balanso finansavimąGoalReached = false}}}}

Jei jus domina solidumo mokymasis, peržiūrėkite mūsų tinklaraštį , kuris naudojamas vystymuisisuasmenintasišmaniosios sutartys.

Jei norite išmokti „Blockchain“ ir kurti „Blockchain Technologies“ karjerą, patikrinkite mūsų kuris ateina su instruktorių vedamomis tiesioginėmis treniruotėmis ir realių projektų patirtimi. Šie mokymai padės jums išsamiau suprasti „Blockchain“ ir padės jums įsisavinti šį dalyką.

Turite mums klausimą? Prašau paminėti tai komentarų skiltyje ir mes kuo greičiau susisieksime su jumis.