පොත "Ethereum blockchain සඳහා Solidity ස්මාර්ට් කොන්ත්රාත්තු නිර්මාණය කිරීම. ප්‍රායෝගික මාර්ගෝපදේශය"

පොත "Ethereum blockchain සඳහා Solidity ස්මාර්ට් කොන්ත්රාත්තු නිර්මාණය කිරීම. ප්‍රායෝගික මාර්ගෝපදේශය"
වසරකට වැඩි කාලයක් මම "Ethereum Blockchain සඳහා Solidity Smart Contracts නිර්මාණය කිරීම" යන පොතේ වැඩ කරමින් සිටිමි. ප්‍රායෝගික මාර්ගෝපදේශය", සහ දැන් මෙම කාර්යය අවසන්, සහ පොත ප්‍රකාශිත සහ ලීටර් වලින් ලබා ගත හැක.

Ethereum blockchain සඳහා Solidity ස්මාර්ට් සම්බන්ධතා සහ බෙදා හරින ලද DApps නිර්මාණය කිරීම ඉක්මනින් ආරම්භ කිරීමට මගේ පොත ඔබට උපකාර කරනු ඇතැයි මම බලාපොරොත්තු වෙමි. එය ප්‍රායෝගික කාර්යයන් සහිත පාඩම් 12 කින් සමන්විත වේ. ඒවා සම්පූර්ණ කිරීමෙන් පසු, පාඨකයාට තමන්ගේම දේශීය Ethereum නෝඩ් නිර්මාණය කිරීමට, ස්මාර්ට් කොන්ත්‍රාත්තු ප්‍රකාශයට පත් කිරීමට සහ ඔවුන්ගේ ක්‍රම ඇමතීමට, ඔරකල් භාවිතයෙන් සැබෑ ලෝකය සහ ස්මාර්ට් කොන්ත්‍රාත්තු අතර දත්ත හුවමාරු කර ගැනීමට සහ Rinkeby test debug ජාලය සමඟ වැඩ කිරීමට හැකි වේ.

බ්ලොක්චේන් ක්‍ෂේත්‍රයේ උසස් තාක්‍ෂණයන් ගැන උනන්දුවක් දක්වන සෑම කෙනෙකුටම මෙම පොත ආමන්ත්‍රණය කර ඇති අතර ඔවුන්ට රසවත් හා පොරොන්දු වූ කාර්යයක නිරත වීමට ඉඩ සලසන දැනුම ඉක්මනින් ලබා ගැනීමට අවශ්‍ය වේ.

පහතින් ඔබට පටුන සහ පොතේ පළමු පරිච්ඡේදය හමුවනු ඇත (එසේම ලිට්රේස් පොතේ කොටස් තිබේ). ප්‍රතිපෝෂණ, අදහස් සහ යෝජනා ලැබෙනු ඇතැයි මම බලාපොරොත්තු වෙමි. පොතේ ඊළඟ සංස්කරණය සකස් කිරීමේදී මේ සියල්ල සැලකිල්ලට ගැනීමට මම උත්සාහ කරමි.

පටුනහැඳින්වීමඅපගේ පොත Ethereum blockchain හි මූලධර්ම තේරුම් ගැනීමට පමණක් නොව, මෙම ජාලය සඳහා Solidity ක්‍රමලේඛන භාෂාවෙන් බෙදා හරින ලද DApps නිර්මාණය කිරීමේ ප්‍රායෝගික කුසලතා ලබා ගැනීමට කැමති අය සඳහා අදහස් කෙරේ.

මෙම පොත කියවීම පමණක් නොව, එය සමඟ වැඩ කිරීම, පාඩම් වල විස්තර කර ඇති ප්රායෝගික කාර්යයන් ඉටු කිරීම වඩා හොඳය. වැඩ කිරීමට, ඔබට Debian හෝ Ubuntu OS ස්ථාපනය කර ඇති දේශීය පරිගණකයක්, අතථ්‍ය හෝ වලාකුළු සේවාදායකයක් අවශ්‍ය වේ. ඔබට බොහෝ කාර්යයන් කිරීමට Raspberry Pi භාවිතා කළ හැකිය.

පළමු පාඩමේදී අපි Ethereum blockchain හි මෙහෙයුම් මූලධර්ම සහ මූලික පාරිභාෂිතය දෙස බලනු ඇත, මෙම blockchain භාවිතා කළ හැකි ස්ථානය ගැන ද කතා කරමු.

ඉලක්කය දෙවන පාඩම — Ubuntu සහ Debian සේවාදායකයක මෙම පාඨමාලාව තුළ වැඩිදුර වැඩ සඳහා පුද්ගලික Ethereum blockchain node එකක් සාදන්න. අපගේ බ්ලොක්චේන් නෝඩයේ ක්‍රියාකාරිත්වය සහතික කරන ගෙත් වැනි මූලික උපයෝගිතා ස්ථාපනය කිරීමේ විශේෂාංග මෙන්ම රංචුව විමධ්‍යගත දත්ත ගබඩා ඩීමන් ද අපි බලමු.

තුන්වන පාඩම මිල අඩු Raspberry Pi මයික්‍රොකොම්පියුටරයක් ​​මත Ethereum සමඟ අත්හදා බලන ආකාරය ඔබට කියා දෙනු ඇත. ඔබ Raspberry Pi මත Rasberian මෙහෙයුම් පද්ධතිය (OS), blockchain node එක බලගන්වන Geth උපයෝගීතාව සහ Swarm විමධ්‍යගත දත්ත ගබඩා ඩීමන් ස්ථාපනය කරනු ඇත.

හතරවන පාඩම Ethereum ජාලයේ ගිණුම් සහ cryptocurrency ඒකක සඳහා මෙන්ම, Geth කොන්සෝලයෙන් එක් ගිණුමකින් තවත් ගිණුමකට අරමුදල් මාරු කිරීමේ ක්‍රම සඳහා කැපවී ඇත. ගිණුම් සෑදීම, අරමුදල් හුවමාරු ගනුදෙනු ආරම්භ කිරීම සහ ගනුදෙනු තත්ත්වය සහ රිසිට්පත ලබා ගැනීම සඳහා ඔබ ඉගෙන ගනු ඇත.

පස්වන පාඩමේදී ඔබ Ethereum ජාලයේ ස්මාර්ට් කොන්ත්‍රාත්තු පිළිබඳව දැන හඳුනා ගන්නා අතර Ethereum අථත්‍ය යන්ත්‍රය මඟින් ඒවා ක්‍රියාත්මක කිරීම ගැන ඉගෙන ගනු ඇත.

ඔබ Ethereum පුද්ගලික ජාලයේ ඔබේ පළමු ස්මාර්ට් කොන්ත්‍රාත්තුව නිර්මාණය කර ප්‍රකාශයට පත් කර එහි කාර්යයන් ඇමතීමට ඉගෙන ගනු ඇත. මෙය සිදු කිරීම සඳහා, ඔබ Remix Solidity IDE භාවිතා කරනු ඇත. ඔබ solc batch compiler ස්ථාපනය කර භාවිතා කරන ආකාරය ද ඉගෙන ගනු ඇත.
අපි ඊනියා යෙදුම් ද්විමය අතුරුමුහුණත (ABI) ගැන කතා කර එය භාවිතා කරන්නේ කෙසේදැයි ඔබට කියා දෙන්නෙමු.

හයවන පාඩම Node.js ධාවනය වන JavaScript ස්ක්‍රිප්ට් නිර්මාණය කිරීමට සහ Solidity ස්මාර්ට් කොන්ත්‍රාත්තු සමඟ මෙහෙයුම් සිදු කිරීමට කැපවී සිටී.

ඔබ Ubuntu, Debian සහ Rasberian OS මත Node.js ස්ථාපනය කරනු ඇත, Ethereum ප්‍රාදේශීය ජාලයේ ස්මාර්ට් කොන්ත්‍රාත්තුවක් ප්‍රකාශයට පත් කිරීමට සහ එහි කාර්යයන් ඇමතීමට ස්ක්‍රිප්ට් ලියන්න.

ඊට අමතරව, ස්ක්‍රිප්ට් භාවිතයෙන් සාමාන්‍ය ගිණුම් අතර අරමුදල් මාරු කරන්නේ කෙසේදැයි ඔබ ඉගෙන ගනු ඇත, මෙන්ම ඒවා ස්මාර්ට් කොන්ත්‍රාත්තු ගිණුම් වෙත බැර කරයි.

හත්වන පාඩමේ Solidity ස්මාර්ට් කොන්ත්‍රාත් සංවර්ධකයින් අතර ජනප්‍රිය Truffle රාමුව ස්ථාපනය කර භාවිතා කරන්නේ කෙසේදැයි ඔබ ඉගෙන ගනු ඇත. ට්‍රෆල්-කොන්ත්‍රාත් මොඩියුලය භාවිතයෙන් කොන්ත්‍රාත්තු කාර්යයන් කැඳවන JavaScript ස්ක්‍රිප්ට් සාදන ආකාරය ඔබ ඉගෙන ගනු ඇත, සහ Truffle භාවිතයෙන් ඔබේ ස්මාර්ට් කොන්ත්‍රාත්තුව පරීක්ෂා කරන්න.

අටවන පාඩම Solidity දත්ත වර්ග සඳහා කැප කර ඇත. ඔබ අත්සන් කළ සහ අත්සන් නොකළ පූර්ණ සංඛ්‍යා, අත්සන් කළ අංක, නූල්, ලිපින, සංකීර්ණ විචල්‍ය, අරා, ගණන් කිරීම්, ව්‍යුහයන් සහ ශබ්ද කෝෂ වැනි දත්ත වර්ග සමඟ ක්‍රියා කරන ස්මාර්ට් කොන්ත්‍රාත්තු ලියනු ඇත.

නවවන පාඩමේදී Ethereum mainnet සඳහා ස්මාර්ට් කොන්ත්‍රාත්තු සෑදීමට ඔබ එක් පියවරක් සමීප වනු ඇත. Geth පුද්ගලික ජාලයේ මෙන්ම Rinkeby testnet හි Truffle භාවිතයෙන් කොන්ත්‍රාත්තු ප්‍රකාශනය කරන්නේ කෙසේදැයි ඔබ ඉගෙන ගනු ඇත. Rinkeby ජාලයේ ස්මාර්ට් කොන්ත්‍රාත්තුවක් නිදොස් කිරීම ප්‍රධාන ජාලයේ එය ප්‍රකාශයට පත් කිරීමට පෙර ඉතා ප්‍රයෝජනවත් වේ - සෑම දෙයක්ම පාහේ එහි සැබෑ ය, නමුත් නොමිලේ.

පාඩමෙහි කොටසක් ලෙස, ඔබ Rinkeby පරීක්ෂණ ජාල නෝඩයක් සාදනු ඇත, අරමුදල් සමඟ අරමුදල් සපයනු ඇත, සහ ස්මාර්ට් කොන්ත්රාත්තුවක් ප්රකාශයට පත් කරනු ඇත.

පාඩම් 10 Ethereum Swarm බෙදා හරින ලද දත්ත ගබඩා කිරීම සඳහා කැපවී ඇත. බෙදා හරින ලද ආචයනය භාවිතා කිරීමෙන්, ඔබ Ethereum blockchain මත විශාල දත්ත ප්‍රමාණයක් ගබඩා කරයි.

මෙම නිබන්ධනයේදී, ඔබ දේශීය Swarm ගබඩාවක් සාදනු ඇත, ලිපිගොනු සහ ගොනු නාමාවලි මත මෙහෙයුම් ලිවීම සහ කියවීම සිදු කරනු ඇත. මීළඟට, ඔබ පොදු Swarm ද්වාරය සමඟ වැඩ කරන ආකාරය, Node.js වෙතින් Swarm වෙත ප්‍රවේශ වීමට ස්ක්‍රිප්ට් ලියන්න, මෙන්ම Perl Net::Ethereum::Swarm මොඩියුලය භාවිතා කරන ආකාරය ඉගෙන ගනු ඇත.

පාඩමේ අරමුණ 11 — ජනප්‍රිය Python ක්‍රමලේඛන භාෂාව සහ Web3.py රාමුව භාවිතා කරමින් Solidity ස්මාර්ට් කොන්ත්‍රාත්තු සමඟ වැඩ කිරීමේ ප්‍රධානියා. ඔබ රාමුව ස්ථාපනය කරනු ඇත, ස්මාර්ට් කොන්ත්‍රාත්තුව සම්පාදනය කිරීමට සහ ප්‍රකාශයට පත් කිරීමට ස්ක්‍රිප්ට් ලියන්න, සහ එහි කාර්යයන් අමතන්න. මෙම අවස්ථාවෙහිදී, Web3.py තනියම සහ Truffle ඒකාබද්ධ සංවර්ධන පරිසරය සමඟ ඒකාබද්ධව භාවිතා කරනු ඇත.

12 පාඩමේදී ඔරකල් භාවිතයෙන් ස්මාර්ට් කොන්ත්‍රාත්තු සහ සැබෑ ලෝකය අතර දත්ත මාරු කිරීමට ඔබ ඉගෙන ගනු ඇත. මෙය ඔබට වෙබ් අඩවි, IoT උපාංග, විවිධ උපාංග සහ සංවේදක වලින් දත්ත ලබා ගැනීමට සහ මෙම උපාංග වෙත ස්මාර්ට් ගිවිසුම් වලින් දත්ත යැවීමට ප්‍රයෝජනවත් වනු ඇත. පාඩමෙහි ප්රායෝගික කොටසෙහි, ඔබ රුසියානු සමූහාණ්ඩුවේ මහ බැංකුවේ වෙබ් අඩවියෙන් USD සහ රුබල් අතර වත්මන් විනිමය අනුපාතය ලබා ගන්නා ඔරකල් සහ ස්මාර්ට් කොන්ත්රාත්තුවක් නිර්මාණය කරනු ඇත.

පාඩම 1. blockchain සහ Ethereum ජාලය ගැන කෙටියෙන්පාඩමේ අරමුණ: Ethereum blockchain හි මෙහෙයුම් මූලධර්ම, එහි යෙදුම් ක්ෂේත්‍ර සහ මූලික පාරිභාෂිතය පිළිබඳව දැන හඳුනා ගන්න.
ප්රායෝගික කාර්යයන්: මෙම පාඩමෙහි ඇතුළත් නොවේ.

බ්ලොක්චේන් තාක්ෂණය (Blockchain), ගුප්තකේතන මුදල් (Cryptocurrency හෝ Crypto Currency), Bitcoin (Bitcoin), මූලික කාසි පිරිනැමීම (ICO, ආරම්භක කාසි පිරිනැමීම), ස්මාර්ට් කොන්ත්‍රාත්තු (Smart Contract) ගැන කිසිවක් අසා නැති මෘදුකාංග සංවර්ධකයෙකු අද නැති තරම්ය. බ්ලොක්චේන් සම්බන්ධ අනෙකුත් සංකල්ප සහ නියමයන් මෙන්ම.

Blockchain තාක්ෂණය නව වෙළඳපල විවෘත කරන අතර වැඩසටහන්කරුවන් සඳහා රැකියා නිර්මාණය කරයි. ඔබ cryptocurrency තාක්ෂණයන් සහ ස්මාර්ට් කොන්ත්‍රාත්තු තාක්ෂණයේ සියලු සංකීර්ණතා තේරුම් ගන්නේ නම්, මෙම දැනුම ප්‍රායෝගිකව යෙදීමේදී ඔබට ගැටළු ඇති නොවිය යුතුය.

Cryptocurrencies සහ blockchains වටා බොහෝ සමපේක්ෂන පවතින බව පැවසිය යුතුය. අපි Cryptocurrency අනුපාතවල වෙනස්කම්, පිරමිඩ නිර්මාණය, cryptocurrency නීති සම්පාදනයේ සංකීර්ණතා ආදිය පිළිබඳ සාකච්ඡා පසෙකින් තබමු. අපගේ පුහුණු පාඨමාලාවේදී අපි Ethereum blockchain (Ethereum, Ether) හි ස්මාර්ට් කොන්ත්‍රාත්තු යෙදීම සහ ඊනියා විමධ්‍යගත යෙදුම් (බෙදාහැරුණු යෙදුම, DApp) සංවර්ධනය කිරීමේ තාක්ෂණික අංශ කෙරෙහි ප්‍රධාන වශයෙන් අවධානය යොමු කරමු.

බ්ලොක්චේන් යනු කුමක්ද?

Blockchain (Block Chain) යනු එක්තරා ආකාරයකට එකිනෙකට සම්බන්ධ වූ දත්ත කොටස් දාමයකි. දාමයේ ආරම්භයේ පළමු කොටස ඇත, එය ප්‍රාථමික බ්ලොක් (උත්පත්ති වාරණ) හෝ ජෙනසිස් බ්ලොක් ලෙස හැඳින්වේ. එය දෙවනුව, පසුව තුන්වන සහ යනාදිය අනුගමනය කරයි.

මෙම සියලු දත්ත අවහිර කිරීම් බ්ලොක්චේන් ජාලයේ බොහෝ නෝඩ් මත ස්වයංක්‍රීයව අනුපිටපත් වේ. මෙය blockchain දත්ත විමධ්‍යගත ගබඩා කිරීම සහතික කරයි.
ඔබට බ්ලොක්චේන් පද්ධතියක් ජාලයක් තුළ සම්බන්ධ වී ඇති නෝඩ් විශාල සංඛ්‍යාවක් (භෞතික හෝ අථත්‍ය සේවාදායක) ලෙස සිතිය හැකි අතර දත්ත බ්ලොක් දාමයේ සියලුම වෙනස්කම් ප්‍රතිවර්තනය කරයි. මෙය යෝධ බහු-සේවාදායක පරිගණකයක් වැනි වන අතර, එවැනි පරිගණකයක (සර්වර්) නෝඩ් ලොව පුරා විසිරී තිබිය හැක. තවද ඔබටත් ඔබගේ පරිගණකය blockchain ජාලයට එක් කළ හැක.

බෙදා හරින ලද දත්ත සමුදාය

බ්ලොක්චේන් යනු බ්ලොක්චේන් ජාලයේ සියලුම නෝඩ් හරහා ප්‍රතිනිර්මාණය වන බෙදා හරින ලද දත්ත සමුදායක් ලෙස සැලකිය හැකිය. න්‍යායාත්මකව, බ්ලොක්චේන් සියලුම බ්ලොක් ගබඩා කරමින් අවම වශයෙන් එක් නෝඩයක් ක්‍රියා කරන තාක් කල් බ්ලොක්චේන් ක්‍රියාත්මක වේ.

බෙදා හරින ලද දත්ත ලේඛනය

Blockchain දත්ත සහ මෙහෙයුම් (ගනුදෙනු) බෙදා හරින ලද ලෙජරයක් ලෙස සැලකිය හැකිය. එවැනි ලේඛනයක් සඳහා තවත් නමක් ලෙජරයක් වේ.

බෙදා හරින ලද ලෙජරයකට දත්ත එක් කළ හැකි නමුත් එය වෙනස් කිරීමට හෝ මකා දැමීමට නොහැකිය. මෙම නොහැකියාව සාක්ෂාත් කරගනු ලබන්නේ, විශේෂයෙන්ම, ගුප්ත ලේඛන ඇල්ගොරිතම, දාමයට කුට්ටි එකතු කිරීම සහ විමධ්‍යගත දත්ත ගබඩා කිරීම සඳහා විශේෂ ඇල්ගොරිතම භාවිතා කිරීමෙනි.

බ්ලොක් එකතු කිරීමේදී සහ මෙහෙයුම් සිදු කරන විට (ගනුදෙනු), පුද්ගලික සහ පොදු යතුරු භාවිතා වේ. ඔවුන් බ්ලොක්චේන් පරිශීලකයින්ට ඔවුන්ගේම දත්ත කොටස් වෙත ප්‍රවේශය ලබා දීමෙන් සීමා කරයි.

ගනුදෙනු

Blockchain බ්ලොක් වල මෙහෙයුම් (ගනුදෙනු) පිළිබඳ තොරතුරු ගබඩා කරයි. ඒ සමගම, පැරණි, දැනටමත් සම්පූර්ණ කර ඇති ගනුදෙනු ආපසු හැරවීමට හෝ වෙනස් කිරීමට නොහැකිය. නව ගනුදෙනු නව, එකතු කරන ලද කොටස්වල ගබඩා කර ඇත.

මේ ආකාරයෙන්, බ්ලොක්චේන් හි සම්පූර්ණ ගනුදෙනු ඉතිහාසය නොවෙනස්ව සටහන් කළ හැකිය. එබැවින්, බ්ලොක්චේන් භාවිතා කළ හැකිය, උදාහරණයක් ලෙස, බැංකු ගනුදෙනු, ප්‍රකාශන හිමිකම් තොරතුරු, දේපල හිමියන්ගේ වෙනස්වීම් ඉතිහාසය ආදිය ආරක්ෂිතව ගබඩා කිරීමට.

Ethereum blockchain හි ඊනියා පද්ධති තත්වයන් අඩංගු වේ. ගනුදෙනු ක්‍රියාත්මක වන විට, ප්‍රාන්තය ආරම්භක තත්වයේ සිට වත්මන් තත්වයට වෙනස් වේ. ගනුදෙනු බ්ලොක් වල සටහන් වේ.

පොදු සහ පෞද්ගලික අවහිරතා

මෙහි සඳහන් කළ යුතු සෑම දෙයක්ම සත්‍ය වන්නේ කිසිදු පුද්ගලයෙකුට හෝ නීතිමය ආයතනයකට, රාජ්‍ය ආයතනයකට හෝ රජයකට පාලනය කළ නොහැකි ඊනියා පොදු බ්ලොක්චේන් ජාල සඳහා පමණක් බව සඳහන් කළ යුතුය.
ඊනියා පුද්ගලික බ්ලොක්චේන් ජාල ඔවුන්ගේ නිර්මාතෘවරුන්ගේ පූර්ණ පාලනය යටතේ පවතින අතර, ඕනෑම දෙයක් එහි කළ හැකිය, උදාහරණයක් ලෙස, දාමයේ සියලුම කොටස් සම්පූර්ණයෙන්ම ප්‍රතිස්ථාපනය කිරීම.

blockchain හි ප්‍රායෝගික යෙදුම්

Blockchain ප්රයෝජනවත් විය හැක්කේ කුමක් සඳහාද?

කෙටියෙන් කිවහොත්, එකිනෙකා විශ්වාස නොකරන පුද්ගලයින් හෝ සමාගම් අතර ආරක්ෂිතව ගනුදෙනු (ගනුදෙනු) සිදු කිරීමට blockchain ඔබට ඉඩ සලසයි. බ්ලොක්චේන් හි වාර්තා කර ඇති දත්ත (ගනුදෙනු, පුද්ගලික දත්ත, ලේඛන, සහතික, කොන්ත්‍රාත්තු, ඉන්වොයිසි, ආදිය) පටිගත කිරීමෙන් පසු අසත්‍ය කිරීමට හෝ ප්‍රතිස්ථාපනය කිරීමට නොහැක. එබැවින්, බ්ලොක්චේන් මත පදනම්ව, විවිධ වර්ගයේ ලේඛනවල විශ්වාසදායක බෙදාහැරීමේ ලේඛන නිර්මාණය කළ හැකිය.

ඇත්ත වශයෙන්ම, සාමාන්‍ය කඩදාසි මුදල් ප්‍රතිස්ථාපනය කිරීම සඳහා නිර්මාණය කර ඇති බ්ලොක්චේන් පදනම මත ගුප්තකේතන මුදල් පද්ධති නිර්මාණය කරන බව ඔබ දන්නවා. කඩදාසි මුදල් ෆියට් ලෙසද හැඳින්වේ (ෆියට් මුදල් වලින්).
බ්ලොක්චේන් බ්ලොක් වල සටහන් කර ඇති ගනුදෙනු වල ගබඩා කිරීම සහ වෙනස් නොවන බව සහතික කරයි, එබැවින් එය ගුප්තකේතන මුදල් පද්ධති නිර්මාණය කිරීමට භාවිතා කළ හැකිය. විවිධ පරිශීලකයින් (ගිණුම්) අතර ක්‍රිප්ටෝ අරමුදල් මාරු කිරීමේ සම්පූර්ණ ඉතිහාසය එහි අඩංගු වන අතර ඕනෑම මෙහෙයුමක් නිරීක්ෂණය කළ හැකිය.

ගුප්ත ව්‍යවහාර මුදල් පද්ධති තුළ සිදුවන ගනුදෙනු නිර්නාමික විය හැකි වුවද, ගුප්තකේතන මුදල් ආපසු ගැනීම සහ එය ෆියට් මුදල් සඳහා හුවමාරු කිරීම සාමාන්‍යයෙන් ගුප්ත ව්‍යවහාර මුදල් වත්කමේ හිමිකරුගේ අනන්‍යතාවය හෙළි කිරීමට හේතු වේ.

Ethereum ජාලයේ ක්රියාත්මක වන මෘදුකාංගයක් වන ඊනියා ස්මාර්ට් කොන්ත්රාත්, ගනුදෙනු අවසන් කිරීමේ ක්රියාවලිය සහ ඒවා ක්රියාත්මක කිරීම අධීක්ෂණය කිරීමේ ක්රියාවලිය ස්වයංක්රීය කිරීමට ඔබට ඉඩ සලසයි. Ether cryptocurrency භාවිතයෙන් ගනුදෙනුව සඳහා ගෙවීම සිදු කරන්නේ නම් මෙය විශේෂයෙන් ඵලදායී වේ.

Solidity ක්‍රමලේඛන භාෂාවෙන් ලියා ඇති Ethereum blockchain සහ Ethereum ස්මාර්ට් කොන්ත්‍රාත්තු භාවිතා කළ හැක, උදාහරණයක් ලෙස, පහත සඳහන් ක්ෂේත්‍රවල:

  • ලේඛන නොතාරිස් කිරීම සඳහා විකල්පයක්;
  • නිශ්චල දේපල වස්තු පිළිබඳ ලේඛනයක් ගබඩා කිරීම සහ දේපල වස්තු සමඟ ගනුදෙනු පිළිබඳ තොරතුරු;
  • බුද්ධිමය දේපල පිළිබඳ ප්රකාශන හිමිකම් තොරතුරු ගබඩා කිරීම (පොත්, රූප, සංගීත කෘති, ආදිය);
  • ස්වාධීන ඡන්ද ක්රම නිර්මාණය කිරීම;
  • මූල්ය සහ බැංකු;
  • ජාත්යන්තර පරිමාණයෙන් සැපයුම්, භාණ්ඩ චලනය නිරීක්ෂණය කිරීම;
  • හැඳුනුම්පත් පද්ධතියට ප්රතිසමයක් ලෙස පුද්ගලික දත්ත ගබඩා කිරීම;
  • වාණිජ ක්ෂේත්රයේ ආරක්ෂිත ගනුදෙනු;
  • වෛද්ය පරීක්ෂණවල ප්රතිඵල මෙන්ම, නියමිත ක්රියා පටිපාටිවල ඉතිහාසය ගබඩා කිරීම

බ්ලොක්චේන් සමඟ ගැටළු

එහෙත්, ඇත්ත වශයෙන්ම, සෑම දෙයක්ම පෙනෙන තරම් සරල නොවේ!

බ්ලොක්චේන් වෙත දත්ත එකතු කිරීමට පෙර එය සත්‍යාපනය කිරීමේ ගැටළු ඇත (උදාහරණයක් ලෙස, ඒවා ව්‍යාජද?), බ්ලොක්චේන් සමඟ වැඩ කිරීමට භාවිතා කරන පද්ධතියේ සහ යෙදුම් මෘදුකාංගවල ආරක්ෂාව පිළිබඳ ගැටළු, ප්‍රවේශය සොරකම් කිරීමට සමාජ ඉංජිනේරු ක්‍රම භාවිතා කිරීමේ හැකියාව පිළිබඳ ගැටළු ඇත. ගුප්තකේතන මුදල් පසුම්බි ආදියට .P.

නැවතත්, අපි කතා කරන්නේ ලොව පුරා විසිරී ඇති පොදු බ්ලොක්චේන් එකක් ගැන නොව, පුද්ගලයෙකුට හෝ සංවිධානයකට අයත් පුද්ගලික බ්ලොක්චේන් එකක් ගැන නම්, මෙහි විශ්වාසයේ මට්ටම විශ්වාස මට්ටමට වඩා ඉහළ නොවනු ඇත. මෙම පුද්ගලයා හෝ මෙම සංවිධානය තුළ.

බ්ලොක්චේන් හි සටහන් කර ඇති දත්ත සෑම කෙනෙකුටම ලබා ගත හැකි බව ද සැලකිල්ලට ගත යුතුය. මෙම අර්ථයෙන්, රහසිගත තොරතුරු ගබඩා කිරීම සඳහා blockchain (විශේෂයෙන් පොදු) සුදුසු නොවේ. කෙසේ වෙතත්, බ්ලොක්චේන් පිළිබඳ තොරතුරු වෙනස් කළ නොහැකි බව විවිධ ආකාරයේ වංචනික ක්‍රියාකාරකම් වැළැක්වීමට හෝ විමර්ශනය කිරීමට උපකාරී වේ.

Ethereum විමධ්‍යගත යෙදුම් ඔබ cryptocurrency සමඟ භාවිතා කිරීම සඳහා ගෙවන්නේ නම් පහසු වනු ඇත. Cryptocurrency හිමි හෝ එය මිලදී ගැනීමට කැමති පුද්ගලයින් වැඩි වන තරමට, DApps සහ ස්මාර්ට් ගිවිසුම් වඩාත් ජනප්‍රිය වනු ඇත.

එහි ප්‍රායෝගික යෙදුමට බාධා කරන බ්ලොක්චේන් සමඟ ඇති පොදු ගැටළු අතරට නව කොටස් එකතු කළ හැකි සීමිත වේගය සහ ගනුදෙනුවල සාපේක්ෂ ඉහළ පිරිවැය ඇතුළත් වේ. නමුත් මෙම ප්රදේශයේ තාක්ෂණය ක්රියාශීලීව සංවර්ධනය වෙමින් පවතින අතර, කාලයත් සමඟ තාක්ෂණික ගැටළු විසඳනු ඇතැයි බලාපොරොත්තු වේ.

