百度超级链XuperUnion三节点网络搭建(Ubuntu18.04)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/m0_43404744/article/details/102707053

针对同一机器配置三节点

一、创建三节点目录

  • 创建node1、node2和node3三个空目录:mkdir node1 node2 node3
    在这里插入图片描述
  • 将output目录中的内容分别拷贝到node1、node2和node3中:
cp -r output/* node1
cp -r output/* node2
cp -r output/* node3

在这里插入图片描述

  • 删除每个节点中的data/keys和data/netkeys文件夹:rm -rf data/keys/ data/netkeys/

二、生成私钥与netURL

在每个节点目录中分别进行操作:

./xchain-cli account newkeys -f
./xchain-cli netURL gen

在这里插入图片描述

三、修改配置文件

修改node2和node3节点的conf/xchain.yaml文件:

  • 修改tcpServer部分的port与metricPort,三个节点不同即可:
    在这里插入图片描述
  • 修改p2pV2部分的port,三个节点不同即可:
    在这里插入图片描述

四、操作node1节点

  • 获取node1、node2和node3节点的地址:more data/keys/address
    在这里插入图片描述
  • 修改node1/data/config/xuper.json文件:
  • 将predistribution中的address修改为node1的地址。
  • 将timestamp修改为最近刚过去的时间戳。
  • 将proposer_num设置为3,表示每一轮选举出的矿工数,要与init_proposer[]中地址的个数对应,如果某一轮的投票不足以选出足够的矿工数,则默认使用前一轮的矿工。
  • 将init_proposer中的[]中放入node1、node2和node3节点的地址,三个节点都作为矿工,其中数字1表示指定第一轮初始矿工。
  • 将init_proposer_neturl部分删除。
    在这里插入图片描述
  • 将node1中修改好的xuper.json文件替换node2和node3中的xuper.json文件。
  • 创建链:./xchain-cli createChain
    在这里插入图片描述
  • 启动node1节点:nohup ./xchain &
    在这里插入图片描述
  • 获取node1的netURL:./xchain-cli netURL get
    在这里插入图片描述
  • 获取本机ip地址:hostname -i
    在这里插入图片描述
  • 将netURL中的ip地址改为本机ip,并存储到node1.url文件中:
echo /ip4/127.0.1.1/tcp/47101/p2p/QmT1rjtx8gXbYN4n9NPqsmFVJiiMPzqFU7UQAYerNHk3MH > node1.url

在这里插入图片描述

五、搭建p2p网络

  • 修改node2和node3节点的conf/xchain.yaml文件:
    将p2pV2部分的bootNodes内容修改为node1.url中的内容
    在这里插入图片描述
  • 使用node2和node3节点分别创建链并启动节点:
./xchain-cli createChain
nohup ./xchain &

六、查看状态

  • 获取node1节点当前的服务状态:./xchain-cli status -H 127.0.0.1:37101,其中peers对应node2和node3的ip与端口号,则搭建成功。
    在这里插入图片描述
  • 获取node2和node3节点的服务状态,查看节点高度变化是否一致,若节点高度变化一致,则网络搭建成功:
./xchain-cli status -H 127.0.0.1:37102
./xchain-cli status -H 127.0.0.1:37103
  • 编写脚本获取账本高度:
  1. vim get_trunkHeight
#!/bin/bash  
for((i=1;i<=3;i++));
do
        echo -n "node$i:";
        ./xchain-cli status -H 127.0.1.1:3710$i | grep trunkHeight;
done
  1. 运行脚本:bash get_trunkHeight
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_43404744/article/details/102707053