ʻO ka puke "Creating Solidity smart contracts for the Ethereum blockchain. alakaʻi hoʻomaʻamaʻa"

ʻO ka puke "Creating Solidity smart contracts for the Ethereum blockchain. alakaʻi hoʻomaʻamaʻa"
No hoʻokahi makahiki aʻu i hana ai ma ka puke "Creating Solidity Smart Contracts for the Ethereum Blockchain. Alakaʻi Practical", a i kēia manawa ua pau kēia hana, a me ka puke paʻi ʻia a loaʻa ma nā Litera.

Manaʻo wau e kōkua kaʻu puke iā ʻoe e hoʻomaka koke i ka hana ʻana i nā pilina akamai Solidity a hāʻawi i nā DApps no ka blockchain Ethereum. He 12 mau haʻawina me nā hana kūpono. Ma hope o ka hoʻopau ʻana iā lākou, hiki i ka mea heluhelu ke hana i kā lākou iho nodes Ethereum kūloko, hoʻopuka i nā ʻaelike akamai a kāhea i kā lākou mau ʻano, hoʻololi i ka ʻikepili ma waena o ka honua maoli a me nā ʻaelike akamai me ka hoʻohana ʻana i nā huaʻōlelo, a hana pū me ka Rinkeby test debug network.

Hāʻawi ʻia ka puke i nā poʻe a pau i makemake i nā ʻenehana holomua i ke kahua o blockchains a makemake e loaʻa koke ka ʻike e hiki ai iā lākou ke hana i nā hana hoihoi a hoʻohiki.

Ma lalo ʻoe e ʻike ai i ka papa o nā mea a me ka mokuna mua o ka puke (a ma Palapala loaʻa nā ʻāpana o ka puke). Manaʻo wau e loaʻa nā manaʻo, manaʻo a me nā manaʻo. E hoʻāʻo wau e noʻonoʻo i kēia mau mea a pau i ka wā e hoʻomākaukau ai i ka puke e hiki mai ana.

Ka papa o nā meaHōʻikeHoʻolālā ʻia kā mākou puke no ka poʻe makemake ʻaʻole e hoʻomaopopo wale i nā loina o ka blockchain Ethereum, akā e loaʻa hoʻi nā mākau hana i ka hana ʻana i nā DApps i hoʻolaha ʻia i ka ʻōlelo hoʻolālā Solidity no kēia pūnaewele.

ʻOi aku ka maikaʻi ʻaʻole e heluhelu wale i kēia puke, akā e hana pū me ia, e hana ana i nā hana kūpono i wehewehe ʻia i nā haʻawina. No ka hana, pono ʻoe i kahi kamepiula kūloko, virtual a i ʻole server cloud me Debian a i ʻole Ubuntu OS i hoʻokomo ʻia. Hiki iā ʻoe ke hoʻohana i ka Raspberry Pi e hana i nā hana he nui.

I ka haʻawina mua E nānā mākou i nā loina hana o ka Ethereum blockchain a me nā hua'ōlelo kumu, a kamaʻilio pū hoʻi i kahi e hiki ai ke hoʻohana i kēia blockchain.

Holomua haʻawina ʻelua - hana i kahi huna huna Ethereum blockchain node no ka hana hou aku i loko o kēia papa ma kahi kikowaena Ubuntu a me Debian. E nānā mākou i nā hiʻohiʻona o ka hoʻokomo ʻana i nā pono pono, e like me geth, e hōʻoiaʻiʻo ana i ka hana o kā mākou node blockchain, a me ka daemon decentralized data storage daemon.

Haʻawina ʻekolu e aʻo iā ʻoe pehea e hoʻokolohua me Ethereum ma kahi microcomputer Raspberry Pi inexpensive. E hoʻokomo ʻoe i ka ʻōnaehana hana Rasberian (OS) ma ka Raspberry Pi, ka hāmeʻa Geth e hoʻohana ana i ka node blockchain, a me ka daemon mālama ʻikepili decentralized Swarm.

Haʻawina ʻehā ua hoʻolaʻa ʻia i nā moʻokāki a me nā ʻāpana cryptocurrency ma ka pūnaewele Ethereum, a me nā ala e hoʻololi ai i ke kālā mai kahi moʻokāki i kekahi mai ka console Geth. E aʻo ʻoe pehea e hana ai i nā moʻokāki, hoʻomaka i nā kālepa hoʻoili kālā, a loaʻa ke kūlana kālepa a me ka loaʻa.

I ka haʻawina ʻelima E ʻike ʻoe i nā ʻaelike akamai ma ka pūnaewele Ethereum a aʻo e pili ana i kā lākou hoʻokō ʻana e ka mīkini virtual Ethereum.

E hana ʻoe a hoʻolaha i kāu ʻaelike akamai mua ma ka pūnaewele pilikino Ethereum a aʻo i ke kāhea ʻana i kāna mau hana. No ka hana ʻana i kēia, e hoʻohana ʻoe i ka Remix Solidity IDE. E aʻo nō hoʻi ʻoe pehea e hoʻokomo a hoʻohana i ka mea hoʻopili pūʻulu solc.
E kamaʻilio pū mākou e pili ana i ka mea i kapa ʻia ʻo Application Binary Interface (ABI) a aʻo iā ʻoe pehea e hoʻohana ai.

Haʻawina ʻeono ua hoʻolaʻa ʻia i ka hana ʻana i nā palapala JavaScript e holo ana iā Node.js a me ka hana ʻana i nā hana me nā ʻaelike akamai Solidity.

E hoʻokomo ʻoe iā Node.js ma Ubuntu, Debian a me Rasberian OS, e kākau i nā palapala e hoʻolaha i kahi ʻaelike akamai ma ka pūnaewele kūloko Ethereum a kāhea i kāna mau hana.

Eia kekahi, e aʻo ʻoe pehea e hoʻololi ai i ke kālā ma waena o nā moʻokāki maʻamau me ka hoʻohana ʻana i nā palapala, a me ka hōʻaiʻē ʻana iā lākou i nā moʻolelo aelike akamai.

Ma ka haʻawina ʻehiku E aʻo ʻoe pehea e hoʻokomo a hoʻohana i ka Truffle framework, kaulana i waena o nā mea hoʻomohala ʻaelike akamai Solidity. E aʻo ʻoe pehea e hana ai i nā palapala JavaScript e kāhea ana i nā hana ʻaelike me ka hoʻohana ʻana i ka module truffle-contract, a hoʻāʻo i kāu ʻaelike akamai me ka hoʻohana ʻana iā Truffle.

Haʻawina ʻewalu hoʻolaʻa i nā ʻano ʻikepili Solidity. E kākau ʻoe i nā ʻaelike akamai e hana pū ana me nā ʻano ʻikepili e like me ka pūlima a me ka helu ʻole ʻia, nā helu i kau inoa ʻia, nā kaula, nā helu, nā ʻano paʻakikī, nā arrays, enumerations, structures, a me nā puke wehewehe ʻōlelo.

Ma ka haʻawina ʻeiwa E hoʻokahi ʻanuʻu ʻoe i ka hana ʻana i nā ʻaelike akamai no ka Ethereum mainnet. E aʻo ʻoe pehea e hoʻolaha ai i nā ʻaelike me ka hoʻohana ʻana iā Truffle ma ka pūnaewele pilikino Geth, a me ka Rinkeby testnet. ʻO ka hoʻopaʻa ʻana i kahi ʻaelike akamai ma ka pūnaewele Rinkeby he mea maikaʻi loa ia ma mua o ka hoʻolaha ʻana iā ia ma ka pūnaewele nui - aneane maoli nā mea āpau ma laila, akā no ka manuahi.

Ma ke ʻano o ka haʻawina, e hana ʻoe i kahi node pūnaewele hōʻike Rinkeby, e hoʻopaʻa kālā me ke kālā, a hoʻopuka i kahi ʻaelike akamai.

Haʻawina 10 hoʻolaʻa iā Ethereum Swarm i hāʻawi i ka mālama ʻikepili. Ma ka hoʻohana ʻana i ka mālama ʻana, mālama ʻoe i ka mālama ʻana i nā ʻikepili nui ma ka blockchain Ethereum.

Ma kēia kumu aʻo, e hana ʻoe i kahi waihona Swarm kūloko, kākau a heluhelu i nā hana ma nā faila a me nā papa kuhikuhi i loaʻa nā faila. Ma hope aʻe, e aʻo ʻoe pehea e hana ai me ka puka ākea Swarm, kākau i nā palapala e kiʻi i ka Swarm mai Node.js, a me ka hoʻohana ʻana i ka Perl Net:: Ethereum:: Swarm module.

Pahuhopu Haawina 11 — haku hana me Solidity nā ʻaelike akamai me ka hoʻohana ʻana i ka ʻōlelo hoʻolālā Python kaulana a me ka hoʻolālā Web3.py. E hoʻokomo ʻoe i ke kāʻei, kākau i nā palapala e hōʻuluʻulu a hoʻolaha i ka ʻaelike akamai, a kāhea i kāna mau hana. I kēia hihia, e hoʻohana ʻia ʻo Web3.py iā ia iho a me ka hui pū me ka Truffle integrated development environment.

Ma ka haʻawina 12 e aʻo ʻoe e hoʻoili i ka ʻikepili ma waena o nā ʻaelike akamai a me ka honua maoli me ka hoʻohana ʻana i nā huaʻōlelo. He mea pono kēia iā ʻoe e loaʻa i ka ʻikepili mai nā pūnaewele pūnaewele, nā mea IoT, nā ʻano mea like ʻole a me nā mea ʻike, a hoʻouna i ka ʻikepili mai nā ʻaelike akamai i kēia mau mea. Ma ka ʻāpana kūpono o ka haʻawina, e hana ʻoe i kahi ʻōlelo aʻoaʻo a me kahi ʻaelike akamai e loaʻa ai ke kumukūʻai kūʻai o kēia manawa ma waena o USD a me nā rubles mai ka pūnaewele o ka Central Bank o ka Russian Federation.

Haʻawina 1. ʻO ka pōkole e pili ana i ka blockchain a me ka pūnaewele EthereumʻO ke kumu o ka haʻawina: e ʻike i nā loina hana o ka Ethereum blockchain, kona mau wahi o ka noi a me nā huaʻōlelo kumu.
Nā hana maʻamau: ʻaʻole i uhi ʻia ma kēia haʻawina.

ʻAʻohe mea hoʻomohala polokalamu i kēia lā i lohe ʻole i kekahi mea e pili ana i ka ʻenehana blockchain (Blockchain), cryptocurrencies (Cryptocurrency or Crypto Currency), Bitcoin (Bitcoin), hāʻawi kālā mua (ICO, Initial coin offering), nā ʻaelike akamai (Smart Contract), a me nā manaʻo a me nā huaʻōlelo e pili ana i ka blockchain.

Wehe ka ʻenehana Blockchain i nā mākeke hou a hana i nā hana no nā mea polokalamu. Inā hoʻomaopopo ʻoe i nā paʻakikī āpau o nā ʻenehana cryptocurrency a me nā ʻenehana aelike akamai, a laila ʻaʻole pono ʻoe e pilikia i ka hoʻohana ʻana i kēia ʻike ma ka hana.

Pono e ʻōlelo ʻia he nui nā manaʻo e pili ana i nā cryptocurcies a me blockchains. E haʻalele mākou i nā kūkākūkā e pili ana i nā loli i ka helu cryptocurrency, ka hana ʻana i nā pyramids, nā mea paʻakikī o ke kānāwai cryptocurrency, etc. Ma kā mākou papa aʻo e kālele nui mākou i nā ʻano loea o ka hoʻohana ʻana i nā ʻaelike akamai ma ka blockchain Ethereum a me ka hoʻomohala ʻana i nā noi decentralized (DApps).

He aha ka blockchain

ʻO Blockchain (Block Chain) kahi kaulahao o nā poloka ʻikepili i hoʻopili ʻia kekahi i kekahi ma kekahi ala. Ma ka hoʻomaka o ke kaulahao aia ka poloka mua, i kapa ʻia ʻo ka poloka mua (genesis block) a i ʻole genesis block. Ua ukali ʻia e ka lua, a laila ke kolu a pēlā aku.

Hoʻopili ʻia kēia mau poloka ʻikepili āpau ma nā nodes he nui o ka pūnaewele blockchain. Mālama kēia i ka mālama decentralized o ka ʻikepili blockchain.
Hiki iā ʻoe ke noʻonoʻo i kahi ʻōnaehana blockchain e like me ka nui o nā nodes (nā kikowaena kino a i ʻole nā ​​​​server virtual) i hoʻopili ʻia i kahi pūnaewele a hoʻopili hou i nā loli āpau i ke kaulahao o nā poloka data. Ua like kēia me ka lolouila nui-server nui, a hiki ke hoʻopuehu ʻia nā nodes o ia kamepiula (servers) a puni ka honua. A hiki iā ʻoe ke hoʻohui i kāu kamepiula i ka pūnaewele blockchain.

Waihona Puke

Hiki ke noʻonoʻo ʻia kahi blockchain ma ke ʻano he waihona puʻupuʻu i hoʻopili ʻia ma nā nodes āpau o ka pūnaewele blockchain. Ma ke kumumanaʻo, e hoʻohana ʻia ka blockchain i ka wā e hana ana ma kahi o hoʻokahi node, e mālama ana i nā poloka āpau o ka blockchain.

Kakau ʻikepili i hoʻolaha ʻia

Hiki ke noʻonoʻo ʻia ʻo Blockchain ma ke ʻano he papa kuhikuhi o ka ʻikepili a me nā hana (nā hana). ʻO kahi inoa ʻē aʻe no ia papa inoa he ledger.

Hiki ke hoʻohui ʻia ka ʻikepili i kahi papa helu i puʻunaue ʻia, akā ʻaʻole hiki ke hoʻololi a holoi ʻia paha. Hoʻokō ʻia kēia hiki ʻole, ʻo ia hoʻi, ma ka hoʻohana ʻana i nā algorithm cryptographic, nā algorithm kūikawā no ka hoʻohui ʻana i nā poloka i ke kaulahao a me ka mālama ʻana i ka ʻikepili decentralized.

I ka hoʻohui ʻana i nā poloka a me ka hana ʻana i nā hana (transactions), hoʻohana ʻia nā kī pilikino a lehulehu. Kāohi lākou i nā mea hoʻohana blockchain ma ka hāʻawi wale ʻana iā lākou i ke komo i kā lākou mau poloka o ka ʻikepili.

Nā ʻoihana

Mālama ʻo Blockchain i ka ʻike e pili ana i nā hana (nā hana) ma nā poloka. I ka manawa like, ʻaʻole hiki ke hoʻohuli a hoʻololi ʻia nā hana kahiko a pau. Mālama ʻia nā hana hou i nā poloka hou, i hoʻohui ʻia.

Ma kēia ala, hiki ke hoʻopaʻa ʻia ka mōʻaukala kālepa holoʻokoʻa me ka loli ʻole ma ka blockchain. No laila, hiki ke hoʻohana ʻia ka blockchain, no ka laʻana, e mālama paʻa i nā kālepa panakō, ʻike kope kope, mōʻaukala o nā loli i nā mea nona ka waiwai, etc.

Loaʻa i ka blockchain Ethereum nā mea i kapa ʻia ʻo nā mokuʻāina ʻōnaehana. Ke hoʻokō ʻia nā hana, hoʻololi ka mokuʻāina mai ka mokuʻāina mua i ke kūlana o kēia manawa. Hoʻopaʻa ʻia nā hana ma nā poloka.

Nā poloka aupuni a pilikino

Pono e hoʻomaopopo ʻia ma ʻaneʻi ʻo nā mea a pau i ʻōlelo ʻia he ʻoiaʻiʻo wale nō no ka mea i kapa ʻia ʻo ka lehulehu blockchain networks, ʻaʻole hiki ke hoʻomalu ʻia e kekahi kanaka a i ʻole hui kānāwai, ʻoihana aupuni a aupuni paha.
ʻO nā mea i kapa ʻia ʻo blockchain networks aia ma lalo o ka mana piha o kā lākou mea hana, a hiki i kekahi mea ma laila, no ka laʻana, kahi pani piha o nā poloka āpau o ke kaulahao.

Nā noi kūpono o blockchain

He aha ka mea e pono ai ka blockchain?

I ka pōkole, ʻae ʻo blockchain iā ʻoe e hoʻokō paʻa i nā kālepa (transactions) ma waena o nā poʻe a i ʻole nā ​​​​hui i hilinaʻi ʻole kekahi i kekahi. ʻAʻole hiki ke hoʻopunipuni a hoʻololi ʻia nā ʻikepili i hoʻopaʻa ʻia ma ka blockchain (nā hana, nā ʻikepili pilikino, nā palapala, nā palapala hōʻoia, nā ʻaelike, nā invoice, etc.) ma hope o ka hoʻopaʻa ʻana. No laila, ma muli o ka blockchain, hiki iā ʻoe ke hana, no ka laʻana, nā papa inoa hoʻolaha hilinaʻi o nā ʻano palapala like ʻole.

ʻOiaʻiʻo, ʻike ʻoe e hana ʻia nā ʻōnaehana cryptocurrency ma ke kumu o blockchains, i hoʻolālā ʻia e pani i ke kālā pepa maʻamau. Ua kapa ʻia ke kālā pepa he fiat (mai Fiat Money).
Mālama ʻo Blockchain i ka mālama ʻana a me ka hiki ʻole o nā hana i hoʻopaʻa ʻia i nā poloka, ʻo ia ke kumu e hiki ai ke hoʻohana ʻia e hana i nā ʻōnaehana cryptocurrency. Loaʻa iā ia ka mōʻaukala holoʻokoʻa o ka hoʻoili ʻana o nā kālā crypto ma waena o nā mea hoʻohana like ʻole (nā moʻokāki), a hiki ke nānā ʻia kekahi hana.

ʻOiai hiki ke ʻike ʻole ʻia nā hana i loko o nā ʻōnaehana cryptocurrency, ʻo ka wehe ʻana i ke kālā crypto a me ka hoʻololi ʻana iā ia no ke kālā fiat maʻamau ka hopena i ka hōʻike ʻana i ka ʻike o ka mea nona ka waiwai cryptocurrency.

ʻO nā ʻaelike akamai i kapa ʻia, ʻo ia ka polokalamu e holo ana ma ka pūnaewele Ethereum, e ʻae iā ʻoe e hoʻokaʻawale i ke kaʻina hana o ka hoʻopau ʻana i nā hana a me ka nānā ʻana i kā lākou hoʻokō. He mea maikaʻi loa kēia inā hoʻokō ʻia ka uku no ke kālepa me ka hoʻohana ʻana i ka cryptocurrency Ether.

Hiki ke hoʻohana ʻia ka Ethereum blockchain a me nā ʻaelike akamai Ethereum i kākau ʻia ma ka ʻōlelo hoʻolālā Solidity, no ka laʻana, ma kēia mau wahi:

  • kahi koho i ka notarization o nā palapala;
  • ka waiho ʻana i kahi papa inoa o nā mea waiwai a me nā ʻike e pili ana i nā kālepa me nā mea waiwai;
  • ka mālama ʻana i ka ʻike kope kope ma ka waiwai naʻauao (nā puke, nā kiʻi, nā hana mele, a pēlā aku);
  • hana ʻana i nā ʻōnaehana koho kūʻokoʻa;
  • kālā a me ka panakō;
  • logistics ma ka pae honua, ka nānā ʻana i ka neʻe ʻana o nā waiwai;
  • ka waiho ʻana o ka ʻikepili pilikino ma ke ʻano he analogue i kahi ʻōnaehana kāleka ʻike;
  • nā hana hoʻopaʻa i ka ʻoihana kalepa;
  • ka mālama ʻana i nā hopena o nā hoʻokolohua olakino, a me ka mōʻaukala o nā kaʻina hana i kuhikuhi ʻia

Nā pilikia me ka blockchain

Akā, ʻoiaʻiʻo, ʻaʻole maʻalahi nā mea āpau e like me ka mea i ʻike ʻia!

Aia nā pilikia me ka hōʻoia ʻana i ka ʻikepili ma mua o ka hoʻohui ʻana iā ia i ka blockchain (no ka laʻana, he hoʻopunipuni lākou?), nā pilikia me ka palekana o ka ʻōnaehana a me nā polokalamu noi i hoʻohana ʻia e hana me ka blockchain, nā pilikia me ka hiki ke hoʻohana i nā ʻano hana ʻenekinia e ʻaihue i ke komo. i nā wallets cryptocurrency, etc. .P.

Eia hou, inā ʻaʻole mākou e kamaʻilio e pili ana i kahi blockchain lehulehu, ua hoʻopuehu ʻia nā nodes a puni ka honua, akā e pili ana i kahi blockchain pilikino no ke kanaka a i ʻole hui, a laila ʻaʻole e kiʻekiʻe ke kiʻekiʻe o ka hilinaʻi ma mua o ka hilinaʻi. i keia kanaka a i keia hui.

Pono e noʻonoʻo ʻia e loaʻa nā ʻikepili i hoʻopaʻa ʻia ma ka blockchain i nā mea a pau. Ma kēia ʻano, ʻaʻole kūpono ka blockchain (ʻoi aku ka lehulehu) no ka mālama ʻana i ka ʻike huna. Eia naʻe, ʻaʻole hiki ke hoʻololi ʻia ka ʻike ma ka blockchain hiki ke kōkua i ka pale ʻana a i ʻole ke noiʻi ʻana i nā ʻano hana hoʻopunipuni.

E maʻalahi nā noi decentralized Ethereum inā ʻoe e uku no kā lākou hoʻohana me ka cryptocurrency. ʻOi aku ka nui o ka poʻe nona ka cryptocurrency a makemake paha e kūʻai, ʻoi aku ka nui o nā DApps kaulana a me nā ʻaelike akamai.

ʻO nā pilikia maʻamau me ka blockchain e keʻakeʻa nei i kāna hoʻohana pono ʻana, ʻo ia ka wikiwiki i hiki ke hoʻohui ʻia i nā poloka hou a me ke kumukūʻai kiʻekiʻe o nā kālepa. Akā ke ulu ikaika nei ka ʻenehana ma kēia wahi, a aia nā manaʻolana e hoʻopau ʻia nā pilikia ʻenehana i ka manawa.

ʻO kekahi pilikia ʻo ia ka hana ʻana o nā ʻaelike akamai ma ka blockchain Ethereum ma kahi kaʻawale o nā mīkini virtual, a ʻaʻole loaʻa i ka ʻikepili maoli. ʻO ka mea kūikawā, ʻaʻole hiki i ka polokalamu ʻaelike akamai ke heluhelu ponoʻī i ka ʻikepili mai nā pūnaewele a i ʻole nā ​​​​mea hana kino (sensors, contacts, etc.), a ʻaʻole hiki ke hoʻopuka i ka ʻikepili i nā mea waho. E kūkākūkā mākou i kēia pilikia a me nā ala e hoʻoponopono ai i loko o kahi haʻawina i hoʻolaʻa ʻia i ka mea i kapa ʻia ʻo Oracles - nā intermediaries ʻike o nā ʻaelike akamai.

Aia nō nā kapu kānāwai. I kekahi mau ʻāina, no ka laʻana, ua pāpā ʻia ka hoʻohana ʻana i ka cryptocurrency i mea e uku ai, akā hiki iā ʻoe ke hoʻohana iā ia ma ke ʻano he ʻano waiwai kikohoʻe, e like me nā securities. Hiki ke kūʻai a kūʻai ʻia ia mau waiwai ma ke kūʻai. I kēlā me kēia hihia, i ka wā e hana ai i kahi papahana e hana ana me nā cryptocurcies, pono ʻoe e hoʻomaʻamaʻa iā ʻoe iho me ke kānāwai o ka ʻāina ma lalo o ka mana o kāu papahana.

Pehea i hoʻokumu ʻia ai kahi kaulahao blockchain

E like me kā mākou i ʻōlelo ai, blockchain kahi kaulahao maʻalahi o nā poloka data. ʻO ka mua, hoʻokumu ʻia ka poloka mua o kēia kaulahao, a laila hoʻohui ʻia ka lua iā ia, a pēlā aku. Ua manaʻo ʻia e mālama ʻia ka ʻikepili i loko o nā poloka, a ua hoʻohui ʻia i ka poloka hou loa.

Ma Fig. 1.1 ua hōʻike mākou i ka mana maʻalahi o ke kaʻina o nā poloka, kahi e pili ai ka poloka mua i ka mea aʻe.

ʻO ka puke "Creating Solidity smart contracts for the Ethereum blockchain. alakaʻi hoʻomaʻamaʻa"
Laiki. 1.1. Ke kaʻina maʻalahi o nā poloka

Me kēia koho, akā naʻe, maʻalahi loa ka hoʻopili ʻana i nā mea o kēlā me kēia poloka i ke kaulahao, no ka mea ʻaʻole i loaʻa i nā poloka kekahi ʻike e pale aku ai i nā loli. Ke noʻonoʻo nei ua manaʻo ʻia ka blockchain e hoʻohana ʻia e nā poʻe a me nā ʻoihana ma waena o lākou ʻaʻohe hilinaʻi, hiki iā mākou ke hoʻoholo ʻaʻole kūpono kēia ʻano o ka mālama ʻana i ka ʻikepili no ka blockchain.

E hoʻomaka kākou e pale i nā poloka mai ka hoʻopunipuni. I ka pae mua, e ho'āʻo mākou e pale i kēlā me kēia poloka me kahi checksum (Fig. 1.2).

ʻO ka puke "Creating Solidity smart contracts for the Ethereum blockchain. alakaʻi hoʻomaʻamaʻa"
Laiki. 1.2. Hoʻohui i ka pale no kēia mau poloka me kahi checksum

I kēia manawa ʻaʻole hiki i ka mea hoʻouka ke hoʻololi wale i ka poloka, no ka mea aia i loko o ka checksum o ka ʻikepili poloka. E hōʻike ana ka nānā ʻana i ka checksum ua hoʻololi ʻia ka ʻikepili.

No ka helu ʻana i ka checksum, hiki iā ʻoe ke hoʻohana i kekahi o nā hana hashing e like me MD-5, SHA-1, SHA-256, etc. Hoʻopili nā hana Hash i kahi waiwai (no ka laʻana, he kaula kikokikona o ka lōʻihi mau) ma ka hana ʻana i nā hana hiki ʻole ke hoʻohuli ʻia ma kahi poloka o ka ʻikepili. Aia nā hana i ke ʻano o ka hana hash.

ʻOiai e loli iki nā mea o ka poloka data, e loli pū ka waiwai hash. Ma ke kālailai ʻana i ka waiwai hana hash, ʻaʻole hiki ke kūkulu hou i ka poloka ʻikepili i helu ʻia ai.

E lawa anei ia palekana? ʻAʻole naʻe.

Ma kēia papahana, pale wale ka checksum (hana hash) i nā poloka pākahi, akā ʻaʻole ka blockchain holoʻokoʻa. Ke ʻike nei i ka algorithm no ka helu ʻana i ka hana hash, hiki i ka mea hoʻouka ke hoʻololi maʻalahi i nā mea o kahi poloka. Eia kekahi, ʻaʻohe mea e pale iā ia mai ka wehe ʻana i nā poloka mai ke kaulahao a i ʻole ka hoʻohui ʻana i nā mea hou.

No ka paleʻana i ke kaulahao holoʻokoʻa holoʻokoʻa, hiki iāʻoe ke mālama i kēlā me kēia'āpana, me kaʻikepili, kahi hash o kaʻikepili o ka'āpana mua (Fig. 1.3).

ʻO ka puke "Creating Solidity smart contracts for the Ethereum blockchain. alakaʻi hoʻomaʻamaʻa"
Laiki. 1.3. Hoʻohui i ka hash o ka poloka mua i ka poloka ʻikepili

Ma kēia hoʻolālā, i mea e hoʻololi ai i kahi poloka, pono ʻoe e helu hou i nā hana hash o nā poloka a pau. Me he mea lā, he aha ka pilikia?

I loko o nā blockchains maoli, ua hoʻokumu ʻia nā pilikia kūlohelohe no ka hoʻohui ʻana i nā poloka hou - hoʻohana ʻia nā algorithm e koi ana i ka nui o nā kumuwaiwai. Ke noʻonoʻo nei i mea e hoʻololi ai i kahi poloka, pono ʻoe e helu hou ʻaʻole i kēia poloka hoʻokahi, akā i nā mea a pau ma hope, he mea paʻakikī loa kēia e hana.

