Bókin „Creating Solidity snjallsamningar fyrir Ethereum blockchain. Hagnýt leiðarvísir"

Bókin „Creating Solidity snjallsamningar fyrir Ethereum blockchain. Hagnýt leiðarvísir"
Í meira en ár hef ég unnið að bókinni „Creating Solidity Smart Contracts for the Ethereum Blockchain. Hagnýt leiðarvísir", og nú er þessu verki lokið, og bókin gefið út og fáanlegt í lítrum.

Ég vona að bókin mín muni hjálpa þér að byrja fljótt að búa til Solidity snjalltengiliði og dreift DApps fyrir Ethereum blockchain. Það samanstendur af 12 kennslustundum með verklegum verkefnum. Eftir að hafa lokið þeim mun lesandinn geta búið til sína eigin staðbundna Ethereum hnúta, birt snjalla samninga og hringt í aðferðir þeirra, skipt gögnum á milli raunheimsins og snjallsamninga með því að nota véfrétt og unnið með Rinkeby prófkembiforritinu.

Bókin er beint til allra sem hafa áhuga á háþróaðri tækni á sviði blockchain og vilja öðlast fljótt þekkingu sem gerir þeim kleift að stunda áhugavert og efnilegt starf.

Hér að neðan er að finna efnisyfirlitið og fyrsta kafla bókarinnar (einnig á Litrese brot úr bókinni eru fáanleg). Ég vonast til að fá viðbrögð, athugasemdir og ábendingar. Allt þetta mun ég reyna að taka með í reikninginn við undirbúning næstu útgáfu bókarinnar.

efnisyfirlitInngangurBókin okkar er ætluð þeim sem vilja ekki aðeins skilja meginreglur Ethereum blockchain, heldur einnig að öðlast hagnýta færni í að búa til dreifða DApps á Solidity forritunarmálinu fyrir þetta net.

Það er betra að lesa þessa bók ekki bara, heldur vinna með hana og framkvæma hagnýt verkefni sem lýst er í kennslustundunum. Til að vinna þarftu staðbundna tölvu, sýndar- eða skýjaþjón með Debian eða Ubuntu OS uppsettu. Þú getur líka notað Raspberry Pi til að framkvæma mörg verkefni.

Í fyrstu kennslustund Við munum skoða rekstrarreglur Ethereum blockchain og grunnhugtök, og einnig tala um hvar þetta blockchain er hægt að nota.

Markmið annarri kennslustund - búðu til einka Ethereum blockchain hnút fyrir frekari vinnu á þessu námskeiði á Ubuntu og Debian netþjóni. Við munum skoða eiginleika þess að setja upp grunntól, svo sem geth, sem tryggir rekstur blockchain hnútsins okkar, sem og kvik dreifða gagnageymslupúkinn.

Þriðja kennslustund mun kenna þér hvernig á að gera tilraunir með Ethereum á ódýrri Raspberry Pi örtölvu. Þú munt setja upp Rasberian stýrikerfið (OS) á Raspberry Pi, Geth tólinu sem knýr blockchain hnútinn og Swarm dreifða gagnageymslupúkinn.

Lexía fjögur er tileinkað reikningum og dulmálseiningum á Ethereum netinu, auk leiða til að flytja fjármuni frá einum reikningi til annars frá Geth stjórnborðinu. Þú munt læra hvernig á að stofna reikninga, hefja millifærslur og fá færslustöðu og kvittun.

Í fimmtu kennslustund Þú munt kynnast snjöllum samningum á Ethereum netinu og læra um framkvæmd þeirra með Ethereum sýndarvélinni.

Þú munt búa til og birta fyrsta snjalla samninginn þinn á Ethereum einkanetinu og læra hvernig á að hringja í aðgerðir þess. Til að gera þetta muntu nota Remix Solidity IDE. Þú munt einnig læra hvernig á að setja upp og nota solc lotuþýðandann.
Við munum einnig ræða um svokallað Application Binary Interface (ABI) og kenna þér hvernig á að nota það.

Sjötta kennslustund er tileinkað því að búa til JavaScript forskriftir sem keyra Node.js og framkvæma aðgerðir með Solidity snjallsamningum.

Þú munt setja upp Node.js á Ubuntu, Debian og Rasberian OS, skrifa forskriftir til að birta snjallsamning á Ethereum staðarnetinu og kalla á aðgerðir þess.

