区块链实验室(18) - 用FISCO BCOS架设1个无标度网络

FISCO技术文档提供1个4节点的网络案例,这4个节点构成1个强连通图。强连通图在现实中通常是不存在的。 本文用FISCO架设1个网络,该网络由100个节点构成1个无标度(scale free)网络,如下图所示。

1 用FISCO工具构建1个100节点的初始网络

FISCO提供1个Shell脚本,用于构建初始网络,完整的脚本如下。

./build_chain.sh -l localhost:100 -p 30300,20200,8545 -o ./scalefree

区块链实验室(18) - 用FISCO BCOS架设1个无标度网络_第1张图片

执行完毕上述脚本之后,新生成1个目录scalefree,见下图。其中2个freeScaleNetwork文件,不是FISCO生成的,是本文创建的无标度网络,在网盘资源中可下载。可按图中提示,验证FISCO的版本,节点个数。

在这里插入图片描述
区块链实验室(18) - 用FISCO BCOS架设1个无标度网络_第2张图片

再来看一看FISCO初始网络的节点连通性,随便打开1个节点的配置文件config.ini,见下图。很明显,又是1个强连通图,每个节点都与其他99个节点有连接。

区块链实验室(18) - 用FISCO BCOS架设1个无标度网络_第3张图片

2 建立无标度网络

从网盘资源中下载文件,见下图所示。最关键的是其中1和3。

区块链实验室(18) - 用FISCO BCOS架设1个无标度网络_第4张图片

1:无标度网络配置文件

2:无标度网络配置文件,和上面1个是一样的,这个是邻接矩阵表示

3:本文的脚本,修改100个节点的P2P网络连接,使之构成无标度网络

4:FISCO构建初始化网络的脚本

在指定目录执行本文脚本,见下图。脚本代码如下。

在这里插入图片描述

#!/bin/bash

LINE=$'\n'
SEMICOLON=";"
OLD_IFS="$IFS"
i=1
listen_port=30300

IFS=$LINE
for line in `cat ./freeScaleNetwork.csv`
do
	sed -i '11,110d' ./localhost/node$[$i-1]/config.ini

	IFS=$SEMICOLON
	neighbor=""
	nblist=$neighbor
	j=11
	for item in $line
	do
		neighbor="    node.$[$item-1]=localhost:$[$item-1+$listen_port]"
		nblist=$nblist$neighbor
		sed -i "$[$j]i $neighbor"  ./localhost/node$[$i-1]/config.ini
		sed -i ''"$j"'s/^/&    /g' ./localhost/node$[$i-1]/config.ini
		let "j=$j+1"
	done
	let "i=$i+1"
	IFS=$LINE
done
IFS="$OLD_IFS"

执行完毕后,再看看节点的配置文件config.ini。很明显,不再是强连接图。

区块链实验室(18) - 用FISCO BCOS架设1个无标度网络_第5张图片

接下来,启动这个无标度网络,见下图。由于100个节点,就100个进程啊,这时风扇狂响。本虚拟机设置了8G内存。

区块链实验室(18) - 用FISCO BCOS架设1个无标度网络_第6张图片
区块链实验室(18) - 用FISCO BCOS架设1个无标度网络_第7张图片

实验环境如下

虚拟机文件:ubuntu20.04-Fisco

获取地址:https://pan.baidu.com/s/1RlrSy_OuT3B7TMT5AJEGmA?pwd=oava

联系方式:[email protected]

你可能感兴趣的:(FISCO,区块链,网络,开发语言,区块链,ubuntu)