Kniha „Vytváranie inteligentných zmlúv Solidity pre blockchain Ethereum. Praktický sprievodca"

Kniha „Vytváranie inteligentných zmlúv Solidity pre blockchain Ethereum. Praktický sprievodca"
Viac ako rok pracujem na knihe “Creating Solidity Smart Contracts for the Ethereum Blockchain. Praktická príručka“ a teraz je táto práca dokončená a kniha publikované a dostupné v litroch.

Dúfam, že vám moja kniha pomôže rýchlo začať vytvárať inteligentné kontakty Solidity a distribuované DApps pre blockchain Ethereum. Pozostáva z 12 vyučovacích hodín s praktickými úlohami. Po ich dokončení bude čitateľ môcť vytvárať svoje vlastné lokálne uzly Ethereum, publikovať inteligentné zmluvy a volať ich metódy, vymieňať si údaje medzi skutočným svetom a inteligentnými zmluvami pomocou veštcov a pracovať s testovacou ladiacou sieťou Rinkeby.

Kniha je určená všetkým, ktorí sa zaujímajú o pokročilé technológie v oblasti blockchainu a chcú rýchlo získať poznatky, ktoré im umožnia venovať sa zaujímavej a perspektívnej práci.

Nižšie nájdete obsah a prvú kapitolu knihy (tiež na Litre sú k dispozícii fragmenty knihy). Dúfam, že dostanem spätnú väzbu, pripomienky a návrhy. Toto všetko sa pokúsim zohľadniť pri príprave ďalšieho vydania knihy.

obsahÚvodNaša kniha je určená tým, ktorí chcú nielen pochopiť princípy blockchainu Ethereum, ale aj získať praktické zručnosti pri vytváraní distribuovaných DApps v programovacom jazyku Solidity pre túto sieť.

Je lepšie túto knihu nielen čítať, ale aj pracovať s ňou a vykonávať praktické úlohy opísané v lekciách. Na prácu budete potrebovať lokálny počítač, virtuálny alebo cloudový server s nainštalovaným OS Debian alebo Ubuntu. Raspberry Pi môžete použiť aj na vykonávanie mnohých úloh.

Na prvej lekcii Pozrieme sa na princípy fungovania blockchainu Ethereum a základnú terminológiu a tiež si povieme, kde sa dá tento blockchain použiť.

Cieľ druhá lekcia — vytvorte súkromný uzol blockchainu Ethereum pre ďalšiu prácu v rámci tohto kurzu na serveri Ubuntu a Debian. Pozrieme sa na funkcie inštalácie základných utilít, ako je napríklad geth, ktorý zabezpečuje fungovanie nášho blockchainového uzla, ako aj démona swarm decentralizovaného ukladania dát.

Tretia lekcia vás naučí, ako experimentovať s Ethereom na lacnom mikropočítači Raspberry Pi. Na Raspberry Pi nainštalujete operačný systém (OS) Rasberian, obslužný program Geth, ktorý poháňa uzol blockchainu, a démona decentralizovaného ukladania údajov Swarm.

Lekcia štvrtá sa venuje účtom a jednotkám kryptomien v sieti Ethereum, ako aj spôsobom prevodu prostriedkov z jedného účtu na druhý z konzoly Geth. Dozviete sa, ako vytvárať účty, iniciovať transakcie prevodu prostriedkov a získať stav transakcie a potvrdenie.

V piatej lekcii Zoznámite sa so smart kontraktmi v sieti Ethereum a dozviete sa o ich realizácii virtuálnym strojom Ethereum.

Vytvoríte a zverejníte svoj prvý smart kontrakt na privátnej sieti Ethereum a naučíte sa volať jeho funkcie. Na tento účel použijete Remix Solidity IDE. Dozviete sa tiež, ako nainštalovať a používať dávkový kompilátor solc.
Porozprávame sa aj o takzvanom Application Binary Interface (ABI) a naučíme vás ho používať.

Šiesta lekcia sa venuje vytváraniu skriptov JavaScript so systémom Node.js a vykonávaniu operácií s inteligentnými zmluvami Solidity.

