机构A、C构建群组2
接下来,机构C需要与A进行新群组建立操作,示例中以C生成创世区块为例。
机构A发送节点信息
由于机构A已经生成过节点证书及peers文件,只需将之前生成的节点P2P连接信息以及节点证书发送至机构C,操作如下:
在~/generator-A目录下执行下述命令
- cd ~/generator-A
示例中由机构C生成群组创世区块,因此需要机构A的节点证书和节点P2P连接地址文件,将上述文件发送至机构C
发送证书
- cp ./agencyA_node_info/cert*.crt ~/generator-C/meta/
发送节点P2P连接地址文件
- cp ./agencyA_node_info/peers.txt ~/generator-C/meta/peersA.txt
机构C修改配置文件
机构C修改conf文件夹下的node_deployment.ini
如下图所示:
在~/generator-C目录下执行下述命令
- cd ~/generator-C
- cat > ./conf/node_deployment.ini << EOF
- [group]
- group_id=2
- [node0]
- ; host ip for the communication among peers.
- ; Please use your ssh login ip.
- p2p_ip=127.0.0.1
- ; listen ip for the communication between sdk clients.
- ; This ip is the same as p2p_ip for 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
- 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
- p2p_listen_port=30305
- channel_listen_port=20205
- jsonrpc_listen_port=8550
- EOF
机构C生成并发送节点信息
在~/generator-C目录下执行下述命令
- cd ~/generator-C
机构C生成节点证书及P2P连接信息文件:
- ./generator --generate_all_certificates ./agencyC_node_info
查看生成文件:
- ls ./agencyC_node_info
- # 上述命令解释
- # 从左至右分别为需要交互给机构A的节点证书,节点P2P连接地址文件(根据node_deployment.ini生成的本机构节点信息)
- cert_127.0.0.1_30304.crt cert_127.0.0.1_30305.crt peers.txt
机构生成节点时需要指定其他节点的节点P2P连接地址,因此,C机构需将节点P2P连接地址文件发送至机构A
- cp ./agencyC_node_info/peers.txt ~/generator-A/meta/peersC.txt
机构C生成群组2创世区块
在~/generator-C目录下执行下述命令
- cd ~/generator-C
机构C修改conf文件夹下的group_genesis.ini
如下图所示:
- cat > ./conf/group_genesis.ini << EOF
- [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
- EOF
命令执行之后会修改./conf/group_genesis.ini文件:
- ;命令解释
- [group]
- group_id=2
- [nodes]
- node0=127.0.0.1:30300
- ;机构A节点p2p地址
- node1=127.0.0.1:30301
- ;机构A节点p2p地址
- node2=127.0.0.1:30304
- ;机构C节点p2p地址
- node3=127.0.0.1:30305
- ;机构C节点p2p地址
教程中选择机构C生成群组创世区块,实际生产中可以通过联盟链委员会协商选择。
此步会根据机构C的meta文件夹下配置的节点证书,生成group_genesis.ini配置的群组创世区块。
- ./generator --create_group_genesis ./group
分发群组2创世区块至机构A:
- cp ./group/group.2.genesis ~/generator-A/meta/
机构C生成所属节点
在~/generator-C目录下执行下述命令
- cd ~/generator-C
- ./generator --build_install_package ./meta/peersA.txt ./nodeC
机构C启动节点:
- bash ./nodeC/start_all.sh
- ps -ef | grep fisco
- # 命令解释
- # 可以看到如下进程
- fisco 15347 1 0 17:22 pts/2 00:00:00 ~/generator-A/nodeA/node_127.0.0.1_30300/fisco-bcos -c config.ini
- fisco 15402 1 0 17:22 pts/2 00:00:00 ~/generator-A/nodeA/node_127.0.0.1_30301/fisco-bcos -c config.ini
- fisco 15457 1 0 17:22 pts/2 00:00:00 ~/generator-B/nodeB/node_127.0.0.1_30302/fisco-bcos -c config.ini
- fisco 15498 1 0 17:22 pts/2 00:00:00 ~/generator-B/nodeB/node_127.0.0.1_30303/fisco-bcos -c config.ini
- fisco 15550 1 0 17:22 pts/2 00:00:00 ~/generator-C/nodeC/node_127.0.0.1_30304/fisco-bcos -c config.ini
- fisco 15589 1 0 17:22 pts/2 00:00:00 ~/generator-C/nodeC/node_127.0.0.1_30305/fisco-bcos -c config.ini
机构A为现有节点初始化群组2
在~/generator-A目录下执行下述命令
- cd ~/generator-A
添加群组2配置文件至已有节点,此步将群组2创世区块group.2.genesis
添加至./nodeA下的所有节点内:
- ./generator --add_group ./meta/group.2.genesis ./nodeA
添加机构C节点连接文件peers至已有节点,此步将peersC.txt
的节点P2P连接地址添加至./nodeA下的所有节点内:
- ./generator --add_peers ./meta/peersC.txt ./nodeA
重启机构A节点:
- bash ./nodeA/stop_all.sh
- bash ./nodeA/start_all.sh
查看群组2节点运行状态
查看节点进程:
- ps -ef | grep fisco
- # 命令解释
- # 可以看到如下进程
- fisco 15347 1 0 17:22 pts/2 00:00:00 ~/generator-A/nodeA/node_127.0.0.1_30300/fisco-bcos -c config.ini
- fisco 15402 1 0 17:22 pts/2 00:00:00 ~/generator-A/nodeA/node_127.0.0.1_30301/fisco-bcos -c config.ini
- fisco 15457 1 0 17:22 pts/2 00:00:00 ~/generator-B/nodeB/node_127.0.0.1_30302/fisco-bcos -c config.ini
- fisco 15498 1 0 17:22 pts/2 00:00:00 ~/generator-B/nodeB/node_127.0.0.1_30303/fisco-bcos -c config.ini
- fisco 15550 1 0 17:22 pts/2 00:00:00 ~/generator-C/nodeC/node_127.0.0.1_30304/fisco-bcos -c config.ini
- fisco 15589 1 0 17:22 pts/2 00:00:00 ~/generator-C/nodeC/node_127.0.0.1_30305/fisco-bcos -c config.ini
查看节点log:
在~/generator-C目录下执行下述命令
- cd ~/generator-C
- tail -f ./node*/node*/log/log* | grep +++
- # 命令解释
- # log中打印的+++即为节点正常共识
- info|2019-02-25 17:25:56.028692| [g:2][p:264][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,myIdx=0,hash=833bd983...
- info|2019-02-25 17:25:59.058625| [g:2][p:264][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,myIdx=0,hash=343b1141...
- info|2019-02-25 17:25:57.038284| [g:2][p:264][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,myIdx=1,hash=ea85c27b...
至此,我们完成了如图所示的机构A、C搭建群组2构建: