Китоби "Эҷоди шартномаҳои интеллектуалии Solidity барои blockchain Ethereum. Дастури амалӣ"

Китоби "Эҷоди шартномаҳои интеллектуалии Solidity барои blockchain Ethereum. Дастури амалӣ"
Зиёда аз як сол ман дар болои китоби "Эҷод кардани шартномаҳои интеллектуалии мустаҳкам барои Ethereum Blockchain" кор мекунам. Дастури амалй» ва холо ин кор ба охир расид ва китоб нашр ва дастрас бо Liters.

Ман умедворам, ки китоби ман ба шумо кӯмак мекунад, ки ба зудӣ эҷод кардани тамосҳои интеллектуалии Solidity ва DApps тақсимшуда барои blockchain Ethereum оғоз кунед. Он аз 12 дарс бо супоришҳои амалӣ иборат аст. Пас аз анҷом додани онҳо, хонанда метавонад гиреҳҳои маҳаллии Ethereum-и худро эҷод кунад, шартномаҳои интеллектуалиро интишор кунад ва усулҳои онҳоро даъват кунад, маълумотро байни ҷаҳони воқеӣ ва шартномаҳои интеллектуалӣ бо истифода аз oracle мубодила кунад ва бо шабакаи дебагҳои санҷишии Rinkeby кор кунад.

Китоб барои ҳар касе, ки ба технологияҳои пешрафта дар соҳаи blockchain таваҷҷӯҳ дорад ва мехоҳад ба зудӣ донише ба даст орад, ки ба онҳо имкон медиҳад, ки корҳои ҷолиб ва ояндадорро анҷом диҳанд.

Дар зер шумо ҷадвали мундариҷа ва боби аввали китобро хоҳед ёфт (инчунин дар Литр порчаҳои китоб дастрасанд). Ман умедворам, ки фикру мулоҳизаҳо, шарҳҳо ва пешниҳодҳо мегирам. Ман кушиш мекунам, ки дар вакти тайёр кардани нашри навбатии китоб хамаи инро ба назар гирам.

МундариҷаМуқаддимаКитоби мо барои онҳое пешбинӣ шудааст, ки мехоҳанд на танҳо принсипҳои blockchain Ethereum-ро дарк кунанд, балки инчунин малакаҳои амалӣ дар эҷоди DApp-ҳои тақсимшуда дар забони барномасозии Solidity барои ин шабака ба даст оранд.

Беҳтар аст, ки ин китобро на танҳо мутолиа кунед, балки бо он кор карда, супоришҳои амалии дар дарсҳо баёншударо иҷро кунед. Барои кор, ба шумо компютери маҳаллӣ, сервери виртуалӣ ё абрӣ бо Debian ё Ubuntu OS насбшуда лозим аст. Шумо инчунин метавонед Raspberry Pi-ро барои иҷрои бисёр вазифаҳо истифода баред.

Дар дарси якум Мо ба принсипҳои кори blockchain Ethereum ва истилоҳоти асосӣ назар хоҳем кард ва инчунин дар бораи он сӯҳбат мекунем, ки ин блокчейнро дар куҷо истифода бурдан мумкин аст.

Мақсад дарси дуюм — як гиреҳи хусусии Ethereum blockchain барои кори минбаъда дар ин курс дар сервери Ubuntu ва Debian эҷод кунед. Мо хусусиятҳои насби утилитаҳои асосӣ, ба монанди geth, ки кори гиреҳи blockchain моро таъмин мекунад ва инчунин демонҳои ғайримарказии нигаҳдории маълумотро дида мебароем.

Дарси сеюм ба шумо таълим медиҳад, ки чӣ тавр бо Ethereum дар микрокомпьютери арзон Raspberry Pi таҷриба кунед. Шумо системаи оператсионии Rasberian (OS) -ро дар Raspberry Pi, утилитаи Geth, ки гиреҳи blockchain ва демони ғайримарказии нигаҳдории маълумотро Swarm насб мекунад, насб мекунед.

Дарси чорум ба ҳисобҳо ва воҳидҳои криптовалютӣ дар шабакаи Ethereum, инчунин роҳҳои интиқоли маблағ аз як суратҳисоб ба ҳисоби дигар аз консоли Geth бахшида шудааст. Шумо чӣ гуна эҷод кардани ҳисобҳо, оғози амалиёти интиқоли маблағ ва гирифтани ҳолати транзаксия ва квитансияро меомӯзед.

Дар дарси панчум Шумо бо шартномаҳои интеллектуалӣ дар шабакаи Ethereum шинос мешавед ва дар бораи иҷрои онҳо тавассути мошини виртуалии Ethereum маълумот хоҳед гирифт.

Шумо аввалин шартномаи интеллектуалии худро дар шабакаи хусусии Ethereum эҷод ва нашр хоҳед кард ва чӣ гуна занг задан ба функсияҳои онро меомӯзед. Барои ин, шумо Remix Solidity IDE -ро истифода мебаред. Шумо инчунин мефаҳмед, ки чӣ тавр насб кардан ва истифода бурдани компилятори партияи solc.
Мо инчунин дар бораи ба истилоҳ Interface Binary Application (ABI) сӯҳбат мекунем ва ба шумо тарзи истифодаи онро меомӯзем.

Дарси шашум барои эҷоди скриптҳои JavaScript бо Node.js ва иҷрои амалиёт бо шартномаҳои интеллектуалии Solidity бахшида шудааст.

Шумо Node.js-ро дар Ubuntu, Debian ва Rasberian OS насб мекунед, скриптҳо менависед, то дар шабакаи маҳаллии Ethereum шартномаи оқилонаро нашр кунед ва ба вазифаҳои он занг занед.

Илова бар ин, шумо мефаҳмед, ки чӣ гуна интиқоли маблағро байни суратҳисобҳои муқаррарӣ бо истифода аз скриптҳо ва инчунин ба ҳисобҳои шартномавии интеллектуалӣ интиқол диҳед.

Дар дарси хафтум Шумо чӣ гуна насб кардан ва истифода бурдани чаҳорчӯбаи Truffle-ро меомӯзед, ки дар байни таҳиягарони шартномаи интеллектуалии Solidity маъмул аст. Шумо чӣ гуна сохтани скриптҳои JavaScript-ро меомӯзед, ки бо истифода аз модули трюфле-контракт вазифаҳои шартномаро даъват мекунанд ва шартномаи интеллектуалии худро бо истифода аз Truffle санҷед.

Дарси ҳаштум ба намудҳои маълумоти Solidity бахшида шудааст. Шумо шартномаҳои интеллектуалӣ менависед, ки бо намудҳои додаҳо ба монанди бутуни имзошуда ва беимзо, рақамҳои имзошуда, сатрҳо, суроғаҳо, тағирёбандаҳои мураккаб, массивҳо, рӯйхатҳо, сохторҳо ва луғатҳо кор мекунанд.

Дар дарси нухум Шумо як қадам ба сохтани шартномаҳои оқилона барои шабакаи асосии Ethereum наздик мешавед. Шумо чӣ гуна нашр кардани шартномаҳоро бо истифода аз Truffle дар шабакаи хусусии Geth ва инчунин дар testnet Rinkeby меомӯзед. Барқарор кардани шартномаи интеллектуалӣ дар шабакаи Rinkeby пеш аз интишори он дар шабакаи асосӣ хеле муфид аст - қариб ҳама чиз дар он ҷо воқеӣ аст, аммо ройгон.

Ҳамчун як қисми дарс, шумо як гиреҳи шабакаи санҷишии Rinkeby эҷод мекунед, онро бо маблағ маблағгузорӣ мекунед ва шартномаи оқилона нашр мекунед.

Дарси 10 бахшида ба Ethereum Swarm нигаҳдории маълумот тақсим. Бо истифода аз нигаҳдории тақсимшуда, шумо барои нигоҳ доштани миқдори зиёди маълумот дар blockchain Ethereum сарфа мекунед.

Дар ин дастур, шумо як анбори маҳаллии Swarm эҷод мекунед, амалиёти навиштан ва хондан дар файлҳо ва директорияҳои файлиро хоҳед кард. Баъдан, шумо тарзи кор бо шлюзи оммавии Swarm, навиштани скриптҳо барои дастрасӣ ба Swarm аз Node.js ва инчунин истифодаи модули Perl Net::Ethereum::Swarm-ро меомӯзед.

Мақсади дарс 11 — устоди кор бо шартномаҳои интеллектуалии Solidity бо истифода аз забони маъмули барномасозии Python ва чаҳорчӯбаи Web3.py. Шумо чаҳорчӯбаро насб мекунед, скриптҳо менависед, то шартномаи оқилонаро тартиб диҳед ва нашр кунед ва вазифаҳои онро даъват кунед. Дар ин ҳолат, Web3.py ҳам мустақилона ва ҳам дар якҷоягӣ бо муҳити ҳамгирошудаи рушди Truffle истифода мешавад.

Дар дарси 12 шумо интиқоли маълумотро байни шартномаҳои интеллектуалӣ ва ҷаҳони воқеӣ бо истифода аз oracle меомӯзед. Ин барои шумо барои гирифтани маълумот аз вебсайтҳо, дастгоҳҳои IoT, дастгоҳҳо ва сенсорҳои гуногун ва фиристодани маълумот аз шартномаҳои интеллектуалӣ ба ин дастгоҳҳо муфид хоҳад буд. Дар қисми амалии дарс шумо як oracle ва шартномаи интеллектуалӣ эҷод мекунед, ки қурби ҷории доллар ва рублро аз вебсайти Бонки марказии Федератсияи Русия қабул мекунад.

Дарси 1. Мухтасар дар бораи blockchain ва шабакаи EthereumМақсади дарс: бо принсипҳои кори blockchain Ethereum, соҳаҳои татбиқи он ва истилоҳоти асосӣ шинос шавед.
Вазифаҳои амалӣ: дар ин дарс фаро гирифта нашудааст.

Имрӯз қариб як таҳиягари нармафзор вуҷуд дорад, ки дар бораи технологияи blockchain (Blockchain), cryptocurrencies (Cryptocurrency ё Crypto Currency), Bitcoin (Bitcoin), пешниҳоди ибтидоии танга (ICO, Initial coin offering), шартномаҳои интеллектуалӣ (Смарт шартнома) чизе нашунида бошад. инчунин дигар мафҳумҳо ва истилоҳоти марбут ба blockchain.

Технологияи блокчейн бозорҳои нав мекушояд ва барои барномасозон ҷойҳои корӣ фароҳам меорад. Агар шумо тамоми нозукиҳои технологияҳои криптовалютӣ ва технологияҳои шартномаи интеллектуалиро дарк кунед, пас шумо набояд дар татбиқи ин донишҳо мушкилот дошта бошед.