Að auki munt þú læra hvernig á að flytja fjármuni á milli venjulegra reikninga með því að nota forskriftir, auk þess að leggja þá inn á snjalla samningsreikninga.

Í sjöundu kennslustund Þú munt læra hvernig á að setja upp og nota Truffle rammann, vinsæll meðal hönnuða Solidity snjallsamninga. Þú munt læra hvernig á að búa til JavaScript forskriftir sem kalla á samningsaðgerðir með því að nota trufflusamningseininguna og prófa snjallsamninginn þinn með því að nota Truffle.

Áttunda kennslustund tileinkað Solidity gagnategundum. Þú munt skrifa snjalla samninga sem vinna með gagnategundum eins og áritaðar og óundirritaðar heiltölur, undirritaðar tölur, strengi, heimilisföng, flóknar breytur, fylki, upptalningar, strúktúra og orðabækur.

Í níundu kennslustund Þú verður einu skrefi nær því að búa til snjalla samninga fyrir Ethereum mainnetið. Þú munt læra hvernig á að birta samninga með Truffle á Geth einkanetinu, sem og á Rinkeby testnetinu. Það er mjög gagnlegt að kemba snjallsamning á Rinkeby netinu áður en hann er birtur á aðalnetinu - næstum allt er raunverulegt þar, en ókeypis.

Sem hluti af kennslustundinni muntu búa til Rinkeby prófunarnethnút, fjármagna hann með fé og birta snjallsamning.

Lexía 10 tileinkað Ethereum Swarm dreifðri gagnageymslu. Með því að nota dreifða geymslu spararðu mikið magn af gögnum á Ethereum blockchain.

Í þessari kennslu muntu búa til staðbundna Swarm geymslu, skrifa og lesa aðgerðir á skrám og skráarskrám. Næst muntu læra hvernig á að vinna með almennu Swarm gáttinni, skrifa forskriftir til að fá aðgang að Swarm frá Node.js, auk þess að nota Perl Net::Ethereum::Swarm eininguna.

Kennslumarkmið 11 — meistari í að vinna með Solidity snjallsamninga með því að nota hið vinsæla Python forritunarmál og Web3.py ramma. Þú munt setja rammann upp, skrifa forskriftir til að setja saman og birta snjallsamninginn og kalla á aðgerðir hans. Í þessu tilviki verður Web3.py notað bæði eitt og sér og í tengslum við Truffle samþætta þróunarumhverfið.

Í kennslustund 12 þú munt læra að flytja gögn á milli snjalla samninga og raunheimsins með því að nota véfrétt. Þetta mun nýtast þér til að taka á móti gögnum frá vefsíðum, IoT-tækjum, ýmsum tækjum og skynjurum og senda gögn úr snjallsamningum til þessara tækja. Í verklega hluta kennslustundarinnar muntu búa til véfrétt og snjallsamning sem fær núverandi gengi á milli USD og rúblur frá heimasíðu Seðlabanka Rússlands.

Lexía 1. Stuttlega um blockchain og Ethereum netiðTilgangur kennslustundarinnar: kynntu þér starfsreglur Ethereum blockchain, notkunarsvið þess og grunnhugtök.
Hagnýt verkefni: ekki fjallað um í þessari kennslustund.

Það er varla nokkur hugbúnaðarframleiðandi í dag sem hefur ekki heyrt neitt um blockchain tækni (Blockchain), dulritunargjaldmiðla (Cryptocurrency eða Crypto Currency), Bitcoin (Bitcoin), upphafsmyntútboð (ICO, Initial Coin offering), snjallsamninga (Smart Contract), auk annarra hugtaka og hugtaka sem tengjast blockchain.

Blockchain tækni opnar nýja markaði og skapar störf fyrir forritara. Ef þú skilur allar ranghala tækni dulritunargjaldmiðils og snjallsamningatækni, þá ættir þú ekki að eiga í vandræðum með að beita þessari þekkingu í reynd.

Það verður að segjast að það eru miklar vangaveltur í kringum dulritunargjaldmiðla og blockchains. Við munum sleppa umræðum um breytingar á gengi dulritunargjaldmiðils, stofnun pýramída, ranghala löggjafar um dulkóðunargjaldmiðla osfrv. Í þjálfunarnámskeiðinu okkar munum við einblína aðallega á tæknilega þætti þess að nota snjalla samninga á Ethereum blockchain og þróa svokölluð dreifð forrit (DApps).

