区块链系统、消息传输方法及装置与流程

文档序号:25490460发布日期:2021-06-15 21:55阅读:234来源:国知局
区块链系统、消息传输方法及装置与流程

本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种区块链系统、消息传输方法及装置。



背景技术:

区块链技术(也被称之为,分布式账本技术)是一种去中心化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。



技术实现要素:

有鉴于此,本说明书一个或多个实施例提供一种区块链系统、消息传输方法及装置。

为实现上述目的,本说明书一个或多个实施例提供技术方案如下:

根据本说明书一个或多个实施例的第一方面,提出了一种区块链系统,包括:区块链中继通信网络;

所述区块链中继通信网络包括至少一个中继集群,每个区块链节点与至少一个中继集群相连,每一中继集群包括负载均衡设备和连接至所述负载均衡设备的至少一个中继节点;

任一中继集群中的负载均衡设备用于在接收到来自任一区块链节点的区块链消息后,将所述区块链消息分配至所述任一中继集群内的特定中继节点;

所述特定中继节点用于根据所述区块链消息包含的标识信息确定目标中继集群,所述目标中继集群连接至所述区块链消息所指示的目标区块链节点,并通过所述目标中继集群将所述目标区块链消息传输至所述目标区块链节点。

根据本说明书一个或多个实施例的第二方面,提出了一种消息传输方法,应用于区块链中继通信网络中归属于任一中继集群的负载均衡设备,所述区块链中继通信网络包括至少一个中继集群,每个区块链节点与至少一个中继集群相连,每一中继集群包括负载均衡设备和连接至所述负载均衡设备的至少一个中继节点;所述方法包括:

在接收到来自任一区块链节点的区块链消息后,将所述区块链消息分配至所述任一中继集群内的特定中继节点,以使所述特定中继节点根据所述区块链消息包含的标识信息确定目标中继集群,所述目标中继集群连接至所述区块链消息所指示的目标区块链节点;

在接收到所述特定中继节点返回的所述区块链消息后,通过所述目标中继集群将所述目标区块链消息传输至所述目标区块链节点。

根据本说明书一个或多个实施例的第三方面,提出了一种消息传输方法,应用于区块链中继通信网络中归属于任一中继集群的特定中继节点,所述区块链中继通信网络包括至少一个中继集群,每个区块链节点与至少一个中继集群相连,每一中继集群包括负载均衡设备和连接至所述负载均衡设备的至少一个中继节点;所述方法包括:

在接收到所述任一中继集群中的负载均衡设备发送的区块链消息的情况下,根据所述区块链消息包含的标识信息确定目标中继集群,所述目标中继集群连接至所述区块链消息所指示的目标区块链节点;

通过所述目标中继集群将所述目标区块链消息传输至所述目标区块链节点。

根据本说明书一个或多个实施例的第四方面,提出了一种消息传输装置,包括:

应用于区块链中继通信网络中归属于任一中继集群的负载均衡设备,所述区块链中继通信网络包括至少一个中继集群,每个区块链节点与至少一个中继集群相连,每一中继集群包括负载均衡设备和连接至所述负载均衡设备的至少一个中继节点;所述装置包括:

消息分配单元,在接收到来自任一区块链节点的区块链消息后,将所述区块链消息分配至所述任一中继集群内的特定中继节点,以使所述特定中继节点根据所述区块链消息包含的标识信息确定目标中继集群,所述目标中继集群连接至所述区块链消息所指示的目标区块链节点;

消息传输单元,在接收到所述特定中继节点返回的所述区块链消息后,通过所述目标中继集群将所述目标区块链消息传输至所述目标区块链节点。

根据本说明书一个或多个实施例的第五方面,提出了一种消息传输装置,包括:

应用于区块链中继通信网络中归属于任一中继集群的特定中继节点,所述区块链中继通信网络包括至少一个中继集群,每个区块链节点与至少一个中继集群相连,每一中继集群包括负载均衡设备和连接至所述负载均衡设备的至少一个中继节点;所述装置包括:

集群确定单元,在接收到所述任一中继集群中的负载均衡设备发送的区块链消息的情况下,根据所述区块链消息包含的标识信息确定目标中继集群,所述目标中继集群连接至所述区块链消息所指示的目标区块链节点;

消息传输单元,通过所述目标中继集群将所述目标区块链消息传输至所述目标区块链节点。

根据本说明书一个或多个实施例的第六方面,提出了一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器通过运行所述可执行指令以实现如第二方面或第三方面所述的方法。

根据本说明书一个或多个实施例的第七方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第二方面或第三方面所述方法的步骤。

附图说明

图1是一示例性实施例提供的一种区块链节点与区块链中继通信网络的交互示意图。

图2是一示例性实施例提供的一种消息传输场景的示意图。

图3是一示例性实施例提供的一种区块链系统的示意图。

图4是一示例性实施例提供的另一种区块链系统的示意图。

图5是一示例性实施例提供的一种结合角色类型的树状路由表的示意图。

图6是一示例性实施例提供的一种消息传输方法的流程图。

图7是一示例性实施例提供的另一种消息传输方法的流程图。

图8是一示例性实施例提供的一种设备的结构示意图。

图9是一示例性实施例提供的一种消息传输装置的框图。

图10是一示例性实施例提供的另一种消息传输装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。

需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。

图1是一示例性实施例提供的一种区块链节点与区块链中继通信网络的交互示意图。如图1所示,假定区块链中继通信网络包含中继11、中继12、中继13和中继14等若干中继节点。以中继11为例,该中继11可以通过网关101与区块链网络中的节点21相连;类似地,其他中继节点也可以与区块链网络中的其他区块链节点相连。网关101用于协助节点21接入区块链中继通信网络,该网关101在逻辑上相当于区块链网络中的一个区块链节点,但该网关101本身并不参与区块链共识,这样节点21可以通过区块链网络所采用的通信协议与该网关101进行通信,并且该网关101不会对区块链网络中的共识等过程产生负面影响。网关101本质上是节点21接入区块链中继通信网络的适配程序,该适配程序可以部署在节点21上,也可以部署在中继11上,还可以部署在独立于中继11和节点21的另一设备中,本说明书并不对此进行限制。

区块链网络中包含若干区块链节点,区块链节点之间的需要实现诸如共识、交易传输、区块同步等通信操作。在相关技术中,各个区块链节点之间直接采用p2p(peertopeer,点对点)技术进行通信,以传输交易、区块等,但由于各种网络因素导致通信时延高、稳定性差,无法满足应用需求。因此,类似于上述的节点21,每个区块链节点都可以分别接入区块链中继通信网络中的中继节点,这样区块链节点之间就可以通过区块链中继通信网络来实现通信。由于区块链中继通信网络是面向区块链实时传输的骨干中继通信网络,各个中继节点之间能够通过高qos保障的优质带宽进行通信交互,因而由区块链中继通信网络接管区块链节点之间通信的中间链路,能够降低通信时延、提高稳定性,从而显著提升区块链节点之间的通信质量。

区块链中继通信网络可以适用于各种类型的区块链网络,包括公有链、私有链和联盟链等。譬如,应用于公有链的区块链中继通信网络主要包括falcon、fastbitcoinrelaynetwork(fbrn)、fastinternetbitcoinrelayengine(fibre)等,而应用于联盟链的区块链中继通信网络主要包括bloxroute、blockchaintransmissionnetwork(btn)等。但是,相关技术中的上述区块链中继通信网络只能够在区块链节点之间的通信过程中起到中继作用,与未使用区块链中继通信网络时采用的p2p传输机制并没有本质差异。

以图2所示的消息传输场景为例,区块链节点n1、n2和n3分别连接至区块链中继通信网络中的中继节点r1、r2和r3,因此,区块链节点n1可以通过“n1→r1→r2→n2”的路径向区块链节点n2传输区块链消息;类似的,区块链节点n2可以通过“n2→r2→r3→n3”的路径向区块链节点n3传输区块链消息。可见,任一区块链节点可通过相应的中继节点实现与其他区块链节点之间的消息传输。

