Kitabu "Kuunda mikataba mahiri ya Solidity kwa blockchain ya Ethereum. Mwongozo wa vitendo"

Kitabu "Kuunda mikataba mahiri ya Solidity kwa blockchain ya Ethereum. Mwongozo wa vitendo"
Kwa zaidi ya mwaka mmoja nimekuwa nikifanya kazi kwenye kitabu "Kuunda Mikataba ya Smart Solidity kwa Ethereum Blockchain. Mwongozo wa Vitendo", na sasa kazi hii imekamilika, na kitabu iliyochapishwa na inapatikana katika Lita.

Natumai kitabu changu kitakusaidia kuanza haraka kuunda mawasiliano mahiri ya Solidity na kusambazwa kwa DApps kwa blockchain ya Ethereum. Inajumuisha masomo 12 yenye kazi za vitendo. Baada ya kuzikamilisha, msomaji ataweza kuunda nodi zao za ndani za Ethereum, kuchapisha mikataba mahiri na kupiga simu mbinu zao, kubadilishana data kati ya ulimwengu wa kweli na mikataba mahiri kwa kutumia maneno, na kufanya kazi na mtandao wa utatuzi wa mtihani wa Rinkeby.

Kitabu kinaelekezwa kwa kila mtu ambaye ana nia ya teknolojia za juu katika uwanja wa blockchain na anataka kupata haraka ujuzi ambao utawawezesha kushiriki katika kazi ya kuvutia na ya kuahidi.

Hapo chini utapata jedwali la yaliyomo na sura ya kwanza ya kitabu (pia Litrese vipande vya kitabu vinapatikana). Natumaini kupokea maoni, maoni na mapendekezo. Nitajaribu kuzingatia haya yote wakati wa kuandaa toleo linalofuata la kitabu.

Meza ya yaliyomoUtanguliziKitabu chetu kinakusudiwa kwa wale ambao wanataka sio tu kuelewa kanuni za blockchain ya Ethereum, lakini pia kupata ujuzi wa vitendo katika kuunda DApps zilizosambazwa katika lugha ya programu ya Solidity kwa mtandao huu.

Ni bora si tu kusoma kitabu hiki, lakini kufanya kazi nayo, kufanya kazi za vitendo zilizoelezwa katika masomo. Ili kufanya kazi, utahitaji kompyuta ya ndani, seva ya kawaida au ya wingu na Debian au Ubuntu OS imewekwa. Unaweza pia kutumia Raspberry Pi kufanya kazi nyingi.

Katika somo la kwanza Tutaangalia kanuni za uendeshaji wa blockchain ya Ethereum na istilahi ya msingi, na pia kuzungumza juu ya wapi blockchain hii inaweza kutumika.

Lengo somo la pili - tengeneza nodi ya blockchain ya kibinafsi ya Ethereum kwa kazi zaidi ndani ya kozi hii kwenye seva ya Ubuntu na Debian. Tutaangalia vipengele vya kusakinisha huduma za kimsingi, kama vile geth, ambayo inahakikisha utendakazi wa nodi yetu ya blockchain, pamoja na daemon ya hifadhi ya data iliyogatuliwa.

Somo la tatu itakufundisha jinsi ya kufanya majaribio na Ethereum kwenye kompyuta ndogo ya Raspberry Pi ya bei nafuu. Utasakinisha mfumo wa uendeshaji wa Rasberian (OS) kwenye Raspberry Pi, matumizi ya Geth ambayo yanawezesha nodi ya blockchain, na daemoni ya kuhifadhi data iliyogatuliwa ya Swarm.

Somo la nne imejitolea kwa akaunti na vitengo vya cryptocurrency kwenye mtandao wa Ethereum, pamoja na njia za kuhamisha fedha kutoka kwa akaunti moja hadi nyingine kutoka kwa console ya Geth. Utajifunza jinsi ya kuunda akaunti, kuanzisha miamala ya kuhamisha fedha, na kupata hali ya muamala na risiti.

Katika somo la tano Utafahamiana na mikataba mahiri kwenye mtandao wa Ethereum na ujifunze kuhusu kutekelezwa kwao na mashine pepe ya Ethereum.

Utaunda na kuchapisha mkataba wako wa kwanza wa smart kwenye mtandao wa kibinafsi wa Ethereum na ujifunze jinsi ya kuziita kazi zake. Kwa kufanya hivyo, utatumia Remix Solidity IDE. Pia utajifunza jinsi ya kusakinisha na kutumia mkusanyaji wa kundi la solc.
Pia tutazungumza kuhusu kinachojulikana kama Kiolesura cha Binary cha Maombi (ABI) na kukufundisha jinsi ya kuitumia.

Somo la sita imejitolea kuunda hati za JavaScript zinazoendesha Node.js na kufanya shughuli kwa mikataba mahiri ya Solidity.