තවත් ගැටළුවක් වන්නේ Ethereum blockchain මත ඇති ස්මාර්ට් කොන්ත්‍රාත්තු අථත්‍ය යන්ත්‍රවල හුදකලා පරිසරයක ක්‍රියාත්මක වන අතර සැබෑ ලෝක දත්ත වෙත ප්‍රවේශය නොමැති වීමයි. විශේෂයෙන්ම, ස්මාර්ට් කොන්ත්‍රාත් වැඩසටහනට අඩවි හෝ ඕනෑම භෞතික උපාංගයකින් (සංවේදක, සම්බන්ධතා, ආදිය) දත්ත කියවිය නොහැකි අතර, කිසිදු බාහිර උපාංගයකට දත්ත ප්‍රතිදානය කළ නොහැක. ස්මාර්ට් කොන්ත්‍රාත්තුවේ තොරතුරු අතරමැදියන් වන ඊනියා Oracles සඳහා කැප වූ පාඩමකින් අපි මෙම ගැටලුව සහ එය විසඳීමට ක්‍රම සාකච්ඡා කරමු.

නීතිමය සීමාවන් ද ඇත. සමහර රටවල, උදාහරණයක් ලෙස, ගෙවීමේ මාධ්‍යයක් ලෙස cryptocurrency භාවිතා කිරීම තහනම් කර ඇත, නමුත් ඔබට සුරැකුම්පත් වැනි ඩිජිටල් වත්කම් ලෙස එය අයිති කර ගත හැකිය. එවැනි වත්කම් හුවමාරුවෙන් මිලදී ගැනීමට සහ විකිණීමට හැකිය. ඕනෑම අවස්ථාවක, ක්‍රිප්ටෝ මුදල් සමඟ ක්‍රියා කරන ව්‍යාපෘතියක් නිර්මාණය කිරීමේදී, ඔබේ ව්‍යාපෘතිය වැටෙන රටේ නීති සම්පාදනය පිළිබඳව ඔබ හුරුපුරුදු විය යුතුය.

බ්ලොක්චේන් දාමයක් සෑදෙන ආකාරය

අප දැනටමත් පවසා ඇති පරිදි, බ්ලොක්චේන් යනු දත්ත අවහිර කිරීමේ සරල දාමයකි. පළමුව, මෙම දාමයේ පළමු කොටස සෑදී ඇත, පසුව දෙවැන්න එයට එකතු වේ, සහ එසේ ය. ගණුදෙණු දත්ත කුට්ටි වල ගබඩා කර ඇති බවට උපකල්පනය කර ඇති අතර, වඩාත් මෑත බ්ලොක් එකට එකතු කරනු ලැබේ.

රූපයේ. 1.1 අපි බ්ලොක් අනුක්‍රමයක සරලම අනුවාදය පෙන්වමු, එහිදී පළමු කොටස ඊළඟ එක වෙත යොමු කරයි.

පොත "Ethereum blockchain සඳහා Solidity ස්මාර්ට් කොන්ත්රාත්තු නිර්මාණය කිරීම. ප්‍රායෝගික මාර්ගෝපදේශය"
සහල්. 1.1 බ්ලොක් වල සරල අනුපිළිවෙල

කෙසේ වෙතත්, මෙම විකල්පය සමඟ, දම්වැලේ ඇති ඕනෑම බ්ලොක් එකක අන්තර්ගතයට හානි කිරීම ඉතා පහසු වේ, මන්ද බ්ලොක් වල වෙනස්කම් වලින් ආරක්ෂා වීමට කිසිදු තොරතුරක් අඩංගු නොවේ. බ්ලොක්චේන් යනු විශ්වාසයක් නොමැති පුද්ගලයින් සහ සමාගම් විසින් භාවිතා කිරීමට අදහස් කරන බව සලකන විට, දත්ත ගබඩා කිරීමේ මෙම ක්‍රමය blockchain සඳහා සුදුසු නොවන බව අපට නිගමනය කළ හැකිය.

ව්යාජ මුදල් වලින් කුට්ටි ආරක්ෂා කිරීම ආරම්භ කරමු. පළමු අදියරේදී, අපි චෙක්සම් සමඟ එක් එක් බ්ලොක් ආරක්ෂා කිරීමට උත්සාහ කරමු (රූපය 1.2).

පොත "Ethereum blockchain සඳහා Solidity ස්මාර්ට් කොන්ත්රාත්තු නිර්මාණය කිරීම. ප්‍රායෝගික මාර්ගෝපදේශය"
සහල්. 1.2 චෙක්සම් සමඟ මෙම කුට්ටි සඳහා ආරක්ෂාව එකතු කිරීම

දැන් ප්‍රහාරකයෙකුට බ්ලොක් එක වෙනස් කළ නොහැක, මන්ද එහි බ්ලොක් දත්තවල චෙක්සම් අඩංගු වේ. චෙක්සම් පරීක්ෂා කිරීමෙන් දත්ත වෙනස් වී ඇති බව පෙන්වනු ඇත.

චෙක්සම් ගණනය කිරීම සඳහා, ඔබට MD-5, SHA-1, SHA-256 වැනි හැෂිං ශ්‍රිතයන්ගෙන් එකක් භාවිතා කළ හැක. Hash ශ්‍රිතයන් දත්ත සමූහයක් මත ආපසු හැරවිය නොහැකි මෙහෙයුම් සිදු කිරීමෙන් අගයක් (උදාහරණයක් ලෙස, නියත දිගකින් යුත් පෙළ පෙළක්) ගණනය කරයි. මෙහෙයුම් හැෂ් ශ්‍රිතයේ වර්ගය මත රඳා පවතී.

ඩේටා බ්ලොක් එකේ අන්තර්ගතය සුළු වශයෙන් වෙනස් වුවද, හෑෂ් අගයද වෙනස් වේ. හැෂ් ශ්‍රිත අගය විශ්ලේෂණය කිරීමෙන්, එය ගණනය කරන ලද දත්ත වාරණය ප්‍රතිනිර්මාණය කළ නොහැක.

එවැනි ආරක්ෂාවක් ප්රමාණවත් වේද? අවාසනාවකට නැත.

මෙම යෝජනා ක්‍රමයේදී චෙක්සම් (හැෂ් ශ්‍රිතය) තනි තනි කොටස් පමණක් ආරක්ෂා කරයි, නමුත් සම්පූර්ණ බ්ලොක්චේන් නොවේ. හැෂ් ශ්‍රිතය ගණනය කිරීමේ ඇල්ගොරිතම දැන ගැනීමෙන්, ප්‍රහාරකයෙකුට බ්ලොක් එකක අන්තර්ගතය පහසුවෙන් ප්‍රතිස්ථාපනය කළ හැකිය. එසේම, දම්වැලෙන් කුට්ටි ඉවත් කිරීම හෝ නව ඒවා එකතු කිරීම කිසිවක් ඔහුව වළක්වන්නේ නැත.

සමස්තයක් ලෙස සම්පූර්ණ දාමය ආරක්ෂා කිරීම සඳහා, ඔබට එක් එක් බ්ලොක් එකක, දත්ත සමඟ, පෙර කොටසේ දත්තවල හැෂ් එකක් ගබඩා කළ හැකිය (රූපය 1.3).

පොත "Ethereum blockchain සඳහා Solidity ස්මාර්ට් කොන්ත්රාත්තු නිර්මාණය කිරීම. ප්‍රායෝගික මාර්ගෝපදේශය"
සහල්. 1.3 කලින් බ්ලොක් එකේ හැෂ් එක ඩේටා බ්ලොක් එකට එකතු කරන්න

මෙම යෝජනා ක්‍රමයේදී, බ්ලොක් එකක් වෙනස් කිරීම සඳහා, ඔබට පසුව ඇති සියලුම බ්ලොක් වල හැෂ් ක්‍රියාකාරකම් නැවත ගණනය කළ යුතුය. පෙනෙන විදිහට, ගැටලුව කුමක්ද?

