FISCO-BCOS组群部署

节点组网拓扑结构
一个如图所示的6节点3机构2群组的组网模式。机构B和机构C分别位于群组1和群组2中。机构A同属于群组1和群组2中
FISCO-BCOS组群部署_第1张图片
机器环境

每个节点的IP,端口号为如下:

机构 节点 所属群组 P2P地址 RPC Channel监听地址
机构A 节点0 群组1、2 127.0.0.1:30300 127.0.0.1:8545 0.0.0.0:20200
- 节点1 群组1、2 127.0.0.1:30301 127.0.0.1:8546 0.0.0.0:20201
- 节点4 群组1、2 127.0.0.1:30304 127.0.0.1:8549 0.0.0.0:20202
机构B 节点2 群组1 127.0.0.1:30302 127.0.0.1:8547 0.0.0.0:20203
- 节点3 群组1 127.0.0.1:30303 127.0.0.1:8548 0.0.0.0:20204
机构C 节点5 群组1、2 127.0.0.1:30305 127.0.0.1:8550 0.0.0.0:20205

关键流程

机构B
机构A
证书颁发机构
生成链证书ca
ca.crt,agency.crt,agency.key
配置node-deployment.ini
配置group_genesis.ini
node_deployment.ini
ca.crt,agency.crt,agency.key
配置node-deployment.ini
cert*.crt
cert*.crt
分发
peers.txt
peers.txt
node_deployment.ini
生成机构证书
获取机构证书
生成节点证书
收集节点证书
收集节点证书
生成节点证书
区块
生成创世区块
收集节点P2P
收集节点P2P
机构B生成所属节点
节点启动
获取机构证书
机构A生成所属节点
节点启动
generator

FISCO BCOS 实操
下载安装

cd ~/ && git clone https://github.com/FISCO-BCOS/generator.git  
cd ~/generator && bash ./scripts/install.sh   //安装
./generator -h   //查看帮助信息

./generator --download_fisco ./meta  //拉取最新fisco-bcos二进制文
./meta/fisco-bcos -v  //查看版本

联盟链初始化

初始化机构A、B

cp -r ~/generator ~/generator-A
cp -r ~/generator ~/generator-B

初始化链证书

cd ~/generator 
./generator --generate_chain_certificate ./dir_chain_ca  //生成链证书ca.crt 链私钥ca.key

ls ./dir_chain_ca  //查看链证书及私钥:ca.crt  ca.key

//机构本地生成私钥agency.key–>生成请书请求文件–>证书签发机构获取证书agency.crt

//生成机构A证书
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyA
ls dir_agency_ca/agencyA/ 查看机构证书、机构私钥、链证书
cp ./dir_agency_ca/agencyA/* ~/generator-A/meta/
//机构B证书
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyB
cp ./dir_agency_ca/agencyA/* ~/generator-A/meta/

机构A修改配置文件
node_deployment.ini为节点配置文件,运维部署工具会根据node_deployment.ini下的配置生成相关节点证书,及生成节点配置文件夹等

cd  ../generator-A
vim ~/generator-A/conf/node_deployment.ini
[node0]
p2p_listen_port=30300
channel_listen_port=20200
jsonrpc_listen_port=8545

[node1]
p2p_listen_port=30301
channel_listen_port=20201
jsonrpc_listen_port=8546

修改node_deployment.ini文件
修改以下配置

vim ~/generator-B/conf/node_deployment.ini

[node0]   
p2p_listen_port=30302
channel_listen_port=20202
jsonrpc_listen_port=8547

[node1]
p2p_listen_port=30303
channel_listen_port=20203
jsonrpc_listen_port=8548

机构A、B生成并发送节点信息,
生成节点证书,p2p连接地址文件

cd ~/generator-A & ./generator --generate_all_certificates ./agencyA_node_info
cd ~/generator-B & ./generator --generate_all_certificates ./agencyB_node_info

互存p2p地址文件

cp ~/generator-A/agencyA_node_info/peers.txt ~/generator-B/meta/peersA.txt
cp ~/generator-B/agencyB_node_info/peers.txt ~/generator-A/meta/peersB.txt

生成节点证书及p2p连接信息文件

./generator --generate_all_certificates ./agencyB_node_info

B节点证书及p2p连接信息,存入A机构

cp ./agencyB_node_info/cert*.crt ~/generator-A/meta/
cp ./agencyB_node_info/peers.txt ~/generator-A/meta/peersB.txt

机构A生成群组1创世区块

cd ~/generator-A
vim ~/generator-A/conf/group_genesis.ini //修改机构A配置文件,用来生成创世块
/修改以下信息
[group]
group_id=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

生成创世块,创世块分发给机构B

./generator --create_group_genesis ./group  //生成创世块

cp ./group/group.1.genesis ~/generator-B/meta //创世块分发

根据node_deployment.ini文件生成A,B节点信息

cd ~/generator & ./generator --build_install_package ./meta/peersB.txt ./nodeA //生成节点nodeA
bash ./nodeA/start_all.sh  //启动节点nodeA

cd ~/generator & ./generator --build_install_package ./meta/peersA.txt ./nodeB //生成节点nodeB
 bash ./nodeB/start_all.sh


你可能感兴趣的:(FISCO,BCOS)