E hoʻomanaʻo pū kākou ua mālama ʻia ka ʻikepili blockchain (hoʻopiʻi ʻia) ma nā node pūnaewele he nui, ʻo ia hoʻi. Hoʻohana ʻia ka waihona decentralized. A ʻoi aku ka paʻakikī o ka hoʻopunipuni ʻana i kahi poloka, no ka mea pono e hoʻololi i nā node pūnaewele a pau.

No ka mālama ʻana o nā poloka i ka ʻike e pili ana i ka poloka mua, hiki ke nānā i nā mea o nā poloka āpau i ke kaulahao.

blockchain Ethereum

ʻO ka blockchain Ethereum kahi kahua i hiki ke hana ʻia nā DApps i hāʻawi ʻia. ʻAʻole like me nā papahana ʻē aʻe, ʻae ʻo Ethereum i ka hoʻohana ʻana i nā mea i kapa ʻia nā ʻaelike akamai (smart contracts), i kākau ʻia ma ka ʻōlelo papahana Solidity.

Ua hoʻokumu ʻia kēia kahua ma 2013 e Vitalik Buterin, ka mea nāna i hoʻokumu i ka Bitcoin Magazine, a hoʻokumu ʻia i ka makahiki 2015. ʻO nā mea a pau a mākou e aʻo ai a hana paha i kā mākou papa aʻo e pili pono ana i ka Ethereum blockchain a me Solidity smart contracts.

Mining a pehea e hana ʻia ai nā poloka

ʻO ka mining kahi kaʻina hana paʻakikī a paʻakikī hoʻi no ka hoʻohui ʻana i nā poloka hou i ke kaulahao blockchain, ʻaʻole loa i ka "mining cryptocurrency." Mālama ka mining i ka hana o ka blockchain, no ka mea ʻO kēia kaʻina hana ke kuleana no ka hoʻohui ʻana i nā kālepa i ka blockchain Ethereum.

Ua kapa ʻia nā kānaka a me nā hui e pili ana i ka hoʻohui ʻana i nā poloka.
Ke hoʻāʻo nei ka polokalamu e holo ana ma nā node miner e ʻimi i kahi ʻāpana hashing i kapa ʻia ʻo Nonce no ka poloka hope loa e kiʻi i kahi waiwai hash kikoʻī i kuhikuhi ʻia e ka pūnaewele. ʻO ka Ethash hashing algorithm i hoʻohana ʻia ma Ethereum e ʻae iā ʻoe e loaʻa i ka waiwai Nonce wale nō ma o ka huli ʻana.

Inā loaʻa i ka node miner ka waiwai Nonce kūpono, a laila ʻo ia ka mea i kapa ʻia he hōʻoia o ka hana (PoW, Proof-of-work). I kēia hihia, inā hoʻohui ʻia kahi poloka i ka pūnaewele Ethereum, loaʻa i ka mea miner kekahi uku ma ke kālā pūnaewele - Etera. I ka manawa kākau, ʻo 5 Etera ka uku, akā e hoʻemi ʻia i ka manawa.

No laila, e hōʻoiaʻiʻo nā miners Ethereum i ka hana o ka pūnaewele ma ka hoʻohui ʻana i nā poloka, a loaʻa ke kālā cryptocurrency no kēia. Eʻikeʻoe i ka nui o kaʻike ma ka pūnaewele e pili ana i nā miners a me ka mining, akā e nānā mākou i ka hanaʻana i nāʻaelike Solidity a me nā DApps ma ka pūnaewele Ethereum.

Hoʻopuka haʻawina

I ka haʻawina mua, ua kamaʻāina ʻoe i ka blockchain a ua aʻo ʻia ʻo ia kahi papa hana i haku ʻia o nā poloka. ʻAʻole hiki ke hoʻololi ʻia nā ʻike o nā poloka i hoʻopaʻa mua ʻia, no ka mea, pono kēia e helu hou i nā poloka a pau ma hope o nā nodes pūnaewele, e koi ana i nā kumu waiwai a me ka manawa.

Hiki ke hoʻohana ʻia ʻo Blockchain e mālama i nā hopena o nā kālepa. ʻO kāna kumu nui e hoʻonohonoho i nā hana palekana ma waena o nā ʻaoʻao (kanaka a me nā hui) ma waena o lākou ʻaʻohe hilinaʻi. Ua aʻo ʻoe i nā wahi kikoʻī o ka ʻoihana a me nā wahi i hiki ke hoʻohana ʻia nā ʻaelike akamai Ethereum blockchain a me Solidity. ʻO kēia ka ʻāpana panakō, ke kākau inoa ʻana i nā kuleana waiwai, nā palapala, etc.

Ua aʻo pū ʻoe e hiki mai nā pilikia like ʻole ke hoʻohana i ka blockchain. ʻO kēia nā pilikia o ka hōʻoia ʻana i ka ʻike i hoʻohui ʻia i ka blockchain, ka wikiwiki o ka blockchain, ke kumukūʻai o nā kālepa, ka pilikia o ka hoʻololi ʻana i ka ʻikepili ma waena o nā ʻaelike akamai a me ka honua maoli, a me nā hoʻouka kaua ʻana e nā mea hoʻouka kaua e manaʻo e ʻaihue i nā kālā cryptocurrency mai nā moʻokāki mea hoʻohana. .

Ua kamaʻilio pōkole mākou e pili ana i ka mining ma ke ʻano o ka hoʻohui ʻana i nā poloka hou i ka blockchain. Pono ka mining e hoʻopau i nā hana. ʻO ka poʻe i komo i ka mining e hōʻoia i ka hana ʻana o ka blockchain a loaʻa ka uku i ka cryptocurrency no kēia.

