本技术涉及计算机,尤其涉及一种数据处理方法、装置、设备以及存储介质。
背景技术:
1、区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链还可以进行数据加密传输、节点识别和安全访问,是一种先进的分布式基础架构。目前,因为区块链的不可篡改性与真实性,对于区块链的应用也越来越多。或者在区块链上维护一个公共的账本,该公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。合约是编程在区块链上的汇编语言,即在区块链系统中,合约是一种区块链上的各个节点可以理解并执行的代码,可以执行任意逻辑并得到结果。智能合约可以理解为是可执行程序,而区块链可以理解为是提供程序运行环境的操作系统。
2、基于上述功能,区块链的主程序通过调用合约来实现各种功能。其中区块链主程序调用合约的过程类似于web服务器调用外部程序所采用的公共网关接口(commongateway interface,cgi)模型。具体的,在主程序调用合约的一次调用生命周期内,该合约有完整的数据流,从磁盘加载数据、执行数据计算、而后将计算结果写回磁盘。调用生命周期结束后,智能合约从内存中清空数据。在合约调用执行过程,区域链中的各个节点需要自己完成区块链合约引擎计算的功能,因此每个节点都需要配备高性能的计算机硬件,存在大量的资源浪费。
3、因此急需一种可以提供可以安全的减轻区块链的计算压力的方案。
技术实现思路
1、本技术实施例提供了一种数据处理方法、装置、设备以及存储介质,用于借助第三方计算服务器实现区块链的计算功能,从而减轻区块链的计算压力;同时提供随机验证第三方计算服务器的方案,从而保证交易任务的安全执行。
2、有鉴于此,本技术一方面提供一种数据处理方法,包括:获取交易任务,并利用第一区域链节点的合约进程执行该交易任务;若执行到该合约进程的目标执行阶段,则调用第三方计算服务;在该第一区块链节点为验证节点时,获取第一计算服务器列表,该第一计算服务器列表不包括该交易任务的执行节点已使用的计算服务器;从该第一计算服务器列表中确定第一计算服务器,该第一计算服务器用于执行该交易任务的计算任务;将该计算任务分发至该第一计算服务器,以使得该第一计算服务器执行该计算任务得到该交易任务的第一计算结果;接收该第一计算结果。
3、本技术另一方面提供一种数据处理装置,包括:获取模块,用于获取交易任务;
4、处理模块,用于利用第一区块链节点的合约进程进行执行所述交易任务;若执行到所述合约进程的目标执行阶段,则调用第三方计算服务;
5、该获取模块,还用于在该第一区块链节点为验证节点时,获取第一计算服务器列表,该第一计算服务器列表不包括该交易任务的执行节点已使用的计算服务器;
6、该处理模块,还用于从该第一计算服务器列表中确定第一计算服务器,该第一计算服务器用于执行该交易任务的计算任务;
7、收发模块,用于将该计算任务分发至该第一计算服务器,以使得该第一计算服务器执行该计算任务得到该交易任务的第一计算结果;接收所述第一计算结果。
8、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该处理模块,还用于根据所述第一计算结果执行所述合约进程的下一阶段,并在执行到所述合约进程的结束语句时,得到所述交易任务的第一执行结果。
9、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该获取模块,还用于在该第一区域链节点为执行节点时,获取第二计算服务器列表,该第二计算服务器列表包括该第一区块链节点维护的全部计算机服务器;
10、该处理模块,还用于从所述第二计算服务器列表中确定第二计算服务器,所述第二计算服务器用于执行所述交易任务的计算任务,所述第二计算服务器为所述交易任务的执行节点使用的计算服务器;
11、该收发模块,还用于将所述计算任务分发至所述第一计算服务器,以使得所述第二计算服务器执行所述计算任务得到所述交易任务的第二计算结果;接收所述第二计算结果;
12、该处理模块,还用于根据所述第二计算结果执行所述合约进程的下一阶段,并在执行到所述合约进程的结束语句时,得到所述交易任务的第二执行结果。在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该处理模块,还用于根据该第一执行结果和该第二执行结果对该第一计算服务器和该第二计算服务器进行验证。
13、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该处理模块202,具体用于获取该第一计算服务器列表中各个计算服务器的资源信息,该资源信息包括但不限于内存信息、中央处理器的占用信息、网络信息、磁盘信息以及图像处理器的状态信息;
14、按照负载均衡规则和该-资源信息对该第一计算服务器列表中的各个计算服务器计算评分结果;
15、按照评分结果从高到低排序选择前n个计算服务器,并利用随机函数从该n个计算服务器中确定该第一计算服务器,该n为正整数。
16、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该处理模块,具体用于根据该n个计算服务器中n的取值设置该随机函数;
17、或者
18、根据该n个计算服务器中n的取值以及该n个计算服务器的权重设置该随机函数。
19、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该处理模块,具体用于获取该交易任务对应的资源需求信息;
20、根据该资源需求信息和该资源信息进行权重计算得到该评分结果。
21、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该收发模块,还用于向该第二计算服务器列表中的计算服务器周期性的发送查询请求,该查询请求用于查询该第二计算服务器列表中的计算服务器的资源信息;
22、接收该第二计算服务器列表中各个计算服务器返回的资源信息;
23、该处理模块,还用于根据该资源信息更新维护该第二计算服务器列表。
24、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该收发模块,还用于接收所述第一计算结果和所述第一签名,所述第一签名为利用目标算法对所述第一计算结果进行计算得到,所述目标算法包括但不限于rsa算法、dsa算法以及ecdsa算法。
25、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该处理模块,还用于根据该第一签名对该第一计算服务器进行验证。
26、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,所述第一计算结果为所述第一计算服务器在所述第一区块链节点验证通过且所述第一计算服务器的缓存中不存在所述计算任务的第一计算结果时,执行所述计算任务得到;
27、或者,
28、所述第一计算结果为所述第一计算服务器在所述第一区块链节点验证通过且所述第一计算服务器的缓存中存在所述计算任务的第一计算结果时,从所述第一计算服务器的缓存中读取得到。
29、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该收发模块,还用于接收所述第一计算服务器返回的执行错误结果以及第二签名,所述执行错误结果和所述第二签名是所述第一计算服务器在确定所述第一区块链节点验证未通过时生成。
30、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该处理模块,还用于在根据该第一执行结果确定该交易任务执行成功时,为该交易任务标记第一标识,并记录该第一执行结果至区块链,该第一标识用于指示该交易任务执行成功。
31、在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,该处理模块,还用于根据该第一执行结果更新该第一区块链节点所处区块链的状态数据。
32、本技术另一方面提供一种计算机设备,包括:存储器、处理器以及总线系统;
33、其中,存储器用于存储程序;
34、处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面的方法;
35、总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
36、本技术的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
37、本技术的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
38、从以上技术方案可以看出,本技术实施例具有以下优点:在合约进程中进行执行交易任务时,将交易任务的计算任务抽离并发送至第三方计算服务器进行计算,这样可以减少区块链的计算压力。同时在执行该交易任务的区块链节点为验证节点时,该区块链节点在确定第三方计算服务器时将排除该交易任务的执行节点使用的计算服务器,这样使得验证节点与执行节点之间不会使用同一样计算服务器,从而保证交易任务在验证过程中的安全性。
1.一种数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述从所述第一计算服务器列表中确定第一计算服务器包括:
5.根据权利要求4所述的方法,其特征在于,所述利用随机函数从所述n个计算服务器中确定所述第一计算服务器之前,所述方法还包括:
6.根据权利要求4所述的方法,其特征在于,所述按照负载均衡规则和所述资源信息对所述第一计算服务器列表中的各个计算服务器计算评分结果包括:
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,在所述第一计算服务器执行所述计算任务得到所述交易任务的第一计算结果之后,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述第一计算结果为所述第一计算服务器在所述第一区块链节点验证通过且所述第一计算服务器的缓存中不存在所述计算任务的第一计算结果时,执行所述计算任务得到;
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
12.根据权利要求2所述的方法,其特征在于,所述方法还包括:
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
14.一种数据处理装置,其特征在于,包括:
15.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;
16.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至13中任一项所述的方法。
