Ethereum blockchain-erako Solidity kontratu adimendunak sortzea liburua. Gida praktikoa"

Ethereum blockchain-erako Solidity kontratu adimendunak sortzea liburua. Gida praktikoa"
Urtebete baino gehiago daramat “Ethereum Blockchain-erako Soliditateko Kontratu Adimendunak sortzen” liburuan lanean. Gida Praktikoa”, eta orain amaitu da lan hau, eta liburua Litrotan argitaratu eta eskuragarri.

Nire liburuak Solidity kontaktu adimendunak eta Ethereum blockchain-erako banatutako DApps sortzen lagunduko dizula espero dut. 12 ikasgai ditu zeregin praktikoekin. Horiek osatuta, irakurleak bere tokiko Ethereum nodoak sortzeko, kontratu adimendunak argitaratu eta haien metodoak deitu ahal izango ditu, mundu errealeko eta kontratu adimendunen artean datuak trukatu orakuluak erabiliz eta Rinkeby probako arazketa sarearekin lan egin ahal izango du.

Liburua bloke-kateen alorrean teknologia aurreratuetan interesa duten guztiei zuzenduta dago eta lan interesgarri eta itxaropentsuak egiteko aukera ematen dien ezagutza azkar lortu nahi duten guztiei zuzenduta dago.

Jarraian aurki daitezke aurkibidea eta liburuaren lehen kapitulua (hori ere Litroa liburuaren zatiak eskuragarri daude). Iritziak, iruzkinak eta iradokizunak jasotzea espero dut. Hori guztia kontuan hartzen saiatuko naiz liburuaren hurrengo edizioa prestatzerakoan.

Edukien taulaSarreraGure liburua Ethereum blockchain-aren printzipioak ulertu ez ezik, sare honetarako Solidity programazio-lengoaian banatutako DApp-ak sortzeko trebetasun praktikoak lortu nahi dituztenentzat da.

Hobe da liburu hau irakurtzea ez ezik, harekin lan egitea, ikasgaietan deskribatutako lan praktikoak eginez. Lan egiteko, Debian edo Ubuntu OS instalatuta duen tokiko ordenagailu, birtual edo hodeiko zerbitzari bat beharko duzu. Raspberry Pi ere erabil dezakezu zeregin asko egiteko.

Lehenengo ikasgaian Ethereum blockchain-aren funtzionamendu-printzipioak eta oinarrizko terminologia aztertuko ditugu, eta bloke hori non erabil daitekeen ere hitz egingo dugu.

Helburua bigarren ikasgaia — Sortu Ethereum blockchain nodo pribatu bat ikastaro honetan lan gehiago egiteko Ubuntu eta Debian zerbitzari batean. Oinarrizko utilitateak instalatzeko ezaugarriak aztertuko ditugu, hala nola geth, gure bloke-katearen nodoaren funtzionamendua bermatzen duena, baita swarm deszentralizatutako datu biltegiratze deabrua ere.

Hirugarren ikasgaia Ethereum-ekin nola esperimentatu irakatsiko dizu Raspberry Pi mikroordenagailu merke batean. Rasberian sistema eragilea (OS) instalatuko duzu Raspberry Pi-n, blockchain nodoa bultzatzen duen Geth utilitatean eta Swarm datu biltegiratze deszentralizatuaren deabruan.

Laugarren ikasgaia Ethereum sareko kontuei eta kriptomoneta unitateei eskainita dago, baita Geth kontsolatik kontu batetik bestera funtsak transferitzeko moduei ere. Kontuak sortzen, funtsen transferentzia transakzioak abiarazten eta transakzio egoera eta ordainagiria lortzen ikasiko duzu.

Bosgarren ikasgaian Ethereum sareko kontratu adimendunak ezagutuko dituzu eta Ethereum makina birtualak gauzatzen dituen ezagutuko duzu.

Zure lehen kontratu adimenduna sortu eta argitaratuko duzu Ethereum sare pribatuan eta bere funtzioetara nola deitzen ikasiko duzu. Horretarako, Remix Solidity IDEa erabiliko duzu. Solc batch konpilatzailea nola instalatu eta erabiltzen ere ikasiko duzu.
Aplikazio Binary Interface (ABI) deritzonaz ere hitz egingo dugu eta nola erabili irakatsiko dizugu.

Seigarren ikasgaia Node.js exekutatzen duten JavaScript script-ak sortzera eta Solidity kontratu adimendunekin eragiketak egitera dedikatzen da.

Node.js instalatuko duzu Ubuntu, Debian eta Rasberian OS-en, Ethereum sare lokalean kontratu adimendun bat argitaratzeko scriptak idatziko dituzu eta bere funtzioetara deituko duzu.

Horrez gain, ohiko kontuen artean funtsak nola transferitzen ikasiko duzu scriptak erabiliz, baita kontratu adimendunen kontuetan kreditatzen ere.

Zazpigarren ikasgaian Solidity smart contract garatzaileen artean ezaguna den Truffle esparrua nola instalatu eta erabiltzen ikasiko duzu. Truffle-kontratu modulua erabiliz kontratu-funtzioak deitzen dituzten JavaScript script-ak sortzen ikasiko duzu, eta zure kontratu adimenduna probatu Truffle erabiliz.

Zortzigarren ikasgaia Solidity datu motei eskainia. Datu-motekin lan egiten duten kontratu adimentsuak idatziko dituzu, hala nola zenbaki oso sinatuekin eta sinatu gabekoekin, sinatutako zenbakiak, kateak, helbideak, aldagai konplexuak, matrizeak, zenbaketak, egiturak eta hiztegiak.

Bederatzigarren ikasgaian Ethereum sare nagusirako kontratu adimendunak sortzera urrats bat gehiago hurbilduko zara. Truffle erabiliz kontratuak nola argitaratzen ikasiko duzu Geth sare pribatuan, baita Rinkeby testnet-ean ere. Rinkeby sarean kontratu adimendun bat araztea oso erabilgarria da sare nagusian argitaratu aurretik - ia dena da benetakoa han, baina doan.

Ikasgaiaren barruan, Rinkeby probako sareko nodo bat sortuko duzu, funtsekin finantzatuko duzu eta kontratu adimenduna argitaratuko duzu.

10 ikasgaia Ethereum Swarm datuen biltegiratze banatuari eskainia. Biltegiratze banatua erabiliz, Ethereum blockchain-en datu kopuru handiak gordetzean aurrezten duzu.

Tutorial honetan, Swarm biltegiratze lokal bat sortuko duzu, fitxategietan eta fitxategien direktorioetan idatzi eta irakurri eragiketak. Ondoren, Swarm atebide publikoarekin lan egiten ikasiko duzu, Node.js-etik Swarm atzitzeko script-ak idazten eta Perl Net::Ethereum::Swarm modulua erabiltzen ikasiko duzu.

11. ikasgaiaren helburua — Solidity smart contracts-ekin lan egiten master Python programazio-lengoaia ezaguna eta Web3.py markoa erabiliz. Esparrua instalatuko duzu, kontratu adimenduna konpilatzeko eta argitaratzeko script-ak idatziko dituzu eta haren funtzioetara deituko duzu. Kasu honetan, Web3.py bere kabuz zein Truffle garapen-ingurune integratuarekin batera erabiliko da.

12. ikasgaian kontratu adimendunen eta mundu errealaren artean datuak transferitzen ikasiko duzu orakuluak erabiliz. Hau erabilgarria izango da web guneetako, IoT gailuetako, hainbat gailu eta sentsoreetako datuak jasotzeko eta kontratu adimendunetako datuak gailu horietara bidaltzeko. Ikasgaiaren zati praktikoan, Errusiar Federazioko Banku Zentralaren webgunetik USD eta errubloen arteko egungo truke-tasa jasotzen duen orakulu bat eta kontratu adimenduna sortuko dituzu.

1. ikasgaia. Blockchain-ari eta Ethereum sareari buruz laburkiIkasgaiaren helburua: ezagutu Ethereum blockchain-aren funtzionamendu-printzipioak, bere aplikazio-eremuak eta oinarrizko terminologia.
Lan praktikoak: ez dago ikasgai honetan sartuta.

Gaur egun ia ez dago software garatzailerik blockchain teknologiari buruz (Blockchain), kriptografia-monetaz (Cryptocurrency edo Crypto Currency), Bitcoin (Bitcoin), hasierako txanpon-eskaintza (ICO, Hasierako txanpon-eskaintza), kontratu adimendunak (Smart Contract) buruz ezer entzun ez duenik. baita blockchain-arekin lotutako beste kontzeptu eta termino batzuk ere.

Blockchain teknologiak merkatu berriak irekitzen ditu eta programatzaileentzako lanpostuak sortzen ditu. Kriptomoneta teknologien eta kontratu adimendunen teknologien konplexutasun guztiak ulertzen badituzu, ez zenuke arazorik izan behar ezagutza hori praktikan aplikatzeko.