Utaweka Node.js kwenye Ubuntu, Debian na Rasberian OS, kuandika maandiko ili kuchapisha mkataba wa smart kwenye mtandao wa ndani wa Ethereum na kuwaita kazi zake.

Kwa kuongezea, utajifunza jinsi ya kuhamisha pesa kati ya akaunti za kawaida kwa kutumia hati, na pia kuziweka kwenye akaunti mahiri za mikataba.

Katika somo la saba Utajifunza jinsi ya kusakinisha na kutumia mfumo wa Truffle, maarufu miongoni mwa wasanidi wa mikataba mahiri wa Solidity. Utajifunza jinsi ya kuunda hati za JavaScript zinazoita utendakazi wa mkataba kwa kutumia sehemu ya truffle-contract, na ujaribu mkataba wako mahiri kwa kutumia Truffle.

Somo la nane imejitolea kwa aina za data za Solidity. Utaandika mikataba mahiri inayofanya kazi na aina za data kama vile nambari kamili zilizotiwa saini na ambazo hazijatiwa saini, nambari zilizotiwa saini, mifuatano, anwani, viambajengo changamano, safu, hesabu, miundo na kamusi.

Katika somo la tisa Utakuwa hatua moja karibu ili kuunda mikataba mahiri ya mainnet ya Ethereum. Utajifunza jinsi ya kuchapisha kandarasi kwa kutumia Truffle kwenye mtandao wa faragha wa Geth, na pia kwenye Rinkeby testnet. Kurekebisha mkataba wa smart kwenye mtandao wa Rinkeby ni muhimu sana kabla ya kuchapisha kwenye mtandao kuu - karibu kila kitu ni kweli huko, lakini kwa bure.

Kama sehemu ya somo, utaunda nodi ya mtandao wa majaribio ya Rinkeby, uifadhili kwa fedha, na uchapishe mkataba mzuri.

somo 10 imejitolea kwa hifadhi ya data iliyosambazwa ya Ethereum Swarm. Kwa kutumia hifadhi iliyosambazwa, unaokoa kwa kuhifadhi kiasi kikubwa cha data kwenye blockchain ya Ethereum.

Katika somo hili, utaunda hifadhi ya karibu ya Swarm, kuandika na kusoma shughuli kwenye faili, na saraka za faili. Kisha, utajifunza jinsi ya kufanya kazi na lango la umma la Swarm, kuandika hati za kufikia Swarm kutoka Node.js, na pia kutumia Perl Net::Ethereum::Moduli ya Swarm.

Lengo la Somo la 11 - bwana anayefanya kazi na kandarasi mahiri za Solidity kwa kutumia lugha maarufu ya programu ya Python na mfumo wa Web3.py. Utasakinisha mfumo, kuandika hati za kukusanya na kuchapisha mkataba mahiri, na kupigia simu utendakazi wake. Katika kesi hii, Web3.py itatumika yenyewe na kwa kushirikiana na mazingira jumuishi ya maendeleo ya Truffle.

Katika somo la 12 utajifunza kuhamisha data kati ya mikataba mahiri na ulimwengu wa kweli kwa kutumia maneno. Hii itakuwa muhimu kwako kupokea data kutoka kwa Wavuti, vifaa vya IoT, vifaa na vitambuzi mbalimbali, na kutuma data kutoka kwa mikataba mahiri hadi kwenye vifaa hivi. Katika sehemu ya vitendo ya somo, utaunda oracle na mkataba mzuri ambao unapokea kiwango cha ubadilishaji wa sasa kati ya USD na rubles kutoka kwa tovuti ya Benki Kuu ya Shirikisho la Urusi.

Somo la 1. Kwa ufupi kuhusu blockchain na mtandao wa EthereumKusudi la somo: kufahamiana na kanuni za uendeshaji wa blockchain ya Ethereum, maeneo yake ya matumizi na istilahi za kimsingi.
Kazi za vitendo: haijashughulikiwa katika somo hili.

Hakuna msanidi programu leo ​​ambaye hajasikia chochote kuhusu teknolojia ya blockchain (Blockchain), fedha za siri (Cryptocurrency au Crypto Currency), Bitcoin (Bitcoin), sadaka ya awali ya sarafu (ICO, sadaka ya awali ya sarafu), mikataba ya smart (Smart Contract), pamoja na dhana na masharti mengine yanayohusiana na blockchain.

Teknolojia ya Blockchain inafungua masoko mapya na kutengeneza nafasi za kazi kwa watengeneza programu. Ikiwa unaelewa ugumu wote wa teknolojia ya cryptocurrency na teknolojia mahiri za mikataba, basi hupaswi kuwa na matatizo ya kutumia ujuzi huu kwa vitendo.

