build_chain.sh脚本提供-d
参数,支持使用docker方式部署区块链。本章将演示如何以docker方式搭建区块链
1、安装依赖(如果系统已经有openssl可以不用执行该条命令)
apt install -y curl openssl
2、下载安装脚本(如果第一个下载不成功,就使用第二个下载)
第一个:
cd ~ && mkdir -p fisco && cd fisco
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.8.0/build_chain.sh && chmod u+x build_chain.sh
第二个:
cd ~ && mkdir -p fisco && cd fisco
curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.8.0/build_chain.sh && chmod u+x build_chain.sh
3、搭建群组节点区块链
请确保机器的30300~30303,20200~20203,8545~8548
端口没有被占用,也可以通过-p
参数指定其他端口。
cd ~ && cd fisco && \
bash build_chain.sh -d -l 127.0.0.1:6 -p 30300,20200,8545
命令执行成功会输出All completed
。如果执行出错,请检查nodes/build.log
文件中的错误信息。
参数说明:
- -d <docker mode> 默认是关闭的,如果设置了-d,则 构建基于docker的节点
- -l <IP list> 节点IP列表eg_1:"127.0.0.1:6" 中的6代表创建6个节点。eg_2:"192.168.0.1:2,192.168.0.2:3"
- -p <Start port> 启动端口 默认是30300、20200、8545,意思是 p2p_port端口从30300开始,channel_port端口从20200开始,jsonrpc_port端口从8545开始
- 所有参数
./build_chain.sh: illegal option -- -
Usage:
-l <IP list> [Required] "ip1:nodeNum1,ip2:nodeNum2" e.g:"192.168.0.1:2,192.168.0.2:3"
-f <IP list file> [Optional] split by line, every line should be "ip:nodeNum agencyName groupList p2p_port,channel_port,jsonrpc_port". eg "127.0.0.1:4 agency1 1,2 30300,20200,8545"
-v <FISCO-BCOS binary version> Default is the latest v2.8.0
-e <FISCO-BCOS binary path> Default download fisco-bcos from GitHub. If set -e, use the binary at the specified location
-o <Output Dir> Default ./nodes/
-p <Start Port> Default 30300,20200,8545 means p2p_port start from 30300, channel_port from 20200, jsonrpc_port from 8545
-q <List FISCO-BCOS releases> List FISCO-BCOS released versions
-i <Host ip> Default 127.0.0.1. If set -i, listen 0.0.0.0
-s <DB type> Default rocksdb. Options can be rocksdb / mysql / scalable, rocksdb is recommended
-d <docker mode> Default off. If set -d, build with docker
-c <Consensus Algorithm> Default PBFT. Options can be pbft / raft /rpbft, pbft is recommended
-C <Chain id> Default 1. Can set uint.
-g <Generate guomi nodes> Default no
-z <Generate tar packet> Default no
-t <Cert config file> Default auto generate
-6 <Use ipv6> Default no. If set -6, treat IP as IPv6
-k <The path of ca root> Default auto generate, the ca.crt and ca.key must in the path, if use intermediate the root.crt must in the path
-K <The path of sm crypto ca root> Default auto generate, the gmca.crt and gmca.key must in the path, if use intermediate the gmroot.crt must in the path
-D <Use Deployment mode> Default false, If set -D, use deploy mode directory struct and make tar
-G <channel use sm crypto ssl> Default false, only works for guomi mode
-X <Certificate expiration time> Default 36500 days
-T <Enable debug log> Default off. If set -T, enable debug log
-S <Enable statistics> Default off. If set -S, enable statistics
-F <Disable log auto flush> Default on. If set -F, disable log auto flush
-E <Enable free_storage_evm> Default off. If set -E, enable free_storage_evm
-h Help
e.g
./build_chain.sh -l "127.0.0.1:4"
4、启动区块链
执行命令
cd ~/fisco/nodes/127.0.0.1 && ./start_all.sh
启动时,会查找本地是否存在FISCO-BCOS对应版本的节点镜像,不存在则从docker hub下载。
5、检查容器
检查容器状态是否正常,命令如下:
docker ps -a | egrep fiscobcos
容器状态为UP
时,说明节点正常启动。
6、查看节点
可以通过检查日志来确认节点的p2p连接数目、共识是否正常。
- 查看节点node0连接的节点数
tail -f ~/fisco/nodes/127.0.0.1/node0/log/log* | grep connected
正常情况会不停地输出连接信息,从输出可以看出node0与另外5个节点有连接。
-
检查共识
tail -f ~/fisco/nodes/127.0.0.1/node0/log/log* | grep +++
- 正常情况会不停输出
++++Generating seal
,表示共识正常。
7、完成
到此docker环境已经部署完成。