一种区块链智能合约的切换方法技术

技术编号:29299860 阅读:25 留言:0更新日期:2021-07-17 01:16
本发明专利技术适用区块链智能合约技术领域,提供了一种区块链智能合约的切换方法,方法包括:从区块链中获取待调用的多个智能合约,将多个智能合约划分成多个智能合约集,基于不同的验证请求切换不同的智能合约集至不同的片区区块链进行执行,对智能合约集在区块链中的执行结果进行验证,若均验证通过则确定智能合约执行有效;实现对不同的验证请求切换不同的智能合约集至区块链进行执行,大大节省了区块链节点的存储空间以及运算负荷,并且还可以在多个不同的片区区块链并行执行智能合约,提高了区块链对智能合约的处理效率。块链对智能合约的处理效率。

【技术实现步骤摘要】
一种区块链智能合约的切换方法
[0001]

[0002]本专利技术属于区块链智能合约
,尤其涉及一种区块链智能合约的切换方法。
[0003]
技术介绍

[0004]智能合约所有的参与节点都保存有所有的智能合约和账户状态,并且这些节点还要串行执行所有需要验证的智能合约;也就是要用极大的计算和存储冗余来保证整个区块链的网络系统的安全性和去中心化,但这也意味着整个区块链的网络系统丧失了可扩展性、单节点的计算性能成为了整个区块链的网络系统的瓶颈;因此,对智能合约的计算仍需进一步优化。
[0005]
技术实现思路

