环境
(1)两台虚拟机:
bigdata444
bigdata555
(2)并设置ssh免密登录
https://blog.csdn.net/qq_45335413/article/details/107810990
(3)安装java环境
(4)安装Python环境与对应的pip
一、执行下载命令
bigdata444与bigdata555两台主机都要进行
mkdir ~/fisco && cd fisco
git clone https://github.com/FISCO-BCOS/generator.git && cd ./generator
会生成generate脚本,这个脚本会生成链证书,机构证书,节点等信息,其中生成这些信息的配置都放在meta这个文件下。
二、安装
bigdata444与bigdata555两台主机都要进行
cd ~/generator && bash ./scripts/install.sh
四、获取二进制文件
bigdata444与bigdata555两台主机都要进行
./generator --download_fisco ./meta
可以查看二进制版本
/meta/fisco-bcos -v
五、初始化链证书
在主机bigdata444上进行,并将dir_chain_ca拷贝到bigdata55对应的位置。
./generator --generate_chain_certificate ../dir_chain_ca
scp dir_chain_ca root@bigdata555:/usr/local/fisco
六、初始化机构 A 和 B
(1)初始化机构A
需要指定链证书的存放位置,与生成的机构证书的存放位置。
./generator --generate_agency_certificate ../dir_agency_ca ../dir_chain_ca agencyA
查看机构证书及私钥
ls dir_agency_ca/agencyA/
发送链证书、机构证书、机构私钥至机构 A
cp ../dir_agency_ca/agencyA/* ~/generator/meta/
(2)初始化机构B
需要指定链证书的存放位置,与生成的机构证书的存放位置。
./generator --generate_agency_certificate ../dir_agency_ca ../dir_chain_ca agencyA
查看机构证书及私钥
ls dir_agency_ca/agencyA/
发送链证书、机构证书、机构私钥至机构 B
cp ../dir_agency_ca/agencyB/* ~/generator/meta/
七、修改配置文件
bigdata444与bigdata555两台主机都要进行
手动的方式修改 generate\conf 文件夹下面 node_deployment.ini
p2p_ip 修改为对应的主机IP地址,节点间进行通信
rpc_ip 浏览器监听的端口与IP地址
channel_ip SDK 与console监听的端口与IP地址
按自己的需求进行修改
详细参考
https://mp.weixin.qq.com/s/IiHsPlxmvEEBTC84n27I9A
八、生成节点信息
(1)、机构 A 生成节点证书
./generator --generate_all_certificates ../agencyA_node_info
(2)、机构 B 生成节点证书
./generator --generate_all_certificates ../agencyB_node_info
假如机构 B 这一步操作失误,需要删除 agencyB_node_info 文件夹,以及 meta 文件夹
下生成的节点文件和信息,只保留如下内容
九、创建创世区块
当节点证书生成之后,我们可以先创建创世区块,再进行生成节点
(1)、生成创世区块的机构需要节点证书,
示例中由 A 机构生成创世区块,因此 B 机构需发送节点证书至机构 A,将机构 B 节点 agencyB_node_info 文件夹 cert_*.crt 文件 copy 到机构 A 的 meta 文
件夹中
(2)各机构节点连接信息 相互收集
比如:机构 A 的 meta 文件夹下多了 peersB,txt,机构 B 的 meta 文件夹下多了 peersA,txt
里面是对方的节点连接信息。
也需要包含自身peers.txt信息。
(3)、配置群组1创世区块
配置generate\conf\group_genesis.ini
[group]
group_id=1
[nodes]
node0=服务器B的 IP:30300
node1=服务器B的 IP:30301
node2=服务器A的IP:30300
node3=服务器 A 的 IP:30301
(4)、执行命令 生成 group_genesis.ini 配置的群组创世区块
./generator --create_group_genesis ../group
分发群组 1 创世区块至机构 B
手动复制 机构 A ./group/group.1.genesis 文件到机构 B 的 meta 文件夹下
十、生成节点
(1)、机构 A 生成所属节点
./generator --build_install_package ./meta/peersB.txt ../nodeA
(2)、机构 B 生成所属节点
./generator --build_install_package ./meta/peersB.txt ../nodeA
(3)、启动各自机构节点
bash ./nodeA/start_all.sh
可能报错
根据端口查找进程
sudo lsof -i:[port]
.根据PID杀掉进程
sudo kill [PID]
然后再次启动
十一、搭建控制台
由于控制台需要 java 环境,所以先要搭建 java
(1)、国内用户推荐使用 cdn 下载,如果访问 github 较快,可以去掉–cdn 选项:
./generator --download_console ./ --cdn
已经默认生成SDK证书
(2)、生成SDK证书
./generator --generate_sdk_certificate ./dir_sdk_ca ./dir_agency_ca/agencyA
生成SDK证书是为了java-SDK开发用的
./start.sh
控制台发布合约
[group:1]> deploy HelloWorld.sol
contract address: 0x3a784b42c58cb36e4c5306d43ce0075e1eef4b84
[group:1]> getBlockNumber
1
控制台说明操作命令
https://fisco-bcosdocumentation.readthedocs.io/zh_CN/latest/docs/manual/console.html#id2