PlatON测试网升级至0.11.0版本,实现支持WASM智能合约
4月10日,隐私计算网络和分布式经济体基础设施PlatON升级至0.11.0版本。该版本最为重大的更新内容是实现支持WebAssembly(简称WASM)智能合约。同时,根据近期社区反馈,0.11.0版本对低(零)出块率惩罚机制进行了优化,并修复了包括偶现Bad Block、EVM智能合约故障等11项问题。
一、WASM智能合约
WASM智能合约是一种为栈式虚拟机设计的二进制指令集,是分布式系统开发的基础,具有运行高效、内存安全、无未定义行为和平台独立等特点,经过了编译器和标准化团队多年耕耘,目前已经有了成熟的社区。在区块链领域,越来越多开发者倾向于基于WASM进行DApp开发。
在本次版本升级后,PlatON正式开始支持WASM智能合约,并将涵盖以下功能:
-
编译,部署,调用WASM智能合约
-
WASM智能合约的升级,销毁
-
提供Java、Javascript sdk调用WASM智能合约
-
发布WASM智能合约的部署工具
在0 .11.0版本发布后,PlatON测试网将同时支持两种智能合约,即EVM智能合约和WASM智能合约,能最大可能发挥两者优势,满足不同应用场景需求。 WASM智能合约的实现支持,将吸引更多的开发者灵活采用多种开发语言,参与PlatON网络建设。
二、重大机制优化
PlatON环银河拉力赛参赛节点近期反馈测试网的处罚策略过于严厉,即只要当选为验证人的节点在一个共识周期内没有出过块,那么此节点将被处罚,而节点在升级过程中或由于网络抖动原因,导致不能在被选为验证人时及时出块。
经充分研讨和测试,0.11.0版本对低(零)出块率惩罚机制进行了优化。 优化内容包括:
-
只有在一定时间范围内持续不出块(时间范围用共识周期数衡量)才进行处罚;
-
只有超过一定的不出块次数才会处罚。
三、多项修复和完善
除支持WASM智能合约和优化低(零)出块率惩罚机制,0.11.0版本综合社区建议修复了如下11个方面的问题:
-
修复了fast同步中途退出后节点启动失败问题
-
修复了频繁调用GetTransactionCount接口导致节点内存溢出问题
-
修复了不能向内置合约转账的问题
-
修复了节点view差距很大时view同步慢的问题
-
修复了测试网节点同步时出现vrf invalidate问题
-
修复了偶现bad block的问题
-
修复了交易索引被删除导致交易信息查不到的问题
-
修复了EVM智能合约中调用blockhash函数,部分节点执行过程中会出现panic问题
-
解决了随机选取验证人节点时计算小版本号问题
-
storage存储增加引用计数,解决value相同时被优化掉的问题
-
增加0.11.0版本前的合约黑名单,解决由于存储优化导致bad block问题
四、社区治理完成升级
在PlatON治理机制下,决策权属于“利益相关者”,即权利属于人民。对于此次测试网版本升级,需经由社区投票治理,最终投票通过方可上链运行。
社区节点在区块高度为3594615(即4月8日10: 04: 53)时发起了升级提案,提议PlatON支持WASM合约并修复测试网部分BUG。该提案发起后进入投票期,截止至区块高度为3751730(即4月10日10: 03: 18),共有66个节点投赞成票,其参与率和支持率均达到要求,提案成功通过并生效。这意味着,该项升级提案将在下一个共识轮第一个块开始实施,测试网0.11.0版本正式生效。
PlatON注重社区的力量,欢迎更多开发者、节点合作伙伴及个人用户加入我们,参与测试网络0.11.0版本测试,同时参与丰富多彩的环银河拉力赛活动,发挥集体智慧的力量,促进网络稳定运行和PlatON生态繁荣。