Nainštalujete Node.js na OS Ubuntu, Debian a Rasberian, napíšete skripty na zverejnenie smart kontraktu v lokálnej sieti Ethereum a zavoláte jeho funkcie.

Okrem toho sa naučíte, ako previesť prostriedky medzi bežnými účtami pomocou skriptov, ako aj pripísať ich na účty smart contract.

V siedmej lekcii Dozviete sa, ako nainštalovať a používať framework Truffle, obľúbený medzi vývojármi inteligentných zmlúv Solidity. Dozviete sa, ako vytvoriť skripty JavaScript, ktoré volajú zmluvné funkcie pomocou modulu truffle-contract, a otestovať svoju inteligentnú zmluvu pomocou Truffle.

Ôsma lekcia venovaný dátovým typom Solidity. Budete písať inteligentné zmluvy, ktoré pracujú s typmi údajov, ako sú celé čísla so znamienkom a bez znamienka, čísla so znamienkom, reťazce, adresy, komplexné premenné, polia, enumerácie, štruktúry a slovníky.

V deviatej lekcii Budete o krok bližšie k vytvoreniu inteligentných zmlúv pre sieť Ethereum. Dozviete sa, ako zverejniť zmluvy pomocou Hľuzovky na súkromnej sieti Geth, ako aj na Rinkeby testnet. Ladenie inteligentnej zmluvy v sieti Rinkeby je veľmi užitočné pred jej zverejnením v hlavnej sieti - takmer všetko je tam skutočné, ale zadarmo.

V rámci lekcie si vytvoríte uzol testovacej siete Rinkeby, zafinancujete ho finančnými prostriedkami a zverejníte inteligentnú zmluvu.

10 lekcia venované distribuovanému úložisku dát Ethereum Swarm. Použitím distribuovaného úložiska ušetríte na ukladaní veľkého množstva dát na blockchaine Ethereum.

V tomto návode vytvoríte lokálne úložisko Swarm, operácie zápisu a čítania so súbormi a adresármi súborov. Ďalej sa naučíte pracovať s verejnou bránou Swarm, písať skripty na prístup k Swarmu z Node.js, ako aj používať modul Perl Net::Ethereum::Swarm.

Cieľ lekcie 11 — zvládnuť prácu s inteligentnými zmluvami Solidity pomocou obľúbeného programovacieho jazyka Python a rámca Web3.py. Nainštalujete rámec, napíšete skripty na kompiláciu a zverejnenie inteligentnej zmluvy a zavoláte jej funkcie. V tomto prípade sa Web3.py použije samostatne aj v spojení s integrovaným vývojovým prostredím Truffle.

Na lekcii 12 naučíte sa prenášať dáta medzi smart kontraktmi a reálnym svetom pomocou oracles. Bude to pre vás užitočné na prijímanie údajov z webových stránok, zariadení internetu vecí, rôznych zariadení a senzorov a odosielanie údajov z inteligentných zmlúv do týchto zariadení. V praktickej časti lekcie si vytvoríte orákulum a smart kontrakt, ktorý získa aktuálny kurz medzi USD a rubľmi zo stránky Centrálnej banky Ruskej federácie.

Lekcia 1. Stručne o blockchaine a sieti EthereumÚčel lekcie: zoznámte sa s princípmi fungovania blockchainu Ethereum, oblasťami jeho použitia a základnou terminológiou.
Praktické úlohy: nie sú zahrnuté v tejto lekcii.

V súčasnosti sotva existuje softvérový vývojár, ktorý by nepočul nič o technológii blockchain (Blockchain), kryptomenách (kryptomena alebo kryptomena), bitcoíne (Bitcoin), počiatočnej ponuke mincí (ICO, počiatočná ponuka mincí), inteligentných zmluvách (Smart Contract), ako aj ďalšie pojmy a termíny súvisiace s blockchainom.

Technológia blockchain otvára nové trhy a vytvára pracovné miesta pre programátorov. Ak rozumiete všetkým zložitosti technológií kryptomien a technológií inteligentných zmlúv, nemali by ste mať problémy s aplikáciou týchto znalostí v praxi.