සැබෑ අවහිර කිරීම් වලදී, නව බ්ලොක් එකතු කිරීම සඳහා කෘතිම දුෂ්කරතා අතිරේකව නිර්මාණය කර ඇත - බොහෝ පරිගණක සම්පත් අවශ්ය වන ඇල්ගොරිතම භාවිතා කරනු ලැබේ. බ්ලොක් එකක වෙනස්කම් සිදු කිරීම සඳහා, ඔබ මෙම එක් බ්ලොක් එකක් පමණක් නොව, පසුව ඇති සියලුම ඒවා නැවත ගණනය කළ යුතු බව සලකන විට, මෙය කිරීම අතිශයින් දුෂ්කර වනු ඇත.

බ්ලොක්චේන් දත්ත බොහෝ ජාල නෝඩ් වල ගබඩා කර ඇති බව (අනුපිටපත්) මතක තබා ගනිමු, i.e. විමධ්‍යගත ගබඩාව භාවිතා වේ. තවද මෙය බ්ලොක් එකක් ව්‍යාජ ලෙස සකස් කිරීම වඩාත් අපහසු කරයි, මන්ද සියලුම ජාල නෝඩ් වලට වෙනස්කම් සිදු කළ යුතුය.

බ්ලොක් පෙර බ්ලොක් පිළිබඳ තොරතුරු ගබඩා කර ඇති බැවින්, දාමයේ ඇති සියලුම බ්ලොක් වල අන්තර්ගතය පරීක්ෂා කළ හැකිය.

Ethereum blockchain

Ethereum blockchain යනු බෙදා හරින ලද DApps නිර්මාණය කළ හැකි වේදිකාවකි. අනෙකුත් වේදිකා මෙන් නොව, Solidity ක්‍රමලේඛන භාෂාවෙන් ලියා ඇති ඊනියා ස්මාර්ට් කොන්ත්‍රාත්තු (ස්මාර්ට් කොන්ත්‍රාත්තු) භාවිතා කිරීමට Ethereum ඉඩ දෙයි.

මෙම වේදිකාව 2013 දී Bitcoin සඟරාවේ නිර්මාතෘ Vitalik Buterin විසින් නිර්මාණය කරන ලද අතර 2015 දී දියත් කරන ලදී. අපගේ පුහුණු පාඨමාලාවේදී අප අධ්‍යයනය කරන හෝ කරන සෑම දෙයක්ම Ethereum blockchain සහ Solidity ස්මාර්ට් කොන්ත්‍රාත්තුවලට විශේෂයෙන්ම සම්බන්ධ වේ.

පතල් කැණීම හෝ කුට්ටි නිර්මාණය කරන ආකාරය

පතල් කැණීම යනු බ්ලොක්චේන් දාමයට නව කුට්ටි එකතු කිරීමේ තරමක් සංකීර්ණ හා සම්පත්-දැඩි ක්‍රියාවලියක් වන අතර එය කිසිසේත්ම “ගුප්ත ව්‍යවහාර මුදල් කැණීම” නොවේ. පතල් කැණීම අවහිර කිරීමේ ක්‍රියාකාරිත්වය සහතික කරයි, මන්ද Ethereum blockchain වෙත ගනුදෙනු එකතු කිරීම සඳහා වගකිව යුතු මෙම ක්‍රියාවලියයි.

කුට්ටි එකතු කිරීමට සම්බන්ධ පුද්ගලයින් සහ සංවිධාන පතල් කම්කරුවන් ලෙස හැඳින්වේ.
මයිනර් නෝඩ් මත ක්‍රියාත්මක වන මෘදුකාංගය ජාලය විසින් නිශ්චිතව දක්වා ඇති හෑෂ් අගයක් ලබා ගැනීම සඳහා අවසන් වාරණ සඳහා Nonce ලෙස හැඳින්වෙන හැෂිං පරාමිතියක් සොයා ගැනීමට උත්සාහ කරයි. Ethereum හි භාවිතා වන Ethash හැෂිං ඇල්ගොරිතම ඔබට Nonce අගය ලබා ගැනීමට ඉඩ දෙන්නේ අනුක්‍රමික සෙවුම හරහා පමණි.

පතල් නෝඩය නිවැරදි Nonce අගය සොයා ගන්නේ නම්, මෙය ඊනියා කාර්යයේ සාධනය (PoW, Proof-of-work) වේ. මෙම අවස්ථාවෙහිදී, Ethereum ජාලයට බ්ලොක් එකක් එකතු කළහොත්, පතල් කම්කරුවා ජාල මුදල් ඒකකයේ යම් විපාකයක් ලබා ගනී - ඊතර්. ලියන අවස්ථාවේදී, විපාකය 5 Ether වේ, නමුත් මෙය කාලයත් සමඟ අඩු වනු ඇත.

මේ අනුව, Ethereum පතල් කම්කරුවන් බ්ලොක් එකතු කිරීමෙන් ජාලයේ ක්‍රියාකාරිත්වය සහතික කරන අතර මේ සඳහා cryptocurrency මුදල් ලබා ගනී. පතල් කම්කරුවන් සහ පතල් කැණීම් පිළිබඳව ඔබට අන්තර්ජාලයේ බොහෝ තොරතුරු සොයා ගත හැකි වනු ඇත, නමුත් අපි Ethereum ජාලයේ Solidity ගිවිසුම් සහ DApps නිර්මාණය කිරීමට අවධානය යොමු කරන්නෙමු.

පාඩම් සාරාංශය

පළමු පාඩමේදී, ඔබ බ්ලොක්චේන් සමඟ දැන හඳුනා ගත් අතර එය විශේෂයෙන් සකස් කරන ලද බ්ලොක් අනුපිළිවෙලක් බව ඉගෙන ගත්තේය. බොහෝ සම්පත් සහ කාලය අවශ්‍ය වන බොහෝ ජාල නෝඩ් වල සියලුම පසුකාලීන කොටස් නැවත ගණනය කිරීම අවශ්‍ය වන බැවින්, කලින් පටිගත කරන ලද බ්ලොක් වල අන්තර්ගතය වෙනස් කළ නොහැක.

ගනුදෙනු වල ප්රතිඵල ගබඩා කිරීම සඳහා Blockchain භාවිතා කළ හැකිය. එහි ප්‍රධාන අරමුණ වන්නේ විශ්වාසයක් නොමැති පාර්ශ්ව (පුද්ගලයින් සහ සංවිධාන) අතර ආරක්ෂිත ගනුදෙනු සංවිධානය කිරීමයි. Ethereum blockchain සහ Solidity ස්මාර්ට් කොන්ත්‍රාත්තු භාවිතා කළ හැක්කේ කුමන විශේෂිත ව්‍යාපාර ක්ෂේත්‍රවලද සහ කුමන ක්ෂේත්‍රවලද යන්න ඔබ ඉගෙන ගත්තේය. මෙය බැංකු අංශය, දේපල හිමිකම් ලියාපදිංචි කිරීම, ලේඛන ආදියයි.

බ්ලොක්චේන් භාවිතා කිරීමේදී විවිධ ගැටළු ඇති විය හැකි බව ඔබ ඉගෙන ගත්තා. මේවා බ්ලොක්චේන් වෙත එකතු කරන ලද තොරතුරු සත්‍යාපනය කිරීමේ ගැටළු, බ්ලොක්චේන්හි වේගය, ගනුදෙනුවල පිරිවැය, ස්මාර්ට් කොන්ත්‍රාත්තු සහ සැබෑ ලෝකය අතර දත්ත හුවමාරු කිරීමේ ගැටළුව මෙන්ම පරිශීලක ගිණුම් වලින් ගුප්තකේතන මුදල් අරමුදල් සොරකම් කිරීම අරමුණු කරගත් ප්‍රහාරකයින්ගේ විභව ප්‍රහාර වේ. .

බ්ලොක්චේන් එකට නව බ්ලොක් එකතු කිරීමේ ක්‍රියාවලිය ලෙස අපි පතල් කැණීම ගැන කෙටියෙන් කතා කළෙමු. ගනුදෙනු සම්පූර්ණ කිරීම සඳහා පතල් කැණීම අවශ්ය වේ. පතල් කැණීමේ යෙදී සිටින අය blockchain වල ක්‍රියාකාරිත්වය සහතික කරන අතර මේ සඳහා cryptocurrency හි ත්‍යාගයක් ලබා ගනී.

පාඩම 2. Ubuntu සහ Debian OS හි වැඩ කරන පරිසරයක් සකස් කිරීමමෙහෙයුම් පද්ධතියක් තෝරා ගැනීම
අවශ්ය උපයෝගිතා ස්ථාපනය කිරීම
උබුන්ටු මත Geth සහ Swarm ස්ථාපනය කිරීම
Debian මත Geth සහ Swarm ස්ථාපනය කිරීම
මූලික සූදානම
Go බෙදාහැරීම බාගනිමින්
පරිසර විචල්‍යයන් සැකසීම
Go අනුවාදය පරීක්ෂා කිරීම
Geth සහ Swarm ස්ථාපනය කිරීම
පුද්ගලික blockchain නිර්මාණය කිරීම
genesis.json ගොනුව සකස් කරමින්
වැඩ සඳහා නාමාවලියක් සාදන්න
ගිණුමක් තනන්න
නෝඩ් ආරම්භ කිරීම ආරම්භ කිරීම
නෝඩ් දියත් කිරීමේ විකල්ප
අපගේ නෝඩයට සම්බන්ධ කරන්න
පතල් කළමනාකරණය සහ ශේෂය පරීක්ෂා කිරීම
ගෙත් කොන්සෝලය වසා දැමීම
පාඩම් සාරාංශය

පාඩම 3. Raspberry Pi 3 හි වැඩ කරන පරිසරය සකස් කිරීමවැඩ සඳහා Raspberry Pi 3 සූදානම් කිරීම
Rasberian ස්ථාපනය කිරීම
යාවත්කාලීන ස්ථාපනය කිරීම
SSH ප්‍රවේශය සබල කරමින්
ස්ථිතික IP ලිපිනයක් සැකසීම
අවශ්ය උපයෝගිතා ස්ථාපනය කිරීම
Go ස්ථාපනය කිරීම
Go බෙදාහැරීම බාගනිමින්
පරිසර විචල්‍යයන් සැකසීම
Go අනුවාදය පරීක්ෂා කිරීම
Geth සහ Swarm ස්ථාපනය කිරීම
පුද්ගලික blockchain නිර්මාණය කිරීම
ඔබගේ ගිණුම සහ ශේෂය පරීක්ෂා කිරීම
පාඩම් සාරාංශය

පාඩම 4. ගිණුම් සහ ගිණුම් අතර අරමුදල් මාරු කිරීමගිණුම් බලන්න සහ එකතු කරන්න
ගිණුම් ලැයිස්තුවක් බලන්න
ගිණුමක් එකතු කිරීම
get account command options
ගිණුම් මුරපද
Ethereum හි Cryptocurrency
Ethereum මුදල් ඒකක
අපගේ ගිණුම්වල වත්මන් ශේෂය අපි තීරණය කරමු
එක් ගිණුමකින් තවත් ගිණුමකට අරමුදල් මාරු කරන්න
eth.sendTransaction ක්‍රමය
ගනුදෙනු තත්ත්වය බලන්න
ගනුදෙනු රිසිට්පත
පාඩම් සාරාංශය

පාඩම 5. ඔබේ පළමු කොන්ත්රාත්තුව ප්රකාශයට පත් කිරීමEthereum හි ස්මාර්ට් ගිවිසුම්
ස්මාර්ට් කොන්ත්රාත්තුව ක්රියාත්මක කිරීම
Ethereum Virtual Machine
ඒකාබද්ධ සංවර්ධන පරිසරය Remix Solidity IDE
ධාවන සම්පාදනය
කොන්ත්රාත්තුවේ කාර්යයන් ඇමතීම
පුද්ගලික ජාලයක කොන්ත්රාත්තුවක් ප්රකාශයට පත් කිරීම
ABI නිර්වචනය සහ ගිවිසුම් ද්විමය කේතය ලබා ගැනීම
කොන්ත්රාත්තුව ප්රකාශයට පත් කිරීම
කොන්ත්‍රාත්තුවේ ප්‍රකාශන ගනුදෙනු තත්ත්වය පරීක්ෂා කිරීම
කොන්ත්රාත්තුවේ කාර්යයන් ඇමතීම
කණ්ඩායම් සම්පාදක සොල්ක්
Ubuntu මත solc ස්ථාපනය කිරීම
Debian මත solc ස්ථාපනය කිරීම
HelloSol ගිවිසුම සම්පාදනය කිරීම
කොන්ත්රාත්තුව ප්රකාශයට පත් කිරීම
Rasberian මත solc ස්ථාපනය කිරීම
පාඩම් සාරාංශය

පාඩම 6. ස්මාර්ට් ගිවිසුම් සහ Node.jsNode.js ස්ථාපනය කිරීම
උබුන්ටු මත ස්ථාපනය
ඩේබියන් මත ස්ථාපනය කිරීම
Ganache-cli ස්ථාපනය කිරීම සහ ධාවනය කිරීම
Web3 ස්ථාපනය
සොල්ක් ස්ථාපනය කිරීම
Rasberian මත Node.js ස්ථාපනය කිරීම
කොන්සෝලයේ ගිණුම් ලැයිස්තුවක් ලබා ගැනීමට ස්ක්‍රිප්ට්
ස්මාර්ට් කොන්ත්‍රාත්තුවක් ප්‍රකාශයට පත් කිරීම සඳහා ස්ක්‍රිප්ට්
දියත් කර පරාමිතීන් ලබා ගන්න
දියත් කිරීමේ විකල්ප ලබා ගැනීම
ගිවිසුම් සම්පාදනය
ඔබගේ ගිණුම අවහිර කිරීම ඉවත් කිරීම
ABI සහ ගිවිසුම් ද්විමය කේතය පූරණය කිරීම
අවශ්ය ගෑස් ප්රමාණය ඇස්තමේන්තු කිරීම
වස්තුවක් සාදා ගිවිසුමක් ප්‍රකාශයට පත් කිරීම ආරම්භ කරන්න
කොන්ත්‍රාත් ප්‍රකාශන පිටපත ක්‍රියාත්මක කිරීම
ස්මාර්ට් කොන්ත්‍රාත්තු කාර්යයන් ඇමතීම
ප්‍රකාශිත ස්මාර්ට් කොන්ත්‍රාත්තුවක් යාවත්කාලීන කළ හැකිද?
Web3 අනුවාදය 1.0.x සමඟ වැඩ කිරීම
ගිණුම් ලැයිස්තුවක් ලබා ගැනීම
කොන්ත්රාත්තුව ප්රකාශයට පත් කිරීම
කොන්ත්රාත්තුවේ කාර්යයන් ඇමතීම
එක් ගිණුමකින් තවත් ගිණුමකට අරමුදල් මාරු කරන්න
කොන්ත්රාත් ගිණුමට අරමුදල් මාරු කරන්න
HelloSol ස්මාර්ට් කොන්ත්‍රාත්තුව යාවත්කාලීන කිරීම
ඔබගේ ගිණුමේ ශේෂය බැලීමට ස්ක්‍රිප්ට් එකක් සාදන්න
call_contract_get_promise.js ස්ක්‍රිප්ටයට getBalance ශ්‍රිතයට ඇමතුමක් එක් කරන්න
අපි ස්මාර්ට් කොන්ත්‍රාත් ගිණුම පුරවන්නෙමු
පාඩම් සාරාංශය

