部署区块链¶
开发(体验)环境¶
开发环境部署是采用一键部署脚本 build_chain.sh
在单机上快速部署一条 4 节点的 FISCO-BCOS 联盟链,通过控制台(console)或可视化界面(WeBASE-Front)完成合约的编译,部署,调试和调用等操作。
主要操作步骤:
# 下载一键脚本,添加执行权限
curl -LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/build_chain.sh
# 生成节点配置文件,如果使用国密,再加上一个 -g 参数
bash build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545
# 启动节点
bash nodes/127.0.0.1/start_all.sh
关于开发部署工具使用,请参考:开发部署工具
企业环境¶
对于企业部署,官方提供了两种部署方式和三种部署工具来满足现实场景中,多机构,多群组部署的需求。
- 部署方式
部署方式 | 特点 |
---|---|
单机构部署 | 单机构部署所有节点(包括其他机构),适用于一个机构部署所有节点。 由于密钥统一由一个机构生成,有泄漏风险 |
多机构对等部署 | 多机构对等部署,适用于多机构各自部署。每个机构各自部署自己的节点, 机构私钥不出内网,可以保证各机构密钥的安全 |
- 部署工具
部署工具 | 支持的部署方式 | 适用场景 | 启动方式 | 备注 |
---|---|---|---|---|
build_chain.sh | 单机构部署 | 单机构部署所有节点 | 脚本命令行 | 开发部署工具 |
WeBASE-Docker | 单机构部署 | 单机构部署所有节点 | Docker | 使用 Dokcer 启动, 同时包含一个 WeBASE-Front 应用 |
generator(推荐) | 单机构部署 多机构对等部署 |
多个独立机构联盟 | 脚本命令行 | 企业级部署使用 |
根据当前部署的场景和环境,选择合适的部署方式已经部署工具。
重要
- 在部署企业生产环境之前,一定要仔细阅读 生产环境建议 部分,特别是 备份 说明,一定要做好配置文件的备份,降低故障恢复的成本和不能恢复的风险
- WeBASE-Docker 部署方式,跟使用开发者部署工具大致相同。通过 build_chain.sh 生成节点配置文件。启动的时,通过手动执行 docker run 命令启动一个 Docker 容器
- WeBASE-Docker 部署方式,在启动后,会同时启动一个 WeBASE-Front 应用,可以直接通过浏览器查看所有群组,节点的共识状态,块高,视图等信息
开发者工具部署 和 WeBASE-Docker¶
开发者工具部署 和 WeBASE-Docker
两种方式的部署方式大致相同,使用相同的方式生成节点的配置文件,仅仅是启动节点时,使用的启动命令不一样。
主要操作步骤:
- 安装依赖
- 使用
build_chain.sh
,安装 FISCO-BCOS 依赖 - 使用
WeBASE-Docker
,安装 Docker 环境
- 使用
- 下载
build_chain.sh
一键脚本 - 新增机构和群组关系
ip.conf
配置文件 - (可选) 编译源码,获取二进制可执行程序
- 如果需要使用带有调试信息的可执行程序,自行编译源码,获取可执行程序
fisco-bcos
- 如果使用 WeBASE-Docker 容器方式启动节点,跳过
- 如果需要使用带有调试信息的可执行程序,自行编译源码,获取可执行程序
- 执行
build_chain.sh
脚本,使用-f ip.conf
参数,生成节点配置- 如果使用自行编译的带调试信息的可执行程序,需要加上
-e /path/to/excutable/fisco-bcos
参数
- 如果使用自行编译的带调试信息的可执行程序,需要加上
- (可选) 是否使用落盘加密
- 拷贝生成的配置文件到相应的物理主机,注意使用 云磁盘 存放节点目录
- 登录每台物理主机,执行启动脚本,启动节点
- 如果使用 WeBASE-Docker,手动使用
docker run
命令启动容器
- 如果使用 WeBASE-Docker,手动使用
- 验证部署结果,请参考:验证部署结果
- 备份生成的配置文件
详细的操作步骤,请参考:开发者工具 和 WeBASE-Docker 部署详细操作
提示
- 如果使用了 WeBASE-Docker 方式部署,由于 Dokcer 容器已经启动了一个 WeBASE-Front 应用,所以可以 直接使用 WeBASE-Front 方式验证部署结果
运维工具部署(generator)¶
FISCO-BCOS generator 是一个基于 Python 实现,为企业用户提供了部署、管理、监控多机构多群组联盟链的便捷工具。
generator 同时支持 单机构部署 和 多机构对等部署 两种方式。
关于 generator 工具的使用,请参考:generator 运维部署工具使用
根据部署文档,完成部署后,验证部署结果,请参考:验证部署结果。
单机构部署¶
单机构部署是指在联盟链部署时,由协商的其中一个机构来生成所有的节点配置。
关于 generator 部署工具在单机构部署时的操作,请参考:单机构部署文档
ansible-for-fisco-bcos
ansible-for-fisco-bcos
是 FISCO-BCOS 开源社区,开发者基于 generator
和 ansible
封装的一个企业级的快速部署工具。在部署 2 群组 3 机构 6 节点的环境,可以在 30 秒内(不包括下载时间)生成配置,极大简化了部署难度,避免了手工配置容易发生的错误。
关于 ansible-for-fisco-bcos
工具的使用,请参考:ansible-for-fisco-bcos
验证部署结果¶
在部署操作执行完成后,不管是开发环境,还是企业环境,都可以使用相同的验证方式来检查部署的结果是否成功。
验证部署结果主要有两种方式:
- check_seal.sh 脚本
- 执行
check_seal.sh
脚本,脚本会通过 JSON-RPC 请求获取节点的块高和 view,每分钟获取一次,跟上一次比对,如果相同则共识异常,如果不同,共识状态正常
- 执行
- WeBASE-Front
- 部署 WeBASE-Front 应用,通过 Web 页面来查询部署结果
提示
- 如果使用了 WeBASE-Docker 部署方式,由于 Docker 镜像自带了 WeBASE-Front 镜像,就可以通过浏览器通过节点列表页面直接验证
check_seal.sh 脚本验证¶
使用脚本验证部署节点的共识状态,详细的脚本文件和使用方法,请参考:检查节点是否共识脚本
可视化 WeBASE-Front 验证¶
可视化验证,需要部署 WeBASE-Front 应用,通过页面来查看部署的结果,请参考:部署 WeBASE-Front