主页 > imtoken注册流程 > Docker部署以太坊私有链v1.10.16版本
Docker部署以太坊私有链v1.10.16版本
imtoken注册流程 2023-02-05 06:45:01
1. 以太坊私有链镜像生成 1.1 下载以太坊基础镜像
docker pull ethereum/client-go:v1.10.16
1.2 编写Dockerfile
# vim /opt/docker/images/geth-1.10.16/Dockerfile
FROM ethereum/client-go:v1.10.16
RUN apk update && apk add bash curl
ADD bin /root/bin
RUN chmod a+x /root/bin/*
ENTRYPOINT /root/bin/start.sh
1.3 新建存放目录—bin
mkdir /opt/docker/images/geth-1.10.16/bin
1.4 将执行文件写入bin目录
# vim /opt/docker/images/geth-1.10.16/bin/start.sh
set -e
# Init
echo ""
echo "Init geth"
geth init "/root/files/genesis.json"
sleep 3
# Start geth
echo ""
echo "Start geth"
geth --gcmode "archive" --networkid=666666 --http --http.api "db,eth,net,web3,personal,admin,miner" --http.addr "0.0.0.0" --http.port "8545" --miner.threads 1 --mine --allow-insecure-unlock &
sleep 10
while true; do
sleep 1000000000
done
笔记:
请注意,上面指定了一个名为 networkid 的参数。 这标志着你的以太坊网络的身份。我们在这个例子中使用了 66666,你应该选择一个随机数来创建你自己的网络,防止其他人不小心连接到你的网络以太坊私链如何确认区块,这个 ID 也最好与“chainId”中的 ID 匹配下面一致的 genesis.json 文件
http.addr参数表示指定rpc服务器的地址。 如果目前只有一台矿机服务器,必须使用0.0.0.0地址,否则无法在主机外使用curl命令调用rpc远程服务调用协议查询用户余额
--allow-insecure-unlock: 允许解锁账户
1.5 赋予文件执行权限
chmod +x /opt/docker/images/geth-1.10.16/bin/start.sh
1.6 生成以太坊私链镜像
docker build . -t privte-eth:v1.10.16
注意:该命令需要和Dockerfile在同一个目录下执行
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
privte-eth v1.10.16 5bf38202567b 22 minutes ago 57MB
2. 以太坊私链容器生成 2.1 所需文件准备
使用MetaMask或其他工具预先创建账户地址并保存私钥。 后面的地址需要作为coinbase地址才能开始挖矿
mkdir -p /opt/docker/eth/data/chain/
mkdir /opt/docker/eth/data/chain/keystore
mkdir -p /opt/docker/eth/data/ethash
# vim /opt/docker/eth/genesis.json
{
"config": {
"chainId": 666666,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0
},
"nonce": "0x0000000000000046",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x400",
"coinbase": "0x3333333333333333333333333333333333333333",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x",
"gasLimit": "0x800000000000",
"alloc": {
"0x6e60F5243e1a3F0Be3F407b5AFE9e5395ee82aa2":{
"balance": "6660010000000000000000000000"
}
}
}
笔记:
1. 为了创建我们的私有区块链,我们将创建一个创世块。 为此以太坊私链如何确认区块,...