පාඩම 7: Truffle හැඳින්වීමTruffle ස්ථාපනය කිරීම
HelloSol ව්‍යාපෘතියක් සාදන්න
ව්යාපෘති නාමාවලිය සහ ගොනු නිර්මාණය කිරීම
ගිවිසුම් නාමාවලිය
නාමාවලි සංක්‍රමණ
නාමාවලි පරීක්ෂණය
truffle-config.js ගොනුව
HelloSol ගිවිසුම සම්පාදනය කිරීම
කොන්ත්රාත්තුවක් ප්රකාශයට පත් කිරීම ආරම්භ කරන්න
Truffle Prompt එකක HelloSol කොන්ත්‍රාත් කාර්යයන් ඇමතීම
Node.js ධාවනය වන JavaScript ස්ක්‍රිප්ට් එකකින් HelloSol ගිවිසුම් කාර්යයන් ඇමතීම
ට්රෆල්-කොන්ත්රාත් මොඩියුලය ස්ථාපනය කිරීම
කොන්ත්‍රාත් ක්‍රියාවන් getValue සහ getString ඇමතීම
ඇමතුම් ගිවිසුම් කාර්යයන් setValue සහ setString
කොන්ත්රාත් වෙනස් කිරීම සහ නැවත ප්රකාශයට පත් කිරීම
Web3 අනුවාදය 1.0.x සමඟ වැඩ කිරීම
HelloSol ස්මාර්ට් කොන්ත්‍රාත්තුවේ වෙනස්කම් සිදු කිරීම
ගිවිසුම් ක්‍රම ඇමතීම සඳහා ස්ක්‍රිප්ට්
ට්රෆල් හි පරීක්ෂා කිරීම
ඝනත්ව පරීක්ෂණය
JavaScript පරීක්ෂණය
පාඩම් සාරාංශය

පාඩම 8. ඝන දත්ත වර්ගදත්ත වර්ග ඉගෙනීම සඳහා ගිවිසුම
බූලියන් දත්ත වර්ග
අත්සන් නොකළ පූර්ණ සංඛ්‍යා සහ අත්සන් කළ පූර්ණ සංඛ්‍යා
ස්ථාවර ලක්ෂ්‍ය සංඛ්‍යා
ලිපිනය
සංකීර්ණ වර්ගවල විචල්යයන්
ස්ථාවර ප්‍රමාණයේ අරා
ගතික අරා
මාරු
ව්යුහයන්
ශබ්දකෝෂ සිතියම්ගත කිරීම
පාඩම් සාරාංශය

පාඩම 9. පුද්ගලික ජාලයට සහ Rinkeby ජාලයට ගිවිසුම් සංක්රමණය කිරීමට්‍රෆල් වෙතින් පුද්ගලික ගෙත් ජාලයට ගිවිසුමක් ප්‍රකාශයට පත් කිරීම
පුද්ගලික ජාල නෝඩයක් සූදානම් කිරීම
වැඩ සඳහා කොන්ත්රාත්තුවක් සකස් කිරීම
ට්‍රෆල් ජාලයට කොන්ත්‍රාත්තුවක් සම්පාදනය කිරීම සහ සංක්‍රමණය කිරීම
දේශීය ජාල සංක්‍රමණය ආරම්භ කිරීම
ට්රෆල් කෞතුක වස්තු ලබා ගැනීම
Truffle සිට Rinkeby testnet වෙත ගිවිසුමක් ප්‍රකාශයට පත් කිරීම
Rinkeby සමඟ වැඩ කිරීමට Geth node එකක් සූදානම් කිරීම
නෝඩ් සමමුහුර්තකරණය
ගිණුම් එකතු කිරීම
ඔබගේ Rinkeby ගිණුම ඊතර් සමඟ ඉහළට ගෙන ඒම
Rinkeby ජාලයට ගිවිසුම් සංක්‍රමණය දියත් කිරීම
Rinkeby ජාලයේ ගිවිසුම් තොරතුරු බැලීම
Rinkeby Network සඳහා Truffle Console
කොන්ත්රාත් කාර්යයන් ඇමතීමට පහසු ක්රමයකි
Node.js භාවිතයෙන් කොන්ත්‍රාත් ක්‍රම ඇමතීම
Rinkby සඳහා Truffle කොන්සෝලයේ ගිණුම් අතර අරමුදල් මාරු කරන්න
පාඩම් සාරාංශය

පාඩම 10. Ethereum Swarm විමධ්‍යගත දත්ත ගබඩාවEthereum Swarm ක්‍රියා කරන්නේ කෙසේද?
Swarm ස්ථාපනය කිරීම සහ දියත් කිරීම
ගොනු සහ නාමාවලි සමඟ මෙහෙයුම්
Ethereum Swarm වෙත ගොනුවක් උඩුගත කිරීම
Ethereum Swarm වෙතින් ගොනුවක් කියවීම
උඩුගත කළ ගොනුවක මැනිෆෙස්ටය බලන්න
උප බහලුම් සමඟ නාමාවලි පූරණය කිරීම
බාගත කළ නාමාවලියකින් ගොනුවක් කියවීම
පොදු රංචු දොරටුවක් භාවිතා කිරීම
Node.js ස්ක්‍රිප්ට් වලින් Swarm වෙත ප්‍රවේශ වීම
Perl Net::Ethereum::Swarm මොඩියුලය
Net::Ethereum::Swarm මොඩියුලය ස්ථාපනය කිරීම
දත්ත ලිවීම සහ කියවීම
පාඩම් සාරාංශය

පාඩම 11. පයිතන් හි Ethereum සමඟ වැඩ කිරීම සඳහා Web3.py රාමුවWeb3.py ස්ථාපනය කිරීම
අවශ්ය පැකේජ යාවත්කාලීන කිරීම සහ ස්ථාපනය කිරීම
easysolc මොඩියුලය ස්ථාපනය කිරීම
Web3.py භාවිතයෙන් කොන්ත්‍රාත්තුවක් ප්‍රකාශයට පත් කිරීම
ගිවිසුම් සම්පාදනය
සැපයුම්කරුවෙකු වෙත සම්බන්ධ වීම
කොන්ත්රාත් ප්රකාශනය ක්රියාත්මක කරන්න
ගිවිසුම් ලිපිනය සහ අබි ගොනුවක සුරැකීම
කොන්ත්‍රාත් ප්‍රකාශන පිටපත ක්‍රියාත්මක කිරීම
කොන්ත්රාත් ක්රම ඇමතීම
JSON ගොනුවකින් ගිවිසුමක ලිපිනය සහ අබි කියවීම
සැපයුම්කරුවෙකු වෙත සම්බන්ධ වීම
කොන්ත්රාත් වස්තුවක් නිර්මාණය කිරීම
කොන්ත්රාත් ක්රම ඇමතීම
Truffle සහ Web3.py
පාඩම් සාරාංශය

පාඩම 12. ඔරකල්ස්මාර්ට් කොන්ත්‍රාත්තුවක් බාහිර ලෝකයේ දත්ත විශ්වාස කළ හැකිද?
බ්ලොක්චේන් තොරතුරු අතරමැදියන් ලෙස ඔරකල්
දත්ත මූලාශ්රය
මූලාශ්‍රයෙන් දත්ත නිරූපණය කිරීමට කේතය
බ්ලොක්චේන් හි විනිමය අනුපාතය වාර්තා කිරීම සඳහා ඔරකල්
USDRateOracle ගිවිසුම
ස්මාර්ට් ගිවිසුමක විනිමය අනුපාතිකය යාවත්කාලීන කිරීම
වෙබ් සොකට් සපයන්නෙකු භාවිතා කිරීම
RateUpdate සිදුවීම සඳහා රැඳී සිටිමින්
RateUpdate සිදුවීම හැසිරවීම
ස්මාර්ට් ගිවිසුමක දත්ත යාවත්කාලීන කිරීම ආරම්භ කිරීම
පාඩම් සාරාංශය

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න