建链脚本¶
脚本功能简介¶
build_chain
脚本用于快速生成一条链中节点的配置文件,脚本依赖于openssl
请根据自己的操作系统安装openssl 1.0.2
以上版本。- 快速体验可以使用
-l
选项指定节点IP和数目。-f
选项通过使用一个指定格式的配置文件,提供了创建更加复杂的链的功能。-l
和-f
选项必须指定一个且不可共存。 - 建议测试时使用
-T
和-i
选项选项,-T
开启log级别到DEBUG,-i
设置RPC和channel监听0.0.0.0
。p2p模块默认监听0.0.0.0
。
帮助¶
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". eg "127.0.0.1:4 agency1 1,2"
-e <FISCO-BCOS binary path> Default download from GitHub
-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
-i <Host ip> Default 127.0.0.1. If set -i, listen 0.0.0.0
-c <Consensus Algorithm> Default PBFT. If set -c, use Raft
-s <State type> Default storage. if set -s, use mpt
-g <Generate guomi nodes> Default no
-z <Generate tar packet> Default no
-t <Cert config file> Default auto generate
-T <Enable debug log> Default off. If set -T, enable debug log
-h Help
e.g
../tools/build_chain.sh -l "127.0.0.1:4"
Important
build_chain目标是让用户最快使用FISCO BCOS,对于企业级应用请参考 企业工具 。
选项介绍¶
l
选项: 用于指定要生成的链的IP列表以及每个IP下的节点数,以逗号分隔。脚本根据输入的参数生成对应的节点配置文件,其中每个节点的端口号默认从30300开始递增,所有节点属于同一个机构和Group。f
选项- 用于根据配置文件生成节点,相比于
l
选项支持更多的定制。 - 按行分割,每一行表示一个服务器,格式为
IP:NUM AgencyName GroupList
,每行内的项使用空格分割,不可有空行。 IP:NUM
表示机器的IP地址以及该机器上的节点数。AgencyName
表示机构名,用于指定使用的机构证书。GroupList
表示该行生成的节点所属的组,以,
分割。例如192.168.0.1:2 agency1 1,2
表示ip
为192.168.0.1
的机器上有两个节点,这两个节点属于机构agency1
,属于group1和group2。
- 用于根据配置文件生成节点,相比于
下面是一个配置文件的例子,每个配置项以空格分隔,其中GroupList
表示该服务器所属的组。
192.168.0.1:2 agency1 1,2
192.168.0.1:2 agency1 1,3
192.168.0.2:3 agency2 1
192.168.0.3:5 agency3 2,3
192.168.0.4:2 agency2 3
假设上述文件名为ipconf
,则使用下列命令建链
bash build_chain.sh -f ipconf -T -i
e
选项[Optional] 用于指定fisco-bcos
二进制所在的路径,脚本会将fisco-bcos
拷贝以IP为名的目录下。不指定时,默认从GitHub下载master
分支最新的二进制程序。o
选项[Optional] 指定生成的配置所在的目录。p
选项[Optional] 指定节点的起始端口,每个节点占用三个端口,分别是p2p,channel,jsonrpc使用,
分割端口,必须指定三个端口。同一个IP下的不同节点所使用端口从起始端口递增。 例如build_chain -l 127.0.0.1:2 -p 30300,20200,8545
,那么两个节点分别占用30300,20200,8545
和30301,20201,8546
。i
选项[Optional] 无参数选项,设置该选项时,设置节点的RPC和channel监听0.0.0.0
c
选项[Optional] 无参数选项,设置该选项时,设置节点的共识算法为Raft,默认设置为PBFT。s
选项[Optional] 无参数选项,设置该选项时,节点使用mptstate存储合约局部变量,默认使用storagestate存储合约局部变量。g
选项[Optional] 无参数选项,设置该选项时,编译国密版本。使用g
选项时要求二进制fisoc-bcos为国密版本。z
选项[Optional] 无参数选项,设置该选项时,生成节点的tar包。t
选项[Optional] 该选项用于指定生成证书时的证书配置文件。T
选项[Optional] 无参数选项,设置该选项时,设置节点的log级别为DEBUG。log详细内容参考这里
节点组织结构¶
- cert文件夹下存放链的根证书和机构证书。
- 以IP命名的文件夹下存储该服务器所有节点相关配置、
fisco-bcos
可执行文件、sdk所需的证书文件。 - 每个IP文件夹下的
node*
文件夹下存储节点所需的配置文件。其中config.ini
为节点的主配置,conf
目录下存储证书文件和群组相关配置。配置文件详情,请参考这里。每个节点中还提供两个脚本,用于启动和停止节点。 - 每个IP文件夹下的提供
start_all.sh
和stop_all.sh
两个脚本用于启动和停止所有节点。
nodes/
├── 127.0.0.1
│ ├── fisco-bcos
│ ├── node0
│ │ ├── conf
│ │ │ ├── ca.crt
│ │ │ ├── group.1.ini
│ │ │ ├── node.crt
│ │ │ ├── node.key
│ │ │ ├── node.nodeid
│ │ ├── config.ini
│ │ ├── start.sh
│ │ └── stop.sh
│ ├── node1
│ │.....
│ ├── node2
│ │.....
│ ├── node3
│ │.....
│ ├── sdk
│ │ ├── ca.crt
│ │ ├── node.crt
│ │ └── node.key
├── cert
│ ├── agency
│ │ ├── agency.crt
│ │ ├── agency.key
│ │ ├── agency.srl
│ │ ├── ca-agency.crt
│ │ ├── ca.crt
│ │ └── cert.cnf
│ ├── ca.crt
│ ├── ca.key
│ ├── ca.srl
│ └── cert.cnf
└── replace_all.sh
使用举例¶
单服务器单群组¶
构建本机上4节点的FISCO BCOS联盟连,使用默认起始端口30300,20200,8545
(4个节点会占用30300-30303
,20200-20203
,8545-8548
),监听外网Channel
和jsonrpc
端口允许外网通过SDK或API与节点交互。
# 下载最新预编译二进制
bash <(curl -s https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/release-2.0.1/tools/ci/download_bin.sh) -b release-2.0.1
# 构建FISCO-BCOS联盟链
$ bash build_chain.sh -e bin/fisco-bcos -l "127.0.0.1:4" -i
# 生成成功后,输出`All completed`提示
Generating CA key...
==============================================================
Generating keys ...
Processing IP:127.0.0.1 Total:4 Agency:agency Groups:1
==============================================================
Generating configurations...
Processing IP:127.0.0.1 Total:4 Agency:agency Groups:1
==============================================================
[INFO] FISCO-BCOS Path : bin/fisco-bcos
[INFO] Start Port : 30300 20200 8545
[INFO] Server IP : 127.0.0.1:4
[INFO] State Type : storage
[INFO] RPC listen IP : 0.0.0.0
[INFO] Output Dir : /Users/fisco/WorkSpace/FISCO-BCOS/tools/nodes
[INFO] CA Key Path : /Users/fisco/WorkSpace/FISCO-BCOS/tools/nodes/cert/ca.key
==============================================================
[INFO] All completed. Files in /Users/fisco/WorkSpace/FISCO-BCOS/tools/nodes