A „Solidity Smart Contracts for the Ethereum Blockchain. Gyakorlati útmutató »

A „Solidity Smart Contracts for the Ethereum Blockchain. Gyakorlati útmutató »
Több mint egy éve dolgozom a „Szilárdsági intelligens szerződések kiépítése az Ethereum Blockchain számára” című könyvön. Gyakorlati útmutató”, és most ez a munka elkészült, és a könyv Literben megjelent és elérhető.

Remélhetőleg könyvem segít abban, hogy gyorsan elkezdhesse a Solidity intelligens kapcsolatainak és elosztott DApp-jainak létrehozását az Ethereum blokklánchoz. 12 leckéből áll, gyakorlati feladatokkal. Elvégzésük után az olvasó létrehozhatja saját helyi Ethereum csomópontjait, közzéteheti az intelligens szerződéseket és meghívhatja azok metódusait, adatokat cserélhet a való világ és az intelligens szerződések között orákulumok segítségével, valamint dolgozhat a Rinkeby teszt hibakereső hálózattal.

A könyv azoknak szól, akik érdeklődnek a blokklánc fejlett technológiái iránt, és gyorsan szeretnének olyan ismereteket szerezni, amelyek lehetővé teszik számukra, hogy érdekes és ígéretes munkát végezzenek.

Az alábbiakban megtalálja a tartalomjegyzéket és a könyv első fejezetét (szintén a Literes a könyv töredékei elérhetők). Remélem kapok visszajelzéseket, észrevételeket és javaslatokat. Mindezt igyekszem majd figyelembe venni a könyv következő kiadásának elkészítésekor.

tartalomjegyzékBevezetésKönyvünk azoknak szól, akik nem csak az Ethereum blokklánc alapelveit szeretnék megérteni, hanem gyakorlati ismereteket is szeretnének szerezni az elosztott DApp-ok létrehozásában a Solidity programozási nyelven ehhez a hálózathoz.

Ezt a könyvet jobb nem csak elolvasni, hanem dolgozni is vele, teljesítve a leckéken leírt gyakorlati feladatokat. A munkához helyi számítógépre, virtuális vagy felhőkiszolgálóra lesz szüksége, amelyre telepítve van a Debian vagy az Ubuntu. A Raspberry Pi-t számos feladat elvégzésére is használhatja.

Az első órán kitérünk az Ethereum blokklánc alapelveire és az alapvető terminológiára, valamint beszélünk arról, hogy hol használható ez a blokklánc.

Gól második lecke - hozzon létre egy privát Ethereum blokklánc csomópontot a tanfolyam keretein belüli további munkához Ubuntu és Debian szerveren. Megnézzük az alapvető segédprogramok telepítésének jellemzőit, mint például a blokklánc csomópontunk működését biztosító geth, valamint a swarm decentralizált adattároló démon.

Harmadik lecke megtanítja Önnek, hogyan kísérletezzen az Ethereummal egy olcsó Raspberry Pi mikroszámítógépen. Telepíteni kell a Rasberian operációs rendszert (OS) a Raspberry Pi-re, a blokklánc csomópontot működtető Geth segédprogramra és a Swarm decentralizált adattárház démonra.

negyedik lecke az Ethereum hálózat számláira és kriptovaluta egységeire, valamint a Geth konzolról egyik számláról a másikra történő átutalási módokra szolgál. Megtanulja, hogyan hozhat létre számlákat, hogyan kezdeményezhet pénzátutalási tranzakciókat, hogyan kaphatja meg a tranzakció állapotát és nyugtáját.

Az ötödik órán megismerkedhet az okos szerződésekkel az Ethereum hálózaton, megismerheti azok végrehajtását az Ethereum virtuális gépen.

Létrehozza és közzéteszi első intelligens szerződését az Ethereum privát hálózatán, és megtanulja, hogyan hívhatja meg a funkcióit. Ehhez használja a Remix Solidity IDE-t. Ezenkívül megtanulja a solc csomagfordító telepítését és használatát.
Szó lesz az úgynevezett Application Binary Interface-ről (ABI) is, és megtanítjuk a használatát.

Hatodik lecke célja a Node.js-t futtató JavaScript-szkriptek létrehozása és a Solidity intelligens szerződésekkel végzett műveletek végrehajtása.

Telepíti a Node.js-t Ubuntu, Debian és Rasberian OS-re, szkripteket ír az intelligens szerződés közzétételéhez az Ethereum helyi hálózatán, és meghívja a funkcióit.

Ezenkívül megtanulja, hogyan lehet pénzt átutalni a szokásos számlák között szkriptek segítségével, valamint jóváírni azokat intelligens szerződéses számlákon.

A hetedik leckében megtanulod, hogyan kell telepíteni és használni a Truffle integrált környezetet, amely népszerű a Solidity okosszerződéses fejlesztői körében. Megtanulja, hogyan hozhat létre JavaScript-szkripteket, amelyek szerződésfüggvényeket hívnak meg a truffle-contract modul segítségével, és hogyan tesztelheti az intelligens szerződést a Truffle segítségével.

Nyolcadik lecke a Solidity adattípusoknak szentelt. Intelligens szerződéseket fog írni, amelyek olyan adattípusokkal működnek, mint az előjeles és előjel nélküli egész számok, előjeles számok, karakterláncok, címek, összetett típusú változók, tömbök, felsorolások, struktúrák és szótárak.

A kilencedik leckében egy lépéssel közelebb kerülhet az intelligens szerződések létrehozásához a fő Ethereum hálózathoz. Megtanulja, hogyan tehet közzé szerződéseket a Truffle használatával a Geth privát hálózaton, valamint a Rinkeby tesztneten. Az intelligens szerződés hibakeresése a Rinkeby hálózaton nagyon hasznos a fő hálózaton való közzététel előtt - ott szinte minden valódi, de ingyenes.

A lecke részeként létrehoz egy Rinkeby testnet csomópontot, feltölti pénzeszközökkel, és közzétesz egy intelligens szerződést.

lecke 10 az Ethereum Swarm elosztott adattárolóinak szentelt. Az elosztott tárolás használatával nagy mennyiségű adatot takaríthat meg az Ethereum blokkláncon.

Ebben az oktatóanyagban létrehozhat egy helyi Swarm tárolót, írhat és olvashat fájlokat és fájlkönyvtárakat. Ezután megtanulja, hogyan kell dolgozni a nyilvános Swarm átjáróval, szkripteket írni a Swarm Node.js-ből való eléréséhez, valamint a Net::Ethereum::Swarm Perl modul használatát.

11. lecke Cél — elsajátítani a Solidity intelligens szerződésekkel való munkát a népszerű Python programozási nyelv és a Web3.py keretrendszer használatával. Telepíteni fogja ezt a keretrendszert, szkripteket kell írnia egy intelligens szerződés összeállításához és közzétételéhez, valamint a funkcióinak meghívásához. Ebben az esetben a Web3.py önmagában és a Truffle integrált fejlesztői környezettel együtt kerül felhasználásra.

A 12. leckében megtanulhatja, hogyan viheti át az adatokat az intelligens szerződések és a való világ között az orákulumok segítségével. Ez akkor hasznos, ha adatokat fogad webhelyekről, IoT-eszközökről, különféle eszközökről és érzékelőkről, valamint adatokat küld az intelligens szerződésekből ezekre az eszközökre. A lecke gyakorlati részében orákulumot és intelligens szerződést készít, amely az Orosz Föderáció Központi Bankjának webhelyéről kapja az aktuális USD-rubel árfolyamot.

1. lecke. Röviden a blokkláncról és az Ethereum hálózatrólAz óra célja: ismerkedjen meg az Ethereum blokklánc alapelveivel, alkalmazási területeivel és alapvető terminológiájával.
Gyakorlati feladatok: nem szerepel ebben a leckében.

Alig van ma olyan szoftverfejlesztő, aki ne hallott volna semmit a blokklánc technológiáról (Blockchain), a kriptovalutákról (Cryptocurrency vagy Crypto Currency), a bitcoinokról (Bitcoin), a kezdeti érmekínálatról (ICO, Initial coin offering), az intelligens szerződésekről (Smart Contract), valamint a blokklánccal kapcsolatos egyéb fogalmak és kifejezések.

