Ethereum apmācība - dziļāks ieskats Ethereum!

Šī Ethereum apmācība izskaidro Ethereum no arhitektūras viedokļa, kā arī to, kā tā veido lielāko platformu DAPPS un DAO veidošanai.

Ethereum Apmācība:

Šajā Ethereum apmācības emuārā es izskaidrošu ethereum arhitektūras iekšējo darbību un parādīšu arī ethereum ieviešanu, izmantojot vienkāršu gudrs līgums .

Es uzskatu Ethereum kā programmējamu blokķēdi, kas nākotnē kalpos lielākajai daļai B2C uzņēmumu. Ethereum piešķir izstrādātājiem brīvību izveidot sarežģītus modeļus, kas jāizpilda blokķēdē, nevis ierobežo tos ar iepriekš noteiktām darbībām, piemēram, ar Bitcoin blokķēdi.





Izmantojot šo pieeju, Ethereum ir kļuvis par platformu daudzām decentralizētām lietojumprogrammām un organizācijām, kas ietver, bet neaprobežojas ar kriptovalūtām.

Izstrādājot šo “Ethereum Tutorial” emuāru, es izsmeļoši aplūkošu dažādas tēmas. Šīs tēmas ietver:



Jūs varat iziet šo Ethereum apmācības ierakstu, kur mūsu instruktori ir detalizēti izskaidrojuši tēmas kas palīdzēs labāk izprast šo jēdzienu.

Ethereum apmācība | Ethereum viedie līgumi Edureka

Ethereum apmācība: Ethereum konti

Ethereum tīklam ir divu veidu konti, proti:



  • Ārējie konti
  • Līguma konti

Šie ārējie konti un līgumi tiek saukti par “valsts objektiem” un ietver ethereum tīkla “stāvokli”. Katram valsts objektam ir precīzi noteikts stāvoklis. Ārējiem kontiem stāvokli veido konta atlikums, savukārt līgumu kontiem stāvokli nosaka atmiņas krātuve un atlikums.

Es atsaukšos uz ārējiem kontiem vienkārši kā uz kontiem. Šie konti pieder tīkla ārējiem aģentiem, kas ietver ikvienu parastu lietotāju, kalnračus, automatizētus aģentus utt.

Šie konti parasti tiek kontrolēti, izmantojot publiskās atslēgas kriptogrāfijas algoritmus, piemēram, RSA. Ārējo kontu galvenais mērķis ir kalpot kā informācijas nesējs lietotājiem mijiedarbībai ar Ethereum Blockchain.

No otras puses, līgumu konti ir kodu kolekcija, kas atrodas blokķēdē noteiktā adresē. Uz šiem līgumiem atsaucas ārējie konti vai citi līgumi, izmantojot īpašu aicinājuma uz darbību funkciju. Šie līgumi ir rakstīti augsta līmeņa skriptu valodās, piemēram, Solidity, Serpent vai LLL. Katrs līgums, kas atrodas ethereum bloku ķēdē, tiek saglabāts noteiktā formātā, ko sauc par EVM (Ethereum Virtual Machine) bytecode, kas ir ethereum specifisks binārs formāts.

Tas būs tikai godīgi, ka es izskaidroju EVM tagad, kad esmu jums pastāstījis par EVM-baitu kodu.

Ethereum apmācība: Ethereum virtuālā mašīna

Ethereum zemnieciskā veidā definē vispārinātu protokolu kopumu, kas ir kļuvuši par decentralizētu lietojumu attīstības pīlāriem. Tā pamatā ir Ethereum virtuālā mašīna. Zemāk redzamais attēls izskaidro arhitektūru:

Ethereum arhitektūra - Ethereum apmācība - Edureka

kas ir instances mainīgais Java

Ir svarīgi atzīmēt, ka Ethereum virtuālā mašīna ir ne tikai pilnībā ievietota smilšu kastē, bet arī pilnībā izolēta. Tas nozīmē, ka kodam, kas pašlaik darbojas EVM, nav piekļuves tīklam vai failu sistēmai un tas var taupīgi piekļūt citiem līgumiem.

Tagad, kad mēs saprotam platformas kodolu, apskatīsim tīkla mezglus dziļāk.

Ethereum apmācība: Ethereum tīkls

Ethereum tīkls ir publisks blokķēdes tīkls. Tas ir pamats visām decentralizētajām vienādranga lietojumprogrammām un organizācijām, kas darbojas tīklā. Tīklu veido divu veidu mezgli, proti, pilni mezgli un vieglie mezgli.