Hvað er blockchain

Blockchain (Block Chain) er keðja gagnablokka sem tengjast hver öðrum á ákveðinn hátt. Í upphafi keðjunnar er fyrsta blokkin, sem er kölluð aðalblokkin (genesis block) eða genesis blokk. Því næst kemur annað, síðan þriðja og svo framvegis.

Allar þessar gagnablokkir eru sjálfkrafa afritaðar á fjölmörgum hnútum blockchain netsins. Þetta tryggir dreifða geymslu á blockchain gögnum.
Þú getur hugsað um blockchain kerfi sem mikinn fjölda hnúta (líkamlega eða sýndarþjóna) sem eru tengdir í neti og endurtaka allar breytingar í keðju gagnablokka. Þetta er eins og risastór fjölþjónatölva og hnútar slíkrar tölvu (þjóna) geta verið dreifðir um allan heim. Og þú getur líka bætt tölvunni þinni við blockchain netið.

Dreifður gagnagrunnur

Líta má á blockchain sem dreifðan gagnagrunn sem er endurtekinn yfir alla hnúta blockchain netsins. Fræðilega séð mun blockchain vera starfhæft svo lengi sem að minnsta kosti einn hnút er að virka, geymir allar blokkir blockchain.

Dreifð gagnaskrá

Hægt er að líta á Blockchain sem dreifða bók yfir gögn og aðgerðir (viðskipti). Annað nafn á slíkri skrá er höfuðbók.

Hægt er að bæta gögnum við dreifða fjárhagsbók en ekki er hægt að breyta þeim eða eyða þeim. Þessum ómöguleika er náð, einkum með því að nota dulmálsreiknirit, sérstök reiknirit til að bæta kubbum við keðjuna og dreifðri gagnageymslu.

Þegar kubbum er bætt við og framkvæmdar aðgerðir (færslur) eru notaðir einkalyklar og almennir lyklar. Þeir takmarka blockchain notendur með því að veita þeim aðeins aðgang að eigin gagnablokkum.

Viðskipti

Blockchain geymir upplýsingar um aðgerðir (viðskipti) í blokkum. Á sama tíma er ekki hægt að afturkalla eða breyta gömlum, þegar lokið færslum. Ný viðskipti eru geymd í nýjum, bættum blokkum.

Þannig er hægt að skrá alla viðskiptasöguna óbreytta á blockchain. Þess vegna er hægt að nota blockchain til dæmis til að geyma bankaviðskipti, höfundarréttarupplýsingar, sögu breytinga á eigendum fasteigna o.s.frv.

Ethereum blockchain inniheldur svokölluð kerfisríki. Þegar viðskipti eru framkvæmd breytist ástandið úr upphaflegu ástandi í núverandi ástand. Viðskipti eru skráð í blokkum.

Opinberar og einkareknar blockchains

Það skal tekið fram hér að allt sem sagt er á aðeins við um hin svokölluðu opinberu blockchain net, sem ekki er hægt að stjórna af neinum einstaklingi eða lögaðila, ríkisstofnun eða stjórnvöldum.
Svokölluð einka blockchain net eru undir fullri stjórn höfunda þeirra og þar er allt mögulegt, til dæmis að skipta út öllum blokkum keðjunnar.

Hagnýt forrit blockchain

Hvað getur blockchain verið gagnlegt fyrir?

Í stuttu máli, blockchain gerir þér kleift að framkvæma viðskipti (viðskipti) á öruggan hátt milli fólks eða fyrirtækja sem treysta ekki hvert öðru. Gögn skráð í blockchain (viðskipti, persónuleg gögn, skjöl, vottorð, samningar, reikningar osfrv.) er ekki hægt að falsa eða skipta út eftir upptöku. Þess vegna, byggt á blockchain, er hægt að búa til, til dæmis, áreiðanlegar dreifðar skrár yfir ýmiss konar skjöl.

