Die boek "Creating Solidity Smart Contracts for the Ethereum Blockchain. Praktiese gids»

Die boek "Creating Solidity Smart Contracts for the Ethereum Blockchain. Praktiese gids»
Vir meer as 'n jaar werk ek aan die boek "Building Solidity Smart Contracts for the Ethereum Blockchain. Praktiese Gids”, en nou is hierdie werk voltooi, en die boek gepubliseer en beskikbaar in liters.

Ek hoop dat my boek jou sal help om vinnig aan die gang te kom met die bou van Solidity-slimkontakte en verspreide DApps vir die Ethereum-blokketting. Dit bestaan ​​uit 12 lesse met praktiese take. Nadat hulle voltooi is, sal die leser in staat wees om hul eie plaaslike Ethereum-nodusse te skep, slim kontrakte te publiseer en hul metodes te noem, data uit te ruil tussen die werklike wêreld en slim kontrakte met behulp van orakels, en werk met die Rinkeby-toetsontfoutnetwerk.

Die boek is gerig aan almal wat in gevorderde tegnologieë op die gebied van blokkettings belangstel en vinnig kennis wil opdoen wat hulle in staat stel om interessante en belowende werk te doen.

Hieronder vind u die inhoudsopgawe en die eerste hoofstuk van die boek (ook op Litres fragmente van die boek is beskikbaar). Ek hoop om terugvoer, kommentaar en voorstelle te ontvang. Ek sal dit alles in ag neem wanneer ek die volgende uitgawe van die boek voorberei.

InhoudsopgaweInleidingOns boek is bedoel vir diegene wat nie net die beginsels van die Ethereum-blokketting wil verstaan ​​nie, maar ook praktiese vaardighede wil opdoen in die skep van verspreide DApps in die Solidity-programmeertaal vir hierdie netwerk.

Dit is beter om nie net hierdie boek te lees nie, maar om daarmee te werk en die praktiese take te voltooi wat in die lesse beskryf word. Om te werk, benodig jy 'n plaaslike rekenaar, virtuele of wolkbediener met Debian of Ubuntu geïnstalleer. Jy kan ook die Raspberry Pi gebruik om baie take uit te voer.

By die eerste les ons sal die beginsels van die Ethereum-blokketting en die basiese terminologie dek, asook praat oor waar hierdie blokketting gebruik kan word.

Doel tweede les - skep 'n private Ethereum blockchain nodus vir verdere werk binne die raamwerk van hierdie kursus op 'n Ubuntu en Debian bediener. Ons sal kyk na die kenmerke van die installering van basiese nutsprogramme, soos geth, wat die werking van ons blokkettingnodus verseker, sowel as die swerm gedesentraliseerde data stoor daemon.

Derde les leer jou hoe om met Ethereum op 'n goedkoop Raspberry Pi-mikrorekenaar te eksperimenteer. Jy sal die Rasberian-bedryfstelsel (OS) op die Raspberry Pi installeer, die Geth-nutsding wat die blokkettingnodus aandryf, en die Swarm-gedesentraliseerde datapakhuis-demon.

vierde les is toegewy aan rekeninge en cryptocurrency-eenhede in die Ethereum-netwerk, sowel as maniere om fondse van een rekening na 'n ander oor te dra vanaf die Geth-konsole. Jy sal leer hoe om rekeninge te skep, fondsoordragtransaksies te begin, transaksiestatus en kwitansie te kry.

By die vyfde les jy sal kennis maak met slim kontrakte op die Ethereum-netwerk, leer oor die uitvoering daarvan deur die Ethereum virtuele masjien.

Jy sal jou eerste slim kontrak op die Ethereum private netwerk skep en publiseer en leer hoe om sy funksies te noem. Om dit te doen, sal jy die Remix Solidity IDE gebruik. Daarbenewens sal jy leer hoe om die solc-pakketsamesteller te installeer en te gebruik.
Ons sal ook praat oor die sogenaamde Application Binary Interface (ABI) en jou leer hoe om dit te gebruik.

Sesde les is toegewy aan die skep van JavaScript-skrifte wat Node.js gebruik en bewerkings met Solidity-slimkontrakte uitvoer.

