v3.3.0

新增

  • 块内分片:将合约分组,不同组的交易调度到不同执行器执行,片内DAG调度,片间DMC调度

  • 权限动态可配:可在运行时动态关闭/开启权限功能

  • SDK支持硬件加密机:SDK支持通过加密机运行密码学算法

  • 网关入限速:通过配置文件 (config.ini) 控制入流量大小

  • Merkle树缓存:提升取交易证明的性能

  • 网关模块支持多CA:不同的链可共用同一个网关模块转发消息,在目录下配置多个ca即可。

修改

  • 优化各种细节,提升节点性能

  • rpc的交易接口返回input字段:可在配置文件中控制是否需要返回

修复

  • 修复使用3.3.0版本二进制将链版本号从3.0.03.1.0及以上的版本触发的BFS不可用、链执行不一致的问题

  • 修复P2P消息解析异常,导致网络断连的问题

  • 修复StateStorage读操作时提交,导致迭代器失效的问题

  • 修复Pro版本扩容操作没有生成节点私钥文件node.pem,扩容失败的问题

  • 修复交易回执返回时,回执hash偶现不正确的问题

兼容性

  • 历史版本升级

    需要升级的链的“数据兼容版本号(compatibility_version)”为如下版本时:

    • 3.3.x:数据完全兼容当前版本,直接替换二进制即可完成升级

    • 3.2.x、3.1.x、3.0.x:支持通过替换二进制进行灰度升级,若需使用当前版本的新特性,需升级数据兼容版本号,操作见文档

    • 3.0-rc x:数据不兼容,无法升级,可考虑逐步将业务迁移至3.x正式版

    • 2.x:数据不兼容,2.x版本仍持续维护,可考虑升级为2.x的最新版本

  • 组件兼容性

推荐版本 最低版本 说明
Console 3.3.0 3.0.0
Java SDK 3.3.0 3.0.0
CPP SDK 3.3.0 3.0.0
Solidity 0.8.11 最低 0.4.25,最高 0.8.11 需根据合约版本下载编译器(控制台)
WBC-Liquid 1.0.0-rc3 1.0.0-rc3
WeBASE 3.0.2 3.0.2
WeIdentity v3.0.0-rc.1 v3.0.0-rc.1

升级方法

该操作仅支持将3.x版本升级为本版本,不支持3.0-rc或2.x的升级。

查询数据兼容版本号(compatibility_version)

控制台进行查询,如当前返回的版本为3.0.0

[group0]: /apps>  getSystemConfigByKey compatibility_version
3.0.0

替换节点二进制

需将所有节点的二进制逐步替换为当前版本。为了不影响业务,替换过程能够以灰度方式进行,逐个替换并重启节点。替换过程中,当前的链仍然会以旧的数据兼容版本号的逻辑继续执行。当所有节点二进制替换完成并重启后,需用控制台修改数据兼容版本号为当前版本。

设置数据兼容版本号(compatibility_version)

控制台设置数据兼容版本号,如当前版本为3.3.0。

[group0]: /apps>  setSystemConfigByKey compatibility_version 3.3.0
{
    "code":0,
    "msg":"success"
}

注:若开启权限治理功能,需要使用 setSysConfigProposal 命令

设置成功,再次查询,得到当前版本已升级为3.3.0

[group0]: /apps>  getSystemConfigByKey compatibility_version
3.3.0

当前链已经完成升级,至此,链开始以新的逻辑继续运行,并支持了新的特性。