Ethereum bemutató - mélyebb pillantás az Ethereumba!



Ez az Ethereum oktatóanyag elmagyarázza az Ethereumot építészeti szempontból, és azt is, hogy miként alkotja a legnagyobb platformot a DAPPS és a DAO építéséhez.

Ethereum Oktatóanyag:

Ebben az Ethereum bemutató blogban elmagyarázom az ethereum architektúrájának belső működését, és megmutatom az ethereum megvalósítását egy egyszerű okos szerződés .

Az Ethereumot programozható blokkláncnak tekintem, amely a jövőben a B2C vállalat többségét szolgálja. Az Ethereum megadja a fejlesztőknek azt a szabadságot, hogy összetett modelleket hozzanak létre a blokkláncon, ahelyett, hogy előre meghatározott műveletekre korlátoznák őket, mint például a Bitcoin blokklánc.





Ezzel a megközelítéssel az Ethereum számos decentralizált alkalmazás és szervezet platformjává vált, amely magában foglalja, de nem kizárólag a kriptovalutákat.

Ennek a 'Ethereum Tutorial' blognak a segítségével számos témát kimerítően fogok bemutatni. Ezek a témák a következők:



Végigviheti az Ethereum bemutatójának ezt a felvételét, ahol oktatóink részletesen elmagyarázták a témákat amelyek segítenek jobban megérteni ezt a koncepciót.

Ethereum bemutatója Ethereum intelligens szerződések | Edureka

Ethereum bemutató: Ethereum számlák

Az Ethereum hálózatnak kétféle fiókja van, nevezetesen:



  • Külső számlák
  • Szerződéses számlák

Ezeket a Külső és a Szerződéses számlákat „állami objektumoknak” nevezik, és magukban foglalják az ethereum hálózat „állapotát”. Minden állami objektumnak van egy jól definiált állapota. Külső számlák esetén az állapot a számlaegyenlegből áll, míg a szerződéses számláknál az állapotot a memória tárhelye és egyenlege határozza meg.

A külső fiókokra egyszerűen fiókokként hivatkozok. Ezeket a fiókokat a hálózat külső ügynökei képviselik, beleértve minden rendes felhasználót, bányászokat, automatizált ügynököket stb.

Ezeket a számlákat általában nyilvános kulcsú titkosítási algoritmusok, például az RSA segítségével ellenőrzik. A külső számlák fő célja, hogy médiumként szolgáljon a felhasználók számára az Ethereum blokklánccal való interakcióhoz.

A szerződéses számlák viszont olyan kódgyűjtemények, amelyek a blokkláncon egy adott címen találhatók. Ezekre a szerződésekre külső számlák, vagy más, konkrét cselekvésre ösztönző funkcióval kötött szerződések hivatkoznak. Ezeket a szerződéseket olyan magas szintű szkriptnyelveken írják, mint a Solidity, a kígyó vagy az LLL. Minden szerződést, amely az ethereum blokkláncon található, egy meghatározott formátumban, az úgynevezett EVM (Ethereum Virtual Machine) bytecode-ban tárolják, amely egy ethereum-specifikus bináris formátum.

Csak az lesz a tisztességes, hogy elmagyarázom az EVM-et most, amikor elmondtam neked az EVM-bytecode-ot.

Ethereum oktatóanyag: Ethereum virtuális gép

Az Ethereum rusztikus módon meghatározza az általánosított protokollok halmazát, amelyek a decentralizált alkalmazások fejlesztésének pilléreivé váltak. Ennek középpontjában az Ethereum virtuális gép rejlik. Az alábbi ábra elmagyarázza az architektúrát:

Ethereum Architecture - Ethereum Tutorial - Edureka

apache-szikra a hadoop mapreduce-hoz képest

Fontos megjegyezni, hogy az Ethereum virtuális gép nemcsak teljesen homokozós, hanem teljesen elszigetelt is. Ez azt jelenti, hogy az EVM-en jelenleg futó kódnak nincs hozzáférése a hálózathoz vagy a fájlrendszerhez, és takarékosan tud hozzáférni más szerződésekhez.

Most, hogy megértettük a platform lényegét, vessünk egy mélyebb pillantást a hálózati csomópontokra.

Ethereum oktatóanyag: Az Ethereum hálózat

Az ethereum hálózat nyilvános blokklánc hálózat. Ez az összes decentralizált peer-to-peer alkalmazás és szervezet alapját képezi a hálózaton. A hálózat kétféle csomópontból áll, nevezetesen teljes csomópontokból és könnyű csomópontokból.

