Pribadong Network ng Ethereum - Lumikha ng iyong sariling Ethereum Blockchain!



Sa tutorial ng Ethereum Private Network na ito, malalaman mo kung paano lumikha ng iyong sariling Ethereum Blockchain at kung paano gumawa ng isang transaksyon sa pagitan ng dalawang mga account.

Sa nakaraan Truffle Tutorial sa Ethereum , nalaman mo ang tungkol sa Truffle Suite at nakabuo ng Ethereum Ang DApp. Upang makabuo ng isang kumplikadong aplikasyon ng Ethereum, gugustuhin mong patakbuhin ito sa isang pribadong network upang makita kung paano ito gumagana bago ito ipadala. Kaya, sa tutorial ng Ethereum Private Network na ito, matututunan mo kung paano lumikha ng isang Pribadong Ethereum Network at kung paano gumawa ng isang transaksyon sa pagitan ng dalawang mga account.

kung paano maging isang artipisyal na inhinyero ng katalinuhan

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





Tutorial sa Pribadong Network ng Ethereum

Ito ang mga paksang sasaklawin ko sa tutorial na ito:

Ano ang Private Network ng Ethereum?

Ang isang Ethereum Private Network ay isang ganap na pribadong Blockchain na kung saan ay nakahiwalay mula sa pangunahing network ng Ethereum. Ang Pribadong Network ng Ethereum ay pangunahing nilikha ng mga samahan upang paghigpitan ang mga nabasang pahintulot ng Blockchain. Ang mga node lamang na may tamang mga pahintulot ang makaka-access sa Blockchain na ito. Ang mga node sa network na ito ay hindi konektado sa pangunahing mga node ng network at ang kanilang abot ay limitado lamang sa pribadong Blockchain na ito.



Pribado at Publiko -Ethereum Private Tutorial tutorial - Edureka

Bakit ginagamit ang Ethereum Private Network?

Ang Ethereum Private Network ay ginagamit ng mga organisasyon upang mag-imbak ng pribadong data na hindi dapat makita ng mga tao sa labas ng kanilang samahan. Ginagamit din ang Ethereum Private Network para sa pagsubok at pag-eksperimento sa Blockchain kung may nais na gumamit ng mga pampublikong network ng pagsubok.

Mga tampok ng Ethereum Private Network

Tulad ng nabanggit sa nakaraang seksyon, ang Ethereum Private Network ay ginagamit para sa layunin ng pagsubok. Ngunit bakit magkakaroon ng problema ang isang tao sa paglikha ng isang bagong network kung mayroon nang mga magagamit na mga network ng pagsubok sa publiko? Sa gayon, ang Ethereum Private Network ay may sariling hanay ng mga tampok tulad ng nakalista sa ibaba:



  • Gumagawa ito bilang isang Ipamahagi na Database
  • Ang Blockchain sa Ethereum Private Network ay maaaring maglaman ng pribadong data (dahil ang network ay hindi pampubliko)
  • Ang pag-access ay maaaring batay sa pahintulot
  • Ang paggawa ng mga transaksyon ay maaaring libre
  • Maaaring mailaan ang mga account sa mga ethersa pamamagitan ng ating mga sarili na kung saan ay hindi nangangailangan ng pagbili ng mga virtual ether

Patuloy, makarating tayo sa hands-on na bahagi ng tutorial ng Private Private Ethereum na ito.

Pag-install ng Ethereum sa Ubuntu

Upang lumikha ng isang Ethereum Private Network, kailangan muna naming mai-install ang Ethereum sa aming system. Sa seksyong ito ng Ethereum Private Network Tutorial, matututunan mo kung paano i-install ang Ethereum sa Ubuntu.

Upang mai-install ang Ethereum, patakbuhin ang mga sumusunod na utos sa isang 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

Tapos na! I-install nito ang Ethereum sa iyong system.

Magsimula tayo sa paglikha ng Pribadong Network.

Demo: Lumilikha ng Pribadong Network ng Ethereum at gumagawa ng isang Transaksyon

Sa Tutorial ng Pribadong Network ng Ethereum na ito, magpapadala kami ng mga ethermula sa isang account patungo sa isa pa at sa gayon, kailangan namin ng mga account. Tingnan natin ngayon kung paano lumikha ng mga account para sa aming Blockchain.

Lumilikha ng Mga Account Para sa Pribadong Network ng Ethereum

Bago lumikha ng mga bagong account, gumawa tayo ng isang bagong direktoryo para sa aming lugar ng trabaho. Sumangguni sa mga utos sa ibaba upang gawin ito:

$ mkdir pribado-ethereum $ cd pribado-ethereum

Upang makagawa ng isang transaksyon, kailangan namin ng hindi bababa sa dalawang mga account: Isang tatanggap at isang nagpapadala.

Upang lumikha ng dalawang account, patakbuhin ang sumusunod na utos ng dalawang beses:

$ geth --datadir ./datadir account bago

Pumasok sa passphrase para sa bawat account kapag tinanong. Huwag kalimutan ang passphrase na ito!

Sa sandaling matagumpay na tumakbo ang mga utos na ito, dalawang mga account ang malilikha at ang account address ay ipapakita sa screen.

I-save ang mga address na ito sa isang lugar dahil gagamitin namin ang mga ito nang higit pa.

Lumilikha ng File ng Genesis

Naglalaman ang isang file ng Genesis ng mga katangian na tumutukoy sa Blockchain. Ang isang file ng Genesis ay ang panimulang punto ng Blockchain at sa gayon, ipinag-uutos na lumikha ng file ng Genesis upang lumikha ng isang Blockchain. Ngayon, likhain natin ang Genesisfile

Una, lumikha ng isang file na pinangalanan genesis.json

$ nano genesis.json

