[发明专利]基于以太坊虚拟机的智能合约处理方法和装置有效
申请号: | 201811073894.1 | 申请日: | 2018-09-14 |
公开(公告)号: | CN109034814B | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 段兵;肖伟 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;G06F9/455 |
代理公司: | 北京市铸成律师事务所 11313 | 代理人: | 杨瑾瑾;陈建焕 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 以太 虚拟机 智能 合约 处理 方法 装置 | ||
本发明实施例提出一种基于以太坊虚拟机的智能合约处理方法和装置。该方法包括:接收来自请求节点的部署合约交易,部署合约交易中包括待部署合约的第一描述信息;向以太坊虚拟机发起初始化合约交易,所述初始化合约交易中包括第一描述信息,初始化合约交易用于在以太坊虚拟机中执行第一描述信息得到待部署合约的初始化状态;接收来自以太坊虚拟机的初始化状态的存储地址;在区块链网络的账本中保存第一描述信息、所述存储地址和交易标识的对应关系;向所述请求节点返回所述待部署合约的交易标识。对于以太坊虚拟机的执行机制改动小,可以使用以太坊虚拟机的状态存储方式,对以太坊上的原生合约的兼容性好,有利于区块链网络的更新与升级。
技术领域
本发明涉及互联网技术领域,尤其涉及一种基于以太坊虚拟机的智能合约处理方法和装置。
背景技术
智能合约是区块链2.0非常显著的特征,其中一个典型的代表是以太坊。以太坊是一个开源的有智能合约功能的公共区块链平台。以太坊通过专用的加密货币以太币(Ether)提供去中心化的虚拟机、即“以太虚拟机(EVM,Ethereum Virtual Machine)”来处理点对点合约。EVM是基于栈的精简指令虚拟机,具备丰富的开发生态。EVM支持Sodility、类LISP语言(LLL,LISP Like Language)等多种图灵完备的高级语言执行,为智能合约的开发提供了良好的基础设施。
目前在区块链中移植EVM的方案,对EVM本身的工作机制进行了很大的调整,对以太坊上的原生合约的兼容性差。一旦移植,后续升级需要完全脱离EVM主干进行升级,导致很多特性没法及时合并支持,因此难以升级。
发明内容
本发明实施例提供一种基于以太坊虚拟机的智能合约处理方法和装置,以解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种基于以太坊虚拟机的智能合约处理方法,包括:
接收来自请求节点的部署合约交易,所述部署合约交易中包括待部署合约的第一描述信息;
向以太坊虚拟机发起初始化合约交易,所述初始化合约交易中包括所述第一描述信息,所述初始化合约交易用于在所述以太坊虚拟机中执行所述第一描述信息得到所述待部署合约的初始化状态;
接收来自所述以太坊虚拟机的所述初始化状态的存储地址;
在区块链网络的账本中保存所述第一描述信息、所述存储地址和交易标识的对应关系;
向所述请求节点返回所述待部署合约的交易标识。
结合第一方面,本发明实施例在第一方面的第一种实现方式中,所述第一描述信息中包括待部署合约的字节码和预支付的费用。
结合第一方面,本发明实施例在第一方面的第二种实现方式中,还包括:
接收来自所述请求节点的执行合约交易,所述执行合约交易中包括待执行合约的交易标识和第二描述信息;
在所述区块链网络的账本中查找与所述待执行合约的交易标识对应的存储地址;
向所述以太坊虚拟机发起调用合约交易,所述调用合约交易中包括所述第二描述信息和查找到的存储地址,以在所述以太坊虚拟机中按照所述查找到的存储地址调取所述待执行合约的状态、结合所述第二描述信息来执行所述待执行合约;
接收所述以太坊虚拟机返回的执行后的合约的新的状态;
向所述请求节点返回所述新的状态。
结合第一方面的第二种实现方式,本发明实施例在第一方面的第三种实现方式中,所述第二描述信息包括所述待执行合约的输入参数和预支付的费用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811073894.1/2.html,转载请声明来源钻瓜专利网。