Esan beharra dago kriptomoneten eta blockchainen inguruan espekulazio asko dagoela. Alde batera utziko ditugu kriptomoneta tasen aldaketei, piramideen sorrerari, kriptomoneta legediaren korapilatsuei eta abarrei buruzko eztabaidak. Gure prestakuntza-ikastaroan Ethereum blockchain-aren kontratu adimentsuen aplikazioaren (Ethereum, Ether) eta aplikazio deszentralizatuen (Aplikazio banatua, DApp) deritzonen garapenaren alderdi teknikoetan zentratuko gara batez ere.

Zer da blockchain

Blockchain (Block Chain) elkarren artean modu jakin batean konektatuta dauden datu-blokeen katea da. Katearen hasieran lehenengo blokea dago, bloke primarioa (genesi blokea) edo genesi blokea deitzen dena. Bigarrena jarraitzen du, gero hirugarrena eta abar.

Datu-bloke horiek guztiak automatikoki bikoizten dira blockchain sareko nodo askotan. Horrek bloke-katearen datuen biltegiratze deszentralizatua bermatzen du.
Blockchain-en sistema pentsa dezakezu sare batean konektatuta dauden nodo kopuru handi bat (zerbitzari fisikoak edo birtualak) eta datu-blokeen kateko aldaketa guztiak errepikatuz. Hau zerbitzari anitzeko ordenagailu erraldoi bat bezalakoa da, eta ordenagailu horren nodoak (zerbitzariak) mundu osoan zehar sakabana daitezke. Eta zuk ere zure ordenagailua gehi dezakezu blockchain sarera.

Datu-base banatua

Blockchain bat blockchain sareko nodo guztietan erreplikatzen den datu-base banatu gisa pentsa daiteke. Teorian, bloke-katea funtzionatuko du gutxienez nodo bat lanean ari den bitartean, bloke-katearen bloke guztiak gordez.

Banatutako Datuen Erregistroa

Blockchain datuen eta eragiketen (transakzioen) liburu banatu gisa pentsa daiteke. Erregistro horren beste izen bat liburua da.

Banatutako liburu-liburu batean datuak gehi daitezke, baina ezin dira aldatu edo ezabatu. Ezintasun hori, batez ere, algoritmo kriptografikoak, katean blokeak gehitzeko algoritmo bereziak eta datuen biltegiratze deszentralizatua erabiliz lortzen da.

Blokeak gehitzean eta eragiketak (transakzioak) egiterakoan, gako pribatuak eta publikoak erabiltzen dira. Blockchain erabiltzaileak mugatzen dituzte beren datu-blokeetarako sarbidea soilik emanez.

Transakzioak

Blockchain-ek eragiketen (transakzioen) informazioa blokeetan gordetzen du. Aldi berean, dagoeneko amaitutako transakzio zaharrak ezin dira atzera edo aldatu. Transakzio berriak gehitutako bloke berrietan gordetzen dira.

Modu honetan, transakzioen historia osoa aldatu gabe erregistratu daiteke blockchain-en. Hori dela eta, blockchain erabil daiteke, adibidez, banku-transakzioak, egile eskubideen informazioa, jabetza-jabeen aldaketen historia, etab.

Ethereum blockchain-ek sistema-egoerak deiturikoak ditu. Transakzioak exekutatzen diren heinean, egoera hasierako egoeratik uneko egoerara aldatzen da. Transakzioak blokeetan erregistratzen dira.

Blockchain publikoak eta pribatuak

Kontuan izan behar da hemen esandako guztia egia dela blockchain publiko deritzon sareetarako soilik, zeinak ezin dituen pertsona fisiko edo juridiko, gobernu agentzia edo gobernu batek kontrolatu.
Blockchain pribatu deritzon sareak euren sortzaileen kontrol osopean daude, eta hor edozer gauza da posible, adibidez, katearen bloke guztien erabateko ordezkapena.

Blockchain-en aplikazio praktikoak

Zertarako izan daiteke erabilgarria blockchain-a?

Laburbilduz, blockchain-ek elkarrengan konfiantzarik ez duten pertsonen edo enpresen arteko transakzioak (transakzioak) modu seguruan egiteko aukera ematen du. Blockchain-en erregistratutako datuak (transakzioak, datu pertsonalak, dokumentuak, ziurtagiriak, kontratuak, fakturak, etab.) ezin dira faltsutu edo ordezkatu grabatu ondoren. Hori dela eta, bloke-katean oinarrituta, posible da, adibidez, hainbat dokumentu motatako erregistro banatu fidagarriak sortzea.