Auðvitað veistu að dulritunargjaldmiðlakerfi eru búin til á grundvelli blockchains, hönnuð til að koma í stað venjulegs pappírspeninga. Pappírspeningar eru einnig kallaðir fiat (af Fiat Money).
Blockchain tryggir geymslu og óbreytanleika viðskipta skráð í blokkum, þess vegna er hægt að nota það til að búa til dulritunargjaldmiðlakerfi. Það inniheldur alla sögu flutnings á dulritunarfé milli mismunandi notenda (reikninga) og hægt er að fylgjast með hvaða aðgerð sem er.

Þrátt fyrir að viðskipti innan dulritunargjaldmiðilkerfa geti verið nafnlaus, leiðir það venjulega til þess að upplýsa hver eigandi dulritunargjaldmiðilsins er að taka út dulritunargjaldmiðil og skipta honum fyrir fiat-peninga.

Svokallaðir snjallsamningar, sem eru hugbúnaður sem keyrir á Ethereum netinu, gerir þér kleift að gera sjálfvirkan ferlið við að ljúka viðskiptum og fylgjast með framkvæmd þeirra. Þetta er sérstaklega áhrifaríkt ef greiðsla fyrir viðskiptin fer fram með Ether dulritunargjaldmiðlinum.

Hægt er að nota Ethereum blockchain og Ethereum snjallsamninga skrifaða á Solidity forritunarmálinu, til dæmis á eftirfarandi sviðum:

  • valkostur við þinglýsingu skjala;
  • varðveisla fasteignaskrár og upplýsingar um viðskipti með fasteignir;
  • geymsla höfundarréttarupplýsinga um hugverk (bækur, myndir, tónlistarverk o.s.frv.);
  • stofnun óháðra kosningakerfa;
  • fjármál og bankastarfsemi;
  • flutninga á alþjóðlegum mælikvarða, fylgjast með vöruflutningum;
  • geymsla persónuupplýsinga sem hliðstæða við auðkenniskortakerfi;
  • örugg viðskipti á viðskiptasviði;
  • geyma niðurstöður læknisskoðana, svo og sögu ávísaðra aðgerða

Vandamál með blockchain

En auðvitað er ekki allt eins einfalt og það kann að virðast!

Það eru vandamál með að staðfesta gögn áður en þeim er bætt við blockchain (til dæmis, eru þau fölsuð?), vandamál með öryggi kerfis og hugbúnaðar sem notaður er til að vinna með blockchain, vandamál með möguleika á að nota félagslega verkfræðiaðferðir til að stela aðgangi til veskis með dulritunargjaldmiðli o.s.frv. .P.

Aftur, ef við erum ekki að tala um opinbera blokkkeðju, þar sem hnútar eru dreifðir um allan heim, heldur um einkarekna blokkkeðju sem tilheyrir einstaklingi eða stofnun, þá mun traustið hér ekki vera hærra en traustið. hjá þessum einstaklingi eða þessari stofnun.

Það ætti einnig að taka tillit til þess að gögnin sem skráð eru í blockchain verða aðgengileg öllum. Í þessum skilningi hentar blockchain (sérstaklega opinbert) ekki til að geyma trúnaðarupplýsingar. Hins vegar getur sú staðreynd að ekki er hægt að breyta upplýsingum um blockchain hjálpað til við að koma í veg fyrir eða rannsaka ýmis konar sviksamlega starfsemi.

Ethereum dreifð forrit verða þægileg ef þú borgar fyrir notkun þeirra með dulritunargjaldmiðli. Því fleiri sem eiga dulritunargjaldmiðil eða eru tilbúnir að kaupa hann, því vinsælli verða DApps og snjallsamningar.

Algeng vandamál með blockchain sem hindra hagnýtingu þess eru takmarkaður hraði sem hægt er að bæta við nýjum blokkum og tiltölulega hár kostnaður við viðskipti. En tæknin á þessu sviði er í virkri þróun og vonir standa til að tæknileg vandamál leysist með tímanum.

Annað vandamál er að snjallir samningar um Ethereum blockchain starfa í einangruðu umhverfi sýndarvéla og hafa ekki aðgang að raunverulegum gögnum. Sérstaklega getur snjallsamningaforritið ekki sjálft lesið gögn frá vefsvæðum eða neinum líkamlegum tækjum (skynjara, tengiliði osfrv.), og getur heldur ekki gefið út gögn til neinna utanaðkomandi tækja. Við munum ræða þetta vandamál og leiðir til að leysa það í kennslustund sem er helguð hinum svokölluðu Oracles - upplýsingamiðlara snjallsamninga.

