版本迭代-长安链·ChainMaker ChangeLog

v2.3.3

1. AC模块重构,详细梳理权限配置体系及完善;
2. 支持Gas代扣使用系统合约进行指定Payer;
3. 跨合约调用流程优化,去掉验签等重复性操作;
4. 增加交易池满时是否广播交易的开关控制;
5. 增加共识节点校验区块时间戳范围,以控制节点间时间一致性;
6. RpcServer增加同步接口,可同步返回交易执行结果(非异步查询);
7. cmc链配置命令优化,支持同时配置多个配置项;
8. RpcServer支持空合约名匹配所有合约;
9. DockerGo合约SDK新增获取合约地址接口;
10. 存储增加BloomFilter能力,降低不存在value的查询消耗;
11. 同步模块支持指定节点同步,提高同步效率;
12. 修复MySQL模式下,合约名带"-"报错的问题;
13. 修复磁盘性能较差导致读取共识WAL超时的问题;
14. 优化lws磁盘不足时的错误提示;
15. 修复多链环境下停止某条链时,网络不能正常stop的问题;
16. 修复grpc服务器重启后,sdk-go连接不上服务器的问题;
17. 优化DockerGo时间统计;
18. 修复DockerGo配置解析错误的问题;
19. 优化DockerGo默认grpc buffer size值;
20. 优化solidity合约执行效率,串行调整为并行;
21. 修复solidity合约地址以"0"开头导致无法被跨合约调用的问题;
22. 修复solidity合约整型转换问题;
23. 修复solidity创建只有构造方法的合约时越界访问的问题;
24. 删除从节点重建DAG并进行比较的逻辑;
25. 优化调度算法,对锁粒度进行优化;
26. 优化存储写入配置项,调整write_buffer_size默认大小;
27. 修复Commit时AdditionalData并发panic的问题;
28. 修复Store打开文件句柄泄露问题;
29. 优化网络模块打印,防止磁盘打满;
30. 修复tikv迭代器操作关闭后导致整个连接不可用的问题;
31. 修复MaxBFT长时间高压运行导致OOM的问题;
32. 修复MaxBFT世代终止视图计算错误的问题;
33. 修复Raft共识落后数据较大时重启,小概率不能重新加入共识的问题;

v2.3.2

新增底链支持归档中心功能 
新增Gas代扣功能 #(交易新增payer字段,扣除payer的gas)
新增Gas费用可配置功能 #(可通过bc.yml配置文件或发生交易修改)
新增EVM新指令支持
新增vm-engine GRPC消息大小可调整功能 #(从固定4M调整成可配置,包括链和合约SDKv2.3.4分支)
新增EVM国密验签功能
新增查询多签状态返回值截断功能 #(安装合约多签可不返回合约源码,减少查询结果大小)
新增TBFT一致性引擎广播时间间隔可配置功能
新增网络断开后重试机制调整,最多间隔10分钟,最长90days功能
新增升级合约的权限支持只有合约创建者可升级功能 #(可通过bc.yml配置文件或发生交易修改)
新增恶意交易黑名单功能 #(加入黑名单的交易,被查询时,某些字段将被屏蔽。可通过bc.yml配置文件或发生交易修改)
修复双花问题 # (多节点中重复交易检查失败)
修复EVM跨合约调用失败问题 #(跨合约调用时读写集没有传递,跨合约调用失败结果没有压栈的bug)
修复多链高并发情况下vm-native生并发问题
修复同步模块时间配置,时间单位错误问题
修复节点投票达到quorum进入到新的共识阶段,仍然广播本节点生成的投票
修复Raft换主后不发交易,再换回原来主节点后,有一定几率不出块的问题
修复PK和PWK下批量交易池对批次签名只验签不校验principal的问题 # (未识别同步节点)
修复提交block时并发修改导致存储marshal报错的问题
修复存储区块时断电并发写原子性的问题
修复断电/崩溃后,恢复最新状态时recover跨bf读的问题
修复高并发时订阅协程泄漏导致OOM问题
优化docker-go跨合约调用性能 #(取消跨合约调用时加载被调用合约)
优化读Wal超时控制,读区块超时控制 #(磁盘性能较差时)
优化Net模块在节点启动时同步速度
优化Net模块goroutine数量管理
优化快速同步交易校验速度
优化存储写时交易防重检查

