本申请涉及区块链,特别是涉及一种智能合约的加速执行方法、装置、计算机设备和存储介质。
背景技术:
1、区块链技术是一种互联网数据库技术,其特点是去中心化、公开透明,允许每个人参与数据库记录。智能合约是一种程序化合约,可以部署在区块链中,在满足预设条件时自动执行,并且随着区块链技术的发展,智能合约得到了越来越多的应用。
2、相关技术中通过aot(ahead of time,预先编译)的方式,在解释执行的程序运行之前,将程序代码预先编译为机器码,然后再执行机器码,以提高智能合约的执行效率,但是,目前aot编译中可能产生较大数量的指令,从而影响智能合约的执行效率。
3、针对相关技术中存在aot编译中可能产生较大数量的指令,从而影响智能合约的执行效率的问题,目前还没有提出有效的解决方案。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够减少aot编译中产生的指令数量的智能合约的加速执行方法、装置、计算机设备和存储介质。
2、第一个方面,在本实施例中提供了一种智能合约的加速执行方法,包括:
3、获取智能合约的字节码指令,将所述字节码指令转换为对应的中间代码指令;
4、在确定当前cpu支持向量指令集时,以所述向量指令集对所述中间代码指令进行编译,得到所述智能合约对应的合约机器码;
5、执行所述合约机器码,得到所述智能合约的执行结果。
6、在其中的一些实施例中,还包括:
7、通过预设指令读取所述当前cpu的cpu信息;
8、根据所述cpu信息判断所述当前cpu是否支持所述向量指令集。
9、在其中的一些实施例中,所述以所述向量指令集对所述中间代码指令进行编译,得到所述智能合约对应的合约机器码,包括:
10、按顺序遍历所述中间代码指令,并优先采用所述向量指令集将所述中间代码指令编译为汇编指令,得到对应的汇编代码序列;
11、通过汇编器将所述汇编代码序列转换为机器码,得到所述合约机器码。
12、在其中的一些实施例中,还包括:
13、采用常规指令集将所述中间代码指令编译为汇编指令,得到对应的汇编代码序列。
14、在其中的一些实施例中,还包括:
15、当所述当前cpu不支持所述向量指令集时,以常规指令集对所述中间代码指令进行编译,得到所述智能合约对应的合约机器码。
16、在其中的一些实施例中,在所述确定当前cpu支持向量指令集之前,还包括:
17、预先选定用于保存所述智能合约执行环境的内存地址的目标寄存器。
18、在其中的一些实施例中,所述执行所述合约机器码,得到所述智能合约的执行结果,包括:
19、将所述智能合约执行环境的相关内存地址与预先选定的目标寄存器进行绑定;
20、调用执行所述智能合约的合约机器码,得到所述智能合约的执行结果。
21、第二个方面,在本实施例中提供了一种智能合约的加速执行装置,包括:
22、获取模块,用于获取智能合约的字节码指令,将所述字节码指令转换为对应的中间代码指令;
23、编译模块,用于在确定当前cpu支持向量指令集时,以所述向量指令集对所述中间代码指令进行编译,得到所述智能合约对应的合约机器码;
24、执行模块,用于执行所述合约机器码,得到所述智能合约的执行结果。
25、第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的智能合约的加速执行方法。
26、第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的智能合约的加速执行方法。
27、与相关技术相比,在本实施例中提供的智能合约的加速执行方法、装置、计算机设备和存储介质,通过获取智能合约的字节码指令,将所述字节码指令转换为对应的中间代码指令;在确定当前cpu支持向量指令集时,以所述向量指令集对所述中间代码指令进行编译,得到所述智能合约对应的合约机器码;执行所述合约机器码,得到所述智能合约的执行结果。通过本申请,能够在确定当前cpu支持向量指令集时,以向量指令集对中间代码指令进行编译,减少编译中产生的指令数量,从而解决了影响智能合约的执行效率的问题。
28、本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
1.一种智能合约的加速执行方法,其特征在于,包括:
2.根据权利要求1所述的智能合约的加速执行方法,其特征在于,还包括:
3.根据权利要求1所述的智能合约的加速执行方法,其特征在于,所述以所述向量指令集对所述中间代码指令进行编译,得到所述智能合约对应的合约机器码,包括:
4.根据权利要求3所述的智能合约的加速执行方法,其特征在于,还包括:
5.根据权利要求1所述的智能合约的加速执行方法,其特征在于,还包括:
6.根据权利要求1所述的智能合约的加速执行方法,其特征在于,在所述确定当前cpu支持向量指令集之前,还包括:
7.根据权利要求1所述的智能合约的加速执行方法,其特征在于,所述执行所述合约机器码,得到所述智能合约的执行结果,包括:
8.一种智能合约的加速执行装置,其特征在于,包括:
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的智能合约的加速执行方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的智能合约的加速执行方法的步骤。
