基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统技术方案

技术编号:27740981 阅读:81 留言:0更新日期:2021-03-19 13:34
本发明专利技术提供了一种基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统,包括:底层协议通过预设配置开启协议所支持的虚拟机类型,当虚拟机类型为兼容模式时,则在合约层根据预设规范编写多虚拟机语言合约互调用的代码;在虚拟机支持的相应合约中,通过call方法对除虚拟机支持的相应合约外的目标合约发起调用;在底层链中解析调用参数,得到被调用的目标合约地址和目标合约信息;根据目标合约地址获得目标合约的字节码,根据目标合约字节码判断目标合约的类型;根据目标合约的类型,底层链切换虚拟机类型,执行相应合约,得到执行完后的返回值;对执行完后的返回值进行编码转换,得到发起方合约能够识别的编码类型。

【技术实现步骤摘要】
基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统
本专利技术涉及区块链
,具体地,涉及基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统,更为具体地,涉及一种基于EVM与Wasm虚拟机的多语言智能合约兼容方案。
技术介绍
结合区块链技术的行业应用往往以DAPP的形式呈现,而DAPP需要建立在区块链之上。以联盟链的场景为例,合约开发者需要在此联盟链之上建立DAPP应用,现有的绝大部分区块链底层协议只支持EVM或者只支持Wasm的智能合约,合约开发者往往需要学习此联盟链支持的智能合约语言,才能进行后续的DAPP开发,这需要花费一定的语言学习成本,同时也需要了解此联盟链的合约生态工具,而这往往对大部分开发者照成了一定的阻碍,同时也不利于联盟链的灵活使用场景。当此联盟链同时兼容EVM和Wasm虚拟机之后,则此问题迎刃而解,合约开发者无需花费额外的学习成本,从而极大提高合约编码的友好度,同时融合solidity与Wasm合约开发者生态。本专利技术解决了EVM与Wasm合约开发者生态分裂的问题。EVM合约开发者熟悉Solidit本文档来自技高网...

【技术保护点】
1.一种基于EVM与Wasm虚拟机的多语言智能合约兼容方法,其特征在于,包括:/n步骤M1:底层协议通过预设配置开启协议所支持的虚拟机类型,当虚拟机类型为兼容模式时,则在合约层根据预设规范编写多虚拟机语言合约互调用的代码;/n步骤M2:在虚拟机支持的相应合约中,对除虚拟机支持的相应合约外的目标合约发起调用;/n步骤M3:在底层链中解析调用参数,得到被调用的目标合约地址和目标合约信息;/n步骤M4:根据目标合约地址获得目标合约的字节码,根据目标合约字节码判断目标合约的类型;/n步骤M5:根据目标合约的类型,底层链切换虚拟机类型,执行相应合约,得到执行完后的返回值;/n步骤M6:对执行完后的返回值...

【技术特征摘要】
1.一种基于EVM与Wasm虚拟机的多语言智能合约兼容方法,其特征在于,包括:
步骤M1:底层协议通过预设配置开启协议所支持的虚拟机类型,当虚拟机类型为兼容模式时,则在合约层根据预设规范编写多虚拟机语言合约互调用的代码;
步骤M2:在虚拟机支持的相应合约中,对除虚拟机支持的相应合约外的目标合约发起调用;
步骤M3:在底层链中解析调用参数,得到被调用的目标合约地址和目标合约信息;
步骤M4:根据目标合约地址获得目标合约的字节码,根据目标合约字节码判断目标合约的类型;
步骤M5:根据目标合约的类型,底层链切换虚拟机类型,执行相应合约,得到执行完后的返回值;
步骤M6:对执行完后的返回值进行编码转换,得到发起方合约能够识别的编码类型;
所述兼容模式包括同时支持EVM和Wasm虚拟机,并能够实现EVM和Wasm虚拟机所支持的多种不同语言的智能合约互相调用。


2.根据权利要求1所述的基于EVM与Wasm虚拟机的多语言智能合约兼容方法,其特征在于,所述步骤M1中通过预设配置开启协议所支持的虚拟机类型包括EVM、Wasm和/或兼容模式。


3.根据权利要求1所述的基于EVM与Wasm虚拟机的多语言智能合约兼容方法,其特征在于,所述步骤M2包括在虚拟机支持的相应合约中,通过Call方法,对除当前虚拟机支持的相应合约外的目标合约发起调用。


4.根据权利要求1所述的基于EVM与Wasm虚拟机的多语言智能合约兼容方法,其特征在于,所述步骤M3包括:在虚拟机解释器执行智能合约字节码时,当执行到合约互调用的操作码时,将调用参数解析为目标合约所对应的虚拟机解释器能识别的编码方式,得到被调用的目标合约地址和目标合约信息。


5.根据权利要求1所述的基于EVM与Wasm虚拟机的多语言智能合约兼容方法,其特征在于,所述步骤M6包括:在EVM和Wasm虚拟机解释器执行完不同智能合约互调用操作后,针对执行完得到的返回值通过Json的通用编码方式进行编码转换,得到发起方合约能够识别的编码类型。

【专利技术属性】
技术研发人员:汤勇
申请(专利权)人:上海万向区块链股份公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1