EOS Dawn3.0新特性解读

in #eos7 years ago

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以及宪法。这些完成以后会启动一个新的公共测试网络,目前的测试网络将逐渐关闭。

Sort:  

Congratulations @shrimp6! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

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:

The Steem blockchain survived its first virus plague!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.19
TRX 0.16
JST 0.030
BTC 68598.13
ETH 2704.77
USDT 1.00
SBD 2.72