Ethereum Private Network - Lag din egen Ethereum Blockchain!



I denne Ethereum Private Network-opplæringen vil du lære hvordan du lager din egen Ethereum Blockchain og hvordan du gjør en transaksjon mellom to kontoer.

I forrige Truffle Ethereum Tutorial , du lærte om Truffle Suite og utviklet en Ethereum DApp. For å utvikle et komplekst ethereum-program, vil du kjøre det på et privat nettverk for å se hvordan det fungerer før du distribuerer det. Så i denne Ethereum Private Network-opplæringen vil du lære å lage en Privat Ethereum-nettverk og hvordan du gjør en transaksjon mellom to kontoer.

Interessert i Ethereum Development? Sjekk ut Live .





Ethereum Private Network Tutorial

Dette er emnene jeg skal dekke i denne opplæringen:

Hva er Ethereum Private Network?

Et Ethereum Private Network er en helt privat Blockchain som er isolert fra Main Ethereum-nettverket. Ethereum Private Network er hovedsakelig opprettet av organisasjoner for å begrense lesetillatelsene til Blockchain. Bare nodene med de rette tillatelsene vil ha tilgang til denne Blockchain. Nodene i dette nettverket er ikke koblet til de viktigste nettverksnodene, og rekkevidden deres er bare begrenset til denne private Blockchain.



Privat og offentlig -Ethereum Private Network tutorial - Edureka

Hvorfor brukes Ethereum Private Network?

Ethereum Private Network brukes av organisasjoner til å lagre private data som ikke skal være synlige for personer utenfor organisasjonen. Ethereum Private Network brukes også til å teste og eksperimentere Blockchain hvis noen ikke vil bruke de offentlige testnettverkene.

Funksjoner av Ethereum Private Network

Som nevnt i forrige avsnitt brukes Ethereum Private Network til testformål. Men hvorfor skulle noen ta seg bryet med å opprette et nytt nettverk når det allerede er offentlige testnettverk tilgjengelig? Ethereum Private Network har sitt eget sett med funksjoner som er oppført nedenfor:



  • Den fungerer som en distribuert database
  • Blockchain i Ethereum Private Network kan inneholde private data (fordi nettverket ikke er offentlig)
  • Tilgang kan være tillatelsesbasert
  • Å gjøre transaksjoner kan være gratis
  • Kontoer kan tildeles med etereav oss selv som ikke engang krever å kjøpe virtuelle etere

La oss komme videre til den praktiske delen av denne Ethereum Private Network-opplæringen.

Installere Ethereum på Ubuntu

For å opprette et Ethereum Private Network må vi først ha Ethereum installert i systemet vårt. I denne delen av Ethereum Private Network Tutorial vil du lære hvordan du installerer Ethereum på Ubuntu.

For å installere Ethereum, kjør følgende kommandoer i en terminal:

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

Ferdig! Dette vil installere Ethereum på systemet ditt.

La oss starte med opprettelsen av det private nettverket.

Demo: Opprette Ethereum Private Network og gjøre en transaksjon

I denne Ethereum Private Network Tutorial vil vi sende eterefra en konto til en annen og så trenger vi kontoer. La oss nå se hvordan du oppretter kontoer for Blockchain.

Opprette kontoer for Ethereum Private Network

Før vi oppretter nye kontoer, la oss opprette en ny katalog for arbeidsplassen vår. Se kommandoene nedenfor for å gjøre dette:

$ mkdir private-ethereum $ cd private-ethereum

For å gjøre en transaksjon trenger vi minst to kontoer: En mottaker og en avsender.

For å opprette to kontoer, kjør følgende kommando to ganger:

$ geth --datadir ./datadir konto ny

Tast inn passordfrase for hver konto når du blir spurt. Ikke glem denne passordfrasen!

Når disse kommandoene kjører, blir det opprettet to kontoer, og kontoadressen vises på skjermen.

Lagre disse adressene et sted fordi vi vil bruke disse videre.

Opprette Genesis File

En Genesis-fil inneholder egenskapene som definerer Blockchain. En Genesis-fil er startpunktet for Blockchain, og det er derfor obligatorisk å lage Genesis-filen for å lage en Blockchain. La oss nå lage Genesisfil.

Først oppretter du en fil med navnet genesis.json

$ nano genesis.json

