安装软件
安装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