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.
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!