一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的数据处理方法、节点设备、系统及平台与流程

2022-04-16 16:11:52 来源:中国专利 TAG:


1.本文件涉及数据处理技术领域,尤其涉及一种基于区块链的数据处理方法节点设备、系统及平台。


背景技术:

2.随着信息技术的发展,区块链由于具有开放性、不可篡改性、去中心化等优点,已成得到越来越多的应用。目前区块链客户端发起的交易数据需要经区块链中各共识节点达成共识后才能上链。当待共识的交易数据超出共识节点一次共识操作的交易数据数量上限时,需要分多轮次进行。而每一轮次都要经历一遍共识流程,这其中主要包括了共识消息的收发、校验和解析等步骤,因此消耗了较多资源和时间,造成了区块链业务的延时。
3.有鉴于此,当前亟需一种能够提高区块链数据处理效率的技术方案。


技术实现要素:

4.本技术实施例目的是提供一种基于区块链的数据处理方法、节点设备、系统及平台,能够提高区块链交易数据的处理效率,从而改善区块链业务延时的问题。
5.为了实现上述目的,本技术实施例是这样实现的:
6.第一方面,提供一种基于区块链的数据处理方法,包括:
7.若区块链的共识节点在本轮待共识的交易数据超出单次共识操作的交易数据上限,则将所述本轮待共识的交易数据划分成至少两个交易数据分组以并行进行共识操作,其中,每个交易数据分组的交易数据数量小于单次共识操作的交易数据上限;
8.所述共识节点在所述本轮待共识的所有交易数据分组全部达成共识后,对所述本轮待共识的交易数据进行执行操作,以及对所述执行操作产生的交易数据执行结果进行写块操作。
9.第二方面,提供一种基于区块链的数据处理方法,包括:
10.区块链的共识节点在本轮待共识的存证数据超出单次共识操作的存证数据上限时,将所述本轮待共识的存证数据划分成至少两个存证数据分组以并行进行共识操作,其中,每个存证数据分组的存证数据数量小于单次共识操作的存证数据上限;
11.所述共识节点在所述本轮待共识的所有存证数据分组全部达成共识后,对所述本轮待共识的存证数据进行执行操作,以及对所述执行操作产生的存证数据执行结果进行写块操作。
12.第三方面,提供一种区块链的节点设备,包括:
13.交易数据共识模块,用于在本轮待共识的交易数据超出单次共识操作的交易数据上限时,将所述本轮待共识的交易数据划分成至少两个交易数据分组以并行进行共识操作,其中,每个交易数据分组的交易数据数量小于单次共识操作的交易数据上限;
14.交易数据执行写入模块,用于在所述本轮待共识的所有交易数据分组全部达成共识后,对所述本轮待共识的交易数据进行执行操作,以及对所述执行操作产生的交易数据
执行结果进行写快操作。
15.第四方面,提供一种区块链的节点设备,包括:
16.存证数据共识模块,在本轮待共识的存证数据超出单次共识操作的存证数据上限时,将所述本轮待共识的存证数据划分成至少两个存证数据分组以并行进行共识操作,其中,每个存证数据分组的存证数据数量小于单次共识操作的存证数据上限;
17.存证数据写块模块,在所述本轮待共识的所有存证数据分组全部达成共识后,对所述本轮待共识的存证数据进行执行操作,以及对所述执行操作产生的存证数据执行结果进行写块操作。
18.第五方面,提供一种区块链系统,包括如上述第三方面或第四方面的节点设备。
19.基于本技术实施例的方案,若共识节点在本轮待共识的交易数据超出单次共识操作的交易数据上限,则将本轮待共识的交易数据细分成至少两个交易数据分组以并行进行共识操作,从而以一个轮次对原本超量的交易数据完成共识,进而更快地进入到执行操作以及写块操作的流程。整个方案提高了区块链处理交易数据的效率,能够显著改善区块链业务的延时问题。
附图说明
20.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1为本技术实施例提供的数据处理方法的第一种流程示意图。
22.图2为本技术实施例提供的数据处理方法执行的共识操作与传统方法执行的共识操作的对比示意图。
23.图3为本技术实施例提供的数据处理方法执行的共识操作、执行操作和写块操作之间的时序关系示意图。
24.图4为本技术实施例提供的数据处理方法另一种执行的共识操作、执行操作和写块操作之间的时序关系示意图。
25.图5为本技术实施例提供的数据处理方法生成区块后所示例的区块链结构示意图。
26.图6为本技术实施例提供的数据处理方法进行共识操作的流程示意图。
27.图7为本技术实施例提供的数据处理方法的第二种流程示意图。
28.图8为本技术实施例提供的数据处理方法进行数据存证的示意图。
29.图9为本技术实施例提供的节点设备的第一种模块结构示意图。
30.图10为本技术实施例提供的节点设备的第二种模块结构示意图。
31.图11为本技术实施例提供的区块链系统的模块结构示意图。
32.图12为本技术实施例提供的区块链即服务的模块结构示意图。
33.图13为本技术实施例提供的区块链即服务的逻辑结构示意图。
34.图14为本技术实施例提供的电子设备的模块结构示意图。
具体实施方式
35.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
36.如前所述,目前区块链客户端发起的交易需要经区块链中各共识节点达成共识后才能上链。当待共识的交易超出共识节点一次共识操作的交易数量上限时,需要分多轮次进行。而每一轮次都要经历一遍共识流程,这其中主要包括了共识消息的收发、校验和解析等步骤,因此消耗了较多资源和时间。当交易迟迟无法达成共识执行时,最终会导致区块链业务出现延时。针对这一问题,本技术旨在提出一种能够提高区块链交易处理效率的技术方案。
37.图1是本技术实施例基于区块链的数据处理方法的流程图,包括:
38.s102,若区块链的共识节点在本轮待共识的交易数据超出单次共识操作的交易数据上限,则将本轮待共识的交易数据以至少两个交易数据分组的形式并行进行共识操作,其中,每个交易数据分组的交易数据数量小于单次共识操作的交易数据上限。
39.具体地,本技术实施例区块链的共识节点分为:共识主节点和共识备份节点。其中,共识主节点负责发起用于进行共识操作的共识提议。
40.共识主节点从自身交易池选取出本轮待共识的交易数据。如果本轮待共识的交易数据超出了单次共识操作的交易数据上限,则可以将本轮待共识的交易数据划分成至少两个交易数据分组。显然,交易数据分组的数量取决于本轮待共识的交易数据的数量。比如,单次共识操作的交易数据上限为5万个,本轮待共识的交易数据有14万个,则需要将这14万个交易数据细分成至少3个交易数据分组。
41.之后,共识主节点对本轮待共识的每个交易数据分组并行发起共识提议,使区块链的共识备份节点也能够并行响应共识主节点的共识提议,以对各交易数据分组进行共识操作。
42.还是以单次共识操作的交易数据上限为5万个,本轮待共识的交易数据有14万个为示例。参考图2,传统共识方案需要串行进行3个轮次的共识操作(共识操作1、2、3),才能对14万个交易数据完成共识,整个耗时为t1;本技术改进后共识方案则只需要1轮次对交易数据分组1、2、3并行进行共识操作,即可完成14万个交易数据的共识,整个耗时为t2。其中,t2和t1之间的差值δt就是本技术改进后共识方案相对于传统共识方案所节省的时间。
43.s104,共识节点在本轮待共识的所有交易数据分组全部达成共识后,对本轮待共识的交易数据进行执行操作,以及对执行操作产生的交易数据执行结果进行写块操作。
44.实际应用中,不同交易数据分组之间可能存在相关联的交易数据,比如:账户a通过账户b,向账户c转账10万数字货币,则产生两笔关联的交易数据,第一笔交易数据由账户a将10万数字货币转入至账户b,第二笔交易数据由账户b将账户a提供的10万数字货币转入至账户c。如果这两笔交易数据在不同的交易数据分组,且第一笔交易数据的交易数据分组未达成共识、第二笔交易数据的交易数据分组达成共识,则会出现只对第二笔交易数据发起执行操作,这会导致在账户b在未收到账户a提供的10万数字货币的情况下(交易数据未
执行),将账户b自己的数字货币转入至账户c,从而给账户b造成损失。
45.为避免上述问题,本技术实施例的共识节点需要在本轮待共识的所有交易数据分组均达成共识后,才会对本轮交易数据分组。如果本轮待共识的任意交易数据分组未能达成共识,则共识节点将所有交易数据分组的共识提议直接打回。
46.进一步地,本步骤中的共识节点在本轮待共识的所有交易数据分组均达成共识后,可以根据实际需求,选择并行方式对每个交易数据分组进行执行操作,还是串行方式对每个交易数据分组进行执行操作。
47.如果区块链业务涵盖有上文所示例的“账户a通过账户b,向账户c转账10万数字货币”这类需要保证交易执行顺序的关联交易业务,就需要考虑关联的两笔交易数据如果在不同交易数据分组中,一旦并行对交易数据分组的交易数据发起执行操作,可能会造成两笔交易数据执行顺序出错,即:先执行账户b向账户c转账10万数字货币,再执行账户a向账户b转账10万数字货币的情况,进而会引发下述问题:
48.如果账户b自己没有预留10万数字货币垫付给账户c,则只有账户a向账户b转账10万数字货币的这笔交易数据能够成功执行,而账户c未得到任何数字货币。
49.为此,对于需要保证交易数据执行顺序的区块链业务,可以选择串行方式对本轮待共识的交易数据分组进行执行操作。即,本轮待共识的交易数据分组由共识主节点基于交易时间排序,对本轮待共识的交易数据进行划分得到的。共识节点在本轮待共识的所有交易数据分组均达成共识后,对交易时间排序在先的交易数据分组先进行执行操作,之后再对交易时间排序在后的交易数据分组进行执行操作。
50.简单举例来说,假设有三个交易,即交易1、2、3,其中交易1的交易时间最早,交易2的交易时间最晚,则可以将交易1划分至交易数据分组1,将交易3划分至交易数据分组2,将交易2划分至交易数据分组3。当交易数据分组1、2、3均达成共识后,共识节点先对交易数据分组1的交易(包含交易1)进行交易执行操作,在交易数据分组1的交易执行操作完成后,再对交易数据分组2的交易(包含交易3)进行交易执行操作。最后,再对交易数据分组3的交易(包含交易2)进行交易执行操作。
51.显然,通过这种设计,可以保证本轮待共识的交易都能够得到有序执行。这里需要说明是,对于同一交易数据分组的交易数据来说,现有共识节点能够做到按照交易时间从先到后的顺序,选择交易数据进行执行操作,这里本文就不再具体赘述。
52.此外,如果区块链业务主要涵盖的是非金融类交易业务(比如数据存证业务),或者不涉及到上文所示例的“账户a通过账户b,向账户c转账10万数字货币”这类需要保证交易数据执行顺序的关联交易业务,则从提高执行效率角度出发,共识节点在本轮待共识的所有交易数据分组均达成共识后,选择并行方式对每个交易数据分组进行执行操作。
53.应理解,共识节点不管是并行对每个交易数据分组进行执行操作,还是串行对每个交易数据分组进行执行操作,每当完成一个交易数据分组的执行操作后,即可立即对该完成执行操作的交易数据执行结果进行写块操作。
54.为方便理解各交易数据分组共识操作

