FISCO BCOS迎来《区块链系统部署运维实践文档》

共 2882字,需浏览 6分钟

 ·

2021-03-14 15:27

一个区块链项目的研发,大体需经历四个阶段的生命周期:创建、研发、运行、销毁。其中,运行是整个生命周期中最核心、时间跨度最长的阶段,重要性不言而喻。要保证项目稳定运行,离不开完善的部署运维

然而,在实际部署及后期运维过程中,关于区块链系统的“十万个为什么”随之而来:
  • 如何预估整个项目所需的硬件资源?如何避免频繁的扩容操作?

  • 选择哪种部署方式和工具?有什么注意事项?

  • 部署后,如何测试链的整体性能?

  • 如何启用诸如落盘加密、权限控制等高阶特性,以保证系统安全?

  • 如何更换现有节点的 IP 地址?

  • 某台主机因为某些原因挂掉后,如何迁移到一台新的主机中去?

  • 如何升级节点,以便使用新版本的只读接口?

  • 如何新增机构?如何对某个机构新增节点?

  • 如何进行证书管理和监控,防止证书过期?

    ......


微众银行区块链积极听取开源社区意见和建议,基于多年研发FISCO BCOS底层开源平台的经验,总结应用落地实践过程中,有关系统部署和运维实践的操作指南,沉淀了一套《区块链系统部署运维实践文档》,百科式地为上述问题提供操作指引。

作为FISCO BCOS开源社区重要的发起者和推动者,微众银行区块链持续参与开源生态共建,现已将文档全部开源回馈社区。欢迎社区共同修正、完善,协力打磨更极致顺滑的开发体验。

文档地址
https://fisco-bcos-devops-docs.readthedocs.io/


结构上,文档从部署前、部署时、后期运维三个阶段,对区块链系统运维操作进行概括和总结,并针对区块链运维场景的常见问题,提供流程化的操作指引和解决方案。

  部署前

1)统一操作规范

对于运维中的一些常用操作,推荐开发者根据自身的环境,制定一个统一的操作规范,有助于最大化减少操作失误,降低操作风险。

针对操作系统环境,做好常见的安全配置,制作统一系统镜像,不仅可以提高部署效率,提升安全系数,还可有效地降低因系统环境差异而出现问题的概率。

本文档也列出了一些基本的操作规范和常见的安全配置,供大家参考。

2)资源预估

在常见的应用服务系统中,由于有负载均衡和服务发现的机制,所以在扩容时,往往只需要启动新服务节点即可。但是,在区块链系统中,由于有准入机制的限制,节点的扩容相对复杂。

比如,在某个机构需要新增一个节点时,需要使用机构的私钥签发节点准入证书;新增某个机构时,需要用到联盟私钥对新机构签发机构证书;对于新增节点,还要确保新增节点和现有节点之间网络连接配置的正确性。

因此,在部署前,进行合理的资源评估,可以降低后期的扩容频率,且能使系统在有效承载现有业务量的同时,应对后续一定时间内的业务增长。

进行资源评估时,开发者可以参考文档中列出的主机配置和 Caliper 的压测数据,评估自己所需的硬件资源。

下图是使用 4 台 腾讯云 ECS 主机(8 核 16 G、千兆网卡、150MB/s 磁盘),在 CentOS 7.3 系统下的测试数据


  部署

1) 准备

由于区块链具有防篡改的特性,一旦区块链系统部署成功,启动运行后,某些配置将无法进行修改,包括切换加密算法、增加落盘加密等。

因此,在实际部署操作前,建议开发者根据各自场景做好前期准备和选型,如版本、落盘加密、国密、源码编译等。

2) 部署

在实际的企业级区块链部署中,根据机构私钥的安全性可以分为单机构部署多机构对等部署两种场景,可根据实际场景选择部署。
  • 单机构部署:统一生成联盟、机构、节点的私钥和配置文件,部署快捷、方便,但存在私钥泄漏的风险。

  • 多机构对等部署:各机构生成自己的私钥,然后由联盟委员会签发机构证书,节点配置亦由各机构自主生成,私钥不易外泄,安全性更高,但部署相对繁琐。


在部署工具方面,FISCO BCOS 官方提供了两套部署工具:开发部署工具(build_chain.sh)和运维部署工具(Generator)。社区开发者 @海滨@无缺 等小伙伴组建的 FISCO BCOS 自动化工具研发兴趣小组,也贡献了一套基于 Ansible 封装的企业级部署工具(ansible-for-fisco-bcos)。在此对他们表示感谢!

对于不同的部署工具,请各位开发者根据自己的需求场景,选择相应的部署方式和部署工具进行部署。

3) 监控

引用一句运维行业的老话:“无监控、不运维”。完善的监控系统可以在事前及时预警,也可以在事后提供详实的数据,用于追查问题,有效缩短异常的平均修复时间。

监控最重要的事情在于明确监控指标。在区块链系统中,监控的指标主要包括主机状态、节点进程、共识状态、错误日志、告警信息。

对于主机状态的监控,推荐使用云平台或者通用监控服务来完成,包括CPU、内存、磁盘 IO、磁盘使用率、网络带宽等。

至于其它指标,包括区块链运维中最核心的指标——共识状态,可使用 FISCO BCOS 提供的 monitor.sh 脚本工具进行监控。

4) 验证

在部署和监控的操作完成后,需要对整个部署中的所有操作进行验证,检查部署的结果。如果遇到问题,可以参考文档的指引进行问题排查。

5) 备份

在区块链系统中,椭圆曲线算法被大量使用,所以,部署成功后,一定要对生成的节点配置做好备份。否则,一旦节点的配置丢失,几乎没有找回的可能,也意味着,该区块链系统可能再也不能用了。

  后期运维

一旦部署完成,成功运行起来,并且验证成功后,也就进入到项目生命周期中最重要的阶段:运行阶段,这也意味着整个系统进入后期运维阶段。

在文档的运维管理部分,罗列了区块链运维中的常见操作:压力测试安全控制机构管理群组管理节点管理节点升级节点迁移证书管理磁盘扩容等。

使用过程中,如你发现文档有任何遗漏或不足,欢迎大家提交Pull Requests进行校正和补充。

  开源文档仓库

GitHub
https://github.com/WeBankBlockchain/FISCO-BCOS-DevOps-Docs
Gitee :  
https://gitee.com/WeBankBlockchain/FISCO-BCOS-DevOps-Docs

欢迎参与本文档的修改和完善:
  • 如果文档对你有帮助,欢迎点亮我们的小星星(点击项目左上方Star按钮)。

  • 提交Pull Requests,进行修订和完善。

  • 如果发现文档存在安全漏洞,可通过以下地址上报:

    https://security.webank.com/ 

  • 如果遇到问题,可在公众号对话框回复【小助手】,进入微众银行区块链交流群咨询。




FISCO BCOS的代码完全开源且免费
下载地址↓↓↓
https://github.com/FISCO-BCOS/FISCO-BCOS


浏览 116
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报