一种执行智能合约的方法、装置、电子设备和存储介质与流程

文档序号:34143968发布日期:2023-05-13 14:56阅读:27来源:国知局
一种执行智能合约的方法、装置、电子设备和存储介质与流程

本申请涉及区块链,尤其涉及一种执行智能合约的方法、装置、电子设备和存储介质。


背景技术:

1、在区块链技术领域,为了加速执行智能合约,通常会采用aot(ahead of timecompilation,预先编译)编译的方式,预先将智能合约的字节码编译为机器码,然后直接调用机器码执行。然而,现有技术一般是使用各类编译器将字节码编译为机器码,而现有的编译器普遍存在编译时间和编译结果大小不可控的问题。


技术实现思路

1、有鉴于此,本申请实施例提供了一种执行智能合约的方法、装置、电子设备和存储介质,能够解决将字节码编译为机器码时存在的编译时间和编译结果大小不可控的问题。

2、本申请实施例的第一方面提供了一种执行智能合约的方法,包括:

3、获取智能合约的字节码;

4、将所述字节码直译为机器码,所述直译指将字节码的指令逻辑映射为机器码的指令逻辑;

5、执行所述机器码,得到所述智能合约的执行结果。

6、在本申请实施例中,首先获取智能合约的字节码,然后通过直译的方式将字节码转换为机器码,这里的直译是指将字节码的指令逻辑映射为机器码的指令逻辑,最后再执行机器码,从而得到智能合约的执行结果。本申请实施例通过直译的方式完成编译,编译时间和编译结果大小受控于字节码本身的大小,使得合约编译能够在线性范围的时间内完成,且获得的编译结果大小可控。

7、在本申请实施例的一种实现方式中,所述将所述字节码直译为机器码,可以包括:

8、对所述字节码进行解析,得到所述字节码包含的所有方法体;

9、针对每个所述方法体,将所述方法体包含的字节码指令转换为机器码指令,得到所述方法体的机器码序列。

10、进一步的,所述将所述方法体包含的字节码指令转换为机器码指令,得到所述方法体的机器码序列,可以包括:

11、提取所述方法体包含的字节码指令序列;

12、依次将所述字节码指令序列包含的每个字节码指令的指令逻辑转换为机器码指令的指令逻辑,得到所述方法体的机器码序列。

13、在本申请实施例的一种实现方式中,在将所述字节码直译为机器码之后,还可以包括:

14、将所述字节码存储至区块链账本;

15、将所述机器码存储至缓存和/或数据库。

16、进一步的,所述执行所述机器码,可以包括:

17、若所述缓存中存在所述机器码,则从所述缓存中读取并执行所述机器码;

18、若所述缓存中不存在所述机器码,且所述数据库中存在所述机器码,则从所述数据库中读取并执行所述机器码。

19、更进一步的,所述执行所述机器码,还可以包括:

20、若所述数据库中不存在所述机器码,则从所述区块链账本中读取并执行所述字节码。

21、在本申请实施例的一种实现方式中,所述获取智能合约的字节码,可以包括:

22、当部署所述智能合约或者首次调用所述智能合约时,获取所述智能合约的字节码。

23、本申请实施例的第二方面提供了一种执行智能合约的装置,包括:

24、字节码获取模块,用于获取智能合约的字节码;

25、直译模块,用于将所述字节码直译为机器码,所述直译指将字节码的指令逻辑映射为机器码的指令逻辑;

26、机器码执行模块,用于执行所述机器码,得到所述智能合约的执行结果。

27、本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例的第一方面提供的执行智能合约的方法。

28、本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例的第一方面提供的执行智能合约的方法。

29、本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如本申请实施例的第一方面提供的执行智能合约的方法。

30、可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。



技术特征:

1.一种执行智能合约的方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述将所述字节码直译为机器码,包括:

3.如权利要求2所述的方法,其特征在于,所述将所述方法体包含的字节码指令转换为机器码指令,得到所述方法体的机器码序列,包括:

4.如权利要求1所述的方法,其特征在于,在将所述字节码直译为机器码之后,还包括:

5.如权利要求4所述的方法,其特征在于,所述执行所述机器码,包括:

6.如权利要求5所述的方法,其特征在于,所述执行所述机器码,还包括:

7.如权利要求1至6任一项所述的方法,其特征在于,所述获取智能合约的字节码,包括:

8.一种执行智能合约的装置,其特征在于,包括:

9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的执行智能合约的方法。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的执行智能合约的方法。


技术总结
本申请涉及区块链技术领域,提出一种执行智能合约的方法、装置、电子设备和存储介质。该方法包括:获取智能合约的字节码;将字节码直译为机器码,直译是指将字节码的指令逻辑映射为机器码的指令逻辑;执行机器码,得到智能合约的执行结果。本申请通过直译的方式完成编译,编译时间和编译结果大小受控于字节码本身的大小,使得合约编译能够在线性范围的时间内完成,且获得的编译结果大小可控。

技术研发人员:胡麦芳,黄方蕾,何奇,张珂杰,邱炜伟
受保护的技术使用者:杭州趣链科技有限公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1