Бояд гуфт, ки дар атрофи криптовалютҳо ва блокчейнҳо тахминҳои зиёде мавҷуданд. Мо муҳокимаҳоро дар бораи тағирёбии қурби криптовалютӣ, эҷоди пирамидаҳо, нозукиҳои қонунгузории криптовалютӣ ва ғайра тарк хоҳем кард. Дар курси омӯзишии худ мо асосан ба ҷанбаҳои техникии татбиқи шартномаҳои интеллектуалии Ethereum blockchain (Ethereum, Ether) ва таҳияи барномаҳои ба ном ғайримарказонидашуда (Аризаи тақсимшуда, DApp) тамаркуз хоҳем кард.

Блокчейн чист?

Blockchain (Block Chain) як занҷири блокҳои додаҳост, ки бо роҳи муайян ба ҳамдигар пайвастанд. Дар ибтидои занҷир блоки якум мавҷуд аст, ки онро блоки ибтидоӣ (блоки генезис) ё блоки генезисӣ меноманд. Пас аз он дуюм, баъд сеюм ва ғайра меояд.

Ҳамаи ин блокҳои додаҳо ба таври худкор дар гиреҳҳои сершумори шабакаи blockchain такрор карда мешаванд. Ин нигоҳдории ғайримарказонидашудаи маълумоти blockchainро таъмин мекунад.
Шумо метавонед системаи blockchain-ро ҳамчун шумораи зиёди гиреҳҳо (серверҳои ҷисмонӣ ё виртуалӣ) дар шабака васл карда, ҳама тағиротро дар занҷири блокҳои додаҳо такрор кунед. Ин ба як компютери азими бисёрсерверӣ монанд аст ва гиреҳҳои чунин компютер (серверҳо) метавонанд дар саросари ҷаҳон пароканда шаванд. Ва шумо низ метавонед компютери худро ба шабакаи blockchain илова кунед.

Пойгоҳи додаҳои тақсимшуда

Блокчейнро метавон ҳамчун пойгоҳи додаҳои тақсимшуда баррасӣ кард, ки дар тамоми гиреҳҳои шабакаи blockchain такрор карда мешавад. Дар назария, blockchain то он даме, ки ҳадди аққал як гиреҳ кор мекунад ва ҳамаи блокҳои блокчейнро нигоҳ медорад, фаъол хоҳад буд.

Феҳристи маълумотҳои тақсимшуда

Блокчейнро метавон ҳамчун дафтари тақсимшудаи додаҳо ва амалиётҳо (амалиёти) баррасӣ кард. Номи дигари чунин реестр дафтари китоб аст.

Маълумотро ба китоби тақсимшуда илова кардан мумкин аст, аммо онро тағир додан ё нест кардан мумкин нест. Ин имконнопазирӣ, аз ҷумла, бо истифода аз алгоритмҳои криптографӣ, алгоритмҳои махсуси илова кардани блокҳо ба занҷир ва нигаҳдории ғайримарказии додаҳо ба даст оварда мешавад.

Ҳангоми илова кардани блокҳо ва иҷрои амалиётҳо (амалҳо) калидҳои хусусӣ ва оммавӣ истифода мешаванд. Онҳо корбарони blockchain-ро танҳо тавассути додани дастрасӣ ба блокҳои додаҳои худ маҳдуд мекунанд.

Амалиётҳо

Blockchain маълумотро дар бораи амалиётҳо (амалҳо) дар блокҳо нигоҳ медорад. Дар айни замон, транзаксияҳои кӯҳна ва аллакай анҷомёфта наметавонанд баргардонида шаванд ё тағир дода шаванд. Амалиётҳои нав дар блокҳои нав ва иловашуда нигоҳ дошта мешаванд.

Бо ин роҳ, тамоми таърихи транзаксияро метавон бетағйир дар blockchain сабт кард. Аз ин рӯ, blockchain метавонад, масалан, барои бехатар нигоҳ доштани амалиёти бонкӣ, маълумоти ҳуқуқи муаллиф, таърихи тағирот дар соҳибони амвол ва ғайра истифода шавад.

Blockchain Ethereum дорои ба ном давлатҳои система мебошад. Ҳангоми анҷом додани транзаксия, ҳолат аз ҳолати аввала ба ҳолати ҷорӣ тағйир меёбад. Амалиётҳо дар блокҳо сабт карда мешаванд.

Блокчейнҳои давлатӣ ва хусусӣ

Дар ин ҷо бояд қайд кард, ки ҳама чизи гуфташуда танҳо барои шабакаҳои ба истилоҳ blockchain ҷамъиятӣ дуруст аст, ки онҳоро ҳеҷ як шахси воқеӣ ё ҳуқуқӣ, муассисаи давлатӣ ё ҳукумат идора карда наметавонад.
Шабакаҳои ба истилоҳ хусусии блокчейнҳо таҳти назорати пурраи созандагони худ қарор доранд ва дар он ҷо ҳама чиз имконпазир аст, масалан, ивази пурраи ҳамаи блокҳои занҷир.

Барномаҳои амалии blockchain

Блокчейн барои чӣ муфид буда метавонад?

Хулоса, blockchain ба шумо имкон медиҳад, ки транзаксияҳоро (амалиёти) байни одамон ё ширкатҳое, ки ба ҳамдигар эътимод надоранд, бехатар анҷом диҳед. Маълумоте, ки дар блокчейн сабт шудаанд (амалиёт, маълумоти шахсӣ, ҳуҷҷатҳо, сертификатҳо, шартномаҳо, ҳисобнома-фактураҳо ва ғ.) пас аз сабт тақаллуб ё иваз кардан мумкин нест. Аз ин рӯ, дар асоси blockchain, метавон, масалан, реестрҳои тақсимшудаи боэътимоди намудҳои гуногуни ҳуҷҷатҳоро эҷод кард.

Албатта, шумо медонед, ки системаҳои криптовалютӣ дар асоси блокчейнҳо сохта мешаванд, ки барои иваз кардани пулҳои оддии коғазӣ пешбинӣ шудаанд. Пули коғазро fiat низ меноманд (аз Fiat Money).
Blockchain нигоҳдорӣ ва тағирнопазирии транзаксияҳои дар блокҳо сабтшударо таъмин мекунад, аз ин рӯ онро барои сохтани системаҳои криптовалютӣ истифода бурдан мумкин аст. Он тамоми таърихи интиқоли маблағҳои криптографиро дар байни корбарони гуногун (ҳисобҳо) дар бар мегирад ва ҳама гуна амалиётро метавон пайгирӣ кард.

Ҳарчанд муомилот дар дохили системаҳои криптовалютӣ метавонанд беном бошанд, бозпас гирифтани криптовалютӣ ва табодули он ба пули фиат одатан боиси ошкор шудани шахсияти соҳиби дороии криптовалютӣ мегардад.

Ба ном шартномаҳои интеллектуалӣ, ки нармафзоре мебошанд, ки дар шабакаи Ethereum кор мекунанд, ба шумо имкон медиҳанд, ки раванди бастани муомилот ва мониторинги татбиқи онҳоро автоматӣ кунед. Ин махсусан самаранок аст, агар пардохт барои муомилот бо истифода аз cryptocurrency Ether анҷом дода шавад.

Шартномаҳои интеллектуалии Ethereum blockchain ва Ethereum, ки бо забони барномасозии Solidity навишта шудаанд, метавонанд, масалан, дар соҳаҳои зерин истифода шаванд:

  • алтернатива ба тасдиқи нотариалии ҳуҷҷатҳо;
  • нигоҳдории феҳристи объектҳои амволи ғайриманқул ва маълумот дар бораи муомилот бо объектҳои амволи ғайриманқул;
  • нигоҳдории маълумоти ҳуқуқи муаллифӣ оид ба моликияти зеҳнӣ (китобҳо, тасвирҳо, асарҳои мусиқӣ ва ғ.);
  • таъсиси системаҳои мустақили овоздиҳӣ;
  • молия ва бонкдорӣ;
  • логистика дар миқёси байналмилалӣ, пайгирии ҳаракати молҳо;
  • нигоҳдории маълумоти шахсӣ ҳамчун аналоги системаи корти шахсият;
  • муомилоти бехатар дар соҳаи тиҷорат;
  • нигоњ доштани натиљањои муоинаи тиббї, инчунин таърихи расмиёти муќарраршуда

Мушкилот бо blockchain

Аммо, албатта, на ҳама чиз он қадар оддӣ аст, ки ба назар мерасад!

Мушкилоти тасдиқи маълумот пеш аз илова кардани он ба blockchain (масалан, онҳо қалбакӣ?), мушкилот бо амнияти система ва нармафзори барномавӣ, ки барои кор бо blockchain истифода мешаванд, мушкилот бо имкони истифодаи усулҳои муҳандисии иҷтимоӣ барои дуздии дастрасӣ вуҷуд доранд. ба cryptocurrency ҳамёнҳоятонро ва ғайра .P.

Боз, агар сухан на дар бораи блокчейни оммавӣ, ки гиреҳҳои он дар саросари ҷаҳон пароканда аст, балки дар бораи блокчейни хусусии ба шахс ё созмон тааллуқдошта меравад, пас сатҳи эътимод дар ин ҷо аз сатҳи эътимод баландтар нахоҳад буд. дар ин шахс ё ин ташкилот.

Инчунин бояд ба назар гирифт, ки маълумоти дар blockchain сабтшуда барои ҳама дастрас мешаванд. Ба ин маъно, blockchain (махсусан оммавӣ) барои нигоҳ доштани маълумоти махфӣ мувофиқ нест. Аммо, далели он, ки маълумот дар бораи блокчейн тағир дода намешавад, метавонад барои пешгирӣ ё тафтиши намудҳои гуногуни фаъолиятҳои қаллобӣ кӯмак кунад.

Барномаҳои ғайримарказии Ethereum қулай хоҳанд буд, агар шумо барои истифодаи онҳо бо cryptocurrency пардохт кунед. Чӣ қадаре ки одамоне, ки крипто-валюта доранд ё барои харидани он омодаанд, ҳамон қадар маъмултар DApps ва шартномаҳои интеллектуалӣ мешаванд.

Мушкилоти умумӣ бо blockchain, ки ба татбиқи амалии он халал мерасонанд, суръати маҳдуди илова кардани блокҳои нав ва арзиши нисбатан баланди транзаксияҳоро дар бар мегиранд. Аммо технология дар ин самт фаъолона рушд мекунад ва умед ҳаст, ки мушкилоти техникӣ бо мурури замон ҳал хоҳад шуд.