Ni lazima kusema kwamba kuna uvumi mwingi karibu na cryptocurrencies na blockchains. Tutaacha kando mijadala kuhusu mabadiliko katika viwango vya sarafu-fiche, uundaji wa piramidi, ugumu wa sheria ya cryptocurrency, n.k. Katika kozi yetu ya mafunzo tutazingatia hasa vipengele vya kiufundi vya utumiaji wa mikataba ya smart ya Ethereum blockchain (Ethereum, Ether) na maendeleo ya kile kinachoitwa maombi ya ugatuzi (Distributed Application, DApp).

blockchain ni nini

Blockchain (Block Chain) ni mlolongo wa vitalu vya data vilivyounganishwa kwa kila mmoja kwa njia fulani. Mwanzoni mwa mnyororo kuna kizuizi cha kwanza, kinachoitwa kizuizi cha msingi (kizuizi cha mwanzo) au kizuizi cha genesis. Inafuatwa na ya pili, kisha ya tatu na kadhalika.

Vitalu hivi vyote vya data vinanakiliwa kiotomatiki kwenye nodi nyingi za mtandao wa blockchain. Hii inahakikisha uhifadhi wa madaraka wa data ya blockchain.
Unaweza kufikiria mfumo wa blockchain kama idadi kubwa ya nodi (seva za kimwili au pepe) zilizounganishwa kwenye mtandao na kuiga mabadiliko yote katika mlolongo wa vizuizi vya data. Hii ni kama kompyuta kubwa ya seva nyingi, na nodi za kompyuta kama hiyo (seva) zinaweza kutawanyika kote ulimwenguni. Na wewe pia unaweza kuongeza kompyuta yako kwenye mtandao wa blockchain.

Hifadhidata Iliyosambazwa

Blockchain inaweza kuzingatiwa kama hifadhidata iliyosambazwa ambayo inakiliwa kwenye nodi zote za mtandao wa blockchain. Kwa nadharia, blockchain itafanya kazi mradi angalau nodi moja inafanya kazi, kuhifadhi vizuizi vyote vya blockchain.

Sajili ya Data Iliyosambazwa

Blockchain inaweza kuzingatiwa kama leja iliyosambazwa ya data na shughuli (shughuli). Jina lingine la rejista kama hiyo ni leja.

Data inaweza kuongezwa kwenye leja iliyosambazwa, lakini haiwezi kubadilishwa au kufutwa. Haiwezekani hii inafanikiwa, haswa, kwa kutumia algorithms ya kriptografia, algorithms maalum ya kuongeza vizuizi kwenye mnyororo na uhifadhi wa data uliowekwa madarakani.

Wakati wa kuongeza vitalu na kufanya shughuli (shughuli), funguo za kibinafsi na za umma hutumiwa. Wanazuia watumiaji wa blockchain kwa kuwapa ufikiaji wa data zao wenyewe.

Shughuli

Blockchain huhifadhi habari kuhusu shughuli (shughuli) katika vitalu. Wakati huo huo, shughuli za zamani, zilizokamilika tayari haziwezi kurudishwa au kubadilishwa. Shughuli mpya zimehifadhiwa katika vizuizi vipya vilivyoongezwa.

Kwa njia hii, historia nzima ya shughuli inaweza kurekodiwa bila kubadilika kwenye blockchain. Kwa hiyo, blockchain inaweza kutumika, kwa mfano, kuhifadhi salama shughuli za benki, maelezo ya hakimiliki, historia ya mabadiliko ya wamiliki wa mali, nk.

Blockchain ya Ethereum ina kinachojulikana majimbo ya mfumo. Shughuli zinapotekelezwa, hali hubadilika kutoka hali ya awali hadi hali ya sasa. Shughuli zimeandikwa katika vitalu.

Blockchains za umma na za kibinafsi

Ikumbukwe hapa kwamba kila kitu kilichosemwa ni kweli tu kwa mitandao inayoitwa blockchain ya umma, ambayo haiwezi kudhibitiwa na mtu yeyote au taasisi ya kisheria, wakala wa serikali au serikali.
Kinachojulikana mitandao ya blockchain ya kibinafsi iko chini ya udhibiti kamili wa waumbaji wao, na chochote kinawezekana huko, kwa mfano, uingizwaji kamili wa vitalu vyote vya mlolongo.

Matumizi ya vitendo ya blockchain

Blockchain inaweza kuwa muhimu kwa nini?

Kwa kifupi, blockchain hukuruhusu kufanya shughuli (shughuli) kwa usalama kati ya watu au kampuni ambazo haziaminiani. Data iliyorekodiwa kwenye blockchain (shughuli, data ya kibinafsi, hati, cheti, mikataba, ankara, nk) haiwezi kupotoshwa au kubadilishwa baada ya kurekodi. Kwa hiyo, kwa kuzingatia blockchain, inawezekana kuunda, kwa mfano, rejista za kusambazwa zinazoaminika za aina mbalimbali za nyaraka.

