Kirja "Creating Solidity Smart Contracts for the Ethereum Blockchain. Käytännön opas »

Kirja "Creating Solidity Smart Contracts for the Ethereum Blockchain. Käytännön opas »
Yli vuoden olen työskennellyt kirjan "Building Solidity Smart Contracts for the Ethereum Blockchain" parissa. Käytännön opas”, ja nyt tämä työ on valmis, ja kirja julkaistu ja saatavilla litroina.

Toivon, että kirjani auttaa sinua pääsemään nopeasti alkuun Solidityn älykkäiden kontaktien ja hajautettujen DApp-sovellusten rakentamisessa Ethereum-lohkoketjulle. Se koostuu 12 oppitunnista, joissa on käytännön tehtäviä. Niiden suorittamisen jälkeen lukija voi luoda omia paikallisia Ethereum-solmuja, julkaista älykkäitä sopimuksia ja kutsua niiden menetelmiä, vaihtaa tietoja reaalimaailman ja älykkäiden sopimusten välillä oraakkelien avulla sekä työskennellä Rinkebyn testausvirheenkorjausverkon kanssa.

Kirja on suunnattu kaikille, jotka ovat kiinnostuneita edistyksellisistä lohkoketjujen tekniikoista ja haluavat saada nopeasti tietoa, jonka avulla he voivat tehdä mielenkiintoista ja lupaavaa työtä.

Alta löydät sisällysluettelon ja kirjan ensimmäisen luvun (myös Litraa kirjan katkelmia on saatavilla). Toivon saavani palautetta, kommentteja ja ehdotuksia. Yritän ottaa tämän kaiken huomioon kirjan seuraavaa painosta valmistellessa.

sisällysluetteloEsittelyKirjamme on tarkoitettu niille, jotka eivät halua vain ymmärtää Ethereum-lohkoketjun periaatteita, vaan myös saada käytännön taitoja luoda hajautettuja DApps-ohjelmia Solidity-ohjelmointikielellä tähän verkkoon.

On parempi ei vain lukea tätä kirjaa, vaan myös työskennellä sen kanssa suorittamalla oppitunneilla kuvatut käytännön tehtävät. Toimiaksesi tarvitset paikallisen tietokoneen, virtuaalisen tai pilvipalvelimen, johon on asennettu Debian tai Ubuntu. Voit myös käyttää Raspberry Pi:tä useiden tehtävien suorittamiseen.

Ensimmäisellä oppitunnilla käymme läpi Ethereum-lohkoketjun periaatteet ja perusterminologian sekä puhumme siitä, missä tätä lohkoketjua voidaan käyttää.

Tavoite toinen oppitunti - Luo yksityinen Ethereum-lohkoketjusolmu jatkotyöskentelyä varten tämän kurssin puitteissa Ubuntu- ja Debian-palvelimella. Tarkastellaan perusapuohjelmien asennuksen ominaisuuksia, kuten gethin, joka varmistaa lohkoketjusolmumme toiminnan, sekä swarm hajautetun tiedontallennusdemonin.

Kolmas oppitunti opettaa sinulle kuinka kokeilla Ethereumia edullisella Raspberry Pi -mikrotietokoneella. Asennat Rasberian-käyttöjärjestelmän (OS) Raspberry Pi:hen, Geth-apuohjelmaan, joka toimii lohkoketjusolmussa, ja Swarmin hajautetun tietovaraston demoniin.

neljäs oppitunti on omistettu Ethereum-verkon tileille ja kryptovaluuttayksiköille sekä tavoille siirtää varoja tililtä toiselle Geth-konsolista. Opit luomaan tilejä, aloittamaan varojen siirtotapahtumia, saamaan tapahtuman tilan ja kuitin.

Viidennellä oppitunnilla tutustut älykkäisiin sopimuksiin Ethereum-verkossa, opit niiden toteuttamisesta Ethereum-virtuaalikoneella.

Luot ja julkaiset ensimmäisen älysopimuksesi yksityisessä Ethereumin verkossa ja opit kutsumaan sen toimintoja. Tätä varten käytät Remix Solidity IDE:tä. Lisäksi opit asentamaan ja käyttämään solc-pakettien kääntäjää.
Puhumme myös ns. Application Binary Interfacesta (ABI) ja opetamme kuinka sitä käytetään.

Kuudes oppitunti on omistettu JavaScript-komentosarjojen luomiseen, joissa käytetään Node.js:ää, ja toimintojen suorittamiseen Solidityn älykkäillä sopimuksilla.

