Home  >  Article  >  Operation and Maintenance  >  What is geth in docker

What is geth in docker

青灯夜游
青灯夜游Original
2022-02-21 16:41:222753browse

In docker, Geth refers to the official client software provided by the Ethereum Foundation, written in the Go programming language; the Geth client provides an interactive command console, which contains Various functions of Ethereum.

What is geth in docker

The operating environment of this tutorial: linux5.9.8 system, docker-1.13.1 version, Dell G3 computer.

What is geth

Geth is the official client software provided by the Ethereum Foundation and is written in the Go programming language. Geth provides an interactive command console that contains various functions (APIs) of Ethereum. The full name is go-ethereum.

docker deploys geth client

Install docker

Self-Baidu

Second, pull the above image down, and just pull the latest one

docker pull ethereum/client-go

Third, let’s talk about the parameters of docker run

Because it is official If the mirror is started directly, it will default to geth and directly synchronize with the main network. We definitely don’t want it to be synchronized directly. The command is as follows

docker run -d -it --name=node0  -u root -p 8545:8545 -p 30303:30303 -v E:\eth:/root --privileged=true --entrypoint /root/a.sh ethereum/client-go

-v means to mount the local file

-- privileged real sudo permissions

--entrypoint entry script, if it exists, it will overwrite the statement in the dockerfile

I chose to initialize the private chain in this script. How to initialize can see the official tutorial Similar to my previous article

My script

#!/bin/sh
#初始化创世区块
geth -datadir  /root/data init /root/gener.json

if [  $# -lt 1 ]; then 
  exec "/bin/sh"
else
  exec /bin/sh -c "$@"
fi

Four startup private chain

There is a problem to note here, that is, the startup parameters are different. Updated

It used to be --rpc --rpcapi, now it is changed to --http balabala

HTTP based JSON-RPC API options:

  • --http Enable the HTTP-RPC server
  • --http.addr HTTP-RPC server listening interface (default: localhost)
  • --http.port HTTP-RPC server listening port (default: 8545)
  • --http.api API's offered over the HTTP-RPC interface (default: eth,net,web3)
  • --http.corsdomain Comma separated list of domains from which to accept cross origin requests (browser enforced)
  • --ws Enable the WS-RPC server
  • --ws.addr WS-RPC server listening interface (default: localhost)
  • --ws.port WS-RPC server listening port (default: 8546)
  • --ws.api API's offered over the WS-RPC interface (default: eth,net,web3)
  • --ws.origins Origins from which to accept websockets requests
  • --ipcdisable Disable the IPC-RPC server
  • --ipcapi API's offered over the IPC-RPC interface (default: admin,debug,eth,miner,net,personal,shh,txpool,web3)
  • --ipcpath Filename for IPC socket /pipe within the datadir (explicit paths escape it)

So now the startup command becomes

geth --networkid 666 --http --http.addr=0.0.0.0 --http.port=8545 --http.api "web3,eth,debug,personal,net" --http.corsdomain "*" --allow-insecure-unlock --datadir /root/data  console 2>>geth.log

What should I do next

Test with web3 connection

var Web3 = require('web3');
var Tx = require('ethereumjs-tx').Transaction;
if (typeof web3 !== 'undefined') {
    web3 = new Web3(web3.currentProvider);
    console.log("1"+web3.version)
  } else {
    // set the provider you want from Web3.providers
    web3 = new Web3(new Web3.providers.HttpProvider('http://127.0.0.1:8545'));
    console.log(web3.version)
  }

Recommended learning: "docker video tutorial"

The above is the detailed content of What is geth in docker. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn