作为一个友好的、功能丰富的区块链中间件平台, WeBASE致力于提高区块链开发者的运维与管理效率。其中一大优化便是在区块链节点的运维部署上,逐步完善了对Docker容器化的支持。
Docker容器化是一种可以大大简化部署步骤的高适配性技术,只需要一次性配置好容器的环境,就可以在其他机器中轻松复用。社区不少用户倾向于使用快捷的一键部署进行链的安装,同时也有用户反馈希望WeBASE支持容器化部署,以支持Docker的“一键部署”。
基于用户需求,我们把FISCO BCOS节点和WeBASE-Front节点前置服务打包到一个Docker镜像中(Image),用户只需要拉取镜像并挂载配置即可轻松运行节点和节点前置服务,省去了大量配置环境的时间。同时,WeBASE在BaaS(Blockchain-as-a-Service)云平台的场景中,结合Kubernetes对该节点镜像进行运维部署管理,管理节点变得十分高效。
本文总结了使用Docker部署节点的经验,下面我们使用FISCO BCOS节点结合WeBASE-Front的Docker镜像 fiscoorg/fisco-webase,开始今天的容器化搭链之旅。
部署链
首先我们可以看一下直接使用节点二进制启动节点与使用Docker启动节点的区别:
使用节点二进制:bash start.sh 启动节点,读取目录中的节点配置与证书
WeBASE-Docker 部署使用 docker run 命令,通过 -v 参数挂载配置文件与证书到容器内后启动节点
实际上,用户使用节点二进制文件部署节点与使用Docker镜像部署节点的使用方式十分类似,而通过Docker容器化部署链节点的过程主要包含以下步骤:
通过build_chain生成链配置文件与链节点证书
通过gen_node_cert脚本与机构证书生成新节点证书,拷贝并修改节点配置文件,完成扩容新节点
生成配置
我们下载建链脚本后,以生成一个 127.0.0.1 的国密节点为例,输出的节点目录为nodes。以 -d docker模式生成,这样脚本不会下载FISCO BCOS节点的二进制文件,仅生成证书与配置文件。
curl -#LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/raw/master/tools/build_chain.sh && chmod u+x build_chain.sh
bash build_chain.sh -f 127.0.0.1:1 -p 30300,20200,8545 -g -o nodes -d
当构建完成后,我们可以看到"All completed."的提示语。我们可以查看nodes/127.0.0.1目录(以node0为例)。
node0目录:
节点的config.ini配置文件