Treba povedať, že okolo kryptomien a blockchainov je veľa špekulácií. Necháme bokom diskusie o zmenách kurzov kryptomien, vytváraní pyramíd, zložitosti legislatívy kryptomien atď. V našom školiacom kurze sa zameriame najmä na technické aspekty aplikácie smart kontraktov blockchainu Ethereum (Ethereum, Ether) a vývoj takzvaných decentralizovaných aplikácií (Distributed Application, DApp).

Čo je blockchain

Blockchain (Block Chain) je reťazec dátových blokov, ktoré sú navzájom prepojené určitým spôsobom. Na začiatku reťazca je prvý blok, ktorý sa nazýva primárny blok (genézny blok) alebo genézny blok. Po ňom nasleduje druhý, potom tretí a tak ďalej.

Všetky tieto dátové bloky sa automaticky duplikujú na mnohých uzloch blockchainovej siete. To zaisťuje decentralizované ukladanie údajov blockchainu.
Blockchainový systém si môžete predstaviť ako veľký počet uzlov (fyzických alebo virtuálnych serverov) pripojených do siete a replikujúcich všetky zmeny v reťazci dátových blokov. Je to ako obrovský viacserverový počítač a uzly takéhoto počítača (servery) môžu byť roztrúsené po celom svete. A aj vy môžete pridať svoj počítač do blockchainovej siete.

Distribuovaná databáza

Blockchain si možno predstaviť ako distribuovanú databázu, ktorá je replikovaná vo všetkých uzloch blockchainovej siete. Teoreticky bude blockchain funkčný, pokiaľ bude fungovať aspoň jeden uzol, v ktorom budú uložené všetky bloky blockchainu.

Distribuovaný register údajov

Blockchain si možno predstaviť ako distribuovanú účtovnú knihu údajov a operácií (transakcií). Iný názov pre takýto register je účtovná kniha.

Údaje je možné pridať do distribuovanej účtovnej knihy, ale nemožno ich zmeniť ani odstrániť. Táto nemožnosť sa dosahuje najmä použitím kryptografických algoritmov, špeciálnych algoritmov na pridávanie blokov do reťazca a decentralizovaného ukladania dát.

Pri pridávaní blokov a vykonávaní operácií (transakcií) sa používajú súkromné ​​a verejné kľúče. Obmedzujú používateľov blockchainu tým, že im dávajú prístup iba k ich vlastným blokom údajov.

Transakcie

Blockchain ukladá informácie o operáciách (transakciách) v blokoch. Zároveň nie je možné vrátiť späť alebo zmeniť staré, už dokončené transakcie. Nové transakcie sa ukladajú do nových, pridaných blokov.

Takto sa dá na blockchaine zaznamenať celá história transakcií nezmenená. Blockchain je preto možné využiť napríklad na bezpečné ukladanie bankových transakcií, informácií o autorských právach, histórie zmien vlastníkov nehnuteľností atď.

Ethereum blockchain obsahuje takzvané systémové stavy. Pri vykonávaní transakcií sa stav mení z počiatočného stavu na aktuálny. Transakcie sa zaznamenávajú v blokoch.

Verejné a súkromné ​​blockchainy

Tu je potrebné poznamenať, že všetko uvedené platí len pre takzvané verejné blockchainové siete, ktoré nemôže kontrolovať žiadna fyzická alebo právnická osoba, vládna agentúra alebo vláda.
Takzvané privátne blockchainové siete sú pod plnou kontrolou ich tvorcov a je tam možné čokoľvek, napríklad kompletná výmena všetkých blokov reťazca.

Praktické aplikácie blockchainu

Na čo môže byť blockchain užitočný?

Blockchain skrátka umožňuje bezpečne vykonávať transakcie (transakcie) medzi ľuďmi alebo spoločnosťami, ktoré si navzájom neveria. Údaje zaznamenané v blockchaine (transakcie, osobné údaje, dokumenty, certifikáty, zmluvy, faktúry atď.) nie je možné po zaznamenaní sfalšovať ani nahradiť. Na základe blockchainu je teda možné vytvárať napríklad dôveryhodné distribuované registre rôznych druhov dokumentov.

Samozrejme viete, že kryptomenové systémy vznikajú na báze blockchainov, ktoré majú nahradiť bežné papierové peniaze. Papierové peniaze sa nazývajú aj fiat (od Fiat Money).
Blockchain zabezpečuje ukladanie a nemennosť transakcií zaznamenaných v blokoch, a preto je možné ho použiť na vytváranie kryptomenových systémov. Obsahuje celú históriu prevodu krypto prostriedkov medzi rôznymi používateľmi (účtami) a každú operáciu je možné sledovať.

Hoci transakcie v rámci kryptomenových systémov môžu byť anonymné, výber kryptomeny a jej výmena za fiat peniaze zvyčajne vedie k odhaleniu identity vlastníka kryptomenového aktíva.

Takzvané smart kontrakty, čo je softvér bežiaci na sieti Ethereum, umožňujú automatizovať proces uzatvárania transakcií a monitorovania ich implementácie. Toto je obzvlášť účinné, ak sa platba za transakciu uskutočňuje pomocou kryptomeny Ether.

Ethereum blockchain a Ethereum smart kontrakty napísané v programovacom jazyku Solidity sa dajú využiť napríklad v nasledujúcich oblastiach:

  • alternatíva k notárskemu overeniu dokumentov;
  • uchovávanie registra nehnuteľností a informácií o transakciách s nehnuteľnosťami;
  • uchovávanie informácií o autorských právach týkajúcich sa duševného vlastníctva (knihy, obrázky, hudobné diela atď.);
  • vytvorenie nezávislých hlasovacích systémov;
  • financie a bankovníctvo;
  • logistika v medzinárodnom meradle, sledovanie pohybu tovaru;
  • uchovávanie osobných údajov ako analógu k systému preukazov totožnosti;
  • bezpečné transakcie v obchodnej oblasti;
  • uchovávanie výsledkov lekárskych vyšetrení, ako aj histórie predpísaných výkonov

Problémy s blockchainom

Ale, samozrejme, nie všetko je také jednoduché, ako by sa mohlo zdať!

Existujú problémy s overovaním údajov pred ich pridaním do blockchainu (napríklad sú falošné?), problémy so zabezpečením systémového a aplikačného softvéru používaného na prácu s blockchainom, problémy s možnosťou využitia metód sociálneho inžinierstva na ukradnutie prístupu do kryptomenových peňaženiek atď. .P.

Opäť, ak nehovoríme o verejnom blockchaine, ktorého uzly sú roztrúsené po celom svete, ale o súkromnom blockchaine patriacom osobe alebo organizácii, potom miera dôvery tu nebude vyššia ako miera dôvery. v tejto osobe alebo tejto organizácii.

Do úvahy treba brať aj to, že údaje zaznamenané v blockchaine sa stanú dostupné každému. V tomto zmysle nie je blockchain (najmä verejný) vhodný na uchovávanie dôverných informácií. Skutočnosť, že informácie na blockchaine nie je možné zmeniť, však môže pomôcť predchádzať rôznym typom podvodných aktivít alebo ich vyšetrovať.

Decentralizované aplikácie Ethereum budú pohodlné, ak za ich používanie zaplatíte kryptomenou. Čím viac ľudí vlastní kryptomenu alebo je ochotných si ju kúpiť, tým populárnejšie budú DApps a smart kontrakty.

Medzi bežné problémy s blockchainom, ktoré bránia jeho praktickému uplatneniu, patrí obmedzená rýchlosť pridávania nových blokov a relatívne vysoké náklady na transakcie. Technológia v tejto oblasti sa však aktívne rozvíja a existuje nádej, že technické problémy sa časom vyriešia.

Ďalším problémom je, že inteligentné zmluvy na blockchaine Ethereum fungujú v izolovanom prostredí virtuálnych strojov a nemajú prístup k údajom z reálneho sveta. Program inteligentnej zmluvy nemôže sám čítať údaje zo stránok alebo akýchkoľvek fyzických zariadení (senzory, kontakty atď.) a tiež nemôže odosielať údaje na žiadne externé zariadenia. Tento problém a spôsoby jeho riešenia si rozoberieme v lekcii venovanej takzvaným Oracles – informačným sprostredkovateľom smart kontraktov.

