EOS Dawn3.0新特性解读
4月6日,EOS如期发布了DAWN 3.0
正式版,推出了很多令人兴奋的新特性,目标就是要构建一个高性能易扩展的区块链。下面对这些新特性做一个总结:
合约
系统合约
DAWN 3.0
正式引入了系统合约的概念,整个区块链的最小系统只实现了一个权限系统,包含账户创建、合约部署和强制资源分配的功能,其DPOS
业务逻辑都交由系统合约来定义。
这种改变使得动态升级变得十分简便,只需部署新的系统合约即可完成,不再需要通过硬分叉来实现。这在应对安全问题、权限签名、资源分配和功能扩展等方面意义重大。
简化合约开发
新的智能合约开发使用基于对象的开发模式,实现C++类的方法来定义Action,代码量大大减少。于此同时,还增加了C++标准模板库的支持,C++开发者可以无缝入门合约开发。
另一个重大更新是引入了softfloat浮点运算库,在合约中可以支持浮点数开发了。
DAWN 3.0
还引入了新的数据库API,支持更多的数据库操作,支持更多的整型和浮点型索引,并即将支持字符串索引。
新的版本中,开发者无需决定每笔交易需要访问的数据范围了,这些工作将交由区块生产者来调度。
计划运行的交易
链上支持开发计划交易,开发者可以实现更丰富的合约应用。
安全
DAWN 3.0
引入了延迟交易机制,支持交易广播到区块链后延迟一段时间再执行,在这段时间里用户可以随时取消交易,这与现实中使用延迟到账有着异曲同工之妙。
EOS使用硬件钱包来保存账号私钥,同时鼓励生物识别技术(指纹、面部识别等)保护你的钱包安全。
新的权限体系中,增加了active
账号重置owner
账号的功能,可以在owner
账号闲置30天后申请重置,接下来的7天内owner
账号可以通过重置active
账号来取消这个申请。
授权交易
当一个交易需要多个签名时,新的系统支持交易各方分别去签名,并在交易批准前随时移除你的签名。
开发者还可以在合约中判断权限授权,这意味着可以通过部署新的代码来升级授权方式。
速度
验证速度
DAWN 3.0
提出了在轻客户端上验证一个区块链交易,从而实现双向通信。于此同时,引入拜占庭容错(BFT)稀疏头部验证机制来提高跨链双向通信效率。EOS
会在协议中详细设计轻客户端验证机制。
混合代码编译方式
DAWN 3.0
默认使用binaryen
解释器,相比于之前的JIT
编译器,解决了编译合约的延迟问题,提高了稳定性和平台一致性,同时也意味着更低的性能。
但是,后面还可以随时切换使用JIT
编译器优化合约。这种共存的方式可以让我们兼顾性能和延迟。
快速出块和确认
出块时间缩短到0.5秒,使用BFT-DPOS混合共识算法(将在EOSIO 1.0之前更新使用),确认时间达到1秒以内。
性能
上下文无关
区分出来上下文无关Action
,这些Action
可以并行计算,并且在区块链replay的时候可以被跳过。
同样,可以并行处理上下文无关内联Action
,并且作为事件通知到外部服务或其他区块链。
数据压缩
压缩交易包含的数据,包括WebAssembly代码、ABI规范、生成的内容等。
资源计费
引入指令计数算法,用户账单根据客观使用量计费。同时允许在合约中设置执行时间限制。
旧版本中每个交易必须在1ms内完成,现在理论上支持一个需要100ms运行时间的交易。
允许不通过发布token来实现资源限制,比如部署一个私有的EOS区块链,采用准入机制来实现资源分配。
测试数据
DAWN 3.0
给出了不同条件下单条链的测试结果,最差情况是1000TPS,理论最优情况是8000TPS,平均性能则是3000TPS。假设并行运行1000条链的情况,则可以达到每秒数百万笔交易。
后续
接下来的一个月会着重完善系统合约,包括权益分配、投票机制、token以及宪法。这些完成以后会启动一个新的公共测试网络,目前的测试网络将逐渐关闭。
Congratulations @shrimp6! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!