Teljes csomópontok tartalmazza a tranzakciók teljes történetét a genesis blokkolása óta. Ezek teljes értékű bizonyítékai a blokklánc-hálózat integritásának. A teljes csomópontoknak tartalmazniuk kell minden egyes tranzakciót, amelyet az Ethereum specifikációiban meghatározott szabályok szerint igazoltak.

Könnyű csomópontok másrészt csak a teljes blokklánc egy részhalmazát tartalmazza. Az ilyen típusú csomópontokat többnyire az e-pénztárcákban használják, amelyeknek könnyűnek kell lenniük, ezért a teljes blokklánc nem tárolható rajtuk. Ezek a csomópontok ezzel ellentétben nem ellenőriznek minden blokkot vagy tranzakciót, és előfordulhat, hogy nem rendelkeznek az aktuális blokklánc állapotának másolatával. Teljes csomópontokra támaszkodnak, hogy hiányzó részleteket biztosítsanak számukra (vagy egyszerűen nem rendelkeznek bizonyos funkciókkal). A könnyű csomópontok előnye, hogy sokkal gyorsabban fel tudnak indulni és működni tudnak, több számítási / memóriaterhelésű eszközön képesek futtatni, és közel ennyi tárhelyet sem fogyasztanak el.

Minden nyilvános blokklánchoz pénznem kapcsolódik. Az Ethereum sem más. Vizsgáljuk meg mélyebben az Ethereum kriptovalutáját.

Ethereum oktatóanyag: Éter és gáz

Az éter annak a kriptovalutának a neve, amelyet az ethereum hálózaton végzett tranzakciók kifizetésére használnak. Az általános ügyletek és szolgáltatások kifizetésén kívül az Ether-t gáz vásárlására is használják, amelyet viszont az EVM-en belüli számítások kifizetésére használnak fel.

Az éter a metrikus egység, és rengeteg megnevezéssel rendelkezik, amelyek segítik a tranzakciók és a gáz pontos kifizetését. A legkisebb megnevezést, azaz egy alapegységet, Wei-nek hívják. A címletek és azok megnevezése az alábbi táblázatban látható:

EgységekWei ValueWei
wei1 weiegy
Kwei1e3 wei1000
Mwei1e6 wei1 000 000
Kötött1e9 wei1 000 000 000
mikroÉter1e12 wei1 000 000 000 000
milliEther1e15 wei1 000 000 000 000 000
Éter1e18 wei1 000 000 000 000 000 000

Amint arról korábban beszéltünk, tudjuk, hogy az EVM felelős a hálózatán telepített kód futtatásáért. Tehát mi akadályozza meg valakit abban, hogy végtelen ciklust futtasson az EVM-en, és teljesen túlterhelje annak memóriáját? Itt jön be a gáz fogalma.

A gázt mérőszámként használják a hálózat számítási erőforrásainak kifizetéséhez. A hálózaton minden szerződés rendelkezik egy meghatározott maximális gázmennyiséggel, amelyet felhasználhat a számításaihoz. Ez az úgynevezett „ Gázkorlát ”Az egyéb kapcsolódó gázkifejezések a következők:

  • Gázár : Ez a gázköltség az olyan zsetonok szempontjából, mint az Ether és más címletei. A gáz értékének stabilizálása érdekében a gázár egy lebegő érték, amely akkor változik, ha a tokenek vagy valuta költsége ingadozik, a gázár változatlan valós értéket megtartva.
  • Gázdíj : Ez ténylegesen annyi gázmennyiséget kell fizetni, amely egy adott tranzakció vagy program (szerződésnek nevezett) futtatásához szükséges.

Ennélfogva, ha valaki megpróbál egy örökké futó kóddarabot futtatni, a szerződés végül túllépi a gázkorlátját, és a szerződésre hivatkozó teljes tranzakció visszakerül a korábbi állapotába.


Most, hogy tudunk a valutáról, vessünk egy pillantást az új valuta létrehozásának folyamatára.

Ethereum oktatóanyag: Bányászat

Az Ethereum, hasonlóan a többi nyilvános blokklánc-technológiához, ösztönző alapú modellen keresztül biztosítja a biztonságot. Ezt nevezzük a munkavégzés igazolásának mechanizmusának. Az alábbi ábra mutatja az ethereum bányászat működését:

Technikai szempontból az alkalmazott munkabiztonsági algoritmust Ethash-nek hívják, amely a Dagger-Hashimoto algoritmus ihlette hash algoritmus.

