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

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

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

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

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

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

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN113220326A(43)申请公布日2021.08.06(21)申请号202110510125.9(22)申请日2021.05.11(71)申请人支付宝(杭州)信息技术有限公司地址310000浙江省杭州市西湖区西溪路556号8层B段801-11申请人蚂蚁区块链科技(上海)有限公司(72)发明人林志平(74)专利代理机构北京博思佳知识产权代理有限公司11415代理人周嗣勇(51)Int.Cl.G06F8/65(2018.01)G06F8/60(2018.01)G06F9/455(2006.01)权利要求书2页说明书12页附图3页(54)发明名称智能合约升级方法及区块链系统(57)摘要本说明书提供一种智能合约升级方法及区块链节点;该方法可以包括:区块链网络中的所有区块链节点分别获取包含字节码的合约部署交易,并基于所述合约部署交易部署相应的智能合约;所述区块链网络中的第一区块链节点对所述字节码进行JIT编译,得到所述智能合约的机器码,并基于所述机器码生成针对所述智能合约的合约升级交易;所述区块链网络中的所有区块链节点分别获取所述合约升级交易,并基于所述合约升级交易将所述智能合约对应的合约代码由所述字节码升级为所述机器码。CN113220326ACN113220326A权利要求书1/2页1.一种智能合约升级方法,包括:区块链网络中的所有区块链节点分别获取包含字节码的合约部署交易,并基于所述合约部署交易部署相应的智能合约;所述区块链网络中的第一区块链节点对所述字节码进行JIT编译,得到所述智能合约的机器码,并基于所述机器码生成针对所述智能合约的合约升级交易;所述区块链网络中的所有区块链节点分别获取所述合约升级交易,并基于所述合约升级交易将所述智能合约对应的合约代码由所述字节码升级为所述机器码。2.根据权利要求1所述的方法,所述区块链网络中的第一区块链节点对所述字节码进行JIT编译,包括:所述第一区块链节点响应于用户发送的用于指示将所述智能合约的字节码编译为机器码的指示消息,对所述合约部署交易中的字节码进行JIT编译;或者,所述第一区块链节点在确定所述合约部署交易中包含用于指示将所述智能合约的字节码编译为机器码的指示标识的情况下,对所述合约部署交易中的字节码进行JIT编译;或者,所述第一区块链节点在确定所述合约部署交易由预定义的特定用户发起的情况下,对所述合约部署交易中的字节码进行JIT编译;或者,所述第一区块链节点在确定所述合约部署交易中包含的业务数据属于预定义的业务类型的情况下,对所述合约部署交易中的字节码进行JIT编译。3.根据权利要求1所述的方法,所述区块链网络中的第一区块链节点对所述字节码进行JIT编译,包括:所述第一区块链节点在确定所述智能合约的字节码被部署完成后,开始对所述智能合约的字节码进行JIT编译;或者,所述第一区块链节点在确定所述智能合约的字节码被部署完成的情况下,利用相对空闲的时间段对所述字节码进行JIT编译。4.根据权利要求1所述的方法,所述区块链网络中的第一区块链节点对所述字节码进行JIT编译,包括:所述第一区块链节点对所述合约部署交易中包含的所有字节码进行编译;和/或,所述第一区块链节点对所述合约部署交易中包含的字节码进行热点分析,并对得到的热点字节码进行编译;和/或,所述第一区块链节点对所述合约部署交易中包含的字节码进行优化编译。5.根据权利要求1所述的方法,所述区块链网络中的任一区块链节点基于所述合约升级交易将所述智能合约对应的合约代码由所述字节码升级为所述机器码,包括:所述区块链网络中的任一区块链节点确定所述智能合约的合约地址,并将所述合约地址中已部署的字节码替换为所述机器码。6.根据权利要求1所述的方法,还包括:所述区块链网络中的第二区块链节点接收针对所述智能合约的调用交易;所述第二区块链节点与所述第一区块链节点为同一节点或不同节点;所述所有区块链节点根据所述调用交易确定所述智能合约的合约地址,以获取所述智能合约的合约代码;2CN113220326A权利要求书2/2页所述所有区块链节点在确定所述合约代码为所述字节码的情况下,对所述字节码进行解释执行;所述所有区块链节点在确定所述合约代码为所述机器码的情况下,直接执行所述机器码。7.根据权利要求6所述的方法,所述所有区块链节点直接执行所述机器码,包括:所述所有区块链节点执行所述智能合约中对应所调用函数/代码块的机器码。8.根据权利要求1所述的方法,所述第一区块链节点预先获取了所述合约部署交易发送方的合约升级授权。9.根据权利要求1所述的方法,所述第一区块链节点的链代码中包含合约升级逻辑代码,用于指示在确定所述JIT编译已完成的情况下,生成针对所述智能合约的合约升级交易。10.