Fisco Bcos集群环境搭建

安装软件

安装python2.7

更新包

sudo apt-get update

安装python2.7

sudo apt-get install python2.7

sudo apt update

安装python2.7 pip

sudo apt install python-pip

pip install --upgrade pip

部署fisco-bcos

机构A

192.168.160.128

机构B

192.168.160.130

下载源码

cd ~/

git clone https://github.com/FISCO-BCOS/generator.git

执行安装脚本

cd ./generator

bash ./scripts/install.sh

获取节点二进制

拉取最新fisco-bcos二进制文件到meta中

./generator --download_fisco ./meta --cdn

检查二进制版本

./meta/fisco-bcos -v

初始化链证书

./generator --generate_chain_certificate ./dir_chain_ca

初始化机构A

./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyA

ls dir_agency_ca/agencyA/

将机构A的链证书、机构证书、机构私钥拷贝至机构A的/generator/meta/目录下

cp ./dir_agency_ca/agencyA/* ./meta/

初始化机构B

1、执行安装脚本、获取节点二进制,同机构A一样

2、将机构A的dir_chain_ca 文件夹内容 copy 到/generator/目录下

生成机构B证书

./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyB

ls dir_agency_ca/agencyB/

将B的链证书、机构证书、机构私钥发送至机构 B的/generator/meta/目录下

cp ./dir_agency_ca/agencyB/* ./meta/

ls meta

修改配置文件

修改机构A的generator/conf 文件夹下面 node_deployment.ini

p2p_ip=公网IP地址

rpc_ip=内网IP地址(或0.0.0.0)

修改机构B的generator/conf 文件夹下面 node_deployment.ini

p2p_ip=公网IP地址

rpc_ip=内网IP地址(或0.0.0.0)

生成节点信息

机构 A 生成节点证书及 P2P 连接信息文件

./generator --generate_all_certificates ./agencyA_node_info

ls ./agencyA_node_info

机构 B 生成节点证书及 P2P 连接信息文件

./generator --generate_all_certificates ./agencyB_node_info

ls agencyB_node_info

ps:假如机构B这一步操作失误,需要删除 agencyB_node_info文件夹,以及 meta文件夹下生成的节点文件和信息,只保留如下内容并重新生成B节点证书

创世机构收集节点证书

生成创世区块的机构需要节点证书,示例中由A机构生成创世区块,因此B机构除了发送节点 P2P 连接地址文件外,还需发送节点证书至机构A将机构B节点 agencyB_node_info 文件夹 cert_*.crt 文件 copy 到机构A的meta文件夹中

各机构节点连接信息相互收集

比如:机构 A 的 meta 文件夹下多了 peersB.txt,机构 B 的 meta 文件夹下多了 peersA.txt 里面是对方的节点连接信息。

1、将机构A目录下的peers.txt文件复制到机构B的meta文件夹下修改为peersA.txt

2、将机构B目录下的peers.txt文件复制到机构A的meta文件夹下修改为peersB.txt

生成创世区块

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

cd conf

vim group_genesis.ini

[group]

group_id=1



[nodes]

node0=192.168.160.128:30300

node1=192.168.160.128:30301

node2=192.168.160.130:30300

node3=191.168.160.130:30301

node0=服务器A的IP:30300

node1=服务器A的IP:30301

node2=服务器B的IP:30300

node3=服务器B的IP:30301

执行命令生成 group_genesis.ini 配置的群组创世区块

./generator --create_group_genesis ./group

分发群组 1 创世区块至机构 B,手动复制, 机构 A ./group/group.1.genesis 文件到机构 B 的 meta 文件夹下

启动节点

机构 A 生成所属节点

./generator --build_install_package ./meta/peersB.txt ./nodeA

机构 B 生成所属节点

./generator --build_install_package ./meta/peersA.txt ./nodeB

各自启动机构下的节点

bash ./nodeA/start_all.sh

bash ./nodeB/start_all.sh

检查启动是否成功

查看进程 

ps -ef | grep fisco

查看节点 log

tail -f ./node*/node*/log/log* | grep +++

关闭

./stop_all.sh

搭建控制台

安装java

由于控制台需要 java 环境,所以先要搭建 java

方式一

# 安装默认Java版本(Java 8或以上)

sudo apt install -y default-jdk

# 查询Java版本

java -version

如果因为网络问题导致长时间无法下载,请尝试 curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master/tools/download_console.sh && bash download_console.sh

cd console/conf/

启动控制台

cd console 

./start.sh

部署智能合约

deploy HelloWorld.sol

getBlockHashByNumber 1

猜你喜欢

转载自blog.csdn.net/yuch_hong/article/details/109312340