执行操作

写块操作之间的时序关系,图3示例了3个交易数据分组在共识操作完成后并行进行执行操作,以及之后进行写块操作的时序。图4示例了3个交易数据分组在共识操作完成后串行进行执行操作,以及之后进行写块操作的时序。其中:
55.图3的共识节点针对本轮待共识的每个交易数据分组配置专属的线程以进行共识操作、交易执行操作以及写块操作。其中,线程1负责进行交易数据分组1的共识操作、执行操作,以及交易数据分组1对应的交易数据执行结果的写块操作;线程2负责进行交易数据分组2的共识操作、执行操作,以及交易数据分组2对应的交易数据执行结果的写块操作;线程3负责进行交易数据分组3的共识操作、执行操作,以及交易数据分组3对应的交易数据执行结果的写块操作。即,线程与交易数据分组为一一对应的关系。
56.图4的共识节点针对本轮待共识的每个交易数据分组配置专属的共识线程以进行共识操作,针对本轮待共识的所有交易数据分组配置一个执行线程以进行执行操作,针对本轮待共识的所有交易数据分组,配置一个写块线程以对交易数据执行结果进行写块操作。这里需要说明的是,通常情况写块操作的耗时比执行操作的耗时要短(执行操作涉及到了共识节点之间相互校验交易数据执行结果的步骤,需要对交易数据执行结果进行交互),因此在执行操作串行进行的情况下,写块操作没有并行执行的需求,因此可以针对所有交易数据分组只配置一个写块操作线程以实现串行工作即可。其中,交易数据分组1、2、3与共识操作线程1、2、3一一对应,共识操作线程1、2、3并行对交易数据分组1、2、3进行共识操作;交易数据分组1、2、3只与一个执行操作线程1对应,该执行操作线程1先对交易数据分组1进行执行操作,再对交易数据分组2进行执行操作,最后再对交易数据分组3进行执行操作;交易数据分组1、2、3只与一个写块操作线程1对应,该写块操作线程1先对交易数据分组1的交易数据执行结果进行写块操作,再对交易数据分组2的交易数据执行结果进行写块操作,最后对交易数据分组3的交易数据执行结果进行写块操作。
57.此外,由于本技术实施例是以交易数据分组为粒度并行进行共识操作的,因此每个交易数据分组都会对应生成一个需要写入区块链的区块。为避免写块操作完成后,上链的这些区块导致区块链衍生出不同的分支,即区块链分叉现象,本技术实施例的每个交易数据分组各自的区块可以通用相同的区块高度,且区块头中记录的上一区块高度的区块哈希值是由上一区块高度的所有区块的区块哈希值组合得到的。
58.作为示例性介绍,图5是基于本技术实施例方法所生成的4个区块深度的区块链。基于图5可以知道,区块深度2采用两个交易数据分组并行进行共识,因此最终写入了两个区域,即区块2.1和区块2.2。区块深度3中采用三个交易数据分组并行进行共识,对应得写入区块3.1、区块3.2和区块3.3。以区块深度3为例,区块3.1、区块3.2和区块3.3共用一个区块深度3,因此之后区块深度4的区块4会引用上一区块高度3的所有区块,也就是区块4的区块头记录有上一区块高度3的区块哈希值包括区块3.1、区块3.2和区块3.3这三个区块哈希值。同理,区块3.1、区块3.2和区块3.3各自的区块头记录有上一区块高度2的区块哈希值包括区块2.1、和区块2.3这两个区块哈希值,即后一区块高度引用的前一区块高度的区块哈希值是由前一区块高度的所有区块的区块哈希值组成。通过图3所示例的这种设计,区块2是由区块2.1、2.2组成得到,区块3是由区块3.1、3.2、3.3组成得到,因此从区块1到区块4只有一种拓扑链路,即:区块1

区块2(区块2.1、2.2)

区块3(区块3.1、3.2、3.3)

区块4,避免了区块链出现分叉。
59.同理,在区块链的共识主节点对本轮待共识的每个交易数据分组并行发起的共识提议中,也均需要携带有当前本地最高区块高度的所有区块的区块哈希,这样一来共识备份节点在共识操作过程中,能够根据共识主节点本地最高区块高度的所有区块的区块哈
希,来对共识提议对应的交易数据分组的区块高度进行校验。
60.下面结合实际的应用场景,对本技术实施例的以交易数据分组为粒度,并行进行同时操作的方法进行详细介绍。
61.本应用场景中,区块链的共识协议采用实用拜占庭容错共识协议(practical byzantine fault tolerance,pbft)。共识节点(共识)默认情况下,使用单线程执行共识提议,当本轮待共识的交易数据超出单次共识操作的交易上限时,将本轮待共识的交易数据细分为至少两个交易数据分组,每个交易数据分组的交易数据数量小于单次共识操作的交易数据上限,并针对每个交易数据分组启动一个专属的专用线程以进行共识操作。
62.其中,需要划分交易数据分组情况的共识流程包括:
63.步骤一,区块链的共识主节点首先从自身交易池中选取尚未共识的交易数据,作为本轮待共识的交易数据。其中,共识主节点选取的未共识的交易数据可以是自身交易池中全部未共识的交易数据,也可以是自身交易池中部分未共识的交易数据,这里本文不作具体限定。
64.步骤二,区块链的共识主节点对本轮待共识的交易数据进行分组。
65.这里,假设本应用场景中的区块链业务对交易数据的执行顺序没有要求,则区块链的共识主节点可以基于本轮待共识的交易数据数量,先确定需要划分交易数据分组的分组数量。比如,单次共识操作的交易数据上限为5万个,本轮待共识的交易数据有14万个,则交易数据分组的分组数量为3个。
66.之后,共识主节点将本轮待共识的各交易数据的交易数据标识与分组数量进行取模运算,得到各交易数据对应的模数,并基于所述分组数量对应的模数分组规则,将对本轮待共识的各个交易数据进行交易数据分组划分。
67.比如,设置划入交易数据分组1的模数为0-2,设置划入交易数据分组2的模数为3-5,设置划入交易数据分组2的模数为6-9,通过取模运算,可以将本轮待共识的各交易实现3个交易数据分组的划分。如果其中某个交易数据分组中的交易数据达到上限,则不对其添加新的交易数据。
68.之后,共识主节点对划分得到的交易数据分组进行编号,最小编号为0,最大编号为n-1,n-1为交易数据分组的数量,也就是进行共识操作的线程数量。
69.步骤三,共识主节点并行对每个交易数据分组发起进行共识操作的共识提议,区块链的共识主节点和共识备份节点开始并行对每个交易数据分组执行pbft协议的共识操作。
70.这里以其中一个目标交易数据分组为实例,pbft协议共识操作的流程如图6所示,包括:
71.预先准备(pre-prepare)阶段:
72.区块链的共识主节点将目标本交易数据分组的提议编号(sequencen):n、视图值(view):v、交易数据哈希列表等信息以及上一高区块度所有区块的hash进行打包成pre-prepare消息后进行签名,将签名的pre-prepare消息广播至区块链的各个共识别备份节点。其中,上一高区块度所有区块的hash用于在prepare检验目标交易数据分组的区块深度是否正确。
73.准备(prepare)阶段:
74.区块链的目标共识备份节点(目标共识备份节点表征任意一个共识备份节点)在接收到pre-prepare消息后,先对pre-prepare消息中的sequence:n、view:v以及上一高区块度所有区块的hash进行校验。
75.如果校验不通过,则打回本轮次所有交易数据分组的共识提议。也就是其中目标交易数据分组为通过校验,会导致本轮次所有交易数据分组的共识提议的失败。
76.如果校验通过,则表示在prepare阶段认可了共识主节点所发起的目标交易数据分组的共识提议,并进一步执行以下步骤。
77.目标共识备份节点基于prepare阶段交易数据哈希列表中的交易的交易哈希,从目标共识备份节点的交易池中匹配出相同的交易数据。具体地,在这个匹配过程中,目标共识备份节点可以基于各共识节点共同约定使用的交易哈希计算逻辑,分别对交易数据哈希列表中的交易数据哈希进行逆向计算,得到各交易数据的摘要信息;之后,目标共识备份节点基于各交易数据的摘要信息,对自身交易池进行查找,以从交易池匹配出同样的交易数据。
78.目标共识备份节点在从目标共识备份节点的交易池中匹配出相同的交易后,进一步从交易池中提取这些交易数据。之后目标共识备份节点基于共识校验规则(如默克尔树校验),对这些交易数据进行共识校验。
79.若共识校验通过,则目标共识备份节点进入prepare阶段,将自身共识上的状态被确定为prepared,并将pre-prepare消息添加到本地log中,以及发送prepare消息给其他共识节点。
80.承诺(commit)阶段:
81.所有共识节点中的每一个在进入prepared状态后,发送commit消息给其他共识节点,并将自己发送的commit消息添加到本地log中(代表自己认可)。当一个共识节点发现有一个quorum(quorum是为了能够确保所有共识数据一致性要求和容错要求需要的一定数量共识的集合)同意编号n的分配时,它就会广播一条commit消息给其它所有共识节点。与此同时也会陆续收到来自其他共识节点的commit消息,如果某个共识节点收到了2f 1(f是区块链支持的可容错的共识节点数量)条commit消息(包括自身的一条,这些来自不同节点的commit携带相同的编号:n和view:v),则说明该共识节点拥有了一个名为committed certificate的证书,共识提议在这个共识节点上达到了committed状态。此时只通过这一个共识节点,就能断定该请求已经在一个quorum中到达了prepared状态,即同一个quorum的所有共识节点都同意了编号n的分配。当共识节点为commited状态就表示达成目标交易数据分组的共识提议。
82.以上仅是用pbft协议对其中一个目标交易数据分组的共识流程进行示例性介绍。在不脱离本文上述原理基础之上,还可以采用其他共识协议进行共识操作,这些变化也应视为本技术实施例的保护范围。
83.此外还应理解的是,区块链业务是客户端通过区块链交易所发起的,区块链业务并不限于是数字货币业务,还可以是数据存证业务。本文所述的交易数据在数据存证业务中应表示客户端需要存证的数据。下面针对数据存证业务进行示例性介绍。
84.图7是本技术实施例基于区块链的数据处理方法实现数据存证的流程,包括:
85.s702,若区块链的共识节点在本轮待共识的存证数据超出单次共识操作的存证数
据上限,则将本轮待共识的存证数据划分成至少两个存证数据分组以并行进行共识操作,其中,每个存证数据分组的存证数据数量小于单次共识操作的存证数据上限。
86.s704,共识节点在本轮待共识的所有存证数据分组全部达成共识后,对本轮待共识的存证数据进行执行操作,以及对执行操作产生的存证数据执行结果进行节点设备。
87.基于图7所示方法,若共识节点在本轮待共识的存证数据超出单次共识操作的存证存证上限,则将本轮待共识的存证数据细分成至少两个存证数据分组以并行进行共识操作,从而以一个轮次对原本超量的存证数据完成共识,进而更快地进入到执行操作以及写块操作的流程。整个方案能够显著提高区块链对数据进行存证的效率。
88.图8是对数据存证业务在实际应用场景中的示意图。区块链可以通过客户端的数据存证app,向用户提供数据存证业务。
89.这里假设区块链设置有四个共识节点,即node1、2、3、4。目标用户通过数据存证app接入的是区块链中的node2。
90.此时,目标用户需要使用数据存证app向node2发起数据存证请求,数据存证请求携带有该目标用户期望上链的存证数据。
91.node2在接收到数据存证请求后,将目标用户期望上链的存证数据添加至本地交易池中等待共识。当node2成为区块链本轮的共识主节点后,将本地交易池中所有存证数据(包含目标用户的存证数据)进行分组,得到各个存证数据分组。之后,node2并行对每个存证数据分组发起共识提议,也就是将每个存证数据分组的共识提议以广播方式发送至区块链的node1、3、4。
92.之后,所有node针对node2在本轮发起各个存证数据分组的共识提议进行对应的共识操作,并在所有存证数据分组全部达成共识后,所有node对本轮待共识的存证数据进行执行操作,例如对本轮所有存证数据进行汇总、编码等写块前相关的装备工作,以及对执行操作产生的存证数据执行结果进行写块操作,也就是node1、2、3、4在各自区块链链路上添加记录有node2在本轮发起的所有存证数据(包含目标用户的存证数据)的区块,目标用户的数据存证流程结束。
93.此外,本技术实施例还提供一种区块链的节点设备,作为图1所示方法的执行主体。图9是该区块链的节点设备900的结构示意图,包括:
94.交易数据共识模块910,用于若本轮待共识的交易数据超出单次共识操作的交易数据上限,则将所述本轮待共识的交易数据划分成至少两个交易数据分组以并行进行共识操作,其中,每个交易数据分组的交易数据数量小于单次共识操作的交易数据上限。
95.交易数据执行写入模块920,用于在所述本轮待共识的所有交易数据分组全部达成共识后,对所述本轮待共识的交易数据进行执行操作,以及对所述执行操作产生的交易数据执行结果进行写块操作。
96.基于本技术实施例的节点设备在本轮待共识的交易数据超出单次共识操作的交易数据上限时,将本轮待共识的交易数据细分成至少两个交易数据分组以并行进行共识操作,从而以一个轮次对原本超量的交易数据完成共识,进而更快地进入到执行操作以及写块操作的流程。整个方案提高了区块链处理交易数据的效率,能够显著改善区块链业务的延时问题。
97.可选地,本技术实施例的节点设备还包括:
98.交易数据分组模块,用于若所属共识节点作为所述区块链的共识主节点,则在对本轮待共识的交易数据以至少两个交易数据分组的形式并行进行共识操作前,将本轮待共识的交易数据划分成至少两个交易数据分组;以及,提议发起模块,对本轮待共识的每个交易数据分组并行发起用于进行共识操作的共识提议。
99.其中,交易数据分组模块可以基于本轮待共识的交易数据数量,确定需要划分交易数据分组的分组数量;之后,将本轮待共识的各交易数据的交易标识与分组数量进行取模运算,得到各交易数据对应的模数;并按照预先设置的模数分组规则,将本轮待共识的交易数据,划分成所述分组数量的交易数据分组。或者,交易数据分组模块也可以基于交易时间排序,对本轮待共识的交易划分交易数据分组。
100.可选地,每个交易数据分组对应的共识提议中包含有共识主节点本地最高区块高度的区块哈希值,其中,若交易数据共识模块910所属共识节点为区块链的共备份节点,在进行共识操作过程中,可以基于共识提议中所述共识主节点本地最高区块高度的区块哈希值,对该共识提议对应的交易数据分组的区块高度进行校验。
101.可选地,所述本轮待共识的每个交易数据分组在写块操作完成后对应各自的区块,每个交易数据分组各自区块的区块高度相同,且区块头中记录的上一区块高度的区块哈希值是由上一区块高度的所有区块的区块哈希值组合得到的。
102.可选地,交易数据执行写入模块920在本轮待共识的所有交易数据分组均达成共识后,并行对每个交易数据分组进行执行操作,且在每完成一个交易数据分组的执行操作后,对该执行操作的交易数据执行结果进行写块操作。
103.或者本轮待共识的交易数据分组是所述区块链的共识主节点基于交易时间排序,对本轮待共识的交易进行划分得到的。交易数据执行写入模块920在本轮待共识的所有交易数据分组均达成共识后,串行对每个交易数据分组进行执行操作,其中,交易时间排序在先的交易数据分组先于交易时间排序在后的交易数据分组进行交执行操作,且在每完成一个交易数据分组的执行操作后,对该交易执行产生的交易数据执行结果进行写块操作。
104.可选地,交易共识模块910针对每个交易数据分组启动一个专用线程进行共识操作。
105.显然,本技术实施例的节点设备可以作为上述图1所示的数据处理方法的执行主体,因此能够实现该数据处理方法在图1中所实现的功能。由于原理相同,本文不再赘述。
106.此外,本技术实施例还提供一种区块链的节点设备,作为图7所示方法的执行主体。图10是该区块链的节点设备1000的结构示意图,包括:
107.存证数据共识模块1010,用于若本轮待共识的存证数据超出单次共识操作的存证数据上限,则将所述本轮待共识的存证数据划分成至少两个存证数据分组以并行进行共识操作,其中,每个存证数据分组的存证数据数量小于单次共识操作的存证数据上限。
108.存证数据执行写入模块1020,用于在所述本轮待共识的所有存证数据分组全部达成共识后,对所述本轮待共识的存证数据进行执行操作,以及对所述执行操作产生的存证数据执行结果进行写块操作。
109.本技术实施例的节点设备在本轮待共识的存证数据超出单次共识操作的存证存证上限时,将本轮待共识的存证数据细分成至少两个存证数据分组以并行进行共识操作,从而以一个轮次对原本超量的存证数据完成共识,进而更快地进入到执行操作以及写块操
作的流程。整个方案能够显著提高区块链对数据进行存证的效率。
110.可选地,本技术实施例的节点设备还包括:
111.存证数据分组模块,用于若所属共识节点作为所述区块链的共识主节点,则在对本轮待共识的存证数据以至少两个存证数据分组的形式并行进行共识操作前,将本轮待共识的存证数据划分成至少两个存证数据分组;以及,提议发起模块,对本轮待共识的每个存证数据分组并行发起用于进行共识操作的共识提议。
112.其中,存证数据分组模块可以基于本轮待共识的存证数据数量,确定需要划分存证数据分组的分组数量;之后,将本轮待共识的各存证数据的存证标识与分组数量进行取模运算,得到各存证数据对应的模数;并按照预先设置的模数分组规则,将本轮待共识的存证数据,划分成所述分组数量的存证数据分组。
113.可选地,每个存证数据分组对应的共识提议中包含有共识主节点本地最高区块高度的区块哈希值,其中,若存证数据共识模块1010所属共识节点为区块链的共备份节点,在进行共识操作过程中,可以基于共识提议中所述共识主节点本地最高区块高度的区块哈希值,对该共识提议对应的存证数据分组的区块高度进行校验。
114.可选地,所述本轮待共识的每个存证数据分组在写块操作完成后对应各自的区块,每个存证数据分组各自区块的区块高度相同,且区块头中记录的上一区块高度的区块哈希值是由上一区块高度的所有区块的区块哈希值组合得到的。
115.可选地,交易数据执行写入模块1020在本轮待共识的所有交易数据分组均达成共识后,并行对每个存证数据分组进行执行操作,且在每完成一个存证数据分组的执行操作后,对该执行操作产生的存证数据执行结果进行写块操作。
116.显然,本技术实施例图10的节点设备可以作为上述图7所示的数据处理方法的执行主体,因此能够实现该数据处理方法在图7中所实现的功能。由于原理相同,本文不再赘述。
117.此外,如图11所示,本技术实施例还提供一种区块链系统1100,该区块链系统1100包括有多个节点设备1100。
118.其中,所述区块链系统1100的节点设备1100可以是图9所示的节点设备,能够在本轮待共识的交易数据超出单次共识操作的交易数据上限时,将本轮待共识的交易数据以至少两个交易数据分组的形式并行进行共识操作,其中,每个交易数据分组的交易数据数量小于单次共识操作的交易数据上限;以及,在本轮待共识的所有交易数据分组全部达成共识后,对本轮待共识的交易数据,以及对所述执行操作产生的交易数据执行结果进行写块操作。
119.或者,所述区块链系统1100的节点设备1100是图10所示的节点设备,能够在本轮待共识的存证数据超出单次共识操作的存证数据上限时,将所述本轮待共识的存证数据划分成至少两个存证数据分组以并行进行共识操作,其中,每个存证数据分组的存证数据数量小于单次共识操作的存证数据上限;以及,在所述本轮待共识的所有存证数据分组全部达成共识后,对所述本轮待共识的存证数据进行执行操作,以及对所述执行操作产生的存证数据执行结果进行写块操作。
120.此外,如图12所示,本技术实施例还提供一种区块链即服务平台1200,包括:接收平台客户端请求的区块链业务的业务接口1210,以及区块链系统1220。其中,区块链即服务
平台1200的区块链系统1220具体是图11所示的区块链系统,该区块链系统1220对应的所述区块链业务可以包括数字货币业务和/或数据存证业务。
121.图13是本技术实施例区块链即服务平台1200的逻辑结构图,包括接口层、管理层、链核心层、互联核心层以及基础层。其中:
122.接口层配置有不同类型的业务接口和交互式控制台。业务接口包括远程过程调rpc协议接口、软件开发工具包括sdk接口等。交互式控制台通过业务接口,与客户端之间进行区块链业务消息的交互,例如:接收客户端存证数据请求、查询数据请求,以及向客户端反馈存证结果和查询结果等。
123.管理层配置有针对区块链系统的各种管理功能,如准入管理(管理客户端接入区块链的权限)、共识管理(管理区块链的共识配置,如共识超时时间、视图时间等),权限管理(管理区块链中区块的开放权限)、参数管理(管理区块链的配置参数)等。
124.链核心层和互联核心层属于区块链系统的功能层。链核心层配置有区块链系统的区块/交易的执行引擎,以及分布式存储驱动等。互联核心层配置有区块链系统的共识协议(pbft协议)和分布式一致性协议(raft协议)。本技术实施例的pbft协议可以控制区块链系统的共识节点实现以分组为粒度的并行共识操作。
125.基础层设置有用于支撑区块链系统实现数字货币业务和数据存证业务的底层算法和源代码。例如:区块链系统中进行共识操作所使用的密码学算法、隐私算法等,节点设备的数据库驱动和boost基础库等。
126.图14是本说明书的一个实施例电子设备的结构示意图。请参考图14,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
127.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
128.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
129.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成上述区块链的节点设备。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
130.在本轮待共识的交易数据超出单次共识操作的交易数据上限时,将所述本轮待共识的交易数据划分成至少两个交易数据分组以并行进行共识操作,其中,每个交易数据分组的交易数据数量小于单次共识操作的交易数据上限。
131.在所述本轮待共识的所有交易数据分组全部达成共识后,对所述本轮待共识的交易数据进行执行操作,以及对所述执行操作产生的交易数据执行结果进行写块操作。
132.或者,处理器,执行存储器所存放的程序,并具体用于执行以下操作:
133.在本轮待共识的存证数据超出单次共识操作的存证数据上限时,将所述本轮待共识的存证数据划分成至少两个存证数据分组以并行进行共识操作,其中,每个存证数据分组的存证数据数量小于单次共识操作的存证数据上限;
134.在所述本轮待共识的所有存证数据分组全部达成共识后,对所述本轮待共识的存证数据进行执行操作,以及对所述执行操作产生的存证数据执行结果进行写块操作。
135.上述如本说明书图1或图7所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
136.应理解,本技术实施例的电子设备可以实现图1或图7所示实施例的功能,本文不再赘述。
137.当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
138.此外,本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令。
139.其中,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
140.在本轮待共识的交易数据超出单次共识操作的交易数据上限时,将所述本轮待共识的交易数据划分成至少两个交易数据分组以并行进行共识操作,其中,每个交易数据分组的交易数据数量小于单次共识操作的交易数据上限。
141.在所述本轮待共识的所有交易数据分组全部达成共识后,对所述本轮待共识的交易数据进行执行操作,以及对所述执行操作产生的交易数据执行结果进行写块操作。
142.或者,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图7所示实施例的方法,并具体用于执行以下方法:
143.在本轮待共识的存证数据超出单次共识操作的存证数据上限时,将所述本轮待共识的存证数据划分成至少两个存证数据分组以并行进行共识操作,其中,每个存证数据分组的存证数据数量小于单次共识操作的存证数据上限。
144.在所述本轮待共识的所有存证数据分组全部达成共识后,对所述本轮待共识的存
证数据进行执行操作,以及对所述执行操作产生的存证数据执行结果进行写块操作。
145.应理解,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使上文所述的区块链共识装置实现图1和图2所示实施例的功能,本文不再赘述。
146.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
147.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
148.以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献