Asennat Node.js:n Ubuntu-, Debian- ja Rasberian-käyttöjärjestelmiin, kirjoitat komentosarjoja älykkään sopimuksen julkaisemiseksi Ethereumin paikallisverkossa ja kutsut sen toimintoja.

Lisäksi opit siirtämään varoja tavallisten tilien välillä skriptien avulla sekä hyvittämään niitä älykkäille sopimustileille.

Seitsemännellä oppitunnilla Opit asentamaan ja käyttämään integroitua Truffle-ympäristöä, joka on suosittu Solidity-älysopimuskehittäjien keskuudessa. Opit luomaan JavaScript-skriptejä, jotka kutsuvat sopimusfunktioita tryffeli-sopimus-moduulin avulla, ja testaat älykästä sopimustasi Trufflen kanssa.

Kahdeksas oppitunti omistettu Solidity-tietotyypeille. Kirjoitat älykkäitä sopimuksia, jotka toimivat tietotyyppien, kuten allekirjoitettujen ja etumerkittömien kokonaislukujen, etumerkittyjen numeroiden, merkkijonojen, osoitteiden, monimutkaisten tyyppisten muuttujien, taulukoiden, luetteloiden, rakenteiden ja sanakirjojen kanssa.

Yhdeksännellä oppitunnilla olet askeleen lähempänä älykkäiden sopimusten luomista Ethereum-pääverkkoon. Opit julkaisemaan sopimuksia Trufflen avulla Gethin yksityisessä verkossa sekä Rinkebyn testiverkossa. Älysopimuksen virheenkorjaus Rinkeby-verkossa on erittäin hyödyllistä ennen sen julkaisemista pääverkossa - melkein kaikki on aitoa siellä, mutta ilmaiseksi.

Osana oppituntia luot Rinkeby-testnet-solmun, täydennät sitä varoilla ja julkaiset älykkään sopimuksen.

Oppitunti 10 omistettu Ethereum Swarmin hajautetuille tietovarastoille. Hajautetun tallennustilan avulla säästät suurten tietomäärien tallentamisessa Ethereum-lohkoketjuun.

Tässä opetusohjelmassa luot paikallisen Swarm-tallennustilan, kirjoitat ja luet tiedostoja ja tiedostohakemistoja. Seuraavaksi opit työskentelemään julkisen Swarm-yhdyskäytävän kanssa, kirjoittamaan skriptejä päästäksesi Swarmiin Node.js:stä sekä käyttämään Net::Ethereum::Swarm Perl -moduulia.

Oppitunti 11 Tavoite - hallitsee Solidity-älysopimusten kanssa työskentelyn käyttämällä suosittua Python-ohjelmointikieltä ja Web3.py-kehystä. Asennat tämän kehyksen, kirjoitat komentosarjoja älykkään sopimuksen laatimiseksi ja julkaisemiseksi sekä kutsut sen toimintoja. Tässä tapauksessa Web3.py:tä käytetään sekä yksinään että yhdessä integroidun Truffle-kehitysympäristön kanssa.

Oppitunnilla 12 Opit siirtämään dataa älykkäiden sopimusten ja todellisen maailman välillä oraakkelien avulla. Tämä on hyödyllistä vastaanottaa tietoja verkkosivustoilta, IoT-laitteista, erilaisista laitteista ja antureista sekä lähettää tietoja älykkäistä sopimuksista näihin laitteisiin. Oppitunnin käytännön osassa luot oraakkelin ja älykkään sopimuksen, joka vastaanottaa nykyisen USD-rupla-kurssin Venäjän federaation keskuspankin verkkosivuilta.

Oppitunti 1. Lyhyesti lohkoketjusta ja Ethereum-verkostostaOppitunnin tarkoitus: tutustu Ethereum-lohkoketjun periaatteisiin, sen sovellusalueisiin ja perusterminologiaan.
Käytännön tehtävät: ei sisälly tähän oppituntiin.

Tuskin on nykyään ohjelmistokehittäjä, joka ei olisi kuullut mitään blockchain-teknologiasta (Blockchain), kryptovaluutoista (Cryptocurrency tai Crypto Currency), bitcoineista (Bitcoin), alkuperäisestä kolikkotarjonnasta (ICO, Initial coin offering), älykkäistä sopimuksista (Smart Contract), sekä muita lohkoketjuun liittyviä käsitteitä ja termejä.

Blockchain-teknologia avaa uusia markkinoita ja luo työpaikkoja ohjelmoijille. Jos ymmärrät kaikki kryptovaluuttatekniikoiden ja älykkäiden sopimusteknologioiden monimutkaisuudet, sinulla ei pitäisi olla ongelmia tämän tiedon soveltamisessa käytännössä.

Minun on sanottava, että kryptovaluuttojen ja lohkoketjujen ympärillä spekuloidaan paljon. Jätämme sivuun keskustelut kryptovaluuttakurssien muutoksista, pyramidien luomisesta, kryptovaluuttalainsäädännön monimutkaisuuksista jne. Opetusohjelmassamme keskitymme pääasiassa Ethereum-lohkoketjun (ethereum, eetteri) älykkäiden sopimusten käytön teknisiin näkökohtiin ja niin kutsuttujen hajautettujen sovellusten (Distributed Application, DApp) kehittämiseen.

Mikä on blockchain

Lohkoketju (Blockchain, Block Chain) on ketju tietolohkoja, jotka liittyvät toisiinsa tietyllä tavalla. Ketjun alussa on ensimmäinen lohko, jota kutsutaan primäärilohkoksi (genesis block) tai geneesislohkoksi. Sitä seuraa toinen, sitten kolmas ja niin edelleen.

Kaikki nämä tietolohkot monistetaan automaattisesti useissa lohkoketjuverkon solmuissa. Tämä varmistaa lohkoketjutietojen hajautetun tallennuksen.
Voit ajatella lohkoketjujärjestelmää suurena määränä solmuja (fyysisiä tai virtuaalisia palvelimia), jotka on verkottunut yhteen ja toistavat kaikki muutokset tietolohkoketjussa. Se on kuin jättimäinen monipalvelintietokone, ja tällaisen tietokoneen solmut (palvelimet) voivat olla hajallaan ympäri maailmaa. Ja sinäkin voit lisätä tietokoneesi lohkoketjuverkkoon.

Hajautettu tietokanta

Lohkoketjua voidaan pitää hajautettuna tietokantana, joka replikoidaan kaikkiin lohkoketjuverkon solmuihin. Teoriassa lohkoketju on toiminnassa niin kauan kuin ainakin yksi solmu toimii ja tallentaa kaikki lohkoketjun lohkot.

Hajautettu tietorekisteri

Lohkoketjua voidaan pitää tietojen ja toimintojen (transaktioiden) hajautettuna reskontrana. Toinen tällaisen rekisterin nimi on pääkirja.

Tietoja voidaan lisätä hajautettuun pääkirjaan, mutta sitä ei voi muuttaa tai poistaa. Tämä mahdottomuus saavutetaan erityisesti käyttämällä salausalgoritmeja, erikoisalgoritmeja lohkojen lisäämiseksi ketjuun ja hajautettua tiedon tallennusta.

Lohkoja lisättäessä ja operaatioissa (transaktioissa) käytetään yksityisiä ja julkisia avaimia. Ne rajoittavat lohkoketjun käyttäjiä antamalla heille pääsyn vain omiin tietolohkoihinsa.

Liiketoimi

Blockchain tallentaa tiedot toiminnoista (transaktioista) lohkoihin. Samaan aikaan vanhoja, jo suoritettuja tapahtumia ei voi peruuttaa tai muuttaa. Uudet tapahtumat tallennetaan uusiin lisättyihin lohkoihin.

Näin ollen koko tapahtumahistoria voidaan tallentaa lohkoketjuun muuttumattomana. Siksi lohkoketjua voidaan käyttää esimerkiksi pankkitapahtumien, tekijänoikeustietojen, kiinteistönomistajien muutoshistorian jne. turvalliseen tallentamiseen.

Ethereum-lohkoketju sisältää niin sanotut järjestelmätilat. Tapahtuman edetessä tila muuttuu alkuperäisestä nykyiseen. Tapahtumat kirjataan lohkoihin.

Julkiset ja yksityiset lohkoketjut

Tässä on syytä huomata, että kaikki yllä oleva koskee vain niin sanottuja julkisia lohkoketjuverkkoja, joita ei voi valvoa yksittäinen tai oikeushenkilö, valtion elimet tai hallitukset.
Niin sanotut yksityiset lohkoketjuverkot ovat luojiensa täydellisessä hallinnassa, ja siellä on kaikki mahdollista, esimerkiksi ketjun kaikkien lohkojen täydellinen korvaaminen.

Blockchainin käytännön sovellukset

Mihin lohkoketjua voidaan käyttää?

Lyhyesti sanottuna lohkoketju antaa sinun suorittaa turvallisesti liiketoimia (transaktioita) sellaisten henkilöiden tai yritysten välillä, jotka eivät luota toisiinsa. Lohkoketjuun tallennettuja tietoja (tapahtumat, henkilötiedot, asiakirjat, todistukset, sopimukset, laskut jne.) ei voi väärentää tai korvata tallennuksen jälkeen. Siksi lohkoketjun perusteella on mahdollista luoda esimerkiksi luotettavia hajautettuja rekistereitä erilaisista asiakirjoista.

