一. 以太坊私链镜像生成
- 下载以太坊基础镜像
docker pull ethereum/client-go:v1.9.24
- 编写Dockerfile
# vim /opt/docker/images/geth-1.9.24/Dockerfile
FROM ethereum/client-go:v1.9.24
RUN apk update && apk add bash curl
ADD bin /root/bin
RUN chmod a+x /root/bin/*
ENTRYPOINT /root/bin/start.sh
- 新建存放目录bin
mkdir /opt/docker/images/geth-1.9.24/bin
- bin目录下编写执行文件
# vim /opt/docker/images/geth-1.9.24/bin/start.sh
#!/bin/bash
set -e
# Init
echo ""
echo "Init geth"
geth init "/root/files/genesis.json"
sleep 3
# Start geth
echo ""
echo "Start geth"
geth --syncmode "full" --networkid=66666 --gasprice "0" --rpc --rpcapi eth,net,web3,miner,txpool --rpcaddr "0.0.0.0" --rpcport "8545" --mine &
sleep 10
while true; do
sleep 1000000000
done
注:
注意,以上指定了一个名为networkid的参数。这标志着你的以太坊网络的身份。我们在这个例子中使用了66666,应该选择一个随机数来创建你自己的网络并防止其他人无意中连接到你的网络,此ID也必须与下文genesis.json文件中的"chainId"的ID一致
rpcaddr参数,含义为指定rpc服务器地址,如果目前只有这一台矿工发服务器,必须使用0.0.0.0这个地址,不然无法在宿主机外使用curl命令调用rpc远程服务调用协议来查询用户余额
- 为文件赋予执行权限
chmod +x /opt/docker/images/geth-1.9.24/bin/start.sh
- 生成以太坊私链镜像
docker build . -t eth:v1.9.24
注:需要在与Dockerfile同一级目录下执行此命令
二.以太坊私链容器生成
- 新建需要映射给容器存放数据的目录
注:必须创建,此目录下存放着的是所有在此链上的交易信息
mkdir -p /opt/docker/miner/data/bscchain
- 新建需要映射给容器存放DAG数据的目录
注:
必须创建,不然每次启动容器都会先生成DAG数据
mkdir -p /opt/docker/miner/data/ethash
- 新建创始区块文件
注:非常重要!!!此文件是搭建以太坊私链最重要的文件
# vim /opt/docker/miner/genesis.json
{
"config": {
"chainId": 66666,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"ista

本文介绍了使用Docker部署以太坊私链的详细步骤,包括生成以太坊私链镜像、创建私链容器,还阐述了以太坊私链相关接口的使用,如进入控制台、创建账户、查看余额、开启和停止挖矿等,可用于区块链功能测试。
最低0.47元/天 解锁文章
4590





