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

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

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

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

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

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

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN111770204A(43)申请公布日2020.10.13(21)申请号202010901430.6(22)申请日2020.08.31(71)申请人支付宝(杭州)信息技术有限公司地址310000浙江省杭州市西湖区西溪路556号8层B段801-11(72)发明人闫莺魏长征郭学鹏(74)专利代理机构北京博思佳知识产权代理有限公司11415代理人李威(51)Int.Cl.H04L29/08(2006.01)G06Q20/06(2012.01)G06Q20/38(2012.01)G06Q40/04(2012.01)权利要求书3页说明书15页附图5页(54)发明名称一种执行智能合约的方法、区块链节点和存储介质(57)摘要本说明书提供一种执行智能合约的方法、区块链节点和存储介质。一种执行智能合约的方法实施例包括:区块链节点接收创建智能合约的请求,所述请求中包括所述智能合约的字节码;所述区块链节点完成所述智能合约的部署后,开始将所述智能合约的字节码通过AoT编译为机器码并存储;所述区块链节点执行部署的智能合约时,如果本地存储有所述智能合约的机器码,则执行所述机器码。通过上述本申请的实施例,所述区块链节点可以大幅提升执行智能合约的速度,而且可以降低区块链节点上的存储开销。CN111770204ACN111770204A权利要求书1/3页1.一种执行智能合约的方法,包括:区块链节点接收创建智能合约的请求,所述请求中包括所述智能合约的字节码;所述区块链节点完成所述智能合约的部署后,开始将所述智能合约的字节码通过AoT编译为机器码并存储;所述区块链节点执行部署的智能合约时,如果本地存储有所述智能合约的机器码,则执行所述机器码。2.如权利要求1所述的方法,所述区块链节点完成所述智能合约的部署后,开始将所述智能合约的字节码通过AoT编译为机器码,具体包括:所述区块链节点完成创建所述智能合约后开始对所述智能合约的字节码进行AoT编译;或,区块链节点完成创建所述智能合约后,利用相对空闲的时间段对所述智能合约的字节码进行AoT编译。3.如权利要求1所述的方法,所述区块链节点执行所述机器码,包括:所述区块链节点执行存储的所述智能合约中对应所调用函数的机器码。4.如权利要求1所述的方法,所述区块链节点执行部署的智能合约时,如果本地没有存储所述智能合约的机器码,则对所述智能合约的字节码进行解释执行。5.如权利要求4所述的方法,所述区块链节点对所述智能合约的字节码进行解释执行,包括:所述区块链节点对所述智能合约中对应所调用函数的字节码进行解释执行。6.如权利要求4所述的方法,所述区块链节点执行部署的智能合约时,如果本地没有存储所述智能合约的机器码,对所述智能合约的字节码进行解释执行,具体包括:所述区块链节点执行部署的智能合约时,如果本地没有存储所述智能合约的机器码,所述区块链节点还查询当前对所述智能合约字节码的AoT编译情况,如果正处于AoT编译中,则对所述智能合约的字节码进行解释执行;或,所述区块链节点执行部署的智能合约时,如果本地没有存储所述智能合约的机器码,所述区块链节点还查询当前对所述智能合约字节码的AoT编译情况,如果尚未开始AoT编译,则启动AoT编译,并对所述智能合约的字节码进行解释执行。7.如权利要求1所述的方法,所述区块链节点执行部署的智能合约时,如果本地没有存储所述智能合约的机器码,则对所述智能合约的字节码进行JIT编译并执行。8.如权利要求7所述的方法,所述对智能合约的字节码进行JIT编译,包括:对所述智能合约的字节码进行逐句翻译,并将翻译后的机器码缓存下来以供后续调用时使用;或,对所述智能合约的字节码进行翻译和/或执行的过程中识别热点的机器码,对热点的机器码进行编译并缓存以供后续调用。9.如权利要求8所述的方法,所述热点的机器码的粒度包括函数级别或代码块级别。10.如权利要求8所述的方法,所述对智能合约的字节码进行JIT编译,还包括:对所述智能合约的字节码进行JIT翻译的过程中进行优化编译。2CN111770204A权利要求书2/3页11.如权利要求1、3、4、6、7中任一项所述的方法,所述存储为缓存。12.一种执行智能合约的方法,包括:区块链节点部署智能合约的字节码后,开始将所述智能合约的字节码通过AoT编译为机器码并存储;所述区块链节点执行部署的智能合约时,如果本地存储有所述智能合约的机器码,则执行所述机器码。13.如权利要求12所述的方法,所述区块链节点部署所述智能合约的字节码后,开始将所述智能合约的字节码通过AoT编译为机器码,具体包括:所述区块链节点完成创建所述智能合约后开始对所述智能合约的字节码进行AoT编译;或,区块链节点完成创建所述智能合约后,利用相