本发明涉及区块链技术,尤其涉及一种区块链交易信息的排序系统及方法。
背景技术:
超级账本技术是一种用于对区块链中的交易信息进行排序的技术,针对区块链生产过程产生的交易信息,现有的超级账本所提供的对于区块链的排序服务主要为卡夫卡模式。其中,卡夫卡模式的超级账本通过部署在服务器上的排序集群中的各节点对交易信息进行处理后,由排序集群中的主节点对所有的交易信息进行排序处理。
但是采用现有技术,虽然超级账本的排序集群中存在多个节点,排序服务却只能由排序集群中的主节点进行。造成了当排序集群需要对大量交易信息进行排序时,如果排序集群中主节点处理性能较差而排序速度较慢,则会影响对大量交易信息进行排序的效率。因此,如何提高超级账本对区块链交易信息的排序效率是目前亟待解决的技术问题。
技术实现要素:
本发明提供一种区块链交易信息的排序系统及方法,提高了对区块链交易信息的排序效率。
本发明第一方面提供一种区块链交易信息的排序系统,包括:
排序集群、验证节点集群和排序分配中心odc;
所述odc用于按照预设标准确定所述排序集群中的至少一个目标排序节点;
所述至少一个目标排序节点用于将接收的n个交易信息生成对应的m个区块并对所述m个区块进行排序后,将所述m个区块的描述信息传输至所述odc,并将所述m个区块传输至所述验证节点集群;
所述odc还用于确定所述m个区块的序号,并将所述m个区块的序号传输至所述验证节点集群;
所述验证节点集群用于根据所述m个区块和所述m个区块的序号将所述m个区块添加到第一区块链中。
在本发明第一方面一实施例中,所述odc还用于,
获取所述排序集群中每个排序节点的注册请求;
注册并记录所述排序集群中每个排序节点的信息。
在本发明第一方面一实施例中,所述验证节点集群具体用于,
按照所述m个区块的序号的顺序,将所述m个区块依次添加到所述第一区块链中。
在本发明第一方面一实施例中,所述预设标准包括:所述排序集群中负载最轻的至少一个排序节点为所述至少一个目标排序节点。
在本发明第一方面一实施例中,所述预设标准包括:所述排序集群中距离客户端集群地理位置最近的至少一个排序节点为所述至少一个目标排序节点。
本发明第二方面提供一种区块链交易信息的排序方法,包括:
按照预设标准确定所述排序集群中的至少一个目标排序节点后;
通过所述至少一个目标排序节点将接收的n个交易信息生成对应的m个区块并对所述m个区块进行排序后,将所述m个区块的描述信息传输至所述odc并将所述m个区块传输至所述验证节点集群;
确定所述m个区块的序号;
根据所述m个区块和所述m个区块的序号将所述m个区块添加到第一区块链中。
在本发明第二方面一实施例中,所述按照预设标准确定所述排序集群中的至少一个目标排序节点之前,还包括:
获取所述排序集群中每个排序节点的注册请求;
注册并记录所述排序集群中每个排序节点的信息。
在本发明第二方面一实施例中,所述根据所述m个区块和所述m个区块的序号将所述m个区块添加到第一区块链中,包括:
按照所述m个区块的序号的顺序,将所述m个区块依次添加到所述第一区块链中。
在本发明第二方面一实施例中,所述预设标准包括:所述排序集群中负载最轻的排序节点为所述至少一个目标排序节点。
在本发明第二方面一实施例中,所述预设标准包括:所述排序集群中距离客户端集群地理位置最近的排序节点为所述至少一个目标排序节点。
本发明第三方面提供一种电子设备,包括:处理器,存储器以及计算机程序;其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如本发明第二方面任一项所述的方法的指令。
本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时,实现如本发明第二方面任一项所述的方法。
综上,本发明提供一种区块链交易信息的排序系统及方法,其中系统包括:排序集群、验证节点集群和排序分配中心odc;其中,odc用于按照预设标准确定排序集群中的至少一个目标排序节点;至少一个目标排序节点用于将接收的n个交易信息生成对应的m个区块并对m个区块进行排序后,将m个区块的描述信息传输至odc,并将所述m个区块传输至验证节点集群;odc还用于确定m个区块的序号,并将m个区块的序号传输至验证节点集群;验证节点集群用于根据m个区块和m个区块的序号将m个区块添加到第一区块链中。因此,本发明提供的区块链交易信息的排序系统及方法中,通过odc确定排序集群中的至少一个目标排序节点来对客户端集群所请求的交易信息排序,从而能够从排序集群中确定最合适的排序节点来进行交易信息的排序服务,进而提高了对区块链交易信息的排序效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明区块链交易信息的排序系统一实施例的结构示意图;
图2为本发明区块链交易信息的排序方法一实施例的流程示意图;
图3为本发明区块链交易信息的排序方法一实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明区块链交易信息的排序系统一实施例的结构示意图。如图1所示,本实施例提供的区块链交易信息的排序系统1包括:排序节点排序集群4、验证节点集群5和排序分配中心(ordererdistributecenter,简称:odc)3。其中,客户端集群2、排序系统1中的排序集群3和验证节点集群5两两连接,odc3分别连接客户端集群2、排序集群4和验证节点集群5。
其中,如图1所示,客户端集群2为clientgroup,或者翻译为client集群,包括多个客户端节点,每个客户端节点可以是发起交易的各个终端,客户端集群中包括的客户端节点数量不限。客户端集群为多个客户端节点抽象而成的集群概念,客户端集群分别与验证节点集群5、排序集群4和odc3连接,可以理解为客户端集群中的每个客户端节点都与验证节点集群5、排序集群4和odc3连接。
排序集群4为orderergroup,或者翻译为orderer集群。同样地,排序集群4也包括多个排序节点,每个排序节点都可以是部署在服务器上的抽象节点,每个排序节点都可用于提供区块链技术中的排序服务。排序集群4分别连接验证节点集群5、客户端集群2和odc3,也可以理解为排序集群4中的每个排序节点都与验证节点集群5、客户端集群2和odc3连接。
验证节点集群5为peergroup,或者翻译为peer集群。验证节点集群5包括多个验证节点,每个验证节点都可以是部署在服务器上的抽象节点,每个验证节点都可用于提供区块链技术中将区块打包上区块链的服务。验证节点集群5分别连接排序集群4、odc3和客户端集群2,同样也可以理解为验证节点集群5中的每个验证节点都与排序集群4、odc3和客户端集群2连接。
特别地,本实施例中所提供的odc3分别连接客户端集群2、排序集群4和验证节点集群5。其中,odc可以是任何具备数据处理的电子设备,或者是部署在服务器上的节点,用于提供排序集群4的管理功能,当客户端集群2请求交易信息进行排序时提供合适的排序节点提供交易信息的排序服务,并在验证节点上传交易信息的区块时提供区块的排序服务。具体地,在如图1所示的实施例中,当客户端集群2需要对所发起以及处理的区块链的交易信息进行排序时,与现有技术中直接向排序集群4请求提供排序服务不同,本实施例中需要排序服务的客户端集群2向odc3请求对其n个交易信息进行排序。其中,请求的方式可以是客户端集群2向odc3发送请求消息。
当odc3收到客户端集群2的对交易信息进行排序的请求后,从排序集群4中根据预设标准确定最合适的至少一个目标排序节点为客户端集群2提供所请求的交易信息排序服务。并且当odc确定了至少一个目标排序节点后,将至少一个目标排序节点通知请求交易信息排序服务的客户端集群2。通知的方式可以是将至少一个目标排序节点的相关信息如地址、名称、位置等相关信息传输至客户端集群2。随后,当客户端集群2收到odc3传输的至少一个目标排序节点的信息后,再将所请求的n个交易信息传输至排序集群4中的至少一个目标排序节点。
可选地,在本实施例中目标排序节点是排序集群中负载最轻的至少一个排序节点,例如,负载最轻的一个排序节点或者按照负载排序最轻的多个排序节点。或者,目标排序节点是排序集群中距离客户端集群地理位置最近的至少一个排序节点,例如,距离最近的一个排序节点或者按照距离排序最近的多个排序节点。具体地,odc3确定从排序集群4中确定的至少一个目标排序节点是为了选择更为合适的至少一个排序节点来对交易信息进行排序,以防止现有技术中排序集群中所有排序服务都有排序集群中的主节点来承担。而odc3是通过预设的准则从排序集群4中确定最为合适的至少一个目标排序节点。例如,客户端集群4请求对某一客户端节点的n个交易信息进行排序,则odc3确定与该客户端节点地理位置上最近的至少一个目标排序节点来提供n个交易信息的排序服务,以从物理距离上减少二者之间的通信开销。又例如,当客户端集群4请求对n个交易信息进行排序时,odc3判断排序集群4中所有排序节点的工作状态,将排序节点中此时所处理业务最少或者负载最轻的至少一个节点作为至少一个目标排序节点对此时所请求的n个交易信息进行排序,以提高对于n个交易信息的排序速度和效率。
可选地,本实施例中odc3为了确定所连接的排序集群4中每个排序节点的信息以确定目标排序节点,因此需要排序集群4中的每个排序节点向odc3进行注册。即每个排序节点可以通过向odc3发送注册请求的方式在odc3进行注册。使得odc3通过获取排序集群中每个排序节点的注册请求;随后根据注册请求注册并记录排序集群中每个排序节点的信息,排序节点的信息至少包括:节点的id、节点的位置以及节点的处理能力等。
随后,当排序集群中的一个或多个排序节排序节点收到客户端集群2传输的n个交易信息后,由至少一个目标排序节点将排序集群接收到的n个交易信息生成对应的m个区块并对m个区块进行排序,将m个区块传输至验证节点集群5中的相关验证节点,使得相关验证节点将m个区块添加到目标区块链中。同时,至少一个目标排序节点除了将m个区块传输至相关验证节点之外,目还需要将m个区块的描述信息传输至odc,以使得odc在相关验证节点将m个区块添加到第一区块链时提供区块的排序服务。具体地,至少一个目标排序节点可以仅将m个区块的描述信息例如名称、位置以及排序等基本信息传输至odc3,由odc3根据m个区块的描述信息,通过记录m个区块的序号的方式存储m个区块的顺序。其中,这里所述的描述信息应至少包括m个区块中每个区块的基本信息,基本信息包括但不限于所述m个区块的哈希值以保证m个区块的唯一性,或者基本信息也可以包括区块在区块链中的排序以保证验证节点集群根据排序形成一致的区块链。需要说明的是,至少一个目标排序节点传输m个区块的描述信息至odc3和将m个区块传输至验证节点集群5中的相应验证节点的操作可以同时或者先后进行。
最终,验证节点集群5中的相应验证节点根据从目标排序节点接收到的m个区块,以及从odc3接收到的m个区块的序号,将m个区块添加到第一区块链中。这里的第一区块链可以指n个交易信息需对应添加的区块链,也可以是任意验证节点集群5中的相应验证节点可添加的区块链。即,在本实施例中所提供的验证节点集群5中的相应验证节点将区块添加到区块链中时,从排序集群4中仅获取m个区块的数据,而从odc3中获取m个区块的序号。以一种数据和序号分开管理的方式,排序集群只负责对于交易信息的区块进行的处理,odc只负责对区块进行排序,对于所有客户端集群2所请求的排序服务都通过odc来提供区块的排序结果,并将odc3的排序结果作为验证节点集群5将区块添加到区块链时的排序依据。从而最终使得验证节点集群5中的相应验证节点根据m个区块的序号的顺序,将m个区块依次添加到第一区块链中。
综上,本实施例提供的一种区块链交易信息的排序系统中,odc用于按照预设标准确定排序集群中的至少一个目标排序节点;至少一个目标排序节点用于将来自客户端集群的n个交易信息生成对应的m个区块并对m个区块进行排序后,将m个区块的描述信息传输至odc并将m个区块传输至验证节点集群;odc还用于确定m个区块的序号,并将m个区块的序号传输至验证节点集群;验证节点集群用于根据m个区块和m个区块的序号将m个区块添加到第一区块链中。因此,本实施例提供的区块链交易信息的排序系统,通过odc确定排序集群中的至少一个目标排序节点来对客户端集群所请求的交易信息排序,从而能够从排序集群中确定最合适的排序节点来进行交易信息的排序服务,进而提高了对区块链交易信息的排序效率。
进一步地,由于上述实施例中由于排序集群4中的每一个排序节点都可以为客户端集群2所请求的交易信息提供排序服务,则本实施中可以采取分布式并行处理的方式同时为客户端集群2提供排序服务。例如,假设排序集群4中存在3个排序节点记为a节点、b节点和c节点,当odc3先收到了客户端集群2所请求的n个交易信息的排序服务时,odc3确定3个排序节点中此时负载最小的a节点来处理n个交易信息。若odc3还同时收到了客户端集群2所请求的另外p个交易信息的排序服务,则再从剩余的2个排序节点中确定此时负载最小的b节点来处理p个交易信息。因此,本实施例中odc3能够确定不同的排序节点来处理客户端集群所请求的排序服务,即使客户端集群请求的业务量较大,也能够通过分布式的处理方式进一步提高对于交易信息的排序服务的处理效率。
图2为本发明区块链交易信息的排序方法一实施例的流程示意图。如图2所示的实施例中示出了一种可以通过图1所示的区块链交易信息排序系统执行的方法,包括:1、所有的排序节点注册自身到odc;2、客户端集群向odc请求可用的排序服务,odc从注册的排序节点中根据排序节点的负载选择负载量较小的排序节点返回给客户端集群;3、客户端集群发起交易并由相关验证节点集群背书,并检查背书结果;4、客户端将交易信息提交到之前请求到排序节点;5、排序节点对接收到的交易进行排序,由交易组成区块,将区块信息传输给验证节点集群中的相关验证节点;之后排序集群将所传输的区块基本信息传输给odc;6、odc收到排序集群传输的区块基本信息后,对区块进行排序;7、区块排序信息传递到验证节点集群中的相关验证节点,验证节点根据排序信息,对收到的区块按照顺序添加到区块链中。
图3为本发明区块链交易信息的排序方法一实施例的流程示意图。如图3所示,本实施例提供的区块链交易信息的排序方法可应用于如图1所示的区块链交易信息的排序系统,其中本实施例的方法包括:
s101:按照预设标准确定排序集群中的至少一个目标排序节点
s102:通过至少一个目标排序节点将接收的n个交易信息生成对应的m个区块并对m个区块进行排序;
s103:确定m个区块的序号;
s104:根据m个区块和m个区块的序号将m个区块添加到第一区块链中。
本实施例提供的区块链交易信息的排序方法可以由如图1所示的区块链交易信息的排序系统执行,其实现方式与原理相同,不再赘述。
可选地,在上述实施例中,s101之前,还包括:
获取排序集群中每个排序节点的注册请求;
注册并记录排序集群中每个排序节点的信息。
可选地,在上述实施例中,s105:根据m个区块和m个区块的序号将m个区块添加到第一区块链中,包括:
按照m个区块的序号的顺序,将m个区块依次添加到第一区块链中。
可选地,在上述实施例中,预设标准包括:排序集群中负载最轻的至少一个排序节点为至少一个目标排序节点。
可选地,在上述实施例中,预设标准包括:排序集群中距离客户端集群地理位置最近的至少一个排序节点为至少一个目标排序节点。
本实施例提供的区块链交易信息的排序方法可以由如前述实施例中所示的区块链交易信息的排序系统执行,其实现方式与原理相同,不再赘述。
本申请还提供一种计算机程序产品,计算机程序产品包含的程序代码被处理器执行时,实现如上述实施例中任一区块链交易信息的排序方法。
本发明还提供一种电子设备,包括:处理器,存储器以及计算机程序;其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如上述实施例中任一项所述的方法的指令。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时,实现如上述实施例中任一项所述的方法。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。