Ethereumi õpetus - sügavam pilk Ethereumisse!



See Ethereumi õpetus selgitab Ethereumit arhitektuurilisest vaatenurgast ja ka seda, kuidas see moodustab DAPPS-i ja DAO-de loomise kõige suurema platvormi.

Ethereum Õpetus:

Selles Ethereumi õpetuse ajaveebis selgitan Ethereumi arhitektuuri sisemist tööd ja näitan teile ka Ethereumi rakendamist lihtsa tark leping .

Ma näen Ethereumi programmeeritava plokiahelana, mis teenib tulevikus enamikku B2C ettevõttest. Ethereum annab arendajatele vabaduse luua plokiahelas käivitatavaid keerukaid mudeleid, selle asemel, et piirata neid eelnevalt määratletud toimingutega nagu Bitcoini plokiahel.





Selle lähenemisviisi abil on Ethereum muutunud platvormiks paljude detsentraliseeritud rakenduste ja organisatsioonide jaoks, mis hõlmab krüptovaluutasid, kuid ei piirdu nendega.

Selle Ethereumi õpetuse ajaveebi kaudu kajastan ammendavalt erinevaid teemasid. Nende teemade hulka kuuluvad:



Võite läbida selle Ethereumi õpetuse salvestuse, kus meie juhendajad on teemasid üksikasjalikult selgitanud mis aitab teil seda mõistet paremini mõista.

Ethereumi õpetus | Ethereumi nutikad lepingud Edureka

Ethereumi õpetus: Ethereumi kontod

Ethereumi võrgul on kahte tüüpi kontosid, nimelt:



  • Välised kontod
  • Lepingukontod

Neid kontosid, nii väliseid kui ka lepingulisi, nimetatakse 'olekuobjektideks' ja need sisaldavad ethereumi võrgu olekut. Igal riigiobjektil on täpselt määratletud olek. Väliskontode puhul koosneb olek konto saldost, lepinguliste kontode puhul määratakse olek mälusalvestuse ja saldo järgi.

Pean väliseid kontosid lihtsalt kontodeks. Neid kontosid omavad võrgu välised esindajad, kuhu kuuluvad kõik tavakasutajad, kaevurid, automatiseeritud agendid jne.

Neid kontosid kontrollitakse tavaliselt avaliku võtme krüptograafiaalgoritmide abil, näiteks RSA. Väliskontode põhieesmärk on olla meediumina kasutajatele Ethereumi plokiahelaga suhtlemiseks.

Lepingukontod on seevastu koodide kogu, mis asub plokiahelas kindlal aadressil. Nendele lepingutele tuginevad väliskontod või muud lepingud konkreetse tegevusele kutsumise funktsiooni kaudu. Need lepingud on kirjutatud kõrgetasemelistes skriptikeeltes nagu Solidity, Serpent või LLL. Iga leping, mis asub ethereumi plokiahelas, on salvestatud kindlas vormingus nimega EVM (Ethereum Virtual Machine) baitkood, mis on ethereumi spetsiifiline kahendvorming.

Aus on ainult see, kui ma selgitan EVM-i nüüd, kui olen teile rääkinud EVM-baitkoodist.

Ethereumi õpetus: Ethereumi virtuaalne masin

Ethereum määratleb maalähedal viisil üldiste protokollide komplekti, millest on saanud detsentraliseeritud rakenduste arendamise alustalad. Selle keskmes peitub Ethereumi virtuaalne masin. Allpool olev joonis selgitab arhitektuuri:

Ethereumi arhitektuur - Ethereumi õpetus - Edureka

jamas hashmap ja hashtable

Oluline on märkida, et Ethereumi virtuaalne masin pole mitte ainult täielikult liivakastis, vaid ka täielikult isoleeritud. See tähendab, et praegu EVM-is töötaval koodil pole juurdepääsu võrgule ega failisüsteemile ja see võib teistele lepingutele säästlikult juurde pääseda.

Nüüd, kui oleme aru saanud platvormi tuumast, vaatame võrgusõlmi põhjalikumalt.

Ethereumi õpetus: Ethereumi võrk

Ethereumi võrk on avalik plokiahelate võrk. See on kõigi võrgus töötavate detsentraliseeritud peer-to-peer rakenduste ja organisatsioonide alus. Võrk koosneb kahte tüüpi sõlmedest, nimelt täisõlmedest ja kergekaalulistest sõlmedest.

Täielikud sõlmed sisaldavad kogu tehingute ajalugu alates geneesi blokeerimisest. Need on täieõiguslik tõestus plokiahelate võrgu terviklikkuse kohta. Täielikud sõlmed peavad sisaldama kõiki tehinguid, mis on kontrollitud vastavalt Ethereumi spetsifikatsioonides kehtestatud reeglitele.

Kerged sõlmed teisest küljest sisaldavad ainult kogu plokiahela alamhulka. Seda tüüpi sõlme kasutatakse enamasti e-rahakottides, mis peavad olema oma olemuselt kerged ja seetõttu ei saa kogu plokiahelat neile salvestada. Need sõlmed seevastu ei kontrolli kõiki plokke ega tehinguid ning neil ei pruugi olla praeguse plokiahela oleku koopiat. Nad tuginevad täielike sõlmede pakkumiseks neile puuduvad üksikasjad (või lihtsalt puudub konkreetne funktsionaalsus). Valgussõlmede eeliseks on see, et nad saavad palju kiiremini käima ja tööle, saavad töötada arvutuslikult / mälupiiranguga seadmetes ega söö peaaegu sama palju salvestusruumi.

Igal avalikul plokiahelal on seotud valuuta. Ethereum ei erine. Vaatame Ethereumi krüptoraha sügavamalt.

Ethereumi õpetus: eeter ja gaas

Eeter on krüptovaluuta nimi, mida kasutatakse ethereumi võrgus tehingute eest tasumiseks. Lisaks üldiste tehingute ja teenuste eest tasumisele kasutatakse Eetrit ka gaasi ostmiseks, mida omakorda kasutatakse EVM-i arvutuste eest tasumiseks.

Eeter on mõõtühik ja sellel on palju nimiväärtusi, mis aitavad tehingute ja gaasi eest täpselt tasuda. Väikseimat nimiväärtust ehk ka põhiseadet nimetatakse Wei-ks. Nimetused koos konkreetsete nimedega on toodud allolevas tabelis:

ÜhikudWei väärtusWei
wei1 weiüks
Kwei1e3 wei1000
Mwei1e6 wei1 000 000
Koo1e9 wei1 000 000 000
mikroEther1e12 wei1 000 000 000 000
milliEther1e15 wei1 000 000 000 000 000
Eeter1e18 wei1 000 000 000 000 000 000

Nagu varem arutletud, teame, et EVM vastutab oma võrgus juurutatud koodi käitamise eest. Mis siis takistab kedagi EVM-is lõpmatuid silmusid käivitamast ja selle mälu täielikult ülekoormamast? Siit tuleb gaasi mõiste.

Gaasi kasutatakse mõõdikuna võrgu arvutuslike ressursside eest tasumisel. Igas võrgus olevas lepingus on kindlaks määratud maksimaalne gaasikogus, mida ta saab arvutusteks kasutada. Seda tuntakse kui Gaasipiirang ”Muud seonduvad gaasiterminid on järgmised:

  • Gaasi hind : See on gaasikulu selliste žetoonide nagu Eeter ja teiste nimiväärtuste osas. Gaasi väärtuse stabiliseerimiseks on gaasi hind ujuv väärtus, nii et kui märkide või valuuta hind kõigub, muutub gaasi hind, et säilitada sama tegelik väärtus.
  • Gaasitasu : See on tegelikult summa, mis tuleb maksta konkreetse tehingu või programmi (nn leping) käivitamiseks.

Seega, kui keegi proovib käivitada igavesti töötava kooditüki, ületab leping lõpuks gaasilimiidi ja kogu lepinguga seotud tehing viiakse tagasi oma eelmisesse olekusse.


Nüüd, kui oleme valuutast teadlikud, heitkem pilk uue valuuta loomise protsessile.

Ethereumi õpetus: kaevandamine

Ethereum tagab sarnaselt teiste avalike plokiahelate tehnoloogiatega turvalisuse stiimulipõhise mudeli kaudu. Seda nimetatakse töökindluse mehhanismiks. Allpool olev joonis näitab, kuidas ethereumi kaevandamine töötab:

Tehnilisemast vaatenurgast nimetatakse kasutatava töökindluse algoritmi Ethash, mis on pistoda-algoritm, mis on inspireeritud pistoda-Hashimoto algoritmist.