Existujú aj zákonné obmedzenia. V niektorých krajinách je napríklad zakázané používať kryptomenu ako platobný prostriedok, ale môžete ju vlastniť ako druh digitálneho aktíva, napríklad cenné papiere. Takéto aktíva možno kupovať a predávať na burze. V každom prípade, pri vytváraní projektu, ktorý pracuje s kryptomenami, sa musíte oboznámiť s legislatívou krajiny, pod ktorej jurisdikciu váš projekt spadá.

Ako vzniká blockchainový reťazec

Ako sme už povedali, blockchain je jednoduchý reťazec dátových blokov. Najprv sa vytvorí prvý blok tohto reťazca, potom sa k nemu pridá druhý atď. Predpokladá sa, že údaje o transakcii sú uložené v blokoch a pridajú sa do posledného bloku.

Na obr. 1.1 sme ukázali najjednoduchšiu verziu postupnosti blokov, kde prvý blok odkazuje na nasledujúci.

Kniha „Vytváranie inteligentných zmlúv Solidity pre blockchain Ethereum. Praktický sprievodca"
Ryža. 1.1. Jednoduchá postupnosť blokov

Pomocou tejto možnosti je však veľmi jednoduché manipulovať s obsahom akéhokoľvek bloku v reťazci, pretože bloky neobsahujú žiadne informácie na ochranu pred zmenami. Vzhľadom na to, že blockchain je určený na používanie ľuďmi a spoločnosťami, medzi ktorými neexistuje dôvera, môžeme konštatovať, že tento spôsob ukladania dát nie je pre blockchain vhodný.

Začnime chrániť bloky pred falšovaním. V prvej fáze sa pokúsime chrániť každý blok kontrolným súčtom (obr. 1.2).

Kniha „Vytváranie inteligentných zmlúv Solidity pre blockchain Ethereum. Praktický sprievodca"
Ryža. 1.2. Pridanie ochrany pre tieto bloky pomocou kontrolného súčtu

Útočník teraz nemôže jednoducho zmeniť blok, pretože obsahuje kontrolný súčet údajov bloku. Kontrola kontrolného súčtu ukáže, že údaje boli zmenené.

Na výpočet kontrolného súčtu môžete použiť jednu z hašovacích funkcií, ako napríklad MD-5, SHA-1, SHA-256 atď. Hashovacie funkcie vypočítavajú hodnotu (napríklad textový reťazec konštantnej dĺžky) vykonaním nevratných operácií s blokom údajov. Operácie závisia od typu hašovacej funkcie.

Aj keď sa obsah bloku údajov mierne zmení, zmení sa aj hodnota hash. Analýzou hodnoty hašovacej funkcie nie je možné rekonštruovať dátový blok, pre ktorý bola vypočítaná.

Bude takáto ochrana dostatočná? Bohužiaľ nie.

V tejto schéme kontrolný súčet (hash funkcia) chráni iba jednotlivé bloky, ale nie celý blockchain. Vďaka znalosti algoritmu na výpočet hašovacej funkcie môže útočník ľahko nahradiť obsah bloku. Taktiež mu nič nebude brániť v odoberaní kociek z reťaze či pridávaní nových.

Na ochranu celého reťazca ako celku môžete do každého bloku uložiť spolu s údajmi aj hash údajov z predchádzajúceho bloku (obr. 1.3).

Kniha „Vytváranie inteligentných zmlúv Solidity pre blockchain Ethereum. Praktický sprievodca"
Ryža. 1.3. Pridajte hash predchádzajúceho bloku do dátového bloku

V tejto schéme, ak chcete zmeniť blok, musíte prepočítať hašovacie funkcie všetkých nasledujúcich blokov. Zdalo by sa, v čom je problém?

V skutočných blockchainoch sa navyše vytvárajú umelé ťažkosti pri pridávaní nových blokov – používajú sa algoritmy, ktoré vyžadujú veľa výpočtových zdrojov. Vzhľadom na to, že ak chcete vykonať zmeny v bloku, musíte prepočítať nielen tento jeden blok, ale všetky nasledujúce, bude to veľmi ťažké.

