一、搭建私链
docker搭建
网络
创建以太坊网络
docker network create --driver bridge --subnet 172.19.3.0/16 --gateway 172.19.3.1 eth
配置文件
私链初始化配置文件,挂载到容器。( 文件名:genesis.json )
{
"config": {
"chainId": 666,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"berlinBlock": 0,
"londonBlock": 0
},
"alloc": {
"0x0000000000000000000000000000000000000001": {
"balance": "100000000"
},
"0x0000000000000000000000000000000000000002": {
"balance": "200000000"
}
},
"coinbase": "0x0000000000000000000000000000000000000000",
"difficulty": "0x20000",
"extraData": "",
"gasLimit": "0x2fefd8",
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x00"
}
节点一
1.创建并进入容器
docker run -it --name eth1 --network eth --ip 172.19.3.10 -v D:/docker/eth1:/vczs -p 8545:8545 -p 30303:30303 --entrypoint /bin/sh ethereum/client-go:v1.10.16
2.初始化私链
geth --datadir /vczs/data init /vczs/genesis.json
3.启动私链
geth --datadir /vczs/data --networkid 666 --port 30303 --http --http.addr 172.19.3.10 --http.port 8545 --http.api "eth,web3,personal,net" --nodiscover --allow-insecure-unlock console
4.查看私链信息
admin.nodeInfo
5.重新进入私链控制台
geth --datadir /vczs/data console
节点二
1.创建并进入容器
docker run -it --name eth2 --network eth --ip 172.19.3.11 -v D:/docker/eth2:/vczs -p 8546:8545 -p 30304:30303 --entrypoint /bin/sh ethereum/client-go:v1.10.16
2.初始化私链
geth --datadir /vczs/data init /vczs/genesis.json
3.启动私链
geth --datadir /vczs/data --networkid 666 --port 30303 --http --http.addr 172.19.3.11 --http.port 8545 --http.api "eth,web3,personal,net" --nodiscover --allow-insecure-unlock console
4.互联节点一
admin.addPeer("节点一 私链信息 返回的enode值")
5.重新进入私链控制台
geth --datadir /vczs/data console
测试互联
1.节点一开始挖矿
miner.start()
2.节点二查看区块高度
eth.blockNumber
3.如果节点一挖矿影响到节点二的区块高度,说明节点互联成功;后续新增节点相同操作以此类推。
4.停止挖矿
miner.stop()