Tietenkin tiedät, että blockchain-pohjaisia ​​kryptovaluuttajärjestelmiä luodaan korvaamaan perinteinen paperiraha. Paperirahaa kutsutaan myös fiat-rahaksi (Fiat Moneysta).
Lohkoketju tarjoaa lohkoihin tallennettujen tapahtumien säilytyksen ja muuttumattomuuden, joten sitä voidaan käyttää kryptovaluuttajärjestelmien luomiseen. Se sisältää koko historian kryptovarojen siirtämisestä eri käyttäjien (tilien) välillä, ja mitä tahansa toimintaa voidaan seurata.

Vaikka kryptovaluuttajärjestelmien sisällä tapahtuvat liiketoimet voivat olla anonyymejä, kryptovaluutan nostaminen ja vaihtaminen fiat-rahaan paljastaa yleensä kryptovaluuttaomaisuuden omistajan henkilöllisyyden.

Ns. älykkäillä sopimuksilla, jotka ovat Ethereum-verkossa käytäviä ohjelmistoja, voit automatisoida transaktioiden tekemisen ja niiden toteutumisen seurannan. Tämä on erityisen tehokasta, jos tapahtuman maksu suoritetaan Ether-kryptovaluutalla (ether).

Solidity-ohjelmointikielellä kirjoitettuja Ethereum-lohkoketju- ja Ethereum-älysopimuksia voidaan käyttää esimerkiksi seuraavilla alueilla:

  • vaihtoehto asiakirjojen notaarin vahvistamiselle;
  • kiinteistörekisterin pitäminen ja tiedot kiinteistökaupoista;
  • tekijänoikeustietojen tallentaminen henkistä omaisuutta varten (kirjat, kuvat, musiikkiteokset jne.);
  • riippumattomien äänestysjärjestelmien perustaminen;
  • rahoitus ja pankkitoiminta;
  • logistiikka kansainvälisessä mittakaavassa, tavaroiden liikkumisen seuranta;
  • henkilötietojen tallentaminen henkilökorttijärjestelmän analogina;
  • turvalliset liiketoimet kaupallisella alueella;
  • lääketieteellisten tutkimusten tulosten sekä määrättyjen toimenpiteiden historian tallentaminen

Ongelmia lohkoketjun kanssa

Mutta tietenkään kaikki ei ole niin yksinkertaista kuin miltä se saattaa näyttää!

Ongelmia on tietojen tarkistamisessa ennen niiden lisäämistä lohkoketjuun (esimerkiksi ovatko ne väärennettyjä?), ongelmia lohkoketjun kanssa toimivien järjestelmien ja sovellusohjelmistojen turvallisuudessa, ongelmia mahdollisuudessa käyttää sosiaalisen manipuloinnin menetelmiä pääsyn varastamiseen kryptovaluuttalompakoihin jne. .P.

Jälleen, jos emme puhu julkisesta lohkoketjusta, jonka solmut ovat hajallaan ympäri maailmaa, vaan yksityisestä lohkoketjusta, jonka omistaa henkilö tai organisaatio, silloin luottamustaso ei ole korkeampi kuin luottamus tähän henkilöön tai organisaatio.

On myös otettava huomioon, että lohkoketjuun tallennetut tiedot tulevat kaikkien saataville. Tässä mielessä lohkoketju (etenkään julkinen) ei sovellu luottamuksellisten tietojen tallentamiseen. Kuitenkin se, että lohkoketjun tietoja ei voida muuttaa, voi auttaa estämään tai tutkimaan erilaisia ​​petollisia toimia.

Ethereumin hajautetut sovellukset ovat käteviä, jos maksat niiden käytöstä kryptovaluutalla. Mitä enemmän ihmisiä omistaa tai on halukas ostamaan kryptovaluuttoja, sitä suositumpia DAppeista ja älykkäistä sopimuksista tulee.

Lohkoketjun yleisistä ongelmista, jotka haittaavat sen käytännön soveltamista, voidaan mainita uusien lohkojen lisäämisen rajoitettu nopeus ja transaktioiden suhteellisen korkeat kustannukset. Mutta teknologia tällä alalla kehittyy aktiivisesti, ja teknisten ongelmien toivotaan ratkeavan ajan myötä.