实际上,在该场景下,任一区块链节点仅连接至一个中继节点。以区块链节点n1为例,n1仅连接中继节点r1,所以对于n1和连接至r2的其他区块链节点来说,无论是n1向其他区块链节点发送区块链消息还是n1接收其他区块链节点发来的区块链消息,都要通过中继节点r1实现数据传输;换言之,中继节点r1相当于区块链节点n1与其他区块链节点之间实现数据交互的接口。因此若中继节点r1出现故障甚至宕机,则区块链节点n1将无法实现与其他区块链节点之间的消息传输,进而导致区块链节点n1对应的区块链服务不可用,因此该场景下的区块链网络运行稳定性较低。

为了结合区块链中继通信网络构建运行稳定性更高的区块链网络,本说明书提供了新的区块链系统以及基于该系统的新的消息传输方案,以中继集群替代单一的中继节点作为区块链节点之间的数据传输中间方,通过负载均衡与合理调度保障区块链网络的运行稳定性。

图3为一示例性实施例提供的一种区块链系统的示意图。如图3所示,该区块链系统,包括:区块链中继通信网络31;

区块链中继通信网络31包括至少一个中继集群(如中继集群12和中继集群13等),每一中继集群包括负载均衡设备和连接至负载均衡设备的至少一个中继节点(如中继集群12包括负载均衡设备121和连接至121的中继节点122、123、124和125,中继集群13包括负载均衡设备131和连接至131的中继节点132、133和134);每个区块链节点与至少一个中继集群相连(如区块链节点21可以连接中继集群12、区块链节点241可以连接中继集群13等),与中继集群相连的各个区块链节点可以构成区块链网络32,当然,还可以构成区块链网络33、34等(图中未示出),不再赘述;

任一中继集群中的负载均衡设备(如中继集群12中的负载均衡设备121)用于在接收到来自任一区块链节点(如区块链节点21)的区块链消息后,将所述区块链消息分配至该中继集群内的特定中继节点;相应的,特定中继节点用于根据区块链消息包含的标识信息确定目标中继集群(如中继集群13),并通过目标中继集群将目标区块链消息传输至目标区块链节点,上述目标中继集群连接至区块链消息所指示的目标区块链节点(如区块链节点23)。

需要说明的是:为了绘图简洁,图3略去了中继节点之间、中继节点与负载均衡设备之间、不同中继集群内的负载均衡设备之间、同一中继集群内的负载均衡设备与区块链节点之间、区块链节点与区块链节点之间可能存在的连接关系所对应的连线。

在本实施例中,上述各个区块链节点可以为独立的区块链节点,如区块链节点21、22和23所示;多个区块链节点也可以构成区块链节点集合,如区块链节点241和242构成区块链节点集合24。当然,区块链网络及区块链节点集合中所包含区块链节点的个数及其相互之间的连接关系,本说明书并不进行限制。

为了方便理解本说明书的技术方案,结合图4,以区块链节点n1向区块链节点n5通过中继集群传输区块链消息为例,对基于图3所示的区块链系统实现传输区块链消息的过程进行介绍。

在本实施例中,图4所示系统的中继集群、中继节点、区块链节点等系统组件对应于图3中的相应组件。例如,图4中的中继集群r1可以为图3中的中继集群13;相应的,图4中的负载均衡设备l1可以为图3中的负载均衡设备131;中继节点r11、r12和r13可以分别为中继节点132、133和134;区块链节点n1可以为区块链节点241等,不再一一赘述。另外,因为同一中继集群内的各个中继节点均连接至负载均衡设备,即中继集群中的负载均衡设备用于调度和控制各个中继节点与外部区块链节点之间的连接,因此任一中继集群中的负载均衡设备相当于该集群中所有中继节点与外部进行数据交换的出入口,起到类似于局域网内部网关的作用。对于连接至某一中继集群的区块链节点来说,该集群提供统一的集群地址(如负载均衡设备的ip地址等),而中继集群内部各个中继节点之间通过各自的内部地址实现互相通信。

