Ethereum Private Network - Luo oma Ethereum Blockchain!



Tässä Ethereum Private Network -opetusohjelmassa opit luomaan oman Ethereum-lohkoketjun ja kuinka tehdä tapahtuma kahden tilin välillä.

Edellisessä Tryffeli Ethereum -opastus , opit Truffle Suitesta ja kehitit Ethereum DApp. Kehittääksesi monimutkaisen ethereum-sovelluksen, sinun kannattaa suorittaa se yksityisessä verkossa nähdäksesi, miten se toimii ennen sen käyttöönottoa. Joten tässä Ethereum Private Network -opetusohjelmassa opit luomaan Yksityinen Ethereum-verkko ja kuinka tehdä tapahtuma kahden tilin välillä.

Kiinnostaako Ethereumin kehitys? Katso Live .





Ethereumin yksityisen verkon opetusohjelma

Nämä ovat aiheita, joita käsittelen tässä opetusohjelmassa:

Mikä on Ethereum Private Network?

Ethereum Private Network on täysin yksityinen Blockchain, joka on eristetty Ethereum Main -verkosta. Ethereum Private Network on pääasiassa organisaatioiden luomaa rajoittamaan Blockchainin lukuoikeuksia. Vain solmut, joilla on oikeat käyttöoikeudet, voivat käyttää tätä Blockchainia. Tämän verkon solmut eivät ole yhteydessä pääverkkosolmuihin, ja niiden ulottuvuus on rajoitettu vain tähän yksityiseen lohkoketjuun.



Yksityinen ja julkinen -Ethereumin yksityisen verkon opetusohjelma - Edureka

Miksi Ethereum Private Network -verkkoa käytetään?

Organisaatiot käyttävät Ethereum Private Network -verkkoa yksityisten tietojen tallentamiseen, joiden ei pitäisi näkyä organisaation ulkopuolisille ihmisille. Ethereum Private Network -verkkoa käytetään myös Blockchainin testaamiseen ja kokeilemiseen, jos joku ei halua käyttää julkisia testiverkkoja.

Ethereum Private Networkin ominaisuudet

Kuten edellisessä osassa mainittiin, Ethereum Private Network -verkkoa käytetään testaustarkoituksiin. Mutta miksi joku ottaisi vaivaa uuden verkon luomisessa, kun julkisia testausverkkoja on jo käytettävissä? Ethereum Private Networkilla on omat ominaisuutensa, jotka on lueteltu alla:



  • Se toimii hajautettuna tietokantana
  • Ethereumin yksityisen verkon lohkoketju voi sisältää yksityisiä tietoja (koska verkko ei ole julkinen)
  • Käyttöoikeus voi olla lupapohjainen
  • Tapahtumien tekeminen voi olla ilmaista
  • Tilit voidaan jakaa eettereilläitse, mikä ei edes vaadi virtuaalieetterien ostamista

Siirrymme eteenpäin tämän Ethereum Private Network -opetusohjelman käytännön osaan.

Ethereumin asentaminen Ubuntuun

Ethereumin yksityisen verkon luominen edellyttää, että Ethereum on ensin asennettu järjestelmäämme. Tässä Ethereumin yksityisen verkon opetusohjelman osassa opit Ethereumin asentamisen Ubuntuun.

Asenna Ethereum suorittamalla seuraavat komennot päätelaitteessa:

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

Tehty! Tämä asentaa Ethereumin järjestelmääsi.

Aloitetaan yksityisen verkon luomisesta.

Demo: Ethereumin yksityisverkon luominen ja tapahtuman tekeminen

Tässä Ethereumin yksityisen verkon opetusohjelmassa lähetämme eettereitäTarvitsemme tilejä tililtä toiselle. Katsotaan nyt, miten luodaan tilit Blockchainille.

Ethereum Private Network -tilien luominen

Ennen uusien tilien luomista meidän on luotava uusi hakemisto työpaikallemme. Katso tämä alla olevista komennoista:

$ mkdir private-ethereum $ cd private-ethereum