Það eru líka lagalegar takmarkanir. Í sumum löndum, til dæmis, er bannað að nota dulritunargjaldmiðil sem greiðslumiðil, en þú getur átt það sem eins konar stafræna eign, eins og verðbréf. Slíkar eignir er hægt að kaupa og selja í kauphöllinni. Í öllum tilvikum, þegar þú býrð til verkefni sem vinnur með dulritunargjaldmiðlum, þarftu að kynna þér löggjöf þess lands sem verkefnið þitt heyrir undir.

Hvernig blockchain keðja myndast

Eins og við höfum þegar sagt er blockchain einföld keðja af gagnablokkum. Í fyrsta lagi er fyrsta blokkin í þessari keðju mynduð, síðan er seinni bætt við það, og svo framvegis. Gert er ráð fyrir að færslugögn séu geymd í blokkum og þeim er bætt við nýjasta blokkina.

Í mynd. 1.1 sýndum við einföldustu útgáfuna af blokkaröð, þar sem fyrsta blokkin vísar til þess næsta.

Bókin „Creating Solidity snjallsamningar fyrir Ethereum blockchain. Hagnýt leiðarvísir"
Hrísgrjón. 1.1. Einföld röð af blokkum

Með þessum möguleika er hins vegar mjög auðvelt að fikta við innihald hvers kyns blokkar í keðjunni, þar sem kubbarnir innihalda engar upplýsingar til að verjast breytingum. Með hliðsjón af því að blockchain er ætlað að vera notað af fólki og fyrirtækjum sem ekki er traust á milli, getum við ályktað að þessi aðferð við að geyma gögn henti ekki blockchain.

Við skulum byrja að vernda blokkir gegn fölsun. Á fyrsta stigi munum við reyna að vernda hvern blokk með eftirlitssummu (mynd 1.2).

Bókin „Creating Solidity snjallsamningar fyrir Ethereum blockchain. Hagnýt leiðarvísir"
Hrísgrjón. 1.2. Bætir við vernd fyrir þessar blokkir með eftirlitssummu

Nú getur árásarmaður ekki einfaldlega breytt blokkinni, þar sem hún inniheldur eftirlitsummu blokkargagnanna. Þegar athugað er athugað mun sýna að gögnunum hefur verið breytt.

Til að reikna út eftirlitssumman geturðu notað eina af hashing aðgerðunum eins og MD-5, SHA-1, SHA-256, osfrv. Hash-föll reikna út gildi (til dæmis textastreng með stöðugri lengd) með því að framkvæma óafturkræfar aðgerðir á gagnablokk. Aðgerðirnar eru háðar tegund kjötkássaaðgerða.

Jafnvel þótt innihald gagnablokkarinnar breytist lítillega mun kjötkássagildið einnig breytast. Með því að greina kjötkássafallsgildið er ómögulegt að endurbyggja gagnablokkina sem það var reiknað út fyrir.

Mun slík vernd nægja? Nei, því miður.

Í þessu kerfi verndar tékksumman (kássavirkni) aðeins einstakar blokkir, en ekki alla blokkakeðjuna. Með því að þekkja reikniritið til að reikna út kjötkássaaðgerðina getur árásarmaður auðveldlega skipt út innihaldi blokkar. Einnig mun ekkert koma í veg fyrir að hann fjarlægi kubba úr keðjunni eða bætir við nýjum.

Til að vernda alla keðjuna í heild, getur þú einnig geymt í hverri blokk, ásamt gögnunum, kjötkássa af gögnum frá fyrri blokk (Mynd 1.3).

Bókin „Creating Solidity snjallsamningar fyrir Ethereum blockchain. Hagnýt leiðarvísir"
Hrísgrjón. 1.3. Bættu kjötkássa fyrri blokkar við gagnablokkina

Í þessu kerfi, til að breyta blokk, þarftu að endurreikna kjötkássaaðgerðir allra síðari blokka. Það virðist, hvað er vandamálið?

Í raunverulegum blokkkeðjum skapast auk þess gervi erfiðleikar við að bæta við nýjum blokkum - reiknirit sem krefjast mikils tölvuauðlinda eru notuð. Með hliðsjón af því að til að gera breytingar á blokk þarftu að endurreikna ekki bara þennan eina blokk, heldur alla síðari, þá verður þetta mjög erfitt að gera.

