环境:Ubuntu20
fisco: 2.9.0
generator: 1.8.0
前言
文档给的例子是搭建6节点3机构2群组
的组网模式,这篇文章将加难度
搭建8节点4机构3群组
的组网模式的手动搭建模式[由于方便,便使用单机默认,大家需要多机,请将文章配置生成文件出现的127.0.0.1 字段,换成所需的机子ip地址,然后将需要的节点文件,机构文件等拷贝相关机子再进行相关操作]。
机构 | 节点 | 所属群组 | P2P地址 | RPC监听地址 | Channel监听地址 | ip地址 |
---|---|---|---|---|---|---|
机构A | 节点0 | 群组1,2,3 | 30300 | 20200 | 8545 | 127.0.0.1 |
节点1 | 群组1,2,3 | 30301 | 20201 | 8546 | 127.0.0.1 | |
机构B | 节点2 | 群组1 | 30302 | 20202 | 8547 | 127.0.0.1 |
节点3 | 群组1 | 30303 | 20203 | 8548 | 127.0.0.1 | |
机构C | 节点4 | 群组2 | 30304 | 20204 | 8549 | 127.0.0.1 |
节点5 | 群组2 | 30305 | 20205 | 8550 | 127.0.0.1 | |
机构D | 节点6 | 群组3 | 30306 | 20206 | 8551 | 127.0.0.1 |
节点7 | 群组3 | 30307 | 20207 | 8552 | 127.0.0.1 |
下载并安装generator
首先我们需要下载好generator的源代码
git clone https://gitee.com/FISCO-BCOS/generator.git
进入generator进行相关下载操作
bash scripts/install.sh
root@192-168-19-133:/yijiu/gFile/generator# bash scripts/install.sh
Debian*|Ubuntu Platform
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
没有可用的软件包 python-pip,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
然而下列软件包会取代它:
python3-pip
E: 软件包 python-pip 没有可安装候选
Requirement already satisfied: toml in /usr/local/lib/python3.8/dist-packages (0.10.2)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (1.14.0)
Requirement already satisfied: configparser in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 2)) (5.3.0)
Requirement already satisfied: toml in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 3)) (0.10.2)
try to use python3
install generator successful!
查看是否安装成功
root@192-168-19-133:/yijiu/gFile/generator# ./generator -h
usage: generator [-h] [-v] [-b peers data] [--build_package_only data peers] [-c data_dir] [--create_group_genesis_with_nodeid data_dir]
[--generate_chain_certificate chain_dir] [--generate_agency_certificate agency_dir chain_dir agency_name]
[--generate_node_certificate node_dir agency_dir node_name] [--generate_sdk_certificate sdk_dir agency_dir] [-g] [-G] [--cdn]
[--generate_all_certificates cert_dir] [-d cert_dir pkg_dir] [-m config.ini config.ini] [-p peers config.ini]
[-a group genesis config.ini] [--download_fisco data_dir] [--download_console data_dir] [--get_sdk_file data_dir]
[--console_version CONSOLE_VERSION]
获取节点二进制
./generator --download_fisco ./meta
查看fisco版本
root@192-168-19-133:/yijiu/gFile/generator# ./meta/fisco-bcos -v
FISCO-BCOS Version : 2.9.0
Build Time : 20220516 06:12:02
Build Type : Linux/clang/Release
Git Branch : HEAD
Git Commit Hash : b8a2362911462ccc3a19862bdd418b4f486f5601
机构初始化
按照效果图,我们需要机构A,机构B,机构C和机构D,将其初始化,拷贝出来
root@192-168-19-133:/yijiu/gFile# cp -r generator/ generator-A
root@192-168-19-133:/yijiu/gFile# cp -r generator/ generator-B
root@192-168-19-133:/yijiu/gFile# cp -r generator/ generator-C
root@192-168-19-133:/yijiu/gFile# cp -r generator/ generator-D
root@192-168-19-133:/yijiu/gFile# ll
总用量 28
drwxr-xr-x 7 root root 4096 10月 12 16:30 ./
drwxrwxrwx 10 root root 4096 10月 12 11:13 ../
drwxr-xr-x 13 root root 4096 10月 12 15:23 generator/
drwxr-xr-x 13 root root 4096 10月 12 16:30 generator-A/
drwxr-xr-x 13 root root 4096 10月 12 16:30 generator-B/
drwxr-xr-x 13 root root 4096 10月 12 16:30 generator-C/
drwxr-xr-x 13 root root 4096 10月 12 16:30 generator-D/
链证书初始化
一条链子 只有一条唯一的链证书 ca.crt
我们选择在generator
文件夹生成链证书
然后链证书的生成命令是--generate_chain_certificate
./generator --generate_chain_certificate ./dir_chain_ca
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_chain_certificate ./dir_chain_ca
INFO | Chain cert begin.
INFO | Generate root cert success, dir is /yijiu/gFile/generator/dir_chain_ca
INFO | Chain cert end.
这样我们就得到了这条联盟链的机构证书和私钥
root@192-168-19-133:/yijiu/gFile/generator# ls dir_chain_ca/
ca.crt ca.key
机构证书初始化
我们选择在generator
文件夹下生成各个机构的证书,然后复制到各个机构的工作目录里
- 机构A
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyA
INFO | Agency cert begin.
INFO | Agency cert end.
- 机构B
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyB
INFO | Agency cert begin.
INFO | Agency cert end.
- 机构C
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyC
INFO | Agency cert begin.
INFO | Agency cert end.
- 机构D
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyD
INFO | Agency cert begin.
INFO | Agency cert end.
查看生成目录
root@192-168-19-133:/yijiu/gFile/generator# ll dir_agency_ca/
总用量 24
drwxr-xr-x 6 root root 4096 10月 13 09:36 ./
drwxr-xr-x 15 root root 4096 10月 13 09:35 ../
drwxr-xr-x 2 root root 4096 10月 13 09:35 agencyA/
drwxr-xr-x 2 root root 4096 10月 13 09:36 agencyB/
drwxr-xr-x 2 root root 4096 10月 13 09:36 agencyC/
drwxr-xr-x 2 root root 4096 10月 13 09:36 agencyD/
里面有机构证书、机构私钥、链证书
root@192-168-19-133:/yijiu/gFile/generator# ls dir_agency_ca/agencyA/
agency.crt agency.key ca.crt
然后我们将这些机构认证文件拷贝到各自的机构工作目录下的meta文件夹里
root@192-168-19-133:/yijiu/gFile/generator# cp -r dir_agency_ca/agencyA/* ../generator-A/meta/
root@192-168-19-133:/yijiu/gFile/generator# cp -r dir_agency_ca/agencyB/* ../generator-B/meta/
root@192-168-19-133:/yijiu/gFile/generator# cp -r dir_agency_ca/agencyC/* ../generator-C/meta/
root@192-168-19-133:/yijiu/gFile/generator# cp -r dir_agency_ca/agencyD/* ../generator-D/meta/
群组1的四个节点生成并启动[机构A,机构B]
修改机构A的两个节点配置文件
文件是在 generator-A的conf/node_deployment.ini
机构 | 节点 | 所属群组 | P2P地址 | RPC监听地址 | Channel监听地址 | ip地址 |
---|---|---|---|---|---|---|
机构A | 节点0 | 群组1,2,3 | 30300 | 20200 | 8545 | 127.0.0.1 |
节点1 | 群组1,2,3 | 30301 | 20201 | 8546 | 127.0.0.1 |
[group]
group_id=1
[node0]
; Host IP for the communication among peers.
; Please use your ssh login IP.
p2p_ip=127.0.0.1
; Listening IP for the communication between SDK clients.
; This IP is the same as p2p_ip for the physical host.
; But for virtual host e.g., VPS servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30300
channel_listen_port=20200
jsonrpc_listen_port=8545
[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30301
channel_listen_port=20201
jsonrpc_listen_port=8546
修改机构B的两个节点配置文件
文件是在 generator-B的conf/node_deployment.ini
机构 | 节点 | 所属群组 | P2P地址 | RPC监听地址 | Channel监听地址 | ip地址 |
---|---|---|---|---|---|---|
机构B | 节点2 | 群组1 | 30302 | 20202 | 8547 | 127.0.0.1 |
节点3 | 群组1 | 30303 | 20203 | 8548 | 127.0.0.1 |
[group]
group_id=1
[node0]
; Host IP for the communication among peers.
; Please use your ssh login IP.
p2p_ip=127.0.0.1
; Listening IP for the communication between SDK clients.
; This IP is the same as p2p_ip for the physical host.
; But for virtual host e.g., VPS servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30302
channel_listen_port=20202
jsonrpc_listen_port=8547
[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30303
channel_listen_port=20203
jsonrpc_listen_port=8548
生成机构A的节点证书和p2p连接信息文件
在generator-A文件目录下
./generator --generate_all_certificates ./agencyA_node_info
root@192-168-19-133:/yijiu/gFile/generator-A# ./generator --generate_all_certificates ./agencyA_node_info
INFO | Generate cert to ./agencyA_node_info by node_deployment.ini.
INFO | Generate /yijiu/gFile/generator-A/meta/node_127.0.0.1_30300
INFO | Generate /yijiu/gFile/generator-A/meta/node_127.0.0.1_30301
INFO | Generate cert by node_installation.ini successful!
INFO | Generate cert by node_deployment.ini end.
机构A的两个证书文件和peers.txt
root@192-168-19-133:/yijiu/gFile/generator-A# ll agencyA_node_info/
总用量 20
drwxr-xr-x 2 root root 4096 10月 13 10:13 ./
drwxr-xr-x 14 root root 4096 10月 13 10:13 ../
-rw-r--r-- 1 root root 1194 10月 13 10:13 cert_127.0.0.1_30300.crt
-rw-r--r-- 1 root root 1194 10月 13 10:13 cert_127.0.0.1_30301.crt
-rw-r--r-- 1 root root 32 10月 13 10:13 peers.txt
将机构A的peers.txt文件拷贝给机构B
cp agencyA_node_info/peers.txt ../generator-B/meta/peersA.txt
生成机构B的节点证书和p2p连接信息文件
在generator-B文件目录下
./generator --generate_all_certificates ./agencyB_node_info
ps: 由于群组1 需要创建创世区块,我们选择在机构A里进行创建,所以我们机构B除了复制peers.txt文件外,还需要复制机构B的两个节点crt文件给机构A
cp -r agencyB_node_info/peers.txt ../generator-A/meta/peersB.txt
cp -r agencyB_node_info/cert_* ../generator-A/meta/
使用机构A生成群组1的创世区块
在generator-A文件目录下
编写conf/group_genesis.ini
文件
[group]
group_id=1
# 四个群组1的节点
[nodes]
node0=127.0.0.1:30300
node1=127.0.0.1:30301
node2=127.0.0.1:30302
node3=127.0.0.1:30303
生成创世区块,结合四个节点证书文件
./generator --create_group_genesis ./group
root@192-168-19-133:/yijiu/gFile/generator-A# ./generator --create_group_genesis ./group
INFO | Build operation begin.
INFO | generate ./group/group.1.genesis, successful
INFO | Build operation end.
root@192-168-19-133:/yijiu/gFile/generator-A# ll group/
总用量 16
drwxr-xr-x 2 root root 4096 10月 13 10:43 ./
drwxr-xr-x 15 root root 4096 10月 13 10:43 ../
-rw-r--r-- 1 root root 813 10月 13 10:43 group.1.genesis
-rw-r--r-- 1 root root 2061 10月 13 10:43 group.1.ini
将group.1.genesis 文件拷贝到机构B
cp group/group.1.genesis ../generator-B/meta/
生成机构A节点并启动
在generator-A文件目录下
使用--build_install_package
, 并且第一个实参是放置群组内其他节点的连接信息,第二个是节点文件的输出目录
./generator --build_install_package ./meta/peersB.txt ./nodeA
root@192-168-19-133:/yijiu/gFile/generator-A# ll nodeA/
总用量 32
drwxr-xr-x 6 root root 4096 10月 13 10:53 ./
drwxr-xr-x 16 root root 4096 10月 13 10:53 ../
drwxr-xr-x 2 root root 4096 10月 12 16:30 monitor/
drwxr-xr-x 4 root root 4096 10月 13 10:53 node_127.0.0.1_30300/
drwxr-xr-x 4 root root 4096 10月 13 10:53 node_127.0.0.1_30301/
drwxr-xr-x 2 root root 4096 10月 13 10:53 scripts/
-rwxr-xr-x 1 root root 367 10月 13 10:53 start_all.sh*
-rwxr-xr-x 1 root root 353 10月 13 10:53 stop_all.sh*
启动机构A的两个节点
root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/start_all.sh
try to start node_127.0.0.1_30300
try to start node_127.0.0.1_30301
node_127.0.0.1_30301 start successfully
node_127.0.0.1_30300 start successfully
root@192-168-19-133:/yijiu/gFile/generator-A# ps -ef | grep fisco
root 10779 1 2 10:53 pts/0 00:00:00 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30300/fisco-bcos -c config.ini
root 10780 1 2 10:53 pts/0 00:00:00 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30301/fisco-bcos -c config.ini
生成机构B节点并启动
与前面 的类型,这里我就不做解释了,直接放置相关的命令
root@192-168-19-133:/yijiu/gFile# cd generator-B/
# 生成节点文件
root@192-168-19-133:/yijiu/gFile/generator-B# ./generator --build_install_package ./meta/peersA.txt ./nodeB
INFO | Build operation begin.
INFO | Checking fisco-bcos binary...
INFO | Binary check passed.
INFO | Generate ./nodeB/node_127.0.0.1_30302
INFO | Generate ./nodeB/node_127.0.0.1_30303
INFO | Build operation end.
# 启动节点
root@192-168-19-133:/yijiu/gFile/generator-B# bash nodeB/start_all.sh
try to start node_127.0.0.1_30302
try to start node_127.0.0.1_30303
node_127.0.0.1_30302 start successfully
node_127.0.0.1_30303 start successfully
root@192-168-19-133:/yijiu/gFile/generator-B# ps -ef | grep fisco
root 10779 1 1 10:53 pts/0 00:00:02 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30300/fisco-bcos -c config.ini
root 10780 1 1 10:53 pts/0 00:00:02 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30301/fisco-bcos -c config.ini
root 11047 1 3 10:55 pts/0 00:00:00 /yijiu/gFile/generator-B/nodeB/node_127.0.0.1_30302/fisco-bcos -c config.ini
root 11048 1 3 10:55 pts/0 00:00:00 /yijiu/gFile/generator-B/nodeB/node_127.0.0.1_30303/fisco-bcos -c config.ini
root 11270 3495 0 10:55 pts/0 00:00:00 grep --color=auto fisco
查看群组1的共识情况
root@192-168-19-133:/yijiu/gFile/generator-B# tail -f ./node*/node*/log/log* | grep +++
info|2023-10-13 10:58:40.012620|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=0,hash=1e255576...
info|2023-10-13 10:58:41.022082|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=6af59b76...
自此,这效果图这部分已经完成
群组2的四个节点生成并启动[机构A,机构C]
由于机构A的两个节点已经生成并运行,所以我们将群组2创世区块的操作交给机构C
修改机构C的两个节点配置文件
机构 | 节点 | 所属群组 | P2P地址 | RPC监听地址 | Channel监听地址 | ip地址 |
---|---|---|---|---|---|---|
机构C | 节点4 | 群组2 | 30304 | 20204 | 8549 | 127.0.0.1 |
节点5 | 群组2 | 30305 | 20205 | 8550 | 127.0.0.1 |
进入generator-C目录,修改conf/node_deployment.int
文件
[group]
group_id=2
[node0]
; Host IP for the communication among peers.
; Please use your ssh login IP.
p2p_ip=127.0.0.1
; Listening IP for the communication between SDK clients.
; This IP is the same as p2p_ip for the physical host.
; But for virtual host e.g., VPS servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30304
channel_listen_port=20204
jsonrpc_listen_port=8549
[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30305
channel_listen_port=20205
jsonrpc_listen_port=8550
生成机构C的节点证书和p2p连接信息文件
./generator --generate_all_certificates ./agencyC_node_info
root@192-168-19-133:/yijiu/gFile/generator-C# ll agencyC_node_info/
总用量 20
drwxr-xr-x 2 root root 4096 10月 13 11:12 ./
drwxr-xr-x 14 root root 4096 10月 13 11:12 ../
-rw-r--r-- 1 root root 1194 10月 13 11:12 cert_127.0.0.1_30304.crt
-rw-r--r-- 1 root root 1198 10月 13 11:12 cert_127.0.0.1_30305.crt
-rw-r--r-- 1 root root 32 10月 13 11:12 peers.txt
拷贝peers.txt 给机构A
cp -r agencyC_node_info/peers.txt ../generator-A/meta/peersC.txt
使用机构C生成群组2的创世区块
ps : 这里还需要完成一个任务,将机构A的两个节点crt文件和机构A的peers.txt复制到机构C的工作目录
cp -r ../generator-A/agencyA_node_info/cert* meta/
cp -r ../generator-A/agencyA_node_info/peers.txt meta/peersA.txt
修改机构C里的conf/group_genesis.ini
文件
[group]
group_id=2
[nodes]
node0=127.0.0.1:30300
node1=127.0.0.1:30301
node2=127.0.0.1:30304
node3=127.0.0.1:30305
生成群组2创世区块文件]
./generator --create_group_genesis ./group
root@192-168-19-133:/yijiu/gFile/generator-C# ./generator --create_group_genesis ./group
INFO | Build operation begin.
INFO | generate ./group/group.2.genesis, successful
INFO | Build operation end.
root@192-168-19-133:/yijiu/gFile/generator-C# ll group/
总用量 16
drwxr-xr-x 2 root root 4096 10月 13 11:22 ./
drwxr-xr-x 15 root root 4096 10月 13 11:22 ../
-rw-r--r-- 1 root root 813 10月 13 11:22 group.2.genesis
-rw-r--r-- 1 root root 2061 10月 13 11:22 group.2.ini
将其拷贝给机构A
cp -r group/group.2.genesis ../generator-A/meta/
生成机构C节点并启动
./generator --build_install_package ./meta/peersA.txt ./nodeC
root@192-168-19-133:/yijiu/gFile/generator-C# ./generator --build_install_package ./meta/peersA.txt ./nodeC
INFO | Build operation begin.
INFO | Checking fisco-bcos binary...
INFO | Binary check passed.
INFO | Generate ./nodeC/node_127.0.0.1_30304
INFO | Generate ./nodeC/node_127.0.0.1_30305
INFO | Build operation end.
启动节点
root@192-168-19-133:/yijiu/gFile/generator-C# bash nodeC/start_all.sh
try to start node_127.0.0.1_30304
try to start node_127.0.0.1_30305
node_127.0.0.1_30305 start successfully
node_127.0.0.1_30304 start successfully
root@192-168-19-133:/yijiu/gFile/generator-C# ps -ef | grep fisco
root 10779 1 2 10:53 pts/0 00:00:53 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30300/fisco-bcos -c config.ini
root 10780 1 2 10:53 pts/0 00:00:52 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30301/fisco-bcos -c config.ini
root 11047 1 2 10:55 pts/0 00:00:50 /yijiu/gFile/generator-B/nodeB/node_127.0.0.1_30302/fisco-bcos -c config.ini
root 11048 1 2 10:55 pts/0 00:00:50 /yijiu/gFile/generator-B/nodeB/node_127.0.0.1_30303/fisco-bcos -c config.ini
root 11584 1 2 11:24 pts/0 00:00:00 /yijiu/gFile/generator-C/nodeC/node_127.0.0.1_30304/fisco-bcos -c config.ini
root 11585 1 2 11:24 pts/0 00:00:00 /yijiu/gFile/generator-C/nodeC/node_127.0.0.1_30305/fisco-bcos -c config.ini
root 11807 3495 0 11:24 pts/0 00:00:00 grep --color=auto fisco
机构A为现有节点初始化群组2
在generator-A目录操作
使用--add_group
第一个参数选择群组2的创世块,第二个参数选择需要加入群组的节点目录
./generator --add_group ./meta/group.2.genesis ./nodeA
使用--add_peers
,添加机构C节点连接文件peers至已有节点
./generator --add_peers ./meta/peersC.txt ./nodeA
重启机构A的节点
root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/stop_all.sh
try to stop node_127.0.0.1_30300
try to stop node_127.0.0.1_30301
stop node_127.0.0.1_30300 success.
stop node_127.0.0.1_30301 success.
root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/start_all.sh
try to start node_127.0.0.1_30300
try to start node_127.0.0.1_30301
node_127.0.0.1_30301 start successfully
node_127.0.0.1_30300 start successfully
查看群组2是否有共识
root@192-168-19-133:/yijiu/gFile/generator-A# tail -f ./node*/node*/log/log* | grep g:2.*+++
info|2023-10-13 11:30:00.281444|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=897212c0...
info|2023-10-13 11:30:02.290856|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=dc4ca14f...
info|2023-10-13 11:30:04.296373|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=7b95e68d...
root@192-168-19-133:/yijiu/gFile/generator-C# tail -f ./node*/node*/log/log* | grep g:2.*+++
info|2023-10-13 11:30:29.392006|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=2,hash=38ce6304...
info|2023-10-13 11:30:31.397977|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=0,hash=c68a661e...
至此,这一部分完成
群组3的四个节点生成并启动[机构A,机构D]
这部分与 群组2的构建非常相似,不做太多操作描述
修改机构D的两个节点配置文件
机构 | 节点 | 所属群组 | P2P地址 | RPC监听地址 | Channel监听地址 | ip地址 |
---|---|---|---|---|---|---|
机构D | 节点6 | 群组3 | 30306 | 20206 | 8551 | 127.0.0.1 |
节点7 | 群组3 | 30307 | 20207 | 8552 | 127.0.0.1 |
[group]
group_id=3
[node0]
; Host IP for the communication among peers.
; Please use your ssh login IP.
p2p_ip=127.0.0.1
; Listening IP for the communication between SDK clients.
; This IP is the same as p2p_ip for the physical host.
; But for virtual host e.g., VPS servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30306
channel_listen_port=20206
jsonrpc_listen_port=8551
[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30307
channel_listen_port=20207
jsonrpc_listen_port=8552
生成机构D的节点证书和p2p连接信息文件
./generator --generate_all_certificates ./agencyD_node_info
root@192-168-19-133:/yijiu/gFile/generator-D# ./generator --generate_all_certificates ./agencyD_node_info
INFO | Generate cert to ./agencyD_node_info by node_deployment.ini.
INFO | Generate /yijiu/gFile/generator-D/meta/node_127.0.0.1_30306
INFO | Generate /yijiu/gFile/generator-D/meta/node_127.0.0.1_30307
INFO | Generate cert by node_installation.ini successful!
INFO | Generate cert by node_deployment.ini end.
拷贝给A ,C的节点信息
cp -r agencyD_node_info/peers.txt ../generator-A/meta/peersD.txt
拷贝机构A的相关配置文件
cp -r ../generator-A/agencyA_node_info/peers.txt meta/peersA.txt
cp -r ../generator-A/agencyA_node_info/cert* meta/
使用机构D生成群组3的创始区块
group_genesis.ini
文件
[group]
group_id=3
[nodes]
node0=127.0.0.1:30300
node1=127.0.0.1:30301
node2=127.0.0.1:30306
node3=127.0.0.1:30307
./generator --create_group_genesis ./group
root@192-168-19-133:/yijiu/gFile/generator-D# ./generator --create_group_genesis ./group
INFO | Build operation begin.
INFO | generate ./group/group.3.genesis, successful
INFO | Build operation end.
拷贝给A 群组3的创始区块
cp -r group/group.3.genesis ../generator-A/meta/
生成机构D节点并启动
./generator --build_install_package ./meta/peersA.txt ./nodeD
root@192-168-19-133:/yijiu/gFile/generator-D# ./generator --build_install_package ./meta/peersA.txt ./nodeD
INFO | Build operation begin.
INFO | Checking fisco-bcos binary...
INFO | Binary check passed.
INFO | Generate ./nodeD/node_127.0.0.1_30306
INFO | Generate ./nodeD/node_127.0.0.1_30307
INFO | Build operation end.
bash nodeD/start_all.sh
root@192-168-19-133:/yijiu/gFile/generator-D# bash nodeD/start_all.sh
try to start node_127.0.0.1_30306
try to start node_127.0.0.1_30307
node_127.0.0.1_30307 start successfully
node_127.0.0.1_30306 start successfully
机构A为现有节点初始化群组3
在generator-A工作目录下
./generator --add_group ./meta/group.3.genesis ./nodeA/
root@192-168-19-133:/yijiu/gFile/generator-A# ./generator --add_group ./meta/group.3.genesis ./nodeA/
INFO | add group from ./meta/group.3.genesis to ./nodeA/
INFO | add group end.
./generator --add_peers ./meta/peersD.txt ./nodeA/
root@192-168-19-133:/yijiu/gFile/generator-A# ./generator --add_peers ./meta/peersD.txt ./nodeA/
INFO | Combine config.ini from ./meta/peersD.txt to ./nodeA/
INFO | Combine config.ini end.
重新启动nodeA
root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/stop_all.sh
try to stop node_127.0.0.1_30300
try to stop node_127.0.0.1_30301
stop node_127.0.0.1_30301 success.
stop node_127.0.0.1_30300 success.
root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/start_all.sh
try to start node_127.0.0.1_30300
try to start node_127.0.0.1_30301
node_127.0.0.1_30301 start successfully
node_127.0.0.1_30300 start successfully
查看群组3是否有共识
root@192-168-19-133:/yijiu/gFile/generator-A# tail -f ./node*/node*/log/log* | grep g:3.*+++
info|2023-10-13 11:49:22.736657|[g:3][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=2,hash=a65932ba...
info|2023-10-13 11:49:23.742396|[g:3][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=1312488c...
root@192-168-19-133:/yijiu/gFile/generator-D# tail -f ./node*/node*/log/log* | grep g:3.*+++
info|2023-10-13 11:49:56.856949|[g:3][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=0,hash=0959777e...
info|2023-10-13 11:49:57.860019|[g:3][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=8499da17...
全部完成搭建
结语
generator 的工具使用命令还有很多的,可以多看文档,进行相关的操作实验,也可以自己设计一个节点拓扑图,然后使用generator按照拓扑图进行搭建,训练。