Ethereum Smart Contract - Paano magpatupad ng isang Smart Kontrata?



Sa tutorial ng Ethereum Smart Contract na ito, malalaman mo kung paano Lumikha, Mag-deploy at Magpatupad ng isang Smart Contract gamit ang Truffle at Ethereum Private Network.

Ang pangunahing dahilan para makuha ng Teknolohiya ng Blockchain ang lugar nito sa mga Nangungunang Teknolohiya ay dahil sa likas na Desentralisado. Habang ang pangunahing layunin ng Blockchain ay upang mapanatili ang mga tala ng transaksyon nang walang isang Sentral na Awtoridad, upang i-automate ito, Mga Matalinong Kontrata ipinakilala. Ngunit ano pagkatapos ? Sa tutorial ng Ethereum Smart Contract na ito, makikita namin kung paano gamitin Truffle Ethereum at Pribadong Network ng Ethereum upang magpatupad ng isang Smart Kontrata.

Interesado sa Pag-unlad ng Ethereum? Suriin ang Live na ito .





Titingnan namin ang mga sumusunod na paksa sa tutorial ng Ethereum Smart Contract na ito:

  1. Gumamit ng Kaso: Mga Smart Kontrata sa Proseso ng Seguro
  2. Mga Pakinabang ng Mga Smart Contract
  3. Pag-install ng Paunang mga Kahilingan
  4. Pag-configure ng Genesis Block
  5. Pagpapatakbo ng Ethereum Private Network
  6. Lumilikha ng Ethereum Account
  7. Lumilikha ng Smart Kontrata ng Ethereum
  8. Pagpapatupad ng Ethereum Smart Contract

Gumamit ng Kaso: Mga Smart Kontrata sa Proseso ng Seguro

Ang 'Walang Sentral na Awtoridad' ang sinusunod ng Blockchain at iyon ang dahilan kung bakit ipinakilala ang Smart Kontrata. Ngunit naisip mo ba kung paano magagamit ang isang Smart Contract? Sa gayon, sa seksyong ito ng Ethereum Smart Contract, ipapaliwanag ko ang isang kaso ng paggamit ng Smart Contract sa proseso ng Seguro.



Isaalang-alang natin ang isang halimbawa ng isang seguro sa Flight Delay. Ipagpalagay na nais mong kumuha ng isang Flight mula sa pinagmulan A sa patutunguhan C ngunit wala kang isang direktang Flight. Kaya, nagpasya kang kumuha ng isang flight sa pagkonekta (sa pamamagitan ng B). Ngayon, ang iyong ruta ay magmumula sa A hanggang B at pagkatapos ay mula B hanggang C, kung saan ang B ay ang paliparan na binabago mo ang mga flight. Sa kasamaang palad, wala kang maraming agwat ng oras sa pagitan ng mga flight mula A hanggang B at mula B hanggang C. Kaya, kung sa anumang pagkakataon, ang flight mula A hanggang B ay naantala pagkatapos ay makaligtaan mo ang flight mula B hanggang C. mapagtanto ito at lamang upang mai-save ang iyong sarili mula sa mabibigat na pagkawala, kumuha ka ng isang Flight Delay Insurance.

Flight Delay Insurance - Edureka

Ngayon, kung ang iyong paglipad mula A hanggang B ay naantala (na kung saan ay makaligtaan mo ang paglipad mula B hanggang C), babayaran ka ng halagang insurance. Ang normal na paraan ng paggana nito ay, kung naantala ang iyong flight, inaangkin mo ang seguro. Pagkatapos, ang ilang tao roon ay papatunayan at aprubahan ang seguro at sa wakas, makukuha mo ang halaga ng iyong seguro. Ngunit ito ay medyo isang mahabang proseso.



Paano mo magagamit ang Mga Smart Contract upang mapabuti ang proseso ng Seguro?

Pagdating sa mga transaksyong pampinansyal, at lalo na kapag nakakakuha ka ng pera, 'mas mabilis, mas mabuti', hindi ba? Kaya, tingnan natin kung paano mapabilis ng mga Smart Contract ang proseso ng seguro. Ang mga Smart Contract ay mga digital na kontrata na awtomatikong naisasagawa kapag natugunan ang ilang mga kundisyon. Ang isang Kontrata sa Smart ay maaaring nakasulat upang bayaran ang halaga ng seguro sa mga taong nagpasyang sumama sa Flight Delay Insurance kung naantala ang flight. Kaya, kapag ang flight ay naantala at ang pagkaantala na ito ay naitala ng system, ang insurance ay binabayaran kaagad.

