![]()
本文将主要介绍FISCO BCOS 2.0节点的配置文件组成以及设计思路。
FISCO BCOS节点的配置文件由主配置文件和群组配置文件构成。配置文件统一使用ini格式。
![]()
如上图所示,一个典型的FISCO BCOS 2.0节点目录下,除可执行程序外,一般会包含主配置文件config.ini、通常位于节点conf目录下的群组配置文件,以及证书相关文件。这些文件的主要作用如下表:
![]()
主配置文件包含的配置项说明请参考:
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/configuration.html#config-ini
“
问题来了,这么多配置文件,都是ini格式,为什么不合并到一个文件呢?
这就要从FISCO BCOS 2.0群组架构说起了,当前群组的实现是使用单进程多线程模式,为了最高效地利用资源,必然会有一些模块被多个群组共用,例如网络模块、日志模块,所以我们把公共模块的配置都放在了主配置文件config.ini中,包括JSON-RPC和Channel监听的IP和端口、P2P监听的IP和端口、节点SSL连接时使用的私钥和证书、日志模块的配置、节点黑名单的配置等。
对于群组来说,由于每个群组的配置选项只是参数不同,所以为了便于区分和管理,将群组配置放置在了单独的.genesis和.ini文件中。我们将要求群组内所有节点一致的配置项统一放在genesi文件中,把其他不要求全局一致的配置项放在了群组的ini文件中。
其中,genesis文件中的配置项,包括共识算法、初始共识节点、状态类型、交易gas限制、区块最大交易数、群组ID等。ini文件中的配置项,包括共识调优、存储后端DB类型、交易池大小等。
群组genesis文件包含的配置项请参考:
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/configuration.html#id9
群组ini文件中包含的配置项请参考:
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/configuration.html#id13
“
问题又来了,genesis文件中的配置要求要全局一致,那如果想改某个配置项怎么办呢?
这就需要借助于系统管理合约了,FISCO BCOS 2.0通过一套系统管理合约来实现需要群组内一致的配置项管理,借助于交易来达成群组内配置一致。如下表所示:
![]()
针对这套系统配置合约,控制台提供了相应的指令来帮助用户修改相关配置。
参考:
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/
manual/console.html#id19
#举个例子#
假设要为群组1新增一个共识节点,那么操作步骤如下:
生成新节点的私钥,签发证书
从已有节点拷贝config.ini文件、group.1.genesis文件和group.1.ini文件到新节点目录
修改拷贝的config.ini文件中RPC,P2P的IP和端口配置
启动新节点
使用群组1节点的控制台,通过指令addsealer,将新节点作为共识节点加入群组1
详细的操作步骤请参考:
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/node_management.html
欢迎更多朋友加入FISCO BCOS官方技术交流群,参与更多话题交流。(进群请长按下方二维码识别添加小助手)
![]()
ID:fiscobcosfan
![]()
FISCO BCOS的代码完全开源且免费
下载地址↓↓↓
https://github.com/FISCO-BCOS/FISCO-BCOS
![]()