[发明专利]以太坊虚拟机的事务处理方法、装置、设备和介质有效
| 申请号: | 202011543553.3 | 申请日: | 2020-12-24 |
| 公开(公告)号: | CN112286641B | 公开(公告)日: | 2021-04-20 |
| 发明(设计)人: | 张磊;樊冰新;郑旗;肖伟 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455;G06Q40/04;G06F21/64 |
| 代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 以太 虚拟机 事务处理 方法 装置 设备 介质 | ||
1.一种基于以太坊虚拟机的事务处理方法,应用于区块链节点,所述方法包括:
在区块链节点中运行的虚拟机实例,获取待处理事务请求;
所述虚拟机实例执行所述待处理事务请求的过程中,产生针对合约内变量的数据访问请求,并传输给接口模块;所述数据访问请求包括数据读请求和/或数据写请求;
所述接口模块根据所述数据访问请求进行指令转换,以确定与所述数据访问请求功能对应的合约内变量访问接口;
所述接口模块针对所述区块链的数据存储空间中的合约空间,调用所述合约内变量访问接口,以对所述合约空间中的合约内变量进行访问操作,并将访问结果反馈给所述虚拟机实例;
其中,所述合约内变量包括智能合约中的参数变量和变量数值;所述合约空间中的合约内变量用于更新区块链的链上数据。
2.根据权利要求1所述的方法,其中,所述区块链的数据存储空间包括账户空间和合约空间,所述账户空间用于存储外部账户中的账户数据和合约账户中的账户数据,所述合约空间用于存储合约账户中的合约数据;所述合约数据包括账户标识、合约字节码和合约内变量。
3.根据权利要求2所述的方法,其中,所述账户数据包括账户标识、交易序列号、账户公钥和通证;所述账户数据采用键值对存储形式,所述账户标识作为键值存储于键域中,所述交易序列号、账户公钥和通证存储于值域中。
4.根据权利要求2所述的方法,其中,所述账户标识为智能合约的合约调用标识;所述合约数据采用键值对存储形式,所述账户标识作为键值中的前缀,与所述合约字节码和合约内变量各自的标识进行组合,存储于键域中;所述合约字节码和合约内变量存储于值域中。
5.根据权利要求4所述的方法,其中,所述合约内变量访问接口包括合约内变量存储接口和合约内变量读取接口。
6.根据权利要求5所述的方法,其中,所述合约内变量读取接口的传入参数包括账户标识和变量标识;所述账户标识和变量标识的组合作为键值对的键值,用于查询并读取待读取变量的数值。
7.根据权利要求5所述的方法,其中,所述合约内变量存储接口的传入参数包括账户标识、变量标识和变量数值;所述账户标识和变量标识的组合作为键值对的键值,用于查询待存储变量所在键值对,并将所述变量输入写入所述键值对的值域。
8.根据权利要求5所述的方法,其中,所述合约内变量存储接口和合约内变量读取接口作为区块链访问接口,所述区块链访问接口还包括下述至少一项的区块链写接口:
合约账户创建接口;
合约字节码初始化接口;
合约账户删除接口。
9.根据权利要求8所述的方法,其中,在区块链节点中运行的虚拟机实例,获取待处理事务请求之后,所述方法还包括:
所述虚拟机实例识别到所述待处理事务请求为基于合约账户的合约账户创建请求时,传输给所述接口模块;
所述接口模块根据所述合约账户创建请求进行指令转换,以确定对应的合约账户创建接口;
所述接口模块调用合约账户创建接口,在所述账户空间中创建合约账户并写入所述合约账户的账户数据,并创建合约空间;
所述接口模块在执行所述合约账户创建接口的过程中,调用所述合约字节码初始化接口,以对待创建的智能合约进行编译,形成合约字节码写入所述合约空间;
所述接口模块在执行所述合约账户创建接口的过程中,调用所述合约内变量存储接口,在所述合约空间中创建并存储所述智能合约的合约内变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011543553.3/1.html,转载请声明来源钻瓜专利网。