A blokklánc technológia új piacokat nyit meg, és munkahelyeket teremt a programozók számára. Ha megérti a kriptovaluta-technológiák és az intelligens szerződéses technológiák összes bonyolultságát, akkor nem okozhat gondot ezen ismeretek gyakorlati alkalmazása.

Azt kell mondanom, hogy sok a spekuláció a kriptovaluták és a blokkláncok körül. Eltekintünk a kriptovaluta árfolyamának változásairól, a piramisok létrehozásáról, a kriptovalutákra vonatkozó jogszabályok bonyolultságáról stb. Oktatóanyagunkban elsősorban az intelligens szerződések Ethereum blokkláncon történő használatának technikai vonatkozásaira (ethereum, ether) és az úgynevezett decentralizált alkalmazások fejlesztésére (Distributed Application, DApp) koncentrálunk.

Mi a blokklánc

A blokklánc (Blockchain, Block Chain) egy bizonyos módon egymáshoz kapcsolódó adatblokkok lánca. A lánc elején található az első blokk, amelyet elsődleges blokknak (genezis blokk) vagy genezis blokknak neveznek. Ezt követi egy második, majd egy harmadik, és így tovább.

Mindezek az adatblokkok automatikusan megkettőződnek a blokklánc hálózat számos csomópontján. Ez biztosítja a blokklánc adatok decentralizált tárolását.
A blokklánc rendszert úgy képzelheti el, mint nagyszámú csomópontot (fizikai vagy virtuális szervereket), amelyek hálózatba kapcsolódnak, és replikálják az adatblokk-lánc minden változását. Olyan, mint egy óriási többszerveres számítógép, és egy ilyen számítógép csomópontjai (szerverei) szétszóródhatnak a világban. És te is hozzáadhatod számítógépedet a blokklánc hálózathoz.

Elosztott adatbázis

A blokklánc egy elosztott adatbázisnak tekinthető, amely a blokklánc hálózat összes csomópontjára replikálódik. Elméletileg a blokklánc addig működik, amíg legalább egy csomópont működik, amely a blokklánc összes blokkját tárolja.

Elosztott adatnyilvántartás

A blokklánc az adatok és műveletek (tranzakciók) elosztott főkönyveként fogható fel. Az ilyen nyilvántartás másik neve főkönyv.

Adatok hozzáadhatók az elosztott főkönyvhöz, de nem módosíthatók vagy törölhetők. Ez a lehetetlenség különösen a kriptográfiai algoritmusok, a blokkok lánchoz való hozzáadására szolgáló speciális algoritmusok és a decentralizált adattárolás használatával érhető el.

Blokkok hozzáadásakor és műveletek (tranzakciók) végrehajtásakor privát és nyilvános kulcsokat használnak. Korlátozzák a blokklánc felhasználóit azzal, hogy csak a saját adatblokkjaikhoz biztosítanak hozzáférést.

ügyletek

A blokklánc a műveletekről (tranzakciókról) szóló információkat blokkokban tárolja. Ugyanakkor a régi, már befejezett tranzakciók nem vonhatók vissza vagy módosíthatók. Az új tranzakciók új, hozzáadott blokkokban kerülnek tárolásra.

Így a tranzakciók teljes története változatlan formában rögzíthető a blokkláncban. Ezért a blokklánc használható például banki tranzakciók, szerzői jogi információk, ingatlantulajdonosok változástörténetének stb. biztonságos tárolására.

Az Ethereum blokklánc az úgynevezett rendszerállapotokat tartalmazza. A tranzakciók előrehaladtával az állapot kezdeti állapotról aktuálisra változik. A tranzakciók rögzítése blokkokban történik.

Nyilvános és privát blokkláncok

Itt meg kell jegyezni, hogy a fentiek mindegyike csak az úgynevezett nyilvános blokklánc-hálózatokra igaz, amelyeket nem ellenőrizhet sem magánszemély, sem jogi személy, sem állami szerv, sem kormány.
Az úgynevezett privát blokklánc hálózatok teljes körűen az alkotóik ellenőrzése alatt állnak, és ott minden lehetséges, például a lánc összes blokkjának teljes cseréje.

A blokklánc gyakorlati alkalmazásai

Mire használható a blokklánc?