Pamätajme tiež, že blockchainové dáta sú uložené (duplikované) na početných sieťových uzloch, t.j. Používa sa decentralizované úložisko. A to sťažuje predstieranie bloku, pretože zmeny sa musia vykonať vo všetkých uzloch siete.

Keďže bloky uchovávajú informácie o predchádzajúcom bloku, je možné kontrolovať obsah všetkých blokov v reťazci.

Ethereum blockchain

Ethereum blockchain je platforma, na ktorej je možné vytvárať distribuované DApps. Na rozdiel od iných platforiem Ethereum umožňuje používanie takzvaných smart kontraktov (smart contract), napísaných v programovacom jazyku Solidity.

Táto platforma bola vytvorená v roku 2013 Vitalikom Buterinom, zakladateľom Bitcoin Magazine, a spustená v roku 2015. Všetko, čo budeme študovať alebo robiť v našom školiacom kurze, sa týka špecificky Ethereum blockchain a Solidity smart kontraktov.

Ťažba alebo ako vznikajú bloky

Ťažba je pomerne zložitý a na zdroje náročný proces pridávania nových blokov do blockchainového reťazca a vôbec nie „ťažba kryptomien“. Ťažba zabezpečuje funkčnosť blockchainu, pretože práve tento proces je zodpovedný za pridávanie transakcií do blockchainu Ethereum.

Ľudia a organizácie zapojené do pridávania blokov sa nazývajú baníci.
Softvér bežiaci na uzloch baníkov sa pokúša nájsť parameter hash s názvom Nonce pre posledný blok, aby získal špecifickú hodnotu hash špecifikovanú sieťou. Ethash hashovací algoritmus používaný v Ethereu vám umožňuje získať hodnotu Nonce iba prostredníctvom sekvenčného vyhľadávania.

Ak uzol minerov nájde správnu hodnotu Nonce, tak ide o takzvaný proof of work (PoW, Proof-of-work). V tomto prípade, ak sa do siete Ethereum pridá blok, získava ťažiar určitú odmenu v mene siete – Ether. V čase písania tohto článku je odmena 5 éterov, no časom sa to zníži.

Ethereum baníci teda zabezpečujú chod siete pridávaním blokov a dostávajú za to peniaze v kryptomene. Na internete nájdete množstvo informácií o ťažiaroch a ťažbe, no my sa zameriame na vytváranie zmlúv Solidity a DApps na sieti Ethereum.

Zhrnutie lekcie

Na prvej lekcii ste sa zoznámili s blockchainom a dozvedeli ste sa, že ide o špeciálne zostavenú sekvenciu blokov. Obsah predtým zaznamenaných blokov nemožno zmeniť, pretože by to vyžadovalo prepočítanie všetkých nasledujúcich blokov na mnohých sieťových uzloch, čo si vyžaduje veľa zdrojov a času.

Blockchain možno použiť na ukladanie výsledkov transakcií. Jeho hlavným účelom je organizovať bezpečné transakcie medzi stranami (osobami a organizáciami), medzi ktorými neexistuje dôvera. Dozvedeli ste sa, v ktorých konkrétnych oblastiach podnikania a v ktorých oblastiach sa dajú využiť inteligentné zmluvy Ethereum blockchain a Solidity. Ide o bankový sektor, evidenciu vlastníckych práv, dokumentov a pod.

Tiež ste sa dozvedeli, že pri používaní blockchainu môžu nastať rôzne problémy. Ide o problémy s overovaním informácií pridaných do blockchainu, rýchlosť blockchainu, náklady na transakcie, problém výmeny dát medzi smart kontraktmi a reálnym svetom, ako aj potenciálne útoky útočníkov, ktorých cieľom je ukradnúť kryptomenové prostriedky z používateľských účtov. .

Krátko sme hovorili aj o ťažbe ako o procese pridávania nových blokov do blockchainu. Na dokončenie transakcií je potrebná ťažba. Tí, ktorí sa podieľajú na ťažbe, zabezpečujú fungovanie blockchainu a dostávajú za to odmenu v kryptomene.

