这里假设已经存在 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 私有节点

知识共享许可协议 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可