Toinen ongelma on, että Ethereumin lohkoketjun älykkäät sopimukset toimivat eristetyssä virtuaalikoneiden ympäristössä, eikä niillä ole pääsyä reaalimaailman tietoihin. Erityisesti älykäs sopimusohjelma ei voi itse lukea tietoja verkkosivustoilta tai fyysisiltä laitteilta (anturit, yhteystiedot jne.), eikä se voi tulostaa tietoja ulkoisiin laitteisiin. Keskustelemme tästä ongelmasta ja sen ratkaisutavoista oppitunnilla, joka on omistettu niin sanotuille Oraakkeleille - älykkäiden sopimusten tiedonvälittäjille.

Myös lakisääteisiä rajoituksia on. Joissakin maissa esimerkiksi kryptovaluutan käyttö maksuvälineenä on kielletty, mutta voit omistaa sen eräänlaisena digitaalisena omaisuutena, kuten arvopapereita. Tällaisia ​​varoja voidaan ostaa ja myydä pörssissä. Joka tapauksessa, kun luot kryptovaluuttojen kanssa työskentelevää projektia, sinun on tutustuttava sen maan lainsäädäntöön, jonka lainkäyttövaltaan projektisi kuuluu.

Kuinka lohkoketjuketju muodostuu

Kuten olemme jo sanoneet, lohkoketju on yksinkertainen tietolohkojen ketju. Ensin muodostetaan tämän ketjun ensimmäinen lohko, sitten siihen lisätään toinen ja niin edelleen. Tapahtumatiedot on tarkoitus tallentaa lohkoihin ja lisätä aivan viimeiseen lohkoon.

Kuvassa 1.1 olemme näyttäneet yksinkertaisimman version lohkosekvenssistä, jossa ensimmäinen lohko viittaa seuraavaan.

Kirja "Creating Solidity Smart Contracts for the Ethereum Blockchain. Käytännön opas »
Riisi. 1.1. Yksinkertainen lohkosekvenssi

Tässä tapauksessa on kuitenkin erittäin helppoa väärentää minkä tahansa ketjun lohkon sisältö, koska lohkot eivät sisällä muutoksia suojautuvia tietoja. Ottaen huomioon, että lohkoketju on tarkoitettu sellaisten ihmisten ja yritysten käyttöön, joiden välillä ei ole luottamusta, voidaan päätellä, että tämä tietojen tallennustapa ei sovellu lohkoketjuun.

Käsitellään lohkojen suojaamista väärentämiseltä. Ensimmäisessä vaiheessa yritämme suojata jokaisen lohkon tarkistussummalla (kuva 1.2).

Kirja "Creating Solidity Smart Contracts for the Ethereum Blockchain. Käytännön opas »
Riisi. 1.2. Lisätään tarkistussummasuojaus lohkotietoihin

Nyt hyökkääjä ei voi muuttaa lohkoa samalla tavalla, koska se sisältää lohkotietojen tarkistussumman. Tarkistussumman tarkistus osoittaa, että tietoja on muutettu.

Voit käyttää jotakin hash-funktioista, kuten MD-5, SHA-1, SHA-256 jne. tarkistussumman laskemiseen. Hash-funktiot laskevat jonkin arvon (esimerkiksi vakiopituisena tekstijonona) seurauksena peruuttamattomien toimintojen suorittamisesta tietolohkolle. Toiminnot riippuvat hash-funktion tyypistä.

Vaikka tietolohkon sisältö muuttuisi hieman, myös hajautusarvo muuttuu. Hash-funktion arvoa analysoimalla on mahdotonta palauttaa tietolohkoa, jolle se on laskettu.

Onko tällainen suoja riittävä? Valitettavasti ei.

Tässä mallissa tarkistussumma (hash-funktio) suojaa vain yksittäisiä lohkoja, mutta ei koko lohkoketjua. Hajautusfunktion laskenta-algoritmin tuntemalla hyökkääjä voi helposti muuttaa lohkon sisältöä. Mikään ei myöskään estä häntä poistamasta lohkoja ketjusta tai lisäämästä uusia.

Suojataksesi koko ketjua kokonaisuutena voit tallentaa jokaiseen lohkoon tietojen lisäksi myös edellisen lohkon datan hajautusarvon (kuva 1.3).

Kirja "Creating Solidity Smart Contracts for the Ethereum Blockchain. Käytännön opas »
Riisi. 1.3. Lisää tietolohkoon edellisen lohkon hash

Tässä järjestelmässä minkä tahansa lohkon muuttamiseksi sinun on laskettava uudelleen kaikkien myöhempien lohkojen hash-funktiot. Vaikuttaa siltä, ​​mikä on ongelma?