在一实施例中,上述任一中继集群中的负载均衡设备可以为独立式负载均衡设备实体;也可以为集成在自身所在中继集群的主中继节点中的集中式负载均衡设备,例如可以为运行在主中继节点中的用于实现本说明书方案中负载均衡设备对应功能的一段代码或虚拟组件。其中,上述主中继节点可以预先指定,也可以由中继集群中的各个中继节点选举,以在主中继节点故障甚至宕机后选取新的主中继节点进行替代,从而保证负载均衡设备始终运行,进而保证区块链系统的消息传输稳定性。

在一实施例中,区块链节点n1可以向中继集群r1发送包含标识信息的区块链消息,其中,上述标识信息可以为目标区块链节点(如区块链节点n5)的节点编号、ip地址、mac地址等能够用于唯一表征该区块链节点的节点信息,此时,该消息即为区块链节点n1向区块链节点n5发送的区块链消息。或者,上述标识信息也可以为目标区块链节点(如区块链节点集合中包含的全部区块链节点:n4和n5,图中未示出该集合)的集合标号、集合id等集合,此时,该消息即为区块链节点n1向区块链节点集合中的所有节点(包括区块链节点n4和n5)发送的区块链消息。区块链消息中包含的上述标识信息,用于表征作为该区块链消息的接收方的区块链节点。

在一实施例中,向中继集群r1发送区块链消息之前,区块链节点n1需要先与中继集群r1中某一区块链节点建立通讯连接。作为一示例性实施例,该通讯连接可以为接收上述区块链消息之前已经在n1与r1内的任一中继节点(如中继节点r11)之间预先建立并保持的长连接。相应的,n1通过该长连接向r11发送上述区块链消息后,可以相应的发送心跳包并更新长连接的重新计时时刻,以实现对该长连接的保持。例如n1可以按照预设周期向负载均衡设备发送心跳包以维持该长连接。处于长连接状态下的n1与r11可以直接收发来自对方的区块链消息,而无需每次发送消息前都临时建立短连接,有效提高了区块链消息的收发效率,有助于快速完成区块链消息的快速传输。

作为另一示例性实施例,该通讯连接也可以为临时建立的短连接。此时,区块链节点n1在需要向目标区块链节点发送区块链消息之前与中继节点r11建立该短连接。例如,n1可以采用相关技术中“三次握手”的相关机制与r11临时建立tcp/ip短连接,并使用建立的该连接将区块链消息发送至r11。因为上述临时连接为短连接因此在区块链消息发送完成后并不需要连接双方维护该连接,从而有效避免了消息发送结束后继续维护该通讯连接可能导致的资源浪费,尤其适用于消息发送不频繁的场景。

进一步的,在区块链节点n1与中继节点r11之间建立通讯连接的过程中,若因r11处于故障甚至宕机等异常状态而导致所建立的通讯连接异常,则n1可以重试连接,即向中继集群r1重新尝试发送连接建立请求。相应的,r1中的负载均衡设备l1接收到该连接建立请求后,可以确定r1中区别于r11的替代中继节点(如中继节点r12、中继节点r13等),并在n1与替代中继节点之间建立通讯连接。其中,可以从区别于r11的各个中继节点中随机抽取上述替代中继节点,也可以将区别于r11的各个中继节点中节点地址最接近r11的中继节点确定为上述替代中继节点,本说明书对此并不进行限制。通过上述尝试,能够保证在中继集群中某一中继节点故障或宕机导致无法传输区块链消息的情况下,使用中继集群中的其他中继节点继续传输区块链消息,从而继续为区块链节点提供正常的消息传输服务,一定程度上保证了负载均衡设备和区块链系统的工作稳定性。

更进一步的,对于任一区块链节点,若其所连接的中继集群中的全部中继节点均不可用(故障或宕机等),或者该中继集群中的负载均衡设备不可用,则该中继集群实际上已无法为相应的区块链节点提供消息传输服务,此时区块链节点可以使用其所连接的备用中继集群实现消息传输。即在所连接的中继集群中的全部中继节点建立连接均失败的情况下,区块链节点可以确定对应于该中继集群的备用中继集群,并与备用中继集群中的中继节点建立连接,以发送区块链消息。例如,在中继集群r1中的中继节点r11、r12和r13均故障或宕机的情况下,r1中的任何中继节点均无法与区块链节点n1建立通讯连接,此时n1可以在自身感知到连接断开且无法建立或接收到负载均衡设备l1发送的集群故障通知消息的情况下,尝试与其所连接的备用中继集群r3建立通讯连接,并使用与r3之间建立的通讯连接传输区块链消。实际上,任一区块链节点均可以连接多个中继集群,并相应地设置主、备集群,从而实现上述集群更换以保证区块链消息的正常稳定传输。

在本实施例中,负载均衡设备li接收到区块链节点n1发送的区块链消息后,可以通过多种方式确定相应的特定中继节点。作为一示例性实施例,在l1维护有与中继集群r1相连的各个区块链节点与r1所含的各个中继节点之间建立的长连接的信息的情况下,l1可以根据维护的该长连接的信息确定r1中与n1保持长连接的中继节点(如中继节点r13),以作为特定中继节点。此时,l1确定任一区块链节点对应的中继节点并建立二者之间的长连接的过程,即为针对该区块链节点所发送的区块链消息记性负载均衡的过程:可以根据预设的负载均衡算法确定与该区块链节点建立长连接关系的中继节点。

作为另一示例性实施例,负载均衡设备l1可以通过预设的负载均衡算法从中继集群r1中选取一中继节点,以作为特定中继节点。具体的,上述负载均衡算法可以为轮询算法、随机算法等,从而保证相邻两次区块链消息对应的特定中继节点尽量不同,以避免某一特定中继节点连续频繁接收区块链消息,从而提高区块链消息特别是连续发送的多条区块链消息的传输效率及稳定性。当然,也可以采用针对目标区块链节点的节点地址取模方式快速确定特定中继节点,详见下述实施例。

确定上述特定中继节点为r13后,负载均衡设备l1可以将区块链消息发送至r13。相应的,r13可以解析该区块链消息以获取该消息中携带的标识信息,并根据该标识信息确定作为该区块链消息接收方的目标区块链节点所连接的目标中继集群,以便通过该目标中继集群向目标区块链节点传输上述区块链消息。

具体的,特定中继节点r13中可以预先维护有区块链中继通信网络中各个中继节点所连接区块链节点的路由策略,如可以预先记录区块链网络中各个区块链节点的地址信息。在区块链节点并未加入任何区块链节点集合时,该区块链节点在区块链中继通信网络中对应的路由策略仅涉及该区块链节点的节点id和与该区块链节点相连的中继集群的集群id,比如图4中的区块链节点n1对应的路由策略为“节点n1-集群r1”、区块链节点n5对应的路由策略为“节点n5-集群r2”等。而在区块链节点加入区块链节点集合后,该区块链节点在区块链中继通信网络中对应的路由策略中会增加与该区块链节点集合相关的信息。比如,当区块链节点n5加入了区块链节点集合sid2时,该区块链节点n5对应的路由策略可以由上述的“节点n5-集群r2”更新为“sid2/节点n5-集群r2”,表明该区块链节点n5归属于区块链节点集合sid2。

区块链节点集合之间可以存在一定的层级关系,基于该层级关系以及区块链节点所属的区块链节点集合、区块链节点与中继节点之间的连接关系,可以将各个区块链节点在区块链中继通信网络中对应的路由策略形成一树状结构,即树状路由表。例如图5所示,假定区块链节点n1和n2均归属于区块链节点集合sid1,区块链节点n3、n4和n5均归属于区块链节点集合sid2,而sid1和sid2均归属于区块链节点集合cid1(因此,n1~n5实际上均归属于区块链节点集合cid1)。因此cid1在该树状路由表中对应于根节点51,sid1和sid2在该树状路由表中分别对应于根节点51的子节点52-53,n1和n2在该树状路由表中分别对应于节点52的子节点54-55,n3~n5在该树状路由表中分别对应于节点53的子节点56~58,且节点54~58为该树状路由表的叶子节点,而这些叶子节点的取值为相连的中继集群的集群id,比如n1同时与r1和r2相连,因而叶子节点54的取值为集群r1或集群r2,区块链节点n5与r2相连,因而叶子节点58的取值为集群r2,等等。

当然,图5所示的树状路由表是逻辑层面的路由关系,中继节点实际在记录这些路由关系时往往采用其他形式。例如,对于每个区块链节点而言,中继节点可以按照从根节点至该区块链节点对应的叶子节点的路径,生成该区块链节点对应的路由策略,并通过预定义的分隔符对相邻节点予以分隔,那么区块链节点n1对应的路由策略可以为cid1/sid1/node1:r1orr2,其中node1为n1的节点id、r1为中继集群r1的中继id。类似地,n5对应的路由策略可以为cid1/sid2/node5:r2,其中node5为n5的节点id、r2为中继集群r2的中继id,等等。

通过在路由策略中对区块链节点所处的整条路径上的节点予以描述,使得低层级的区块链节点集合的集合标识可以更加灵活。例如,在上述的区块链节点集合sid1和sid2的基础上,进一步包含了下一层级的区块链节点集合,比如归属于区块链节点集合sid1的区块链节点集合1、归属于区块链节点集合sid2的区块链节点集合2,那么即便区块链节点集合1和2采用相同的集合标识,也可以通过区块链节点集合sid1和sid2之间的差异予以区分。

同一区块链节点可以根据应用需求而加入一个或多个区块链节点集合,即不同区块链节点集合所含的区块链节点可能存在重叠,比如区块链节点集合c1可以包括n1和n2,区块链节点集合c2可以包括n2、n3、n4和n5,那么n2就同时归属于这2个区块链节点集合c1和c2。

特定中继节点r13可以通过查询上述路由策略确定目标区块链节点的所连接的中继集群,例如若接收到的区块链消息对应的目标节点地址为cid1/sid2/node5:r2,则可以确定目标区块链节点为区块链节点n5,目标中继集群为r2;若接收到的区块链消息对应的目标节点地址为cid1/sid2,则可以确定目标中继集群为r2,目标区块链节点为r2所连接的所有区块链节点。

实际上,上述过程确定出的目标中继集群可能为区别于任一中继集群的其他集群,也可能为任一中继集群本身。相应的,在目标中继集群区别于任一中继集群的情况下,特定中继节点可以将区块链消息传输至目标中继集群,以由目标中继集群将区块链消息转发至目标区块链节点;或者,在目标中继集群为任一中继集群的情况下,特定中继节点可以确定任一中继集群中连接至目标区块链节点的目标中继节点,以由目标中继节点将区块链消息转发至目标区块链节点。例如,在特定中继节点r13确定出目标中继集群为中继集群r2的情况下,可以将区块链消息发送至r2,以使r2确定相应的目标区块链节点n5并将区块链消息传输至n5;在r13确定出目标中继集群为中继集群r1的情况下,可以进一步确定相应的目标区块链节点n2,然后确定与n2保持通讯连接的中继节点r12为目标中继节点,进而将区块链消息发送至r12,并由其将区块链消息传输至n2。

通过上述实施例,在本方案提出的区块链系统中,区块链网络中的任一区块链节点均与区块链中继通信网络中的至少一个中继集群相连,从而将中继集群作为区块链节点之间的数据传输中继中间方,通过负载均衡与合理调度,一定程度上提升了区块链网络及任一区块链节点的运行稳定性。

基于本公开的上述区块链系统实施例,本公开还提出一种消息传输方法。如图6所示,该方法应用于区块链中继通信网络中归属于任一中继集群的负载均衡设备,所述区块链中继通信网络包括至少一个中继集群,每个区块链节点与至少一个中继集群相连,每一中继集群包括负载均衡设备和连接至所述负载均衡设备的至少一个中继节点;该方法可以包括以下步骤:

步骤602,在接收到来自任一区块链节点的区块链消息后,将所述区块链消息分配至所述任一中继集群内的特定中继节点,以使所述特定中继节点根据所述区块链消息包含的标识信息确定目标中继集群,所述目标中继集群连接至所述区块链消息所指示的目标区块链节点。

在一实施例中,负载均衡设备可以采用多种方式确定上述特定中继节点。作为一示例性实施例,负载均衡设备可以通过预设的负载均衡算法从自身所在的任一中继集群中选取一中继节点,以作为特定中继节点。具体的,可以采用上述轮询算法、随机算法等实现,从而保证相邻两次区块链消息对应的特定中继节点尽量不同,以尽量避免某一中继节点(作为特定中继节点)连续频繁接收区块链消息,从而提高区块链消息特别是连续发送的多条区块链消息的传输效率及稳定性。或者,为加快节点确定速度,进而提高区块链消息的传输速度,也可以采用地址取模算法进行确定,本说明书对此并不进行限制。

作为另一示例性实施例,在自身维护有连接至任一中继集群的各个区块链节点与任一中继集群所含的各个中继节点之间建立的长连接的信息的情况下,负载均衡设备可以根据维护的长连接的信息确定任一中继集群中与任一区块链节点保持长连接的中继节点,以作为特定中继节点。此时,负载均衡设备可以通过查询长连接信息的方式确定出已经与任一区块链节点保持长连接的中继节点并将其作为特定中继节点,从而保证了特定中继节点必然已经与上述任一区块链及诶点建立并保持了长连接,进而保证了后续区块链消息传输的可靠性。

在一实施例中,负载均衡设备可以响应于任一区块链节点在通讯连接异常的情况下发送的连接建立请求,确定任一中继集群中区别于特定中继节点的替代中继节点,然后在任一区块链节点与替代中继节点之间建立通讯连接,从而实现对中继节点的故障躲避和负载均衡。

步骤604,在接收到所述特定中继节点返回的所述区块链消息后,通过所述目标中继集群将所述目标区块链消息传输至所述目标区块链节点。

在一实施例中,负载均衡设备可以在任一区块链节点与特定中继节点之间建立通讯连接,并接收特定区块链节点通过通讯连接发送的所述区块链消息,然后将该区块链消息传输至目标中继节点或目标区块链节点。进一步的,负载均衡设备可以通过预设的负载均衡算法从任一中继集群中选取特定中继节点。具体方法可以参见前述实施例的记载,不再赘述。

本方法的具体实施过程可以参见前述图3所述实施例的详细记载,此处不再赘述。

基于本公开的上述区块链系统实施例,本公开还提出一种消息传输方法。如图7所示,该方法应用于区块链中继通信网络中归属于任一中继集群的特定中继节点,所述区块链中继通信网络包括至少一个中继集群,每个区块链节点与至少一个中继集群相连,每一中继集群包括负载均衡设备和连接至所述负载均衡设备的至少一个中继节点;该方法可以包括以下步骤:

步骤702,在接收到所述任一中继集群中的负载均衡设备发送的区块链消息的情况下,根据所述区块链消息包含的标识信息确定目标中继集群,所述目标中继集群连接至所述区块链消息所指示的目标区块链节点。

步骤704,通过所述目标中继集群将所述目标区块链消息传输至所述目标区块链节点。

在一实施例中,上述过程确定出的目标中继集群可能为区别于任一中继集群的其他集群,也可能为任一中继集群本身。相应的,在目标中继集群区别于任一中继集群的情况下,特定中继节点可以将区块链消息传输至目标中继集群,以由目标中继集群将区块链消息转发至目标区块链节点;或者,在目标中继集群为任一中继集群的情况下,特定中继节点可以确定任一中继集群中连接至目标区块链节点的目标中继节点,以由目标中继节点将区块链消息转发至目标区块链节点。

本方法的具体实施过程可以参见前述图3所述实施例的详细记载,此处不再赘述。

图8是一示例性实施例提供的一种设备的示意结构图。请参考图8,在硬件层面,该设备包括处理器802、内部总线804、网络接口806、内存808以及非易失性存储器810,当然还可能包括其他业务所需要的硬件。处理器802从非易失性存储器810中读取对应的计算机程序到内存808中然后运行,在逻辑层面上形成消息传输装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

请参考图9,在软件实施方式中,该消息传输装置应用于区块链中继通信网络中归属于任一中继集群的负载均衡设备,所述区块链中继通信网络包括至少一个中继集群,每个区块链节点与至少一个中继集群相连,每一中继集群包括负载均衡设备和连接至所述负载均衡设备的至少一个中继节点;所述装置可以包括:

消息分配单元901,在接收到来自任一区块链节点的区块链消息后,将所述区块链消息分配至所述任一中继集群内的特定中继节点,以使所述特定中继节点根据所述区块链消息包含的标识信息确定目标中继集群,所述目标中继集群连接至所述区块链消息所指示的目标区块链节点;

消息传输单元902,在接收到所述特定中继节点返回的所述区块链消息后,通过所述目标中继集群将所述目标区块链消息传输至所述目标区块链节点。

可选的,还包括:

第一中继选取单元903,通过预设的负载均衡算法从所述任一中继集群中选取一中继节点,以作为所述特定中继节点;或者,

第二中继选取单元904,在自身维护了与所述任一中继集群相连的各个区块链节点与所述任一中继集群所含的各个中继节点之间建立的长连接的信息的情况下,根据维护的所述长连接的信息确定所述任一中继集群中与所述任一区块链节点保持长连接的中继节点,以作为所述特定中继节点。

可选的,还包括:

第一连接建立单元905,在所述任一区块链节点与所述任一中继集群中的任一中继节点之间建立通讯连接,并接收所述任一区块链节点通过所述通讯连接发送的所述区块链消息。

可选的,还包括:

第三中继选取单元906,通过预设的负载均衡算法从所述任一中继集群中选取所述任一中继节点。

可选的,还包括:

替代节点确定单元907,响应于所述任一区块链节点在所述通讯连接异常的情况下发送的连接建立请求,确定所述任一中继集群中区别于所述任一中继节点的替代中继节点;

第二连接建立单元908,在所述任一区块链节点与所述替代中继节点之间建立通讯连接。

请参考图10,在软件实施方式中,该消息传输装置应用于区块链中继通信网络中归属于任一中继集群的特定中继节点,所述区块链中继通信网络包括至少一个中继集群,每个区块链节点与至少一个中继集群相连,每一中继集群包括负载均衡设备和连接至所述负载均衡设备的至少一个中继节点;所述装置可以包括:

集群确定单元1001,在接收到所述任一中继集群中的负载均衡设备发送的区块链消息的情况下,根据所述区块链消息包含的标识信息确定目标中继集群,所述目标中继集群连接至所述区块链消息所指示的目标区块链节点;

消息传输单元1002,通过所述目标中继集群将所述目标区块链消息传输至所述目标区块链节点。

可选的,还包括:

消息传输单元1003,在所述目标中继集群区别于所述任一中继集群的情况下,将所述区块链消息传输至所述目标中继集群,以由所述目标中继集群将所述区块链消息转发至所述目标区块链节点;

消息转发单元1004,在所述目标中继集群为所述任一中继集群的情况下,确定所述任一中继集群中连接至所述目标区块链节点的所述目标中继节点,以由所述目标中继节点将所述区块链消息转发至所述目标区块链节点。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1