Sådan køres GETH fra en Docker-container

Installation af Ethereum node-klienten på en maskine kan være en kedelig proces. Der er en enklere måde, dette kan gøres ved hjælp af en Docker-klient. Dette er en guide til at køre GETH (Ethereum-Go) node-klienten fra en Docker-container. GETH er GoLang-implementeringen af ​​Ethereum-protokollen. Der er et billede tilgængeligt til at trække fra Docker-hub-arkivet, der kan køre miljøet.

den GoEthereuminternet sideviser de følgende tilgængelige billeder med beskrivelser.

  • ethereum/client-go:latest er den seneste udviklingsversion af Geth
  • ethereum/client-go:stable er den seneste stabile version af Geth
  • ethereum/client-go:{version} er den stabile version af Geth på et specifikt versionsnummer
  • ethereum/client-go:release-{version} er den seneste stabile version af Geth i en bestemt version familie

Følgende porte åbnes som standard, når de kører fra containeren.

  • 8545 TCP, der bruges af den HTTP-baserede JSON RPC API
  • 8546 TCP, der bruges af den WebSocket-baserede JSON RPC API
  • 30303 TCP og UDP, der bruges af P2P-protokollen, der kører netværket
  • 30304 UDP, brugt af P2P-protokollens nye peer discovery-overlay

Docker-klientsoftwaren skal være installeret på den maskine, du vil køre containeren fra. Containere kan kun køre, hvis du har installeret Docker-klienten. Afhængigt af dit operativsystem er det nødvendigt med den korrekte version af klienten.

Der er separate versioner til Windows, Linux og MacOS. Containeren kan endda køres på en Linux-instans, der kører på AWS, som en typisk Linux-installation. Når Docker-klienten er installeret, betyder den underliggende platform ikke noget. Kommandoerne er de samme for alle.

At få billedet

Åbn en terminal på Linux eller MacOS eller PowerShell- kommandoprompt fra Windows. Skriv følgende kommando i CLI-prompten:

docker pull ethereum / client-go

Dette trækker Docker-billedet fra hub-arkivet, hvor det blev uploadet af Ethereum-udviklerne. Når du har udstedt denne kommando, skal følgende detaljerede eller lignende vises:

Jeg har allerede trukket billedet, så det detaljerede kan se anderledes ud. Når du udsteder pull-kommandoen, downloader den altid det nyeste tilgængelige billede, hvilket er god praksis.

Kører Node

Nu kan du starte noden ved at udstede følgende kommando:

Vi ønsker at køre noden med flagindstillingerne -i og -t for at få vist oplysninger fra vores container. Den -p angiver brugen af et portnummer, i dette tilfælde 30303. Ligeledes kan kommandoen køres uden flagene og det vil blot bruge standardindstillingerne havne og indstillinger fra inde i beholderen.

Følgende oplysninger skal vises fra terminalen.

INFO-linjen, der viser konfigurationen, afslører, hvad node-klientsoftwaren har installeret. Nodeklienten kører den nyeste (fra dette indlæg) version af Ethereum-softwaren, som er Konstantinopel, der er en brugeraktiveret hård gaffel i blokhøjde 7280000.

Når du kører i JSON-RPC API:

Vær opmærksom på, at kørsel af indstillingen rpcaddr “0.0.0.0” ikke er sikker, da du åbner din node for al trafik. Hvis din ETH-tegnebog blev låst op, kan en hacker komme til din knude på denne måde og tage dine mønter. Jeg dækker ikke sikkerhed i denne artikel, men du kan læse mere om det her (sikring af din GETH-nodes RPC-porte). Overhold altid sikker og bedste praksis.

Hvis noden viser følgende i INFO-linjen, vil der være et problem:

config = ”{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Constantinople: Engine: ethash}”

Konstantinopel: angiver, at softwaren ikke blev opdateret. Der er heller ingen linje for ConstantinopleFix, som vises i den korrekte konfiguration.

Vedvarende data

For vedvarende blockchain-data skal Docker-datamængder bruges med optionen -v . Den /path/on/hostskal erstattes med den placering, du angiver. Til dette skal følgende kommando bruges:

Kontrol af nodestatus

Du kan kontrollere containerens status ved hjælp af følgende kommando:

docker ps

Dette viser Container-ID'et med det anvendte billednavn, status og porte.

 #These are the commands to run from the Docker CLI to run the Ethereum Go node client #GETTING THE IMAGE docker pull ethereum/client-go #RUNNING THE NODE docker run -it -p 30303:30303 ethereum/client-go #RUNNING NODE USING API docker run -it -p 8545:8545 -p 30303:30303 ethereum/client-go --rpc --rpcaddr "0.0.0.0" #Note, warning about using --rpcaddr "0.0.0.0" in a live environment. It is an insecure way of opening your node. #There are different ways to secure your ports, but this is one thing to take note of if you plan to use the API. #PERSISTENT DATA docker run -it -p 30303:30303 -v /path/on/host:/root/.ethereum ethereum/client-go

Vær opmærksom på, at dette ikke automatisk miner ETH. Det er en anden proces. For at få hurtig adgang til Ethereum blockchain er dette formålet med at køre GETH.

For fuld kode kilde, besøg: //github.com/Play3rZer0/GETHDocker.git