Hola! bayad sa seguro na binayaran sa loob ng ilang segundo. Ito ay kung paano simple at mabilis ang Smart Kontrata gumawa ng isang proseso mangyari.

Mga Pakinabang ng Mga Smart Contract

Nakita mo sa nabanggit na halimbawa kung paano mapabilis ng Smart Contract ang mga proseso sa pananalapi. Bukod sa mabilis na mga transaksyon, ang mga Smart Contract ay may ilang mga pakinabang. Dito, naglilista ako ng ilang iba pang mga benepisyo ng paggamit ng isang Smart Contract:

  • Awtomatiko: Ang lahat ng mga hakbang sa proseso ay awtomatikong nangyayari sa mga Smart Contract
  • Walang tagapamagitan: Kapag gumamit ka ng mga Smart Contract, hindi mo kailangan ng isang intermediate upang magawa ang trabaho dahil ang lahat ay hahawakan ng mga Smart Contract
  • Sulit: Makakatipid sa iyo ng paggamit ng mga Smart Contract ng pera sa mga bayarin sa transaksyon na sisingilin ng mga bangko at singil ng mga bayad sa serbisyo ng mga intermediate (kung mayroon man)

Ngayon, na alam natin kung paano magagamit ang Mga Smart Contract upang gawing mas mabilis na lugar ang mundo, makarating tayo sa hands-on na bahagi sa tutorial ng Ethereum Smart Contract na ito.

Pag-install ng Paunang mga Kahilingan

Para sa tutorial ng Ethereum Smart Contract, kakailanganin namin ng 5 mahahalagang aplikasyon:

  • NodeJS
  • NPM
  • Ethereum
  • Pagtripan
  • Solidity Compiler

Pag-install ng NodeJS

Ang NodeJS ay isang JavaScript Framework na ginagamit upang bumuo ng mga aplikasyon ng server. Habang gumagamit kami ng isang pribadong network, gagawing madali ng NodeJS na buuin ang application ng network.

Upang mai-install ang Nodejs, patakbuhin ang sumusunod na utos sa iyong terminal:

$ sudo apt-get install nodejs

Pag-install ng NPM

Ang NPM ay nangangahulugang Node Package Manager at ginagamit upang patakbuhin ang mga aplikasyon ng Nodejs.

Upang mai-install ang NPM, patakbuhin ang sumusunod na utos sa iyong terminal:

$ sudo apt-get install npm

Pag-install ng Ethereum

Ethereum ay isang bukas na mapagkukunan at publiko na nakabatay sa blockchain, ibinahagi ang platform ng computing para sa pagbuo ng mga desentralisadong aplikasyon.

malaking data tutorial para sa mga nagsisimula

Upang mai-install ang Ethereum, patakbuhin ang sumusunod na utos sa iyong terminal:

$ sudo apt-get install software-assets-common $ sudo add-apt-repository -y ppa: Ethereum / Ethereum $ sudo apt-get update $ sudo apt-get install ethereum

Pag-install ng Truffle

Ang Truffle ay isang Development Environment, Framework ng Pagsubok at Asset pipeline para sa Ethereum Blokchains.

Upang mai-install ang Truffle, patakbuhin ang sumusunod na utos sa iyong terminal:

$ npm install -g truffle

Pag-install ng Solidity Compiler

Ang solidity ay isang wikang ginagamit sa pagprograma upang magsulat ng mga Smart Contract. Upang magpatakbo ng mga matalinong kontrata sa aming system, kailangan naming mag-install ng Solidity Compiler.

Upang mai-install ang Solidity Compiler, patakbuhin ang sumusunod na utos sa iyong terminal:

$ sudo npm i-install -g solc

Pag-configure ng Genesis Block

Ang isang Genesis Block ay ang panimulang punto ng isang Blockchain at kailangan namin ng isang genesis file upang simulan ang Blockchain. Sa seksyong ito ng Ethereum Smart Contract, magsusulat kami ng isang file ng Genesis at mai-configure ito upang payagan kaming magpatakbo ng mga Smart Contract.

Lumikha muna tayo ng isang bagong direktoryo at pagkatapos sa direktoryong iyon malilikha natin ang file ng genesis

$ mkdir ethereum-network $ cd ethereum-network $ nano genesis.json