Röviden, a blokklánc lehetővé teszi a tranzakciók (tranzakciók) biztonságos lebonyolítását olyan személyek vagy cégek között, akik nem bíznak egymásban. A blokkláncban rögzített adatok (tranzakciók, személyes adatok, dokumentumok, igazolások, szerződések, számlák stb.) rögzítést követően nem hamisíthatók, nem cserélhetők. Ezért a blokklánc alapján lehetőség nyílik például megbízható elosztott nyilvántartások létrehozására különféle típusú dokumentumokból.

Természetesen tudja, hogy blokklánc alapú kriptovaluta rendszereket hoznak létre a hagyományos papírpénz helyettesítésére. A papírpénzt fiat pénznek is nevezik (a Fiat Money szóból).
A blokklánc a blokkokban rögzített tranzakciók tárolását és megváltoztathatatlanságát biztosítja, így használható kriptovaluta rendszerek létrehozására. Tartalmazza a kriptopénzek különböző felhasználók (számlák) közötti átutalásának teljes történetét, és minden művelet nyomon követhető.

Bár a kriptovaluta rendszereken belüli tranzakciók névtelenek lehetnek, a kriptovaluta felvétele és fiat pénzre váltása általában felfedi a kriptovaluta eszköz tulajdonosának kilétét.

Az úgynevezett intelligens szerződések, amelyek az Ethereum hálózaton futó szoftverek, lehetővé teszik a tranzakciók megkötésének folyamatának automatizálását és végrehajtásuk nyomon követését. Ez különösen akkor hatékony, ha a tranzakció kifizetése Ether kriptovalutával (ether) történik.

A Solidity programnyelven írt Ethereum blokklánc és Ethereum intelligens szerződések például a következő területeken használhatók:

  • az okiratok közjegyzői hitelesítésének alternatívája;
  • ingatlanobjektum-nyilvántartás és ingatlantárgyakkal folytatott ügyletekkel kapcsolatos információk vezetése;
  • szerzői jogi információk tárolása szellemi tulajdonhoz (könyvek, képek, zeneművek stb.);
  • független szavazórendszerek létrehozása;
  • pénzügyek és banki szolgáltatások;
  • logisztika nemzetközi léptékben, árumozgások nyomon követése;
  • személyes adatok tárolása a személyazonosító igazolvány rendszer analógjaként;
  • biztonságos tranzakciók a kereskedelmi területen;
  • az orvosi vizsgálatok eredményeinek, valamint az előírt eljárások történetének tárolása

Problémák a blokklánccal

De persze nem minden olyan egyszerű, mint amilyennek látszik!

Problémák adódnak az adatok blokklánchoz való hozzáadása előtti ellenőrzésével (például hamisak?), problémák vannak a blokklánccal való együttműködéshez használt rendszer- és alkalmazásszoftverek biztonságával, problémák a social engineering módszerekkel a hozzáférés ellopására kriptovaluta pénztárcákhoz stb. .P.

Ismétlem, ha nem egy nyilvános blokkláncról beszélünk, amelynek csomópontjai szétszórva vannak a világban, hanem egy személy vagy szervezet tulajdonában lévő privát blokkláncról, akkor a bizalom szintje itt nem lesz magasabb, mint az adott személy iránti bizalom szintje. vagy szervezet.

Azt is figyelembe kell venni, hogy a blokkláncban rögzített adatok mindenki számára elérhetővé válnak. Ebben az értelemben a blokklánc (főleg nyilvános) nem alkalmas bizalmas információk tárolására. Az a tény azonban, hogy a blokkláncon lévő információk nem változtathatók meg, segíthet megelőzni vagy kivizsgálni a különféle csalárd tevékenységeket.

Az Ethereum decentralizált alkalmazásai kényelmesek lesznek, ha kriptovalutával fizet a használatukért. Minél többen birtokolnak vagy hajlandóak vásárolni kriptovalutákat, annál népszerűbbek lesznek a DApp-k és az intelligens szerződések.

A blokklánc általános, gyakorlati alkalmazását hátráltató problémái között megemlíthető az új blokkok hozzáadásának korlátozott sebessége és a tranzakciók viszonylag magas költsége. A technológia azonban ezen a területen aktívan fejlődik, és remélhetőleg idővel megoldódnak a technikai problémák.