Most, hogy megláttuk az ethereum működő architektúráját és megvitattuk annak alapvető elemeit, lássunk egy valós problémát és az ethereum megközelítést ugyanezek megoldására.

Ethereum oktatóanyag: Decentralizált tömegfinanszírozási felhasználási eset

Probléma nyilatkozat : A mai világban nem minden jó „ötlet” a sikeres vállalkozás beindításához. Sok finanszírozásra és erőfeszítésre van szükség egy ötlet megvalósításához. Itt jönnek képbe olyan szervezetek, mint a „Kickstarter”. A projektek számára elérhetővé teszik a projektekhez szükséges adományokhoz szükséges nyilvánosságot, hogy működőképes legyen, de az ilyen motívum központosított architektúrájának vannak hátrányai, elsősorban a jutalmak kezelésében. Mivel a centralizált hatóság hoz minden döntést, a rendszerek hajlamosak olyan szabályokra, mint:

  • bárki, aki elmulasztotta a kampány határidejét, nem léphet be többet
  • bármely donor, aki meggondolta magát, nem tud kijönni

Megközelítés :

Decentralizált módszert alkalmazunk a probléma kezelésére, az alábbi képen leírtak szerint:

Megoldás :

Itt van a szilárdságra vonatkozó okos szerződés a fenti problémamegállapításhoz.

pragma solidity ^ 0.4.16 interfész token {függvényátadás (cím vevő, uint összeg)} szerződés Crowdsale {cím állami kedvezményezett uint közfinanszírozás Cél uint nyilvános összeg Emelt uint nyilvános határidő uint nyilvános ár token nyilvános token Jutalom leképezése (cím => uint256) nyilvános egyensúly Bool financeGoalReached = hamis bool crowdsaleClosed = hamis esemény GoalReached (címzett, uint totalAmountRaised) esemény FundTransfer (címtartó, uint összeg, bool isContribution) / ** * Konstruktor funkció * * A tulajdonos beállítása * / függvény Crowdsale (cím ifSuccessfulSendTo // a cím a tulajdonos tulajdonosa, ha a finanszírozás sikeres, uint finanszírozásGoalInEthers // az uint időtartamának növelésére szolgáló célösszegInInminutes // adott idő uint etherCostOfEachToken // sajáttőke költsége az éter címen + durationInMinutes * 1 perc ár = etherCostOfEachToken * 1 éter kenReward = token (addressOfTokenUsedAsReward)} / ** * Fallback függvény * * A név nélküli függvény az alapértelmezett függvény, amelyet akkor hívnak meg, ha valaki pénzt küld szerződésre * / function () fizetendő {need (need (! crowdsaleClosed) uint amount = msg. értékegyenlegOf [msg.sender] + = összeg amountRaised + = összeg tokenReward.transfer (msg.sender, összeg / ár) FundTransfer (msg.sender, összeg, igaz)} módosító afterDeadline () {if (now = finanszírozásGoal) {finanszírozásGoalReached = true GoalReached (kedvezményezett, amountRaised)} crowdsaleClosed = true} / ** * Visszavonja az alapokat * * Ellenőrzi, hogy elérte-e a célt vagy az időkorlátot, és ha igen, és a finanszírozási célt elérték-e, * a teljes összeget elküldi a kedvezményezettnek. Ha a célt nem érték el, minden közreműködő visszavonhatja * a hozzájárulás összegét. * / function safeWithdrawal () afterDeadline {if (! financeGoalReached) {uint amount = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (összeg> 0) {if (msg.sender.send (összeg)) { FundTransfer (msg.sender, összeg, hamis)} else {balanceOf [msg.sender] = összeg}}} if (finanszírozásGoalReached && kedvezményezett == msg.sender) {if (kedvezményezett.küldés (összegRaised)) {FundTransfer (kedvezményezett, amountRaised, false)} else {// Ha nem sikerül elküldeni az összegeket a kedvezményezettnek, oldja fel a finanszírozók egyenlegének finanszírozásátGoalReached = false}}}}

Ha érdekel a szilárdság elsajátítása, nézze meg a blogunkat , amelyet fejlesztésre használnakszemélyre szabottintelligens szerződések.

Ha meg akarja tanulni a Blockchain-t, és karriert akar építeni a Blockchain Technologies-ban, akkor nézze meg a következőt: amely oktató által vezetett élő képzéssel és valós projekt-tapasztalattal jár. Ez a képzés segít megérteni a Blockchain-t mélyebben, és elsajátítja a témát.

Van egy kérdésünk? Kérjük, említse meg a megjegyzések részben és a lehető leghamarabb kapcsolatba lépünk Önnel.