一种数据处理方法、装置、节点设备及存储介质转让专利

申请号 : CN201911313426.1

文献号 : CN110738497B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李茂材朱耿良杨常青刘区城蓝虎刘攀周开班时一防王宗友张劲松黄焕坤孔利

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明实施例公开了一种数据处理方法、装置、节点设备及存储介质,其中方法包括:从交易池中获取待鉴权的交易数据,并对交易数据进行鉴权处理;将鉴权通过的交易数据添加到优先队列中,其中,鉴权通过的交易数据被添加到第一优先队列中,第一优先队列是根据与交易数据相关的电子资源量进行排序的,在第一优先队列中,电子资源量越大的交易数据被优先处理;响应于将交易数据上传到区块链网络的触发事件,从第一优先队列中获取交易数据,并根据获取的交易数据确定目标交易数据;生成目标区块,目标区块包括目标交易数据;将目标区块上传到区块链网络,可提升将交易数据上传到区块链网络中的效率。

权利要求 :

1.一种数据处理方法,其特征在于,所述数据处理方法用于区块链网络中的任一节点,所述节点包括交易池,所述交易池包括优先队列,所述优先队列包括第一优先队列,所述第一优先队列用于存储已通过鉴权的交易数据,所述方法包括:从所述交易池中获取待鉴权的交易数据,并对所述待鉴权的交易数据进行鉴权处理;

将鉴权通过的交易数据添加到所述优先队列中,其中,所述鉴权通过的交易数据被添加到所述第一优先队列中,所述第一优先队列是根据与所述鉴权通过的交易数据相关的电子资源量进行排序的,在所述第一优先队列中,所述电子资源量越大的交易数据被优先处理;

响应于将所述鉴权通过的交易数据上传到所述区块链网络的触发事件,从所述第一优先队列中获取所述鉴权通过的交易数据,并根据获取的所述鉴权通过的交易数据确定目标交易数据;

生成目标区块,所述目标区块包括所述目标交易数据;

将所述目标区块上传到所述区块链网络。

2.根据权利要求1所述的方法,其特征在于,所述优先队列还包括第二优先队列,其中,所述第一优先队列用于以第一优先级存储已通过鉴权的交易数据,所述第二优先队列用于以第二优先级存储已通过鉴权的交易数据,所述第一优先级是指上传所述鉴权通过的交易数据时获取到的电子资源量的大小,所述第二优先级是根据所述节点接收所述鉴权通过的交易数据的接收时间,以及将所述鉴权通过的交易数据上传到所述区块链网络时获取到的电子资源量确定的,所述将鉴权通过的交易数据添加到所述优先队列中还包括:将所述鉴权通过的交易数据添加到所述第二优先队列中,所述从所述第一优先队列中获取所述鉴权通过的交易数据,并根据获取的所述鉴权通过的交易数据确定目标交易数据,包括:确定用于从所述第一优先队列和所述第二优先队列中获取所述已通过鉴权的交易数据的选取策略;按照所述选取策略从所述第一优先队列中获取第一交易数据,并从所述第二优先队列中获取第二交易数据;并根据所述第一交易数据和所述第二交易数据确定所述目标交易数据。

3.根据权利要求2所述的方法,其特征在于,所述选取策略包括所述第一优先队列对应的第一选取比例和所述第二优先队列对应的第二选取比例;

所述按照所述选取策略从所述第一优先队列中获取第一交易数据,并从所述第二优先队列中获取第二交易数据,包括:获取待上传到所述区块链网络中的交易数据总量;

按照所述交易数据总量及所述第一选取比例确定第一数量,并按照所述交易数据总量及所述第二选取比例确定第二数量;

从所述第一优先队列中获取所述第一数量的交易数据作为第一交易数据,并从所述第二优先队列中获取所述第二数量的交易数据作为第二交易数据。

4.根据权利要求3所述的方法,其特征在于,所述第一优先队列存储的交易数据以所述第一优先级由高至低的顺序降序排列,所述第二优先队列存储的交易数据以所述第二优先级由高至低的顺序降序排列;

所述从所述第一优先队列中获取所述第一数量的交易数据作为第一交易数据,并从所述第二优先队列中获取所述第二数量的交易数据作为第二交易数据,包括:从所述第一优先队列中按照所述第一优先级由高至低的顺序获取所述第一数量的交易数据作为第一交易数据;

从所述第二优先队列中按照所述第二优先级由高至低的顺序获取所述第二数量的交易数据作为第二交易数据。

5.根据权利要求3所述的方法,其特征在于,所述方法还包括:

根据所述第一优先队列中的交易数据总量,以及所述第二优先队列中的交易数据总量,对所述第一选取比例和所述第二选取比例进行调整。

6.根据权利要求5所述的方法,其特征在于,所述根据所述第一优先队列中的交易数据总量,以及所述第二优先队列中的交易数据总量,对所述第一选取比例和所述第二选取比例进行调整,包括:在检测到所述第一优先队列中的交易数据总量增多,且所述第二优先队列中的交易数据总量减少时,增加所述第一选取比例并减少所述第二选取比例;

在检测到所述第一优先队列中的交易数据总量减少,且所述第二优先队列中的交易数据总量增多时,减少所述第一选取比例并增加所述第二选取比例。

7.根据权利要求1所述的方法,其特征在于,所述鉴权通过的交易数据还被添加到第二优先队列中,其中,所述第一优先队列用于以第一优先级存储已通过鉴权的交易数据,所述第二优先队列用于以第二优先级存储已通过鉴权的交易数据,所述将鉴权通过的交易数据添加到所述优先队列中,包括:获取鉴权通过的交易数据的属性信息,根据所述属性信息确定所述鉴权通过的交易数据的所述第一优先级和所述第二优先级;

根据所述鉴权通过的交易数据的所述第一优先级和所述第二优先级,将所述鉴权通过的交易数据添加到所述第一优先队列以及所述第二优先队列中。

8.根据权利要求7所述的方法,其特征在于,所述根据所述属性信息确定所述鉴权通过的交易数据的所述第一优先级和所述第二优先级,包括:确定将所述鉴权通过的交易数据上传到区块链网络时获取的电子资源量,并确定所述交易池接收到所述鉴权通过的交易数据的接收时间;

根据所述电子资源量确定所述鉴权通过的交易数据在所述第一优先队列中的所述第一优先级;以及,根据所述电子资源量和所述接收时间确定所述鉴权通过的交易数据在所述第二优先队列中的所述第二优先级。

9.根据权利要求8所述的方法,其特征在于,所述根据所述鉴权通过的交易数据的所述第一优先级和所述第二优先级,将所述鉴权通过的交易数据添加到所述第一优先队列以及所述第二优先队列中,包括:根据所述第一优先级,将所述鉴权通过的交易数据添加到所述第一优先队列中;以及,根据所述第二优先级,将所述鉴权通过的交易数据添加到所述第二优先队列中。

10.根据权利要求2所述的方法,其特征在于,所述将鉴权通过的交易数据添加到所述优先队列中之前,所述方法还包括:获取所述第一优先队列中的交易数据总量,以及所述第二优先队列中的交易数据总量;

所述将鉴权通过的交易数据添加到所述优先队列中,包括:

在所述第一优先队列中的交易数据总量小于或等于所述第二优先队列中的交易数据总量时,将鉴权通过的交易数据添加到所述第一优先队列中。

11.根据权利要求10所述的方法,其特征在于,所述方法还包括:

在所述第一优先队列中的交易数据总量大于所述第二优先队列中的交易数据总量时,将所述鉴权通过的交易数据存储到所述第二优先队列中。

12.根据权利要求2所述的方法,其特征在于,所述第一交易数据和所述第二交易数据的数量分别为多个;所述生成目标区块之前,所述方法还包括:从所述第一交易数据中确定重复交易数据,所述重复交易数据为从所述第一优先队列中获取的,且从所述第二优先队列中获取的交易数据;

删除从所述第一优先队列获取的所述重复交易数据,或者删除从所述第二优先队列获取的所述重复交易数据。

13.一种数据处理装置,其特征在于,所述数据处理装置用于区块链网络中的任一节点,所述节点包括交易池,所述交易池包括优先队列,所述优先队列包括第一优先队列,所述第一优先队列用于存储已通过鉴权的交易数据,所述装置包括:获取单元,用于从所述交易池中获取待鉴权的交易数据;

鉴权单元,用于对所述待鉴权的交易数据进行鉴权处理;

添加单元,用于将鉴权通过的交易数据添加到所述优先队列中,其中,所述鉴权通过的交易数据被添加到所述第一优先队列中,所述第一优先队列是根据与所述鉴权通过的交易数据相关的电子资源量进行排序的,在所述第一优先队列中,所述电子资源量越大的交易数据被优先处理;

所述获取单元,还用于响应于将所述鉴权通过的交易数据上传到所述区块链网络的触发事件,从所述第一优先队列中获取所述鉴权通过的交易数据,并根据获取的所述鉴权通过的交易数据确定目标交易数据;

生成单元,用于生成目标区块,所述目标区块包括所述目标交易数据;

上传单元,用于将所述目标区块上传到所述区块链网络。

14.一种节点设备,其特征在于,包括处理器、存储器和通信接口,所述处理器、所述存储器和所述通信接口相互连接,其中,所述存储器用于存储计算机程序指令,所述处理器被配置用于执行所述程序指令,实现如权利要求1-12任一项所述的方法。

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-12任一项所述的方法。

说明书 :

一种数据处理方法、装置、节点设备及存储介质

技术领域

[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] 图1是本发明实施例提供的一种数据处理方法的示意流程图;
[0027] 图2是本发明另一实施例提供的一种数据处理方法的示意流程图;
[0028] 图3a是本发明实施例提供的一种第一优先队列的示意图;
[0029] 图3b是本发明实施例提供的一种第二优先队列的示意图;
[0030] 图4是本发明实施例提供的一种数据处理装置的示意性框图;
[0031] 图5是本发明实施例提供的一种节点设备的示意性框图。

具体实施方式

[0032] 本发明实施例提出了一种数据处理方法,该数据处理方法可应用于区块链网络中的任一节点,该节点包括交易池,该数据处理方法可使得该任一节点快速地基于交易池中的交易数据生成目标区块,并将生成的该目标区块上传到区块链网络,可避免该任一节点在从交易池中获取交易数据以生成目标区块时,由于获取时间的等待而造成的获取进程饥饿的问题。具体地,节点(即上述的任一节点)可先从交易池中获取待鉴权的交易数据,从而可对该交易数据进行鉴权处理,在该节点对该交易数据鉴权通过后,可将该鉴权通过的交易数据添加到该交易池的优先队列中。
[0033] 该交易池包括预先划分的优先队列,在一个实施例中,该交易池包括第一优先队列,该节点在将鉴权通过的交易数据存储到优先队列中时,该鉴权通过的交易数据即是被添加到该第一优先队列中,此外,该交易池还可包括预先划分的两个优先队列,即第一优先队列和第二优先队列,该节点在将鉴权通过的交易数据存储到优先队列中时,即是将该鉴权通过的交易数据添加到该第一优先队列和该第二优先队列中。其中,该第一优先队列中的各交易数据是根据该鉴权通过的交易数据的第一优先级确定的,该第二优先队列中的交易数据是根据该鉴权通过的交易数据的第二优先级确定的。在一个实施例中,该第一优先级是该节点在将通过鉴权的交易数据上传到区块链网络时可获取得到的电子资源量(例如交易费用,或手续费等);该第二优先级是根据该节点接收交易数据的接收时间,以及将该交易数据上传到区块链网络时可获取的电子资源量确定的。其中,该通过鉴权的交易数据是指:采用公钥对该交易数据的私钥加密后的交易数据进行解密的交易数据,该电子资源量为为了将该交易数据上传到区块链网络而提供给节点的手续费,该电子资源可以是电子货币,数字货币以及密码货币等,该电子资源量即是电子货币金额,数字货币金额以及密码货币金额等。
[0034] 在一个实施例中,该第一优先级也可称之为第一类优先级,该第一类优先级是按照手续费划分交易数据的优先级,该第二优先级也可称之为第二类优先级,该第二类优先级是按照手续费和交易池接收交易数据的接收时间划分交易数据的优先级,而第一优先队列和第二优先队列则是按照对应划分后的优先级进行排序的,该鉴权通过的交易数据被至少添加到第一优先队列中,而在其他的实施方式中,也可将该交易数据添加到第二优先队列中,如在该第一优先队列中的交易数据总量大于第二优先队列中的交易数据总量时,可只将该鉴权通过的交易数据存储到第二优先队列中,而不将该交易数据存储在第一优先队列中,此外,还可将该鉴权通过的交易数据分别根据第一优先级和第二优先级,将该鉴权通过的交易数据同时添加到第一优先队列和第二优先队列中。在一个实施例中,该节点在根据该第一优先级将鉴权通过的交易数据添加到第一优先队列和第二优先队列中时,该节点可根据该交易数据的第一优先级将该交易数据添加到第一优先队列中,并根据该交易数据的第二优先级将该交易数据添加到第二优先队列中;或者,该节点也可根据该第一优先队列和该第二优先队列中交易数据的数量,将鉴权通过的交易数据添加到第一优先队列或者第二优先队列中。该第一优先队列中的各交易数据可按照该第一优先级的大小进行降序排列,该第二优先队列存储的各交易数据可按照该第二优先级的大小进行降序排列。
[0035] 在该节点预先将交易池中鉴权通过的交易数据添加到优先队列后,进一步地,该节点在检测到将该交易数据上传到区块链网络的触发事件时,该节点则可根据从第一优先队列中获取的交易数据确定出目标交易数据,在该交易池包括两个优先队列时,该节点可分别从该第一优先队列和第二优先队列中获取交易数据,并根据从该第一优先队列和该第二优先队列中获取的交易数据确定出目标交易数据,其中,节点可将从该第一优先队列获取的交易数据作为第一交易数据,还可从该第二优先队列中获取交易数据,并将从该第二优先队列获取的交易数据作为第二交易数据,获取的该第一交易数据和该第二交易数据即可确定出目标交易数据,进一步地,可生成目标区块,并根据获取的目标交易数据(包括该第一交易数据和该第二交易数据)生成目标区块链区块,该目标区块包括获取的目标交易数据。
[0036] 在一个实施例中,该节点可按照一定的选取策略从第一优先队列和第二优先队列中获取交易数据,具体地,该选取策略可以是比例选取策略,基于该选取策略,该节点可先确定出从该第一优先队列中选取交易数据的第一选取比例,以及从该第二优先队列中选取交易数据的第二选取比例;根据预设的需要获取的交易数据总量以及该第一选取比例,该预设的需要获取的交易数据总量可根据业务情况(例如,网络带宽、网络拥堵情况、区块链业务规则限定和/或交易池中的交易数据数量等等)来确定,该节点可确定出从该第一优先队列中获取第一交易数据的第一数量,并可根据该交易数据总量和该第二选取比例,确定出从该第二优先队列中获取第二交易数据的第二数量,进一步地,该节点可按照该第一数量从该第一优先队列中获取第一交易数据,并按照该第二数量从该第二优先队列中获取第二交易数据,从而可生成目标区块,以存储该第一交易数据和该第二交易数据。
[0037] 在节点按照第一数量从第一优先队列中获取第一交易数据时,可从第一优先队列中按照对应的第一优先级从大到小的顺序,从第一优先队列中获取第一数量的第一交易数据,同样的,在节点按照第二数量从第二优先队列中获取第二交易数据时,可从第二优先队列中按照对应的第二优先级从大到小的顺序,从第二优先队列中获取第二数量的第二交易数据,或者,节点也可从第一优先队列中随机选取第一数量的第一交易数据,从第二优先队列中随机选取第二数量的第二交易数据。
[0038] 在节点从第一优先队列中获取第一交易数据,并从第二优先队列中获取第二交易数据后,节点可从第一交易数据(或第二交易数据)中确定重复交易数据,重复交易数据为添加到第一优先队列,且添加到第二优先队列的交易数据,为了避免目标区块中存储的交易数据包括重复交易数据,节点可删除第一交易数据中的重复交易数据,或者删除第二交易数据中的重复交易数据,并在删除所述重复交易数据后,生成目标区块,以存储删除所述重复交易数据的第一交易数据和第二交易数据,实现了从不同的优先队列中快速获取到第一交易数据以及第二交易数据,可有效避免交易数据获取过程中的进程等待问题,从而避免了由于交易数据的获取进程的等待所造成的进程饥饿问题。
[0039] 请参见图1,是本发明实施例提出的一种数据处理方法的示意流程图,所述方法可应用于上述的节点中,所述节点为区块链网络中的任一节点,所述节点包括交易池,所述交易池包括预先划分的优先队列,所述优先队列包括第一优先队列,所述第一优先队列用于存储已通过鉴权的交易数据,如图1所示,所述方法包括:
[0040] S101,从所述交易池中获取待鉴权的交易数据,并对所述交易数据进行鉴权处理。
[0041] 根据本申请的实施例,可以在将交易数据上传到区块链网络的触发事件之前从交易池中获取提交的尚未鉴权的交易数据进行鉴权。可以理解,可以在交易数据被提交到交易池中时,从交易池中获取尚未鉴权的交易数据(即待鉴权的交易数据),并对该交易数据进行鉴权,以这种方式可以以最快地速度完成鉴权,在交易池的交易速度比较快的情况下这种方式可以保证交易数据及时进行鉴权;或者,节点也可以周期性地从交易池中获取尚未鉴权的交易数据,并对该交易数据进行鉴权,以这种方式进行批量鉴权,可以节约系统资源;或者,该节点还可根据鉴权触发事件从交易池中获取尚未鉴权的交易数据,并对该交易数据进行鉴权,在一个实施例中,该节点可预设不同的鉴权触发事件,以触发对交易数据的鉴权处理,其中,该触发事件例如可以是当待鉴权的交易数据的数量达到交易池中的交易数据的总数量的一定比例时,触发对该待鉴权的交易数据的鉴权处理,或者,该触发事件还可以是当接收到对交易池中待鉴权的交易数据进行鉴权的指令时,触发对该待鉴权的交易数据的鉴权处理,基于不同的对待鉴权的交易数据进行鉴权的触发机制,可增强系统的灵活性。
[0042] S102,将鉴权通过的交易数据存储到所述优先队列中。
[0043] 节点中的交易池用于存储等待上链的交易数据,该等待上链的交易数据中包括已通过鉴权的交易数据,以及待鉴权的交易数据,在一个实施例中,节点可将该已通过鉴权的交易数据存储到优先队列中,其中,该已通过鉴权的交易数据至少被添加到第一优先队列中,该第一优先队列是根据与该交易数据相关的电子资源量进行排序的,在该第一优先队列中,该电子资源量越大的交易数据被优先处理。而由于优先队列(如该第一优先队列)中存储的交易数据为通过鉴权的交易数据,所以,在后续对交易数据进行上链时,节点在从该优先队列中获取交易数据后,可不再执行对交易数据进行鉴权的步骤,而可直接将从该优先队列中获取的交易数据上传到区块链网络中,可有效提升节点将交易数据上传到区块链网络时的效率。
[0044] 在一个实施例中,交易池在接收到交易数据后,若该交易数据为待鉴权的交易数据,所述节点可先对该交易数据进行鉴权处理,其中,该鉴权处理包括:采用公钥对由私钥加密的待鉴权交数据进行解密,解密通过则确定对该待鉴权交易数据的鉴权通过。针对交易池接收到的任一交易数据,该节点均可预先对该任一交易数据进行鉴权处理,并将鉴权处理通过的交易数据存储到优先队列中,并在该优先队列中等待上链,可以理解的是,该交易池中已通过鉴权的交易数据存储在优先队列中,而待鉴权的交易数据存储在所述交易池中除该优先队列之外的存储空间中,交易池中的优先队列实现了对交易数据按照是否通过鉴权进行划分,而节点在从交易池中获取交易数据进行上链时,可从交易池的优先队列中获取交易数据,并在获取到交易数据后直接上传到区块链网络中,可提升对交易数据的上传效率。
[0045] S103,响应于将所述交易数据上传到所述区块链网络的触发事件,从所述第一优先队列中获取所述交易数据,并根据获取的所述交易数据确定目标交易数据。
[0046] 在一个实施例中,区块链网络中的节点在接收到交易数据后,可将接收到的交易数据实时上传到区块链网络中,或者,所述节点可按照预设的时间周期将所述交易数据周期性地上传到区块链网络中,对应的,所述节点可在接收到交易数据时,确定接收到将所述交易数据上传到区块链网络的触发事件,或者,所述节点也可在所述预设的时间周期到达时,确定接收到将交易数据上传到区块链网络的触发事件。在一个实施例中,所述节点还可在检测到当前的节点状态为空闲状态,或者所述节点将历史的交易数据存储到区块链网络后,确定接收到将所述交易数据上传到区块链网络的触发事件。具体来说,该触发事件可以是检测到预设的时间周期到达,或者,接收到交易数据,或者,检测到当前的节点状态为空闲状态等,当该触发事件发生时,交易池接收到指令将交易池中的交易数据生成区块链区块,并且将该区块链区块上传到区块链网络当中。
[0047] 在所述节点确定接收到将所述交易数据上传到区块链网络的触发事件后,在一个实施例中,为了将交易数据上传到区块链网络,所述节点可生成用于包括交易数据的目标区块,在所述节点生成目标区块的过程中,还需要从交易池中获取一定数量的已通过鉴权的交易数据,由于交易池中已通过鉴权的交易数据存储在优先队列中,为了提升将交易数据上传到区块链网络的上传效率,节点可从交易池的优先队列中获取交易数据,获取的交易数据即为已通过鉴权的交易数据。
[0048] 在一个实施例中,所述节点在接收到该触发事件后,可根据从该第一优先队列中获得的交易数据,确定出目标交易数据,其中,所述优先队列只包括第一优先队列时,所述节点从第一优先队列中获取的交易数据即为目标交易数据,在所述交易池包括第一优先队列和第二优先队列时,所述节点可从所述第一优先队列和第二优先队列中分别获取交易数据作为目标交易数据,具体地,所述节点可按照设定的第一选取比例从第一优先队列中选取第一数量的交易数据作为第一交易数据,并可根据所述第二选取比例从所述第二优先队列中选取第二数量的交易数据作为第二交易数据,从而可根据获取的第一交易数据和第二交易数据确定出目标交易数据。在本实施例中,该第一选取比例和第二选取比例可以是相对于待上传到所述区块链网络中的交易数据总量的比例,各个选取比例的值例如可以是在0到1之间的数值,各个选取比例值之和可以是1。在一个实施例中,节点分别从第一优先队列和第二优先队列中获取到交易数据确定出目标交易数据后,由于获取的所述目标交易数据为所述交易池中已通过鉴权的交易数据,所述节点在获取到所述目标交易数据后,则可直接将所述目标交易数据上传到区块链网络,即转而执行步骤S104和步骤S105。
[0049] 在一个实施例中,所述第一优先队列可按照将对应的交易数据上传到区块链网络时可获取到的电子资源量(即手续费)的大小进行排序,所述节点可将上传交易数据时可获取到的电子资源量的大小作为该对应交易数据的第一优先级,从而可按照该第一优先级从高到低地对所述交易池中的已鉴权通过的交易数据进行排列得到所述第一优先队列,举例来说,若交易池中已通过鉴权的交易数据包括交易数据1和交易数据2,若节点在将交易数据1上传到区块链网络时可获取的电子资源量为a,将交易数据2上传到区块链网络时可获取的电子资源量为b,且a的值大于b的值,则交易数据1对应的第一优先级高于所述交易数据2对应的第一优先级,所以,所述交易数据1在所述第一优先队列中的排序在所述交易数据2在所述第一优先队列中的排序的前面。在一个实施例中,若所述第一优先队列包括交易数据1 N,则根据所述交易数据1 N所提供的电子资源量确定出各交易数据分别对应的第一~ ~优先级,从而可确定出所述各交易数据在所述第一优先队列中的顺序,其中,所述第一优先队列可表示为{交易数据1,交易数据2,交易数据3,…,交易数据N}。在一个实施例中,交易数据1提供的电子资源量大于交易数据2提供的电子资源量,且交易数据2提供的电子资源量大于交易数据3提供的电子资源量,以此类推,对应的,节点可根据上传交易数据可获取到的电子资源量的大小获取得到第一交易数据,也就是说,第一交易数据是根据提供给节点上传交易数据到区块链网络时的电子资源量的大小获取的。
[0050] 在一个实施例中,若仅根据提供给节点的电子资源量的大小确定将交易池中已通过鉴权的交易数据上传到区块链网络的上传顺序,可能导致上传到交易池中的交易数据由于提供的电子资源量过小,而导致长时间不能上传到区块链网络中,所以在所述交易池中还可包括第二优先队列,所述第二优先队列中的交易数据按照将对应的交易数据上传到区块链网络时所述节点可获取到的电子资源量,以及交易池接收到所述交易数据的接收时间进行排序,使得上传到交易池的交易数据可及时上链到区块链网络中。
[0051] 在一个实施例中,第二优先队列中的交易数据按照各交易数据提供的电子资源量和交易池接收该交易数据的接收时间,所述节点可先按照:接收时间*(电子资源量+1)的计算方式得到所述交易池中各交易数据对应的第二优先级,根据所述第二优先级可确定第二优先队列,以及各交易数据在所述第二优先队列中的排序。举例来说,若交易池中已通过鉴权的交易数据3和交易数据4,若根据所述交易数据3提供的电子资源量,以及交易池接收所述交易数据3时的接收时间,确定交易数据3对应的第二优先级为c,同时,根据所述交易数据4提供的电子资源量,以及交易池接收所述交易数据4时的接收时间,确定交易数据4对应的第二优先级为d,且c小于d,则在第二优先队列中,交易数据3的排序在交易数据4的后面。
[0052] 在一个实施例中,所述交易池还可包括第三优先队列,所述第三优先队列可根据所述交易池中各已通过鉴权的交易数据的紧急程度进行排序,并可按照对应的选取策略从所述第三优先队列中选取交易数据作为第三交易数据等,在本发明实施例中,对交易池包括的优先队列的个数不做限定,所述交易池可包括两个及两个以上的优先队列。在所述交易池确定出上传到区块链网络中的交易数据后,可转而执行步骤S104。
[0053] S104,生成目标区块,所述目标区块包括所述目标交易数据。
[0054] S105,将所述目标区块上传到所述区块链网络。
[0055] 在步骤S104和步骤S105中,节点在从第一优先队列和第二优先队列中获取交易数据后,若获取到的所述交易数据包括分别从第一优先队列中获取的第一交易数据,以及从第二优先队列中获取的第二交易数据,进一步地,所述节点可先从所述第一交易数据与所述第二交易数据中确定出重复交易数据,并在删除该重复交易数据后生成目标区块,其中,所述重复交易数据为从所述第一优先队列中获取的,且从所述第二优先队列中获取的交易数据。在所述节点生成目标区块后,可将该目标区块上传到区块链网络中进行存储,以实现对交易池中交易数据的上链存储。
[0056] 在本发明实施例中,节点设备(或节点)中的交易池包括用于存储已通过鉴权的交易数据的优先队列,该交易池包括第一优先队列,所以,所述节点可从交易池中获取待鉴权的交易数据,并对该交易数据进行鉴权处理,从而可在对该交易数据的鉴权通过后,将该鉴权通过的交易数据添加到优先队列中,在该节点将该鉴权通过的交易数据添加到优先队列中时,至少将该鉴权通过的交易数据添加到第一优先队列中,以使得节点在检测到将交易数据上传到区块链网络的触发事件时,可根据从该第一优先队列中获取到的已通过鉴权的交易数据,确定出目标交易数据,从而可节点确定出该目标交易数据后,直接生成目标区块,以存储该目标交易数据,进一步的,可将该目标区块上传到区块链网络中,以实现对交易数据的上链,可使得节点在获取到交易数据后,直接上传交易数据,提升了交易数据的上链效率,同时,由于优先队列中的交易数据已通过鉴权,使得节点在获取到交易数据后,不再需要等待进行交易数据的验证过程,可缓解由于时间等待所造成的进程饥饿的问题。
[0057] 请参见图2,是本发明另一实施例提供的一种数据处理方法的流程示意图,所述数据处理方法也可应用于区块链网络中的任一节点(或节点设备),所述节点包括交易池,所述交易池包括优先队列,所述优先队列包括第一优先队列,所述第一优先队列用于存储已通过鉴权的交易数据,所述方法可包括步骤S201 步骤S206。~
[0058] S201,从所述交易池中获取待鉴权的交易数据,并对所述交易数据进行鉴权处理。
[0059] S202,获取鉴权通过的交易数据的属性信息,根据所述属性信息确定所述鉴权通过的交易数据的所述第一优先级和所述第二优先级。
[0060] S203,根据所述鉴权通过的交易数据的所述第一优先级和所述第二优先级,将所述鉴权通过的交易数据添加到所述第一优先队列以及所述第二优先队列中。
[0061] 在步骤S201 步骤S203中,针对所述交易池中鉴权通过的任一交易数据,所述属性~信息包括优先级信息,所述节点在确定所述交易数据的属性信息时,可先确定将所述鉴权通过的交易数据上传到区块链网络时获取的电子资源量,并确定所述交易池接收到鉴权通过的所述交易数据的接收时间,进一步地,所述节点在确定出所述鉴权通过的交易数据在上传到区块链网络对应提交给节点的电子资源量后和交易池接收该鉴权通过的交易数据的接收时间后,所述节点可根据所述电子资源量确定所述鉴权通过的交易数据在所述第一优先队列中的第一优先级,并可根据所述电子资源量和所述接收时间确定鉴权通过的交易数据在所述第二优先队列中的第二优先级。
[0062] 在一个实施例中,所述节点确定出的第一优先级用于所述鉴权通过的交易数据在所述第一优先队列中进行排序,所述节点确定出的第二优先级用于所述鉴权通过的交易数据在所述第二优先队列中进行排序,可以理解的是,按照所述第一优先级将所述鉴权通过的交易数据排列在第一优先队列中时,以及按照所述第二优先级将所述鉴权通过的交易数据排列在第二优先队列中时,所述交易数据分别在所述第一优先队列和所述第二优先队列中的位置不同。其中,所述第一优先队列可基于{电子资源量X}进行排序,其中,X为大于0的任意自然数,所述第二优先队列可基于{接收时间*(电子资源量+1)}进行排序。
[0063] 在一个实施例中,所述交易池中的第一优先队列和第二优先队列可直接存储已通过鉴权的交易数据,也可存储所述已通过鉴权的交易数据的标识信息,对应地,所述节点在从所述第一优先队列和所述第二优先队列中获取交易数据时,可直接提取所述优先队列中存储的鉴权通过的交易数据分别作为第一交易数据和第二交易数据,或者,所述节点也可从所述优先队列中分别提取对应鉴权通过的交易数据的标识信息,并进一步地根据所述标识信息从所述交易池中获取鉴权通过的交易数据作为所述第一交易数据和第二交易数据。
[0064] 在一个实施例中,该节点在确定出鉴权通过的交易数据的属性信息后,进一步地,该节点可根据该属性信息将该鉴权通过的交易数据添加到第一优先队列中,也可将该鉴权通过的交易数据添加到第二优先队列中,即该鉴权通过的交易数据可被同时添加到该第一优先队列以及第二优先队列中,具体地,该节点可先根据该第一优先级,将该鉴权通过的交易数据添加到该第一优先队列中;以及,该节点可根据该第二优先级,将该鉴权通过的交易数据添加到该第二优先队列中。可以理解的是,对交易池中的任一已通过鉴权的交易数据,可根据该任一已通过鉴权的交易数据分别对应的第一优先级和第二优先级,将该任一已通过鉴权的交易数据添加到第一优先队列和第二优先队列中,其中,该节点可直接将该已通过鉴权的交易数据添加到该第一优先队列和第二优先队列中,也可将该已通过鉴权的交易数据对应的标识信息添加到该第一优先队列和该第二优先队列中。
[0065] 举例来说,假设该交易池中已通过鉴权的交易数据的数量为N,该已通过鉴权的交易数据包括交易数据1,交易数据2,…,交易数据N,其中,N为大于等于1的正整数,若根据该已通过鉴权的交易数据在上传到区块链网络时提供给节点的电子资源量,该节点可根据该N个交易数据分别提供的电子资源量确定出该N个交易数据分别对应的第一优先级,从而可根据该第一优先级对该N个交易数据进行排序得到第一优先队列,该第一优先队列例如可以是{交易数据1,交易数据2,交易数据3,…,交易数据N}。对应的,根据该N个交易数据提供的电子资源量,以及该交易池接收各交易数据的接收时间,可确定出该N个交易数据分别对应的第二优先级,从而可根据该第二优先级对该N个交易数据进行排序得到第二优先队列,该第二优先队列例如可以是{交易数据N,交易数据N-1,交易数据3,…,交易数据1}。
[0066] 在一个实施例中,该节点在确定出鉴权通过的交易数据的属性信息后,根据该属性信息,将该鉴权通过的交易数据同时添加到第一优先队列和第二优先队列中以外,也可以根据属性信息将该鉴权通过的交易数据添加到该第一优先级或者第二优先级中的其中一个。其中,该节点在将鉴权通过的交易数据添加到优先队列中之前,还可先获取该第一优先队列中的交易数据总量,以及该第二优先队列中的交易数据总量;从而可根据该第一优先队列中的交易数据总量和第二优先队列中的交易数据总量,确定将该通过鉴权的交易数据添加到的优先队列,具体地,在该第一优先队列中的交易数据总量大于该第二优先队列中的交易数据总量时,可将该鉴权通过的交易数据存储到该第二优先队列中;或者,在该第一优先队列中的交易数据总量小于或等于该第二优先队列中的交易数据总量时,将该鉴权通过的交易数据添加到该第一优先队列中。该节点在将交易池中的各个通过鉴权的交易数据添加到第一优先队列和/或第二优先队列后,可转而执行步骤S204。
[0067] S204,响应于将该交易数据上传到该区块链网络的触发事件,从该第一优先队列中获取该交易数据,并根据获取的所述交易数据确定目标交易数据。
[0068] 在一个实施例中,该优先队列可包括第一优先队列和第二优先队列,所以,该节点确定出的目标交易数据可包括从第一优先队列中获取的交易数据,以及从第二优先队列中获取的交易数据,从而可基于分别从两个优先队列中获取的交易数据确定出目标交易数据。其中,该第一优先队列用于以第一优先级存储已通过鉴权的交易数据,该第二优先队列用于以第二优先级存储已通过鉴权的交易数据,该节点在从该第一优先队列和第二优先队列中获取交易数据时,可先确定用于从该第一优先队列和该第二优先队列中获取该已通过鉴权的交易数据的选取策略;进一步地,可按照该选取策略从该第一优先队列中获取第一交易数据,并从该第二优先队列中获取第二交易数据,从而可将该第一交易数据和该第二交易数据作为目标交易数据。其中,该选取策略包括第一优先队列对应的第一选取比例,以及第二优先队列对应的第二选取比例,则该节点在按照该选取策略从该第一优先队列中获取第一交易数据,并从该第二优先队列中获取第二交易数据时,可在根据该选取策略确定出第一选取比例和第二选取比例后,可先获取待上传到该区块链网络中的交易数据总量,该交易数据总量可以是节点中的交易池获准上传到区块链网络的交易的数量;进一步地,该节点可按照该交易数据总量及该第一选取比例确定第一数量,并按照该交易数据总量及该第二选取比例确定第二数量;在该节点确定出该第一数量后,可从该第一优先队列中获取第一数量的交易数据作为第一交易数据,并在该节点确定出第二数量后,可从该第二优先队列中获取第二数量的交易数据作为第二交易数据。
[0069] 在一个实施例中,该第一优先队列存储的交易数据以第一优先级由高至低的顺序降序排列,该第二优先队列存储的交易数据以第二优先级由高至低的顺序降序排列,该第一优先级是指上传该交易数据时获取到的电子资源量的大小,该第二优先级是根据该节点接收该交易数据的接收时间,以及将该交易数据上传到该区块链网络时获取到的电子资源量确定的。该节点在从该第一优先队列中获取第一数量的交易数据作为第一交易数据,并从该第二优先队列中获取第二数量的交易数据作为第二交易数据时,该节点可先从该第一优先队列中按照该第一优先级由高至低的顺序获取第一数量的交易数据作为第一交易数据;在从该第二优先队列中获取第二数量的交易数据作为第二交易数据时,可从该第二优先队列中按照该第二优先级由高至低的顺序获取第二数量的交易数据作为第二交易数据。
[0070] 在一个实施例中,若该第一优先队列为{交易数据1,交易数据2,交易数据3,…,交易数据N},第二优先队列为{交易数据N,交易数据N-1,交易数据3,…,交易数据1},获取到的待上传到该区块链网络中的交易数据总量假设为100,该选取策略指示第一优先队列对应的第一选取比例为80%,第二优先队列对应的第二选取比例为20%,则该节点可确定从该第一优先队列中获取的第一数量的交易数据为80,从第二优先队列中获取的第二数量的交易数据为20。进一步地,该节点可从第一优先队列{交易数据1,交易数据2,交易数据3,…,交易数据N}中获取排序在前80的交易数据作为第一交易数据,并从第二优先队列{交易数据N,交易数据N-1,交易数据3,…,交易数据1}中获取前20的交易数据作为第二交易数据。
[0071] 在一个实施例中,节点在检测到第一优先队列和第二优先队列中交易数据的总量变化时,可动态调整对该交易数据的选取策略,从而实现对第一选取比例和第二选取比例的调整,其中,在该节点可根据该第一优先队列中的交易数据总量,以及该第二优先队列中的交易数据总量,对该第一选取比例和该第二选取比例进行调整,具体地,该节点可在检测到该第一优先队列中的交易数据总量增多,且该第二优先队列中的交易数据总量减少时,为了避免节点按照原先的选取策略进行交易数据的选取时,可能由于第二优先队列中交易数据的减少导致节点长时间等待延迟,无法及时获取到交易数据的问题,该节点可调整该选取策略,以增加该第一选取比例并减少该第二选取比例。或者,该节点在检测到该第一优先队列中的交易数据总量减少,且该第二优先队列中的交易数据总量增多时,说明节点按照提交给该节点的电子资源量选取的交易数据较多,则为了避免加入交易池的交易数据长时间在该交易池中等待,而不能上传到区块链网络中,该节点对应地可减少该第一选取比例并增加该第二选取比例。
[0072] 在一个实施例中,该节点在按照选取策略从该优先队列中获取到交易数据(包括第一交易数据和第二交易数据)作为目标交易数据后,可转而执行步骤S205和步骤S206。
[0073] S205,生成目标区块,该目标区块包括所述目标交易数据。
[0074] S206,将该目标区块上传到该区块链网络。
[0075] 在步骤S205和步骤S206中,节点从该第一优先队列和该第二优先队列中获取的第一交易数据和第二交易数据的数量分别为多个,该节点在生成目标区块之前,可先从该第一交易数据中确定出重复交易数据,该重复交易数据是该节点分别从该第一优先队列和该第二优先队列中获取的,为了避免目标区块对交易数据的重复存储,而对目标区块内存资源的占用,该节点可删除从该第一优先队列获取的重复交易数据,或者删除从该第二优先队列中获取的该重复交易数据。
[0076] 在一个实施例中,节点在存储交易池中的第一优先队列和第二优先队列时,若该第一优先队列为{交易数据1,交易数据2,交易数据3,…,交易数据N},该第二优先队列为{交易数据N,交易数据N-1,交易数据3,…,交易数据1},其中,该第一优先队列可如图3a所示,该第二优先队列可如图3b所示,该节点在根据选取策略从该第一优先队列获取交易数据作为第一交易数据,并从该第二优先队列获取交易数据作为第二交易数据后,该节点可先确定出获取到的该第一交易数据和第二交易数据中的重复交易数据,该重复交易数据如可以是交易数据3,进一步地,该节点在删除从该第一优先队列中获取到的交易数据3,或者删除从该第二优先队列中获取到的交易数据3后,可得到用于存储到目标区块,并上传到区块链网络中的交易数据。
[0077] 在本发明实施例中,节点可对交易池中待鉴权的交易数据进行鉴权处理,并在鉴权通过后,确定该交易数据的属性信息,从而可基于该属性信息将交易数据添加到对应的优先队列中,使得节点在接收到将交易数据上传到区块链网络的触发事件时,节点在确定对交易数据的选取策略后,可按照该选取策略从第一优先队列中获取交易数据,并可根据从该第一优先队列中获取的交易数据确定出目标交易数据,进一步地,所述节点可生成目标区块,以存储所述目标交易数据,并将所述目标区块上传到区块链网络中,由于节点中的交易池预先被划分为出优先队列,使得节点可从优先队列中快速获取到交易数据,并实现对交易数据的上链存储,可有效避免获取交易数据的过程中,由于等待交易数据的获取所导致的进程等待的问题。
[0078] 基于上述数据处理方法实施例的描述,本发明实施例还提供了一种数据处理装置,该数据处理装置可以是运行于上述的节点设备中的一个计算机程序(包括程序代码)。该操作控制装置可执行如图1和图2所述的数据处理方法,请参见图4,该数据处理装置包括:获取单元401,鉴权单元402,添加单元403,生成单元404和上传单元405。
[0079] 获取单元401,用于从所述交易池中获取待鉴权的交易数据;
[0080] 鉴权单元402,用于对所述交易数据进行鉴权处理;
[0081] 添加单元403,用于将鉴权通过的交易数据添加到所述优先队列中,其中,所述鉴权通过的交易数据被添加到所述第一优先队列中,所述第一优先队列是根据与所述交易数据相关的电子资源量进行排序的,在所述第一优先队列中,所述电子资源量越大的交易数据被优先处理;
[0082] 所述获取单元401,还用于响应于将所述交易数据上传到所述区块链网络的触发事件,从所述第一优先队列中获取所述交易数据,并根据获取的所述交易数据确定目标交易数据;
[0083] 生成单元404,用于生成目标区块,所述目标区块包括所述目标交易数据;
[0084] 上传单元405,用于将所述目标区块上传到所述区块链网络。
[0085] 在一个实施例中,所述优先队列还包括第二优先队列,其中,所述第一优先队列用于以第一优先级存储已通过鉴权的交易数据,所述第二优先队列用于以第二优先级存储已通过鉴权的交易数据,所述第一优先级是指上传所述交易数据时获取到的电子资源量的大小,所述第二优先级是根据所述节点接收所述交易数据的接收时间,以及将所述交易数据上传到所述区块链网络时获取到的电子资源量确定的,
[0086] 所述将鉴权通过的交易数据添加到所述优先队列中还包括:将所述鉴权通过的交易数据添加到所述第二优先队列中,
[0087] 所述获取单元401,具体用于:
[0088] 确定用于从所述第一优先队列和所述第二优先队列中获取所述已通过鉴权的交易数据的选取策略;按照所述选取策略从所述第一优先队列中获取第一交易数据,并从所述第二优先队列中获取第二交易数据;并根据所述第一交易数据和所述第二交易数据确定所述目标交易数据。
[0089] 在一个实施例中,所述选取策略包括所述第一优先队列对应的第一选取比例和所述第二优先队列对应的第二选取比例;
[0090] 所述获取单元401,具体用于:
[0091] 获取待上传到所述区块链网络中的交易数据总量;
[0092] 按照所述交易数据总量及所述第一选取比例确定第一数量,并按照所述交易数据总量及所述第二选取比例确定第二数量;
[0093] 从所述第一优先队列中获取所述第一数量的交易数据作为第一交易数据,并从所述第二优先队列中获取所述第二数量的交易数据作为第二交易数据。
[0094] 在一个实施例中,所述第一优先队列存储的交易数据以所述第一优先级由高至低的顺序降序排列,所述第二优先队列存储的交易数据以所述第二优先级由高至低的顺序降序排列;
[0095] 所述获取单元401,具体用于:
[0096] 从所述第一优先队列中按照所述第一优先级由高至低的顺序获取所述第一数量的交易数据作为第一交易数据;
[0097] 从所述第二优先队列中按照所述第二优先级由高至低的顺序获取所述第二数量的交易数据作为第二交易数据。
[0098] 在一个实施例中,所述装置还包括:调整单元406。
[0099] 调整单元406,用于根据所述第一优先队列中的交易数据总量,以及所述第二优先队列中的交易数据总量,对所述第一选取比例和所述第二选取比例进行调整。
[0100] 在一个实施例中,所述调整单元406,具体用于:
[0101] 在检测到所述第一优先队列中的交易数据总量增多,且所述第二优先队列中的交易数据总量减少时,增加所述第一选取比例并减少所述第二选取比例;
[0102] 在检测到所述第一优先队列中的交易数据总量减少,且所述第二优先队列中的交易数据总量增多时,减少所述第一选取比例并增加所述第二选取比例。
[0103] 在一个实施例中,所述鉴权通过的交易数据还被添加到所述第二优先队列中,其中,所述第一优先队列用于以第一优先级存储已通过鉴权的交易数据,所述第二优先队列用于以第二优先级存储已通过鉴权的交易数据,
[0104] 所述添加单元403,具体用于:
[0105] 获取鉴权通过的交易数据的属性信息,根据所述属性信息确定所述鉴权通过的交易数据的所述第一优先级和所述第二优先级;
[0106] 根据所述鉴权通过的交易数据的所述第一优先级和所述第二优先级,将所述鉴权通过的交易数据添加到所述第一优先队列以及所述第二优先队列中。
[0107] 在一个实施例中,所述添加单元403,具体用于:
[0108] 确定将所述鉴权通过的交易数据上传到区块链网络时获取的电子资源量,并确定所述交易池接收到所述鉴权通过的交易数据的接收时间;
[0109] 根据所述电子资源量确定所述鉴权通过的交易数据在所述第一优先队列中的所述第一优先级;以及,
[0110] 根据所述电子资源量和所述接收时间确定所述鉴权通过的交易数据在所述第二优先队列中的所述第二优先级。
[0111] 在一个实施例中,所述添加单元403,具体用于:
[0112] 根据所述第一优先级,将所述鉴权通过的交易数据添加到所述第一优先队列中;以及,
[0113] 根据所述第二优先级,将所述鉴权通过的交易数据添加到所述第二优先队列中。
[0114] 在一个实施例中,所述获取单元401,还用于获取所述第一优先队列中的交易数据总量,以及所述第二优先队列中的交易数据总量;
[0115] 所述添加单元403,具体用于:
[0116] 在所述第一优先队列中的交易数据总量小于或等于所述第二优先队列中的交易数据总量时,将鉴权通过的交易数据添加到所述第一优先队列中。
[0117] 在一个实施例中,所述添加单元403,还用于:在所述第一优先队列中的交易数据总量大于所述第二优先队列中的交易数据总量时,将所述鉴权通过的交易数据存储到所述第二优先队列中。
[0118] 在一个实施例中,所述第一交易数据和所述第二交易数据的数量分别为多个;所述装置还包括:确定单元407和删除单元408。
[0119] 确定单元407,用于从所述第一交易数据中确定重复交易数据,所述重复交易数据为从所述第一优先队列中获取的,且从所述第二优先队列中获取的交易数据;
[0120] 删除单元408,用于删除从所述第一优先队列获取的所述重复交易数据,或者删除从所述第二优先队列获取的所述重复交易数据。
[0121] 在本发明实施例中,交易池包括用于存储已通过鉴权的交易数据的优先队列,该交易池包括第一优先队列,获取单元401则可从交易池中获取待鉴权的交易数据,使得鉴权单元402可对该交易数据进行鉴权处理,从而可在对该交易数据的鉴权通过后,添加单元403可将该交易数据添加到优先队列中,在添加单元403将该鉴权通过的交易数据添加到优先队列中时,至少将该鉴权通过的交易数据添加到第一优先队列中,以使得在检测到将交易数据上传到区块链网络的触发事件时,所述获取单元401可根据从该第一优先队列中获取到已通过鉴权的交易数据确定出目标交易数据,从而可在确定出该目标交易数据后,生成单元404可直接生成目标区块,以存储该目标交易数据,进一步的,上传单元405可将该目标区块上传到区块链网络中,以实现对交易数据的上链,可使得节点在获取到交易数据后,直接上传交易数据,提升了交易数据的上链效率。
[0122] 请参见图5,是本发明实施例提供的一种节点设备的结构示意性框图,所述节点设备可以是服务器设备,也可以是终端设备,所述节点设备即是上述的节点。如图5所示的本发明实施例中的节点设备可包括:一个或多个处理器501;一个或多个输入设备502,一个或多个输出设备503和存储器504。上述处理器501、输入设备502、输出设备503和存储器504通过总线505连接。存储器504用于存储计算机程序,所述计算机程序包括程序指令,处理器501 用于执行存储器504存储的程序指令。
[0123] 所述存储器504可以包括易失性存储器(volatile memory),如随机存取存储器(random-access memory,RAM);存储器504也可以包括非易失性存储器(non-volatile memory),如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储器504还可以包括上述种类的存储器的组合。
[0124] 所述处理器501可以是中央处理器(central processing unit,CPU)。所述处理器501还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)等。该PLD可以是现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)等。所述处理器501也可以为上述结构的组合。
[0125] 在一个实施例中,所述处理器501被配置调用所述程序指令,用于执行:
[0126] 从所述交易池中获取待鉴权的交易数据,并对所述交易数据进行鉴权处理;
[0127] 将鉴权通过的交易数据添加到所述优先队列中,其中,所述鉴权通过的交易数据被添加到所述第一优先队列中,所述第一优先队列是根据与所述交易数据相关的电子资源量进行排序的,在所述第一优先队列中,所述电子资源量越大的交易数据被优先处理;
[0128] 响应于将所述交易数据上传到所述区块链网络的触发事件,从所述优先队列中获取所述交易数据,并根据获取的所述交易数据确定目标交易数据;
[0129] 生成目标区块,所述目标区块包括所述目标交易数据;
[0130] 将所述目标区块上传到所述区块链网络。
[0131] 在一个实施例中,所述优先队列还包括第二优先队列,其中,所述第一优先队列用于以第一优先级存储已通过鉴权的交易数据,所述第二优先队列用于以第二优先级存储已通过鉴权的交易数据,所述第一优先级是指上传所述交易数据时获取到的电子资源量的大小,所述第二优先级是根据所述节点接收所述交易数据的接收时间,以及将所述交易数据上传到所述区块链网络时获取到的电子资源量确定的,
[0132] 所述将鉴权通过的交易数据添加到所述优先队列中还包括:将所述鉴权通过的交易数据添加到所述第二优先队列中;
[0133] 所述处理器501被配置调用所述程序指令,还用于执行:
[0134] 确定用于从所述第一优先队列和所述第二优先队列中获取所述已通过鉴权的交易数据的选取策略;按照所述选取策略从所述第一优先队列中获取第一交易数据,并从所述第二优先队列中获取第二交易数据;并根据所述第一交易数据和所述第二交易数据确定所述目标交易数据。
[0135] 在一个实施例中,所述选取策略包括所述第一优先队列对应的第一选取比例和所述第二优先队列对应的第二选取比例;
[0136] 所述处理器501被配置调用所述程序指令,用于执行:
[0137] 获取待上传到所述区块链网络中的交易数据总量;
[0138] 按照所述交易数据总量及所述第一选取比例确定第一数量,并按照所述交易数据总量及所述第二选取比例确定第二数量;
[0139] 从所述第一优先队列中获取所述第一数量的交易数据作为第一交易数据,并从所述第二优先队列中获取所述第二数量的交易数据作为第二交易数据。
[0140] 在一个实施例中,所述第一优先队列存储的交易数据以所述第一优先级由高至低的顺序降序排列,所述第二优先队列存储的交易数据以所述第二优先级由高至低的顺序降序排列;
[0141] 所述处理器501被配置调用所述程序指令,用于执行:
[0142] 从所述第一优先队列中按照所述第一优先级由高至低的顺序获取所述第一数量的交易数据作为第一交易数据;
[0143] 从所述第二优先队列中按照所述第二优先级由高至低的顺序获取所述第二数量的交易数据作为第二交易数据。
[0144] 在一个实施例中,所述处理器501被配置调用所述程序指令,用于执行:
[0145] 根据所述第一优先队列中的交易数据总量,以及所述第二优先队列中的交易数据总量,对所述第一选取比例和所述第二选取比例进行调整。
[0146] 在一个实施例中,所述处理器501被配置调用所述程序指令,用于执行:
[0147] 在检测到所述第一优先队列中的交易数据总量增多,且所述第二优先队列中的交易数据总量减少时,增加所述第一选取比例并减少所述第二选取比例;
[0148] 在检测到所述第一优先队列中的交易数据总量减少,且所述第二优先队列中的交易数据总量增多时,减少所述第一选取比例并增加所述第二选取比例。
[0149] 在一个实施例中,所述鉴权通过的交易数据还被添加到所述第二优先队列中,其中,所述第一优先队列用于以第一优先级存储已通过鉴权的交易数据,所述第二优先队列用于以第二优先级存储已通过鉴权的交易数据,所述处理器501被配置调用所述程序指令,用于执行:
[0150] 获取鉴权通过的交易数据的属性信息,根据所述属性信息确定所述鉴权通过的交易数据的所述第一优先级和所述第二优先级;
[0151] 根据所述鉴权通过的交易数据的所述第一优先级和所述第二优先级,将所述鉴权通过的交易数据添加到所述第一优先队列以及所述第二优先队列中。
[0152] 所述处理器501被配置调用所述程序指令,用于执行:
[0153] 确定将所述鉴权通过的交易数据上传到区块链网络时获取的电子资源量,并确定所述交易池接收到所述鉴权通过的交易数据的接收时间;
[0154] 根据所述电子资源量确定所述鉴权通过的交易数据在所述第一优先队列中的所述第一优先级;以及,
[0155] 根据所述电子资源量和所述接收时间确定所述鉴权通过的交易数据在所述第二优先队列中的所述第二优先级。
[0156] 在一个实施例中,所述处理器501被配置调用所述程序指令,用于执行:
[0157] 根据所述第一优先级,将所述鉴权通过的交易数据添加到所述第一优先队列中;以及,
[0158] 根据所述第二优先级,将所述鉴权通过的交易数据添加到所述第二优先队列中。
[0159] 在一个实施例中,所述优先队列还包括第二优先队列,其中,所述第一优先队列用于以第一优先级存储已通过鉴权的交易数据,所述第二优先队列用于以第二优先级存储已通过鉴权的交易数据,所述处理器501被配置调用所述程序指令,用于执行:
[0160] 获取所述第一优先队列中的交易数据总量,以及所述第二优先队列中的交易数据总量;
[0161] 在所述第一优先队列中的交易数据总量小于或等于所述第二优先队列中的交易数据总量时,将鉴权通过的交易数据添加到所述第一优先队列中。
[0162] 在一个实施例中,所述处理器501被配置调用所述程序指令,用于执行:
[0163] 在所述第一优先队列中的交易数据总量大于所述第二优先队列中的交易数据总量时,将所述鉴权通过的交易数据存储到所述第二优先队列中。
[0164] 在一个实施例中,所述第一交易数据和所述第二交易数据的数量分别为多个;
[0165] 所述处理器501被配置调用所述程序指令,用于执行:
[0166] 从所述第一交易数据中确定重复交易数据,所述重复交易数据为从所述第一优先队列中获取的,且从所述第二优先队列中获取的交易数据;
[0167] 删除从所述第一优先队列获取的所述重复交易数据,或者删除从所述第二优先队列获取的所述重复交易数据。
[0168] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0169] 以上所揭露的仅为本发明的局部实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或局部流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。