Мушкилоти дигар ин аст, ки шартномаҳои интеллектуалӣ дар blockchain Ethereum дар муҳити ҷудошудаи мошинҳои виртуалӣ кор мекунанд ва ба маълумоти воқеии ҷаҳон дастрасӣ надоранд. Аз ҷумла, барномаи шартномаи интеллектуалӣ худаш маълумотро аз сайтҳо ё ягон дастгоҳи физикӣ (сансорҳо, алоқаҳо ва ғайра) хонда наметавонад ва инчунин наметавонад маълумотро ба ягон дастгоҳи беруна барорад. Мо ин мушкилот ва роҳҳои ҳалли онро дар дарси ба истилоҳ Oracles - миёнаравҳои иттилоотии шартномаҳои интеллектуалӣ баррасӣ хоҳем кард.

Маҳдудиятҳои қонунӣ низ мавҷуданд. Дар баъзе кишварҳо, масалан, истифодаи cryptocurrency ҳамчун воситаи пардохт манъ аст, аммо шумо метавонед онро ҳамчун як намуди дороии рақамӣ, ба монанди коғазҳои қиматнок соҳиб шавед. Чунин дороиҳоро дар биржа харидан ва фурӯхтан мумкин аст. Дар ҳар сурат, ҳангоми сохтани лоиҳае, ки бо криптовалютҳо кор мекунад, шумо бояд бо қонунгузории кишваре, ки лоиҳаи шумо таҳти салоҳияти он қарор дорад, шинос шавед.

Чӣ тавр занҷири blockchain ташаккул меёбад

Тавре ки мо аллакай гуфта будем, blockchain як занҷири оддии блокҳои додаҳост. Аввал блоки якуми ин занҷир ташкил карда мешавад, баъд ба он дуюмаш илова карда мешавад ва ғайра. Тахмин меравад, ки маълумоти транзаксия дар блокҳо нигоҳ дошта мешаванд ва ба блоки охирин илова карда мешаванд.

Дар расми. 1.1 Мо версияи соддатарини пайдарпаии блокҳоро нишон додем, ки дар он блоки аввал ба навбати дигар дахл дорад.

Китоби "Эҷоди шартномаҳои интеллектуалии Solidity барои blockchain Ethereum. Дастури амалӣ"
Райс. 1.1. пайдарпайии оддии блокҳо

Бо ин хосият, тағир додани мундариҷаи ҳама гуна блок дар занҷир хеле осон аст, зеро блокҳо барои муҳофизат аз тағирот ягон маълумот надоранд. Бо дарназардошти он, ки blockchain барои одамон ва ширкатҳое истифода мешавад, ки байни онҳо эътимод надоранд, мо метавонем ба хулосае ояд, ки ин усули нигоҳдории маълумот барои blockchain мувофиқ нест.

Биёед муҳофизат кардани блокҳоро аз қалбакӣ оғоз кунем. Дар марҳилаи аввал мо кӯшиш мекунем, ки ҳар як блокро бо маблағи чек муҳофизат кунем (расми 1.2).

Китоби "Эҷоди шартномаҳои интеллектуалии Solidity барои blockchain Ethereum. Дастури амалӣ"
Райс. 1.2. Илова кардани муҳофизат барои ин блокҳо бо маблағи чек

Ҳоло ҳамлакунанда наметавонад блокро танҳо иваз кунад, зеро он дорои маблағи санҷиши маълумоти блок мебошад. Санҷиши маблағи санҷиш нишон медиҳад, ки маълумот тағир ёфтааст.

Барои ҳисоб кардани маблағи чек, шумо метавонед яке аз функсияҳои ҳашингро истифода баред, ба монанди MD-5, SHA-1, SHA-256 ва ғайра. Функсияҳои хэш арзишро (масалан, сатри матнии дарозии доимиро) тавассути иҷрои амалҳои бебозгашт дар блоки додаҳо ҳисоб мекунанд. Амалиёт аз намуди функсияи hash вобаста аст.

Ҳатто агар мундариҷаи блоки маълумот каме тағир ёбад, арзиши hash низ тағир меёбад. Бо таҳлили арзиши функсияи hash, аз нав сохтани блоки маълумоте, ки барои он ҳисоб карда шудааст, ғайриимкон аст.

Оё чунин муҳофизат кофӣ хоҳад буд? Мутаассифона не.

Дар ин схема, чек (функсияи hash) танҳо блокҳои алоҳидаро муҳофизат мекунад, аммо на тамоми блокчейн. Донистани алгоритми ҳисобкунии функсияи ҳаш, ҳамлакунанда метавонад ба осонӣ мундариҷаи блокро иваз кунад. Ғайр аз он, ҳеҷ чиз ба ӯ барои хориҷ кардани блокҳо аз занҷир ё илова кардани блокҳои нав халал намерасонад.

Барои њифзи тамоми занљир дар маљмўъ, шумо инчунин метавонед дар њар як блок дар баробари маълумот њеши маълумотро аз блоки пешина нигоњ доред (расми 1.3).

Китоби "Эҷоди шартномаҳои интеллектуалии Solidity барои blockchain Ethereum. Дастури амалӣ"
Райс. 1.3. Хеши блоки қаблиро ба блоки додаҳо илова кунед

Дар ин схема, барои иваз кардани блок, шумо бояд функсияҳои hash-и ҳамаи блокҳои минбаъдаро аз нав ҳисоб кунед. Чунин ба назар мерасад, ки мушкил дар чист?

Дар blockchain воқеӣ, мушкилоти сунъӣ ба таври иловагӣ барои илова кардани блокҳои нав эҷод карда мешаванд - алгоритмҳое, ки захираҳои зиёди ҳисоббарориро талаб мекунанд, истифода мешаванд. Бо назардошти он, ки барои ворид кардани тағирот ба блок, шумо бояд на танҳо ин як блокро, балки ҳамаи блокҳои минбаъдаро аз нав ҳисоб кунед, ин кор ниҳоят душвор хоҳад буд.

Биёед инчунин дар хотир дорем, ки маълумоти blockchain дар гиреҳҳои сершумори шабака нигоҳ дошта мешаванд (такрор мешаванд), яъне. Нигоҳдории ғайримарказӣ истифода мешавад. Ва ин сохтакории блокро хеле душвортар мекунад, зеро бояд ба ҳамаи гиреҳҳои шабака тағйирот ворид карда шаванд.

Азбаски блокҳо маълумотро дар бораи блоки қаблӣ нигоҳ медоранд, мумкин аст, ки мундариҷаи ҳамаи блокҳои занҷирро тафтиш кунед.

Blockchain Ethereum

Blockchain Ethereum як платформаест, ки дар он DApps тақсим карда мешавад. Баръакси платформаҳои дигар, Ethereum имкон медиҳад, ки ба истилоҳ шартномаҳои интеллектуалӣ (қарордодҳои интеллектуалӣ), ки бо забони барномасозии Solidity навишта шудаанд.

Ин платформа соли 2013 аз ҷониби Виталик Бутерин, муассиси маҷаллаи Bitcoin сохта шуда, соли 2015 ба кор даромад. Ҳама чизе, ки мо дар курси омӯзишии худ меомӯзем ё мекунем, махсусан ба шартномаҳои интеллектуалии Ethereum blockchain ва Solidity дахл дорад.

Истихроҷи маъдан ё чӣ гуна блокҳо сохта мешаванд

Истихроҷи маъдан як раванди хеле мураккаб ва ресурсталаби илова кардани блокҳои нав ба занҷири blockchain аст, на дар ҳама "криптовалюта истихроҷ". Mining таъмин фаъолияти blockchain, зеро маҳз ин равандест, ки барои илова кардани транзаксияҳо ба blockchain Ethereum масъул аст.

Одамон ва ташкилотҳое, ки дар илова кардани блокҳо иштирок мекунанд, конканҳо номида мешаванд.
Нармафзоре, ки дар гиреҳҳои конканӣ кор мекунад, кӯшиш мекунад, ки параметри ҳашинг бо номи Nonce барои блоки охирин пайдо кунад, то арзиши мушаххаси аз ҷониби шабака муайяншударо ба даст орад. Алгоритм ҳашингии Ethash, ки дар Ethereum истифода мешавад, ба шумо имкон медиҳад, ки арзиши Nonce-ро танҳо тавассути ҷустуҷӯи пайдарпай ба даст оред.

Агар гиреҳи маъдан арзиши дурусти Nonce-ро пайдо кунад, пас ин ба истилоҳ далели кор аст (PoW, Proof-of-work). Дар ин ҳолат, агар блок ба шабакаи Ethereum илова карда шавад, конкан мукофоти муайянро бо асъори шабакавӣ - Ether мегирад. Ҳангоми навиштан, мукофот 5 Ether аст, аммо бо мурури замон ин коҳиш хоҳад ёфт.

Ҳамин тариқ, конканҳои Ethereum кори шабакаро тавассути илова кардани блокҳо таъмин мекунанд ва барои ин cryptocurrency пул мегиранд. Дар интернет дар бораи конканҳо ва истихроҷи маъдан маълумоти зиёде мавҷуд аст, аммо мо ба эҷоди шартномаҳои Solidity ва DApps дар шабакаи Ethereum тамаркуз хоҳем кард.

Хулосаи дарс

Дар дарси аввал шумо бо blockchain шинос шудед ва фаҳмидед, ки он як пайдарпаии махсуси блокҳост. Мундариҷаи блокҳои қаблан сабтшударо тағир додан мумкин нест, зеро ин аз нав ҳисоб кардани ҳамаи блокҳои минбаъдаро дар бисёре аз гиреҳҳои шабака талаб мекунад, ки захираҳо ва вақти зиёдро талаб мекунад.

Blockchain метавонад барои нигоҳ доштани натиҷаҳои транзаксия истифода шавад. Мақсади асосии он ташкили муомилоти бехатар байни тарафҳо (шахсон ва ташкилотҳо), ки байни онҳо эътимод нест. Шумо фаҳмидед, ки дар кадом соҳаҳои мушаххаси тиҷорат ва дар кадом соҳаҳо шартномаҳои интеллектуалии Ethereum blockchain ва Solidity истифода мешаванд. Ин бахши бонкӣ, бақайдгирии ҳуқуқи моликият, ҳуҷҷатҳо ва ғайра мебошад.

Шумо инчунин фаҳмидед, ки ҳангоми истифодаи blockchain мушкилоти гуногун метавонанд ба миён оянд. Инҳо мушкилоти тасдиқи маълумоти ба блокчейн иловашуда, суръати блокчейн, арзиши транзаксияҳо, мушкилоти мубодилаи маълумот байни шартномаҳои интеллектуалӣ ва ҷаҳони воқеӣ, инчунин ҳамлаҳои эҳтимолии ҳамлагарон, ки ба дуздии маблағҳои криптовалютӣ аз ҳисобҳои корбар нигаронида шудаанд. .

Мо инчунин ба таври мухтасар дар бораи истихроҷи маъдан ҳамчун раванди илова кардани блокҳои нав ба blockchain сӯҳбат кардем. Mining барои анҷом додани муомилот зарур аст. Онҳое, ки ба истихроҷи маъдан машғуланд, кори blockchainро таъмин мекунанд ва барои ин бо cryptocurrency мукофот мегиранд.

Дарси 2. Омода кардани муҳити корӣ дар Ubuntu ва Debian OSИнтихоби системаи оператсионӣ
Насб кардани асбобҳои зарурӣ
Насб кардани Geth and Swarm дар Ubuntu
Насб кардани Geth ва Swarm дар Debian
Омодасозии пешакӣ
Боргирии тақсимоти Go
Муқаррар кардани тағирёбандаҳои муҳити зист
Санҷиши версияи Go
Насб кардани Geth and Swarm
Эҷоди як blockchain хусусӣ
Омода кардани файли genesis.json
Барои кор директория эҷод кунед
Ҳисоб кушоед
Оғози оғозкунии гиреҳ
Имконоти оғозёбии гиреҳ
Ба гиреҳи мо пайваст шавед
Идоракунии истихроҷи маъдан ва тафтиши тавозун
Хомӯш кардани консоли Geth
Хулосаи дарс

Дарси 3. Омода кардани муҳити корӣ дар Raspberry Pi 3Омода кардани Raspberry Pi 3 барои кор
Насб кардани Rasberian
Насб кардани навсозиҳо
Фаъолсозии дастрасии SSH
Муқаррар кардани суроғаи IP статикӣ
Насб кардани асбобҳои зарурӣ
Насб кардани Go
Боргирии тақсимоти Go
Муқаррар кардани тағирёбандаҳои муҳити зист
Санҷиши версияи Go
Насб кардани Geth and Swarm
Эҷоди як blockchain хусусӣ
Санҷиши ҳисоб ва тавозуни шумо
Хулосаи дарс

Дарси 4. Ҳисобҳо ва интиқоли маблағҳо байни ҳисобҳоҲисобҳоро дидан ва илова кунед
Рӯйхати ҳисобҳоро дидан
Илова кардани ҳисоб
имконоти фармони ҳисоби geth
Паролҳои ҳисоб
Асъори криптовалютӣ дар Ethereum
Воҳидҳои асъори Ethereum
Мо бақияи ҷории ҳисобҳои худро муайян мекунем
Интиқоли маблағ аз як суратҳисоб ба дигараш
Усули eth.sendTransaction
Ҳолати транзаксияро дидан
Квитансияи транзаксия
Хулосаи дарс

Дарси 5. Нашри шартномаи аввалини шумоШартномаҳои интеллектуалӣ дар Ethereum
Иҷрои шартномаи оқилона
Мошини виртуалии Ethereum
Муҳити ҳамгирошудаи рушд Remix Solidity IDE
Маҷмӯаи иҷрошаванда
Функсияҳои шартномавӣ
Интишори шартнома дар шабакаи хусусӣ
Гирифтани таърифи ABI ва рамзи дуии шартнома
Нашри шартнома
Санҷиши ҳолати интишори муомилоти шартнома
Функсияҳои шартномавӣ
Ҷамъоварии бастаи solc
Насб кардани solc дар Ubuntu
Насб кардани solc дар Debian
Тартиб додани шартномаи HelloSol
Нашри шартнома
Насб кардани solc дар Rasberian
Хулосаи дарс

Дарси 6. Шартномаҳои интеллектуалӣ ва Node.jsНасб кардани Node.js
Насбкунӣ дар Ubuntu
Насбкунӣ дар Debian
Насб ва иҷро кардани Ganache-cli
Насби Web3
Насб кардани solc
Насб кардани Node.js дар Rasberian
Скрипт барои гирифтани рӯйхати ҳисобҳо дар консол
Скрипт барои нашри шартномаи интеллектуалӣ
Параметрҳоро оғоз кунед ва гиред
Гирифтани имконоти оғоз
Тартиб додани шартнома
Кушодани ҳисоби шумо
Боркунии рамзи дуӣ ABI ва шартнома
Ҳисоб кардани миқдори зарурии газ
Объект эҷод кунед ва ба нашри шартнома шурӯъ кунед
Иҷрои скрипти нашри шартнома
Даъват ба функсияҳои шартномаи интеллектуалӣ
Оё имкон дорад, ки шартномаи интеллектуалии нашршуда навсозӣ шавад?
Кор бо версияи Web3 1.0.x
Гирифтани рӯйхати ҳисобҳо
Нашри шартнома
Функсияҳои шартномавӣ
Интиқоли маблағ аз як суратҳисоб ба дигараш
Ба суратҳисоби шартнома интиқол додани маблағ
Навсозии шартномаи интеллектуалии HelloSol
Барои дидани тавозуни ҳисоби худ скрипт эҷод кунед
Илова кардани занг ба функсияи getBalance ба скрипти call_contract_get_promise.js
Мо ҳисоби шартномаи интеллектуалиро пур мекунем
Хулосаи дарс

Дарси 7: Муқаддима ба трюфельНасб кардани Truffle
Лоиҳаи HelloSol эҷод кунед
Эҷоди директория ва файлҳои лоиҳа
Феҳристи шартномаҳо
Муҳоҷирати каталогҳо
Санҷиши директория
файли truffle-config.js
Тартиб додани шартномаи HelloSol
Ба нашри шартнома шурӯъ кунед
Даъват кардани функсияҳои шартномаи HelloSol дар фаврии Truffle
Даъват кардани функсияҳои шартномаи HelloSol аз скрипти JavaScript, ки Node.js кор мекунад
Насб кардани модули трюфель-шартнома
Даъват кардани функсияҳои шартнома getValue ва getString
Даъват кардани функсияҳои шартномавӣ setValue ва setString
Тағйир додани шартнома ва нашри дубора
Кор бо версияи Web3 1.0.x
Ворид кардани тағирот ба шартномаи интеллектуалии HelloSol
Скриптҳо барои даъват кардани усулҳои шартнома
Санҷиш дар Truffle
Санҷиши устуворӣ
Санҷиши JavaScript
Хулосаи дарс

Дарси 8. Намудҳои маълумотҳои устуворӣШартнома барои омӯзиши намудҳои маълумот
Намудҳои маълумоти булӣ
Ададҳои бутуни беимзо ва ададҳои бутуни имзошуда
Рақамҳои нуқтаҳои собит
Суроға
Тағйирёбандаҳои намудҳои мураккаб
Массивҳои андозаи собит
Массивҳои динамикӣ
Барӯйхатгирӣ
Сохторҳо
Харитасозии луғатҳо
Хулосаи дарс

Дарси 9. Муҳоҷирати шартномаҳо ба шабакаи хусусӣ ва шабакаи RinkebyНашри шартнома аз Truffle ба шабакаи хусусии Geth
Омода кардани гиреҳи шабакаи хусусӣ
Омода кардани шартнома барои кор
Тартиб додан ва интиқол додани шартнома ба шабакаи Truffle
Оғози муҳоҷирати шабакаи маҳаллӣ geth
Гирифтани артефактҳои Truffle
Нашри шартнома аз Truffle ба testnet Rinkeby
Омода кардани гиреҳи Гет барои кор бо Rinkeby
Синхронизатсияи гиреҳ
Илова кардани ҳисобҳо
Пур кардани ҳисоби Rinkeby худ бо эфир
Оғози муҳоҷирати шартномавӣ ба шабакаи Rinkeby
Намоиши маълумоти шартнома дар шабакаи Rinkeby
Консол Truffle барои Шабакаи Rinkeby
Роҳи осонтари даъват кардани функсияҳои шартнома
Усулҳои шартномавӣ бо истифода аз Node.js
Маблағҳоро байни ҳисобҳо дар консоли Truffle барои Rinkby интиқол диҳед
Хулосаи дарс

Дарси 10. Анбори маълумотҳои ғайримарказии Ethereum SwarmEthereum Swarm чӣ гуна кор мекунад?
Насб ва ба кор андохтани Swarm
Амалиёт бо файлҳо ва директорияҳо
Бор кардани файл ба Ethereum Swarm
Хондани файл аз Ethereum Swarm
Манифести файли боршударо бинед
Боркунии директорияҳо бо зеркаталогҳо
Хондани файл аз директорияи зеркашидашуда
Истифодаи дарвозаи оммавии Swarm
Дастрасӣ ба Swarm аз скриптҳои Node.js
Perl Net :: Ethereum :: Модули тӯдаи
Насб кардани модули Net:: Ethereum :: Swarm
Навиштан ва хондани маълумот
Хулосаи дарс

Дарси 11. Чаҳорчӯбаи Web3.py барои кор бо Ethereum дар PythonНасб кардани Web3.py
Навсозӣ ва насби бастаҳои зарурӣ
Насб кардани модули easysolc
Интишори шартнома бо истифода аз Web3.py
Тартиб додани шартнома
Пайвастшавӣ ба провайдер
Нашри шартномаро иҷро кунед
Нигоҳ доштани суроғаи шартнома ва abi дар файл
Иҷрои скрипти нашри шартнома
Усулҳои даъвати шартнома
Хондани суроға ва аби шартнома аз файли JSON
Пайвастшавӣ ба провайдер
Эҷоди объекти шартнома
Усулҳои даъвати шартнома
Truffle ва Web3.py
Хулосаи дарс

Дарси 12. OraclesОё шартномаи оқилона метавонад ба маълумот аз ҷаҳони беруна эътимод кунад?
Oracles ҳамчун миёнаравҳои иттилоотии blockchain
Манбаи маълумот
Рамз барои муаррифии маълумот аз манбаъ
Oracle барои сабти қурби мубодила дар blockchain
Шартномаи USDRateOracle
Навсозии қурби асъор дар як шартномаи интеллектуалӣ
Истифодаи провайдери веб-сокет
Интизории ҳодисаи RateUpdate
Идоракунии ҳодисаи RateUpdate
Оғози навсозии маълумот дар шартномаи интеллектуалӣ
Хулосаи дарс

Манбаъ: will.com

Илова Эзоҳ