v2.3.1

新增TBFT共识并行签名加速功能
新增共识模块启动条件增加区块高度校验功能
新增共识选举跳过落后节点功能
新增多签成功后可手动触发功能
新增已冻结合约可以升级功能
修复合约接口返回值错误:其他虚拟机跨合约调用docker合约时,sender接口未能正常返回发起调用的合约地址
修复快速同步节点query go合约,出现bad contract问题
修复vm-engine在合约安装过多lru错误问题
修复vm-engine手动重启问题
修复通过多签进行合约安装,未扣gas费的问题
修复安装合约失败不可再次安装问题
修复系统合约中含有随机性问题
修复PK模式下相关权限问题
修复go19版本兼容问题
修复高并发时pb反序列化问题
修复TBFT节点退出时未Unregister导致msgbus消息堆积问题
修复TBFT对某节点反复添加、移除共识节点导致共识列表查不到该节点信息问题
优化增量DB响应速度
优化批量交易池过期时间检查
优化高性能模式下网络连接
优化网络发送效率
优化添加某些模块的慢日志功能
优化日志输出级别及数量
完善EVM预编译合约

v2.3.0

新增流水线共识算法:MaxBFT正式版
新增SDF接口硬件加密机支持
新增liquid中继功能
新增liquid NAT穿透(NAT traversal)功能
新增SDK-Go提供Gas预估功能
新增交易池模式:normal、batch
新增交易池新特性(Dump、Recover、Query、Retry机制、Clean机制)
新增native合约添加地址功能,可通过地址可查询系统合约
新增合约批量getState接口
新增同步模块提供主动关闭/重启请求服务的功能
新增查询接口:查询当前权限列表
新增整个区块在一笔交易中统一扣费
新增各模块日志可独立配置
新增国密TLS双证书体系
新增跨不同语言的合约调用
新增docker go合约SDK支持StoreMap
新增创建合约时除使用name进行存储合约外,同时生成合约地址并按地址存储
新增各合约语言的示例合约
新增CMC工具执行结果可选择显示为utf-8格式字符串(默认是base64编码字符串)
重构TBFT,独立TBFT共识仓库,优化TBFT消息机制
重构docker-go虚拟机引擎
重构内部模块回调机制
重构项目结构调整,所有个人Fork的第三方包迁移到工蜂上
优化同步模块性能,默认快速同步并且不需要进行交易查重
优化共识verify阶段增加多交易时间戳的超时校验
优化默认地址格式兼容以太坊
优化solidity合约revert时可携带合约预定义的错误message
优化取消solidtiy合约的method检查
优化TBFT可去除含随机函数合约交易
优化SDK和cmc查询区块和交易时支持截断长度太长的Value
优化docker-vm-go初始化函数扣费计算改为固定值
优化docker go合约内日志输出接口增加级别功能
优化docker go容器支持重启
优化vm-engine合约虚拟机引擎性能
优化跨合约调用进程复用
优化sdk-go、sdk-java同步获取交易结果方式,从轮询改为订阅
优化存储模块增加Slow Log
优化getstate时间的统计
优化flower节点验证DAG一致性逻辑
修复交易失败不扣除gas费问题
修复ac模块自定义权限删除不生效问题
修复wasmer不支持windows问题
修复跨合约调用循环调用时,导致阻塞的问题
修复创建合约报合约名非十六进制字符串问题
修复TBFT重启,导致共识状态不对,共识卡住的问题
修复TBFT删除节点可能导致panic的问题
修复查询不到带读写集区块的问题
修复windows启用文件系统存储失败问题
修复部署合约与跨合约调用的事件丢失问题
修复CA模式下gas充值问题
修复rust合约重复升级一个合约1000次以上,会有一定概率出现panic异常的问题
修复tbft在round为1时,若重启节点可能会导致卡住,无法出块
调整3种模式,默认配置文件中安装合约改为any,任何组织的任何角色均可安装。可根据业务需求自行修改