Egy másik probléma, hogy az Ethereum blokklánc intelligens szerződései virtuális gépek elszigetelt környezetben futnak, és nem férnek hozzá a valós adatokhoz. Különösen az intelligens szerződéses program nem tud maga adatokat olvasni webhelyekről vagy fizikai eszközökről (érzékelők, érintkezők stb.), és nem tud adatokat kiadni semmilyen külső eszközre. Erről a problémáról és a megoldási módokról az úgynevezett Orákulumoknak – az intelligens szerződések információs közvetítőinek – szóló leckében fogunk beszélni.

Vannak jogi korlátozások is. Egyes országokban például tilos kriptovalutát fizetőeszközként használni, de egyfajta digitális eszközként, például értékpapírként birtokolhatja. Az ilyen eszközök megvásárolhatók és eladhatók a tőzsdén. Mindenesetre a kriptovalutákkal dolgozó projekt létrehozásakor meg kell ismerkednie annak az országnak a jogszabályaival, amelynek joghatósága alá a projekt tartozik.

Hogyan jön létre a blokklánc lánc

Mint már említettük, a blokklánc egy egyszerű adatblokk-lánc. Először ennek a láncnak az első blokkját alakítják ki, majd hozzáadják hozzá a másodikat, és így tovább. A tranzakciós adatokat blokkokban kell tárolni, és hozzá kell adni az utolsó blokkhoz.

ábrán. 1.1-ben bemutattuk a blokksorozat legegyszerűbb változatát, ahol az első blokk a következőre utal.

A „Solidity Smart Contracts for the Ethereum Blockchain. Gyakorlati útmutató »
Rizs. 1.1. Egyszerű blokksorozat

Ebben az esetben azonban nagyon könnyű meghamisítani a lánc bármely blokkjának tartalmát, mivel a blokkok nem tartalmaznak semmilyen információt, amely megvédhetné a változásokat. Tekintettel arra, hogy a blokkláncot olyan emberek és cégek használatára szánják, akik között nincs bizalom, megállapítható, hogy ez az adattárolási mód nem alkalmas a blokklánc számára.

Foglalkozzunk a blokkok hamisítás elleni védelmével. Az első szakaszban megpróbálunk minden blokkot ellenőrző összeggel védeni (1.2. ábra).

A „Solidity Smart Contracts for the Ethereum Blockchain. Gyakorlati útmutató »
Rizs. 1.2. Ellenőrzőösszeg-védelem hozzáadása a blokkadatokhoz

A támadó így nem tudja megváltoztatni a blokkot, mivel az tartalmazza a blokkadatok ellenőrző összegét. Az ellenőrző összeg ellenőrzése megmutatja, hogy az adatok megváltoztak.

Az ellenőrzőösszeg kiszámításához használhatja a hash függvények egyikét, például MD-5, SHA-1, SHA-256 stb. A hash-függvények egy adatblokkon végrehajtott visszafordíthatatlan műveletek eredményeként számítanak ki valamilyen értéket (például állandó hosszúságú szöveges karakterlánc formájában). A műveletek a hash függvény típusától függenek.

Még ha az adatblokk tartalma kissé megváltozik is, a hash értéke is megváltozik. A hash függvény értékének elemzésével lehetetlen visszaállítani azt az adatblokkot, amelyre számították.

Ez a védelem elegendő lesz? Sajnos nincs.

Ebben a sémában az ellenőrző összeg (hash függvény) csak az egyes blokkokat védi, de nem a teljes blokkláncot. Ismerve a hash függvény kiszámításának algoritmusát, a támadó könnyen megváltoztathatja a blokk tartalmát. Ezenkívül semmi sem akadályozza meg abban, hogy blokkokat távolítson el a láncból, vagy újakat adjon hozzá.

A teljes lánc egészének védelme érdekében minden blokkban tárolhatja az adatokkal együtt az előző blokk adatainak kivonatát is (1.3. ábra).

A „Solidity Smart Contracts for the Ethereum Blockchain. Gyakorlati útmutató »
Rizs. 1.3. Adja hozzá az előző blokk hash-jét az adatblokkhoz

Ebben a sémában bármely blokk megváltoztatásához újra kell számolnia az összes következő blokk hash függvényeit. Úgy tűnik, mi a probléma?

