Vodič za Ethereum - dublji pogled u Ethereum!



Ovaj Ethereum Tutorial objašnjava Ethereum s arhitektonskog stajališta, kao i kako čini najveću platformu za izgradnju DAPPS-a i DAO-a.

Ethereum Vodič:

U ovom blogu Ethereum Tutorial objasnit ću unutarnji rad arhitekture ethereuma, a također ću vam pokazati provedbu ethereuma kroz jednostavan pametni ugovor .

Ethereum vidim kao programabilni blockchain koji će u budućnosti služiti većini B2C poduzeća. Ethereum pruža programerima slobodu stvaranja složenih modela koji će se izvoditi na blockchainu, umjesto da ih ograniči na unaprijed definirane operacije poput Bitcoin blockchaina.





Ovim se pristupom Ethereum pretvorio u platformu za mnoštvo decentraliziranih aplikacija i organizacija koja uključuje, ali nije ograničena na kripto valute.

Iscrpno ću obrađivati ​​razne teme kroz rad ovog bloga 'Ethereum Tutorial'. Te teme uključuju:



Možete proći kroz ovu snimku Ethereum Tutorial-a gdje su naši instruktori detaljno objasnili teme to će vam pomoći da bolje razumijete ovaj koncept.

Vodič za Ethereum | Pametni ugovori Ethereuma | Edureka

Vodič za Ethereum: Računi za Ethereum

Mreža Ethereum ima dvije vrste računa, i to:



  • Vanjski računi
  • Ugovorni računi

Ovi računi, i vanjski i ugovorni, nazivaju se 'državnim objektima' i sastoje se od 'stanja' mreže ethereuma. Svaki objekt stanja ima točno definirano stanje. Za vanjske račune stanje se sastoji od stanja računa, dok je za ugovorne račune stanje definirano memorijom i stanjem.

Vanjske račune nazivat ću jednostavno računima. Ovi računi su u vlasništvu i predstavljaju ih vanjski agenti mreže koji uključuju svakog običnog korisnika, rudare, automatizirane agente itd.

Ti se računi obično kontroliraju uz pomoć algoritama kriptografije javnog ključa poput RSA. Glavna svrha vanjskih računa je služiti kao medij za interakciju korisnika s Ethereum Blockchainom.

S druge strane, ugovorni računi zbirka su koda koji se nalazi na blockchainu na određenoj adresi. Na te se ugovore poziva vanjski račun ili drugi ugovori putem određene funkcije poziva na akciju. Ti su ugovori napisani na skriptnim jezicima visoke razine poput Solidity, Serpent ili LLL. Svaki ugovor koji se nalazi na ethereum blockchainu pohranjen je u određenom formatu koji se naziva EVM (Ethereum Virtual Machine) bajtkod koji je binarni format specifičan za ethereum.

Samo će biti pošteno da objasnim EVM sada kad sam vam rekao za EVM-bytecode.

Vodič za Ethereum: Virtualni stroj za Ethereum

Ethereum na rustikalan način definira skup generaliziranih protokola koji su postali stupovi razvoja decentraliziranih aplikacija. U srcu ovoga leži virtualni stroj Ethereum. Slika ispod objašnjava arhitekturu:

Ethereum Architecture - Ethereum Tutorial - Edureka

traka napretka u html-u pomoću javascripta

Važno je napomenuti da, Ethereum Virtual Machine nije samo u potpunosti zaštićen, već i potpuno izoliran. To znači da kôd koji je trenutno pokrenut na EVM-u nema pristup mreži ili datotečnom sustavu i može štedljivo pristupiti drugim ugovorima.

Sad kad smo razumjeli srž platforme, pogledajmo dublje mrežne čvorove.

Vodič za Ethereum: Mreža Ethereum

Mreža ethereum je javna blockchain mreža. Čini osnovu svih decentraliziranih peer-to-peer aplikacija i organizacija pokrenutih na mreži. Mreža se sastoji od dvije vrste čvorova, naime punih čvorova i čvorova male težine.

Puni čvorovi sadrže cjelokupnu povijest transakcija od bloka postanka. Oni su punopravni dokaz integriteta blockchain mreže. Puni čvorovi moraju sadržavati svaku transakciju koja je potvrđena u skladu s pravilima postavljenim u Ethereumovim specifikacijama.

Lagani čvorovi s druge strane sadrže samo podskup cijelog blockchaina. Ove se vrste čvorova uglavnom koriste u e-novčanicima koji po prirodi moraju biti male težine, pa se na njih ne može pohraniti cijeli blockchain. Ti čvorovi, za razliku od njih, ne provjeravaju svaki blok ili transakciju i možda neće imati kopiju trenutnog stanja blokčeina. Oslanjaju se na pune čvorove kako bi im pružili detalje koji nedostaju (ili im jednostavno nedostaje određena funkcionalnost). Prednost laganih čvorova je u tome što se mogu puno brže pokretati i raditi, mogu raditi na računarima / memorijskim uređajima i ne pojesti ni približno toliko prostora za pohranu.

Svaki javni blockchain ima priloženu valutu. Ni Ethereum nije drugačiji. Pogledajmo dublje kriptovalutu Ethereuma.

Vodič za Ethereum: Eter i plin

Eter je naziv kripto-valute koja se koristi za plaćanje transakcija na ethereum mreži. Osim plaćanja općih transakcija i usluga, Ether se također koristi za kupnju plina, koji se pak koristi za plaćanje proračuna unutar EVM-a.

Eter je metrička jedinica i ima puno apoena koji pomažu u preciznom plaćanju transakcija i plina. Najmanja denominacija ili osnovna jedinica naziva se Wei. Oznake zajedno sa njihovim određenim imenima mogu se vidjeti u donjoj tablici:

JediniceWei vrijednostWei
wei1 weijedan
Kwei1e3 wei1.000
Mwei1e6 wei1.000.000
Plesti1e9 wei1.000.000.000
mikroeter1e12 wei1.000.000.000.000
milliEther1e15 wei1.000.000.000.000.000
Eter1e18 wei1.000.000.000.000.000.000

Kao što je ranije spomenuto, znamo da je EVM odgovoran za pokretanje koda koji je raspoređen na njegovoj mreži. Pa što sprječava nekoga da pokrene beskonačnu petlju na EVM-u i potpuno preoptereti njegovu memoriju? Tu dolazi koncept plina.

Plin se koristi kao mjerni podatak za plaćanje računskih resursa na mreži. Svaki ugovor na mreži ima zadanu maksimalnu količinu plina koju može koristiti za svoje proračune. Ovo je poznato kao „ Ograničenje plina ”Ostali povezani uvjeti za plin su sljedeći:

  • Cijena plina : Ovo je cijena plina u smislu tokena poput Etera i njegovih drugih denominacija. Da bi se stabilizirala vrijednost plina, cijena plina je plutajuća vrijednost takva da se, ako cijena žetona ili valute oscilira, cijena plina mijenja kako bi zadržala istu stvarnu vrijednost.
  • Naknada za plin : To je zapravo količina plina koja je potrebna za plaćanje određene transakcije ili programa (koji se naziva ugovor).

Stoga, ako netko pokuša pokrenuti komad koda koji radi zauvijek, ugovor će na kraju premašiti ograničenje plina i cijela transakcija koja je pozivala na ugovor vratit će se u prethodno stanje.


Sad kad znamo za valutu, pogledajmo postupak generiranja nove valute.

Vodič za Ethereum: Rudarstvo

Ethereum, slično kao i ostale javne blockchain tehnologije, osigurava sigurnost modelom temeljenim na poticajima. To se naziva mehanizmom provjere rada. Donja slika prikazuje kako funkcionira rudarstvo ethereuma:

Iz tehničke perspektive, korišteni algoritam provjere rada naziva se Ethash, algoritam raspršivanja koji je nadahnut Dagger-Hashimoto algoritmom.

Sad kad smo vidjeli radnu arhitekturu ethereuma i raspravljali o njenim ključnim elementima, pogledajmo stvarni problem i ethereum pristup rješavanju istog.

Vodič za Ethereum: Slučaj upotrebe decentraliziranog mnoštva