Jy sal Node.js op Ubuntu, Debian en Rasberian OS installeer, skrifte skryf om 'n slim kontrak op die Ethereum plaaslike netwerk te publiseer en sy funksies te noem.

Daarbenewens sal jy leer hoe om fondse tussen gewone rekeninge oor te dra deur gebruik te maak van skrifte, asook om dit na slimkontrakrekeninge te krediteer.

In die sewende les jy sal leer hoe om die Truffle-geïntegreerde omgewing, gewild onder Solidity-slimkontrakontwikkelaars, te installeer en te gebruik. Jy sal leer hoe om JavaScript-skrifte te skep wat kontrakfunksies oproep deur die truffelkontrakmodule te gebruik, en jou slim kontrak met Truffle toets.

Agtste les toegewy aan Solidity-datatipes. Jy sal slim kontrakte skryf wat met datatipes werk soos getekende en ongetekende heelgetalle, getekende getalle, stringe, adresse, komplekse tipe veranderlikes, skikkings, opsommings, strukture en woordeboeke.

In die negende les jy sal een stap nader wees aan die skep van slim kontrakte vir die hoof Ethereum-netwerk. Jy sal leer hoe om kontrakte te publiseer met behulp van Truffle op die Geth-privaatnetwerk, sowel as op die Rinkeby-toetsnet. Om 'n slim kontrak op die Rinkeby-netwerk te ontfout is baie nuttig voordat dit op die hoofnetwerk gepubliseer word - byna alles is werklik daar, maar gratis.

As deel van die les sal jy 'n Rinkeby-toetsnet-nodus skep, dit met fondse aanvul en 'n slim kontrak publiseer.

Les 10 opgedra aan Ethereum Swarm-verspreide datawinkels. Deur verspreide berging te gebruik, bespaar u op die stoor van groot hoeveelhede data op die Ethereum-blokketting.

In hierdie tutoriaal sal jy 'n plaaslike Swarm-berging skep, lêers skryf en lees, en lêergidse. Vervolgens sal jy leer hoe om met die publieke Swarm-poort te werk, skrifte te skryf om toegang tot Swarm vanaf Node.js te kry, asook om die Net::Ethereum::Swarm Perl-module te gebruik.

Les 11 Doelwit — bemeester om met Solidity-slimkontrakte te werk deur die gewilde Python-programmeertaal en die Web3.py-raamwerk te gebruik. Jy sal hierdie raamwerk installeer, skrifte skryf om 'n slim kontrak saam te stel en te publiseer, asook om sy funksies te noem. In hierdie geval sal Web3.py beide op sigself en in samewerking met die Truffle-geïntegreerde ontwikkelingsomgewing gebruik word.

By les 12 jy sal leer hoe om data tussen slim kontrakte en die regte wêreld oor te dra met behulp van orakels. Dit is nuttig om data vanaf webwerwe, IoT-toestelle, verskeie toestelle en sensors te ontvang, en om data van slimkontrakte na hierdie toestelle te stuur. In die praktiese deel van die les sal jy 'n orakel en 'n slim kontrak skep wat die huidige USD-tot-roebel-wisselkoers van die CBR-webwerf ontvang.

Les 1. Kortliks oor die blokketting en die Ethereum-netwerkDie doel van die les: maak kennis met die beginsels van die Ethereum-blokketting, sy toepassingsgebiede en basiese terminologie.
Praktiese take: nie by hierdie les ingesluit nie.

Daar is skaars 'n sagteware-ontwikkelaar vandag wat nog niks gehoor het van blockchain-tegnologie (Blockchain), cryptocurrencies (Cryptocurrency of Crypto Currency), bitcoins (Bitcoin), aanvanklike muntaanbod (ICO, Aanvanklike muntaanbod), slim kontrakte (Slimkontrak), asook ander konsepte en terme wat met die blokketting verband hou.

Blockchain-tegnologie maak nuwe markte oop en skep werk vir programmeerders. As jy al die ingewikkeldhede van cryptocurrency-tegnologieë en slim kontraktegnologieë begryp, behoort jy geen probleme te hê om hierdie kennis in die praktyk toe te pas nie.

Ek moet sê dat daar baie spekulasie is rondom kripto-geldeenhede en blokkettings. Ons sal besprekings oor veranderinge in cryptocurrency-koerse, oor die skepping van piramides, oor die ingewikkeldhede van cryptocurrency-wetgewing, ens. In ons tutoriaal sal ons hoofsaaklik fokus op die tegniese aspekte van die gebruik van slim kontrakte op die Ethereum-blokketting (ethereum, ether) en die ontwikkeling van sogenaamde gedesentraliseerde toepassings (Distributed Application, DApp).

Wat is blockchain

Blockchain (Blockchain, Block Chain) is 'n ketting van blokke data wat op 'n sekere manier met mekaar verband hou. Aan die begin van die ketting is die eerste blok, wat die primêre blok (genesisblok) of genesisblok genoem word. Dit word gevolg deur 'n tweede, dan 'n derde, ensovoorts.

Al hierdie blokke data word outomaties op talle nodusse van die blokkettingnetwerk gedupliseer. Dit verseker gedesentraliseerde berging van blockchain-data.
Jy kan aan 'n blokkettingstelsel dink as 'n groot aantal nodusse (fisiese of virtuele bedieners) wat saamgenetwerk is en alle veranderinge in die datablokketting repliseer. Dit is soos 'n reuse multi-bediener rekenaar, en die nodusse van so 'n rekenaar (bedieners) kan oor die wêreld gestrooi wees. En jy kan ook jou rekenaar by die blokkettingnetwerk voeg.

Verspreide databasis

Blockchain kan beskou word as 'n verspreide databasis wat na alle nodusse van die blockchain-netwerk gerepliseer word. In teorie sal die blokketting in werking wees solank as wat ten minste een nodus werk, en al die blokke van die blokketting stoor.

Verspreide dataregister

Blockchain kan beskou word as 'n verspreide grootboek van data en bedrywighede (transaksies). 'n Ander naam vir so 'n register is 'n grootboek.

Data kan by die verspreide grootboek gevoeg word, maar dit kan nie verander of uitgevee word nie. Hierdie onmoontlikheid word veral bereik deur die gebruik van kriptografiese algoritmes, spesiale algoritmes om blokke by die ketting te voeg, en gedesentraliseerde databerging.

Wanneer blokke bygevoeg word en bewerkings (transaksies) uitgevoer word, word private en publieke sleutels gebruik. Hulle beperk blokkettinggebruikers deur hulle toegang te gee tot slegs hul eie blokke data.

Transaksies

Blockchain stoor inligting oor bedrywighede (transaksies) in blokke. Terselfdertyd kan ou, reeds voltooide transaksies nie teruggerol of verander word nie. Nuwe transaksies word in nuwe bygevoegde blokke gestoor.

Dus kan die hele geskiedenis van transaksies onveranderd in die blokketting aangeteken word. Daarom kan die blokketting byvoorbeeld gebruik word om banktransaksies, kopiereginligting, die geskiedenis van veranderinge in eiendomseienaars, ens.

Die Ethereum blockchain bevat die sogenaamde stelsel state. Soos transaksies vorder, verander die staat van aanvanklike na huidige. Transaksies word in blokke aangeteken.

Publieke en private blokkettings

Daar moet hier kennis geneem word dat al die bogenoemde slegs waar is vir die sogenaamde openbare blokkettingnetwerke, wat nie deur enige individu of regsentiteit, staatsliggame of regerings beheer kan word nie.
Die sogenaamde private blokkettingnetwerke is onder die volle beheer van hul skeppers, en alles is daar moontlik, byvoorbeeld die volledige vervanging van alle blokke van die ketting.

Praktiese toepassings van Blockchain

Waarvoor kan blockchain gebruik word?

Kortom, die blokketting laat jou toe om veilig transaksies (transaksies) te doen tussen persone of maatskappye wat mekaar nie vertrou nie. Die data wat in die blokketting aangeteken is (transaksies, persoonlike data, dokumente, sertifikate, kontrakte, fakture, ens.) kan nie na optekening vervals of vervang word nie. Daarom, gebaseer op die blokketting, is dit moontlik om byvoorbeeld vertroude verspreide registers van verskillende soorte dokumente te skep.

Natuurlik weet jy dat blockchain-gebaseerde kripto-geldeenheidstelsels geskep word om konvensionele papiergeld te vervang. Papiergeld word ook fiat-geld genoem (van Fiat Money).
Blockchain bied berging en onveranderlikheid van transaksies wat in blokke aangeteken is, sodat dit gebruik kan word om kripto-geldeenheidstelsels te skep. Dit bevat die hele geskiedenis van die oordrag van kripto-fondse tussen verskillende gebruikers (rekeninge), en enige operasie kan opgespoor word.

Alhoewel transaksies binne kripto-geldeenheidstelsels anoniem kan wees, openbaar die onttrekking van kripto-geldeenheid en om dit vir fiat-geld te ruil gewoonlik die identiteit van die eienaar van die kripto-geldeenheidbate.

Die sogenaamde slim kontrakte, wat sagteware is wat op die Ethereum-netwerk loop, laat jou toe om die proses van die sluiting van transaksies te outomatiseer en die implementering daarvan te monitor. Dit is veral effektief as die betaling vir die transaksie met die Ether-cryptocurrency (ether) uitgevoer word.

Die Ethereum-blokketting- en Ethereum-slimkontrakte wat in die Solidity-programmeertaal geskryf is, kan byvoorbeeld in die volgende gebiede gebruik word:

  • 'n alternatief vir notarisering van dokumente;
  • die byhou van 'n register van eiendomsobjekte en inligting oor transaksies met eiendomsobjekte;
  • berging van kopiereginligting vir intellektuele eiendom (boeke, beelde, musiekwerke, ens.);
  • die vestiging van onafhanklike stemstelsels;
  • finansies en bankwese;
  • logistiek op 'n internasionale skaal, die dop van die beweging van goedere;
  • berging van persoonlike data as 'n analoog van die identiteitskaartstelsel;
  • veilige transaksies in die kommersiële gebied;
  • die stoor van die resultate van mediese ondersoeke, sowel as die geskiedenis van voorgeskrewe prosedures

Probleme met die blockchain

Maar natuurlik is alles nie so eenvoudig soos dit mag lyk nie!

Daar is probleme met die verifikasie van data voordat dit by die blokketting gevoeg word (byvoorbeeld, is dit vals?), probleme met die sekuriteit van stelsel en toepassingsagteware wat gebruik word om met die blokketting te werk, probleme met die moontlikheid om sosiale ingenieursmetodes te gebruik om toegang te steel aan kripto-geldeenheid-beursies, ens. .P.

Weereens, as ons nie praat van 'n openbare blokketting waarvan die nodusse oor die hele wêreld versprei is nie, maar van 'n private blokketting wat deur 'n persoon of organisasie besit word, dan sal die vlak van vertroue hier nie hoër wees as die vlak van vertroue in hierdie persoon nie. of organisasie.

Daar moet ook in ag geneem word dat die data wat in die blokketting aangeteken is, vir almal beskikbaar word. In hierdie sin is die blokketting (veral publiek) nie geskik vir die stoor van vertroulike inligting nie. Die feit dat die inligting op die blokketting egter nie verander kan word nie, kan help om verskeie soorte bedrieglike aktiwiteite te voorkom of te ondersoek.

Ethereum gedesentraliseerde toepassings sal gerieflik wees as jy vir hul gebruik met kripto-geldeenheid betaal. Hoe meer mense kripto-geldeenhede besit of bereid is om te koop, hoe gewilder sal DApps en slim kontrakte word.

Onder die algemene probleme van die blokketting wat die praktiese toepassing daarvan belemmer, kan ons die beperkte spoed van die byvoeging van nuwe blokke en die relatief hoë koste van transaksies noem. Maar tegnologie op hierdie gebied ontwikkel aktief, en daar word gehoop dat tegniese probleme mettertyd opgelos sal word.

Nog 'n probleem is dat Ethereum blockchain slim kontrakte loop in 'n geïsoleerde omgewing van virtuele masjiene, en het nie toegang tot werklike wêreld data nie. In die besonder kan die slimkontrakprogram nie self data van webwerwe of enige fisiese toestelle (sensors, kontakte, ens.) lees nie en kan nie data na enige eksterne toestelle uitstuur nie. Ons sal hierdie probleem en maniere om dit op te los bespreek in die les gewy aan die sogenaamde Oracles - inligting tussengangers van slim kontrakte.

Daar is ook wetlike beperkings. In sommige lande is dit byvoorbeeld verbode om kripto-geldeenheid as 'n betaalmiddel te gebruik, maar jy kan dit as 'n soort digitale bate besit, soos sekuriteite. Sulke bates kan op die aandelebeurs gekoop en verkoop word. In elk geval, wanneer u 'n projek skep wat met kripto-geldeenhede werk, moet u uself vertroud maak met die wetgewing van die land onder wie se jurisdiksie u projek val.

Hoe die blokkettingketting gevorm word

Soos ons reeds gesê het, is 'n blokketting 'n eenvoudige ketting van blokke data. Eerstens word die eerste blok van hierdie ketting gevorm, dan word die tweede daarby gevoeg, ensovoorts. Transaksiedata is veronderstel om in blokke gestoor te word en by die heel laaste blok gevoeg te word.

Op fig. 1.1 het ons die eenvoudigste weergawe van die blokreeks gewys, waar die eerste blok na die volgende een verwys.

Die boek "Creating Solidity Smart Contracts for the Ethereum Blockchain. Praktiese gids»
Rys. 1.1. Eenvoudige blokvolgorde

In hierdie geval is dit egter baie maklik om die inhoud van enige blokkie in die ketting te vervals, aangesien die blokke geen inligting bevat om teen veranderinge te beskerm nie. As in ag geneem word dat die blokketting bedoel is vir die gebruik van mense en maatskappye waartussen daar geen vertroue is nie, kan die gevolgtrekking gemaak word dat hierdie metode van stoor van data nie geskik is vir die blokketting nie.

Kom ons hanteer die beskerming van blokke teen vervalsing. In die eerste stadium sal ons probeer om elke blok met 'n kontrolesom te beskerm (Fig. 1.2).

Die boek "Creating Solidity Smart Contracts for the Ethereum Blockchain. Praktiese gids»
Rys. 1.2. Voeg kontrolesombeskerming by vir blokdata

Nou kan 'n aanvaller nie die blok net so verander nie, aangesien dit die kontrolesom van die blokdata bevat. 'n Kontrolesomkontrole sal wys dat die data verander is.

Jy kan een van die hash-funksies soos MD-5, SHA-1, SHA-256, ens. gebruik om die kontrolesom te bereken. Hash-funksies bereken 'n sekere waarde (byvoorbeeld in die vorm van 'n teksstring van konstante lengte) as gevolg van die uitvoer van onomkeerbare bewerkings op 'n blok data. Bewerkings hang af van die tipe hash-funksie.

Selfs as die inhoud van die datablok effens verander, sal die hash-waarde ook verander. Deur die waarde van 'n hash-funksie te ontleed, is dit onmoontlik om die blok data waarvoor dit bereken is, te herstel.

Sal sulke beskerming voldoende wees? Ongelukkig nee.

In hierdie skema beskerm die kontrolesom (hash-funksie) slegs individuele blokke, maar nie die hele blokketting nie. Deur die algoritme vir die berekening van die hash-funksie te ken, kan 'n aanvaller maklik die inhoud van die blok verander. Ook sal niks hom verhoed om blokke uit die ketting te verwyder of nuwes by te voeg nie.

Om die hele ketting as 'n geheel te beskerm, kan jy in elke blok saam met die data ook 'n hash van die data van die vorige blok stoor (Fig. 1.3).

Die boek "Creating Solidity Smart Contracts for the Ethereum Blockchain. Praktiese gids»
Rys. 1.3. Voeg die hash van die vorige blok by die datablok

In hierdie skema, om enige blok te verander, moet jy die hash-funksies van alle daaropvolgende blokke herbereken. Dit wil voorkom, wat is die probleem?

In regte blokkettings word ook kunsmatige probleme geskep om nuwe blokke by te voeg - algoritmes word gebruik wat baie rekenaarhulpbronne benodig. Met inagneming van die feit dat om veranderinge aan 'n blok aan te bring, dit nodig is om nie een van hierdie blokke te herbereken nie, maar al die daaropvolgende, sal dit uiters moeilik wees om dit te doen.

Onthou ook dat blokkettingdata op talle netwerknodes gestoor (gerepliseer) word, m.a.w. gedesentraliseerde berging word gebruik. En dit bemoeilik die vervalsing van die blok baie, want. veranderinge moet aan alle netwerknodusse aangebring word.

Aangesien blokke inligting oor die vorige blok stoor, is dit moontlik om die inhoud van alle blokke in die ketting na te gaan.

Blockchain Ethereum

Die Ethereum blockchain is 'n platform waarop jy verspreide DApps kan bou. Anders as ander platforms, laat Ethereum die gebruik van sogenaamde slim kontrakte (slim kontrakte, slim kontrakte) toe wat in die Solidity-programmeertaal geskryf is.

Hierdie platform is in 2013 geskep deur Vitalik Buterin, stigter van Bitcoin Magazine, en in 2015 bekendgestel. Alles wat ons in ons opleidingskursus sal leer of doen, hou spesifiek verband met die Ethereum blockchain en Solidity slim kontrakte.

Mynbou of hoe blokke geskep word

Mynbou is 'n taamlik komplekse en hulpbron-intensiewe proses om nuwe blokke by die blokketting te voeg, en glad nie "cryptocurrency-mynbou" nie. Mynbou verseker die doeltreffendheid van die blokketting, want. dit is hierdie proses wat verantwoordelik is vir die byvoeging van transaksies by die Ethereum-blokketting.

Die mense en organisasies wat betrokke is by die byvoeging van blokke word mynwerkers genoem.
Die sagteware (sagteware) wat op die nodusse van die mynwerkers loop, probeer om 'n hash-parameter genaamd Nonce op te tel vir die laaste blok om 'n sekere hash-waarde te kry wat deur die netwerk gegee word. Die Ethash hashing-algoritme wat in Ethereum gebruik word, laat jou toe om die Nonce-waarde slegs deur opeenvolgende opsomming te kry.

As die mynernodus die korrekte Nonce-waarde gevind het, dan is dit die sogenaamde bewys van werk (PoW, Proof-of-work). In hierdie geval, as die blok by die Ethereum-netwerk gevoeg word, ontvang die mynwerker 'n sekere beloning in die netwerk se geldeenheid - Ether. Ten tyde van die skryf van hierdie boek is die beloning 5 Eter, maar dit sal mettertyd afneem.

Dus, Ethereum-mynwerkers verseker die werking van die netwerk deur blokke by te voeg, en ontvang kripto-geldeenheid-geld hiervoor. Jy sal baie inligting oor mynwerkers en mynbou op die internet vind, en ons sal fokus op die skep van Solidity-kontrakte en DApps op die Ethereum-netwerk.

Lesopsomming

In die eerste les het jy met die blokketting kennis gemaak en geleer dat dit 'n reeks blokke is wat op 'n spesiale manier saamgestel is. Die inhoud van voorheen aangetekende blokke kan nie verander word nie, aangesien dit die herberekening van alle daaropvolgende blokke op baie netwerknodusse sal vereis, wat baie hulpbronne en tyd verg.

Blockchain kan gebruik word om die resultate van transaksies te stoor. Die hoofdoel daarvan is om die veilige uitvoering van transaksies tussen partye (persone en organisasies), waartussen daar geen vertroue is, te organiseer nie. Jy het geleer in watter spesifieke areas van besigheid en in watter areas jy die Ethereum blockchain en Solidity slim kontrakte kan gebruik. Dit is die banksektor, registrasie van eiendomsreg, dokumente, ens.

Jy het ook geleer dat verskeie probleme kan ontstaan ​​wanneer blokketting gebruik word. Dit is die probleme om inligting te verifieer wat by die blokketting gevoeg is, die spoed van die blokketting, die koste van transaksies, die probleem van data-uitruiling tussen slim kontrakte en die werklike wêreld, sowel as potensiële aanvalle deur indringers wat daarop gemik is om kripto-geldeenheidfondse van die gebruiker te steel. rekeninge.

Ons het ook kortliks oor mynbou gepraat as 'n proses om nuwe blokke by die blokketting te voeg. Mynbou is nodig om transaksies te voltooi. Diegene wat by mynbou betrokke is, verseker die prestasie van die blokketting en ontvang 'n beloning in kripto-geldeenheid hiervoor.

Les 2: Berei 'n lessenaaromgewing op Ubuntu en Debian voorBedryfstelsel keuse
Die installering van die nodige nutsprogramme
Installeer Geth en Swarm op Ubuntu
Installeer Geth en Swarm op Debian
Voorlopige voorbereiding
Laai tans die Go-verspreiding af
Opstel van omgewingsveranderlikes
Gaan die Go-weergawe na
Installeer Geth en Swarm
Ons skep 'n private blokketting
Berei tans die genesis.json-lêer voor
Skep 'n werkgids
Maak 'n rekening oop
Begin node-inisialisering
Node opstart opsies
Koppel aan ons webwerf
Mynboubestuur en balanskontrole
Skakel die Geth-konsole af
Lesopsomming

Les 3Kry jou Raspberry Pi 3 gereed
Installeer Rasberian
Installeer opdaterings
Aktiveer SSH-toegang
Stel 'n statiese IP-adres op
Die installering van die nodige nutsprogramme
Installeer Go
Laai tans die Go-verspreiding af
Opstel van omgewingsveranderlikes
Gaan die Go-weergawe na
Installeer Geth en Swarm
Ons skep 'n private blokketting
Rekening- en balanskontrole
Lesopsomming

Les 4Bekyk en voeg rekeninge by
Bekyk tans 'n lys rekeninge
Voeg 'n rekening by
geth rekening opdrag opsies
Rekeningwagwoorde
Kriptogeldeenheid in Ethereum
Ethereum geldeenheid
Bepaal die huidige saldo van ons rekeninge
Oordrag van fondse van een rekening na 'n ander
eth.sendTransaksiemetode
Bekyk die status van 'n transaksie
Transaksiekwitansie
Lesopsomming

Les 5Slim kontrakte in Ethereum
Slim kontrakuitvoering
Ethereum virtuele masjien
Geïntegreerde Ontwikkelingsomgewing Remix Solidity IDE
Samestelling begin
Oproep kontrak funksies
Publikasie van 'n kontrak in 'n privaat netwerk
Kry die ABI definisie en kontrak binêre
Publikasie van die kontrak
Kontroleer die status van 'n kontrakpubliseringstransaksie
Oproep kontrak funksies
solc bondel samesteller
Installeer solc in Ubuntu
Installeer solc op Debian
Stel die HelloSol-kontrak saam
Publikasie van die kontrak
Installeer solc op Rasberian
Lesopsomming

Les 6. Slim kontrakte en Node.jsInstalleer Node.js
Installasie in Ubuntu
Installasie op Debian
Die installering en loop van Ganache-cli
Installeer Web3
Solc installasie
Installeer Node.js op Rasberian
Skrip om 'n lys rekeninge in die konsole te kry
Skrip vir die publikasie van 'n slim kontrak
Hardloop en kry parameters
Kry bekendstellingsopsies
Kontraksamestelling
Rekening ontsluit
Laai ABI af en kontrak binêre kode
Skat die vereiste hoeveelheid gas
Skep 'n voorwerp en begin 'n kontrak publiseer
Die uitvoer van die kontrakpubliseringskrip
Oproep van slim kontrak funksies
Is dit moontlik om die gepubliseerde slim kontrak op te dateer
Werk met Web3 weergawe 1.0.x
Kry 'n lys van rekeninge
Publikasie van die kontrak
Oproep kontrak funksies
Oordrag van fondse van een rekening na 'n ander
Oordrag van fondse na die kontrakrekening
Opdatering van die HelloSol-slimkontrak
Skep 'n skrip om die rekeningsaldo te sien
Voeg 'n getBalance-funksie-oproep by die call_contract_get_promise.js-skrip
Aanvulling van die slimkontrakrekening
Lesopsomming