Todellisissa lohkoketjuissa luodaan lisäksi keinotekoisia vaikeuksia uusien lohkojen lisäämiseen - käytetään algoritmeja, jotka vaativat paljon laskentaresursseja. Kun otetaan huomioon se tosiasia, että lohkoon muutosten tekemiseksi ei tarvitse laskea uudelleen yhtä tästä lohkosta, vaan kaikki myöhemmät, tämän tekeminen on erittäin vaikeaa.

Muista myös, että lohkoketjudataa tallennetaan (replikoidaan) lukuisiin verkkosolmuihin, ts. käytetään hajautettua tallennustilaa. Ja tämä vaikeuttaa suuresti lohkon väärentämistä, koska. kaikkiin verkon solmuihin on tehtävä muutoksia.

Koska lohkot tallentavat tietoa edellisestä lohkosta, on mahdollista tarkistaa ketjun kaikkien lohkojen sisältö.

Blockchain Ethereum

Ethereum-lohkoketju on alusta, jolle voit rakentaa hajautettuja DApps-sovelluksia. Toisin kuin muut alustat, Ethereum sallii Solidity-ohjelmointikielellä kirjoitettujen ns. älykkäiden sopimusten (smart contracts, smart contracts) käytön.

Bitcoin Magazinen perustaja Vitalik Buterin loi tämän alustan vuonna 2013, ja se julkaistiin vuonna 2015. Kaikki, mitä opimme tai teemme koulutuskurssillamme, liittyy erityisesti Ethereumin lohkoketjuun ja Solidity-älysopimuksiin.

Kaivostoiminta tai lohkojen luominen

Kaivostoiminta on melko monimutkainen ja resursseja vaativa prosessi uusien lohkojen lisäämiseksi lohkoketjuun, eikä ”kryptovaluutan louhintaa” ollenkaan. Kaivostoiminta varmistaa lohkoketjun tehokkuuden, koska. tämä prosessi on vastuussa tapahtumien lisäämisestä Ethereumin lohkoketjuun.

Lohkojen lisäämiseen osallistuvia ihmisiä ja organisaatioita kutsutaan kaivosmiehiksi.
Kaivostyöntekijöiden solmuissa toimiva ohjelmisto (ohjelmisto) yrittää poimia viimeiselle lohkolle Nonce-nimisen hajautusparametrin saadakseen tietyn verkon antaman hajautusarvon. Ethereumissa käytetyn Ethash-hajautusalgoritmin avulla voit saada Nonce-arvon vain peräkkäisellä luettelolla.

Jos kaivossolmu löysi oikean Nonce-arvon, tämä on ns. proof of work (PoW, Proof-of-work). Tässä tapauksessa, jos lohko lisätään Ethereum-verkkoon, kaivostyöntekijä saa tietyn palkkion verkon valuutassa - Ether. Tätä kirjaa kirjoitettaessa palkinto on 5 eetteriä, mutta se pienenee ajan myötä.

Siten Ethereumin kaivostyöntekijät varmistavat verkon toiminnan lisäämällä lohkoja ja saavat tästä kryptovaluuttarahaa. Löydät Internetistä paljon tietoa kaivostyöläisistä ja kaivostoiminnasta, ja keskitymme Solidity-sopimusten ja DApps-sovellusten luomiseen Ethereum-verkossa.

Oppitunnin yhteenveto

Ensimmäisellä oppitunnilla tutustuit lohkoketjuun ja opit, että se on erityisellä tavalla muodostettu lohkosarja. Aiemmin tallennettujen lohkojen sisältöä ei voi muuttaa, koska se vaatii useiden verkkosolmujen kaikkien myöhempien lohkojen uudelleenlaskentaa, mikä vaatii paljon resursseja ja aikaa.

Lohkoketjua voidaan käyttää tapahtumien tulosten tallentamiseen. Sen päätarkoituksena on järjestää sellaisten osapuolten (henkilöiden ja organisaatioiden) välisten liiketoimien turvallinen toteuttaminen, joiden välillä ei ole luottamusta. Olet oppinut, millä tietyillä liiketoiminta-alueilla ja millä alueilla voit käyttää Ethereumin lohkoketjua ja Solidity-älysopimuksia. Tämä on pankkiala, omistusoikeuksien, asiakirjojen jne. rekisteröinti.

Opit myös, että lohkoketjua käytettäessä voi syntyä erilaisia ​​ongelmia. Näitä ovat lohkoketjuun lisättyjen tietojen varmentamiseen liittyvät ongelmat, lohkoketjun nopeus, transaktioiden kustannukset, älykkäiden sopimusten ja todellisen maailman välisen tiedonvaihdon ongelma sekä tunkeilijoiden mahdolliset hyökkäykset, joiden tarkoituksena on varastaa kryptovaluuttavaroja käyttäjältä. tilit.