Izjava o problemu : Dobra ‘ideja’ nije sve u današnjem svijetu za pokretanje uspješnog posla. Za provedbu ideje potrebno je puno sredstava i truda. Ovdje se pojavljuju organizacije poput 'Kickstarter'. Oni pružaju projekte s javnim izlaganjem potrebnim za donacije za njihov projekt, kako bi se pokrenuo, ali centralizirana arhitektura takvog motiva ima i loših strana, uglavnom u načinu na koji se rješavaju nagrade. Budući da centralizirano tijelo donosi sve odluke, sustavi su skloni pravilima poput:

  • svatko tko je propustio rok za kampanju više ne može ući
  • bilo koji donator koji se predomislio ne može izaći

Pristup :

Za rješavanje problema koristimo decentraliziranu metodologiju kako je objašnjeno na donjoj slici:

Riješenje :

Evo solidnog pametnog ugovora za gornju izjavu problema.

pragma solidity ^ 0.4.16 token sučelja {prijenos funkcije (adresa primatelj, uint iznos)} ugovor Crowdsale {adresa javni korisnik uint javno financiranjeCil uint javni iznosPodignuti uint javni rok uint javna cijena token javni tokenNagradno mapiranje (address => uint256) javni bilansBol financeGoalReached = false bool crowdsaleClosed = false event GoalReached (adresa primatelja, uint totalAmountRaised) događaj FundTransfer (adresa podloga, iznos uint, bool isContribution) / ** * Constrctor funkcija * * Postavljanje vlasnika * / funkcija Crowdsale (adresa ifSuccessfulSendTo // adresa vlasnika kada je financiranje uspješno uint financeGoalInEthers // ciljni iznos za prikupljanje uint durationInMinutes // dano vrijeme uint etherCostOfEachToken // trošak kapitala u eterskoj adresi addressOfTokenUsedAsReward // token address) {korisnik = akoSuccessfulSendTo financiranjeGoal = financeGoalInE + durationInMinutes * 1 minuta cijena = etherCostOfEachToken * 1 eter do kenReward = žeton (addressOfTokenUsedAsReward)} / ** * Rezervna funkcija * * Funkcija bez imena zadana je funkcija koja se poziva kad god netko pošalje sredstva na ugovor * / funkcija () plativo {zahtijeva (! crowdsaleClosed) uint iznos = msg. vrijednost bilanceOf [msg.sender] + = iznosRaised + = iznos tokenReward.transfer (msg.sender, iznos / cijena) FundTransfer (msg.sender, amount, true)} modifikator afterDeadline () {if (now = financeGoal) {fundGoalReached = true GoalReached (korisnik, prikupljeni iznos)} crowdsaleClosed = true} / ** * Povucite sredstva * * Provjerava je li postignut cilj ili vremensko ograničenje, a ako jeste i je li cilj financiranja postignut, * šalje cjelokupan iznos korisniku. Ako cilj nije postignut, svaki suradnik može povući * iznos koji je pridonio. * / function safeWithdrawal () afterDeadline {if (! financeGoalReached) {uint iznos = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (iznos> 0) {if (msg.sender.send (iznos)) { FundTransfer (msg.sender, amount, false)} else {balanceOf [msg.sender] = amount}}} if (financiranjeGoalReached && korisnik == msg.sender) {if (korisnik.send (iznos prikupljen)) {FundTransfer (korisnik, amountRaised, false)} else {// Ako ne uspijemo poslati sredstva korisniku, otključajte donatore uravnotežite financiranjeGoalReached = false}}}}

U slučaju da ste zainteresirani za učenje solidnosti, pogledajte naš blog na , koji se koristi za razvojpersonaliziranopametni ugovori.

Ako želite naučiti Blockchain i izgraditi karijeru u Blockchain Technologies, onda pogledajte našu koja dolazi s treningom uživo pod vodstvom instruktora i iskustvom u stvarnom životu. Ovaj trening pomoći će vam da dublje razumijete Blockchain i postignete majstorstvo nad tom temom.

Imate pitanje za nas? Navedite to u odjeljku za komentare i javit ćemo vam se u najkraćem mogućem roku.