Nüüd, kui oleme näinud ethereumi tööarhitektuuri ja arutanud selle olulisi elemente, näeme reaalse maailma probleemi ja ethereumi lähenemisviisi selle lahendamiseks.

Ethereumi õpetus: rahva detsentraliseeritud rahastamise kasutamise juhtum

Probleemipüstituses : Hea „idee” pole tänapäeva maailmas kõik eduka ettevõtte alustamiseks. Idee elluviimiseks on vaja palju rahastada ja vaeva näha. Siin tulevad pildile sellised organisatsioonid nagu “Kickstarter”. Nad pakuvad projektidele avalikkusele vajalikku annetust, mis on vajalik nende projekti käivitamiseks annetuste tegemiseks, kuid sellise motiivi tsentraliseeritud arhitektuuril on oma varjuküljed, peamiselt kasu saamise viisis. Kuna tsentraliseeritud asutus teeb kõik otsused, on süsteemid altid järgmistele reeglitele:

  • igaüks, kes kampaania tähtajast mööda pani, enam sisse ei pääse
  • ükski doonor, kes meelt muutis, ei saa sealt välja

Lähenemine :

Võtame probleemi lahendamiseks detsentraliseeritud metoodika, nagu on selgitatud alloleval pildil:

Lahendus :

Siin on ülaltoodud probleemilausega seotud nutikas leping.

pragma solidity ^ 0.4.16 liidese luba {funktsiooni ülekandmine (aadressi vastuvõtja, uint summa)} leping Crowdsale {aadress avalik kasusaaja uint avalik rahastamine Eesmärk uint avalik summa Tõstetud uint avalik tähtaeg uint avaliku hinna märgis avalik märk Preemia kaardistamine (aadress => uint256) avalik saldo financeGoalReached = false bool crowdsaleClosed = vale sündmus GoalReached (aadressi saaja, uint totalAmountRaised) sündmus FundTransfer (aadressi varundaja, uint summa, bool isContribution) / ** * Konstruktori funktsioon * * Omaniku seadistamine * / funktsioon Crowdsale (aadress ifSuccessfulSendTo // aadress omaniku kui rahastamine on edukas uint financeGoalInEthers // sihtsumma uinti kestuse tõstmiseks + durationInMinutes * 1 minuti hind = etherCostOfEachToken * 1 eeter kuni kenReward = token (addressOfTokenUsedAsReward)} / ** * varukoopia * * funktsioon ilma nimeta on vaikefunktsioon, mida kutsutakse alati, kui keegi saadab raha lepingule * / function () makstav {nõuda (! crowdsaleClosed) uint summa = msg. väärtusbilanss [msg.sender] + = summa summaRaised + = summa tokenReward.transfer (msg.sender, summa / hind) FundTransfer (msg.sender, summa, tõene)} modifikaator afterDeadline () {if (now = financeGoal) {financeGoalReached = true GoalReached (hüvitise saaja, summa on tõstetud)} crowdsaleClosed = true} / ** * Raha välja võtma * * Kontrollib, kas eesmärk või tähtaeg on saavutatud ning kui jah, ja kui rahastamise eesmärk on saavutatud, saadab kogu summa * abisaajale. Kui eesmärki ei saavutatud, saab iga kaastöötaja * oma panustatud summa välja võtta. * / function safeWithdrawal () afterDeadline {if (! financeGoalReached) {uint summa = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (summa> 0) {if (msg.sender.send (summa)) { FundTransfer (msg.sender, summa, vale)} else {balanceOf [msg.sender] = summa}}} if (financeGoalReached && kedvezménye == msg.sender) {if (saaja.send (summaRaised)) {FundTransfer (saaja, summaRaised, vale)} else {// Kui meil ei õnnestu raha saajale saata, avage rahastajate saldo rahastamineGoalReached = false}}}}

Kui olete huvitatud soliidsuse õppimisest, vaadake meie ajaveebi , mida kasutatakse arendamiseksisikupärastatudnutikad lepingud.

Kui soovite õppida Blockchaini ja luua karjääri Blockchain Technologies'is, vaadake meie mis on varustatud juhendajate juhitud elava koolituse ja reaalse elu projektikogemusega. See koolitus aitab teil Blockchaini põhjalikumalt mõista ja aitab teil selle teema üle meisterlikkust saavutada.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja me pöördume teie poole niipea kui võimalik.