Mae'r llyfr “Creu contractau smart Solidity ar gyfer y blockchain Ethereum. Canllaw ymarferol"

Mae'r llyfr “Creu contractau smart Solidity ar gyfer y blockchain Ethereum. Canllaw ymarferol"
Am fwy na blwyddyn rwyf wedi bod yn gweithio ar y llyfr “Creating Solidity Smart Contracts for the Ethereum Blockchain. Canllaw Ymarferol", ac yn awr mae'r gwaith hwn wedi'i gwblhau, a'r llyfr cyhoeddedig ac ar gael yn Liters.

Rwy'n gobeithio y bydd fy llyfr yn eich helpu i ddechrau creu cysylltiadau smart Solidity yn gyflym a dosbarthu DApps ar gyfer y blockchain Ethereum. Mae'n cynnwys 12 gwers gyda thasgau ymarferol. Ar ôl eu cwblhau, bydd y darllenydd yn gallu creu eu nodau Ethereum lleol eu hunain, cyhoeddi contractau smart a galw eu dulliau, cyfnewid data rhwng y byd go iawn a chontractau smart gan ddefnyddio oraclau, a gweithio gyda rhwydwaith dadfygio prawf Rinkeby.

Mae'r llyfr wedi'i gyfeirio at bawb sydd â diddordeb mewn technolegau uwch ym maes blockchain ac sydd am ennill gwybodaeth yn gyflym a fydd yn caniatáu iddynt ymgymryd â gwaith diddorol ac addawol.

