[区块链]搭建并行多组网络

实验目的
  本实验将演示如何使用开发部署工具搭建 FISOC BCOS 并行多组网络节点,通过先在单机上部署一条单群组 4 节点的区块链,再为该区块链添加一个群组的方式来搭建一个并行多组区块链网络
1 、场景描述
本次实验将构建 四节点、两群组 的并行多组网络区块链,他们的组网关系如下:
群组 1 :包括四个节点,节点 IP 均为 127.0.0.1
群组 2 :包括四个节点,节点 IP 均为 127.0.0.1
关系图如下:
2.2 下载工具
①、创建 fisco 工作目录
在终端输入如下命令,创建 fisco 目录并进入
mkdir fisco && cd fisco
②、下载工具
fisco 目录下,输入如下命令,下载开发部署工具 build_chain.sh
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh && chmod u+x build_chain.sh
③、修改脚本权限
输入如下命令,可查看刚才下载的开发部署工具 build_chain.sh ,此时该文件名显示白色,无执行权限
chmod u+x build_chain.sh
输入以下命令,修改脚本执行权限,权限修改成功后,再次输入 'ls' 命令,可看到文件名变为绿色
3 、检查端口占用
3.1 检查 p2p 端口是否占用
输入如下命令,检查 p2p 端口( 30300-30303 )是否占用,若端口没有被占用,则不会输出任何信息
lsof -i:30300-30303
3.2 检查 channel 端口是否占用
输入如下命令,检查 channel 端口( 20200-20203 )是否占用,若端口没有被占用,则不会输出任何信息
lsof -i:20200-20203
3.3 检查 rpc 端口是否占用
输入如下命令,检查 rpc 端口( 8545-8548 )是否占用,若端口没有被占用,则不会输出任何信息
lsof -i:8545-8548
4 、构建并行多组网络节点
说明:在并行多组网络的构建场景中,我们为演示并行多组的扩容流程,将先构建单群组四节点网络,
随后将群组 2 加入到区块链中,当然,并行多组的构建也可以采用星型拓扑组网的构建方式。
4.1 构建单群组四节点区块链网络
①、首先,输入如下命令,构建一个单群组四节点的网络
bash build_chain.sh -l 127.0.0.1:4 -o multi_nodes -p 30300,20200,8545
参数说明:
-l :用于指定要生成的链的 IP 列表以及每个 IP 下的节点数,以逗号分隔。
-o :指定生成的配置所在的目录,默认为 nodes
-p :分别指定节点的 p2p, channel, jsonrpc 端口,同一个 IP 下的不同节点所使用端口从起始端口
递增。
出现 [INFO ALL completed] 信息则说明节点构建成功。
输入如下命令,运行所有节点
bash multi_nodes/127.0.0.1/start_all.sh
③、输入如下命令,查看节点进程,正常情况下应该有 4 个节点进程
ps -ef | grep -v grep | grep fisco-bcos
④、输入如下命令,查看节点 node0 的共识状态,出现 “[SEALER]++++++++++++++++” 信息表示共识 正常。
tail -f multi_nodes/127.0.0.1/node0/log/* | grep +++
4.2 将群组 2 加入区块链
①、输入如下命令,可查看节点 node0 目录下的群组配置文件 group.1.genesis group.1.ini
ls multi_nodes/127.0.0.1/node0/conf/
由于在并行多组区块链中,每个群组的 ini 文件文件相同, 但 genesisi 文件中的 [group.id] 不同,为
群组号,所以我们需要拷贝群组 1 的配置文件( genesis ini 文件),并修改拷贝后 genesis 文件。
②、为减少路径输入引起的麻烦和错误,我们先进入节点目录:
cd multi_nodes/127.0.0.1
③、拷贝节点 node0 中的群组 1 的配置文件 group.1.genesis ,并将其命名为 group.2.genesis
cp node0/conf/group.1.genesis node0/conf/group.2.genesis
输入如下命令验证拷贝是否成功,如出现 group.2.genesis 文件则说明成功
接着拷贝节点 node0 中的群组 1 的配置文件 group.1.ini ,并将其命名为 group.2.ini
cp node0/conf/group.1.ini node0/conf/group.2.ini
输入如下命令验证拷贝是否成功,如出现 group.2.ini 文件则说明成功
ls node0/conf/
④、输入如下命令,修改 group.2.genesis 文件中的 id 参数
sed -i "s/id=1/id=2/g" node0/conf/group.2.genesis
输入如下命令,验证是否修改成功
cat node0/conf/group.2.genesis | grep "id"
⑤、自此,节点 node0 的配置已经完成,接下来我们依次将群组 2 的配置文件拷贝到其余节点。
将节点 node0 中的群组 2 配置文件( genesis ini 文件)拷贝到节点 node1
cp node0/conf/group.2.genesis node1/conf/group.2.genesis
cp node0/conf/group.2.ini node1/conf/group.2.ini
输入如下命令检查是否拷贝成功,若出现 group.2.genesis group.2.ini 文件表示拷贝成功
ls node1/conf/
将节点 node0 中的群组 2 配置文件( genesis ini 文件)拷贝到节点 node2
de0/conf/group.2.genesis node2/conf/group.2.genesis
cp node0/conf/group.2.ini node2/conf/group.2.ini
输入如下命令检查是否拷贝成功,若出现 group.2.genesis group.2.ini 文件表示拷贝成功
ls node2/conf/
将节点 node0 中的群组 2 配置文件( genesis ini 文件)拷贝到节点 node3
cp node0/conf/group.2.genesis node3/conf/group.2.genesis
cp node0/conf/group.2.ini node3/conf/group.2.ini
输入如下命令检查是否拷贝成功,若出现 group.2.genesis group.2.ini 文件表示拷贝成功
ls node2/conf/
5 、重启节点并查看节点运行状态
5.1 重启节点
①、输入如下命令,停止各个节点
bash stop_all.sh
②、输入如下命令,重启各个节点
bash start_all.sh
5.2 查看节点共识情况
①、输入如下命令,可查看节点 node0 的共识情况(这里只需要改node0,node1)
tail -f node0/log/log* | grep +++

猜你喜欢

转载自blog.csdn.net/2301_81317994/article/details/140994262