Lekcia 2. Príprava pracovného prostredia v OS Ubuntu a DebianVýber operačného systému
Inštalácia potrebných nástrojov
Inštalácia Geth a Swarm na Ubuntu
Inštalácia Geth a Swarm na Debian
Predbežná príprava
Sťahovanie distribúcie Go
Nastavenie premenných prostredia
Kontrola verzie Go
Inštalácia Getha a Swarma
Vytvorenie súkromného blockchainu
Pripravuje sa súbor genesis.json
Vytvorte pracovný adresár
Vytvoriť účet
Spustenie inicializácie uzla
Možnosti spustenia uzla
Pripojte sa k nášmu uzlu
Manažment ťažby a kontrola bilancie
Vypnutie konzoly Geth
Zhrnutie lekcie

Lekcia 3. Príprava pracovného prostredia na Raspberry Pi 3Príprava Raspberry Pi 3 na prácu
Inštalácia Rasberian
Inštalácia aktualizácií
Povolenie prístupu SSH
Nastavenie statickej IP adresy
Inštalácia potrebných nástrojov
Inštaluje sa Go
Sťahovanie distribúcie Go
Nastavenie premenných prostredia
Kontrola verzie Go
Inštalácia Getha a Swarma
Vytvorenie súkromného blockchainu
Kontrola vášho účtu a zostatku
Zhrnutie lekcie

Lekcia 4. Účty a prevod prostriedkov medzi účtamiZobraziť a pridať účty
Pozrite si zoznam účtov
Pridanie účtu
možnosti príkazu účtu geth
Heslá účtov
Kryptomena v Ethereu
Ethereum menové jednotky
Zisťujeme aktuálny stav našich účtov
Prevod peňazí z jedného účtu na druhý
eth.sendTransaction metóda
Zobraziť stav transakcie
Potvrdenie o transakcii
Zhrnutie lekcie

Lekcia 5. Zverejnenie vašej prvej zmluvyInteligentné zmluvy v Ethereu
Inteligentná realizácia zmluvy
Virtuálny stroj Ethereum
Integrované vývojové prostredie Remix Solidity IDE
Spustená kompilácia
Volanie funkcií zmluvy
Zverejnenie zmluvy v súkromnej sieti
Získanie definície ABI a binárneho kódu zmluvy
Zverejnenie zmluvy
Kontrola stavu zverejnenia zmluvy
Volanie funkcií zmluvy
Dávkový kompilátor solc
Inštalácia solc na Ubuntu
Inštalácia solc na Debian
Zostavenie zmluvy HelloSol
Zverejnenie zmluvy
Inštalácia solc na Rasberian
Zhrnutie lekcie

Lekcia 6. Inteligentné zmluvy a Node.jsInštalácia Node.js
Inštalácia na Ubuntu
Inštalácia v Debiane
Inštalácia a spustenie Ganache-cli
Inštalácia Web3
Inštalácia solc
Inštalácia Node.js na Rasberian
Skript na získanie zoznamu účtov v konzole
Skript na publikovanie inteligentnej zmluvy
Spustite a získajte parametre
Získavanie možností spustenia
Kompilácia zmluvy
Odblokovanie účtu
Načítava sa ABI a uzatvára sa binárny kód
Odhad potrebného množstva plynu
Vytvorte objekt a začnite zverejňovať zmluvu
Spustenie skriptu zverejnenia zmluvy
Volanie funkcií inteligentnej zmluvy
Je možné aktualizovať zverejnenú smart zmluvu?
Práca s Web3 verzie 1.0.x
Získanie zoznamu účtov
Zverejnenie zmluvy
Volanie funkcií zmluvy
Prevod peňazí z jedného účtu na druhý
Preveďte prostriedky na zmluvný účet
Aktualizácia inteligentnej zmluvy HelloSol
Vytvorte skript na zobrazenie zostatku na účte
Pridajte volanie funkcie getBalance do skriptu call_contract_get_promise.js
Dobíjame účet smart contract
Zhrnutie lekcie