A valódi blokkláncokban mesterséges nehézségeket is létrehoznak az új blokkok hozzáadásához - olyan algoritmusokat használnak, amelyek sok számítási erőforrást igényelnek. Figyelembe véve azt a tényt, hogy egy blokk módosításához nem egy ilyen blokkot kell újraszámolni, hanem az összes következőt, ezt rendkívül nehéz lesz megtenni.

Emlékezzünk arra is, hogy a blokklánc adatokat számos hálózati csomóponton tárolják (replikálják), pl. decentralizált tárolást alkalmaznak. Ez pedig nagymértékben megnehezíti a blokk hamisítását, mert. minden hálózati csomóponton módosítani kell.

Mivel a blokkok információkat tárolnak az előző blokkról, lehetőség van a lánc összes blokkjának tartalmának ellenőrzésére.

Blockchain Ethereum

Az Ethereum blokklánc egy olyan platform, amelyen elosztott DApp-okat építhet. Más platformoktól eltérően az Ethereum lehetővé teszi a Solidity programnyelven írt úgynevezett intelligens szerződések (smart contracts, smart contracts) használatát.

Ezt a platformot 2013-ban hozta létre Vitalik Buterin, a Bitcoin Magazine alapítója, és 2015-ben indították el. Minden, amit a képzésünk során megtanulunk vagy csinálunk, kifejezetten az Ethereum blokklánchoz és a Solidity intelligens szerződésekhez kapcsolódik.

Bányászat vagy a blokkok létrehozásának módja

A bányászat egy meglehetősen összetett és erőforrás-igényes folyamat, amelynek során új blokkokat adnak a blokklánchoz, és egyáltalán nem „kriptovaluta bányászat”. A bányászat biztosítja a blokklánc hatékonyságát, mert. ez a folyamat felelős a tranzakciók hozzáadása az Ethereum blokklánchoz.

A blokkok hozzáadásával foglalkozó személyeket és szervezeteket bányászoknak nevezzük.
A bányászok csomópontjain futó szoftver (szoftver) az utolsó blokkhoz egy Nonce nevű hash paramétert próbál felvenni, hogy egy bizonyos, a hálózat által adott hash értéket kapjon. Az Ethereumban használt Ethash kivonatoló algoritmus lehetővé teszi, hogy a Nonce értéket csak szekvenciális felsorolással kapja meg.

Ha a bányász csomópont megtalálta a megfelelő Nonce értéket, akkor ez az úgynevezett munkabizonyítás (PoW, Proof-of-work). Ebben az esetben, ha a blokkot hozzáadják az Ethereum hálózathoz, a bányász egy bizonyos jutalmat kap a hálózat pénznemében - Ether. A könyv írásakor a jutalom 5 éter, de ez idővel csökkenni fog.

Így az Ethereum bányászai blokkok hozzáadásával biztosítják a hálózat működését, és ezért kriptovaluta pénzt kapnak. Az interneten sok információt talál a bányászokról és a bányászatról, mi pedig a Solidity szerződések és DApp-ok létrehozására összpontosítunk az Ethereum hálózaton.

A lecke összefoglalása

Az első leckében megismerkedtél a blokklánccal, és megtanultad, hogy ez egy különleges módon összeállított blokksorozat. A korábban rögzített blokkok tartalma nem változtatható meg, mivel ehhez sok hálózati csomóponton újra kell számítani az összes következő blokkot, ami sok erőforrást és időt igényel.

A blokklánc használható a tranzakciók eredményeinek tárolására. Fő célja a felek (személyek és szervezetek) közötti tranzakciók biztonságos lebonyolításának megszervezése, amelyek között nincs bizalom. Megtanulta, hogy az üzleti élet mely területein és mely területeken használhatja az Ethereum blokkláncot és a Solidity intelligens szerződéseket. Ez a bankszektor, tulajdonjogok, dokumentumok stb.

Azt is megtanulta, hogy a blokklánc használata során különféle problémák merülhetnek fel. Ezek a blokklánchoz hozzáadott információk ellenőrzésének problémái, a blokklánc sebessége, a tranzakciók költsége, az intelligens szerződések és a való világ közötti adatcsere problémája, valamint a behatolók lehetséges támadásai, amelyek célja a kriptovaluta alapok ellopása a felhasználótól. fiókok.

