实战以太坊搭建联盟链
1安装前的准备工作
1.1 Linux系统的配置
Linux下的cent0S-7系统是在windows下的VMware软件下构建的,本文对其进行了配置。推荐的系统是CentOS 7和Ubuntu 16.04。如果条件允许,可以在云服务器上使用Linux系统。好处是可以建立一个WAN联盟链。
默认情况下,您已经掌握和理解了以太坊和docker技术,并部署了相应的环境。如果还没准备好,可以参考芯链微信官方账号前期发布的环境建设部署文章。
1.2安装Docker
请使用管理员权限安装,
# su root
安装Docker(请参考芯链微信官方账号发布的安装说明文章):
CentOS:yum-y Install Docker-IO
Ubuntu:apt-get Install Docker-Engine
安装完成如图所示。
然后启动docker服务:
# service Docker Start
验证Docker是否安装成功:# Docker运行Hello-World
该命令将下载一个测试。当容器运行时,它将打印一些信息并退出。下图显示Docker已经安装。
2安装bootnode
2.1下载bootnode映像
运行以下命令:# dockerpulldocker.io/hawyasunaga/ethereum-bootnode[查看:Docker映像
蓑衣网小编2022
2.2 Docker创建bootnode容器节点
生成引导节点:1 # Docker Run-itd-m 512m-privileged=true-memory-swap-1-net=host-p 30301:30301/UDP-p 301 docker run-itd-m 512m-privileged=true-memory-swap-1-net=host-p 30301:30301/UDP-p 30301:30301/TCP-v/path/docker/Boot node:/root/Boot-name引导节点docker.io/hawyasunaga/ethereum-bootnode引导节点-node key=/root/Boot node/Boot 蓑衣网小编2022 . key
注意:这两个命令参数中,-v/path/docker/Boot node:/root/Boot node是映射路径。 在Docker的这个bootnode容器中,容器中的所有/root/bootnode路径都被映射到外部路径/path/docker/bootnode。下面的以太坊容器构建节点命令是一样的。2.3查看bootnode日志获取节点1#docker logs -f bootnode ,获取以下节点:
用本地IP地址替换[:]。好了,连接的根节点完成了。3安装以太坊节点你可以找一个Linux来构建节点联盟链。在这里,我们将继续用centos7来演示。3.1以太坊的创建文件新建一个创建文件genesis.json,内容如下:
1234567891011213141516171819202122324252627282930313233 { ' config '{ ' homesteadBlock '0,' eip155Block' 0,' eip158Block' 0 },' alloc '对本文运行下面的命令:
在/home/admin1 # docker run-itd-privileged=true-v/home/admin:/root/ethdev-nameget hdev 1 ethereum/client-go-。root/eth dev-networkid8765639736937780 init/root/eth dev/genesis . JSON请记住-networkid 8765639736937780,这是当前联盟链的id。
查看日志文件:docker logs-f get hde v1初始化成功。3.3 Docker创建以太坊容器节点
并运行以下命令
1#docker rm -f gethDev1?
1 # docker run-itd-m 512m-privileged=true-network=host-memory-swap-1-net=host-p 8545:8545-p 40303:40303-v/home/Admin:/root/ethdev-name geth dev 1 ether eum/client-go-IPC disable-port 40303-boot nodes ' e://ad 6 aff 917 c 6 e 8 BD 40 CB 20 af 4 ea c6ce 05 c 16d 285113.4验证联盟链的连接
在上一步设置好节点后,等待一段时间,让节点自动连接到根节点bootnode。
进入以太坊容器:1#docker attach gethDev1
输入命令:admin检查peer是否连接:OK,连接完成,联盟链建立。连接完成后,开始同步块:
注意:之前加入bootnode根节点的其他节点在此连接,与根节点的连接不会显示在peers中。如果它是连接到bootnode的第一个节点,则在它连接到bootnode时输入admin,对等机为空。您需要继续构建一个节点来测试它们的相互连接。
王小明
HPB核心链创始人、专栏作家。十余年金融大数据和区块链技术开发经验,参与创建银联大数据。创作了30多期区块链教学视频节目《明说》,编译《以太坊官网文档中文版》,作为主要作者,编译《区块链开发指南》,在中国区块链社区被誉为ID“蓝莲花”。