EOS VM是开发者的春天吗 ?

EOS VM是开发者的春天吗 ?

Block.one曾推出EOSVM的开发者预览版。

关于EOSVM,Block.one介绍到:在开发区块链应用的过程中,有哪些特定需求目前没有被满足?

EOS VM在设计时考虑了这个问题,并力求做到解决这个问题。

《EOS VM是开发者的春天吗 ?》

EOS VM如何满足这些特定需求?这些特性能够给EOS的开发者们带来哪些契机?

今天,跟着Starteos来揭秘。

一、什么是EOS VM ?

随着EOSIO区块链技术的日益普及,支持区块链应用程序的安全确定性执行所需性能已经超过了设计来用于浏览器接口的传统WebAssembly引擎容量。

过去的一年中,我们(Block.one)测试了Binaryen和WABT等的性能,这些解释器非常适合它们本身的用途,但是当应用于区块链时,存在无限内存分配,扩展加载时间和堆栈溢出等问题,导致整体性能和可靠性下降。

单线程性能,共享资源跟踪以及对本机代码的低开销调用对区块链性能至关重要。

《EOS VM是开发者的春天吗 ?》

考虑到这些原则,EOS VM从头开始设计,以满足区块链应用的特定需求。

EOSIO 1.0最初于2018年6月与Binaryen解释器一起发布,截至9月,我们发布了EOSIO 1.3,该版本支持WABT,性能提升了2倍。

随着计划于今年晚些时候发布的EOSIO 2.0的发布,我们预计EOS VM的性能将提高6倍,让EOSIO 2.0中的WebAssembly执行速度比一年前发布的EOSIO快12倍。

虽然我们对性能的这种改进感到兴奋,但这是开发人员预览版本,我们的内部基准尚未指示真实场景,正在进行进一步的开发。

我们将EOS VM构建为专门用于区块链应用程序的高性能解释器,但其对低延迟和其他性能效率的关注将使其成为许多WebAssembly用例的有竞争力的替代方案。

《EOS VM是开发者的春天吗 ?》

二、EOS VM 的高性能属性

EOS VM在设计时考虑了以下属性:

▷ 极快的执行力;

▷ 极快的解析/加载;

▷ 高效的时间限制执行;

▷ 确定性执行;

▷ C ++ / Header Only集成;

▷ 高度可扩展的设计。

三、确定性执行以避免共识失败

区块链应用程序需要确定性执行才能正常运行,给定的输入内容必须始终产生相同的输出结果。

在使用传统的WebAssembly解释程序时,非确定性操作(其值从一个状态变为另一个状态的那些操作)可能会延迟影响所有用户和构建在其上的应用程序的共识。

通过EOS VM,我们设计了一个环境,支持基于软硬件的浮点运算。使用基于软件的浮点,允许浮点运算的真正确定性执行。

由于这些内置于系统中,因此需要尽可能减轻“软浮动”操作的开销。对于不需要位级确定性的用例,可以将库配置为使用主机处理器的硬件浮点单元。

《EOS VM是开发者的春天吗 ?》

四、用有效时间限制执行管理资源

有效的资源管理是构建高性能区块链应用程序的关键。

区块链网络的各方具有在网络用户之间共享的有限资源集,这使得区块链应用程序在其分配的规范中高效运行变得更加重要。

EOS VM实现了两个新工具,允许开发人员通过跟踪WebAssembly运行来更好地管理资源分配:

第一个是对已执行并在预设阈值处暂停的WebAssembly指令数的内置检查。这将创建对开始执行但未能在设定时间范围内正常完成的进程的检查。

第二个是外部“观察者”,它将在预设的时间后停止执行,终止可能停滞并且无法正常退出的进程。

《EOS VM是开发者的春天吗 ?》

五、安全构建适用于现实的区块链开发

WebAssembly被设计为在浏览器环境中运行不受信任的代码,在浏览器环境中,最糟糕的情况可能是浏览器选项卡停滞。

在区块链的情况下,停滞的交易可以使区块链停止运行,因此总体后果要严重得多。

开发是一个容易出错、中断修复的过程,需要调试和不断思考问题。因此,有时程序员可能会遇到检查和验证方面的问题。

EOS VM的基本数据类型包含内置保护,当这些复杂情况中的状况发生时,这些保护进程会触发并自动终止运行。

为了保护内存,我们构建了一个保护分页机制,利用CPU和核心操作系统安全性来进行沙盒内存操作。

这种机制允许更通用地部署本机代码功能,而不会由于常见编程错误(例如无限递归和阵列访问)相关的内存溢出而导致机器崩溃的风险。

EOS VM中内置的分配器足够模块化,可满足特定于应用程序的需求,而无需创建内存密集型结构来支持它们,因为分配器不“拥有”它们使用的内存。

同步这些分配器的生命周期不需要复制它们,允许根据需要进行WebAssembly模块的上下文无关集成,而不会造成任何性能损失。

《EOS VM是开发者的春天吗 ?》

六、轻松的 C++ / Header 集成

EOS-VM可以以不具有外部或预编译依赖关系的方式使用; 它只是一个Header实现。

这意味着构成EOS VM库的所有宏关函数和类文件中的编译器都是可见的。这允许编译器在集成代码库的上下文中更积极地优化EOS VM,因为它具有可用的所有功能/方法定义。

在此配置中,集成到项目中可以像将EOS VM目录添加到项目的路径一样简单。

《EOS VM是开发者的春天吗 ?》

七、基于高度可扩展的组件设计

对EOS VM进行划分并创建自包含组件使系统能够高度适应使用新定义的逻辑以及先前定义的组件的自定义后端工具。

此外,通过遵循简单的编码程序,可以相对容易地构建新的扩展,允许一系列强大的工具能够根据需要出现分析,调试等。

《EOS VM是开发者的春天吗 ?》

八、扩展区块链技术的未来

在过去的一年中,EOSIO不断发展,我们的重点是与社区一起,继续为EOSIO创建更强大的工具包和库,使其成为世界上性能最高、利用率最高的区块链平台之一。

最终,区块链技术的采用将由应用程序驱动,这些应用程序向最终用户和企业展示区块链的好处。

随着EOS VM的性能提升,与所有EOSIO版本一样,我们努力创建工具,帮助开发人员实现更大目标。

我们将继续与社区合作,改进和发展EOSIO。

《EOS VM是开发者的春天吗 ?》

最后,文章表示:

“EOS VM开发者预览版尚未发布开放源代码。有关完整的版权声明,请参阅许可证。

 

以上就是小编分享关于”EOS VM是开发者的春天吗 ?”的相关文章,感谢读者的耐心阅读,觉得不错动动小手收藏转发吧!想了解更多相关新闻敬请关注小柚财经!

小柚财经QQ专线:334026(带你加入更多行业交流群)
小柚财经微信公众号:搜索【今日币有约】关注即可

文章标题:EOS VM是开发者的春天吗 ?
文章链接:http://www.dltsg.com/index.php/2020/11/28/8411/
小编申明:本站所提供文章资讯,均由互联网整理。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注