Röviden beszéltünk a bányászatról is, mint új blokkok blokklánchoz való hozzáadásának folyamatáról. A tranzakciók teljesítéséhez bányászat szükséges. A bányászattal foglalkozók biztosítják a blokklánc teljesítményét, és ezért kriptovalutában kapnak jutalmat.

2. lecke: Asztali környezet előkészítése Ubuntu és Debian rendszerenOperációs rendszer kiválasztása
A szükséges segédprogramok telepítése
A Geth és a Swarm telepítése Ubuntun
A Geth és a Swarm telepítése Debianra
Előzetes előkészítés
A Go disztribúció letöltése
Környezeti változók beállítása
A Go verzió ellenőrzése
A Geth és a Swarm telepítése
Privát blokkláncot hozunk létre
A genesis.json fájl előkészítése
Hozzon létre egy munkakönyvtárat
Hozzon létre egy fiókot
Futtassa a csomópont inicializálását
Csomópont indítási lehetőségek
Csatlakozás oldalunkhoz
Bányagazdálkodás és mérlegellenőrzés
A Geth konzol leállítása
A lecke összefoglalása

3. leckeA Raspberry Pi 3 előkészítése
A Rasberian telepítése
Frissítések telepítése
SSH hozzáférés engedélyezése
Statikus IP-cím beállítása
A szükséges segédprogramok telepítése
A Go telepítése
A Go disztribúció letöltése
Környezeti változók beállítása
A Go verzió ellenőrzése
A Geth és a Swarm telepítése
Privát blokkláncot hozunk létre
Számla és egyenleg ellenőrzése
A lecke összefoglalása

4. leckeFiókok megtekintése és hozzáadása
A fiókok listájának megtekintése
Fiók hozzáadása
geth account parancsbeállítások
Fiók jelszavai
Kriptovaluta az Ethereumban
Ethereum valuta
Határozzuk meg számláink aktuális egyenlegét
Pénz átutalása egyik számláról a másikra
eth.sendTranzakciós módszer
Tranzakció állapotának megtekintése
Tranzakció nyugta
A lecke összefoglalása

5. leckeIntelligens szerződések az Ethereumban
Okos szerződésvégrehajtás
Ethereum virtuális gép
Integrált fejlesztői környezet Remix Solidity IDE
Összeállítás kezdete
Szerződési funkciók hívása
Szerződés közzététele magánhálózatban
Szerezd meg az ABI definíciót és szerződéses binárist
A szerződés közzététele
Szerződés közzétételi tranzakció állapotának ellenőrzése
Szerződési funkciók hívása
solc kötegfordító
Solc telepítése Ubuntuba
Solc telepítése Debianra
HelloSol szerződés összeállítása
A szerződés közzététele
Solc telepítése Rasberianra
A lecke összefoglalása

6. lecke. Intelligens szerződések és Node.jsA Node.js telepítése
Telepítés Ubuntuban
Telepítés Debianra
A Ganache-cli telepítése és futtatása
A Web3 telepítése
Solc telepítés
A Node.js telepítése Rasberianra
Script a konzolon lévő fiókok listájának megjelenítéséhez
Szkript intelligens szerződés közzétételéhez
Futtatás és paraméterek lekérése
Indítási lehetőségek lekérése
Szerződés összeállítása
Fiók feloldása
Töltse le az ABI-t és szerződjön bináris kódot
A szükséges gázmennyiség becslése
Hozzon létre egy objektumot, és kezdje el közzétenni a szerződést
A szerződés közzétételi szkriptjének futtatása
Intelligens szerződési funkciók hívása
Lehetséges-e frissíteni a közzétett okosszerződést
Munka a Web3 1.0.x verziójával
Szerezze meg a fiókok listáját
A szerződés közzététele
Szerződési funkciók hívása
Pénz átutalása egyik számláról a másikra
Pénzeszközök átutalása a szerződéses számlára
A HelloSol intelligens szerződés frissítése
Hozzon létre egy szkriptet a számlaegyenleg megtekintéséhez
Adjon hozzá egy getBalance függvényhívást a call_contract_get_promise.js parancsfájlhoz
Az intelligens szerződéses számla feltöltése
A lecke összefoglalása