Les 7. Inleiding tot TruffelDie installering van die truffel
Skep 'n HelloSol-projek
Die skep van die projekgids en lêers
kontrakte gids
Gidsmigrasies
toets gids
truffel-config.js-lêer
Stel die HelloSol-kontrak saam
Begin om 'n kontrak te publiseer
Oproep van HelloSol-kontrak funksioneer in 'n truffel-prompt
Oproep van HelloSol-kontrakfunksies vanaf 'n JavaScript-skrip wat Node.js loop
Die installering van die truffel-kontrak module
Roep die kontrakfunksies getValue en getString
Roep kontrak funksies setValue en setString
Verandering van kontrak en herpublisering
Werk met Web3 weergawe 1.0.x
Maak veranderinge aan die HelloSol-slimkontrak
Skripte vir die oproep van kontrakmetodes
Toets in Truffel
Soliditeit toets
JavaScript-toets
Lesopsomming

Les 8Kontrak vir die aanleer van datatipes
Boole-datatipes
Ongetekende en getekende heelgetalle
Vastepuntnommers
adres
Veranderlikes van komplekse tipes
Vaste skikkings
Dinamiese skikkings
Opsomming
Strukture
woordeboeke
Lesopsomming

Les 9Publiseer 'n kontrak van Truffle na die Geth private netwerk
Berei 'n privaat netwerkgasheer voor
Kontrakvoorbereiding vir werk
Samestelling en migreer van die kontrak na die Truffle-netwerk
Loop tans LAN-migrasie
Kry artefakte Truffel
Publiseer 'n kontrak van Truffle aan die Rinkeby-toetsnet
Berei die Geth-node voor vir Rinkeby
Nodussinchronisasie
Voeg rekeninge by
Vul jou Rinkeby-rekening aan met Ether
Begin kontrakmigrasie na die Rinkeby-netwerk
Bekyk kontrakinligting op die Rinkeby-netwerk
Truffelkonsole vir Rinkeby Network
Makliker manier om kontrakfunksies te bel
Oproepkontrakmetodes met Node.js
Dra fondse oor tussen rekeninge in die Truffle-konsole vir Rinkby
Lesopsomming

Les 10Hoe Ethereum Swarm werk
Installeer en bestuur Swarm
Bewerkings op lêers en gidse
Laai 'n lêer op na Ethereum Swarm
Lees 'n lêer van Ethereum Swarm
Bekyk die manifest van 'n opgelaaide lêer
Laai dopgehou met subgidse
Lees 'n lêer uit 'n opgelaaide gids
Gebruik die Swarm Public Gateway
Roep Swarm vanaf Node.js-skrifte
Perl Net::Ethereum::Swarm module
Installeer die Net :: Ethereum :: Swarm module
Skryf en lees van data
Lesopsomming

Les 11Installeer Web3.py
Dateer en installeer vereiste pakkette
Die installering van die easysolc-module
Publiseer 'n kontrak met Web3.py
Kontraksamestelling
Koppel aan 'n verskaffer
Voer kontrakpublikasie uit
Stoor die kontrakadres en abi in 'n lêer
Die uitvoer van die kontrakpubliseringskrip
Oproepkontrakmetodes
Lees adres en kontrak abi van JSON-lêer
Koppel aan 'n verskaffer
Skep 'n kontrakvoorwerp
Oproepkontrakmetodes
Truffel en Web3.py
Lesopsomming

Les 12Kan 'n slim kontrak data van die buitewêreld vertrou
Oracles as Blockchain Inligting Tussengangers
Gegee bron
Kode om data uit 'n bron voor te stel
Oracle om die wisselkoers in die blokketting aan te teken
Kontrak USDRateOracle
Opdatering van die wisselkoers in 'n slim kontrak
Gebruik die Web Socket Verskaffer
Wag tans vir die RateUpdate-geleentheid
Hanteer die RateUpdate-geleentheid
Inisieer 'n data-opdatering in 'n slim kontrak
Lesopsomming

Bron: will.com

Voeg 'n opmerking