I föregående Truffle Ethereum Tutorial , du lärde dig om Truffle Suite och utvecklade en Ethereum DApp. För att utveckla en komplex ethereum-applikation vill du köra den i ett privat nätverk för att se hur det fungerar innan du distribuerar det. Så i denna Ethereum Private Network-handledning lär du dig hur du skapar en Privat Ethereum-nätverk och hur man gör en transaktion mellan två konton.
Intresserad av Ethereum-utveckling? Kolla in Live .
Ethereums privata nätverkshandledning
Det här är ämnena jag kommer att behandla i den här handledningen:
- Vad är Ethereum Private Network?
- Varför används Ethereum Private Network?
- Funktioner i Ethereum Private Network
- Installera Ethereum på Ubuntu
- Demo: Skapa Ethereum Private Network och göra en transaktion
Vad är Ethereum Private Network?
Ett Ethereum Private Network är en helt privat Blockchain som är isolerad från Main Ethereum-nätverket. Ethereum Private Network skapas huvudsakligen av organisationer för att begränsa läsbehörigheterna för Blockchain. Endast noder med rätt behörighet kommer att kunna komma åt denna Blockchain. Noderna i detta nätverk är inte anslutna till huvudnätverksnoderna och deras räckvidd är endast begränsad till denna privata Blockchain.
Varför används Ethereum Private Network?
Ethereum Private Network används av organisationer för att lagra privata data som inte ska vara synliga för personer utanför deras organisation. Ethereum Private Network används också för att testa och experimentera Blockchain om någon inte vill använda de offentliga testnätverken.
Funktioner i Ethereum Private Network
Som nämnts i föregående avsnitt används Ethereum Private Network för teständamål. Men varför skulle någon ta sig besväret med att skapa ett nytt nätverk när det redan finns offentliga testnätverk tillgängliga? Tja, Ethereum Private Network har sin egen uppsättning funktioner som listas nedan:
- Det fungerar som en distribuerad databas
- Blockchain i Ethereum Private Network kan innehålla privata data (eftersom nätverket inte är offentligt)
- Åtkomst kan vara tillståndsbaserad
- Att göra transaktioner kan vara gratis
- Konton kan fördelas med etrarav oss själva vilket inte ens kräver att man köper virtuella etrar
Låt oss gå till den praktiska delen av denna Ethereum Private Network-handledning.
Installera Ethereum på Ubuntu
För att skapa ett Ethereum Private Network måste vi först ha Ethereum installerat i vårt system. I det här avsnittet i Ethereum Private Network Tutorial lär du dig hur du installerar Ethereum på Ubuntu.
För att installera Ethereum, kör följande kommandon 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
Gjort! Detta installerar Ethereum på ditt system.
Låt oss börja med skapandet av privata nätverk.
Demo: Skapa Ethereum Private Network och göra en transaktion
I den här Ethereums privata nätverkshandledningen skickar vi etrarfrån ett konto till ett annat och så behöver vi konton. Låt oss nu se hur du skapar konton för vår Blockchain.
Skapa konton för Ethereum Private Network
Innan vi skapar nya konton, låt oss skapa en ny katalog för vår arbetsplats. Se nedanstående kommandon för att göra detta:
$ mkdir private-ethereum $ cd private-ethereum
För att göra en transaktion behöver vi minst två konton: en mottagare och en avsändare.
För att skapa två konton, kör följande kommando två gånger:
hur man ändrar java-sökväg
$ geth --datadir ./datadir konto nytt
Gå in i lösenfras för varje konto när du blir ombedd. Glöm inte denna lösenfras!
När dessa kommandon har körts framgångsrikt skapas två konton och kontoadressen visas på skärmen.
Spara dessa adresser någonstans eftersom vi kommer att använda dessa ytterligare.
Skapa Genesis-fil
En Genesis-fil innehåller de egenskaper som definierar Blockchain. En Genesis-fil är startpunkten för Blockchain och så är det obligatoriskt att skapa Genesis-filen för att skapa en Blockchain. Nu ska vi skapa Genesisfil.
Skapa först en fil med namnet genesis.json
$ nano genesis.json
Och nu kopiera och klistra in följande kod i den filen:
{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0, 'byzantiumBlock': 0}, 'svårighet': '400', 'gasLimit': ' 2000000 ',' alloc ': {' 82c440bba462220c9b54600e584373014706c177 ': {' balance ':' 100000000000000000000000 '},' 9db5b590fdecc10cdb04b85a3503e94e61b207ca ': {' balance ': '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Notera: I ovanstående kod ersätter du adressen under alloc avsnitt med adressen till kontona som du skapade i föregående steg.
Spara det och avsluta.
Låt mig förklara innehållet i Genesis-filen i korthet:
chainId - Detta är kedjeidentifieringsnumret som används för att skilja mellan blockkedjor
homesteadBlock, eip155Block, eip158Block, byzantiumBlock - dessa egenskaper är relaterade till kedjeförgärning och versionering. Vi behöver inte dessa för vår handledning, så låt oss ställa in dem på 0.
svårighet - Det här numret avgör hur svårt blocken kommer att bli att bryta. För privata nätverk är det bra att ställa in ett lägre antal eftersom det låter dig bryta block snabbt, vilket resulterar i snabba transaktioner.
gasLimit - Detta nummer är den totala mängden gas som kan användas i varje block. Vi vill inte att vårt nätverk ska nå gränsen, så vi har satt detta högt.
alloc - Denna del används för att allokera etrar till redan skapade konton.
Genesis-filen är klar. Nu är det dags att starta Blockchain.
Instantiering av datakatalog
Innan vi startar Blockchain måste vi starta datakatalogen. Datakatalogen är den katalog där data relaterade till Blockchain lagras. För att starta datakatalogen, kör följande kommando:
$ geth --datadir ./myDataDir init ./genesis.json
Vid framgångsrik instantiering bör du se följande utdata:
Med datakatalogen instanserad kan vi nu starta Blockchain.
Startar Ethereum Private Blockchain
För att starta Blockchain, kör följande kommando:
$ geth --datadir ./myDataDir - nätverkid 1114-konsol 2 >> Eth.log
Gjort! Din privata Ethereum Blockchain är igång.
I ovanstående kommando skickar vi alla loggar i en separat fil som heter Eth.log . Geth skapar automatiskt en ny fil om den inte hittas.
Utgången från den här koden ska se ut så här:
Nu har vi gått in i geth trösta där vi kan köra kommandon för vår Blockchain.
Läser loggar
I föregående avsnitt nämnde jag att vi lagrar loggarna i en annan fil. I det här avsnittet kommer jag att berätta hur du läser loggarna från den här filen.
Vi läser loggarna från en separat terminal, så låt oss först öppna en ny terminal. Först,växla till privat eterum katalog och kör sedan följande kommando för att läsa loggarna:
$ tail -f Eth.log
Du kan nu se loggarna i terminalen. Dessa loggar uppdateras dynamiskt när det finns någon aktivitet i Blockchain.
hur man undviker dödläge i java
Importera konton till det privata nätverket
Du kanske kommer ihåg att vi skapade två konton för att göra transaktioner. Men vi lade inte till dessa konton i vårt nätverk. Så i det här avsnittet i Ethereums privata nätverkshandledning kommer jag att berätta hur du importerar kontona.
När vi skapar ett konto lagras all information om kontot i en UTC fil i katalogen som nämns under skapande av konto (sökväg: ./datadir/keystore ). För att importera kontona måste vi kopiera dessa filer och klistra in i keystore katalog under datakatalogen(väg: ./myDataDir/keystore )
Det är allt! Kontona importeras. Enkelt, eller hur? För att verifiera importen kör vi följande kommando i geth trösta.
> eth.accounts
Detta visar en lista över alla tillgängliga konton.
För att kontrollera saldot på dessa konton använder vi följande kommando:
> web3.fromWei (eth.getBalance (), 'eter')
Vi är redo med allt som krävs för att göra en transaktion. Varför vänta? Vi gör det!
Att göra en transaktion
I denna Ethereum Private Network-handledning skickar vi några etrarfrån ett konto till ett annat.
Syntaksen för att skicka etrar är som följer:
> eth.sendTransaction ({från: ”adress”, till: ”adress”, värde: web3.toWei (mängd, 'eter')})
Vi skickar 1000 etrar från konto 1 till konto 2 med följande kommando:
> eth.sendTransaction ({från: eth.accounts [0], till: eth.accounts [1], värde: web3.toWei (1000, 'eter')})
Fungerade inte? Oroa dig inte. Fungerade inte för mig också. Det beror på att kontot är låst som standard och inte tillåter transaktioner.
Så först måste vi låsa upp avsändarkontot. Kom ihåg lösenfrasen du använde när du skapade kontot? Det måste du, för du måste använda det för att låsa upp kontot. Vi låser upp kontot med följande kommando:
personal.unlockAccount (eth.accounts [0], '')
Nu skickar vi etrarframgångsrikt:
> eth.sendTransaction ({från: eth.accounts [0], till: eth.accounts [1], värde: web3.toWei (1000, 'eter')})
Detta ska returnera ett transaktions-ID.
Gjort! Du har gjort en transaktion!
För att verifiera transaktionen, låt oss kontrollera saldot i båda kontona.
> web3.fromWei (eth.getBalance ('0x82c440bba462220c9b54600e584373014706c177'), 'eter')
> web3.fromWei (eth.getBalance ('0x9db5b590fdecc10cdb04b85a3503e94e61b207ca'), 'eter')
Jippie! Vi kan se att 1000 etrarskickades från ett konto till ett annat!
Grattis! Du har skapat ett Ethereum Private Network och gjort en transaktion. Jag hoppas att denna Ethereum Private Network-handledning var informativ och hjälpte dig att förstå Ethereum Private Network. Fortsätt nu och försök experimentera med det nyligen skapade privata nätverket.
Har du en fråga till oss? Vänligen posta det på så återkommer vi till dig.
skapa en rad objekt Java
Om du vill lära dig Blockchain och bygga en karriär inom Blockchain Technologies, kolla in vår som kommer med instruktörsledad liveutbildning och verklig projektupplevelse. Denna utbildning hjälper dig att förstå vad som är Blockchain på ett uttömmande sätt och hjälper dig att uppnå behärskning över ämnet.