Puhuimme myös lyhyesti kaivostoiminnasta prosessina lisätä uusia lohkoja lohkoketjuun. Kaivostoimintaa vaaditaan tapahtumien suorittamiseksi. Kaivostoimintaa harjoittavat varmistavat lohkoketjun toimivuuden ja saavat tästä palkinnon kryptovaluuttana.

Oppitunti 2: Työpöytäympäristön valmistelu Ubuntussa ja DebianissaKäyttöjärjestelmän valinta
Tarvittavien apuohjelmien asennus
Gethin ja Swarmin asentaminen Ubuntuun
Gethin ja Swarmin asentaminen Debianiin
Alustava valmistelu
Ladataan Go-jakelua
Ympäristömuuttujien asettaminen
Go-version tarkistaminen
Gethin ja Swarmin asentaminen
Luomme yksityisen lohkoketjun
Genesis.json-tiedostoa valmistellaan
Luo työhakemisto
Luo tili
Suorita solmun alustus
Solmun käynnistysvaihtoehdot
Yhteyden muodostaminen sivustollemme
Kaivosten hallinta ja tasapainotarkastus
Geth-konsolin sammuttaminen
Oppitunnin yhteenveto

Oppitunti 3Raspberry Pi 3:n valmistaminen
Rasberianin asennus
Päivitysten asentaminen
Otetaan käyttöön SSH-käyttö
Staattisen IP-osoitteen asettaminen
Tarvittavien apuohjelmien asennus
Asennetaan Go
Ladataan Go-jakelua
Ympäristömuuttujien asettaminen
Go-version tarkistaminen
Gethin ja Swarmin asentaminen
Luomme yksityisen lohkoketjun
Tilin ja saldon tarkistus
Oppitunnin yhteenveto

Oppitunti 4Tilien katselu ja lisääminen
Tarkastelee tililuetteloa
Tilin lisääminen
geth-tilin komentovaihtoehdot
Tilin salasanat
Kryptovaluutta Ethereumissa
Ethereum valuutta
Selvitä tiliemme nykyinen saldo
Varojen siirto tililtä toiselle
eth.sendTransaction Method
Tapahtuman tilan tarkastelu
Tapahtumakuitti
Oppitunnin yhteenveto

Oppitunti 5Älykkäät sopimukset Ethereumissa
Sopimuksen älykäs toteutus
Ethereumin virtuaalikone
Integroitu kehitysympäristö Remix Solidity IDE
Kokoonpanon aloitus
Sopimustoimintojen soittaminen
Sopimuksen julkaiseminen yksityisessä verkossa
Hanki ABI-määritelmä ja sopimusbinaari
Sopimuksen julkaiseminen
Sopimuksen julkaisutapahtuman tilan tarkistaminen
Sopimustoimintojen soittaminen
solc eräkääntäjä
Solcin asennus Ubuntuun
Solcin asentaminen Debianiin
HelloSol-sopimuksen laatiminen
Sopimuksen julkaiseminen
Solcin asentaminen Rasberianille
Oppitunnin yhteenveto

Oppitunti 6. Älykkäät sopimukset ja Node.jsNode.js:n asentaminen
Asennus Ubuntuun
Asennus Debianille
Ganache-cli:n asennus ja käyttö
Web3:n asentaminen
Solc asennus
Node.js:n asentaminen Rasberianille
Komentosarja saadaksesi tililuettelon konsoliin
Käsikirjoitus älykkään sopimuksen julkaisemiseen
Käynnistys ja parametrien hakeminen
Käynnistysvaihtoehtojen hakeminen
Sopimuksen kokoaminen
Tilin lukituksen avaaminen
Lataa ABI ja sopimus binaarikoodi
Arvioi tarvittava kaasumäärä
Luo objekti ja aloita sopimuksen julkaiseminen
Sopimuksen julkaisuohjelman suorittaminen
Soittaminen älykkäisiin sopimustoimintoihin
Onko julkaistua älysopimusta mahdollista päivittää
Työskentely Web3-version 1.0.x kanssa
Hanki tililuettelo
Sopimuksen julkaiseminen
Sopimustoimintojen soittaminen
Varojen siirto tililtä toiselle
Varojen siirto sopimustilille
HelloSol-älysopimuksen päivitys
Luo skripti nähdäksesi tilin saldon
Lisää getBalance-funktiokutsu call_contract_get_promise.js-skriptiin
Älykäs sopimustilin täydentäminen
Oppitunnin yhteenveto

