v3.12.0

新增

  • Web3 兼容增强:新增配置项 feature_evm_address,用于控制 Web3 合约地址计算逻辑;新增对 EOA 账户的 nonce 递增检查

  • 时间戳单位适配:新增配置项 feature_evm_timestamp,用于将 Solidity 合约交易内的时间戳单位由毫秒改为秒

  • rPBFT 共识新增“轮换选举权重”能力,支持按权重选出共识节点

  • RPC 新增 rpc.enable_ssl 配置项,用于替代原有的 rpc.disable_ssl

修复

  • 修复 rPBFT 在流水线共识场景下的轮换失败问题:VRF 输入由 prev block hash 改为 block number(对应 bugfix_rpbft_vrf_blocknumber_input 开关)

  • 修复游离节点可将交易广播至共识节点、观察节点切换为 leader 后已落盘交易被拒绝的问题

  • 修复部分 Web3 JSON-RPC 接口在收到错误十六进制输入时导致节点 coredump 的问题;修复落盘加密不可用的问题

补丁版本

  • v3.12.1(2024-11-25)

    • 网关新增 SSL server/client 验证模式配置;当配置为 verify_none 时生成随机 p2p 节点 ID,并修复相应握手异常

    • 修复 p2p 消息长度校验导致的 coredump 问题;Web3 JSON-RPC 区块响应中补充更多字段信息

    • 修复 Docker CI 构建失败与发布流程问题

  • v3.12.2(2024-12-20)

    • RPC 区块响应编码修复;执行器 nonce 兼容性修复

    • CI 补充 Ubuntu 产物上传,并修复 Windows cppsdk 构建问题

  • v3.12.3(2024-12-27)

    • 修复执行器新地址生成问题

    • 修复 P2P 端交易签名长度校验与 sender 字段处理问题

    • 修复 Web3 RPC 交易返回结构问题

  • v3.12.4(2025-01-21)

    • 修复 build_chain.py 脚本的 CDN 问题

    • 修复 RPC 过滤器在 ranges 场景下的边界问题

    • 版本号提升与发布流程脚本更新

兼容性说明

兼容版本

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

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

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

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

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

实验功能

效果:通过feature开关控制实验功能的开启

操作:升级节点可执行程序后,通过控制台命令setSystemConfigByKey <feature名> 1 开启对应实验功能,具体操作见文档升级方法部分

注意事项:

  • feature操作不可逆,打开后不可关闭

  • 需确认所有可执行程序版本相同后,再进行feature开启操作

组件兼容性

各组件(控制台、SDK、WeBASE 等)的推荐版本与最低版本,以 兼容性说明文档 为准。

升级方法

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

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

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

[group0]: /apps>  getSystemConfigByKey compatibility_version
3.11.0
替换节点二进制

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

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

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

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

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

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

[group0]: /apps>  getSystemConfigByKey compatibility_version
3.12.0

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