CITA v0.18 Release

我们很高兴地宣布:CITA v0.18 发布了!

我们在这一个月的开发中,对一些可能出现的异常情况进行模拟,破坏性测试,使得在增加新功能的同时,仍然能够提供更可靠、稳定的服务。

就 v0.18 版本的新功能而言,我们进一步完善了侧链功能,增加了侧链退出机制[1],增加了两个 RPC 接口用来交叉验证侧链数据;增加了批量交易[2]的系统合约,在对其他合约进行多次调用并且调用顺序需要有严格顺序的时候,可以使用这个系统合约,能够保证交易的顺序与预期完全一致;经过对依赖的梳理,我们用 keccak [3]替换掉了 C 库的 sha3 算法;国密算法库[4]也替换成了性能更好、纯 Rust 实现的 libsm。

如何从 v0.17 升级到 v0.18?

1、相对于 v0.17,v0.18 系统合约有修改,用户可以选择只升级 binary,即替换发布目录下 bin 文件夹的所有可执行文件
2、scripts/config_tool/config_example/auth.toml 增加 wal_enable,默认值为 false
3、已经存在的节点,在每个节点的 auth.toml 配置文件中加入一行 wal_enable = false

ps. 这一期版本的名字来自美味的家常炒饭-蛋炒饭。enjoy~(◕‿◕✿)

Changelog

— Executor —

  • [fix] 修复潜在的死锁、多线程数据不一致问题
  • [fix] 修复状态机状态归位问题
  • [fix] 修复 Transaction decode 逻辑错误
  • [fix] 修复黑名单无法根据 token 自动移出问题
  • [optimize] 增加监听 chain 状态消息
  • [feature] 修改部分日志等级
  • [fix] 增加 Executor 状态与 Chain 不一致时的自动同步操作
  • [optimize] 优化 Executor 与 Chain 状态同步速度
  • [feature] 增加state证明的获取和验证

— Network —

  • [refactoring] 重构同步逻辑
  • [feature] 输出状态日志
  • [fix] 当 Network 配置文件热更新的时候,关闭与被删除节点的连接

— bft —

  • [fix] 修复 proof 临时保存的错误

— Auth —

  • [feature] Transaction 的 value 字段验证修改为必须是 U256 或者是 [u8;32],否则返回无效值错误
  • [fix] Transaction 的 to 字段验证更加严格,传入非法参数,将直接返回错误

— RPC —

  • [feature] 将 JSON-RPC 的类型定义库分出来,方便客户端使用

— All —

  • [feature] 替换了 keccak 算法库
  • [feature] 替换了国密算法库
  • [optimize] 删除无用的代码和依赖
  • [optimize] 增加 CI 内容并优化

— System Contract —

  • [feature]侧链管理合约加入 state 证明的处理流程
  • [feature]支持批量交易

— doc —

  • [feature]更新侧链文档,增加侧链退出的描述

源码地址:

Ref:
[1]https://docs.nervos.org/cita/#/crosschain/crosschain_contract_example
[2]https://docs.nervos.org/cita/#/system_management/batch_tx
[3]https://keccak.team/keccak.html
[4]https://github.com/cryptape/libsm
[5]https://docs.nervos.org/cita/#/crosschain/crosschain_contract_example

1 Like