Ngayon, ipasok ang mga sumusunod na linya sa genesis.json file:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0},'alloc': {}, 'kahirapan': '200' 'gasLimit': '99999999999999'}

I-save ito at lumabas.

Pagpapatakbo ng Ethereum Private Network

Sa tutorial ng Etheruem Smart Contract na ito, maglalagay kami ng isang Ethereum Smart Contract sa isang pribadong network. Kaya, upang simulan ang network na ito gagamitin namin ang sumusunod na utos:

$ geth --datadir ./dataDir init ./genesis.json

$ geth --port 4321 --networkid 1234 --datadir =. / dataDir --rpc --rpcport 8543 --rpcaddr 127.0.0.1 --rpcapi 'eth, net, web3, personal, miner'

Bago lumipat pa, hayaan mo akong ipaliwanag ang ilang mahahalagang watawat na ginamit sa utos sa itaas:

datadir: Ang direktoryo kung saan nakaimbak ang data na nauugnay sa Blockchain.

rpc: Pinapagana ang HTTP-RPC server.

rpcport at rpcaddr ay ginagamit upang itakda ang port at address ng network ayon sa pagkakabanggit.

rpcapi: Pinapayagan kaming makipag-ugnay sa network ng Ethereum gamit ang iba't ibang mga API.

Pagkonekta sa Geth sa Ethereum Private Blockchain

Ang Geth console ay ang console mula sa kung saan maaari kaming makipag-ugnay sa Ethereum Private Blockchain. Upang ikonekta ang Geth sa Ethereum Private Blockchain, magbukas ng isang bagong terminal at patakbuhin ang utos sa ibaba:

$ geth ikabit ang http://127.0.0.1:8543

Ngayon, nasa Geth console kami kung saan maaari kaming magpatakbo ng mga utos na makipag-ugnay sa Blockchain.

Lumilikha ng Ethereum Account

Upang makagawa ng anumang transaksyon, kailangan namin ng isang account. Sa seksyong ito ng tutorial ng Smart Ethereum na Kontrata, makikita namin kung paano lumikha ng bagong Ethereum account mula sa Geth console.

Sumusunod sa mga hakbang sa ngayon, nasa Geth console na kami. Upang lumikha ng isang bagong account, patakbuhin ang sumusunod na utos sa Geth console:

> personal.newAccount ('seedphrase')

Palitan ANG 'parirala”Gamit ang password na nais mong itakda para sa account na ito.

Lumikha kami ng isang bagong account, ngunit ang account na ito ay walang mga ether. Kailangan naminang mga ether upang gumawa ng anumang transaksyon at upang makakuha ng ethersa aming account, sisimulan namin ang pagmimina ng mga ether. Upang simulan ang pagmimina, kailangan muna naming i-unlock ang account. I-unlock natin ang account at simulan ang pagmimina.

> personal.unlockAccount (web3.eth.coinbase, 'seedphrase')> miner.start ()

Habang patuloy na nangyayari ang pagmimina, ilanmga etheridedeposito sa account na ito.

Tandaan : Ang mga ether na ito ay dummy ethers at walang halaga sa totoong mundo.

Upang suriin ang balansemga ethersa account tatakbo namin ang sumusunod na utos:

> web3.fromWei (eth.getBalance (eth.coinbase), 'ether')

Kapag pinatakbo mo ang utos na ito sa mga regular na agwat, makikita mo na angmga ethertumataas dahil sa pagmimina.

Upang ihinto ang pagmimina, patakbuhin ang sumusunod na utos:

> miner.stop ()

Lumilikha ng Smart Kontrata ng Ethereum

Lumilikha ng Truffle Project

Ngayong handa na namin ang aming pribadong Blockchain, makikita namin kung paano lumikha ng isang Ethereum Smart Contract gamit ang Truffle. Para sa tutorial na ito, lilikha kami ng isang simpleng 'Hello World' Ethereum Smart Contract.

Upang magsimula dito, gumawa muna kami ng isang bagong direktoryo upang maiimbak ang proyekto ng Truffle. At pagkatapos sa direktoryong iyon, lilikha kami ng isang bagong proyekto ng Truffle. Magbukas ng isang bagong terminal at patakbuhin ang mga utos sa ibaba:

$ mkdir truffle $ cd truffle $ truffle init

Ang truffle init lilikha ang utos ng lahat ng kinakailangang mga file na kinakailangan para sa isang proyekto na truffle.