At ngayon kopyahin at i-paste ang sumusunod na code sa file na iyon:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0, 'byzantiumBlock': 0}, 'kahirapan': '400', 'gasLimit': ' 2000000 ',' alloc ': {' 82c440bba462220c9b54600e584373014706c177 ': {' balanse ':' 100000000000000000000000 '},' 9db5b590fdecc10cdb04b85a3503e94e61b207ca ': {' balanse ':' 120000}}

Tandaan: Sa code sa itaas, palitan ang address sa ilalim maglaan seksyon na may address ng mga account na iyong nilikha sa nakaraang hakbang.

I-save ito at lumabas.

Hayaan mong ipaliwanag ko ang mga nilalaman ng file ng Genesis nang maikling:

chainId - Ito ang numero ng pagkakakilanlan ng kadena na ginagamit upang makilala sa pagitan ng mga Blockchain
homesteadBlock, eip155Block, eip158Block, byzantiumBlock - ang mga katangiang ito ay nauugnay sa chain forking at bersyon. Hindi namin kailangan ang mga ito para sa aming tutorial, kaya't itakda natin ang mga ito sa 0.
hirap - Ang numero na ito ang nagpapasya kung gaano kahirap ang pagmamay-ari ng mga bloke. Para sa mga Pribadong network, mahusay na magtakda ng isang mas mababang numero dahil pinapayagan kang mabilis na mina-block, na magreresulta sa mabilis na mga transaksyon.
gasLimit - Ang bilang na ito ay ang kabuuang halaga ng gas na maaaring magamit sa bawat bloke. Hindi namin nais na maabot ng aming network ang limitasyon, kaya itinakda namin ito ng mataas.
maglaan - Ang bahaging ito ay ginagamit upang maglaan ng mga ether sa mga nalikha nang account.

Handa na ang file ng Genesis. Ngayon, oras na upang simulan ang Blockchain.

Instantiating Data Directory

Bago simulan ang Blockchain, kailangan nating patunayan ang direktoryo ng data. Ang Direktoryo ng Data ay ang direktoryo kung saan ang data na nauugnay sa Blockchain ay nakaimbak. Upang masimulan ang direktoryo ng data, patakbuhin ang sumusunod na utos:

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

Sa matagumpay na instantiation, dapat mong makita ang sumusunod na output:

Gamit ang pagpapatatag ng Data Directory, maaari na nating simulan ang Blockchain.

Simula sa Pribadong Blockchain ng Ethereum

Upang simulan ang Blockchain, patakbuhin ang sumusunod na utos:

$ geth --datadir ./myDataDir --networkid 1114 console 2 >> Eth.log

Tapos na! Ang iyong pribadong Ethereum Blockchain ay nakabukas at tumatakbo.

Sa utos sa itaas, nagpapadala kami ng lahat ng mga log sa isang hiwalay na file na tinawag Eth.log . Awtomatikong lilikha ang Geth ng isang bagong file kung hindi ito nahanap.

Ang output ng code na ito ay dapat magmukhang ganito:

def __init__ python

Ngayon, nakapasok na kami sa geth console kung saan maaari naming patakbuhin ang mga utos para sa aming Blockchain.

Mga tala sa Pagbasa

Sa nakaraang seksyon, nabanggit ko na itinatago namin ang mga log sa isa pang file. Sa seksyong ito, sasabihin ko sa iyo kung paano basahin ang mga tala mula sa file na ito.

Babasahin namin ang mga log mula sa isang magkakahiwalay na terminal, kaya't buksan muna natin ang isang bagong terminal. Una,lumipat sa pribado-ethereum direktoryo at pagkatapos ay patakbuhin ang sumusunod na utos upang basahin ang mga tala:

$ buntot -f Eth.log

Maaari mo na ngayong makita ang mga log sa terminal. Ang mga log na ito ay makakakuha ng pabagu-bago sa tuwing mayroong ilang aktibidad sa Blockchain.

Pag-import ng mga account sa Pribadong Network

Maaari mong tandaan na lumikha kami ng dalawang mga account upang makagawa ng mga transaksyon. Ngunit, hindi namin naidagdag ang mga account na ito sa aming network. Kaya, sa seksyong ito ng tutorial ng Ethereum Private Network, sasabihin ko sa iyo kung paano i-import ang mga account.

Kapag lumikha kami ng isang account, ang lahat ng mga detalye ng account ay nakaimbak sa isang UTC file sa direktoryo na nabanggit sa panahon ng paggawa ng account (path: ./datadir/keystore ). Upang mai-import ang mga account, kailangan naming kopyahin ang mga file na ito at i-paste sa keystore direktoryo sa ilalim ng Data Directory(landas: ./myDataDir/keystore )

Yun lang! Ang mga account ay na-import. Simple, hindi ba? Upang mapatunayan ang pag-import, tatakbo namin ang sumusunod na utos sa geth console

> mga et. account

Ipapakita nito ang isang listahan ng lahat ng mga account na magagamit.

Upang suriin ang balanse ng mga account na ito, gagamitin namin ang sumusunod na utos:

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

Handa na kami sa lahat ng kinakailangan upang makagawa ng isang transaksyon. Bakit maghintay Gawin natin!

Paggawa ng Isang Transaksyon

Sa tutorial ng Ethereum Private Network na ito, magpapadala kami ng ilang mga ethermula sa isang account patungo sa isa pa.

Ang syntax upang magpadala ng mga ether ay ang mga sumusunod:

> eth.sendTransaction ({mula sa: ”address”, sa: ”address”, halaga: web3.toWei (halaga, 'ether')})

Magpadala kami ng 1000 eter mula sa account 1 hanggang sa account 2 gamit ang sumusunod na utos:

> eth.sendTransaction ({mula sa: eth.accounts [0], sa: eth.account [1], halaga: web3.toWei (1000, 'ether')})

Hindi nagtrabaho Huwag kang magalala. Hindi rin gumana para sa akin. Ito ay dahil ang account ay naka-lock bilang default at hindi pinapayagan ang mga transaksyon.

Kaya, una, kailangan naming i-unlock ang nagpadala account. Naaalala mo ang passphrase na ginamit mo habang lumilikha ng account? Kaya, kailangan mo, dahil gagamitin mo iyon upang i-unlock ang account. Ina-unlock namin ang account sa pamamagitan ng sumusunod na utos:

personal.unlockAccount (eth.account [0], '')

Ngayon ay magpapadala kami ng mga ethermatagumpay:

> eth.sendTransaction ({mula sa: eth.accounts [0], sa: eth.account [1], halaga: web3.toWei (1000, 'ether')})

Dapat itong bumalik ng isang Transaction ID.

Tapos na! Matagumpay kang nakagawa ng isang transaksyon!

Upang ma-verify ang transaksyon, suriin natin ang balanse sa parehong mga account.

> web3.fromWei (eth.getBalance ('0x82c440bba462220c9b54600e584373014706c177'), 'ether')
> web3.fromWei (eth.getBalance ('0x9db5b590fdecc10cdb04b85a3503e94e61b207ca'), 'ether')

Yay! Maaari naming makita ang 1000 eteray ipinadala mula sa isang account patungo sa isa pa!

Binabati kita! Lumikha ka ng isang Ethereum Private Network at gumawa ng isang transaksyon. Inaasahan kong ang tutorial ng Ethereum Private Network na ito ay may kaalaman at tinulungan kang maunawaan tungkol sa Ethereum Private Network. Ngayon, magpatuloy at subukang mag-eksperimento sa bagong nilikha na Pribadong network.

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.