Bila shaka, unajua kwamba mifumo ya cryptocurrency inaundwa kwa misingi ya blockchains, iliyoundwa kuchukua nafasi ya fedha za karatasi za kawaida. Pesa za karatasi pia huitwa fiat (kutoka Fiat Money).
Blockchain inahakikisha uhifadhi na kutobadilika kwa miamala iliyorekodiwa kwenye vitalu, ndiyo sababu inaweza kutumika kuunda mifumo ya cryptocurrency. Ina historia nzima ya uhamisho wa fedha za crypto kati ya watumiaji tofauti (akaunti), na uendeshaji wowote unaweza kufuatiliwa.

Ingawa miamala ndani ya mifumo ya sarafu-fiche haiwezi kujulikana, kutoa pesa za siri na kuzibadilisha kwa pesa za fiat kwa kawaida husababisha kufichua utambulisho wa mmiliki wa mali ya cryptocurrency.

Kinachojulikana mikataba ya smart , ambayo ni programu inayoendesha kwenye mtandao wa Ethereum, inakuwezesha automatiska mchakato wa kuhitimisha shughuli na ufuatiliaji wa utekelezaji wao. Hii inafaa hasa ikiwa malipo ya muamala yatafanywa kwa kutumia sarafu ya crypto ya Ether.

Mikataba ya Ethereum blockchain na Ethereum iliyoandikwa kwa lugha ya programu ya Solidity inaweza kutumika, kwa mfano, katika maeneo yafuatayo:

  • mbadala kwa notarization ya hati;
  • uhifadhi wa rejista ya vitu vya mali isiyohamishika na habari kuhusu shughuli na vitu vya mali isiyohamishika;
  • uhifadhi wa habari za hakimiliki juu ya mali ya kiakili (vitabu, picha, kazi za muziki, nk);
  • kuunda mifumo huru ya upigaji kura;
  • fedha na benki;
  • vifaa kwa kiwango cha kimataifa, kufuatilia harakati za bidhaa;
  • uhifadhi wa data ya kibinafsi kama analog kwa mfumo wa kitambulisho;
  • salama shughuli katika uwanja wa kibiashara;
  • kuhifadhi matokeo ya uchunguzi wa matibabu, pamoja na historia ya taratibu zilizowekwa

Matatizo na blockchain

Lakini, bila shaka, si kila kitu ni rahisi kama inaweza kuonekana!

Kuna shida na uthibitishaji wa data kabla ya kuiongeza kwenye blockchain (kwa mfano, ni bandia?), Shida na usalama wa mfumo na programu ya programu inayotumika kufanya kazi na blockchain, shida na uwezekano wa kutumia njia za uhandisi za kijamii kuiba ufikiaji. kwa pochi za cryptocurrency, nk. .P.

Tena, ikiwa hatuzungumzii juu ya blockchain ya umma, nodi ambazo zimetawanyika kote ulimwenguni, lakini juu ya blockchain ya kibinafsi ya mtu au shirika, basi kiwango cha uaminifu hapa hakitakuwa cha juu kuliko kiwango cha uaminifu. katika mtu huyu au shirika hili.

Inapaswa pia kuzingatiwa kuwa data iliyorekodi katika blockchain inapatikana kwa kila mtu. Kwa maana hii, blockchain (hasa ya umma) haifai kwa kuhifadhi habari za siri. Hata hivyo, ukweli kwamba taarifa juu ya blockchain haiwezi kubadilishwa inaweza kusaidia kuzuia au kuchunguza aina mbalimbali za shughuli za ulaghai.

Ethereum maombi yaliyogatuliwa yatakuwa rahisi ikiwa utalipia matumizi yao na cryptocurrency. Kadiri watu wengi wanaomiliki sarafu-fiche au wako tayari kuinunua, ndivyo DApp na mikataba mahiri zitakavyokuwa maarufu zaidi.

Matatizo ya kawaida na blockchain ambayo yanazuia utumiaji wake wa vitendo ni pamoja na kasi ndogo ambayo vitalu vipya vinaweza kuongezwa na gharama ya juu ya shughuli. Lakini teknolojia katika eneo hili inaendelea kikamilifu, na kuna matumaini kwamba matatizo ya kiufundi yatatatuliwa kwa muda.

Tatizo jingine ni kwamba mikataba ya smart kwenye blockchain ya Ethereum inafanya kazi katika mazingira ya pekee ya mashine za kawaida, na hawana upatikanaji wa data halisi ya ulimwengu. Hasa, mpango mahiri wa mkataba hauwezi yenyewe kusoma data kutoka kwa tovuti au vifaa vyovyote halisi (sensorer, waasiliani, n.k.), na pia haiwezi kutoa data kwa vifaa vyovyote vya nje. Tutajadili tatizo hili na njia za kulitatua katika somo lililotolewa kwa kinachojulikana kama Oracles - waamuzi wa habari wa mikataba ya smart.

Pia kuna vikwazo vya kisheria. Katika baadhi ya nchi, kwa mfano, ni marufuku kutumia cryptocurrency kama njia ya malipo, lakini unaweza kuimiliki kama aina ya mali ya kidijitali, kama vile dhamana. Mali hiyo inaweza kununuliwa na kuuzwa kwa kubadilishana. Kwa hali yoyote, wakati wa kuunda mradi unaofanya kazi na fedha za crypto, unahitaji kujitambulisha na sheria ya nchi ambayo mradi wako unaanguka chini ya mamlaka yake.

Jinsi mnyororo wa blockchain unaundwa

Kama tulivyokwisha sema, blockchain ni mlolongo rahisi wa vizuizi vya data. Kwanza, kizuizi cha kwanza cha mnyororo huu kinaundwa, kisha cha pili kinaongezwa kwake, na kadhalika. Data ya muamala inadhaniwa kuhifadhiwa kwenye vizuizi, na huongezwa kwenye kizuizi cha hivi karibuni.

Katika Mtini. 1.1 tulionyesha toleo rahisi zaidi la mlolongo wa vitalu, ambapo block ya kwanza inahusu ijayo.

Kitabu "Kuunda mikataba mahiri ya Solidity kwa blockchain ya Ethereum. Mwongozo wa vitendo"
Mchele. 1.1. Mlolongo rahisi wa vitalu

Kwa chaguo hili, hata hivyo, ni rahisi sana kupotosha yaliyomo ya kizuizi chochote kwenye mlolongo, kwani vitalu havi na habari yoyote ya kulinda dhidi ya mabadiliko. Kwa kuzingatia kwamba blockchain inalenga kutumiwa na watu na makampuni ambayo hakuna uaminifu kati yao, tunaweza kuhitimisha kuwa njia hii ya kuhifadhi data haifai kwa blockchain.

Wacha tuanze kulinda vitalu kutoka kwa bidhaa bandia. Katika hatua ya kwanza, tutajaribu kulinda kila block na checksum (Mchoro 1.2).

Kitabu "Kuunda mikataba mahiri ya Solidity kwa blockchain ya Ethereum. Mwongozo wa vitendo"
Mchele. 1.2. Kuongeza ulinzi kwa vitalu hivi kwa checksum

Sasa mshambuliaji hawezi kubadilisha tu kizuizi, kwa kuwa kina cheki ya data ya kuzuia. Kuangalia cheki kutaonyesha kuwa data imebadilishwa.

Ili kukokotoa checksum, unaweza kutumia mojawapo ya vitendakazi vya hashing kama vile MD-5, SHA-1, SHA-256, nk. Vitendaji vya hashi hukusanya thamani (kwa mfano, mfuatano wa maandishi wa urefu usiobadilika) kwa kufanya shughuli zisizoweza kutenduliwa kwenye kizuizi cha data. Uendeshaji hutegemea aina ya kazi ya heshi.

Hata kama yaliyomo kwenye kizuizi cha data yatabadilika kidogo, thamani ya hashi pia itabadilika. Kwa kuchambua thamani ya kazi ya heshi, haiwezekani kuunda tena kizuizi cha data ambacho kilihesabiwa.

Je, ulinzi huo utatosha? Kwa bahati mbaya hapana.

Katika mpango huu, checksum (kazi ya hash) inalinda tu vitalu vya mtu binafsi, lakini sio blockchain nzima. Kujua algorithm ya kuhesabu kazi ya hashi, mshambuliaji anaweza kuchukua nafasi ya yaliyomo kwenye kizuizi kwa urahisi. Pia, hakuna kitu kitakachomzuia kuondoa vitalu kutoka kwa mlolongo au kuongeza mpya.

Ili kulinda mlolongo mzima kwa ujumla, unaweza pia kuhifadhi katika kila kizuizi, pamoja na data, hash ya data kutoka kwenye kizuizi cha awali (Mchoro 1.3).

Kitabu "Kuunda mikataba mahiri ya Solidity kwa blockchain ya Ethereum. Mwongozo wa vitendo"
Mchele. 1.3. Ongeza heshi ya kizuizi kilichotangulia kwenye kizuizi cha data

Katika mpango huu, ili kubadilisha kizuizi, unahitaji kuhesabu tena kazi za hashi za vizuizi vyote vinavyofuata. Inaonekana, shida ni nini?

Katika blockchains halisi, shida za bandia huundwa kwa kuongeza vizuizi vipya - algoriti zinazohitaji rasilimali nyingi za kompyuta hutumiwa. Kwa kuzingatia kwamba ili kufanya mabadiliko kwenye kizuizi, unahitaji kuhesabu tena sio kizuizi hiki kimoja tu, lakini zote zinazofuata, hii itakuwa ngumu sana kufanya.

Tukumbuke pia kwamba data ya blockchain imehifadhiwa (duplicated) kwenye nodes nyingi za mtandao, i.e. Hifadhi ya ugatuzi hutumiwa. Na hii inafanya kuwa ngumu zaidi kudanganya kizuizi, kwa sababu mabadiliko lazima yafanywe kwa nodi zote za mtandao.

Kwa kuwa vitalu huhifadhi habari kuhusu kizuizi kilichopita, inawezekana kuangalia yaliyomo kwenye vitalu vyote kwenye mlolongo.

Ethereum blockchain

Ethereum blockchain ni jukwaa ambalo DApps zilizosambazwa zinaweza kuundwa. Tofauti na majukwaa mengine, Ethereum inaruhusu matumizi ya kinachojulikana mikataba ya smart (mikataba ya smart), iliyoandikwa katika lugha ya programu ya Solidity.

Jukwaa hili liliundwa mnamo 2013 na Vitalik Buterin, mwanzilishi wa Jarida la Bitcoin, na kuzinduliwa mnamo 2015. Kila kitu tutakachosoma au kufanya katika kozi yetu ya mafunzo kinahusiana haswa na kandarasi mahiri za blockchain na Solidity ya Ethereum.

Uchimbaji madini au jinsi vitalu vinaundwa

Uchimbaji madini ni mchakato mgumu na unaohitaji rasilimali nyingi zaidi wa kuongeza vizuizi vipya kwenye mnyororo wa blockchain, na sio "uchimbaji wa cryptocurrency." Madini huhakikisha utendaji wa blockchain, kwa sababu ni mchakato huu unaohusika na kuongeza shughuli kwenye blockchain ya Ethereum.

Watu na mashirika yanayohusika katika kuongeza vitalu huitwa wachimbaji.
Programu inayoendesha kwenye nodi za wachimbaji hujaribu kupata kigezo cha hashing kinachoitwa Nonce kwa kizuizi cha mwisho ili kupata thamani maalum ya hashi iliyoainishwa na mtandao. Algorithm ya Ethash hashing inayotumiwa katika Ethereum hukuruhusu kupata thamani ya Nonce kupitia utafutaji unaofuatana pekee.

Ikiwa nodi ya mchimbaji hupata thamani sahihi ya Nonce, basi hii ndiyo inayoitwa uthibitisho wa kazi (PoW, Uthibitisho-wa-kazi). Katika kesi hiyo, ikiwa kizuizi kinaongezwa kwenye mtandao wa Ethereum, mchimbaji hupokea malipo fulani katika sarafu ya mtandao - Ether. Wakati wa kuandika, malipo ni 5 Ether, lakini hii itapunguzwa kwa muda.

Kwa hivyo, wachimbaji wa Ethereum wanahakikisha uendeshaji wa mtandao kwa kuongeza vizuizi, na kupokea pesa za cryptocurrency kwa hili. Kuna habari nyingi kwenye mtandao kuhusu wachimbaji na madini, lakini tutazingatia kuunda mikataba ya Solidity na DApps kwenye mtandao wa Ethereum.

Muhtasari wa somo

Katika somo la kwanza, ulifahamiana na blockchain na ukajifunza kuwa ni mlolongo maalum wa vitalu. Yaliyomo kwenye vizuizi vilivyorekodiwa hapo awali hayawezi kubadilishwa, kwani hii itahitaji kuhesabu tena vizuizi vyote vilivyofuata kwenye nodi nyingi za mtandao, ambayo inahitaji rasilimali nyingi na wakati.

Blockchain inaweza kutumika kuhifadhi matokeo ya shughuli. Kusudi lake kuu ni kuandaa shughuli salama kati ya wahusika (watu na mashirika) ambao hakuna uaminifu kati yao. Ulijifunza katika maeneo mahususi ya biashara na katika maeneo ambayo mikataba ya Ethereum blockchain na Solidity smart inaweza kutumika. Hii ni sekta ya benki, usajili wa haki za mali, nyaraka, nk.

Pia umejifunza kuwa matatizo mbalimbali yanaweza kutokea wakati wa kutumia blockchain. Haya ni matatizo ya kuthibitisha taarifa zilizoongezwa kwenye blockchain, kasi ya blockchain, gharama ya shughuli, tatizo la kubadilishana data kati ya mikataba ya smart na ulimwengu wa kweli, pamoja na mashambulizi ya uwezekano wa washambuliaji kwa lengo la kuiba fedha za cryptocurrency kutoka kwa akaunti za watumiaji. .

Pia tulizungumza kwa ufupi kuhusu uchimbaji madini kama mchakato wa kuongeza vitalu vipya kwenye blockchain. Uchimbaji madini ni muhimu ili kukamilisha shughuli. Wale wanaohusika katika uchimbaji madini huhakikisha utendakazi wa blockchain na kupokea tuzo katika cryptocurrency kwa hili.