Jakina, badakizu kriptografia-moneta sistemak blokeo-kateetan oinarrituta sortzen ari direla, paperezko diru arrunta ordezkatzeko diseinatuta. Paper-diruari fiat ere esaten zaio (Fiat Money-tik).
Blockchain-ek blokeetan erregistratutako transakzioen biltegiratzea eta aldaezintasuna bermatzen du, horregatik kriptomoneta sistemak sortzeko erabil daiteke. Erabiltzaile ezberdinen artean (kontu) kripto-funtsen transferentziaren historia osoa dauka eta edozein eragiketa egin daiteke jarraipena.

Kriptografia-moneta sistemen transakzioak anonimoak izan daitezkeen arren, kriptografia-moneta erretiratu eta diru fidagarriarekin trukatzeak, normalean, kriptografia-moneta aktiboaren jabearen identitatea agerian uzten du.

Smart kontratuek, Ethereum sarean exekutatzen den softwarea, transakzioak egiteko prozesua automatizatzeko eta haien ezarpenaren jarraipena egiteko aukera ematen dute. Hau bereziki eraginkorra da transakzioaren ordainketa Ether kriptomoneta erabiliz egiten bada.

Solidity programazio-lengoaian idatzitako Ethereum blockchain eta Ethereum kontratu adimendunak erabil daitezke, adibidez, eremu hauetan:

  • dokumentuen notarioaren alternatiba;
  • higiezinen objektuen erregistroa eta higiezinen objektuekiko transakzioei buruzko informazioa biltegiratzea;
  • jabetza intelektualari buruzko copyright-informazioa biltegiratzea (liburuak, irudiak, musika-lanak, etab.);
  • boto sistema independenteak sortzea;
  • finantzak eta bankuak;
  • nazioarte mailan logistika, salgaien mugimenduaren jarraipena;
  • datu pertsonalak nortasun txartelaren sistemaren analogo gisa biltegiratzea;
  • merkataritza arloko transakzio seguruak;
  • azterketa medikoen emaitzak gordetzea, baita agindutako prozeduren historia ere

Blockchain-ekin arazoak

Baina, noski, dena ez da dirudien bezain erraza!

Arazoak daude datuak blokeo-katean gehitu aurretik egiaztatzeko (adibidez, faltsuak al dira?), arazoak daude bloke-katearekin lan egiteko erabiltzen diren sistema eta aplikazio-softwarearen segurtasunarekin, arazoak daude sarbidea lapurtzeko ingeniaritza sozialeko metodoak erabiltzeko aukerarekin. kriptomoneta zorroetara, etab. .P.

Berriz ere, ez bagara hitz egiten bloke publiko bati buruz, zeinaren nodoak mundu osoan zehar sakabanatuta dauden, baizik eta pertsona edo erakunde batena den bloke pribatu bati buruz, orduan hemengo konfiantza maila ez da konfiantza maila baino handiagoa izango. pertsona honetan edo erakunde honetan.

Era berean, kontuan hartu behar da blockchain-en grabatutako datuak guztion eskura jartzen direla. Zentzu honetan, blockchain (batez ere publikoa) ez da egokia informazio konfidentziala gordetzeko. Hala ere, blokeo-kateari buruzko informazioa aldatu ezin izateak hainbat motatako iruzurrezko jarduerak saihesten edo ikertzen lagun dezake.

Ethereum aplikazio deszentralizatuak erosoak izango dira kriptografia-moneta bidez erabiltzeagatik ordaintzen baduzu. Zenbat eta jende gehiago kriptomoneta duten edo erosteko prest egon, orduan eta ezagunagoak izango dira DApps eta kontratu adimentsuak.

Aplikazio praktikoa oztopatzen duten bloke-katearen ohiko arazoek bloke berriak gehi daitezkeen abiadura mugatua eta transakzioen kostu nahiko altua dira. Baina arlo honetako teknologia aktiboki garatzen ari da, eta arazo teknikoak denborarekin konponduko diren itxaropena dago.

Beste arazo bat da Ethereum blockchain-eko kontratu adimendunek makina birtualen ingurune isolatu batean funtzionatzen dutela eta ez dutela mundu errealeko datuetarako sarbiderik. Bereziki, kontratu adimendunaren programak ezin ditu berez guneetako edo edozein gailu fisikotako datuak irakurri (sentsoreak, kontaktuak, etab.), eta, gainera, ezin ditu datuak atera kanpoko edozein gailutara. Arazo hau eta konpontzeko moduak aztertuko ditugu Oracles izenekoei -kontratu adimendunen informazio bitartekariei eskainitako ikasgaian.

