主页 > 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

sitehuoxing24.com 以太坊区块链浏览器_sitechainnode.com 以太坊区块链网址_以太坊私链如何确认区块

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 ""

sitechainnode.com 以太坊区块链网址_sitehuoxing24.com 以太坊区块链浏览器_以太坊私链如何确认区块

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 赋予文件执行权限

sitehuoxing24.com 以太坊区块链浏览器_sitechainnode.com 以太坊区块链网址_以太坊私链如何确认区块

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

sitechainnode.com 以太坊区块链网址_sitehuoxing24.com 以太坊区块链浏览器_以太坊私链如何确认区块

{ "config": { "chainId": 666666, "homesteadBlock": 0, "eip150Block": 0, "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0, "constantinopleBlock": 0, "petersburgBlock": 0, "istanbulBlock": 0 },

sitechainnode.com 以太坊区块链网址_sitehuoxing24.com 以太坊区块链浏览器_以太坊私链如何确认区块

"nonce": "0x0000000000000046", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x400", "coinbase": "0x3333333333333333333333333333333333333333", "timestamp": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "0x", "gasLimit": "0x800000000000", "alloc": { "0x6e60F5243e1a3F0Be3F407b5AFE9e5395ee82aa2":{ "balance": "6660010000000000000000000000" } } }

笔记:

1. 为了创建我们的私有区块链,我们将创建一个创世块。 为此以太坊私链如何确认区块,...