Oppitunti 7. Johdatus tryffeliinTryffelin asentaminen
Luo HelloSol-projekti
Projektihakemiston ja tiedostojen luominen
sopimushakemisto
Hakemistojen siirrot
testihakemisto
truffle-config.js-tiedosto
HelloSol-sopimuksen laatiminen
Aloita sopimuksen julkaiseminen
HelloSol-sopimukseen soittaminen toimii tryffelikehotteessa
HelloSol-sopimustoimintojen kutsuminen JavaScript-komentosarjasta, jossa on Node.js
Tryffeli-sopimusmoduulin asennus
Sopimusfunktioiden kutsuminen getValue ja getString
Sopimusfunktioiden setValue ja setString kutsuminen
Sopimuksen muutos ja uudelleenjulkaisu
Työskentely Web3-version 1.0.x kanssa
Muutosten tekeminen HelloSol-älysopimukseen
Skriptit sopimusmenetelmien kutsumiseen
Testaus tryffeleissä
Kiinteystesti
JavaScript testi
Oppitunnin yhteenveto

Oppitunti 8Sopimus tietotyyppien oppimisesta
Boolen tietotyypit
Etumerkittömät ja etumerkityt kokonaisluvut
Kiinteät pistenumerot
osoite
Monimutkaisten tyyppien muuttujat
Kiinteät taulukot
Dynaamiset taulukot
Luettelo
Rakenteet
sanakirjojen kartoitus
Oppitunnin yhteenveto

Oppitunti 9Sopimuksen julkaiseminen Trufflesta Gethin yksityiseen verkkoon
Yksityisen verkkoisännän valmistelu
Sopimuksen valmistelu työhön
Sopimuksen kääntäminen ja siirtäminen Truffle-verkkoon
Suoritetaan geth LAN -siirtoa
Artefaktien hankkiminen tryffeli
Trufflen sopimuksen julkaiseminen Rinkeby-testiverkkoon
Geth-solmun valmistelu Rinkebylle
Solmun synkronointi
Tilien lisääminen
Rinkeby-tilisi täydentäminen Etherillä
Aloitetaan sopimusmigraatio Rinkeby-verkkoon
Katso sopimustiedot Rinkeby-verkostosta
Tryffelikonsoli Rinkeby Networkille
Helpompi tapa kutsua sopimusfunktioita
Sopimusmenetelmien kutsuminen Node.js:n avulla
Siirrä varoja tilien välillä Rinkbyn Truffle-konsolissa
Oppitunnin yhteenveto

Oppitunti 10Kuinka Ethereum Swarm toimii
Swarmin asentaminen ja käyttäminen
Toiminnot tiedostoilla ja hakemistoilla
Tiedostoa ladataan Ethereum Swarmiin
Tiedoston lukeminen Ethereum Swarmista
Lähetetyn tiedoston luettelon katseleminen
Ladataan hakemistoja alihakemistoineen
Tiedoston lukeminen ladatusta hakemistosta
Swarm Public Gatewayn käyttäminen
Kutsutaan Swarmia Node.js-skripteistä
Perl Net::Ethereum::Swarm-moduuli
Net::Ethereum::Swarm-moduulin asentaminen
Tietojen kirjoittaminen ja lukeminen
Oppitunnin yhteenveto

Oppitunti 11Web3.py:n asentaminen
Päivitä ja asenna tarvittavat paketit
Easysolc-moduulin asennus
Sopimuksen julkaiseminen Web3.py:n kanssa
Sopimuksen kokoaminen
Yhdistetään palveluntarjoajaan
Suorita sopimusjulkaisu
Sopimusosoitteen ja abin tallentaminen tiedostoon
Sopimuksen julkaisuohjelman suorittaminen
Soittaminen sopimusmenetelmiin
Luetaan osoite ja sopimus abi JSON-tiedostosta
Yhdistetään palveluntarjoajaan
Luo sopimusobjekti
Soittaminen sopimusmenetelmiin
Tryffeli ja Web3.py
Oppitunnin yhteenveto

Oppitunti 12Voiko älykäs sopimus luottaa ulkomaailman tietoihin
Oracles Blockchain-tiedon välittäjinä
Tietolähde
Koodi, joka edustaa lähteen tietoja
Oracle tallentaa valuuttakurssin lohkoketjuun
Sopimus USDRateOracle
Valuuttakurssin päivittäminen älykkäässä sopimuksessa
Web Socket Providerin käyttäminen
RateUpdate-tapahtumaa odotellessa
RateUpdate-tapahtuman käsittely
Tietojen päivityksen aloittaminen älykkäässä sopimuksessa
Oppitunnin yhteenveto

Lähde: will.com

Lisää kommentti