智能合约的处理方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:37155139 阅读:14 留言:0更新日期:2023-04-06 22:16
本申请公开了一种智能合约的处理方法、装置、设备及计算机可读存储介质。其中,该方法包括:获取智能合约任务,所述智能合约任务包括智能合约的调度任务和执行任务;根据所述智能合约对应的多个第一合约规则对所述智能合约任务进行分解,得到多个与所述第一合约规则分别对应的合约子任务;获取多个所述合约子任务分别对应的第一合约规则和数据;对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行,得到所述智能合约的执行结果。根据本申请实施例的智能合约的处理方法,能够提高容错率,提高整个智能合约的执行效率。提高整个智能合约的执行效率。提高整个智能合约的执行效率。

【技术实现步骤摘要】
智能合约的处理方法、装置、设备及计算机可读存储介质


[0001]本申请属于区块链
,尤其涉及一种智能合约的处理方法、装置、设备及计算机可读存储介质。

技术介绍

[0002]目前,智能合约负责具体规则的程序自动化执行,不受人为干扰,且一旦满足规则的具体条件,就会自动立刻执行。智能合约的执行一般分为两步:第一步,从区块链所有节点选取候选节点,由候选节点结合智能合约数据进行执行;第二步,通过共识节点把计算结果同步到其它验证节点,其它验证节点再通过相关数据以及智能合约规则的调用执行来验证该结果,当一定数量的验证节点都通过验证后,则把该智能合约计算结果进行存储。
[0003]通常,一个智能合约可以对应多个合约规则,智能合约的执行主要是对具体合约规则的执行。现有技术中,一个完整的智能合约存在执行完毕和不执行两种情况。若在执行智能合约的过程中出现异常,则需要重新执行整个智能合约,导致智能合约的执行效率较低。

技术实现思路

[0004]本申请实施例提供了一种智能合约的处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提高容错率,提高整个智能合约的执行效率。
[0005]第一方面,本申请实施例提供了一种智能合约的处理方法,该方法包括:
[0006]获取智能合约任务,所述智能合约任务包括智能合约的调度任务和执行任务;
[0007]根据所述智能合约对应的多个第一合约规则对所述智能合约任务进行分解,得到多个与所述第一合约规则分别对应的合约子任务;
[0008]获取多个所述合约子任务分别对应的第一合约规则和数据;
[0009]对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行,得到所述智能合约的执行结果。
[0010]在一种可能的实现方式中,在获取多个所述合约子任务分别对应的第一合约规则和数据之前,所述方法还包括:
[0011]获取合约规则文件;
[0012]将所述合约规则文件中的合约规则以双向循环链式存储的方式存储至区块链平台合约规则库,其中,所述双向循环链存储的方式用于表征根据目标合约规则能够确定所述目标合约规则对应的上一合约规则和下一合约规则,在所述目标合约规则为最后一个合约规则的情况下,根据所述目标合约规则能够确定第一个合约规则,在所述目标合约规则为第一个合约规则的情况下,根据所述目标合约规则能够确定最后一个合约规则,所述目标合约规则为多个所述合约规则中的任意一个;
[0013]所述获取多个所述合约子任务分别对应的第一合约规则,包括:
[0014]从所述区块链平台合约规则库中获取多个所述合约子任务分别对应的第一合约
规则。
[0015]在一种可能的实现方式中,在获取合约规则文件之前,所述方法还包括:
[0016]接收外部系统接口层载入的初始合约规则;
[0017]对所述初始合约规则进行公示;
[0018]在所述公示的期限内接收到所述外部系统接口层发送的调整通知的情况下,根据所述调整通知对所述初始合约规则进行调整,得到调整合约规则;
[0019]将所述调整合约规则作为所述初始合约规则,并返回执行对所述初始合约规则进行公示,直至所述初始合约规则确认通过或所述调整的次数达到预设次数;
[0020]对所述初始合约规则进行编译,生成合约规则文件。
[0021]在一种可能的实现方式中,在对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行之前,所述方法还包括:
[0022]根据多个所述合约子任务分别对应的第一合约规则对多个所述合约子任务进行逻辑关联,得到多个所述合约子任务之间的逻辑关联关系,以及对多个所述合约子任务分别对应的合约功能组件进行组合,得到多个所述合约子任务之间的功能组合关系;
[0023]所述对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行,包括:
[0024]根据所述逻辑关系和所述功能组合关系对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行。
[0025]在一种可能的实现方式中,所述对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行,包括:
[0026]获取多个第一目标节点,其中,所述多个第一目标节点根据随机节点选择算法确定得到,所述随机节点选择算法用于在每次对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行之前,随机确定多个第一目标节点;
[0027]通过所述多个第一目标节点对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行。
[0028]在一种可能的实现方式中,所述获取多个第一目标节点,包括:
[0029]获取区块链中N个节点分别对应的目标时间,所述目标时间包括调度时间、任务执行时间和执行任务时占用目标资源的时间中的任意一个,所述目标资源包括中央处理器、内存和网络中的任意一个,所述N为保证所述区块链可用的最低节点数;
[0030]对所述N个节点分别对应的目标时间求和,得到目标总时间;
[0031]根据所述N个节点分别对应的目标时间和所述目标总时间确定目标节点对应的权重,其中,所述目标节点为所述N个节点中的任意一个;
[0032]根据所述权重计算所述目标节点对应的综合选取值,得到所述N个节点分别对应的综合选取值;
[0033]根据所述N个节点分别对应的综合选取值确定多个第一目标节点。
[0034]在一种可能的实现方式中,所述根据所述N个节点分别对应的综合选取值确定多个第一目标节点,包括:
[0035]对所述N个节点分别对应的综合选取值进行求和,得到综合选取总值;
[0036]以所述N个节点分别对应的综合选取值对所述综合选取总值进行求余处理,得到N
个余数;
[0037]在所述N个节点中选取所述余数为奇数的节点;
[0038]在所述余数为奇数的节点达到预设数量的情况下,将所述余数为奇数的多个节点确定为多个第一目标节点。
[0039]在一种可能的实现方式中,在得到所述智能合约的执行结果之后,所述方法还包括:
[0040]获取多个第二目标节点,其中,所述多个第二目标节点根据所述随机节点选择算法确定得到,所述随机节点选择算法用于在每次得到所述智能合约的执行结果之后,随机确定多个第二目标节点;
[0041]通过所述多个第二目标节点对所述执行结果进行验证。
[0042]在一种可能的实现方式中,所述方法还包括:
[0043]在所述验证通过的情况下,以双向循环链式存储的方式存储所述执行结果。
[0044]第二方面,本申请实施例提供了一种智能合约的处理装置,该装置包括:
[0045]第一获取模块,用于获取智能合约任务,所述智能合约任务包括智能合约的调度任务和执行任务;
[0046]分解模块,用于根据所述智能合约对应的多个第一合约规则对所述智能合约任务进行分解,得到多个与所述第一合约规则分别对应的合约子任务;<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能合约的处理方法,其特征在于,包括:获取智能合约任务,所述智能合约任务包括智能合约的调度任务和执行任务;根据所述智能合约对应的多个第一合约规则对所述智能合约任务进行分解,得到多个与所述第一合约规则分别对应的合约子任务;获取多个所述合约子任务分别对应的第一合约规则和数据;对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行,得到所述智能合约的执行结果。2.根据权利要求1所述的方法,其特征在于,在获取多个所述合约子任务分别对应的第一合约规则和数据之前,所述方法还包括:获取合约规则文件;将所述合约规则文件中的合约规则以双向循环链式存储的方式存储至区块链平台合约规则库,其中,所述双向循环链存储的方式用于表征根据目标合约规则能够确定所述目标合约规则对应的上一合约规则和下一合约规则,在所述目标合约规则为最后一个合约规则的情况下,根据所述目标合约规则能够确定第一个合约规则,在所述目标合约规则为第一个合约规则的情况下,根据所述目标合约规则能够确定最后一个合约规则,所述目标合约规则为多个所述合约规则中的任意一个;所述获取多个所述合约子任务分别对应的第一合约规则,包括:从所述区块链平台合约规则库中获取多个所述合约子任务分别对应的第一合约规则。3.根据权利要求2所述的方法,其特征在于,在获取合约规则文件之前,所述方法还包括:接收外部系统接口层载入的初始合约规则;对所述初始合约规则进行公示;在所述公示的期限内接收到所述外部系统接口层发送的调整通知的情况下,根据所述调整通知对所述初始合约规则进行调整,得到调整合约规则;将所述调整合约规则作为所述初始合约规则,并返回执行对所述初始合约规则进行公示,直至所述初始合约规则确认通过或所述调整的次数达到预设次数;对所述初始合约规则进行编译,生成合约规则文件。4.根据权利要求1所述的方法,其特征在于,在对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行之前,所述方法还包括:根据多个所述合约子任务分别对应的第一合约规则对多个所述合约子任务进行逻辑关联,得到多个所述合约子任务之间的逻辑关联关系,以及对多个所述合约子任务分别对应的合约功能组件进行组合,得到多个所述合约子任务之间的功能组合关系;所述对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行,包括:根据所述逻辑关系和所述功能组合关系对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行。5.根据权利要求1所述的方法,其特征在于,所述对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行,包括:获取多个第一目标节点,其中,所述多个第一目标节点根据随机节点选择算法确定得到,所述随机节点选择算法用于在每次对多个所述合约子任务分别对应的第一合约规则和
数据进行调度和执行之前,随机确定多个第一目标节点;通过所述多个第一目标节点对多个所述合约子任务分别对应的第一合约规则和数据进行调度和执行。6.根据权利要求5所...

【专利技术属性】
技术研发人员:曹理辉张晓京叶可可辛艳双赵思远周胜坤黄梦芝贾晓元王雪龙
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1