如果已使用旧版本搭建好网络,现在fisco-bcos升级新版本之后,想使用新版本的V2连接协议功能,需要升级节点身份配置、升级系统合约、升级网络。
注意
1. 网络中不能出现使用不同连接通讯协议版本的节点
2. 新版本的配置中默认启用V2版本连接通讯协议功能
3. 如果旧配置的网络需要使用新版本,需要对网络进行升级,步骤请参看下文的”网络升级“
升级过程,请保持网络正常运行状态,不停止节点。
- 参考《FISCO-BCOS 使用文档》中的步骤,生成链证书、机构证书、及为每个节点生成节点证书相关文件,并将其拷贝到每个节点的data目录下。
- 为每个节点新建 bootstrapnode.json文件,相应字段填上其中一个节点的IP和p2p端口,示例如下:
{"nodes":[{"host":"127.0.0.1","p2pport":"30303"}]}
将systemcontract/upgradeV3目录下的文件拷贝到旧网络下的systemcontractv2目录,并进入systemcontractv2目录,执行
babel-node upgradeV3.js
如果执行过程提示无法找到web3lib/config.js ,请将web3lib目录拷贝到旧网络跟目录下和systemcontractv2保持同级
注意:升级系统合约之后,systemcontractv2目录下的tool.js工具脚本已失效,请换用toolV3.js
接着,对每个记账节点都执行以下操作,将其身份注册到系统合约中。
babel-node toolV3.js NodeAction register 节点目录/data/node.json
- 修改每个节点的config.json中的ssl配置项为2
- 将每个节点的fisco-bcos执行程序升级为新版本
- 所有节点,全部重启。
注意:为避免出现未预期结果,节点重启期间必须停止发送交易,待全部重启之后升级完成再发送
至此,网络升级成功。
节点升级之后,与该节点相连的SDK客户端,均需要升级证书。
假设agencyA机构下的SDK客户端需要升级,则需要执行:
./sdk.sh agencyA sdk
并将所生成的sdk目录下所有文件拷贝到SDK端的证书目录下。