[0006]鉴于上述现有技术的不足,本专利技术的目的在于提供一种区块链智能合约的切换方法,旨在解决由于现有技术无法提供一种有效的区块链智能合约的切换方法,导致对区块链节点的性能要求较高,成本高,数据处理较慢、用户体验不佳的问题。
[0007]一方面,本专利技术提供了一种区块链智能合约的切换方法,所述方法包括下述步骤:从区块链中获取待调用的多个智能合约;将多个所述智能合约划分成多个智能合约集;基于不同的验证请求切换不同的智能合约集至不同的片区区块链进行执行;对所述智能合约集在所述区块链中的执行结果进行验证,若均验证通过则确定智能合约执行有效。
[0008]进一步地,所述智能合约集中的多个智能合约均相关联;所述智能合约集中的任意一智能合约与另一所述智能合约集中的任意一智能合约不相关联;所述相关联包括:直接关联或间接关联。
[0009]进一步优选地,基于不同的验证请求切换不同的智能合约集至区块链进行处理包括:基于不同的验证请求切换相对应的智能合约集至区块链进行处理;还包括:将所述智能合约集中的多个智能合约分配给所述区块链中的多个不同的节点进行处理。
[0010]进一步地,对所述智能合约集在所述区块链中的执行结果进行验证包括:从所述区块链的任意一节点中获取任意一区块;对所述区块中的梅克尔树的叶子节点进行验证,
若验证通过则确定智能合约执行有效。
[0011]进一步地,对所述区块中的梅克尔树的叶子节点进行验证包括:从所述区块中提取智能合约的执行结果,基于提取的所述智能合约的执行结果构造另一叶子节点,对比所述区块中的梅克尔树的叶子节点的根节点是否与所述另一叶子节点的根节点相一致,若一致则所述区块中的梅克尔树的叶子节点验证通过。
[0012]进一步优选地,所述若均验证通过则确定智能合约执行有效之前还包括:验证所述区块的上连区块标识是否被所述区块存储,若被存储则验证是否相一致,若一致则所述区块有效验证通过。
[0013]进一步优选地,所述确定智能合约执行有效为:确定所述智能合约集中的一个或多个智能合约在所述区块链中的执行结果有效。
[0014]另一方面,本专利技术提供了一种区块链智能合约的切换装置,所述装置包括:获取单元,从区块链中获取待调用的多个智能合约;划分单元,将多个所述智能合约划分成多个智能合约集;切换单元,基于不同的验证请求切换不同的智能合约集至不同的片区区块链进行执行;验证单元,对所述智能合约集在所述区块链中的执行结果进行验证;确定单元,若对所述智能合约集在所述区块链中的执行结果进行验证通过,则确定智能合约执行有效。
[0015]另一方面,本专利技术还提供了一种区块链智能合约切换装置,所述装置包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的区块链智能合约的切换方法。
[0016]另一方面,本专利技术还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行上述的区块链智能合约的切换方法。
[0017]本专利技术的有益效果在于:从区块链中获取待调用的多个智能合约,将多个智能合约划分成多个智能合约集,基于不同的验证请求切换不同的智能合约集至不同的片区区块链进行执行,对智能合约集在区块链中的执行结果进行验证,若均验证通过则确定智能合约执行有效;实现对不同的验证请求切换不同的智能合约集至区块链进行执行,大大节省了区块链节点的存储空间以及运算负荷,并且还可以在多个不同的片区区块链并行执行智能合约,提高了区块链对智能合约的处理效率。
[0018] 附图说明
[0019]图1和图2是本专利技术实施例一提供的区块链智能合约的切换方法的实现流程图;图3是本专利技术实施例二提供的区块链智能合约的切换装置的结构示意图;图4是本专利技术实施例三提供的区块链智能合约切换装置的硬件结构示意图。
[0020]具体实施方式
[0021]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0022]以下结合具体实施例对本专利技术的具体实现进行详细描述:实施例一:图1和图2示出了本专利技术实施例一提供的区块链智能合约的切换方法的实现流程,为了便于说明,仅示出了与本专利技术实施例相关的部分,详述如下:在步骤S101中,从区块链中获取待调用的多个智能合约;在本专利技术的实施例中,以进行关联划分。
[0023]在步骤S102中,将多个智能合约划分成多个智能合约集;在本专利技术的实施例中,智能合约集中的多个智能合约均相关联;智能合约集中的任意一智能合约与另一智能合约集中的任意一智能合约不相关联;相关联包括:直接关联或间接关联。
[0024]在步骤S103中,基于不同的验证请求切换不同的智能合约集至不同的片区区块链进行执行;在本专利技术的实施例中,基于不同的验证请求切换不同的智能合约集至区块链进行处理包括:基于不同的验证请求切换相对应的智能合约集至区块链进行处理;还包括:将智能合约集中的多个智能合约分配给区块链中的多个不同的节点进行处理。
[0025]在步骤S104中,对智能合约集在区块链中的执行结果进行验证,若均验证通过则确定智能合约执行有效。
[0026]在本专利技术的实施例中,对智能合约集在区块链中的执行结果进行验证包括步骤S201至步骤S204;在步骤S201中,从区块链的任意一节点中获取任意一区块;在本专利技术的实施例中,在步骤S202中,对区块中的梅克尔树的叶子节点进行验证,在本专利技术的实施例中,对区块中的梅克尔树的叶子节点进行验证包括:从区块中提取智能合约的执行结果,基于提取的智能合约的执行结果构造另一叶子节点,对比区块中的梅克尔树的叶子节点的根节点是否与另一叶子节点的根节点相一致,若一致则区块中的梅克尔树的叶子节点验证通过。
[0027]在步骤S204中,若均验证通过则确定智能合约执行有效。
[0028]在本专利技术的实施例中,若均验证通过则确定智能合约执行有效之前还包括步骤S203;在步骤S203中,验证区块的上连区块标识是否被区块存储,若被存储则验证是否相一致,若一致则区块有效验证通过本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链智能合约的切换方法,其特征在于,所述方法包括下述步骤:从区块链中获取待调用的多个智能合约;将多个所述智能合约划分成多个智能合约集;基于不同的验证请求切换不同的智能合约集至不同的片区区块链进行执行;对所述智能合约集在所述区块链中的执行结果进行验证,若均验证通过则确定智能合约执行有效。2.如权利要求1所述的方法,其特征在于,所述智能合约集中的多个智能合约均相关联;所述智能合约集中的任意一智能合约与另一所述智能合约集中的任意一智能合约不相关联;所述相关联包括:直接关联或间接关联。3.如权利要求1所述的方法,其特征在于,基于不同的验证请求切换不同的智能合约集至区块链进行处理包括:基于不同的验证请求切换相对应的智能合约集至区块链进行处理;还包括:将所述智能合约集中的多个智能合约分配给所述区块链中的多个不同的节点进行处理。4.如权利要求1所述的方法,其特征在于,对所述智能合约集在所述区块链中的执行结果进行验证包括:从所述区块链的任意一节点中获取任意一区块;对所述区块中的梅克尔树的叶子节点进行验证,若验证通过则确定智能合约执行有效。5.如权利要求4所述的方法,其特征在于,对所述区块中的梅克尔树的叶子节点进行验证包括:从所述区块中提取智能合约的执行结果,基于提取的所述智能合约的执行结果构造另一叶子节点,对比所述区块中的梅克尔树的叶子节点的根节点是否与所述另一叶子节点的根节点相一致,若一致则所述区块中的梅克尔树的叶子节点验证通过。6.如权利要求4所述的方法,其特征在于,所...

【专利技术属性】
技术研发人员:余鸿忠
申请(专利权)人:区块动力广州科技有限公司
类型:发明
国别省市:

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

1