Haʻawina 2. Ka hoʻomākaukau ʻana i kahi kaiapuni hana ma Ubuntu a me Debian OSKe koho ʻana i kahi ʻōnaehana hana
Ke hoʻouka nei i nā pono pono
Ke hoʻokomo nei iā Geth a me Swarm ma Ubuntu
Ke hoʻokomo nei iā Geth a me Swarm ma Debian
Hoʻomākaukau mua
Hoʻoiho i ka puʻunaue hele
Ka hoʻonohonoho ʻana i nā mea hoʻololi kaiapuni
Ke nānā nei i ka mana Go
Ke hoʻokomo nei iā Geth a me Swarm
Ke hana nei i kahi blockchain pilikino
Ke hoʻomākaukau nei i ka faila genesis.json
E hana i papa kuhikuhi no ka hana
Hana i moʻokāki
E hoʻomaka ana i ka hoʻomaka ʻana o ka node
Koho Launch Node
Hoʻohui i kā mākou node
ʻO ka hoʻokele mining a me ka nānā kaulike
Ke pani nei i ka console Geth
Hoʻopuka haʻawina

Haʻawina 3. Ka hoʻomākaukau ʻana i ke kaiapuni hana ma Raspberry Pi 3Hoʻomākaukau i ka Raspberry Pi 3 no ka hana
Ke kau nei i ka Rasberian
Ke hoʻouka nei i nā mea hou
E ho'ā ana iā SSH Access
Hoʻonohonoho i kahi IP Address Static
Ke hoʻouka nei i nā pono pono
Ke hoʻokomo nei iā Go
Hoʻoiho i ka puʻunaue hele
Ka hoʻonohonoho ʻana i nā mea hoʻololi kaiapuni
Ke nānā nei i ka mana Go
Ke hoʻokomo nei iā Geth a me Swarm
Ke hana nei i kahi blockchain pilikino
Ke nānā nei i kāu moʻokāki a me ke koena
Hoʻopuka haʻawina

Haʻawina 4. Nā moʻokāki a me ka hoʻoili kālā ma waena o nā waihonaNānā a hoʻohui i nā moʻokāki
Nānā i ka papa inoa o nā moʻokāki
Hoʻohui i kahi moʻokāki
nā koho kauoha moʻokāki geth
ʻōlelo huna moʻokāki
Cryptocurrency ma Ethereum
Huina dala Ethereum
Hoʻoholo mākou i ke koena o kā mākou mau moʻokāki i kēia manawa
E hoʻoili i ke kālā mai kahi moʻokāki i kekahi
eth.sendTransaction ala
Nānā i ke kūlana kālepa
Palapala hookaa
Hoʻopuka haʻawina

Haʻawina 5. Hoʻopuka i kāu ʻaelike muaNā ʻaelike akamai ma Ethereum
Hoʻokō ʻaelike akamai
Mekini Maikaʻi Ethereum
Kaiapuni hoʻomohala hoʻohui Remix Solidity IDE
Holo ka houluulu ana
Kahea ana i na hana aelike
Ke hoʻopuka ʻana i kahi ʻaelike ma kahi pūnaewele pilikino
Loaʻa i ka wehewehe ABI a me ke code binary contract
Hoolaha ana i ka aelike
Ke nānā nei i ke kūlana kūʻai hoʻolaha ʻaelike
Kahea ana i na hana aelike
ʻO ka hui pūʻulu solc
Ke hoʻokomo nei i ka solc ma Ubuntu
Ke kau nei i ka solc ma Debian
Hoʻopili i ka ʻaelike HelloSol
Hoolaha ana i ka aelike
Ke kau nei i ka solc ma Rasberian
Hoʻopuka haʻawina

Haʻawina 6. Nā ʻaelike akamai a me Node.jsKe hoʻokomo nei iā Node.js
Hoʻokomo ʻia ma Ubuntu
Hoʻokomo ʻia ma Debian
Ke kau ʻana a me ka holo ʻana iā Ganache-cli
Hoʻokomo pūnaewele3
Ke hoʻokomo nei i ka solc
Ke hoʻouka nei iā Node.js ma Rasberian
Script e kiʻi i ka papa inoa o nā moʻokāki ma ka console
Palapala no ka paʻi ʻana i kahi ʻaelike akamai
Hoʻomaka a loaʻa nā ʻāpana
Loaʻa i nā koho hoʻomaka
Houluulu aelike
Ke wehe nei i kāu moʻokāki
Ke hoʻouka nei i ka ABI a me ke code binary contract
Ke kuhi nei i ka nui o ke kinoea e pono ai
E hana i kahi mea a hoʻomaka e paʻi i kahi ʻaelike
Ke holo nei i ka palapala hoʻopuka ʻaelike
Kāhea i nā hana ʻaelike akamai
Hiki ke hoʻololi i kahi ʻaelike akamai i paʻi ʻia?
Ke hana nei me Web3 mana 1.0.x
Loaʻa i kahi papa inoa o nā moʻokāki
Hoolaha ana i ka aelike
Kahea ana i na hana aelike
E hoʻoili i ke kālā mai kahi moʻokāki i kekahi
E hoʻoili kālā i ka moʻokāki aelike
Hoʻohou i ka ʻaelike akamai HelloSol
E hana i palapala e ʻike ai i ke koena o kāu moʻokāki
Hoʻohui i kahi kelepona i ka hana getBalance i ka palapala call_contract_get_promise.js
Hoʻonui mākou i ka moʻokāki aelike akamai
Hoʻopuka haʻawina

Haʻawina 7. Introduction to TruffleKe hoʻokomo nei i ka Truffle
E hana i kahi papahana HelloSol
Ke hana ʻana i ka Papa kuhikuhi Papahana a me nā faila
Papa kuhikuhi aelike
Helu helu helu
Hōʻike papa kuhikuhi
truffle-config.js waihona
Hoʻopili i ka ʻaelike HelloSol
E hoʻomaka i ka paʻi ʻana i kahi ʻaelike
Kāhea ʻia ʻo HelloSol i nā hana ʻaelike ma kahi Truffle Prompt
Kāhea ʻia nā hana ʻaelike HelloSol mai kahi palapala JavaScript e holo ana iā Node.js
Ke kau ʻana i ka module truffle-contract
Ke kāhea ʻana i nā hana ʻaelike getValue a getString
Kāhea ʻia nā hana ʻaelike setValue a me setString
Hoʻololi a hoʻolaha hou
Ke hana nei me Web3 mana 1.0.x
Ke hoʻololi nei i ka ʻaelike akamai HelloSol
Nā palapala no ke kāhea ʻana i nā ʻano hana ʻaelike
Ka hoao ana ma Truffle
Hoʻāʻo paʻa
hoʻāʻo JavaScript
Hoʻopuka haʻawina

Haʻawina 8. Nā ʻano ʻikepili paʻaʻaelike no ke aʻo ʻana i nā ʻano ʻikepili
Nā ʻano ʻikepili Boolean
ʻO nā helu helu ʻole a me nā helu pūlima
Helu helu paʻa
Wāina
Nā hoʻololi o nā ʻano paʻakikī
Nā Laʻina Paʻa Paʻa
Nā papa hana hoʻolalelale
Helu Helu
Nā Kūlana
Māka palapala ʻāina
Hoʻopuka haʻawina

Haʻawina 9. Ka neʻe ʻana o nā ʻaelike i ka pūnaewele pilikino a i ka pūnaewele RinkebyKe hoʻopuka nei i kahi ʻaelike mai Truffle i ka pūnaewele pilikino Geth
Ke hoʻomākaukau nei i kahi node pūnaewele pilikino
Ka hoʻomākaukau ʻana i kahi ʻaelike no ka hana
Hoʻopili a hoʻoneʻe i kahi ʻaelike i ka pūnaewele Truffle
E hoʻomaka ana i ka neʻe ʻana o ka pūnaewele puni honua geth
Loaʻa i nā mea waiwai Truffle
Ke hoʻopuka nei i kahi ʻaelike mai Truffle i ka Rinkeby testnet
Hoʻomākaukau i kahi node Geth e hana pū me Rinkeby
Node synchronization
Hoʻohui i nā moʻolelo
Hoʻonui i kāu moʻokāki Rinkeby me ka ether
Ke hoʻomaka nei i ka neʻe ʻana o ka ʻaelike i ka pūnaewele Rinkeby
Ke nānā nei i ka ʻike ʻaelike ma ka pūnaewele Rinkeby
Truffle Console no Rinkeby Network
ʻO ke ala maʻalahi e kāhea i nā hana ʻaelike
Kāhea i nā ʻano hana ʻaelike me ka hoʻohana ʻana iā Node.js
Hoʻoili kālā ma waena o nā moʻokāki ma ka Truffle console no Rinkby
Hoʻopuka haʻawina

Haʻawina 10. Ethereum Swarm Decentralized Data StoragePehea e hana ai ʻo Ethereum Swarm?
Hoʻokomo a hoʻokuʻu iā Swarm
Nā hana me nā faila a me nā papa kuhikuhi
Hoʻouka i kahi faila i ka Ethereum Swarm
Heluhelu i kahi faila mai Ethereum Swarm
E nānā i ka hōʻike o kahi faila i hoʻoili ʻia
Hoʻouka i nā papa kuhikuhi me nā subdirectories
Heluhelu ʻia kahi faila mai kahi papa kuhikuhi i hoʻoiho ʻia
Ke hoʻohana nei i kahi puka ākea Swarm
Loaʻa iā Swarm mai nā palapala Node.js
Perl Net::Ethereum::Swarm module
Ke kau nei i ka Net :: Ethereum :: Swarm module
Kākau a heluhelu ʻikepili
Hoʻopuka haʻawina

Haʻawina 11. Web3.py framework no ka hana pū me Ethereum ma PythonKe hoʻouka nei iā Web3.py
Hoʻohou a hoʻokomo i nā pūʻolo pono
Ke kau nei i ka module easysolc
Ke hoʻopuka ʻana i kahi ʻaelike me ka hoʻohana ʻana iā Web3.py
Houluulu aelike
Hoʻopili i kahi mea hoʻolako
Hoʻokō i ka hoʻolaha aelike
Ke mālama nei i ka helu ʻaelike a me ka abi i kahi faila
Ke holo nei i ka palapala hoʻopuka ʻaelike
Kahea aelike
Heluhelu i ka helu wahi a me ka abi o kahi ʻaelike mai kahi faila JSON
Hoʻopili i kahi mea hoʻolako
Ke hana ʻana i kahi mea ʻaelike
Kahea aelike
Truffle a me Web3.py
Hoʻopuka haʻawina

Haawina 12. Olelo HoolahaHiki i kahi ʻaelike akamai ke hilinaʻi i ka ʻikepili mai ka honua waho?
ʻO nā Oracles ma ke ʻano he kikowaena ʻike blockchain
Kumu ʻikepili
Code e hōʻike i ka ʻikepili mai ke kumu
ʻO Oracle no ka hoʻopaʻa ʻana i ka uku hoʻololi ma ka blockchain
ʻaelike USDRateOracle
ʻO ka hōʻano hou ʻana i ka uku hoʻololi ma kahi ʻaelike akamai
Ke hoʻohana nei i kahi mea hoʻolako pūnaewele
Ke kali nei no ka hanana RateUpdate
Ka lawelawe ʻana i ka hanana RateUpdate
Ke hoʻomaka nei i kahi hōʻano hou ʻikepili ma kahi ʻaelike akamai
Hoʻopuka haʻawina

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka