区块链WebAssembly执行的强大组件三重奏
- EOS VM解释器是一个WebAssembly解释器,提供了极快的解析/加载,确定性和高效的时限执行。从头开始设计解释器,使我们能够为将来对智能合约的调试支持腾出空间。
- EOS VM即时(JIT)编译器是WebAssembly编译器,它采用WASM并即时生成本机代码。与WABT,Binaryen和EOS VM解释器之类的解释器相比,该体系结构能够非常快速地执行WASM智能合约,并提供显着的性能优势。这种JIT解决方案的绝对速度使我们能够在区块链上使用它,而无需其他解决方案进行较长的区块编译时间。
- EOS VM优化编译器是EOS VM的第三个组件,它使用了利用多遍编译架构的专用编译器框架(LLVM)。通过优化编译器生成的本机代码通常比在WABT,Binaryen,EOS VM解释器和EOS VM JIT中执行的相同代码快一个数量级。最重要的是,它甚至比现有的WAVM引擎还要快,但是与WAVM不同,它可以利用我们的分层设计在区块链上安全使用。
极快的执行力
我们针对不同组件的基准测试在我们的测试环境中实现了以下性能增强:
1、EOS力学基准来自EOSIO社区编写的基准,并在AWS z1d.metal实例上运行。 2、重播基准测试比较了EOSIO系统提供的重播功能以在指定的WASM引擎上完成相同的重播并在AWS z1d.metal实例上执行所需的时间。
以上性能基准显示了各种EOS VM组件的相对优势。 EOSIO 2.0将EOS VM JIT作为大多数智能合约执行的一线编译器,而EOS VM Optimized Compiler尝试在后台编译相同的智能合约,并将其部署以在链上以极快的速度随后执行。这种分层架构使EOSIO 2.0能够利用快速启动和优化的智能合约代码编译功能。
EOS VM及其组件也可以高度自定义,因此开发人员可以以适合其所需功能的特定方式实现其各个方面。通过参考GitHub上的EOS VM存储库了解更多信息。