预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN111399990A(43)申请公布日2020.07.10(21)申请号202010475572.0(22)申请日2020.05.29(71)申请人支付宝(杭州)信息技术有限公司地址310000浙江省杭州市西湖区西溪路556号8层B段801-11(72)发明人刘晓建(74)专利代理机构北京亿腾知识产权代理事务所(普通合伙)11309代理人陈霁周良玉(51)Int.Cl.G06F9/455(2006.01)权利要求书3页说明书11页附图5页(54)发明名称解释执行智能合约指令的方法及装置(57)摘要本说明书实施例提供一种解释执行智能合约指令的方法和装置,方法通过虚拟机执行,包括:首先确定有待执行的第一合约中第一指令的第一内存地址,所述第一内存地址位于第一内存区域,所述第一内存区域与第二内存区域存在映射关系,所述第二内存区域用于存储第一合约的经过扩容的字节码。如果该第一内存地址中存储的是用于执行第一指令的第一模拟函数信息,则根据该第一模拟函数信息执行第一指令;如果第一内存地址中存储的是预定初始值,则根据映射关系,从第二内存区域中读取第一指令对应的第一字节码片段,根据第一字节码片段确定第一模拟函数信息,将其填充在第一内存地址对应的存储空间中。CN111399990ACN111399990A权利要求书1/3页1.一种解释执行智能合约指令的方法,通过虚拟机的解释器执行,包括:确定有待执行的第一合约中第一指令的第一内存地址,所述第一内存地址位于第一内存区域,所述第一内存区域与第二内存区域存在特定映射关系,所述第二内存区域用于存储所述第一合约的经过扩容的字节码;如果所述第一内存地址中存储的是用于执行所述第一指令的第一模拟函数信息,则根据所述第一模拟函数信息执行该第一指令;如果所述第一内存地址中存储的是预定初始值,则执行转换逻辑,所述转换逻辑包括,根据所述特定映射关系,从所述第二内存区域中读取所述第一指令对应的第一字节码片段,根据所述第一字节码片段确定所述第一模拟函数信息,将其填充在所述第一内存地址对应的存储空间中。2.根据权利要求1所述的方法,在确定有待执行的第一合约中第一指令的第一内存地址之前,还包括:在所述第二内存区域加载所述第一合约的经过扩容的字节码;为所述第一合约分配与所述第二内存区域等容量的第一内存区域,并记录所述第一内存区域和所述第二内存区域之间的映射关系作为所述特定映射关系;对所述第一内存区域进行初始化,使得其中所有存储位置均存储所述预定初始值。3.根据权利要求2所述的方法,其中,在所述第二内存区域加载所述第一合约的经过扩容的字节码,包括:读取所述第一合约中的第一原始字节码;在所述第一原始字节码后添加冗余码,以对第一原始字节码进行存储空间扩容,使得扩容后的存储空间足以容纳所述第一原始字节码对应的模拟函数信息;修改指令地址索引,使得其中各个索引值指向添加冗余字节码后各条指令的起始存储位置;将针对所述第一合约中各原始字节码扩容后的存储空间,作为所述第二内存区域。4.根据权利要求2所述的方法,其中,在所述第二内存区域加载所述第一合约的经过扩容的字节码,包括:读取所述第一合约中的第一扩容字节码,所述第一扩容字节码在所述第一合约编译阶段生成,所述第一扩容字节码包括第一原始字节码和冗余码,所述第一扩容字节码占用的存储空间足以容纳所述第一原始字节码对应的模拟函数信息;将所述第一扩容字节码填充到为其分配的存储空间;将存储所述第一合约中各扩容字节码的存储空间,作为所述第二内存区域。5.根据权利要求1所述的方法,其中,所述第一模拟函数信息为,存储第一模拟函数的可执行代码的第三内存地址,其中所述第一模拟函数用于执行所述第一指令;根据所述第一模拟函数信息执行该第一指令,包括:跳转到所述第三内存地址,以执行所述第一模拟函数。6.根据权利要求5所述的方法,其中,所述预定初始值为,无效的地址值。7.根据权利要求1所述的方法,其中,所述第一模拟函数信息为,指向第一模拟函数的跳转指令,所述第一模拟函数为用于执行所述第一指令的模拟函数;根据所述第一模拟函数信息执行该第一指令,包括:执行所述跳转指令,从而跳转到所2CN111399990A权利要求书2/3页述第一模拟函数进行执行。8.根据权利要求7所述的方法,其中,所述预定初始值为,系统异常指令,且所述系统异常指令导致所述转换逻辑的执行。9.根据权利要求1所述的方法,其中,从所述第二内存区域中读取所述第一指令对应的第一字节码片段,根据所述第一字节码片段确定所述第一模拟函数信息,将其填充在所述第一内存地址对应的存储空间中,具体包括:根据所述特定映射关系,确定所述第二内存区域中与所述第一内存地址对应的第二内存地址;从所述第二内存地址读取所述第