Ethereumin opetusohjelma - syvempi katsaus Ethereumiin!



Tämä Ethereumin opetusohjelma selittää Ethereumin arkkitehtoniselta kannalta ja myös sen, kuinka se muodostaa suurimman alustan DAPPS: n ja DAO: n rakentamiseen.

Ethereum Opetusohjelma:

Tässä Ethereumin opetusblogissa selitän ethereumin arkkitehtuurin sisäistä toimintaa ja näytän sinulle myös ethereumin toteutuksen yksinkertaisen älykäs sopimus .

Mielestäni Ethereum on ohjelmoitava lohkoketju, joka palvelee suurinta osaa B2C-yrityksistä tulevaisuudessa. Ethereum antaa kehittäjille vapauden luoda monimutkaisia ​​malleja, jotka suoritetaan lohkoketjussa sen sijaan, että rajoitettaisiin niihin ennalta määriteltyihin toimintoihin, kuten Bitcoin-lohkoketjuun.





Tämän lähestymistavan avulla Ethereum on muuttanut itsensä alustaksi lukuisille hajautetuille sovelluksille ja organisaatioille, jotka sisältävät, mutta ei rajoitu niihin, salausvaluutat.

Käsittelen useita aiheita tyhjentävästi tämän 'Ethereum Tutorial' -blogin kautta. Näitä aiheita ovat:



Voit käydä läpi tämän Ethereum-opetusohjelman nauhoituksen, jossa ohjaajamme ovat selittäneet aiheita yksityiskohtaisesti joka auttaa sinua ymmärtämään tämän käsitteen paremmin.

Ethereumin opetusohjelma Ethereum-älykkäät sopimukset Edureka

Ethereumin opetusohjelma: Ethereumin tilit

Ethereum-verkostolla on kahden tyyppisiä tilejä:



  • Ulkoiset tilit
  • Sopimustilit

Näihin tileihin, sekä ulkoisiin että sopimuksiin, viitataan 'valtion objekteina' ja ne sisältävät ethereum-verkon 'tilan'. Jokaisella valtionobjektilla on hyvin määritelty tila. Ulkoisten tilien tila koostuu tilisaldosta, kun taas sopimustileillä tila määritetään muistin tallennustilalla ja saldolla.

Tarkoitan ulkoisia tilejä yksinkertaisesti tileinä. Nämä tilit omistaa verkon ulkopuoliset edustajat, joihin kuuluvat kaikki tavalliset käyttäjät, kaivostyöläiset, automaattiset edustajat jne.

Näitä tilejä hallitaan yleensä julkisen avaimen salausalgoritmien, kuten RSA, avulla. Ulkoisten tilien päätarkoitus on toimia välineenä käyttäjille vuorovaikutuksessa Ethereum Blockchainin kanssa.

Sopimustilit ovat toisaalta kokoelma koodia, joka sijaitsee lohkoketjussa tietyssä osoitteessa. Näihin sopimuksiin vedotaan ulkoisilla tileillä tai muilla sopimuksilla erityisen toimintakehotuksen avulla. Nämä sopimukset on kirjoitettu korkean tason komentosarjakielillä, kuten Solidity, Serpent tai LLL. Jokainen ethereum-lohkoketjussa oleva sopimus tallennetaan tietyssä muodossa nimeltä EVM (Ethereum Virtual Machine) tavukoodi, joka on ethereum-spesifinen binaarinen muoto.

On vain reilua, että selitän EVM: ää nyt, kun olen kertonut sinulle EVM-tavukoodista.

Ethereumin opetusohjelma: Ethereumin virtuaalikone

Ethereum määrittelee maalaismaisella tavalla joukon yleisiä protokollia, joista on tullut hajautettujen sovellusten kehittämisen pilareita. Tämän ytimessä on Ethereum Virtual Machine. Alla olevassa kuvassa selitetään arkkitehtuuri:

Ethereumin arkkitehtuuri - Ethereumin opetusohjelma - Edureka

oracle pl sql -virheiden käsittelyn parhaat käytännöt

On tärkeää huomata, että Ethereum Virtual Machine ei ole vain täysin hiekkalaatikko, vaan myös täysin eristetty. Tämä tarkoittaa, että tällä hetkellä EVM: llä käynnissä olevalla koodilla ei ole pääsyä verkkoon tai tiedostojärjestelmään ja että se voi käyttää säästeliäästi muita sopimuksia.

Nyt kun ymmärrämme alustan ytimen, katsotaanpa tarkemmin verkon solmuja.

Ethereumin opetusohjelma: Ethereum-verkosto

Ethereum-verkko on julkinen blockchain-verkko. Se muodostaa perustan kaikille hajautetuille vertaisverkko-sovelluksille ja verkossa toimiville organisaatioille. Verkko koostuu kahdentyyppisistä solmuista, nimittäin täyssolmuista ja kevyistä solmuista.

Täydet solmut sisältää tapahtumien koko historian geneesi eston jälkeen. Ne ovat täysimittainen osoitus blockchain-verkon eheydestä. Täydellisten solmujen on sisällettävä jokainen tapahtuma, joka on vahvistettu Ethereumin eritelmien asettamien sääntöjen mukaisesti.

Kevyet solmut toisaalta sisältää vain osajoukon koko lohkoketjusta. Tämän tyyppisiä solmuja käytetään enimmäkseen e-lompakoissa, joiden on oltava luonteeltaan kevyitä, joten koko lohkoketjua ei voida tallentaa niihin. Nämä solmut eivät sitä vastoin tarkista kaikkia lohkoja tai tapahtumia, eikä niillä voi olla kopiota nykyisestä lohkoketjutilasta. He luottavat täydellisiin solmuihin tarjotakseen heille puuttuvat yksityiskohdat (tai yksinkertaisesti puuttuvat tietystä toiminnasta). Valosolmujen etuna on, että ne voivat saada toimintansa paljon nopeammin, voivat toimia enemmän laskennallisesti / muistirajoitteisilla laitteilla eivätkä syö lähes yhtä paljon tallennustilaa.

Jokaisella julkisella blockchainilla on siihen liitetty valuutta. Ethereum ei ole erilainen. Katsotaanpa syvemmälle Ethereumin kryptovaluutta.

Ethereumin opetusohjelma: Eetteri ja kaasu

Eetteri on salausvaluutan nimi, jota käytetään maksamaan liiketoimista ethereum-verkossa. Sen lisäksi, että Ether maksaa yleisistä liiketoimista ja palveluista, sitä käytetään myös kaasun ostamiseen, jota puolestaan ​​käytetään maksamaan laskennasta EVM: ssä.

Eetteri on metrinen yksikkö, ja sillä on paljon nimellisarvoja, jotka auttavat maksamaan tarkasti tapahtumista ja kaasusta. Pienin nimellisarvo eli perusyksikkö on nimeltään Wei. Nimellisarvot ja niiden nimet näkyvät alla olevassa taulukossa:

YksikötWei-arvoWei
wei1 weiyksi
Kwei1e3 wei1000
Mwei1e6 wei1000000
Neuloa1e9 wei1 000 000 000
mikroEther1e12 wei1 000 000 000 000
milliEther1e15 wei1 000 000 000 000 000
Eetteri1e18 wei1 000 000 000 000 000 000

Kuten aiemmin keskusteltiin, tiedämme, että EVM on vastuussa verkkoonsa asennetun koodin ajamisesta. Joten mikä estää jotakin ajamasta ääretöntä silmukkaa EVM: llä ja ylikuormittamasta sen muistia kokonaan? Tässä tulee kaasun käsite.

Kaasua käytetään mittarina verkon laskennallisten resurssien maksamiseen. Jokaisessa verkon sopimuksessa on määritetty enimmäismäärä kaasua, jota se voi käyttää laskelmissaan. Tätä kutsutaan Kaasuraja ”Muut siihen liittyvät kaasutermit ovat seuraavat:

  • Kaasun hinta : Tämä on kaasun hinta sellaisten merkkien muodossa kuin Eter ja muut sen nimitykset. Kaasun arvon vakauttamiseksi kaasun hinta on kelluva arvo, joten jos rahakkeiden tai valuutan hinta vaihtelee, kaasun hinta muuttuu säilyttääkseen saman todellisen arvon.
  • Kaasumaksu : Tämä on tosiasiallisesti määrä kaasua, joka on maksettava tietyn liiketoimen tai ohjelman (kutsutaan sopimukseksi) suorittamiseksi.

Näin ollen, jos joku yrittää suorittaa koodinpätkän, joka toimii ikuisesti, sopimus ylittää lopulta sen kaasurajan ja koko sopimukseen vedonnut tapahtuma palautetaan takaisin edelliseen tilaansa.


Nyt kun tiedämme valuutasta, katsotaanpa prosessi, joka tuottaa uuden valuutan.

Ethereumin opetusohjelma: Kaivostoiminta

Ethereum, aivan kuten muutkin julkiset blockchain-tekniikat, varmistaa turvallisuuden kannustepohjaisen mallin avulla. Tätä kutsutaan työtodistukseksi. Alla oleva kuva osoittaa, kuinka ethereum-kaivos toimii:

Teknisemmästä näkökulmasta käytettyä työtodistusta-algoritmia kutsutaan nimellä Ethash, joka on hajautusalgoritmi, joka on saanut inspiraationsa Dagger-Hashimoto-algoritmista.

