EOS技术爱好者EOS专题区块链研习社

IMEOS技术团队关于EOS Dawn3.0的新特性解读

2018-04-08  本文已影响110人  228b5dff4508
image image

本文由IMEOS猫片针对香港meetup上正式发布的EOS Dawn3.0进行的总结,并由IMEOS-EOS技术团队老威港解读。

EOSIO路线图的第三阶段是测试和审计, 从EOS各个阶段完成情况看,各个阶段进展顺利,并超预期,Dawn3.0的发布在各个功能上的提升也不仅仅是安全和审计,还带来更多扩展性功能的提升。

image

▲ EOSIO1.0在第三阶段结束后正式推出

DAWN 3.0正式版推出了很多令人兴奋的新特性,目标就是要构建一个高性能易扩展的区块链。Dawn意味着黎明破晓,这是EOSIO1.0在六月份上线的一个重要里程碑。

结合负责开发者关系的首席工程师Sean Mitchell在4.06香港meetup上的分享,本文将对一些新的特性做出解读。

一、性能扩展

image

▲从九个方面进行性能扩展

以下出自Sean Mitchel在香港Meetup上的分享:

跨链通讯---跨链通讯是终极的可扩展性功能,它具备将轻客户端作为智能合约的能力。

稀疏区块头验证---减少轻客户端维护拜占庭容错的系统开销,并提高跨链通讯的效率。

上下文无关 Action--它可以并行化验证,区块链重复时可以删除验证数据。

上下文无关的 inline-actions--可以将这些Action作为可证事件通知给外部服务和其他区块链。

交易压缩--可以高效的存储和传输大量交易;可压缩的交易会更加经济。

解释器 & JIT 压缩--增加可扩展性和标准一致性;轻松切换到更高性能的JIT环境;解决编译合约时的延迟问题。

资源计量速率限制--资源计量速率限制基于一种客观的指令计数算法;资源分配和速率提升是独立的。

500 ms出块间隔--这大大缩短了确认之前的等待时间;不可逆的交易确认将在1s内达成

BIOS 架构--区块链架构的大部分内容将在一个系统合约中实现;社区动态更新替代硬分叉便可达成升级。

IMEOS技术团队解读

验证速度

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区块链,采用准入机制来实现资源分配。

二、安全特性

image

▲在提升性能的从三个方面同时保证安全性

以下出自Sean Mitchel在香港Meetup上的分享:

安全延迟交易--用户设置延迟可以保护特定的action.

忘记密码恢复--利用owner账户重新获得许可权限的控制;active权限可以在owner权限闲置30天后请求重置owner权限,同时 owner则有7天时间来抵制请求。

交易的提案系统--生成一个交易-->交易合作方批准这个交易--->交易满足签名的要求。

IMEOS技术团队解读

安全

DAWN 3.0引入了延迟交易机制,支持交易广播到区块链后延迟一段时间再执行,在这段时间里用户可以随时取消交易,这与现实中使用延迟到账有着异曲同工之妙。

EOS使用硬件钱包来保存账号私钥,同时鼓励生物识别技术(指纹、面部识别等)保护你的钱包安全。

新的权限体系中,增加了active账号重置owner账号的功能,可以在owner账号闲置30天后申请重置,接下来的7天内owner账号可以通过重置active账号来取消这个申请。

授权交易

当一个交易需要多个签名时,新的系统支持交易各方分别去签名,并在交易批准前随时移除你的签名。

开发者还可以在合约中判断权限授权,这意味着可以通过部署新的代码来升级授权方式。

三、合约开发

image

▲ 让合约开发更简单

以下出自Sean Mitchel在香港Meetup上的分享:

简化代码---可以做到13行代码搞定“Hello world”。

浮点支持---定点计算易出错,软件浮点的执行可以获得确定性以及降低开发难度。

C++ 标准模板库支持---开发者更熟悉,消除非标准实现而导致的限制

计划交易--永久运行合约,提高效率和易用性

自动范围检测---对用户来说更简单,对开发者来说更少出错,交易更小。

多重索引数据库API--支持数据库表的多键排序、查找、分页和数据库遍历;可以使用64位,128位,256位和512位整数以及64位浮点数(双精度)索引。

IMEOS技术团队解读

系统合约

DAWN 3.0正式引入了系统合约的概念,整个区块链的最小系统只实现了一个权限系统,包含账户创建、合约部署和强制资源分配的功能,其DPOS业务逻辑都交由系统合约来定义。

这种改变使得动态升级变得十分简便,只需部署新的系统合约即可完成,不再需要通过硬分叉来实现。这在应对安全问题、权限签名、资源分配和功能扩展等方面意义重大。

简化合约开发

新的智能合约开发使用基于对象的开发模式,实现C++类的方法来定义Action,代码量大大减少。于此同时,还增加了C++标准模板库的支持,C++开发者可以无缝入门合约开发。

另一个重大更新是引入了softfloat浮点运算库,在合约中可以支持浮点数开发了。

DAWN 3.0还引入了新的数据库API,支持更多的数据库操作,支持更多的整型和浮点型索引,并即将支持字符串索引。

新的版本中,开发者无需决定每笔交易需要访问的数据范围了,这些工作将交由区块生产者来调度。

计划运行的交易

链上支持开发计划交易,开发者可以实现更丰富的合约应用。

四、测试网络

一旦系统合同成熟到官方满意,将启动一个新的公共测试网络。 在此之前,官方大大简化了开始测试网络和开发应用程序的过程。据IMEOS快讯报道,此公共测试网络预计在5月4日发布一个公共测试网络,目前有一些bug需要修正。

IMEOS技术团队解读测试数据

DAWN 3.0给出了不同条件下单条链的测试结果,最差情况是1000TPS,理论最优情况是8000TPS,平均性能则是3000TPS。假设并行运行1000条链的情况,则可以达到每秒数百万笔交易。

此次Dawn 3.0也仅是测试版本,产品的成熟度、市场认可度仍存在未知数。但是由于BM的技术、个人影响力和执行力,相信没有人会怀疑该版本的效果。

将测试网络发布作为一个利好事件来发布,这在区块链项目很常见。但是,EOS将测试阶段分拆成多个阶段进行发布,不得不佩服Block.one团队的运营能力,这将有利于EOS社群文化的形成。

五、后续

接下来的一个月会着重完善系统合约,包括权益分配、投票机制、token以及宪法。这些完成以后会启动一个新的公共测试网络,目前的测试网络将逐渐关闭。

在IMEOS后台回复:“Dawn”,****获取《EOSIO Dawn 3.0 Now Available》原文链接

微信扫一扫加入IMEOS的知识星球,专注EOS权威快讯,和社区问答、分享讨论。

image

= END =

长按识别下方二维码

即可关注IMEOS.ONE公众号

image
上一篇下一篇

猜你喜欢

热点阅读