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

  • 时间:
  • 浏览:1
  • 来源:5分时时彩玩法_五分时时彩技巧_五分时时彩官网

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

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

Venus测试网浏览器

以太坊的跳出,在比特币网络内部人员基础上开发了以太坊虚拟机EVM,使用语言solidity即可完成图灵完备的编程,在以太坊公链上募资的项目很多,不可能 项目方都能能使用以太坊轻松地正确处理发币的问题。每一一一个多公链都不 以开源社区的内部人员运作的,建立新的语言和虚拟机就如同建立新的开发者体系,大次责项目很多再选择去开发新语言和虚拟机,大次责公链用的都不 EVM,直接COPY以太坊的功效,因此不可正确处理的也把EVM虚拟机的缺点带过来了。

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

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

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

1、测试环境

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

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

2、测试结果对比

(1)测试EVM性能

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

EVM memory profile图如下:

测试执行时间:8.31890013s

(2)测试Dipperin WASM虚拟机

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

pprof生成的cpu profile图如下:

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

pprof生成的memory profile图如下:

测试结果:

3、测试结果分析

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

从EVM加法opcode中都能能清晰的都看这你这个:

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

4、总结

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

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