智能合约的部署方法、装置、设备、存储介质及程序产品与流程

文档序号:34825609发布日期:2023-07-20 09:59阅读:26来源:国知局
智能合约的部署方法、装置、设备、存储介质及程序产品与流程

本技术属于区块链,尤其涉及一种智能合约的部署方法、装置、设备、存储介质及程序产品。


背景技术:

1、随着区块链技术和业务的广泛深入发展,越来越多的业务依赖于智能合约来接入或实现,而往往一个业务就需要一个智能合约或者多个智能合约,智能合约的执行等缺乏很好且统一的技术方案。且随业务场景变得更加复杂,智能合约设计也变得更加复杂。往往改动一个智能合约,就会影响其它合约,如用户业务的大幅改动或重新更换,造成极大的接入困难及管理效率的低下。从业务角度,也缺乏对智能合约很好的统一执行。

2、此外,在复杂业务场景下,单个智能合约设计会变得更复杂,同时也会存在智能合约间的复杂调用,这种复杂调用会造成冗余调用问题,冗余调用会降低合约执行效率,对业务系统使用体验造成不良影响。


技术实现思路

1、本技术实施例提供了一种智能合约的部署方法、装置、设备、存储介质及程序产品,能够解决现有的复杂智能合约的执行效率较低的问题。

2、第一方面,本技术实施例提供一种智能合约的部署方法,方法包括:

3、在接收到智能合约的部署请求的情况下,生成和所述智能合约对应的第一标识,所述第一标识用于标识所述智能合约;

4、将所述智能合约拆分为第一子合约、第二子合约、第三子合约和第四子合约;

5、其中,在接收到针对所述智能合约的交易请求的情况下,所述第一子合约用于确定针对所述智能合约的交易请求的业务类型,并根据所述业务类型将所述交易请求转发至所述业务类型对应的第二子合约,所述第二子合约用于调用所述第三子合约验证所述交易请求的交易权限,并在所述交易权限验证通过的情况下,调用所述第四子合约执行所述交易请求;

6、生成用于标识所述第一子合约的第一子标识、用于标识所述第二子合约的第二子标识、用于标识所述第三子合约的第三子标识以及用于标识所述第四子合约的第四子标识;

7、将所述第一子合约、所述第二子合约、所述第三子合约以及所述第四子合约部署至区块链上,并将所述第一子标识、所述第二子标识、所述第三子标识和所述第四子标识与所述第一标识进行关联。

8、在一些实施例中,所述生成用于标识所述第一子合约的第一子标识、用于标识所述第二子合约的第二子标识、用于标识所述第三子合约的第三子标识以及用于标识所述第四子合约的第四子标识,包括:

9、确定所述智能合约的合约类型、合约名称以及合约数据;

10、根据所述合约类型生成所述第一子合约的第一待定标识;

11、判断是否存在和所述第一待定标识相同的标识;

12、在不存在和所述第一待定标识相同的标识的情况下,将所述第一待定标识确定为所述第一子标识;

13、根据所述合约名称生成所述第二子标识,并根据所述合约数据生成第三子标识和第四子标识。

14、在一些实施例中,所述将所述第一子标识、所述第二子标识、所述第三子标识和所述第四子标识与所述第一标识进行关联之后,所述方法还包括:

15、在接收到针对所述智能合约的交易请求的情况下,确定所述交易请求对应的第一子标识;

16、根据所述第一子标识获取所述第一子合约,以及所述第一子合约的第一关联关系,其中,所述第一关联关系为第一子合约与第二子合约的关联关系;

17、根据所述第一子合约以及所述第一关联关系确定所述交易请求对应的第二子标识;

18、根据所述第二子标识获取所述第二子合约,以及所述第二子合约的第二关联关系,其中,所述第二关联关系为所述第二子合约与第三子合约及第四子合约的关联关系;

19、根据所述第二子合约以及所述第二关联关系获取所述第三子合约以及所述第四子合约;

20、将所述第一子合约、第二子合约、第三子合约以及第四子合约合并为合约组合,并按照所述合约组合的层级关系执行所述合约组合。

21、在一些实施例中,所述将所述第一子标识、所述第二子标识、所述第三子标识和所述第四子标识与所述第一标识进行关联之后,所述方法包括:

22、在所述智能合约合并入任一目标合约的情况下,确定所述目标合约的第二标识;

23、解除第一子标识、所述第二子标识、所述第三子标识和所述第四子标识同所述第一标识的关联关系;

24、将所述第一子标识、所述第二子标识、所述第三子标识和所述第四子标识关联至所述第二标识。

25、在一些实施例中,所述将所述第一子标识、所述第二子标识、所述第三子标识和所述第四子标识与所述第一标识进行关联之后,所述方法包括:

26、在所述智能合约的合约内容发生变化的情况下,确定发生变化的所述合约内容相关的目标子合约,其中,目标子合约为所述第一子合约、第二子合约、第三子合约以及第四子合约中的一项或多项;

27、修改目标子标识与所述第一标识的关联关系,其中,所述目标子标识用于标识所述目标子合约。

28、在一些实施例中,所述将所述第一子标识、所述第二子标识、所述第三子标识和所述第四子标识与所述第一标识进行关联,包括:

29、将所述第一子标识与所述第一标识进行绑定;

30、将所述第二子标识与所述第一子标识进行绑定;

31、将所述第三子标识及所述第四子标识与所述第二子标识进行绑定。

32、第二方面,本技术实施例提供一种智能合约的部署装置,装置包括:

33、获取模块,用于在接收到智能合约的部署请求的情况下,生成和所述智能合约对应的第一标识,所述第一标识用于标识所述智能合约;

34、拆分模块,用于将所述智能合约拆分为第一子合约、第二子合约、第三子合约和第四子合约;

35、其中,在接收到针对所述智能合约的交易请求的情况下,所述第一子合约用于确定针对所述智能合约的交易请求的业务类型,并根据所述业务类型将所述交易请求转发至所述业务类型对应的第二子合约,所述第二子合约用于调用所述第三子合约验证所述交易请求的交易权限,并在所述交易权限验证通过的情况下,调用所述第四子合约执行所述交易请求;

36、生成模块,用于生成用于标识所述第一子合约的第一子标识、用于标识所述第二子合约的第二子标识、用于标识所述第三子合约的第三子标识以及用于标识所述第四子合约的第四子标识;

37、关联模块,用于将所述第一子合约、所述第二子合约、所述第三子合约以及所述第四子合约部署至区块链上,并将所述第一子标识、所述第二子标识、所述第三子标识和所述第四子标识与所述第一标识进行关联。

38、第三方面,本技术实施例提供了一种智能合约的部署设备,设备包括:处理器以及存储有计算机程序指令的存储器;

39、处理器执行计算机程序指令时实现如上的智能合约的部署方法。

40、第四方面,本技术实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如上的智能合约的部署方法。

41、第五方面,本技术实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序指令,所述计算机程序指令被处理器执行时实现如上的智能合约的部署方法。

42、在本技术中,通过将复杂的智能合约进行拆分为多个子合约,每个子合约仅负责实现智能合约的一部分功能,并且对每个子合约生成一个唯一的子标识,然后将这些子标识和智能合约的第一标识进行关联,这样一来,可以降低智能合约的耦合性,如果主合约想要执行哪一部分功能,即可调用该功能对应的子合约,在实现业务交易的过程中逻辑清楚,不会产生冗余调用的问题,提高了智能合约的执行效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1