Ngayong mayroon kaming lahat upang mai-deploy ang isang Ethereum Smart Contract na handa na, magsulat tayo sa isang 'Hello World' na Smart Contract.

Sumusulat ng isang 'Hello World' Smart Contract

Ang lahat ng mga kontrata ay dapat na nakasulat sa direktoryo ng 'mga kontrata'. Lilipat kami sa direktoryong ito at lilikha ng isang kontrata na may pangalang 'HelloWorld.sol' at idaragdag ang mga sumusunod na linya sa file na ito:

pragma solidity ^ 0.4.15 kontrata HelloWorld {string public message function Hello () public {message = 'Hello World!' }}

Heto na! Ngunit ang Smart Contract na ito ay hindi maaaring maisagawa nang mag-isa. Kailangan naming gumawa ng ilang mga pagsasaayos para dito.

Pag-configure ng Truffle Migration

Upang ilipat ang aming Smart Kontrata, magkakaroon kami upang magdagdag ng isang file sa 'Paglipat' direktoryo sa 'Truffle' direktoryo Sa direktoryong ito ay magdagdag kami ng isang file na pinangalanan “2_deploy_contracts.js” kasama ang mga sumusunod na nilalaman dito:

var HelloWorld = artifact.require ('./ HelloWorld.sol') module.exports = function (deployer) {deployer.deploy (HelloWorld)}

Makatipid at lumabas.

Upang magpatakbo ng truffle sa aming network, kailangan naming i-edit ang “ truffle.js ”File sa 'Truffle' direktoryo . Buksan ang file na ito at gawin ang mga sumusunod na entry:

module.exports = {rpc: {host: 'localhost', port: 8543}, mga network: {development: {host: 'localhost', port: 8543, network_id: '*', mula sa: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a', gas: 20000000}}}

Tandaan: Palitan ANG 'Mula sa' address sa address ng account na nilikha mo sa nakaraang hakbang.

Pagpapatupad ng Ethereum Smart Contract

Sa huling seksyon na ito ng tutorial ng Smart Ethereum na Kontrata, makikita namin kung paano i-deploy ang aming 'Hello World' na Smart Contract sa aming Ethereum Private Network.

Pag-iipon at Pag-deploy ng Smart Contract

Bago namin maipatupad ang aming Smart Contract, kailangan muna naming isulat at i-deploy ito sa aming Ethereum Private Network. Gagawin namin ito gamit ang mga sumusunod na utos:

$ truffle compile

Ngayon, kailangan naming i-unlock ang aming account at simulan ang pagmimina. Bumalik sa terminal gamit ang Geth console at patakbuhin ang sumusunod na utos:

> personal.unlockAccount (web3.eth.coinbase) > minero.start ()

at pagkatapos, bumalik sa terminal na mayroon 'Truffle' bilang kasalukuyang gumaganang direktoryo attumakboang sumusunod na utos:

$ truffle migrate

Hintaying makumpleto ang pag-deploy.

Pagpapatupad ng Smart Contract sa Pribadong Ethereum Blockchain

Upang maipatupad ang 'Hello World' na Smart Kontrata, kailangan naming pumasok sa truffle console. Patakbuhin ang sumusunod na utos upang gawin ito:

$ truffle console

Mapupunta ka ngayon sa truffle console. Upang maipatupad ang Smart Contract, patakbuhin ang sumusunod na utos:

> var first_contract> HelloWorld.deploy (). pagkatapos (function (instance) {first_contract = instance})> dApp.message.call ()

Binabati kita! Nilikha mo ang iyong unang Ethereum Smart Contract at naisakatuparan ito. Inaasahan kong ang tutorial na ito ng Ethereum Smart Contract ay nagbibigay-kaalaman at tinulungan kang maunawaan tungkol sa kung paano magpatupad ng isang Ethereum Smart Contract. Ngayon, magpatuloy at subukang sumulat ng iba pang mga Smart Kontrata at ipatupad ito.

May tanong ba sa amin? Mangyaring i-post ito sa at babalikan ka namin.

Kung nais mong malaman ang Blockchain at bumuo ng isang karera sa Blockchain Technologies, pagkatapos ay suriin ang aming na kasama ng live na pagsasanay na pinamunuan ng magtuturo at karanasan sa proyekto sa totoong buhay. Tutulungan ka ng pagsasanay na ito na maunawaan kung ano ang Blockchain sa isang lubusang pamamaraan at tutulong sa iyo na makamit ang mastery sa paksa.