BM即将推出WASM解释器,目前已通过测试,解释执行和编译执行了解一下
智能合约执行将会变慢。
编者按:本文来自 36 氪战略合作区块链媒体“Odaily星球日报”(公众号ID:o-daily,APP下载)。
BM在EOS官方群里表示,“即将推出WASM解释器,用来解释执行 WebAssembly 智能合约,目前已经通过所有测试并接入到主网和测试网。
EOS之前本来是编译执行,即直接将代码编译成为可执行的二进制机器码。而解释执行则指用户拿到的是原始代码,解释器会像翻译员一样,一行一行地执行代码。
前者优点是执行速度快,但缺点是每次智能合约有更新时,见证人的服务器都要重新编译生成二进制机器码,对于执行次数不多的智能合约,是不划算的。解释执行正好相反,不需要提前编译,但执行时速度比编译执行慢很多。另外,比特币和以太坊采用的均是解释性的语言。
而EOS的智能合约语言Web Assembly(wasm)同时支持两种执行方式。因为 WebAssembly 类似 java,会生成中间语言:字节码,字节码既可以编译成机器码后执行,又可以使用解释器直接执行。中间语言赋予了 WebAssembly 灵活的执行方式。
BM表示,引入 WebAssembly 解释器是给智能合约的结果提供了一个权威参考,当各个见证人的编译执行结果不一致时,就可以使用解释器得到参考结果。而且解释器也会给编译执行做后补,以防 WASM 编译器出问题时维持系统稳定。