本申请涉及区块链,特别是涉及一种智能合约处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、随着区块链技术的发展,智能合约技术在不同区块链平台上得到推广应用,其中,区块链技术可通过块链式数据结构验证和存储数据,并根据分布式节点共识算法生成和更新数据,同时还可利用密码学的方式保证数据传输和访问的安全,以及通过执行由自动化脚本代码组成的智能合约,来实现实际业务场景下的业务逻辑。其中,智能合约具体可以理解为在区块链网络上运行的程序,区块链网络可以作为执行智能合约的操作系统,而智能合约的执行过程可以理解为操作系统执行可运行程序的执行过程。
2、传统技术中,基于区块链网络,同一交易业务通常只能调用一个智能合约的函数,如果需要调用多个合约,则需要采用合约改造的方式,以跨合约调用或者事件触发的方式在合约内部实现两个合约的逻辑串行处理。比如,如果实际业务执行过程中,比如需要调用a合约、b合约两个合约时,则需要改造a合约的逻辑代码,通过改造逻辑代码的方式,实现在a合约中配置跨合约调用的功能,从而通过跨合约调用功能实现对b合约的调用。
3、然而传统的改造合约的方式,由于需要预先进行合约改造,而不能根据用户自身的业务需求,实时进行合约调用的修改,比如调用的合约数量、以及每个合约各自的调用顺序等,都无法直接进行调整和修改,只能采用从头改造合约的方式。因此,传统上采用合约改造实现多个智能合约的调用的方式,不具有灵活性,无法满足实际业务场景的不同逻辑处理需求,存在智能合约调用处理工作效率低的问题。
技术实现思路
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、上述智能合约处理方法、装置、计算机设备、存储介质和计算机程序产品中,通过接收合约调用请求,若确定对合约调用请求的交易验证通过,获取与合约调用请求对应的交易业务数据,并识别交易业务数据中的管道符,从而根据管道符对交易业务数据进行分割处理,获得分割处理后的合约调用数组,以根据合约调用数组中各智能合约的调用顺序,依次调用并执行各智能合约对应的合约函数,直至合约调用数组中的所有智能合约调用结束,生成与交易业务数据对应的业务处理结果。实现了根据管道符对待调用的多个智能合约的连接、以及依次处理,能够灵活调用不同的智能合约以满足实际业务需求,直至所有智能合约调用结束,生成得到业务处理结果,而无需对不同智能合约进行合约改造,减少实际业务处理过程中的繁琐操作以及资源消耗,进一步提升智能合约调用处理工作效率。
1.一种智能合约处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述合约调用数组中各智能合约的调用顺序,依次调用并执行各所述智能合约对应的合约函数,直至所述合约调用数组中的所有智能合约调用结束,生成与所述交易业务数据对应的业务处理结果,包括:
3.根据权利要求1所述的方法,其特征在于,生成与所述交易业务数据对应的业务处理结果,包括:
4.根据权利要求3所述的方法,其特征在于,所述保存点信息包括默认值,所述执行结果保存方式包括与所述默认值对应的回滚保存方式,所述执行返回结果包括执行成功和执行失败;所述根据所述执行结果保存方式,对各所述合约调用请求的执行返回结果进行保存,包括:
5.根据权利要求4所述的方法,其特征在于,所述保存点信息还包括预设值,所述执行结果保存方式还包括与所述预设值对应的当前值保存方式;所述根据所述执行结果保存方式,对各所述合约调用请求的执行返回结果进行保存,包括:
6.根据权利要求1至5任意一项所述的方法,其特征在于,在接收合约调用请求时,还包括:
7.根据权利要求6所述的方法,其特征在于,所述交易业务字段包括签名数据、管道符数量以及保存点;对所述交易业务字段进行交易验证,生成与所述合约调用请求对应的交易验证结果,包括:
8.一种智能合约处理装置,其特征在于,所述装置包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。