Dipperin WASM虚拟机性能何以完胜以EVM?

Dipperin作为金融公链的探索者,长期专注于帮助用户快速、安全、低成本地部署区块链应用和商业智能合约,支持用户成为区块链价值的创建者和分享者,解锁区块链在广泛商业应用上的价值。

Dipperin作为金融公链的探索者,长期专注于帮助用户快速、安全、低成本地部署区块链应用和商业智能合约,支持用户成为区块链价值的创建者和分享者,解锁区块链在广泛商业应用上的价值。

2019年8月21日,Dipperin测试网络Venus正式进行主网上线前的测试,主要包括创新经济模型、高效的智能合约第二代WASM虚拟机、多款DApp,供开发者测试使用。这些技术创新使得Dipperin比以太坊拥有更高的TPS,快速的区块确认,以及更高快的智能合约运行速度。

Dipperin WASM虚拟机性能何以完胜以EVM?

Venus测试网浏览器

以太坊的出现,在比特币网络结构基础上开发了以太坊虚拟机EVM,使用语言solidity即可完成图灵完备的编程,在以太坊公链上募资的项目越来越多,因为项目方可以使用以太坊轻松地解决发币的问题。每一个公链都是以开源社区的形态运作的,建立新的语言和虚拟机就如同建立新的开发者体系,大部分项目不会选择去开发新语言和虚拟机,大部分公链用的都是EVM,直接COPY以太坊的功效,但是不可避免的也把EVM虚拟机的缺点带过来了。

Dipperin在立项之初便意识到了以太坊EVM和solidity的限制,进而深入地了解公链底层的链式网络,上层的解释器和开发语言,并且在拓展性、稳定性、运行效率等方面不断创新。随着测试网Venus的上线运行,我们在同等环境下测试了Dipperin WASM虚拟机和EVM的性能。

结果令人震惊。事实证明,Dipperin的智能合约的执行效率远远高于以太坊EVM。以太坊使用了256位的机器码极大地影响了性能,增大了内存占用。做1000万次除法和加法,Dipperin智能合约的运行时间是以太坊智能合约的1/6,内存占用是1/700。

Dipperin WASM虚拟机性能何以完胜以EVM?

Dipperin和以太坊智能合约运行1000万次除法加法的性能对比

测试环境

在以太坊源码中,利用其已有的vm性能测试案例,选取其中的loop-divadd-10M测试案例,使用pprof工具分析其vm性能及内存占用情况。

Dipperin WASM虚拟机性能何以完胜以EVM?

在Dipperin-core中则同样编写10M次的除法加法测试,生成cpu和memory相关的profile图,并与EVM进行对比。


测试结果对比

(1)测试EVM性能

EVM执行loop-divadd-10M测试时的cpu profile图如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

EVM memory profile图如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

测试执行时间:8.31890013s

(2)测试Dipperin WASM虚拟机

在Dipperin-corevm中测试loop-divadd-10M,合约源码如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

pprof生成的cpu profile图如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

测试合约执行时间为:1.607514228s

pprof生成的memory profile图如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

测试结果:

Dipperin WASM虚拟机性能何以完胜以EVM?


测试结果分析

通过对比测试数据可以看出,同样执行10M的除法加法操作。WASM虚拟机在执行时间上都要比EVM小。通过分析测试执行生成的cpu和memory profile程序可以看出。在执行除法和加法操作时,EVM之所以时间和内存消耗都比较多,主要是因为EVM底层opcode使用u256(256bit),而其256bit基本数据类型是通过big.int包来实现的。big.int相关操作是比较消耗cpu和内存资源的。这一点也一直是EVM饱受诟病的地方。

从EVM加法opcode中可以清晰的看到这一点:

Dipperin WASM虚拟机性能何以完胜以EVM?

当然由于在WASM的测试中未使用到big.int操作,因此其测试合约的内存消耗要远小于EVM。若在WASM中使用vm import的big.int相关操作时,可以想象,其内存消耗也会大很多。

总结

而对比合约数据长度可以看到,Dipperin WASM vm由于需要保存合约bytecode及abi数据到链上,因此其对链上存储资源的占用是要略高于EVM的。而EVM在将合约编译成字节码时,通过hash获取函数签名,并将函数签名信息保存在字节码中,这一定程度上也节省了链上存储空间。当然这也导致用户无法通过合约地址在链上查询此合约的abi信息。即若合约创建者未将其部署的合约发布出来,用户无法获取其abi信息,因此也无法去调用合约功能,唯一的途径是对存储在链上的bytecode进行逆向。

据悉,Dipperin创办于2018年,专注于建设金融公有链基础设施,帮助用户快速、安全、低成本地部署区块链应用和商业智能合约,搭建区块链与真实商业社会之间的桥梁。

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2019年8月27日 下午11:09
下一篇 2019年8月28日 上午2:09

相关推荐

Dipperin WASM虚拟机性能何以完胜以EVM?

星期三 2019-08-28 2:09:01

Dipperin作为金融公链的探索者,长期专注于帮助用户快速、安全、低成本地部署区块链应用和商业智能合约,支持用户成为区块链价值的创建者和分享者,解锁区块链在广泛商业应用上的价值。

2019年8月21日,Dipperin测试网络Venus正式进行主网上线前的测试,主要包括创新经济模型、高效的智能合约第二代WASM虚拟机、多款DApp,供开发者测试使用。这些技术创新使得Dipperin比以太坊拥有更高的TPS,快速的区块确认,以及更高快的智能合约运行速度。

Dipperin WASM虚拟机性能何以完胜以EVM?

Venus测试网浏览器

以太坊的出现,在比特币网络结构基础上开发了以太坊虚拟机EVM,使用语言solidity即可完成图灵完备的编程,在以太坊公链上募资的项目越来越多,因为项目方可以使用以太坊轻松地解决发币的问题。每一个公链都是以开源社区的形态运作的,建立新的语言和虚拟机就如同建立新的开发者体系,大部分项目不会选择去开发新语言和虚拟机,大部分公链用的都是EVM,直接COPY以太坊的功效,但是不可避免的也把EVM虚拟机的缺点带过来了。

Dipperin在立项之初便意识到了以太坊EVM和solidity的限制,进而深入地了解公链底层的链式网络,上层的解释器和开发语言,并且在拓展性、稳定性、运行效率等方面不断创新。随着测试网Venus的上线运行,我们在同等环境下测试了Dipperin WASM虚拟机和EVM的性能。

结果令人震惊。事实证明,Dipperin的智能合约的执行效率远远高于以太坊EVM。以太坊使用了256位的机器码极大地影响了性能,增大了内存占用。做1000万次除法和加法,Dipperin智能合约的运行时间是以太坊智能合约的1/6,内存占用是1/700。

Dipperin WASM虚拟机性能何以完胜以EVM?

Dipperin和以太坊智能合约运行1000万次除法加法的性能对比

测试环境

在以太坊源码中,利用其已有的vm性能测试案例,选取其中的loop-divadd-10M测试案例,使用pprof工具分析其vm性能及内存占用情况。

Dipperin WASM虚拟机性能何以完胜以EVM?

在Dipperin-core中则同样编写10M次的除法加法测试,生成cpu和memory相关的profile图,并与EVM进行对比。


测试结果对比

(1)测试EVM性能

EVM执行loop-divadd-10M测试时的cpu profile图如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

EVM memory profile图如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

测试执行时间:8.31890013s

(2)测试Dipperin WASM虚拟机

在Dipperin-corevm中测试loop-divadd-10M,合约源码如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

pprof生成的cpu profile图如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

测试合约执行时间为:1.607514228s

pprof生成的memory profile图如下:

Dipperin WASM虚拟机性能何以完胜以EVM?

测试结果:

Dipperin WASM虚拟机性能何以完胜以EVM?


测试结果分析

通过对比测试数据可以看出,同样执行10M的除法加法操作。WASM虚拟机在执行时间上都要比EVM小。通过分析测试执行生成的cpu和memory profile程序可以看出。在执行除法和加法操作时,EVM之所以时间和内存消耗都比较多,主要是因为EVM底层opcode使用u256(256bit),而其256bit基本数据类型是通过big.int包来实现的。big.int相关操作是比较消耗cpu和内存资源的。这一点也一直是EVM饱受诟病的地方。

从EVM加法opcode中可以清晰的看到这一点:

Dipperin WASM虚拟机性能何以完胜以EVM?

当然由于在WASM的测试中未使用到big.int操作,因此其测试合约的内存消耗要远小于EVM。若在WASM中使用vm import的big.int相关操作时,可以想象,其内存消耗也会大很多。

总结

而对比合约数据长度可以看到,Dipperin WASM vm由于需要保存合约bytecode及abi数据到链上,因此其对链上存储资源的占用是要略高于EVM的。而EVM在将合约编译成字节码时,通过hash获取函数签名,并将函数签名信息保存在字节码中,这一定程度上也节省了链上存储空间。当然这也导致用户无法通过合约地址在链上查询此合约的abi信息。即若合约创建者未将其部署的合约发布出来,用户无法获取其abi信息,因此也无法去调用合约功能,唯一的途径是对存储在链上的bytecode进行逆向。

据悉,Dipperin创办于2018年,专注于建设金融公有链基础设施,帮助用户快速、安全、低成本地部署区块链应用和商业智能合约,搭建区块链与真实商业社会之间的桥梁。