Við skulum líka muna að blockchain gögn eru geymd (afrituð) á fjölmörgum nethnútum, þ.e. Dreifð geymsla er notuð. Og þetta gerir það mun erfiðara að falsa blokk, vegna þess að breytingar verða að gera á öllum nethnútum.

Þar sem blokkir geyma upplýsingar um fyrri blokk er hægt að athuga innihald allra blokka í keðjunni.

Ethereum blockchain

Ethereum blockchain er vettvangur þar sem hægt er að búa til dreifða DApps. Ólíkt öðrum kerfum leyfir Ethereum notkun svokallaðra snjallsamninga (snjallsamninga), skrifaðir á Solidity forritunarmálinu.

Þessi vettvangur var búinn til árið 2013 af Vitalik Buterin, stofnanda Bitcoin Magazine, og hleypt af stokkunum árið 2015. Allt sem við munum læra eða gera á þjálfunarnámskeiðinu okkar tengist sérstaklega Ethereum blockchain og Solidity snjallsamningunum.

Námuvinnsla eða hvernig blokkir eru búnar til

Námuvinnsla er frekar flókið og auðlindafrekt ferli til að bæta nýjum kubbum við blockchain keðjuna, og alls ekki „dulkóðunargjaldmiðilsnám“. Námuvinnsla tryggir virkni blockchain, vegna þess það er þetta ferli sem ber ábyrgð á að bæta viðskiptum við Ethereum blockchain.

Fólk og stofnanir sem taka þátt í að bæta við blokkum eru kallaðir námumenn.
Hugbúnaðurinn sem keyrir á námuhnútunum reynir að finna kjötkássabreytu sem kallast Nonce fyrir síðustu blokkina til að fá ákveðið kjötkássagildi sem netið tilgreinir. Ethash hashing reikniritið sem notað er í Ethereum gerir þér kleift að fá Nonce gildið aðeins með raðleit.

Ef námuvinnsluhnúturinn finnur rétta Nonce gildið, þá er þetta svokölluð vinnusönnun (PoW, Proof-of-work). Í þessu tilviki, ef blokk er bætt við Ethereum netið, fær námumaðurinn ákveðin verðlaun í netgjaldmiðlinum - Ether. Þegar þetta er skrifað eru verðlaunin 5 eter, en það mun minnka með tímanum.

Þannig tryggja Ethereum námuverkamenn rekstur netsins með því að bæta við blokkum og fá cryptocurrency peninga fyrir þetta. Það er mikið af upplýsingum á netinu um námumenn og námuvinnslu, en við munum leggja áherslu á að búa til Solidity samninga og DApps á Ethereum netinu.

Kennslustund samantekt

Í fyrstu kennslustundinni kynntist þú blokkakeðjunni og lærðir að hún er sérsamsett röð af kubbum. Ekki er hægt að breyta innihaldi áður skráðra blokka, þar sem þetta myndi krefjast endurútreiknings á öllum síðari blokkum á mörgum nethnútum, sem krefst mikils fjármagns og tíma.

Blockchain er hægt að nota til að geyma niðurstöður viðskipta. Megintilgangur þess er að skipuleggja örugg viðskipti milli aðila (aðila og stofnana) sem ekki ríkir traust á milli. Þú lærðir á hvaða sérstökum sviðum viðskipta og á hvaða sviðum Ethereum blockchain og Solidity snjallsamninga er hægt að nota. Þetta er bankageirinn, skráning eignarréttar, skjöl o.fl.

Þú lærðir líka að ýmis vandamál geta komið upp við notkun blockchain. Þetta eru vandamál við að sannreyna upplýsingar sem bætt er við blockchain, hraða blockchain, kostnaður við viðskipti, vandamálið við gagnaskipti milli snjallsamninga og raunheimsins, svo og hugsanlegar árásir árásarmanna sem miða að því að stela dulritunargjaldeyrissjóðum af notendareikningum. .

Við töluðum líka stuttlega um námuvinnslu sem ferlið við að bæta nýjum kubbum við blockchain. Námuvinnsla er nauðsynleg til að ljúka viðskiptum. Þeir sem taka þátt í námuvinnslu tryggja virkni blockchain og fá verðlaun í dulritunargjaldmiðli fyrir þetta.

Lexía 2. Undirbúningur vinnuumhverfis í Ubuntu og Debian OSVal á stýrikerfi
Að setja upp nauðsynleg tól
Að setja upp Geth og Swarm á Ubuntu
Að setja upp Geth og Swarm á Debian
Forkeppni
Að hlaða niður Go dreifingu
Stilla umhverfisbreytur
Athugaðu Go útgáfuna
Að setja upp Geth og Swarm
Að búa til einka blockchain
Undirbýr genesis.json skrána
Búðu til möppu fyrir vinnu
Búðu til reikning
Byrjar á frumstillingu hnútsins
Opnunarvalkostir hnút
Tengstu við hnútinn okkar
Námustjórnun og jafnvægisskoðun
Að slökkva á Geth vélinni
Kennslustund samantekt

Lexía 3. Undirbúningur vinnuumhverfis á Raspberry Pi 3Að undirbúa Raspberry Pi 3 fyrir vinnu
Er að setja upp Rasberian
Setur upp uppfærslur
Virkja SSH aðgang
Stilla fasta IP tölu
Að setja upp nauðsynleg tól
Setur upp Go
Að hlaða niður Go dreifingu
Stilla umhverfisbreytur
Athugaðu Go útgáfuna
Að setja upp Geth og Swarm
Að búa til einka blockchain
Athugaðu reikninginn þinn og stöðu
Kennslustund samantekt

Lexía 4. Reikningar og millifærslur á milli reikningaSkoða og bæta við reikningum
Skoða lista yfir reikninga
Að bæta við reikningi
get reikningsskipunarvalkosti
Lykilorð reiknings
Cryptocurrency í Ethereum
Ethereum gjaldmiðilseiningar
Við ákveðum núverandi stöðu reikninga okkar
Flyttu fjármuni frá einum reikningi yfir á annan
eth.sendTransaction aðferð
Skoða stöðu viðskipta
Viðskiptakvittun
Kennslustund samantekt

Lexía 5. Birta fyrsta samninginn þinnSnjallir samningar í Ethereum
Snjöll samningsframkvæmd
Ethereum sýndarvél
Innbyggt þróunarumhverfi Remix Solidity IDE
Keyrir samantekt
Að hringja í samningsaðgerðir
Birting samnings á einkaneti
Að fá ABI skilgreininguna og tvíundarkóða samningsins
Birting samningsins
Athugaðu stöðu samningsútgáfu viðskipta
Að hringja í samningsaðgerðir
Batch þýðandi solc
Setur upp solc á Ubuntu
Er að setja upp solc á Debian
Að setja saman HelloSol samninginn
Birting samningsins
Setur upp solc á Rasberian
Kennslustund samantekt

Lexía 6. Snjallir samningar og Node.jsSetur upp Node.js
Uppsetning á Ubuntu
Uppsetning á Debian
Að setja upp og keyra Ganache-cli
Web3 uppsetning
Er að setja upp solc
Að setja upp Node.js á Rasberian
Forskrift til að fá lista yfir reikninga í stjórnborðinu
Handrit til að gefa út snjallsamning
Ræstu og fáðu breytur
Að fá ræsivalkosti
Samningagerð
Opnar reikninginn þinn
Hleður ABI og samning tvöfaldur kóða
Áætla þarf magn af gasi
Búðu til hlut og byrjaðu að gefa út samning
Keyrir samningsútgáfuhandritið
Hringir í snjallsamningsaðgerðir
Er hægt að uppfæra útgefna snjallsamning?
Að vinna með Web3 útgáfu 1.0.x
Sækja lista yfir reikninga
Birting samningsins
Að hringja í samningsaðgerðir
Flyttu fjármuni frá einum reikningi yfir á annan
Flytja fé á samningsreikning
Uppfærir HelloSol snjallsamninginn
Búðu til handrit til að skoða reikninginn þinn
Bættu kalli við getBalance aðgerðina við call_contract_get_promise.js forskriftina
Við fyllum á snjallsamningareikninginn
Kennslustund samantekt

