前置条件:
机构 | 节点 | 所属群组 | P2P地址 | Channel监听地址 | json监听地址 | IP地址 |
---|---|---|---|---|---|---|
机构A | 节点0 | 群组1,2 | 30300 | 20200 | 8545 | 127.0.0.1 |
节点1 | 群组1,2 | 30301 | 20201 | 8546 | 127.0.0.1 | |
机构B | 节点0(2) | 群组1 | 30302 | 20202 | 8547 | 127.0.0.1 |
节点1(3) | 群组1 | 30303 | 20203 | 8548 | 127.0.0.1 | |
机构C | 节点0(4) | 群组2 | 30304 | 20204 | 8549 | 127.0.0.1 |
下载工具Generator
1 | git clone https://gitee.com/FISCO-BCOS/generator.git #使用这个 |
切进目录并进行安装
1 | cd generator/ |
下载并解压二进制文件
1 | git clone https://gitee.com/BackRe/resource.git |
查看fisco版本信息
1 | ./meta/fisco-bcos -v |
准备工作
根据前置条件中可以看到需求是AB机构所以要将当前的文件复制成AB四份。
1 | cp -r generator/ generator-a |
生成区块链的唯一密钥证书(在generator目录下生成)
1 | ./generator --generate_chain_certificate ./chain_ca |
--generate_chain_certificate
生成区块链唯一的密钥相当于之前搭建中nodes/127.0.0.1/sdk内的内容
./chain_ca
生成的文件名称
1 | # 预输出效果如下 |
然后生成各个机构的证书及密钥,并复制到指定的机构目录下的meta中
1 | ./generator --generate_agency_certificate ./agency_ca ./chain_ca agencya |
--generate_agency_certificate
生成机构的密钥
./agency_ca
生成的文件位置
./chain_ca
区块链的唯一密钥
agencyxx
机构名称
机构A,B的准备工作
准备
切换到generatora目录中,编辑conf/node_deployment.ini
根据提供的ip端口进行对应的修改
1 | [group] |
同理切换到generatorb,编辑conf/node_deployment.ini
1 | [group] |
生成机构A的节点证书和p2p连接信息文件(切换到generator-a)
1 | ./generator --generate_all_certificates ./agencya_node_info |
将p2p连接信息文件复制到agency-b中
1 | cp agencya_node_info/peers.txt ../generator-b/meta/peersa.txt |
同理生成机构B的节点证书和p2p连接信息文件(切换到generator-b)
1 | ./generator --generate_all_certificates ./agencyb_node_info |
将p2p连接信息文件复制到agency-a中
1 | cp agencyb_node_info/peers.txt ../generator-a/meta/peersb.txt |
这里要注意一点,由于目前是要生成群组1需要创世区块,我们要将机构机构B中的两个cert文件拷贝到机构A的meta中。
1 | cp -r agencyb_node_info/cert_* ../generator-a/meta/ |
切换到机构A中并编辑文件conf/group_genesis.ini
1 | cd ../generator-a/ |
1 | [group] |
group_id
群组号
根据前置要求表中配置好node的ip以及端口
结合四个节点证书生成创世块.
1 | ./generator --create_group_genesis ./group |
1 | root@backrer-virtual-machine:~/fisco/generator-a# ./generator --create_group_genesis ./group |
将group.1.genesis
文件复制到机构B中
1 | cp group/group.1.genesis ../generator-b/meta/ |
生成机构A
在generator-a文件下
使用--build_install_package
生成机构的所有节点。
1 | ./generator --build_install_package ./meta/peersb.txt ./nodea |
./meta/peersB.txt
放置群组内其他节点的连接信息
./nodeA
节点文件的输出目录
启动机构A的两个节点
1 | bash nodea/start_all.sh |
生成机构B
切换到机构B
1 | cd ../generator-b |
生成机构B,并且启动
1 | ./generator --build_install_package ./meta/peersa.txt ./nodeb |
查看群组1的共识情况
1 | tail -f ./node*/node*/log/log* | grep +++ |