7. lecke. Bevezetés a szarvasgombábaA szarvasgomba telepítése
Hozzon létre egy HelloSol projektet
Projektkönyvtár és fájlok létrehozása
szerződések jegyzéke
Címtáráttelepítések
tesztkönyvtár
truffle-config.js fájl
HelloSol szerződés összeállítása
Kezdje el a szerződés közzétételét
A HelloSol szerződés függvények hívása egy Truffle promptban
HelloSol szerződési függvények meghívása egy Node.js-t futtató JavaScript-szkriptből
A szarvasgomba-szerződés modul telepítése
A szerződés függvények meghívása getValue és getString
A setValue és a setString szerződésfüggvények meghívása
Szerződésmódosítás és újrakiadás
Munka a Web3 1.0.x verziójával
A HelloSol intelligens szerződés módosítása
Szkriptek szerződési metódusok hívásához
Tesztelés szarvasgombában
Szilárdsági teszt
JavaScript teszt
A lecke összefoglalása

8. leckeSzerződés adattípusok tanulására
Logikai adattípusok
Előjel nélküli és előjeles egész számok
Fix pontszámok
cím
Komplex típusú változók
Rögzített tömbök
Dinamikus tömbök
Felsorolás
Szerkezetek
szótárak
A lecke összefoglalása

9. leckeSzerződés közzététele a Truffle-tól a Geth magánhálózathoz
Privát hálózati gazdagép előkészítése
Szerződés előkészítése a munkára
A szerződés összeállítása és áttelepítése a Truffle hálózatba
Geth LAN migráció futtatása
Leletek beszerzése Szarvasgomba
Szerződés közzététele a Truffle-tól a Rinkeby testnet számára
A Geth Node előkészítése Rinkeby számára
Csomópont szinkronizálás
Fiókok hozzáadása
Töltse fel Rinkeby-fiókját Etherrel
Szerződéses migráció indítása a Rinkeby hálózatra
Tekintse meg a szerződéssel kapcsolatos információkat a Rinkeby hálózaton
Truffle konzol a Rinkeby Network számára
A szerződéses függvények egyszerűbb meghívása
Szerződési metódusok hívása a Node.js segítségével
Vigyen át pénzt a számlák között a Rinkby Truffle konzoljában
A lecke összefoglalása

10. leckeHogyan működik az Ethereum Swarm
A Swarm telepítése és futtatása
Műveletek fájlokkal és könyvtárakkal
Fájl feltöltése az Ethereum Swarmba
Fájl olvasása az Ethereum Swarmból
A feltöltött fájl jegyzékének megtekintése
Könyvtárak betöltése alkönyvtárral
Fájl olvasása feltöltött könyvtárból
A Swarm Public Gateway használata
Swarm hívása Node.js szkriptekből
Perl Net::Ethereum::Swarm modul
A Net::Ethereum::Swarm modul telepítése
Adatok írása és olvasása
A lecke összefoglalása

11. leckeA Web3.py telepítése
Frissítse és telepítse a szükséges csomagokat
Az easysolc modul telepítése
Szerződés közzététele a Web3.py-vel
Szerződés összeállítása
Csatlakozás egy szolgáltatóhoz
A szerződés közzététele
A szerződési cím és az abi mentése fájlba
A szerződés közzétételi szkriptjének futtatása
Szerződéskötési módok hívása
Cím és szerződési abi olvasása JSON-fájlból
Csatlakozás egy szolgáltatóhoz
Hozzon létre egy szerződésobjektumot
Szerződéskötési módok hívása
Szarvasgomba és Web3.py
A lecke összefoglalása

12. leckeMegbízhat-e egy intelligens szerződés a külvilágból származó adatokat?
Oracles mint blokklánc információs közvetítő
Adatforrás
Kód a forrásból származó adatok megjelenítésére
Az Oracle rögzíti az árfolyamot a blokkláncban
Szerződés USDRateOracle
Az árfolyam frissítése intelligens szerződésben
A Web Socket Provider használata
Várakozás a RateUpdate eseményre
A RateUpdate esemény kezelése
Adatfrissítés kezdeményezése intelligens szerződésben
A lecke összefoglalása

Forrás: will.com

Hozzászólás