什么是FISCO BCOS generators
FISCO BCOS generator 是针对多机构组网,适用于多机构部署维护多群组联盟链的企业区块链部署工具。
1.1 企业部署面临的问题
之前的文章我们介绍了可以在5分钟内完成区块链部署的build_chain.sh脚本,但是在实际多机构生产部署时,由于各机构需要自己进行私钥管理、证书分发、群组管理信息、服务器资源分配等等操作,部署的协商过程往往是比较复杂的。
以下图为例:
在最开始阶段,各机构运维人员需要在本地初始化机构私钥、节点私钥,并向联盟链委员会(或证书颁发机构)获取链证书、机构证书和节点证书,从而获取节点的入网资格。
此时,每个机构已知的信息仅为机构内部分配的服务器信息。节点通信时,需要填写其他节点的P2P地址和端口号,因此运维人员一方面需要将本机构节点所在的IP地址告诉其他节点,并配置其他节点所在的服务器地址。
另一方面需要改变服务器网络策略,开放对应的权限,以便节点可以完成P2P通信。在完成服务器配置,节点信息配置之后,生成节点的配置文件夹。
同时,不同的节点可能处在不同的群组之中,因此需要加载不同的群组创世区块。群组创世区块需要填写初始节点的公钥信息,因此需要生成群组创世区块的机构收集对应群组节点的数字证书,并将生成好的群组创世区块发送给当前群组的对应节点所在的机构。
交互的本质是信息的不对等。可以看到,在生成证书、群组配置文件夹,和生成群组创世区块时,都需要机构内的运维人员与其他机构进行不同信息的交换。
1.2 企业部署联盟链的流程
为了满足上述部署过程中的需要,我们提供了面向企业间运维人员使用的部署工具 —— FISCO BCOS generator,制定了一套企业使用的部署流程规范,可以提高企业部署效率。
一般情况下,部署联盟链的流程总结如下:
- 证书颁发机构,初始化链证书
- 联盟链参与机构在本地生成机构私钥,请求本机构证书
- 各机构运维人员填写节点的IP、端口号等信息,在本地生成节点私钥,并获取节点证书
- 各机构运维人员交换节点连接信息、节点证书,生成群组创世区块
- 各机构运维人员生成节点配置文件夹,启动节点,完成组网
因此,从对等、安全、高效的角度出发,部署过程需要联盟链委员会、机构内运维人员需要对证书、节点连接信息、群组创世区块等进行交互。
FISCO BCOS generator 功能简介
generator的操作可以分为以下4个大类:
1、生成节点配置文件夹
generator根据不同需求,有两种生成节点配置文件夹的命令:
(1)、多机构对等部署,各自机构通过协商端口号、生成节点证书、交换证书、生成群组创世区块、生成节点配置文件夹的顺序,完成节点最终配置文件夹的生成,并启动节点,完成组网。
(2)、由单一机构生成,采用"one_click_generator.sh"脚本,各机构只需要填写节点ip、端口号,即可由某一机构一次性生成所有节点的配置文件夹。该机构将生成好的配置文件夹发送至对应机构,由该机构启动节点,完成组网。
注:生成节点配置文件夹的操作中,可以生成已有群组的节点配置文件夹。
2、生成群组创世区块文件
多群组架构中,每个节点会属于不同群组中。不同机构通过协商证书的形式,可以生成相应群组的创世区块,将其导入节点后,完成新群组的建立。
3、监控上报操作
FISCO BCOS generator 生成的节点配置文件夹中,提供了内置的监控脚本,用户可以通过对其进行配置,将节点的告警信息发送至指定地址。
通过配置监控服务,可以实现以下功能:
- 监控节点是否存活, 并且可以重新启动挂掉的节点。
- 获取节点的块高和view信息, 判断节点共识是否正常。
- 分析最近一分钟的节点日志打印, 收集日志关键错误打印信息, 实时判断节点的状态。
- 指定日志文件或者指定时间段, 分析节点的共识消息处理、出块、交易数量等信息, 判断节点的健康度。
4、其他操作
为了方便用户使用,FISCO BCOS generator还提供:生成相应证书、快速配置节点连接文件、下载fisco-bcos二进制、配置控制台、handshake failed检测等便捷操作。
开源工具构建需要大家共同的努力,FISCO BCOS generator欢迎大家针对不同需求提出改进建议,希望FISCO BCOS generator更好用、更易用、更快速、更清晰、更标准。
FISCO BCOS generator的设计思路
FISCO BCOS generator从现有运维操作角度出发,根据灵活、安全、易用、对等的原则,从不同机构对等部署、新建群组的角度考虑,针对上述问题设计了解决方案。
针对同一个证书的联盟链,可以快速配置链内的多个群组,满足不同企业的不同业务需求。
不同机构间通过协商节点证书、IP、端口号等数据的模式,填写配置项,每个机构都可以在本地生成不含节点私钥的节点配置文件夹,节点的私钥可以不出内网,即使节点配置文件丢失,也不会泄露链上的任何信息,同时也会防止恶意攻击者伪装节点。使用这种方式,在保证节点可用的同时,也保护了节点的安全性。
用户通过协商生成创世区块,生成节点配置文件夹后,启动节点,节点会根据用户配置信息进行多群组组网。
「群提问」
---
Q 三皮:各机构运维人员填写节点的IP,这个IP是不是公网IP? A zkx:如果是连接外部的,是公网ip,P2P端口。
FISCO BCOS的代码完全开源且免费
下载地址↓↓↓
https://github.com/FISCO-BCOS...