Isod fe welwch y tabl cynnwys a phennod gyntaf y llyfr (hefyd ymlaen Litrese darnau o'r llyfr ar gael). Gobeithiaf dderbyn adborth, sylwadau ac awgrymiadau. Byddaf yn ceisio cymryd hyn i gyd i ystyriaeth wrth baratoi’r rhifyn nesaf o’r llyfr.

Tabl cynnwysCyflwyniadMae ein llyfr wedi'i fwriadu ar gyfer y rhai sydd am ddeall nid yn unig egwyddorion y blockchain Ethereum, ond hefyd i ennill sgiliau ymarferol wrth greu DApps dosbarthedig yn yr iaith raglennu Solidity ar gyfer y rhwydwaith hwn.

Mae'n well nid yn unig darllen y llyfr hwn, ond gweithio gydag ef, gan gyflawni'r tasgau ymarferol a ddisgrifir yn y gwersi. I weithio, bydd angen cyfrifiadur lleol, gweinydd rhithwir neu gwmwl arnoch gyda Debian neu Ubuntu OS wedi'i osod. Gallwch hefyd ddefnyddio Raspberry Pi i gyflawni llawer o dasgau.

Yn y wers gyntaf Byddwn yn edrych ar egwyddorion gweithredu blockchain Ethereum a therminoleg sylfaenol, a byddwn hefyd yn siarad am ble y gellir defnyddio'r blockchain hwn.

Nod ail wers — creu nod blockchain Ethereum preifat ar gyfer gwaith pellach o fewn y cwrs hwn ar weinydd Ubuntu a Debian. Byddwn yn edrych ar nodweddion gosod cyfleustodau sylfaenol, megis geth, sy'n sicrhau gweithrediad ein nod blockchain, yn ogystal â'r daemon storio data datganoledig haid.

Trydedd wers yn eich dysgu sut i arbrofi gydag Ethereum ar ficrogyfrifiadur rhad Raspberry Pi. Byddwch yn gosod system weithredu Rasberian (OS) ar y Raspberry Pi, y cyfleustodau Geth sy'n pweru'r nod blockchain, a daemon storio data datganoledig Swarm.

Gwers pedwar yn ymroddedig i gyfrifon ac unedau cryptocurrency ar y rhwydwaith Ethereum, yn ogystal â ffyrdd o drosglwyddo arian o un cyfrif i'r llall o'r consol Geth. Byddwch yn dysgu sut i greu cyfrifon, cychwyn trafodion trosglwyddo arian, a chael statws trafodion a derbynneb.

Yn y bumed wers Byddwch yn dod yn gyfarwydd â chontractau smart ar rwydwaith Ethereum ac yn dysgu am eu gweithrediad gan beiriant rhithwir Ethereum.

Byddwch yn creu ac yn cyhoeddi eich contract smart cyntaf ar rwydwaith preifat Ethereum ac yn dysgu sut i alw ei swyddogaethau. I wneud hyn, byddwch yn defnyddio'r IDE Solidity Remix. Byddwch hefyd yn dysgu sut i osod a defnyddio'r casglwr swp solc.
Byddwn hefyd yn siarad am yr hyn a elwir yn Ryngwyneb Deuaidd Cais (ABI) ac yn eich dysgu sut i'w ddefnyddio.

Chweched wers yn ymroddedig i greu sgriptiau JavaScript sy'n rhedeg Node.js a pherfformio gweithrediadau gyda chontractau smart Solidity.

Byddwch yn gosod Node.js ar Ubuntu, Debian a Rasberian OS, yn ysgrifennu sgriptiau i gyhoeddi contract smart ar rwydwaith lleol Ethereum a galw ei swyddogaethau.

Yn ogystal, byddwch yn dysgu sut i drosglwyddo arian rhwng cyfrifon rheolaidd gan ddefnyddio sgriptiau, yn ogystal â'u credydu i gyfrifon contract smart.

Yn y seithfed wers Byddwch yn dysgu sut i osod a defnyddio'r fframwaith Truffle, sy'n boblogaidd ymhlith datblygwyr contractau smart Solidity. Byddwch yn dysgu sut i greu sgriptiau JavaScript sy'n galw swyddogaethau contract gan ddefnyddio'r modiwl contract tryffl, a phrofi'ch contract smart gan ddefnyddio Truffle.

Wythfed wers ymroddedig i fathau data Solidity. Byddwch yn ysgrifennu contractau smart sy'n gweithio gyda mathau o ddata fel cyfanrifau wedi'u llofnodi a heb eu llofnodi, rhifau wedi'u llofnodi, llinynnau, cyfeiriadau, newidynnau cymhleth, araeau, cyfrifiadau, strwythurau, a geiriaduron.

Yn y nawfed wers Byddwch un cam yn nes at greu contractau smart ar gyfer mainnet Ethereum. Byddwch yn dysgu sut i gyhoeddi contractau gan ddefnyddio Truffle ar rwydwaith preifat Geth, yn ogystal ag ar y testnet Rinkeby. Mae dadfygio contract smart ar rwydwaith Rinkeby yn ddefnyddiol iawn cyn ei gyhoeddi ar y prif rwydwaith - mae bron popeth yn real yno, ond am ddim.

Fel rhan o'r wers, byddwch yn creu nod rhwydwaith prawf Rinkeby, yn ei ariannu ag arian, ac yn cyhoeddi contract smart.

gwers 10 ymroddedig i Ethereum Swarm storio data dosbarthu. Trwy ddefnyddio storfa ddosbarthedig, rydych chi'n arbed ar storio llawer iawn o ddata ar y blockchain Ethereum.

Yn y tiwtorial hwn, byddwch yn creu storfa Swarm leol, yn ysgrifennu ac yn darllen gweithrediadau ar ffeiliau a chyfeiriaduron sy'n cynnwys ffeiliau. Nesaf, byddwch yn dysgu sut i weithio gyda'r porth Swarm cyhoeddus, ysgrifennu sgriptiau i gael mynediad i Swarm o Node.js, yn ogystal â defnyddio'r modiwl Perl Net::Ethereum::Swarm.

Amcan Gwers 11 — meistr yn gweithio gyda chontractau smart Solidity gan ddefnyddio'r iaith raglennu Python boblogaidd a'r fframwaith Web3.py. Byddwch yn gosod y fframwaith, yn ysgrifennu sgriptiau i lunio a chyhoeddi'r contract smart, ac yn galw ei swyddogaethau. Yn yr achos hwn, bydd Web3.py yn cael ei ddefnyddio ar ei ben ei hun ac ar y cyd ag amgylchedd datblygu integredig Truffle.

Yng ngwers 12 byddwch yn dysgu i drosglwyddo data rhwng contractau smart a'r byd go iawn gan ddefnyddio oraclau. Bydd hyn yn ddefnyddiol i chi dderbyn data o wefannau, dyfeisiau IoT, dyfeisiau amrywiol a synwyryddion, ac anfon data o gontractau smart i'r dyfeisiau hyn. Yn rhan ymarferol y wers, byddwch yn creu oracl a chontract smart sy'n derbyn y gyfradd gyfnewid gyfredol rhwng USD a rubles o wefan Banc Canolog Ffederasiwn Rwsia.

Gwers 1. Yn fyr am y blockchain a'r rhwydwaith EthereumPwrpas y wers: ymgyfarwyddo ag egwyddorion gweithredu blockchain Ethereum, ei feysydd cymhwysiad a therminoleg sylfaenol.
Tasgau ymarferol: heb ei gynnwys yn y wers hon.

Go brin bod datblygwr meddalwedd heddiw nad yw wedi clywed unrhyw beth am dechnoleg blockchain (Blockchain), cryptocurrencies (Cryptocurrency neu Arian Crypto), Bitcoin (Bitcoin), cynnig cychwynnol o ddarnau arian (ICO, cynnig arian cychwynnol), contractau smart (Contract Smart), yn ogystal â chysyniadau a thermau eraill sy'n ymwneud â blockchain.

Mae technoleg Blockchain yn agor marchnadoedd newydd ac yn creu swyddi i raglenwyr. Os ydych chi'n deall holl gymhlethdodau technolegau cryptocurrency a thechnolegau contract smart, yna ni ddylech chi gael problemau wrth gymhwyso'r wybodaeth hon yn ymarferol.

Rhaid dweud bod llawer o ddyfalu ynghylch cryptocurrencies a blockchains. Byddwn yn gadael trafodaethau o'r neilltu am newidiadau mewn cyfraddau arian cyfred digidol, creu pyramidiau, cymhlethdodau deddfwriaeth arian cyfred digidol, ac ati. Yn ein cwrs hyfforddi byddwn yn canolbwyntio'n bennaf ar yr agweddau technegol ar ddefnyddio contractau smart ar y blockchain Ethereum a datblygu cymwysiadau datganoledig (DApps) fel y'u gelwir.

Beth yw blockchain

Mae Blockchain (Block Chain) yn gadwyn o flociau data sy'n gysylltiedig â'i gilydd mewn ffordd benodol. Ar ddechrau'r gadwyn mae'r bloc cyntaf, a elwir yn bloc cynradd (bloc genesis) neu bloc genesis. Fe'i dilynir gan yr ail, yna'r trydydd ac yn y blaen.

Mae'r holl flociau data hyn yn cael eu dyblygu'n awtomatig ar nodau niferus y rhwydwaith blockchain. Mae hyn yn sicrhau storfa ddatganoledig o ddata blockchain.
Gallwch feddwl am system blockchain fel nifer fawr o nodau (gweinyddwyr corfforol neu rithwir) wedi'u cysylltu mewn rhwydwaith ac yn ailadrodd yr holl newidiadau yn y gadwyn o flociau data. Mae hwn fel cyfrifiadur aml-weinydd enfawr, a gall nodau cyfrifiadur o'r fath (gweinyddion) gael eu gwasgaru ledled y byd. A gallwch chi hefyd ychwanegu eich cyfrifiadur at y rhwydwaith blockchain.

Cronfa Ddata Dosbarthedig

Gellir meddwl am blockchain fel cronfa ddata ddosbarthedig sy'n cael ei hailadrodd ar draws holl nodau'r rhwydwaith blockchain. Mewn theori, bydd y blockchain yn weithredol cyn belled â bod o leiaf un nod yn gweithio, gan storio holl flociau'r blockchain.

Cofrestrfa Data Dosbarthedig

Gellir meddwl am Blockchain fel cyfriflyfr gwasgaredig o ddata a gweithrediadau (trafodion). Enw arall ar gofrestr o'r fath yw cyfriflyfr.

Gellir ychwanegu data at gyfriflyfr dosbarthedig, ond ni ellir ei newid na'i ddileu. Cyflawnir yr amhosibilrwydd hwn, yn arbennig, trwy ddefnyddio algorithmau cryptograffig, algorithmau arbennig ar gyfer ychwanegu blociau i'r gadwyn a storio data datganoledig.

Wrth ychwanegu blociau a chyflawni gweithrediadau (trafodion), defnyddir allweddi preifat a chyhoeddus. Maent yn cyfyngu ar ddefnyddwyr blockchain trwy roi mynediad iddynt i'w blociau data eu hunain yn unig.

Trafodiad

Mae Blockchain yn storio gwybodaeth am weithrediadau (trafodion) mewn blociau. Ar yr un pryd, ni ellir treiglo'n ôl na newid trafodion hen, sydd eisoes wedi'u cwblhau. Mae trafodion newydd yn cael eu storio mewn blociau newydd, ychwanegol.

Yn y modd hwn, gellir cofnodi'r hanes trafodion cyfan yn ddigyfnewid ar y blockchain. Felly, gellir defnyddio blockchain, er enghraifft, i storio trafodion bancio, gwybodaeth hawlfraint, hanes newidiadau mewn perchnogion eiddo, ac ati yn ddiogel.

Mae blockchain Ethereum yn cynnwys gwladwriaethau system fel y'u gelwir. Wrth i drafodion gael eu gweithredu, mae'r cyflwr yn newid o'r cyflwr cychwynnol i'r cyflwr presennol. Cofnodir trafodion mewn blociau.

Blockchains cyhoeddus a phreifat

Dylid nodi yma bod popeth a ddywedir yn wir yn unig ar gyfer yr hyn a elwir yn rwydweithiau blockchain cyhoeddus, na ellir eu rheoli gan unrhyw endid unigol neu gyfreithiol, asiantaeth y llywodraeth neu lywodraeth.
Mae rhwydweithiau blockchain preifat fel y'u gelwir o dan reolaeth lawn eu crewyr, ac mae unrhyw beth yn bosibl yno, er enghraifft, disodli holl flociau'r gadwyn yn llwyr.

Cymwysiadau ymarferol o blockchain

Ar gyfer beth all blockchain fod yn ddefnyddiol?

Yn fyr, mae blockchain yn caniatáu ichi gynnal trafodion (trafodion) yn ddiogel rhwng pobl neu gwmnïau nad ydynt yn ymddiried yn ei gilydd. Ni ellir ffugio na disodli data a gofnodwyd yn y blockchain (trafodion, data personol, dogfennau, tystysgrifau, contractau, anfonebau, ac ati) ar ôl eu cofnodi. Felly, yn seiliedig ar y blockchain, mae'n bosibl creu, er enghraifft, cofrestrfeydd dosbarthedig dibynadwy o wahanol fathau o ddogfennau.

Wrth gwrs, rydych chi'n gwybod bod systemau cryptocurrency yn cael eu creu ar sail cadwyni bloc, sydd wedi'u cynllunio i gymryd lle arian papur cyffredin. Gelwir arian papur hefyd yn fiat (o Fiat Money).
Mae Blockchain yn sicrhau storio ac ansymudedd trafodion a gofnodwyd mewn blociau, a dyna pam y gellir ei ddefnyddio i greu systemau arian cyfred digidol. Mae'n cynnwys hanes cyfan trosglwyddo arian crypto rhwng gwahanol ddefnyddwyr (cyfrifon), a gellir olrhain unrhyw weithrediad.

Er y gall trafodion o fewn systemau arian cyfred digidol fod yn ddienw, mae tynnu arian cyfred digidol yn ôl a'i gyfnewid am arian fiat fel arfer yn arwain at ddatgelu hunaniaeth perchennog yr ased arian cyfred digidol.

Mae contractau smart fel y'u gelwir, sef meddalwedd sy'n rhedeg ar rwydwaith Ethereum, yn caniatáu ichi awtomeiddio'r broses o gwblhau trafodion a monitro eu gweithrediad. Mae hyn yn arbennig o effeithiol os gwneir taliad am y trafodiad gan ddefnyddio'r arian cyfred digidol Ether.

Gellir defnyddio contractau smart Ethereum blockchain ac Ethereum a ysgrifennwyd yn yr iaith raglennu Solidity, er enghraifft, yn y meysydd canlynol:

  • dewis arall yn lle notarization o ddogfennau;
  • storio cofrestr o wrthrychau eiddo tiriog a gwybodaeth am drafodion gyda gwrthrychau eiddo tiriog;
  • storio gwybodaeth hawlfraint ar eiddo deallusol (llyfrau, delweddau, gweithiau cerddorol, ac ati);
  • creu systemau pleidleisio annibynnol;
  • cyllid a bancio;
  • logisteg ar raddfa ryngwladol, olrhain symudiad nwyddau;
  • storio data personol fel analog i system cerdyn adnabod;
  • trafodion diogel yn y maes masnachol;
  • storio canlyniadau archwiliadau meddygol, yn ogystal â hanes gweithdrefnau rhagnodedig

Problemau gyda blockchain

Ond, wrth gwrs, nid yw popeth mor syml ag y gallai ymddangos!

Mae yna broblemau gyda gwirio data cyn ei ychwanegu at y blockchain (er enghraifft, ydyn nhw'n ffug?), problemau gyda diogelwch meddalwedd system a chymhwysiad a ddefnyddir i weithio gyda'r blockchain, problemau gyda'r posibilrwydd o ddefnyddio dulliau peirianneg gymdeithasol i ddwyn mynediad i waledi cryptocurrency, ac ati .P.

Unwaith eto, os nad ydym yn sôn am blockchain cyhoeddus, y mae ei nodau wedi'u gwasgaru ledled y byd, ond am blockchain preifat sy'n perthyn i berson neu sefydliad, yna ni fydd lefel yr ymddiriedaeth yma yn uwch na lefel yr ymddiriedaeth. yn y person hwn neu'r sefydliad hwn.

Dylid hefyd ystyried bod y data a gofnodwyd yn y blockchain ar gael i bawb. Yn yr ystyr hwn, nid yw blockchain (yn enwedig cyhoeddus) yn addas ar gyfer storio gwybodaeth gyfrinachol. Fodd bynnag, gall y ffaith na ellir newid gwybodaeth ar y blockchain helpu i atal neu ymchwilio i wahanol fathau o weithgareddau twyllodrus.

Bydd ceisiadau datganoledig Ethereum yn gyfleus os ydych chi'n talu am eu defnyddio gyda cryptocurrency. Po fwyaf o bobl sy'n berchen ar arian cyfred digidol neu sy'n barod i'w brynu, y mwyaf poblogaidd y bydd DApps a chontractau smart yn dod.

Mae problemau cyffredin gyda blockchain sy'n rhwystro ei gymhwyso ymarferol yn cynnwys y cyflymder cyfyngedig y gellir ychwanegu blociau newydd a chost gymharol uchel trafodion. Ond mae technoleg yn y maes hwn yn datblygu'n weithredol, a'r gobaith yw y bydd problemau technegol yn cael eu datrys dros amser.

Problem arall yw bod contractau smart ar y blockchain Ethereum yn gweithredu mewn amgylchedd ynysig o beiriannau rhithwir, ac nid oes ganddynt fynediad at ddata'r byd go iawn. Yn benodol, ni all y rhaglen gontract smart ei hun ddarllen data o safleoedd neu unrhyw ddyfeisiau ffisegol (synwyryddion, cysylltiadau, ac ati), ac ni all hefyd allbwn data i unrhyw ddyfeisiau allanol. Byddwn yn trafod y broblem hon a ffyrdd i'w datrys mewn gwers wedi'i neilltuo i'r hyn a elwir yn Oracles - cyfryngwyr gwybodaeth contractau smart.

Mae cyfyngiadau cyfreithiol hefyd. Mewn rhai gwledydd, er enghraifft, mae'n cael ei wahardd i ddefnyddio cryptocurrency fel ffordd o dalu, ond gallwch fod yn berchen arno fel rhyw fath o ased digidol, fel gwarantau. Gellir prynu a gwerthu asedau o'r fath ar y gyfnewidfa. Mewn unrhyw achos, wrth greu prosiect sy'n gweithio gyda cryptocurrencies, mae angen i chi ymgyfarwyddo â deddfwriaeth y wlad y mae eich prosiect yn dod o dan ei hawdurdodaeth.

Sut mae cadwyn blockchain yn cael ei ffurfio

Fel y dywedasom eisoes, mae blockchain yn gadwyn syml o flociau data. Yn gyntaf, mae bloc cyntaf y gadwyn hon yn cael ei ffurfio, yna mae'r ail yn cael ei ychwanegu ato, ac yn y blaen. Tybir bod data trafodion yn cael ei storio mewn blociau, ac yn cael ei ychwanegu at y bloc mwyaf diweddar.

Yn Ffig. 1.1 dangoswyd y fersiwn symlaf o ddilyniant o flociau, lle mae'r bloc cyntaf yn cyfeirio at yr un nesaf.

Mae'r llyfr “Creu contractau smart Solidity ar gyfer y blockchain Ethereum. Canllaw ymarferol"
Reis. 1.1. Dilyniant syml o flociau

Gyda'r opsiwn hwn, fodd bynnag, mae'n hawdd iawn ymyrryd â chynnwys unrhyw floc yn y gadwyn, gan nad yw'r blociau'n cynnwys unrhyw wybodaeth i amddiffyn rhag newidiadau. O ystyried y bwriedir i'r blockchain gael ei ddefnyddio gan bobl a chwmnïau nad oes ymddiriedaeth rhyngddynt, gallwn ddod i'r casgliad nad yw'r dull hwn o storio data yn addas ar gyfer y blockchain.

Gadewch i ni ddechrau amddiffyn blociau rhag ffugio. Yn y cam cyntaf, byddwn yn ceisio amddiffyn pob bloc gyda siec (Ffig. 1.2).

Mae'r llyfr “Creu contractau smart Solidity ar gyfer y blockchain Ethereum. Canllaw ymarferol"
Reis. 1.2. Ychwanegu amddiffyniad ar gyfer y blociau hyn gyda siec

Nawr ni all ymosodwr newid y bloc yn syml, gan ei fod yn cynnwys siec data'r bloc. Bydd gwirio'r gwiriad yn dangos bod y data wedi'i newid.

I gyfrifo'r siec, gallwch ddefnyddio un o'r swyddogaethau stwnsio fel MD-5, SHA-1, SHA-256, ac ati. Mae ffwythiannau hash yn cyfrifo gwerth (er enghraifft, llinyn testun o hyd cyson) trwy berfformio gweithrediadau anwrthdroadwy ar floc o ddata. Mae'r gweithrediadau yn dibynnu ar y math o swyddogaeth hash.

Hyd yn oed os yw cynnwys y bloc data yn newid ychydig, bydd y gwerth hash hefyd yn newid. Trwy ddadansoddi gwerth ffwythiant hash, mae'n amhosibl ail-greu'r bloc data y cafodd ei gyfrifo ar ei gyfer.

A fydd amddiffyniad o'r fath yn ddigonol? Yn anffodus na.

Yn y cynllun hwn, mae'r checksum (swyddogaeth hash) yn amddiffyn blociau unigol yn unig, ond nid y blockchain cyfan. Gan wybod yr algorithm ar gyfer cyfrifo'r swyddogaeth hash, gall ymosodwr ddisodli cynnwys bloc yn hawdd. Hefyd, ni fydd unrhyw beth yn ei atal rhag tynnu blociau o'r gadwyn nac ychwanegu rhai newydd.

Er mwyn amddiffyn y gadwyn gyfan yn ei chyfanrwydd, gallwch hefyd storio ym mhob bloc, ynghyd â'r data, hash o'r data o'r bloc blaenorol (Ffig. 1.3).

Mae'r llyfr “Creu contractau smart Solidity ar gyfer y blockchain Ethereum. Canllaw ymarferol"
Reis. 1.3. Ychwanegu hash y bloc blaenorol i'r bloc data

Yn y cynllun hwn, er mwyn newid bloc, mae angen i chi ailgyfrifo swyddogaethau hash yr holl flociau dilynol. Mae'n ymddangos, beth yw'r broblem?

Mewn cadwyni bloc go iawn, mae anawsterau artiffisial hefyd yn cael eu creu ar gyfer ychwanegu blociau newydd - mae algorithmau sy'n gofyn am lawer o adnoddau cyfrifiadurol yn cael eu defnyddio. O ystyried, er mwyn gwneud newidiadau i floc, mae angen i chi ailgyfrifo nid yn unig yr un bloc hwn, ond yr holl rai dilynol, bydd hyn yn anodd iawn i'w wneud.

Gadewch inni gofio hefyd bod data blockchain yn cael ei storio (ei ddyblygu) ar nifer o nodau rhwydwaith, h.y. Defnyddir storfa ddatganoledig. Ac mae hyn yn ei gwneud hi'n llawer anoddach ffugio bloc, oherwydd rhaid gwneud newidiadau i bob nod rhwydwaith.

Gan fod blociau'n storio gwybodaeth am y bloc blaenorol, mae'n bosibl gwirio cynnwys yr holl flociau yn y gadwyn.

Ethereum blockchain

Mae blockchain Ethereum yn blatfform y gellir creu DApps dosbarthedig arno. Yn wahanol i lwyfannau eraill, mae Ethereum yn caniatáu defnyddio contractau smart fel y'u gelwir (contractau smart), a ysgrifennwyd yn yr iaith raglennu Solidity.

Crëwyd y platfform hwn yn 2013 gan Vitalik Buterin, sylfaenydd Bitcoin Magazine, a'i lansio yn 2015. Mae popeth y byddwn yn ei astudio neu'n ei wneud yn ein cwrs hyfforddi yn ymwneud yn benodol â chontractau smart Ethereum blockchain a Solidity.

Mwyngloddio neu sut mae blociau'n cael eu creu

Mae mwyngloddio yn broses eithaf cymhleth sy'n defnyddio llawer o adnoddau o ychwanegu blociau newydd i'r gadwyn blockchain, ac nid "mwyngloddio criptocurrency" o gwbl. Mwyngloddio yn sicrhau ymarferoldeb y blockchain, oherwydd y broses hon sy'n gyfrifol am ychwanegu trafodion at y blockchain Ethereum.

Gelwir pobl a sefydliadau sy'n ymwneud ag ychwanegu blociau yn glowyr.
Mae'r meddalwedd sy'n rhedeg ar y nodau glöwr yn ceisio dod o hyd i baramedr stwnsio o'r enw Nonce ar gyfer y bloc olaf i gael gwerth stwnsh penodol a bennir gan y rhwydwaith. Mae'r algorithm stwnsio Ethash a ddefnyddir yn Ethereum yn caniatáu ichi gael y gwerth Nonce dim ond trwy chwilio dilyniannol.

Os yw'r nod glöwr yn dod o hyd i'r gwerth Nonce cywir, yna dyma'r hyn a elwir yn brawf o waith (PoW, Proof-of-work). Yn yr achos hwn, os yw bloc yn cael ei ychwanegu at y rhwydwaith Ethereum, mae'r glöwr yn derbyn gwobr benodol yn arian cyfred y rhwydwaith - Ether. Ar adeg ysgrifennu, y wobr yw 5 Ether, ond bydd hyn yn cael ei leihau dros amser.

Felly, mae glowyr Ethereum yn sicrhau gweithrediad y rhwydwaith trwy ychwanegu blociau, ac yn derbyn arian cryptocurrency ar gyfer hyn. Fe welwch lawer o wybodaeth ar y rhyngrwyd am glowyr a mwyngloddio, ond byddwn yn canolbwyntio ar greu contractau Solidity a DApps ar rwydwaith Ethereum.

Crynodeb o'r wers

Yn y wers gyntaf, daethoch yn gyfarwydd â'r blockchain a dysgu ei fod yn gyfres o flociau a gyfansoddwyd yn arbennig. Ni ellir newid cynnwys blociau a gofnodwyd yn flaenorol, gan y byddai hyn yn gofyn am ailgyfrifo'r holl flociau dilynol ar lawer o nodau rhwydwaith, sy'n gofyn am lawer o adnoddau ac amser.

Gellir defnyddio Blockchain i storio canlyniadau trafodion. Ei brif ddiben yw trefnu trafodion diogel rhwng partïon (personau a sefydliadau) nad oes ymddiriedolaeth rhyngddynt. Fe wnaethoch chi ddysgu ym mha feysydd busnes penodol ac ym mha feysydd y gellir defnyddio contractau smart blockchain Ethereum a Solidity. Dyma'r sector bancio, cofrestru hawliau eiddo, dogfennau, ac ati.

Fe wnaethoch chi hefyd ddysgu y gall problemau amrywiol godi wrth ddefnyddio blockchain. Mae'r rhain yn broblemau gwirio gwybodaeth a ychwanegir at y blockchain, cyflymder y blockchain, cost trafodion, problem cyfnewid data rhwng contractau smart a'r byd go iawn, yn ogystal ag ymosodiadau posibl gan ymosodwyr gyda'r nod o ddwyn arian arian cyfred digidol o gyfrifon defnyddwyr .

Buom hefyd yn siarad yn fyr am fwyngloddio fel y broses o ychwanegu blociau newydd i'r blockchain. Mwyngloddio yn angenrheidiol i gwblhau trafodion. Mae'r rhai sy'n ymwneud â mwyngloddio yn sicrhau gweithrediad y blockchain ac yn derbyn gwobr mewn arian cyfred digidol am hyn.

Gwers 2. Paratoi amgylchedd gwaith yn Ubuntu a Debian OSDewis system weithredu
Gosod y cyfleustodau angenrheidiol
Gosod Geth a Swarm ar Ubuntu
Gosod Geth a Swarm ar Debian
Paratoi rhagarweiniol
Lawrlwytho'r dosbarthiad Go
Gosod newidynnau amgylchedd
Gwirio'r fersiwn Go
Gosod Geth a Swarm
Creu blockchain preifat
Paratoi'r ffeil genesis.json
Creu cyfeiriadur ar gyfer gwaith
Creu cyfrif
Dechrau cychwyniad y nod
Opsiynau Lansio Node
Cysylltwch â'n nod
Rheoli mwyngloddio a gwirio cydbwysedd
Cau consol Geth
Crynodeb o'r wers

Gwers 3. Paratoi'r amgylchedd gwaith ar Raspberry Pi 3Paratoi'r Raspberry Pi 3 ar gyfer gwaith
Gosod Rasberian
Gosod diweddariadau
Galluogi Mynediad SSH
Gosod Cyfeiriad IP Statig
Gosod y cyfleustodau angenrheidiol
Gosod mynd
Lawrlwytho'r dosbarthiad Go
Gosod newidynnau amgylchedd
Gwirio'r fersiwn Go
Gosod Geth a Swarm
Creu blockchain preifat
Gwirio'ch cyfrif a'ch balans
Crynodeb o'r wers

Gwers 4. Cyfrifon a throsglwyddo arian rhwng cyfrifonGweld ac ychwanegu cyfrifon
Gweld rhestr o gyfrifon
Ychwanegu cyfrif
geth opsiynau gorchymyn cyfrif
Cyfrineiriau cyfrif
Arian cyfred digidol yn Ethereum
Unedau Arian Ethereum
Rydym yn pennu balans cyfredol ein cyfrifon
Trosglwyddo arian o un cyfrif i'r llall
eth.sendTransaction dull
Gweld statws trafodiad
Derbynneb trafodiad
Crynodeb o'r wers

Gwers 5. Cyhoeddi eich contract cyntafContractau smart yn Ethereum
Cyflawni Contract Smart
Peiriant rhithwir Ethereum
Amgylchedd datblygu integredig Remix Solidity IDE
Rhedeg casglu
Swyddogaethau Contract Galw
Cyhoeddi contract ar rwydwaith preifat
Cawn y diffiniad ABI a chod deuaidd y contract
Cyhoeddi'r contract
Gwirio statws y trafodiad cyhoeddi contract
Swyddogaethau Contract Galw
Swp casglwr solc
Gosod solc ar Ubuntu
Gosod solc ar Debian
Llunio contract HelloSol
Cyhoeddi'r contract
Gosod solc ar Rasberian
Crynodeb o'r wers

Gwers 6. Contractau smart a Node.jsGosod Node.js
Gosod ar Ubuntu
Gosod ar Debian
Gosod a rhedeg Ganache-cli
Gosod Web3
Gosod solc
Gosod Node.js ar Rasberian
Sgript i gael rhestr o gyfrifon yn y consol
Sgript ar gyfer cyhoeddi contract smart
Lansio a chael paramedrau
Cael opsiynau lansio
Llunio Contract
Dadrwystro eich cyfrif
Llwytho ABI a chod deuaidd contract
Amcangyfrif y swm gofynnol o nwy
Creu gwrthrych a dechrau cyhoeddi contract
Rhedeg sgript cyhoeddi'r contract
Yn galw swyddogaethau contract smart
A yw'n bosibl diweddaru contract smart cyhoeddedig?
Gweithio gyda fersiwn Web3 1.0.x
Cael rhestr o gyfrifon
Cyhoeddi'r contract
Swyddogaethau Contract Galw
Trosglwyddo arian o un cyfrif i'r llall
Trosglwyddo arian i gyfrif contract
Diweddaru contract smart HelloSol
Creu sgript i weld balans eich cyfrif
Ychwanegu galwad i'r swyddogaeth getBalance i'r sgript call_contract_get_promise.js
Rydym yn ychwanegu at y cyfrif contract clyfar
Crynodeb o'r wers

Gwers 7. Cyflwyniad i DryffleGosod Truffle
Creu prosiect HelloSol
Creu Cyfeiriadur Prosiect a Ffeiliau
Cyfeiriadur contractau
Mudo catalog
Prawf cyfeiriadur
ffeil truffle-config.js
Llunio contract HelloSol
Dechrau cyhoeddi contract
Galw Swyddogaethau Contract HelloSol mewn Anogwr Tryffl
Yn galw swyddogaethau contract HelloSol o sgript JavaScript sy'n rhedeg Node.js
Gosod y modiwl truffle-contract
Mae galw'r swyddogaethau contract yn getValue a getString
Yn galw swyddogaethau contract setValue a setString
Addasu ac ailgyhoeddi contract
Gweithio gyda fersiwn Web3 1.0.x
Gwneud newidiadau i gontract smart HelloSol
Sgriptiau ar gyfer galw dulliau contract
Profi mewn Truffle
Prawf soletrwydd
Prawf JavaScript
Crynodeb o'r wers

Gwers 8. Mathau Data CadernidContract ar gyfer dysgu mathau o ddata
Mathau data Boole
Cyfanrifau heb eu harwyddo a chyfanrifau wedi'u llofnodi
Rhifau pwynt sefydlog
Cyfeiriad
Newidynnau o fathau cymhleth
Araeau Maint Sefydlog
Araeau deinamig
Trosglwyddiad
Strwythurau
Geiriaduron yn mapio
Crynodeb o'r wers

Gwers 9. Mudo contractau i'r rhwydwaith preifat ac i rwydwaith RinkebyCyhoeddi contract gan Truffle i rwydwaith preifat Geth
Paratoi nod rhwydwaith preifat
Paratoi contract ar gyfer gwaith
Llunio a mudo contract i'r rhwydwaith Truffle
Dechrau mudo rhwydwaith lleol
Cael arteffactau Truffle
Cyhoeddi contract gan Truffle i'r Rinkeby testnet
Paratoi nod Geth i weithio gyda Rinkeby
Cydamseru nodau
Ychwanegu cyfrifon
Ychwanegu at eich cyfrif Rinkeby ag ether
Lansio mudo contract i rwydwaith Rinkeby
Gweld gwybodaeth am gontractau ar rwydwaith Rinkeby
Consol Truffle ar gyfer Rhwydwaith Rinkeby
Ffordd haws o alw swyddogaethau contract
Galw dulliau contract gan ddefnyddio Node.js
Trosglwyddo arian rhwng cyfrifon yn y consol Truffle ar gyfer Rinkby
Crynodeb o'r wers

Gwers 10. Ethereum Swarm Decentralized Storio DataSut mae Ethereum Swarm yn gweithio?
Gosod a lansio Swarm
Gweithrediadau gyda ffeiliau a chyfeiriaduron
Lanlwytho Ffeil i Ethereum Swarm
Darllen ffeil o Ethereum Swarm
Gweld maniffest ffeil a uwchlwythwyd
Llwytho cyfeiriaduron gydag is-gyfeiriaduron
Darllen ffeil o gyfeiriadur wedi'i lawrlwytho
Defnyddio porth heidiau cyhoeddus
Cyrchu Swarm o sgriptiau Node.js
Perl Net::Ethereum::Moiwl haid
Gosod y Rhwydwaith ::Ethereum :: Modiwl Swarm
Ysgrifennu a darllen data
Crynodeb o'r wers

Gwers 11. Web3.py fframwaith ar gyfer gweithio gyda Ethereum yn PythonGosod Web3.py
Diweddaru a gosod pecynnau angenrheidiol
Gosod y modiwl easysolc
Cyhoeddi contract gan ddefnyddio Web3.py
Llunio Contract
Cysylltu â darparwr
Cyflawni cyhoeddiad contract
Arbed cyfeiriad y contract a'r abi mewn ffeil
Rhedeg sgript cyhoeddi'r contract
Dulliau Contract Galw
Darllen cyfeiriad ac abi contract o ffeil JSON
Cysylltu â darparwr
Creu Gwrthrych Contract
Dulliau Contract Galw
Truffle a Web3.py
Crynodeb o'r wers

Gwers 12. OraclauA all contract smart ymddiried data o'r byd y tu allan?
Oracles fel cyfryngwyr gwybodaeth blockchain
Ffynhonnell ddata
Cod i gynrychioli data o'r ffynhonnell
Oracle ar gyfer cofnodi'r gyfradd gyfnewid yn y blockchain
Contract USDrateOracle
Diweddaru'r gyfradd gyfnewid mewn contract smart
Defnyddio Darparwr Soced Gwe
Aros am ddigwyddiad RateUpdate
Ymdrin â'r digwyddiad RateUpdate
Cychwyn diweddariad data mewn contract smart
Crynodeb o'r wers

Ffynhonnell: hab.com

Ychwanegu sylw