Og nå kopier og lim inn følgende kode i den filen:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0, 'byzantiumBlock': 0}, 'vanskelighetsgrad': '400', 'gasLimit': ' 2000000 ',' alloc ': {' 82c440bba462220c9b54600e584373014706c177 ': {' balance ':' 100000000000000000000000 '},' 9db5b590fdecc10cdb04b85a3503e94e61b207ca ': {' balance ': '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Merk: I koden ovenfor erstatter du adressen under tildele delen med adressen til kontoene du opprettet i forrige trinn.

Lagre den og gå ut.

La meg forklare innholdet i Genesis-filen kort:

chainId - Dette er kjedeidentifikasjonsnummeret som brukes til å skille mellom Blockchains
homesteadBlock, eip155Block, eip158Block, byzantiumBlock - disse egenskapene er relatert til kjedegafling og versjonering. Vi trenger ikke disse for opplæringen, så la oss sette dem til 0.
vanskelighet - Dette tallet bestemmer hvor vanskelige blokkene vil være for mine. For private nettverk er det bra å angi et lavere tall, da det lar deg bryte blokker raskt, noe som resulterer i raske transaksjoner.
gasLimit - Dette tallet er den totale mengden gass som kan brukes i hver blokk. Vi vil ikke at nettverket vårt skal nå grensen, så vi har satt dette høyt.
tildele - Denne delen brukes til å fordele etere til allerede opprettede kontoer.

Genesis-filen er klar. Nå er det på tide å starte Blockchain.

Instantierende datakatalog

Før du starter Blockchain, må vi sette i gang datakatalogen. Datakatalogen er katalogen der dataene knyttet til Blockchain er lagret. For å starte datakatalogen, kjør følgende kommando:

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

Ved vellykket instantiering, bør du se følgende utdata:

Med datakatalogen instansert kan vi nå starte Blockchain.

Starter Ethereum Private Blockchain

For å starte Blockchain, kjør følgende kommando:

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

Ferdig! Din private Ethereum Blockchain er i gang.

I kommandoen ovenfor sender vi alle loggene i en egen fil som heter Eth.log . Geth oppretter automatisk en ny fil hvis den ikke blir funnet.

Utgangen av denne koden skal se ut slik:

Nå har vi inngått geth konsoll der vi kan kjøre kommandoer for vår Blockchain.

Lese logger

I forrige avsnitt nevnte jeg at vi lagrer loggene i en annen fil. I denne delen vil jeg fortelle deg hvordan du leser loggene fra denne filen.

Vi vil lese loggene fra en egen terminal, så la oss først åpne en ny terminal. Først,bytt til privat-eterum katalog og kjør deretter følgende kommando for å lese loggene:

$ hale -f Eth.log

Du kan nå se loggene i terminalen. Disse loggene oppdateres dynamisk når det er noe aktivitet i Blockchain.

Importerer kontoer til privat nettverk

Du husker kanskje at vi opprettet to kontoer for å gjøre transaksjoner. Men vi la ikke til disse kontoene i nettverket vårt. Så i denne delen av Ethereum Private Network tutorial vil jeg fortelle deg hvordan du importerer kontoene.

Når vi oppretter en konto, lagres alle detaljene i kontoen i en UTC fil i katalogen som er nevnt under kontoopprettelse (sti: ./datadir/keystore ). For å importere kontoene, må vi kopiere disse filene og lime inn i keystore katalogen under datakatalogen(sti: ./myDataDir/keystore )

Det er alt! Kontoer importeres. Enkelt, ikke sant? For å bekrefte importen kjører vi følgende kommando i geth konsoll.

> eth.accounts

Dette viser en liste over alle tilgjengelige kontoer.

For å sjekke saldoen på disse kontoene, bruker vi følgende kommando:

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

Vi er klare med alt som kreves for å gjøre en transaksjon. Hvorfor vente? La oss gjøre det!

Gjør en transaksjon

I denne Ethereum Private Network-opplæringen vil vi sende noen eterefra en konto til en annen.

Syntaksen for å sende etere er som følger:

> eth.sendTransaction ({fra: ”adresse”, til: ”adresse”, verdi: web3.toWei (beløp, 'eter')})

Vi sender 1000 etere fra konto 1 til konto 2 ved hjelp av følgende kommando:

> eth.sendTransaction ({fra: eth.accounts [0], til: eth.accounts [1], verdi: web3.toWei (1000, 'eter')})

Fungerte ikke? Ikke bekymre deg. Fungerte ikke for meg også. Dette er fordi kontoen er låst som standard og ikke tillater transaksjoner.

Så først må vi låse opp avsenderkontoen. Husker du passordfrasen du brukte da du opprettet kontoen? Det må du, for du må bruke det til å låse opp kontoen. Vi låser opp kontoen med følgende kommando:

gå til funksjon i python
personal.unlockAccount (eth.accounts [0], '')

Nå skal vi sende eterevellykket:

> eth.sendTransaction ({fra: eth.accounts [0], til: eth.accounts [1], verdi: web3.toWei (1000, 'eter')})

Dette skal returnere en transaksjons-ID.

Ferdig! Du har fullført en transaksjon!

For å bekrefte transaksjonen, la oss sjekke saldoen i begge kontoene.

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

Jippi! Vi kan se at 1000 etereble sendt fra en konto til en annen!

Gratulerer! Du har opprettet et Ethereum Private Network og gjort en transaksjon. Jeg håper denne Ethereum Private Network-opplæringen var informativ og hjalp deg med å forstå om Ethereum Private Network. Nå kan du prøve å eksperimentere med det nyopprettede private nettverket.

Har du spørsmål til oss? Vennligst legg den ut på og vi kommer tilbake til deg.

Hvis du ønsker å lære Blockchain og bygge en karriere innen Blockchain Technologies, så sjekk ut vår som kommer med instruktørstyrt liveopplæring og reell prosjektopplevelse. Denne opplæringen vil hjelpe deg å forstå hva som er Blockchain på en uttømmende måte og hjelpe deg med å mestre emnet.