Nyt kun olemme nähneet ethereumin toimivan arkkitehtuurin ja keskustelleet sen olennaisista osista, katsotaan todellinen ongelma ja ethereum-lähestymistapa saman ratkaisemiseksi.

Ethereumin opetusohjelma: Hajautettu joukkorahoituksen käyttötapaus

Ongelma : Hyvä 'idea' ei ole kaikki nykymaailmassa menestyvän liiketoiminnan aloittamiseksi. Idean toteuttamiseen tarvitaan paljon rahoitusta ja vaivaa. Täällä organisaatiot, kuten “Kickstarter”, tulevat kuvaan. He tarjoavat hankkeille julkisen altistuksen, joka tarvitaan lahjoituksiin heidän hankkeelleen, jotta projekti voidaan käynnistää, mutta tällaisen motiivin keskitetyllä arkkitehtuurilla on haittoja, pääasiassa palkkioiden käsittelyssä. Koska keskitetty viranomainen tekee kaikki päätökset, järjestelmät ovat alttiita seuraaville säännöille:

  • kuka tahansa, joka ylitti kampanjan määräajan, ei pääse enää sisään
  • kukaan luovuttaja, joka on muuttanut mieltään, ei pääse ulos

Lähestyä :

Otamme hajautetun menetelmän ongelman ratkaisemiseksi alla olevan kuvan mukaisesti:

Ratkaisu :

Tässä on vakauden älykäs sopimus yllä olevalle ongelmalausekkeelle.

pragma solidity ^ 0.4.16 -liitäntätunnus {funktion siirto (osoitteen vastaanottaja, uint-summa)} sopimus Crowdsale {osoite julkinen edunsaaja uint julkinen rahoitusTavoite uint julkinen summa Korotettu uint julkinen määräaika uint julkinen hintakoodi julkinen tunnus Palkkukartoitus (osoite => uint256) julkinen saldo financeGoalReached = false bool crowdsaleClosed = väärä tapahtuma GoalReached (osoitteen vastaanottaja, uint totalAmountRaised) tapahtuma FundTransfer (osoitetakaaja, uint-määrä, bool isContribution) / ** * Konstruktori-toiminto * * Määritä omistaja * / function Crowdsale (osoite ifSuccessfulSendTo // osoite omistajan omistajalta, kun rahoitus on onnistunut uint financeGoalInEthers // tavoitesumma korottaa uint durationInMinutes // annettua aikaa uint etherCostOfEachToken // oman pääoman hinta eetterin osoitteessa addressOfTokenUsedAsReward // token address) {edunsaaja = ifSuccessfulSendTo financeGoal = financeGoalInE deadline + durationInMinutes * 1 minuutin hinta = etherCostOfEachToken * 1 eetteri kenReward = token (addressOfTokenUsedAsReward)} / ** * Varatoiminto * * Funktio ilman nimeä on oletustoiminto, jota kutsutaan aina, kun joku lähettää varoja sopimukseen * / function () maksettava {vaatia (! crowdsaleClosed) uint summa = msg. arvon saldo [msg.sender] + = summa amountRaised + = summa tokenReward.transfer (msg.sender, määrä / hinta) FundTransfer (msg.sender, määrä, tosi)} modifier afterDeadline () {if (now = financeGoal) {financeGoalReached = true GoalReached (edunsaaja, summa korotettu)} crowdsaleClosed = true} / ** * Nosta varat * * Tarkistaa, onko tavoite tai aikaraja saavutettu, ja jos saavutetaan, ja rahoitustavoite saavutettu, * lähettää koko summan edunsaajalle. Jos tavoitetta ei saavutettu, kukin avustaja voi nostaa * maksamansa summan. * / function safeWithdrawal () afterDeadline {if (! financeGoalReached) {uint amount = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (summa> 0) {if (msg.sender.send (summa)) { Rahansiirto (msg.sender, määrä, väärä)} else {balanceOf [msg.sender] = summa}}} if (financeGoalReached && edunsaaja == msg.sender) {if (vastaanottaja.lähettää (summaRaised)) {FundTransfer (edunsaaja, amountRaised, false)} else {// Jos emme lähetä varoja edunsaajalle, vapauta rahoittajien saldorahoitusGoalReached = false}}}}

Jos olet kiinnostunut oppimaan vakautta, tutustu blogiimme , jota käytetään kehitykseenhenkilökohtainenälykkäät sopimukset.

Jos haluat oppia Blockchainia ja rakentaa uraa Blockchain Technologiesissa, tutustu meidän joka sisältää ohjaajan vetämän live-koulutuksen ja tosielämän projektikokemuksen. Tämä koulutus auttaa sinua ymmärtämään Blockchainia perusteellisesti ja auttaa sinua hallitsemaan aihetta.

Onko sinulla kysymys meille? Mainitse se kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.