Lekcia 7. Úvod do hľuzovkyInštalácia Truffle
Vytvorte projekt HelloSol
Vytvorenie adresára projektu a súborov
Adresár zmlúv
Katalógové migrácie
Test adresára
súbor truffle-config.js
Zostavenie zmluvy HelloSol
Začnite zverejňovať zmluvu
Volanie funkcií zmluvy HelloSol vo výzve Hľuzovky
Volanie funkcií zmluvy HelloSol zo skriptu JavaScript spusteného Node.js
Inštalácia modulu pre hľuzovku
Volanie funkcií zmluvy getValue a getString
Volanie zmluvných funkcií setValue a setString
Úprava zmluvy a jej opätovné zverejnenie
Práca s Web3 verzie 1.0.x
Vykonávanie zmien v inteligentnej zmluve HelloSol
Skripty na volanie zmluvných metód
Testovanie v Hľuzovke
Skúška pevnosti
JavaScript test
Zhrnutie lekcie

Lekcia 8. Typy údajov o pevnostiZmluva na učenie sa typov údajov
Booleovské dátové typy
Celé čísla bez znamienka a celé čísla so znamienkom
Pevné čísla bodov
adresa
Premenné komplexných typov
Polia s pevnou veľkosťou
Dynamické polia
Prestup
Štruktúry
Mapovanie slovníkov
Zhrnutie lekcie

Lekcia 9. Migrácia zmlúv do súkromnej siete a do siete RinkebyPublikovanie zmluvy od Truffle do súkromnej siete Geth
Príprava uzla súkromnej siete
Príprava zmluvy o dielo
Zostavenie a migrácia zmluvy do siete Truffle
Spustenie migrácie lokálnej siete geth
Získavanie artefaktov z hľuzovky
Zverejnenie zmluvy od Hľuzovky na testovaciu sieť Rinkeby
Príprava uzla Getha na prácu s Rinkeby
Synchronizácia uzlov
Pridávanie účtov
Dobitie vášho účtu Rinkeby éterom
Spustenie migrácie zmluvy do siete Rinkeby
Zobrazenie informácií o zmluve v sieti Rinkeby
Truffle Console pre Rinkeby Network
Jednoduchší spôsob volania zmluvných funkcií
Volanie zmluvných metód pomocou Node.js
Preveďte prostriedky medzi účtami v konzole Truffle pre Rinkby
Zhrnutie lekcie

Lekcia 10. Decentralizované ukladanie dát Ethereum SwarmAko funguje Ethereum Swarm?
Inštalácia a spustenie Swarm
Operácie so súbormi a adresármi
Nahrávanie súboru do Ethereum Swarm
Čítanie súboru z Ethereum Swarm
Zobraziť manifest nahraného súboru
Načítavanie adresárov s podadresármi
Čítanie súboru zo stiahnutého adresára
Použitie verejnej brány Swarm
Prístup k Swarmu zo skriptov Node.js
Perl Net::Ethereum::Swarm modul
Inštalácia modulu Net::Ethereum::Swarm
Zápis a čítanie údajov
Zhrnutie lekcie

Lekcia 11. Web3.py framework pre prácu s Ethereom v PythoneInštalácia Web3.py
Aktualizácia a inštalácia potrebných balíkov
Inštalácia modulu easysolc
Publikovanie zmluvy pomocou Web3.py
Kompilácia zmluvy
Pripojenie k poskytovateľovi
Vykonajte zverejnenie zmluvy
Uloženie adresy zmluvy a abi do súboru
Spustenie skriptu zverejnenia zmluvy
Spôsoby volania zmluvy
Čítanie adresy a abi zmluvy zo súboru JSON
Pripojenie k poskytovateľovi
Vytvorenie predmetu zmluvy
Spôsoby volania zmluvy
Hľuzovka a Web3.py
Zhrnutie lekcie

Lekcia 12. OrákuláMôže inteligentná zmluva dôverovať údajom z vonkajšieho sveta?
Oracle ako sprostredkovatelia blockchainových informácií
Dátový zdroj
Kód reprezentujúci údaje zo zdroja
Oracle na zaznamenávanie výmenného kurzu v blockchaine
Zmluva USDRateOracle
Aktualizácia výmenného kurzu v inteligentnej zmluve
Používanie poskytovateľa webových zásuviek
Čaká sa na udalosť RateUpdate
Spracovanie udalosti RateUpdate
Spustenie aktualizácie údajov v inteligentnej zmluve
Zhrnutie lekcie

Zdroj: hab.com

Pridať komentár