Lexía 7. Kynning á truffluAð setja upp Truffle
Búðu til HelloSol verkefni
Að búa til verkefnaskrána og skrárnar
Samningaskrá
Vörulistaflutningar
Skráarpróf
truffle-config.js skrá
Að setja saman HelloSol samninginn
Byrjaðu að birta samning
Hringir í HelloSol samningsaðgerðir í truffluboði
Að hringja í HelloSol samningsaðgerðir úr JavaScript skriftu sem keyrir Node.js
Uppsetning á trufflu-samningseiningunni
Að kalla samningsaðgerðirnar getValue og getString
Kalla samningsaðgerðir setValue og setString
Breyting á samningi og endurbirting
Að vinna með Web3 útgáfu 1.0.x
Að gera breytingar á HelloSol snjallsamningnum
Forskriftir til að hringja í samningsaðferðir
Próf í Truffle
Stöðugleikapróf
JavaScript próf
Kennslustund samantekt

Lexía 8. Gagnategundir traustleikaSamningur um að læra gagnategundir
Boolean gagnategundir
Óundirritaðar heiltölur og undirritaðar heiltölur
Föst punktanúmer
netfang
Breytur af flóknum gerðum
Föst stærð fylki
Dynamic fylki
Upptalning
Mannvirki
Orðabækur kortlagning
Kennslustund samantekt

Lexía 9. Flutningur samninga yfir á einkanetið og í Rinkeby netiðBirtir samning frá Truffle til einka Geth netsins
Að undirbúa einkanetshnút
Undirbúningur samnings um vinnu
Að setja saman og flytja samning yfir á Truffle netið
Byrjar flutning á staðarneti get
Að fá trufflugripi
Birtir samning frá Truffle við Rinkeby testnetið
Að undirbúa Geth hnút til að vinna með Rinkeby
Samstilling hnúta
Að bæta við reikningum
Fylltu á Rinkeby reikninginn þinn með eter
Hleypt af stokkunum samningsflutningi yfir á Rinkeby netið
Skoða samningsupplýsingar á Rinkeby netinu
Trufflu leikjatölva fyrir Rinkeby Network
Auðveldari leið til að hringja í samningsaðgerðir
Að hringja í samningsaðferðir með því að nota Node.js
Flyttu fé á milli reikninga í Truffle stjórnborðinu fyrir Rinkby
Kennslustund samantekt

Lexía 10. Ethereum Swarm Dreifð gagnageymslaHvernig virkar Ethereum Swarm?
Setur upp og ræsir Swarm
Aðgerðir með skrám og möppum
Að hlaða upp skrá til Ethereum Swarm
Að lesa skrá frá Ethereum Swarm
Skoðaðu upplýsingaskrá skráar sem hlaðið er upp
Hleður möppum með undirmöppum
Að lesa skrá úr niðurhalaðri möppu
Notaðu opinbera Swarm-gátt
Aðgangur að Swarm frá Node.js skriftum
Perl Net::Ethereum::Swarm mát
Uppsetning á Netinu::Ethereum::Swarm mát
Að skrifa og lesa gögn
Kennslustund samantekt

Lexía 11. Web3.py rammi til að vinna með Ethereum í PythonSetur upp Web3.py
Uppfærsla og uppsetning nauðsynlegra pakka
Að setja upp easysolc eininguna
Að birta samning með því að nota Web3.py
Samningagerð
Tengist við þjónustuaðila
Framkvæma samningsútgáfu
Vistar heimilisfang samnings og abi í skrá
Keyrir samningsútgáfuhandritið
Aðferðir við að hringja í samning
Að lesa heimilisfang og abi samnings úr JSON skrá
Tengist við þjónustuaðila
Að búa til samningshlut
Aðferðir við að hringja í samning
Truffle og Web3.py
Kennslustund samantekt

Lexía 12. OraclesGetur snjall samningur treyst gögnum frá umheiminum?
Oracles sem blockchain upplýsingamiðlarar
Gagnaheimild
Kóði til að tákna gögn frá uppruna
Oracle til að skrá gengi krónunnar í blockchain
USDRateOracle samningur
Gengið uppfært í snjöllum samningi
Notkun nettengiveitu
Bíður eftir RateUpdate atburði
Meðhöndlun RateUpdate viðburðarins
Að hefja gagnauppfærslu í snjallsamningi
Kennslustund samantekt

Heimild: www.habr.com

Bæta við athugasemd