Lege-murrizketak ere badaude. Zenbait herrialdetan, adibidez, debekatuta dago kriptografia-moneta ordainketa-bide gisa erabiltzea, baina aktibo digital moduko gisa eduki dezakezu, baloreak bezala. Horrelako aktiboak trukean erosi eta sal daitezke. Edonola ere, kriptografiako monetaekin lan egiten duen proiektu bat sortzean, zure proiektua zeinen jurisdikziopean dagoen herrialdeko legedia ezagutu behar duzu.

Nola eratzen den blockchain kate bat

Esan dugun bezala, blockchain datu-blokeen kate soil bat da. Lehenik eta behin, kate honen lehen blokea osatzen da, gero bigarrena gehitzen zaio eta abar. Transakzio-datuak blokeetan gordetzen direla suposatzen da, eta azken blokeari gehitzen zaizkio.

Irudian. 1.1 bloke-segida baten bertsiorik errazena erakutsi dugu, non lehenengo blokea hurrengoari erreferentzia egiten dion.

Ethereum blockchain-erako Solidity kontratu adimendunak sortzea liburua. Gida praktikoa"
Arroza. 1.1. Blokeen sekuentzia sinplea

Aukera honekin, ordea, oso erraza da kateko edozein blokeren edukia manipulatzea, blokeek ez baitute aldaketetatik babesteko inolako informaziorik. Blockchain-a konfiantzarik ez duten pertsonen eta enpresek erabiltzeko pentsatuta dagoela kontuan hartuta, ondorioztatu dezakegu datuak gordetzeko metodo hau ez dela egokia blockchainerako.

Has gaitezen blokeak faltsutzetik babesten. Lehenengo fasean, bloke bakoitza checksum batekin babesten saiatuko gara (1.2. irudia).

Ethereum blockchain-erako Solidity kontratu adimendunak sortzea liburua. Gida praktikoa"
Arroza. 1.2. Bloke hauentzako babesa gehitzea checksum batekin

Orain erasotzaileak ezin du blokea besterik gabe aldatu, blokeen datuen checksuma baitauka. Checksuma egiaztatzeak datuak aldatu egin direla erakutsiko du.

Checksuma kalkulatzeko, hashing funtzioetako bat erabil dezakezu, hala nola MD-5, SHA-1, SHA-256, etab. Hash funtzioek balio bat kalkulatzen dute (adibidez, luzera konstanteko testu-kate bat) datu-bloke batean eragiketa itzulezinak eginez. Eragiketak hash funtzio motaren araberakoak dira.

Nahiz eta datu-blokearen edukia pixka bat aldatu, hash balioa ere aldatuko da. Hash funtzioaren balioa aztertuz, ezinezkoa da kalkulatu zen datu-blokea berreraikitzea.

Nahikoa izango al da babes hori? Zoritxarrez ez.

Eskema honetan, checksumak (hash funtzioa) bloke indibidualak soilik babesten ditu, baina ez blockchain osoa. Hash funtzioa kalkulatzeko algoritmoa ezagututa, erasotzaileak erraz ordezkatu ditzake bloke baten edukia. Gainera, ezerk ez dio eragotziko blokeak katetik kentzea edo berriak gehitzea.

Kate osoa bere osotasunean babesteko, bloke bakoitzean, datuekin batera, aurreko blokeko datuen hash bat ere gorde dezakezu (1.3. irudia).

Ethereum blockchain-erako Solidity kontratu adimendunak sortzea liburua. Gida praktikoa"
Arroza. 1.3. Gehitu aurreko blokearen hash-a datu-blokeari

Eskema honetan, bloke bat aldatzeko, hurrengo bloke guztien hash funtzioak berriro kalkulatu behar dituzu. Badirudi, zein da arazoa?

Benetako blokeetan, bloke berriak gehitzeko zailtasun artifizialak ere sortzen dira; baliabide informatiko asko behar dituzten algoritmoak erabiltzen dira. Bloke batean aldaketak egiteko, bloke hau ez ezik, ondorengo guztiak berriro kalkulatu behar dituzula kontuan hartuta, hori egitea oso zaila izango da.

