geth---搭建多节点私有链

1、动态加入节点

(1)先看本地网络配置ifconfig

提示没找到命令

解决方案: sudo apt-get install net-tools

可以看到,虚拟机A的IP:192.168.209.133      虚拟机B的IP:192.168.209.134

(2)将上一文中私有链搭建中所新建genesis.json、keystore文件夹复制到虚拟机B

(3)先在虚拟机A中启动节点 :geth --datadir "./" --networkid 989898 -rpc console --port 30304 --rpcport 8546

(4)在虚拟机B中,

  • 创建节点:geth --datadir "./" init genesis.json 
  • 启动节点:geth --datadir "./" --networkid 989898 -rpc console --port 30304 --rpcport 8546

        --networkid 989898  需同虚拟机A中的节点一致

  • 查看节点信息:admin.nodeInfo.enode

将【::】中的:: 替换成虚拟机B的Ip:

"enode://f6011e1cd370cac0decbaf71fc6a115486260d7ca8580c4493dbc739fa8e52a3dacda0090075b3d4b8a086d79f6af453df2e7475adf94c7bb37f041586439acb@[192.168.209.134]:30304"

 

(5)在虚拟机A中,动态添加节点:

admin.addPeer("enode://f6011e1cd370cac0decbaf71fc6a115486260d7ca8580c4493dbc739fa8e52a3dacda0090075b3d4b8a086d79f6af453df2e7475adf94c7bb37f041586439acb@[替换成虚拟机B的IP]:30304")

(6)查看结果:net.peerCount

           

        admin.peers

       

可见,节点添加已经成功

 

2、静态加入节点

     即在节点目录下添加节点信息文件,在启动节点时,自动加入该文件下记录的节点信息。

(1)进入节点目录下的geth文件夹

  • cd block_chains_private/geth
  • gedit static-nodes.json
    [
    "enode://f6011e1cd370cac0decbaf71fc6a115486260d7ca8580c4493dbc739fa8e52a3dacda0090075b3d4b8a086d79f6af453df2e7475adf94c7bb37f041586439acb@[192.168.209.134]:30304"
    ]

     

  • 将上面虚拟机B的节点信息写入该文件并保存。

(2)启动虚机A和B的节点

(3)启动完毕后,稍等两节点建立连接

(4)查询连接节点信息:admin.peers

     

 

节点静态添加方式也实现了~ 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