这里假设已经存在bootnodes服务节点了,需要给私有网络中添加一个以太坊节点,用docker来部署比较方便,不用手动去添加。这里只是写了个简单的demo,并不是一个完整基于bootnodes来部署以太坊私有网络的方法。

当然创建一个bootnode也很简单,大致步骤如下:

  • bootnode -genkey boot.key
  • bootnode -nodekey boot.key -verbosity 9 -addr :30310

如果需要一个完整的基于docker的一台私有网络,可以通过docker-compose将bootnode和节点来编排,后面有空来完善一下。

具体源码 => https://github.com/yuansir/bootnodes-ethereum-peer-docker

Usage

genesis.json

复制bootnodes链接所有节点的共同 genesis.json 文件

Dockerfile

根据需求修改 Dockerfile 中的环境变量

build image

比如tag为 eth-peer:1.0

docker build -t eth-peer:1.0 .

run

// docker run -it --rm --name your-name  eth-peer:1.0  /bin/bash

docker run -d --name your-name  eth-peer:1.0

补充

如果出现以下错误:

System clock seems off by -XXXXXs, which can prevent network connectivity
Please enable network time synchronisation in system settings

主要是由于该节点r容器的时间和bootnodes服务节点时间不一致,如果bootnodes就是当前节点容器的宿主机,可以在docker run 时加上 -v /etc/localtime:/etc/localtime:ro,如果bootnodes服务节点和该节点坊容器不在同一主机,可以通过将两者的时间同一至同一时区的网络时间。

转载请注明: 转载自Ryan是菜鸟 | LNMP技术栈笔记

如果觉得本篇文章对您十分有益,何不 打赏一下

谢谢打赏

本文链接地址: Docker部署以太坊基于bootnodes私有节点