Pilni mezgli satur visu darījumu vēsturi kopš ģenēzes bloķēšanas. Tie ir pilnvērtīgs blokķēdes tīkla integritātes pierādījums. Pilnos mezglos ir jāietver katrs transakcija, kas ir pārbaudīta saskaņā ar noteikumiem, kas noteikti Ethereum specifikācijās.

Vieglie mezgli no otras puses, satur tikai visas blokķēdes apakškopu. Šāda veida mezglus galvenokārt izmanto e-makos, kuriem pēc būtības ir jābūt vieglam, un tāpēc uz tiem nevar saglabāt visu blokķēdi. Šie mezgli, gluži pretēji, nepārbauda katru bloku vai darījumu, un tiem var nebūt pašreizējā blokķēdes stāvokļa kopijas. Viņi paļaujas uz pilniem mezgliem, lai sniegtu viņiem trūkstošās detaļas (vai vienkārši trūkst īpašas funkcionalitātes). Gaismas mezglu priekšrocība ir tā, ka tie var daudz ātrāk piecelties un darboties, var darboties vairāk ar skaitļošanu / atmiņu ierobežotās ierīcēs un neizēst gandrīz tik daudz krātuves.

Katrā publiskajā blokķēdē ir pievienota valūta. Ethereum neatšķiras. Apskatīsim dziļāk Ethereum kriptovalūtu.

Ethereum apmācība: ēteris un gāze

Ēteris ir kriptovalūtas nosaukums, ko izmanto, lai apmaksātu darījumus ethereum tīklā. Papildus samaksai par vispārējiem darījumiem un pakalpojumiem, Ēteris tiek izmantots arī gāzes pirkšanai, kas savukārt tiek izmantota, lai samaksātu par aprēķinu EVM ietvaros.

Ēteris ir metriskā vienība, un tajā ir daudz nominālu, kas palīdz precīzi samaksāt par darījumiem un gāzi. Vismazāko nominālvērtību, arī bāzes vienību sauc par Wei. Nosaukumi kopā ar to īpašajiem nosaukumiem ir redzami zemāk esošajā tabulā:

VienībasVei vērtībaVei
wei1 weiviens
Kwei1e3 wei1000
Mwei1e6 wei1 000 000
Adīt1e9 wei1 000 000 000
mikro ēteris1e12 wei1 000 000 000 000
milliEther1e15 wei1 000 000 000 000 000
Ēteris1e18 wei1 000 000 000 000 000 000

Kā jau tika apspriests iepriekš, mēs zinām, ka EVM ir atbildīgs par tā tīklā izvietotā koda palaišanu. Tātad, kas traucē kādam palaist bezgalīgu cilpu EVM un pilnībā pārslogot tā atmiņu? Šeit rodas gāzes jēdziens.

Gāzi izmanto kā metriku, lai apmaksātu tīkla skaitļošanas resursus. Katrā tīkla līgumā ir noteikts maksimālais gāzes daudzums, ko tas var izmantot aprēķiniem. Tas ir pazīstams kā “ Gāzes ierobežojums ”Citi saistītie gāzes termini ir šādi:

  • Gāzes cena : Šīs ir gāzes izmaksas tādu marķieru kā Ēteris un citu nominālu izteiksmē. Lai stabilizētu gāzes vērtību, gāzes cena ir mainīga vērtība, ja, ja žetonu vai valūtas izmaksas svārstās, gāzes cena mainās, lai saglabātu to pašu reālo vērtību.
  • Gāzes maksa : Tas faktiski ir gāzes daudzums, kas jāmaksā, lai izpildītu konkrētu darījumu vai programmu (sauktu par līgumu).

Tādējādi, ja kāds mēģina palaist koda fragmentu, kas darbojas uz visiem laikiem, līgums galu galā pārsniegs tā gāzes limitu un viss darījums, kas izmantoja līgumu, tiks atgriezts iepriekšējā stāvoklī.


Tagad, kad mēs zinām par valūtu, apskatīsim procesu, kas rada jaunu valūtu.

Ethereum apmācība: kalnrūpniecība

Ethereum, līdzīgi kā citas publiskās blokķēdes tehnoloģijas, nodrošina drošību, izmantojot uz stimuliem balstītu modeli. To sauc par darba pierādīšanas mehānismu. Zemāk redzamais attēls parāda, kā darbojas ethereum ieguve:

No tehniskā viedokļa izmantoto darba pierādīšanas algoritmu sauc par Ethash, kas ir jaukšanas algoritms, kuru iedvesmojis Dagger-Hashimoto algoritms.

Tagad, kad mēs esam redzējuši ethereum darba arhitektūru un apsprieduši tā būtiskos elementus, redzēsim reālās pasaules problēmu un ethereum pieeju, lai to atrisinātu.

Ethereum apmācība: Decentralizēts pūļa finansēšanas izmantošanas gadījums

Problēmas izklāsts : Laba “ideja” nav viss mūsdienu pasaulē, lai sāktu veiksmīgu biznesu. Idejas īstenošanai nepieciešams liels finansējums un pūles. Šeit redzamas tādas organizācijas kā “Kickstarter”. Viņi nodrošina projektus ar sabiedrības saskarsmi, kas nepieciešama ziedojumiem viņu projektam, lai tas sāktu darboties, taču šāda motīva centralizētajai arhitektūrai ir savas ēnas puses, galvenokārt tas, kā tiek apstrādāta atlīdzība. Tā kā centralizētā iestāde pieņem visus lēmumus, sistēmām ir tendence uz šādiem noteikumiem:

  • ikviens, kurš nokavējis kampaņas termiņu, vairs nevar iekļūt
  • jebkurš ziedotājs, kurš pārdomāja, nevar izkļūt

Pieeja :

Mēs izmantojam decentralizētu metodiku problēmas risināšanai, kā paskaidrots zemāk redzamajā attēlā:

Risinājums :

Šeit ir solīdais viedais līgums par iepriekš minēto problēmas izklāstu.

pragma solidity ^ 0.4.16 interfeisa marķieris {funkciju pārsūtīšana (adreses uztvērējs, uint summa)} līgums Crowdsale {adrese valsts saņēmējs uint publiskais finansējums Goal uint public summa Paaugstināts uint publiskais termiņš uint publiskais cenu marķieris publiskais marķieris Atlīdzības kartēšana (adrese => uint256) publiskā bilance no bool financeGoalReached = false bool crowdsaleClosed = viltus notikums GoalReached (adresāta saņēmējs, uint totalAmountRaised) notikums FundTransfer (adreses atbalstītājs, uint summa, bool isContribution) / ** * Constrctor funkcija * * Iestatiet īpašnieku * / funkciju Crowdsale (adrese ifSuccessfulSendTo // adrese īpašnieka īpašniekam, kad finansējums ir veiksmīgs, uint financing + durationInMinutes * 1 minūtes cena = etherCostOfEachToken * 1 ēteris līdz kenReward = token (addressOfTokenUsedAsReward)} / ** * Fallback funkcija * * Funkcija bez nosaukuma ir noklusējuma funkcija, kas tiek izsaukta ikreiz, kad kāds nosūta līdzekļus līgumam * / function () payable {pieprasīt (! crowdsaleClosed) uint summa = msg. vērtības atlikumsOf [msg.sender] + = summa amountRaised + = summa tokenReward.transfer (msg.sender, summa / cena) FundTransfer (msg.sender, summa, taisnība)} modifikators afterDeadline () {if (now = financeGoal) {financeGoalReached = true GoalReached (saņēmējs, summa paaugstināts)} crowdsaleClosed = true} / ** * Izņemiet līdzekļus * * Pārbauda, ​​vai mērķis vai laika ierobežojums ir sasniegts, un, ja ir, un vai finansēšanas mērķis ir sasniegts, * nosūta visu summu saņēmējam. Ja mērķis netika sasniegts, katrs līdzautors var izņemt * summu, kuru viņš ieguldīja. * / 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, nepatiesa)} else {balanceOf [msg.sender] = summa}}} if (financeGoalReached && saņēmējs == msg.sender) {if (beneficiary.send (summaRaised)) {FundTransfer (saņēmējs, amountRaised, false)} else {// Ja mums neizdodas nosūtīt līdzekļus saņēmējam, izmantojiet finansētāju atlikuma finansēšanuGoalReached = false}}}}

Gadījumā, ja jūs interesē stingrības mācīšanās, skatiet mūsu emuāru vietnē , ko izmanto attīstībaipersonalizētsviedie līgumi.

Ja vēlaties iemācīties Blockchain un veidot karjeru Blockchain Technologies, pārbaudiet mūsu kas nāk ar instruktoru vadītu tiešraides apmācību un reālās dzīves projektu pieredzi. Šī apmācība palīdzēs jums padziļināti izprast Blockchain un palīdzēs jums apgūt priekšmetu.

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā un mēs pēc iespējas ātrāk sazināsimies ar jums.