版本迭代-长安链·ChainMaker ChangeLog

v3.0.0

支持PB级存储-横向扩展与冷热数据分离
完善DPoS共识
新增共识算法切换支持
新增ABFT共识支持
新增交易状态查询支持
修复MaxBFT支持1~3节点部署
修复MaxBFT支持pk、pwk模式
支持MaxBFT支持随机函数交易剔除
修复MaxBFT链配置变更世代切换立即生效
新增MaxBFT支持获取共识状态查询
完善不同身份模式支持MaxBFT
新增TBFT独立开源
完善TBFT随机函数交易剔除优化
完善TBFT换主逻辑优化
新增TBFT支持获取共识状态接口
优化Raft共识调整WAL为lws
新增Raft共识支持获取共识状态接口
完善Raft共识从节点不需要执行交易
完善DockerGo虚拟机性能优化 #(使用singleflight优化获取链配置和getContractByName)
优化DockerGo删除合约切换产生的错误日志
优化DockerGo删除合约文件时支持自动拉取
优化链启动顺序调整 #(VM提前)
完善EVM预编译合约
完善后量子密码支持
新增支持腾讯云KMS
新增基于dht的节点发现
新增基于dht的节点消息路由
完善quic兼容go1.19编译
优化gas->coinbase兼容 #(Coinbase交易方式代替之前的gas方式)
优化已冻结合约可以升级
完善以太坊生态兼容性
优化vm-engine容器重启后执行任务失败 #(用户id被占用)
修复vm-engine合约getStateByte不存在返回nil #(此外添加GetStateWithExists和GetStateFromKeyWithExists方法,返回是否存在)
新增DockerJava 能力支持
修复存储最后区块写入数据库事务问题
修复双花问题
修复订阅处理慢导致OOM问题
修复Net模块导致goroutine数量暴增 #(网络模块没有default处理机制,会形成消息堆积,goroutine暴增,最终OOM)
优化Net模块在节点启动时同步会比较慢
优化net-libp2p重连周期调整 #,最长重连是10分钟,最多重试90天
完善DockerJava 添加storemap迭代器接口
修复迭代器交易引起的区块比较BUG

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,任何组织的任何角色均可安装。可根据业务需求自行修改