Gogora dezagun, gainera, bloke-katearen datuak sareko nodo ugaritan gordetzen direla (bikoiztuta), hau da. Biltegiratze deszentralizatua erabiltzen da. Eta horrek askoz zailagoa da bloke bat faltsutzea, zeren aldaketak egin behar dira sareko nodo guztietan.

Blokeek aurreko blokeari buruzko informazioa gordetzen dutenez, posible da kateko bloke guztien edukia egiaztatzeko.

Ethereum bloke-katea

Ethereum blockchain banatutako DApp-ak sor daitezkeen plataforma bat da. Beste plataforma batzuetan ez bezala, Ethereum-ek kontratu adimentsuak (smart contracts) deritzonak erabiltzeko aukera ematen du, Solidity programazio-lengoaian idatziak.

Plataforma hau 2013an sortu zuen Vitalik Buterin, Bitcoin aldizkariaren sortzaileak, eta 2015ean jarri zuen martxan. Gure prestakuntza-ikastaroan aztertuko edo egingo dugun guztia Ethereum blockchain eta Solidity smart contracts-ekin dago bereziki.

Meatzaritza edo blokeak nola sortzen diren

Meatzaritza bloke berriak gehitzeko prozesu konplexu samarra eta baliabideak asko erabiltzen ditu bloke kateari, eta ez batere "kripto-moneta meatzaritza". Meatzaritzak blockchain-aren funtzionaltasuna bermatzen du, zeren prozesu hau da Ethereum bloke-kateari transakzioak gehitzeaz arduratzen dena.

Blokeak gehitzen parte hartzen duten pertsonei eta erakundeei meatzari deitzen zaie.
Meatzari nodoetan exekutatzen den softwarea Nonce izeneko hashing parametroa bilatzen saiatzen da azken blokerako sareak zehaztutako hash balio zehatz bat lortzeko. Ethereum-en erabiltzen den Ethash hashing algoritmoak Nonce balioa bilaketa sekuentzialaren bidez soilik lortzeko aukera ematen du.

Meatzari-nodoak Nonce balio zuzena aurkitzen badu, lanaren froga deritzona da (PoW, Proof-of-work). Kasu honetan, bloke bat Ethereum sarera gehitzen bada, meatzariak sari jakin bat jasotzen du sareko monetan - Ether. Idazteko unean, saria 5 Ether da, baina denborarekin murriztu egingo da.

Horrela, Ethereum meatzariek sarearen funtzionamendua bermatzen dute blokeak gehituz, eta horretarako kriptografia-moneta dirua jasotzen dute. Interneten informazio asko dago meatzariei eta meatzaritzari buruz, baina Ethereum sarean Solidity kontratuak eta DApps sortzean zentratuko gara.

Ikasgaiaren laburpena

Lehenengo ikasgaian, bloke-katea ezagutu zenuen eta blokeen sekuentzia berezia dela ikasi zenuen. Aurretik grabatutako blokeen edukia ezin da aldatu, horretarako sareko nodo askotan ondorengo bloke guztiak berriro kalkulatu beharko liratekeelako, eta horrek baliabide eta denbora asko eskatzen du.

Blockchain transakzioen emaitzak gordetzeko erabil daiteke. Bere helburu nagusia konfiantzarik ez duten alderdien (pertsonen eta erakundeen) arteko transakzio seguruak antolatzea da. Negozioaren zein arlo zehatzetan eta Ethereum blockchain eta Solidity kontratu adimendunak zein eremutan erabil daitezkeen ikasi zenuen. Hau da banku-sektorea, jabetza eskubideen erregistroa, dokumentuak, etab.

Blockchain erabiltzean hainbat arazo sor daitezkeela ere ikasi duzu. Hauek dira bloke-kateari gehitutako informazioa egiaztatzeko arazoak, bloke-katearen abiadura, transakzioen kostua, kontratu adimendunen eta mundu errealaren arteko datu-trukearen arazoa, baita erabiltzaile-kontuetatik kriptografia-moneta funtsak lapurtzera zuzendutako erasotzaileen balizko erasoak ere. .

Era berean, meatzaritzari buruz laburki hitz egin dugu bloke berriak gehitzeko prozesu gisa. Meatzaritza beharrezkoa da transakzioak burutzeko. Meatzaritzan parte hartzen dutenek blockchain-aren funtzionamendua bermatzen dute eta kriptomonetan sari bat jasotzen dute horretarako.

2. ikasgaia. Lan-ingurune bat prestatzea Ubuntu eta Debian OS-enSistema eragile bat hautatzea
Beharrezko utilitateak instalatzea
Geth eta Swarm Ubuntun instalatzen
Geth eta Swarm instalatzen Debian
Aurretiazko prestaketa
Go banaketa deskargatzen
Inguruko aldagaiak ezartzea
Go bertsioa egiaztatzen
Geth eta Swarm instalatzen
Blockchain pribatu bat sortzea
genesis.json fitxategia prestatzen
Sortu lanerako direktorio bat
Kontu bat sortu
Nodoaren hasieratzeari hasiera ematea
Nodoa abiarazteko aukerak
Konektatu gure nodora
Meatzaritzaren kudeaketa eta balantzearen egiaztapena
Geth kontsola itzaltzea
Ikasgaiaren laburpena

3. ikasgaia. Raspberry Pi 3-n lan-ingurunea prestatzeaRaspberry Pi 3 lanerako prestatzen
Rasberian instalatzea
Eguneratzeak instalatzen
SSH sarbidea gaitu
IP Helbide Estatiko bat ezartzea
Beharrezko utilitateak instalatzea
Go instalatzen
Go banaketa deskargatzen
Inguruko aldagaiak ezartzea
Go bertsioa egiaztatzen
Geth eta Swarm instalatzen
Blockchain pribatu bat sortzea
Zure kontua eta saldoa egiaztatzen
Ikasgaiaren laburpena

4. ikasgaia. Kontuak eta kontuen artean funtsak transferitzeaIkusi eta gehitu kontuak
Ikusi kontuen zerrenda
Kontu bat gehitzea
geth kontuaren komando-aukerak
Kontuaren pasahitzak
Kriptomoneta Ethereum-en
Ethereum Moneta Unitateak
Gure kontuen egungo saldoa zehazten dugu
Transferitu funtsak kontu batetik bestera
eth.sendTransaction metodoa
Ikusi transakzioaren egoera
Transakzioaren ordainagiria
Ikasgaiaren laburpena

5. ikasgaia. Zure lehen kontratua argitaratzeaKontratu adimendunak Ethereum-en
Kontratu adimenduna gauzatzea
Ethereum Makina Birtuala
Garapen-ingurune integratua Remix Solidity IDE
Konpilazioa martxan
Kontratu-funtzioak deitzea
Kontratu bat sare pribatu batean argitaratzea
ABI definizioa eta kontratuaren kode bitarra lortzea
Kontratuaren argitalpena
Kontratuaren argitalpenaren transakzioaren egoera egiaztatzea
Kontratu-funtzioak deitzea
Batch konpilatzailea solk
Solc instalatzen Ubuntun
Solc instalatzen Debian
HelloSol kontratua osatzea
Kontratuaren argitalpena
Solc instalatzen Rasberian
Ikasgaiaren laburpena

6. ikasgaia. Smart contracts eta Node.jsNode.js instalatzen
Instalazioa Ubuntun
Instalazioa Debian-en
Ganache-cli instalatu eta exekutatzen
Web3 instalazioa
Solc instalatzen
Node.js instalatzen Rasberian
Kontsolan kontuen zerrenda bat lortzeko scripta
Smart kontratu bat argitaratzeko gidoia
Abiarazi eta lortu parametroak
Abiarazteko aukerak lortzea
Kontratua osatzea
Zure kontua desblokeatzen
ABI eta kontratuaren kode bitarra kargatzen
Beharrezko gas kopurua kalkulatzea
Sortu objektu bat eta hasi kontratu bat argitaratzen
Kontratua argitaratzeko gidoia exekutatzen
Kontratu adimendunen funtzioetara deitzea
Posible al da argitaratutako kontratu adimendun bat eguneratzea?
Web3 1.0.x bertsioarekin lan egitea
Kontuen zerrenda lortzea
Kontratuaren argitalpena
Kontratu-funtzioak deitzea
Transferitu funtsak kontu batetik bestera
Transferitu funtsak kontratuaren kontura
HelloSol kontratu adimenduna eguneratzen
Sortu script bat zure kontuaren saldoa ikusteko
Gehitu getBalance funtzioari dei bat call_contract_get_promise.js script-ari
Smart Contract kontua kargatzen dugu
Ikasgaiaren laburpena

7. Ikasgaia. Boiluraren SarreraTrufa instalatzea
Sortu HelloSol proiektu bat
Proiektuaren direktorioa eta fitxategiak sortzea
Kontratuen direktorioa
Katalogoko migrazioak
Direktorioaren proba
truffle-config.js fitxategia
HelloSol kontratua osatzea
Hasi kontratu bat argitaratzen
HelloSol Kontratuaren Funtzioei deitzea Truffle Prompt batean
HelloSol kontratu-funtzioei deitzea Node.js exekutatzen duen JavaScript script batetik
Trufa-kontratu modulua instalatzea
GetValue eta getString kontratu funtzioei deitzea
SetValue eta setString kontratu funtzioei deitzea
Kontratua aldatzea eta berriro argitaratzea
Web3 1.0.x bertsioarekin lan egitea
HelloSol kontratu adimendunean aldaketak egitea
Kontratu metodoak deitzeko scriptak
Boilurran probak
Solidotasun proba
JavaScript proba
Ikasgaiaren laburpena

8. Ikasgaia. Soliditatearen Datu MotakDatu motak ikasteko kontratua
Datu boolearrak
Zenbaki osoak zeinugabeak eta zenbaki osoak
Puntu finkoko zenbakiak
Helbidea
Mota konplexuetako aldagaiak
Tamaina finkoko matrizeak
Array dinamikoak
Zenbaketa
Egiturak
Hiztegien mapaketa
Ikasgaiaren laburpena

9. Ikasgaia. Kontratuen migrazioa sare pribatura eta Rinkeby sareraTruffletik Geth sare pribaturako kontratu bat argitaratzea
Sare pribatuko nodo bat prestatzen
Lanerako kontratua prestatzea
Kontratu bat osatzea eta migratzea Truffle sarera
Sare lokalaren migrazioa geth hasten
Trufa artefaktuak eskuratzea
Truffletik Rinkeby testnet-era kontratu bat argitaratzea
Geth nodo bat prestatzen Rinkebyrekin lan egiteko
Nodoen sinkronizazioa
Kontuak gehitzea
Zure Rinkeby kontua etherrekin kargatzea
Rinkeby sarerako kontratu migrazioa martxan jartzea
Rinkeby sarean kontratuaren informazioa ikustea
Truffle Console Rinkeby sarerako
Kontratu-funtzioei deitzeko modu errazagoa
Kontratu metodoei deitzea Node.js erabiliz
Transferitu dirua Truffle kontsolan Rinkby-rako kontuen artean
Ikasgaiaren laburpena

10. ikasgaia. Ethereum Swarm datu biltegiratze deszentralizatuaNola funtzionatzen du Ethereum Swarm-ek?
Swarm instalatzea eta abiarazteko
Fitxategi eta direktorioekin eragiketak
Fitxategi bat Ethereum Swarm-era igotzea
Ethereum Swarm-en fitxategi bat irakurtzen
Ikusi kargatutako fitxategi baten manifestua
Direktorioak azpidirektorioekin kargatzen
Deskargatutako direktorio batetik fitxategi bat irakurtzea
Swarm atebide publiko bat erabiliz
Swarm atzitzea Node.js scriptetatik
Perl Net::Ethereum::Swarm modulua
Net::Ethereum::Swarm modulua instalatzen
Datuak idaztea eta irakurtzea
Ikasgaiaren laburpena

11. ikasgaia. Web3.py markoa Ethereum-ekin Python-en lan egitekoWeb3.py instalatzen
Beharrezko paketeak eguneratzea eta instalatzea
easysolc modulua instalatzea
Web3.py erabiliz kontratua argitaratzea
Kontratua osatzea
Hornitzaile batekin konektatzen
Kontratuaren argitalpena gauzatzea
Kontratuaren helbidea eta abi fitxategi batean gordetzea
Kontratua argitaratzeko gidoia exekutatzen
Kontratu-metodoak deitzea
JSON fitxategi batetik kontratu baten helbidea eta abi irakurtzea
Hornitzaile batekin konektatzen
Kontratu objektu bat sortzea
Kontratu-metodoak deitzea
Truffle eta Web3.py
Ikasgaiaren laburpena

12. ikasgaia. OrakuluakKontratu adimendun batek fida al dezake kanpoko munduko datuekin?
Orakuluak blockchain informazio bitartekari gisa
Datuen iturria
Iturburuko datuak irudikatzeko kodea
Blockchain-en truke-tasa erregistratzeko Oracle
USDRateOracle Kontratua
Kontratu adimendun batean truke-tasa eguneratzea
Web Socket hornitzailea erabiliz
RateUpdate gertaeraren zain
RateUpdate gertaera kudeatzea
Datuen eguneraketa bat hastea kontratu adimendun batean
Ikasgaiaren laburpena

Iturria: www.habr.com

Gehitu iruzkin berria