区块链开发笔记八:以太坊多节点同步部署(以挖矿节点为例)

环境前准备

  1. 多台(两台及以上)虚拟机 :CentOS 7 64位 / Ubuntu16.04 64位
  2. linux虚拟机都有可正常使用的以太坊客户端工具。
    若不能,请参考以下连接:
    区块链开发笔记五:以太坊源码编译及环境搭建
    区块链开发笔记一:以太坊自动化环境部署
  3. linux虚拟机都有可正常使用的docker环境。
    若不能,请参考以下连接:
    区块链开发笔记五:以太坊源码编译及环境搭建
    区块链开发笔记一:以太坊自动化环境部署

以太坊搭建

创建account账号

geth --datadir node account new

此处创建三个account账号
在这里插入图片描述
创建私链

pupeth

在这里插入图片描述
创建创世块
此处创建创世区块可输入多个account账号来创建,但是会影响后面的节点部署效率,故推荐只用一个account账号来主服务器的挖矿节点使用,其他account账户通过console界面来添加。
在这里插入图片描述
连接服务器

此处连接了三个服务器,也可以只选择连接一个服务器去部署好ethstats以及其他节点,在后续创建第二个挖矿节点的时候再去选择连接其他服务器,个人推荐先连接所有需要部署的服务器。
在这里插入图片描述
部署监控页面

选择将121服务器作为主服务器,来监控其他服务器上部署的节点服务。
先保证121那台服务器所有网络组件正常,因此(ethstats)监控页面创建在121服务器。
监控页面可以监视123和125机器上的挖矿节点。
在这里插入图片描述
部署根节点

同样创建在121服务器上。
在这里插入图片描述
部署挖矿节点(第一个挖矿节点)

同样创建在121服务器上。
在这里插入图片描述
后续的钱包,水龙头等网络组件此处就不创建了,只测试挖矿节点。
详细操作参考:
区块链开发笔记二:以太坊自动部署环境测试

创建完成后,通过游游览器访问121服务器创建的监控页面。
在这里插入图片描述
部署第二个挖矿节点

同样还是在121服务器的puppeth界面创建,只不过需要连接到第二台服务器,且节点工作文件创建在第二台服务器的目录。
此处第二台服务器选择125服务器创建,而且只创建挖矿节点,后续的网络组件目前不考虑。
在这里插入图片描述
刷新监控页面
此时可以看到在125服务器上部署的挖矿节点会显示在121服务器的监控页面上,但是125服务器的挖矿节点没有连接到121服务器的私链上,因此下一步操作是添加信任账户。
在这里插入图片描述
添加信任账户

首先找到121服务器挖矿节点目录下的ipc文件,然后进入挖矿节点的console界面。

geth attach ipc:geth.ipc

在这里插入图片描述
查看125服务器创建挖矿节点用的account账号有没有添加到信任列表中

clique.getSigners()

在这里插入图片描述
如果125服务器挖矿节点用的account账号没有添加的,则需要添加到信任的账户

clique.propose('0xda29a67a1868c3959e5f5ac63f75e25f370ac424', true)

但是此处需要主要的是,执行propose操作后,需要在125虚拟机的console界面下执行挖矿操作,不然添加不成功。
在这里插入图片描述
去125服务器挖矿节点的console界面下,执行miner.start(),即可正常交易及显示。
在这里插入图片描述
刷新监控页面,会发现第二个挖矿节点已成功连接到私链,但是挖矿节点还是没正常工作,还需要做节点同步连接处理。
在这里插入图片描述
挖矿节点之间同步连接

先在121服务器的挖矿节点console界面查看节点连接情况。

admin.peers

在这里插入图片描述
如果发现121服务器的挖矿节点没有连接上125服务器的挖矿节点,则需要关联。
首先查看125服务器挖矿节点信息

admin.nodeInfo

admin.nodeInfo.enode

在这里插入图片描述
执行下面指令连接节点。

admin.addPeer("enode://2a98980efebf19d975bcf567a730c8619217fcd98d01ed34580995a37a46d0ac8deeb3d38bc66134bfe30618e4e0ec6b89dd4e1c9d8961c738790a013a71f780@192.168.5.125:30304")

连接过程中可能会出现延迟情况,请耐心等待。
在121服务器上查看连接情况,会发现已连接成功。
在这里插入图片描述
在125服务器上查看。
在这里插入图片描述
刷新监控页面,会发现挖矿节点开始正常工作
在这里插入图片描述
所有部署的节点可以在对应的服务器上同docker日志查看。

docker logs -f 私链名+挖矿节点名

在这里插入图片描述
121服务器puppeth界面显示
在这里插入图片描述

问题注意

在加入信任账户的操作中,有一点需要注意,就是信任支持率要达到50%以上,不然无法加入信任列表。
举个例子:
假如有三台服务器的挖矿节点已经相互信任且相互连接起来了,此时加入第四台服务器来挖矿,此时至少要有两台虚拟机执行propose操作,不然第四台服务器挖矿节点作用的account账户无法加入信任列表。
图片说明:
在这里插入图片描述
在这里插入图片描述
多节点的部署就到此结束了,可能在部署过程中存在点问题,不懂的可以私信小编,谢谢。

更多详细介绍
https://download.csdn.net/download/qq_36651243/11068809

更多资料:
以太坊自动化部署
以太坊环境测试
go-ethereum编译
docker切换代理
docker启动问题
puppeth中私链绑定账户问题
以太坊中go版本问题
智能合约部署上链操作
ipfs私有网络搭建

猜你喜欢

转载自blog.csdn.net/qq_36651243/article/details/88977751
今日推荐