Somo la 2. Kuandaa mazingira ya kufanya kazi katika Ubuntu na Debian OSKuchagua mfumo wa uendeshaji
Ufungaji wa huduma muhimu
Kufunga Geth na Swarm kwenye Ubuntu
Kufunga Geth na Swarm kwenye Debian
Maandalizi ya awali
Inapakua usambazaji wa Go
Kuweka vigezo vya mazingira
Inakagua toleo la Go
Kufunga Geth na Swarm
Kuunda blockchain ya kibinafsi
Inatayarisha faili ya genesis.json
Unda saraka ya kazi
Fungua akaunti
Kuanzisha uanzishaji wa nodi
Chaguzi za Uzinduzi wa Nodi
Unganisha kwenye nodi yetu
Usimamizi wa madini na ukaguzi wa usawa
Inazima kiweko cha Geth
Muhtasari wa somo

Somo la 3. Kuandaa mazingira ya kazi kwenye Raspberry Pi 3Kuandaa Raspberry Pi 3 kwa kazi
Kufunga Rasberian
Inasakinisha masasisho
Inawezesha Ufikiaji wa SSH
Kuweka Anwani ya IP tuli
Ufungaji wa huduma muhimu
Inasakinisha Go
Inapakua usambazaji wa Go
Kuweka vigezo vya mazingira
Inakagua toleo la Go
Kufunga Geth na Swarm
Kuunda blockchain ya kibinafsi
Kuangalia akaunti yako na salio
Muhtasari wa somo

Somo la 4. Akaunti na kuhamisha fedha kati ya akauntiTazama na uongeze akaunti
Tazama orodha ya akaunti
Kuongeza akaunti
chaguzi za amri ya akaunti ya geth
Nywila za akaunti
Cryptocurrency katika Ethereum
Vitengo vya Sarafu ya Ethereum
Tunaamua salio la sasa la akaunti zetu
Hamisha fedha kutoka akaunti moja hadi nyingine
eth.sendTransaction Method
Tazama hali ya muamala
Risiti ya muamala
Muhtasari wa somo

Somo la 5. Kuchapisha mkataba wako wa kwanzaMikataba ya Smart katika Ethereum
Utekelezaji wa Mkataba wa Smart
Ethereum Virtual Machine
Mazingira jumuishi ya maendeleo Remix Solidity IDE
Mkusanyiko wa kukimbia
Wito Kazi za Mkataba
Kuchapisha mkataba kwenye mtandao wa kibinafsi
Kupata ufafanuzi wa ABI na msimbo wa binary wa mkataba
Uchapishaji wa mkataba
Kuangalia mkataba kuchapisha hali ya muamala
Wito Kazi za Mkataba
Kundi la mkusanyaji solc
Kufunga solc kwenye Ubuntu
Inasakinisha solc kwenye Debian
Kuandaa mkataba wa HelloSol
Uchapishaji wa mkataba
Kufunga solc kwenye Rasberian
Muhtasari wa somo

Somo la 6. Mikataba mahiri na Node.jsInasakinisha Node.js
Ufungaji kwenye Ubuntu
Ufungaji kwenye Debian
Kufunga na kuendesha Ganache-cli
Ufungaji wa Web3
Inaweka solc
Inasakinisha Node.js kwenye Rasberian
Hati ili kupata orodha ya akaunti kwenye koni
Hati ya kuchapisha mkataba mahiri
Zindua na upate vigezo
Kupata chaguzi za uzinduzi
Mkusanyiko wa Mkataba
Kufungua akaunti yako
Inapakia ABI na msimbo wa binary wa mkataba
Kukadiria kiasi kinachohitajika cha gesi
Unda kitu na uanze kuchapisha mkataba
Kuendesha hati ya uchapishaji wa mkataba
Kuita kazi za mkataba mahiri
Je, inawezekana kusasisha mkataba mahiri uliochapishwa?
Kufanya kazi na toleo la Web3 1.0.x
Kupata orodha ya akaunti
Uchapishaji wa mkataba
Wito Kazi za Mkataba
Hamisha fedha kutoka akaunti moja hadi nyingine
Kuhamisha fedha kwa akaunti ya mkataba
Inasasisha mkataba mahiri wa HelloSol
Unda hati ili kuona salio la akaunti yako
Ongeza simu kwenye kipengele cha kupataBalance kwenye hati ya call_contract_get_promise.js
Tunajaza akaunti ya mkataba mahiri
Muhtasari wa somo

Somo la 7. Utangulizi wa TruffleInaweka Truffle
Unda mradi wa HelloSol
Kuunda Saraka ya Mradi na Faili
Saraka ya mikataba
Uhamaji wa katalogi
Mtihani wa saraka
faili ya truffle-config.js
Kuandaa mkataba wa HelloSol
Anza kuchapisha mkataba
Kupigia simu Kazi za Mkataba wa HelloSol kwa haraka ya Truffle
Kupigia simu HelloSol hufanya kazi za mkataba kutoka kwa hati ya JavaScript inayoendesha Node.js
Kufunga moduli ya truffle-mkataba
Kuita kazi za mkataba getValue na GetString
Kupiga kazi za mkataba setValue na setString
Marekebisho ya mkataba na uchapishaji upya
Kufanya kazi na toleo la Web3 1.0.x
Kufanya mabadiliko kwenye mkataba mahiri wa HelloSol
Hati za kupiga njia za mkataba
Mtihani katika Truffle
Mtihani wa Mshikamano
Jaribio la JavaScript
Muhtasari wa somo

Somo la 8. Aina za Data za MshikamanoMkataba wa aina za data za kujifunza
Aina za data za Boolean
Nambari kamili na nambari kamili ambazo hazijatiwa saini
Nambari za uhakika zisizohamishika
Anuani
Vigezo vya aina ngumu
Safu za Ukubwa Zisizohamishika
Safu zenye nguvu
Uhamisho
Miundo
Ramani ya kamusi
Muhtasari wa somo

Somo la 9. Uhamiaji wa mikataba kwa mtandao wa kibinafsi na mtandao wa RinkebyKuchapisha mkataba kutoka kwa Truffle hadi kwa mtandao wa kibinafsi wa Geth
Kuandaa nodi ya mtandao wa kibinafsi
Kuandaa mkataba wa kazi
Kukusanya na kuhamisha mkataba kwa mtandao wa Truffle
Inaanza geth ya uhamiaji wa mtandao wa ndani
Kupata mabaki ya Truffle
Kuchapisha mkataba kutoka Truffle hadi Rinkeby testnet
Kuandaa nodi ya Geth kufanya kazi na Rinkeby
Usawazishaji wa nodi
Kuongeza akaunti
Kuongeza akaunti yako ya Rinkeby na etha
Inazindua uhamishaji wa mkataba kwenye mtandao wa Rinkeby
Kuangalia maelezo ya mkataba kwenye mtandao wa Rinkeby
Dashibodi ya Truffle ya Mtandao wa Rinkeby
Njia rahisi zaidi ya kuita kazi za mkataba
Kupiga simu njia za mkataba kwa kutumia Node.js
Hamisha fedha kati ya akaunti katika kiweko cha Truffle cha Rinkby
Muhtasari wa somo

Somo la 10. Hifadhi ya Data ya Ethereum SwarmJe, Ethereum Swarm inafanya kazi gani?
Kufunga na kuzindua Swarm
Uendeshaji na faili na saraka
Kupakia faili kwa Ethereum Swarm
Kusoma faili kutoka kwa Ethereum Swarm
Tazama faili ya maelezo ya faili iliyopakiwa
Inapakia saraka zilizo na saraka ndogo
Kusoma faili kutoka kwa saraka iliyopakuliwa
Kutumia lango la umma la Swarm
Kufikia Swarm kutoka kwa hati za Node.js
Perl Net::Ethereum::Moduli ya Swarm
Inasakinisha Net::Ethereum::Moduli ya Swarm
Kuandika na kusoma data
Muhtasari wa somo

Somo la 11. Mfumo wa Web3.py wa kufanya kazi na Ethereum huko PythonInasakinisha Web3.py
Kusasisha na kusanikisha vifurushi muhimu
Kufunga moduli ya Easysolc
Kuchapisha mkataba kwa kutumia Web3.py
Mkusanyiko wa Mkataba
Inaunganisha kwa mtoa huduma
Tekeleza uchapishaji wa mkataba
Kuhifadhi anwani ya mkataba na abi kwenye faili
Kuendesha hati ya uchapishaji wa mkataba
Njia za Kupiga Mkataba
Kusoma anwani na abi ya mkataba kutoka kwa faili ya JSON
Inaunganisha kwa mtoa huduma
Kuunda Kitu cha Mkataba
Njia za Kupiga Mkataba
Truffle na Web3.py
Muhtasari wa somo

Somo la 12. ManenoJe, mkataba mahiri unaweza kuamini data kutoka kwa ulimwengu wa nje?
Oracles kama wapatanishi wa habari wa blockchain
Chanzo cha data
Msimbo wa kuwakilisha data kutoka chanzo
Oracle ya kurekodi kiwango cha ubadilishaji kwenye blockchain
Mkataba wa USDRateOracle
Inasasisha kiwango cha ubadilishaji katika mkataba mahiri
Kutumia Mtoa Soketi wa Wavuti
Inasubiri tukio la RateUpdate
Inashughulikia tukio la RateUpdate
Kuanzisha sasisho la data katika mkataba mahiri
Muhtasari wa somo

Chanzo: mapenzi.com

Kuongeza maoni