1、场景描述
在实际应用场景中,星型拓扑结构是区块链中使用广泛的组网方式。
本次实验将构建
单机、四机构、三群组、四节点
的星形拓扑网络区块链,它们的组网关系如下:
关系图:
机构
A
:在
127.0.0.1
上有
1
个节点,同时属于群组
1
、群组
2
、群组
3
机构
B
:在
127.0.0.1
上有
1
个节点,属于群组
1
机构
C
:在
127.0.0.1
上有
1
个节点,属于群组
2
机构
D
:在
127.0.0.1
上有
1
个节点,属于群组
3
关系图:
![](https://i-blog.csdnimg.cn/direct/b18221f1dd5b45d2b824c8a704780f94.jpeg)
1.2 下载工具
①、创建
fisco
工作目录
在终端输入如下命令,创建
fisco
目录并进入
![](https://i-blog.csdnimg.cn/direct/80ba73268f8b4699ac8badc688dc9854.jpeg)
②、下载工具
在
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
,此时该文件名显示白色,无执行权限
ls
输入以下命令,修改脚本执行权限,权限修改成功后,再次输入
'ls'
命令,可看到文件名变为绿色
chmod u+x build_chain.sh
![](https://i-blog.csdnimg.cn/direct/b89d3dcef0514b92ac4e992c460277d7.jpeg)
2、检查端口占用
2.1 检查 p2p 端口是否占用
输入如下命令,检查
p2p
端口(
30300-30303
)是否占用,若端口没有被占用,则不会输出任何信息
ls
chmod u+x build_chain.sh
lsof -i:30300-30303
![](https://i-blog.csdnimg.cn/direct/698b4232cd2c4d34a07bd57a7df495b5.jpeg)
2.2 检查 channel 端口是否占用
输入如下命令,检查
channel
端口(
20200-20203
)是否占用,若端口没有被占用,则不会输出任何信
息
lsof -i:20200-20203
![](https://i-blog.csdnimg.cn/direct/2483524bca6d4e02a4339b5d978fcb83.jpeg)
2.3 检查 rpc 端口是否占用
输入如下命令,检查
rpc
端口(
8545-8548
)是否占用,若端口没有被占用,则不会输出任何信息
lsof -i:8545-8548
![](https://i-blog.csdnimg.cn/direct/e793c99401384b47adbf88f6f4bd9f68.jpeg)
3、构建星型拓扑网络节点
3.1 生成星型拓扑网络配置文件
①、在终端输入如下命令,生成星型拓扑结构的配置文件
ipconf
,该文件将用于构建星型拓扑结构的网络节点(注意参数之间的空格
)
注意:一定要在自己创建的文件下执行以下命令!!!
cat > ipconf << EOF
127.0.0.1:1 agencyA 1,2,3
127.0.0.1:1 agencyB 1
127.0.0.1:1 agencyC 2
127.0.0.1:1 agencyD 3
EOF
![](https://i-blog.csdnimg.cn/direct/b47c94da2b6947a28e6c9354b7036f12.jpeg)
参数说明
ip:num
:物理机
IP
以及物理机上的节点数目
agency_name:
机构名称
②、输入如下命令查看配置文件的内容是否正确
cat ipconf
![](https://i-blog.csdnimg.cn/direct/16723c6db63a4643b92dc7dfe90286b7.jpeg)
3.2 构建星型拓扑网络节点
使用开发部署工具构建星型拓扑网络节点,命令如下:
参数说明:
bash build_chain.sh -f ipconf -p 30300,20200,8545
-f
:根据配置文件生成节点。
-p
:分别指定节点的
p2p, channel, jsonrpc
端口,同一个
IP
下的不同节点所使用端口从起始端口递
增。
![](https://i-blog.csdnimg.cn/direct/f7ff2abfcd1d458ca7f015b88e86eb58.jpeg)
出现
[INFO ALL completed]
信息则说明节点构建成功。
4、启动节点并查看节点运行状态
4.1
启动星型拓扑网络节点
输入如下命令,启动所有节点
bash nodes/127.0.0.1/start_all.sh
![](https://i-blog.csdnimg.cn/direct/bb853191d90b4bb9ab3ec831e8bd011b.jpeg)
5、检查节点进程
输入如下命令,查看节点进程,正常情况下会显示
4
个节点进程
ps -ef | grep -v grep | grep fisco-bcos
![](https://i-blog.csdnimg.cn/direct/9519c275a87c42f79733533a5ce7fa70.jpeg)
5.3
查看节点连接数 (注意:以下我只测试node0,其他可以自己切换检查)
tail -f nodes/127.0.0.1/node0/log/log* | grep connected
![](https://i-blog.csdnimg.cn/direct/8711a373ead34fd694505e1396695f75.jpeg)
5.4 查看共识(注意:以下我只测试node0,其他可以自己切换检查)
tail -f nodes/127.0.0.1/node0/log/log* | grep +++
![](https://i-blog.csdnimg.cn/direct/9c107fbd4b6340969c77f37ce5a7eb9e.jpeg)