Tapahtuman suorittamiseen tarvitaan vähintään kaksi tiliä: vastaanottaja ja lähettäjä.

Jos haluat luoda kaksi tiliä, suorita seuraava komento kahdesti:

ristiselaimen testaus seleenissä
$ geth --datadir ./datadir -tili uusi

Syötä salasana jokaiselle tilille pyydettäessä. Älä unohda tätä salasanaa!

Kun nämä komennot suoritetaan onnistuneesti, kaksi tiliä luodaan ja tilin osoite näytetään näytöllä.

Tallenna nämä osoitteet jonnekin, koska käytämme niitä edelleen.

Genesis-tiedoston luominen

Genesis-tiedosto sisältää ominaisuudet, jotka määrittävät Blockchainin. Genesis-tiedosto on Blockchainin aloituskohta, joten Genesis-tiedosto on pakollinen luomaan Blockchain. Luodaan nyt 1. Mooseksen kirjatiedosto.

Luo ensin tiedosto nimeltä genesis.json

$ nano genesis.json

Kopioi ja liitä nyt seuraava koodi tiedostoon:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0, 'byzantiumBlock': 0}, 'vaikeus': '400', 'gasLimit': ' 2000000 ',' alloko ': {' 82c440bba462220c9b54600e584373014706c177 ': {' saldo ':' 10000000000000000000000000 '},' 9db5b590fdecc10cdb04b85a3503e94e61b207ca ': {' saldo '0000

Huomautus: Korvaa yllä olevassa koodissa oleva osoite kohdassa kohdistaa -osiossa edellisessä vaiheessa luomiesi tilien osoite.

Tallenna se ja poistu.

Haluan selittää Genesis-tiedoston sisällön lyhyesti:

ketjuId - Tätä ketjun tunnistenumeroa käytetään erottamaan lohkoketjut
homesteadBlock, eip155Block, eip158Block, bysanttiBlock - nämä ominaisuudet liittyvät ketjun haarautumiseen ja versiointiin. Emme tarvitse näitä opetusohjelmaamme varten, joten asetetaan ne arvoon 0.
vaikeus - Tämä numero päättää, kuinka vaikeaa lohkojen on oltava. Yksityisverkoissa on hyvä asettaa pienempi numero, koska sen avulla voit estää miinan nopeasti, mikä johtaa nopeisiin tapahtumiin.
gasLimit - Tämä luku on kaasun kokonaismäärä, jota voidaan käyttää kussakin lohkossa. Emme halua, että verkkomme ylittää rajan, joten olemme asettaneet tämän korkealle.
kohdistaa - Tätä osaa käytetään jakamaan eetterit jo luotuille tileille.

Genesis-tiedosto on valmis. Nyt on aika aloittaa Blockchain.

Välitön tietohakemisto

Ennen kuin aloitamme Blockchainin, meidän on välitettävä tietohakemisto. Data Directory on hakemisto, johon Blockchainiin liittyvät tiedot tallennetaan. Suorita seuraava komento suorittaaksesi tietohakemiston:

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

Onnistuneen instantiationin pitäisi nähdä seuraava tulos:

Tietohakemiston instantioinnin avulla voimme nyt käynnistää Blockchainin.

Ethereum Private Blockchainin käynnistäminen

Käynnistä Blockchain suorittamalla seuraava komento:

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

Tehty! Yksityinen Ethereum Blockchain on käynnissä.

Yllä olevassa komennossa lähetämme kaikki lokit erillisenä tiedostona nimeltä Eth.log . Geth luo automaattisesti uuden tiedoston, jos sitä ei löydy.

Tämän koodin lähdön pitäisi näyttää tältä:

Nyt olemme aloittaneet geth konsoli missä voimme suorittaa komentoja Blockchainille.

Lokien lukeminen

Edellisessä osassa mainitsin, että tallennamme lokit toiseen tiedostoon. Tässä osassa kerron, kuinka voit lukea lokit tästä tiedostosta.

Luemme lokit erillisestä päätelaitteesta, joten ensin avataan uusi pääte. Ensimmäinen,vaihda yksityinen ethereum ja suorita seuraava komento lukeaksesi lokit:

$ tail -f Eth.log

Nyt näet lokit päätelaitteessa. Nämä lokit päivitetään dynaamisesti aina, kun Blockchainissa on jonkin verran toimintaa.

Tuodaan tilejä yksityiseen verkkoon

Muistat, että olemme luoneet kaksi tiliä tapahtumien suorittamista varten. Emme kuitenkaan lisänneet näitä tilejä verkkoomme. Joten tässä Ethereum Private Network -opetusohjelman osassa kerron sinulle, kuinka tilit tuodaan.

Kun luot tilin, kaikki tilin tiedot tallennetaan a UTC tiedosto tilin luomisen yhteydessä mainitussa hakemistossa (polku: ./datadir/keystore ). Tilien tuomiseksi meidän on kopioitava nämä tiedostot ja liitettävä ne avainvarasto Data Directory -hakemistossa(polku: ./myDataDir/keystore )

Siinä kaikki! Tilit tuodaan. Yksinkertainen, eikö olekin? Tuonnin vahvistamiseksi suoritamme seuraavan komennon geth konsoli.

> eth. tilit

Tämä näyttää luettelon kaikista käytettävissä olevista tileistä.

Tarkistamme näiden tilien saldon seuraavalla komennolla:

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

Olemme valmiita kaikkeen, mikä tarvitaan tapahtuman suorittamiseen. Miksi odottaa? Tehdään se!

Tapahtuman tekeminen

Tässä Ethereum Private Network -opetusohjelmassa lähetämme joitain eettereitätililtä toiselle.

Eetterien lähettämisen syntaksi on seuraava:

> eth.sendTransaction ({from: 'address', to: 'address', arvo: web3.toWei (määrä, 'eetteri')})

Lähetämme 1000 eetteriä tililtä 1 tilille 2 seuraavan komennon avulla:

> eth.sendTransaction ({from: eth.accounts [0], to: eth.accounts [1], arvo: web3.toWei (1000, 'eetteri')})

Eikö toimi? Älä huoli. Ei toiminut myös minulle. Tämä johtuu siitä, että tili on oletusarvoisesti lukittu eikä salli tapahtumia.

Joten ensin on avattava lähettäjän tili. Muistatko salasanan, jota käytit tilin luomisen yhteydessä? No, sinun täytyy, koska sinun on käytettävä sitä tilin lukituksen avaamiseen. Avaamme tilin lukituksen seuraavalla komennolla:

personal.unlockAccount (et. tilit [0], '')

Nyt lähetämme eettereitäonnistuneesti:

> eth.sendTransaction ({from: eth.accounts [0], to: eth.accounts [1], arvo: web3.toWei (1000, 'eetteri')})

Tämän pitäisi palauttaa tapahtuman tunnus.

Tehty! Olet suorittanut tapahtuman onnistuneesti!

Tarkista tapahtuma tarkistamalla molempien tilien saldo.

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

Jee! Voimme nähdä, että 1000 eetteriälähetettiin tililtä toiselle!

Onnittelut! Olet luonut Ethereumin yksityisverkon ja suorittanut tapahtuman. Toivon, että tämä Ethereum Private Network -opetusohjelma oli informatiivinen ja auttoi sinua ymmärtämään Ethereum Private Network -verkkoa. Mene eteenpäin ja kokeile kokeilla äskettäin luotua yksityistä verkkoa.

Onko sinulla kysymys meille? Ole hyvä ja lähetä se ja palaamme sinuun.

Jos haluat oppia Blockchainia ja rakentaa uraa Blockchain Technologiesissa, tutustu meidän joka sisältää ohjaajan vetämän live-koulutuksen ja tosielämän projektikokemuksen. Tämä koulutus auttaa sinua ymmärtämään tyhjentävästi Blockchainia ja auttaa sinua hallitsemaan aihetta.