CN111741126B - 一种区块链组通信方法及系统 - Google Patents

一种区块链组通信方法及系统 Download PDF

Info

Publication number
CN111741126B
CN111741126B CN202010705415.4A CN202010705415A CN111741126B CN 111741126 B CN111741126 B CN 111741126B CN 202010705415 A CN202010705415 A CN 202010705415A CN 111741126 B CN111741126 B CN 111741126B
Authority
CN
China
Prior art keywords
nodes
group
node
message
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010705415.4A
Other languages
English (en)
Other versions
CN111741126A (zh
Inventor
刘文杰
吕晟珉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lv Chengmin
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202010705415.4A priority Critical patent/CN111741126B/zh
Publication of CN111741126A publication Critical patent/CN111741126A/zh
Application granted granted Critical
Publication of CN111741126B publication Critical patent/CN111741126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种区块链组通信方法及系统,所述方法包括:按预设规则将区块链系统中的通信节点分为一个或多个组,提取各组的组成员节点;将各组的组成员节点通过对等的分层拓扑结构排列成m行n列的拓扑矩阵,使得任一所述组成员节点与该节点所在行、所在列的所有节点连接构成完全正则图;当所述任一组成员节点接收到组消息时,按照预设规则在所述拓扑矩阵中进行消息传输,使得全部组成员节点接收到该组消息中包含的信息;所述方法及系统基于对等组内分层拓扑结构,可以根据消息重要性来决定消息发送对组成员有多少次全覆盖,从而控制消息的可靠性与冗余度,保证可靠性的同时,又可以达到提高通信效率、减少网络流量的目的。

Description

一种区块链组通信方法及系统
技术领域
本发明涉及信息技术领域,更具体地,涉及一种区块链组通信方法及系统。
背景技术
基于POS机制的区块链系统铸块过程,分为提案(proposal)和验证(verification)两个阶段,在验证阶段需要验证组进行大量通信来完成对新区块的验证,因此组通信的效率成为影响出块时间、提高TPS的关键。
目前常用的区块组通信方法包括基于DHT的分布式网络进行全网广播、全组广播方案以及使用Gossip协议来传播组消息。基于DHT的分布式网络进行全网广播的通信方式可以覆盖全网节点,但是通信量大,成本高,完全不能满足POS机制下区块链的网络通信需求;全组广播方案要求组内所有节点都要相互连接,每个节点都要保证对所有收到消息进行一次广播,这个方案实现简单,可以保证消息的到达率,但是消息的传输量高达n*n,通信量大,浪费流量,且消息覆盖全组耗时比较久,不能满足业务需求;使用Gossip协议来传播组消息只对部分节点广播,这样可以减少通信量,降低量流量占用,但是不能保证消息的到达率、及时性,可靠性不足,也不能满足业务需求。
发明内容
为了解决背景技术中现有区块链组通信方法通信量大、成本高、可靠性不足的问题,本发明提供了一种区块链组通信方法及系统,所述一种区块链组通信方法包括:
按预设规则将区块链系统中的通信节点分为一个或多个组,提取各组的组成员节点;
将各组的组成员节点通过对等的分层拓扑结构排列成m行n列的拓扑矩阵,使得任一所述组成员节点与该节点所在行的所有节点连接构成完全正则图,所述任一组成员节点与该节点所在列的所有节点连接构成完全正则图;
接收到组消息的节点,首先处理消息,然后向该节点所在列的所有节点发送列消息,向该节点所在行的所有节点发送行消息;
接收到列消息的一个或多个节点,首先处理消息,然后向该节点所在行的所有节点发送行消息;
接收到行消息的一个或多个节点,仅处理消息。
进一步的,所述将各组的组成员节点通过对等的分层拓扑结构排列成m行n列的拓扑矩阵的方法包括:
根据组成员节点总数V计算矩阵列数n,所述n=ceil(√V) ,其中,ceil(x)为大于或者等于x的最小整数;
根据组成员节点总数V和矩阵列数n计算得到矩阵行数m,所述m= ceil(V/n);
将组成员节点分成m组,每组有n个节点,将每组成员节点作为矩阵的行向量构造m行n列的矩阵;
设置矩阵每行节点之间相互连接构成完全正则图、矩阵每列节点之间相互连接构成完全正则图。
进一步的,所述根据组成员节点总数V和矩阵列数n计算得到矩阵行数m后,所述方法还包括:
将所述各组的组成员节点中任一节点定义为P_i,其中i为任一节点P_i的索引值;
将与节点索引值i除以矩阵列数n结果同商的节点构成行邻居节点集合,每个节点与其行邻居节点连接构成完全正则图,所述每个行邻居节点集合作为矩阵的行向量;
将节点索引值i关于矩阵列数n同余数的节点构成列邻居节点集合,每个节点与其列邻居节点连接构成完全正则图,所述每个列邻居节点集合作为矩阵的列向量;
根据所述行向量及所述列向量构造拓扑矩阵。
进一步的,当所述任一组成员节点接收到组消息时,按照预设规则在所述拓扑矩阵中进行消息传输的方法包括:
接收到组消息的节点,首先处理消息,然后向该节点所在列的所有节点发送列消息,向该节点在行的所有节点发送行消息;
接收到列消息的一个或多个节点,首先处理消息,然后向该节点所在行的所有节点发送行消息;
接收到行消息的一个或多个节点,仅处理消息。
进一步的,所述任一组成员节点发送消息分为组内广播和组外广播两种模式;
所述组内广播模式为任一节点发送组消息至本组其他节点,使得消息覆盖全组节点;
所述组外广播模式为任一节点发送组消息至其他组的节点,使得消息覆盖其他组的全组节点。
进一步的,所述组消息发送时设置冗余候选节点,发送节点发送组消息时,全部冗余候选节点及发送节点同时向目标节点发送消息;
所述冗余候选节点选择策略按发送节点与目标节点是否处于同一组分为组内广播模式策略和组外广播模式策略。
进一步的,所述组内广播模式策略的方法包括:
计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
K=[n/2+1]
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为拓扑矩阵的列数,函数[X]为取整函数;
从发送节点所在行中选择K个冗余候选节点,首先选择发送节点所在行的第一个节点,其余K-1个冗余候选节点从余下节点中随机选取;
向所有冗余候选节点发送组消息;
向发送节点所在行中不是冗余候选节点的节点发送行消息。
进一步的,所述组外广播模式策略的方法包括:
计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
K=[n/2+1]
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为目标节点所在组的拓扑矩阵列数,函数[X]为取整函数;
确定所有目标节点所在组中与发送节点存在连接关系的节点,构成已连接节点集合;
从已连接节点集合中选择不同列的K个节点,构成候选节点集合,若候选节点集合中总节点个数小于K,从剩余未连接节点中随机选择与候选节点集合中的节点均不位于同一列的节点,并将其加入候选节点集合;
向所述候选节点集合中所有节点发送组消息。
所述一种区块链组通信系统包括:
组成员节点以及拓扑矩阵创建单元;
所述组成员节点为各组的成员节点,所述组为区块链系统中待通信节点按预设规则划分的一个或多个组;
所述拓扑矩阵创建单元用于将各组的组成员节点通过对等的分层拓扑结构排列成m行n列的拓扑矩阵,使得任一所述组成员节点与该节点所在行的所有节点连接构成完全正则图,所述任一组成员节点与该节点所在列的所有节点连接构成完全正则图;
接收到组消息的节点,首先处理消息,然后向该节点所在列的所有节点发送列消息,向该节点所在行的所有节点发送行消息;
接收到列消息的一个或多个节点,首先处理消息,然后向该节点所在行的所有节点发送行消息;
接收到行消息的一个或多个节点,仅处理消息。
进一步的,所述拓扑矩阵创建单元根据组成员节点总数V计算矩阵列数n,所述n=ceil(√V) ,其中,ceil(x)为大于或者等于x的最小整数;
所述拓扑矩阵创建单元根据组成员节点总数V和矩阵列数n计算得到矩阵行数m,所述m= ceil(V/n);
所述拓扑矩阵创建单元将组成员节点分成m组,每组有n个节点,每组节点构成矩阵的行向量进而构造m行n列的矩阵;
所述拓扑矩阵创建单元设置矩阵每行节点之间相互连接构成完全正则图、矩阵每列节点之间相互连接构成完全正则图。
进一步的,所述拓扑矩阵创建单元计算得到拓扑矩阵行数和列数后,将所述组成员节点中任一节点定义为P_i,其中i为任一节点P_i的索引值;
所述拓扑矩阵创建单元将与节点索引值i除以矩阵列数n结果同商的节点构成行邻居节点集合,每个节点与其行邻居节点连接构成完全正则图,所述每个行邻居节点集合作为矩阵的行向量;
所述拓扑矩阵创建单元将节点索引值i关于矩阵列数n同余数的节点构成列邻居节点集合,每个节点与其列邻居节点连接构成完全正则图,所述每个列邻居节点集合作为矩阵的列向量;
所述拓扑矩阵创建单元根据所述行向量及所述列向量构成拓扑矩阵。
进一步的,接收到组消息的节点,首先处理消息,然后向该节点所在列的所有节点发送列消息,向该节点在行的所有节点发送行消息;
接收到列消息的一个或多个节点,首先处理消息,然后向该节点所在行的所有节点发送行消息;
接收到行消息的一个或多个节点,仅处理消息。
进一步的,所述任一组成员节点发送消息分为组内广播和组外广播两种模式;
所述组内广播模式为任一节点发送组消息至本组其他节点,使得消息覆盖全组节点;
所述组外广播模式为任一节点发送组消息至其他组的节点,使得消息覆盖其他组的全组节点。
进一步的,所述系统还包括冗余候选节点选择单元;
所述冗余候选节点选择单元用于选取冗余候选节点,所述冗余候选节点为同时与发送节点一起向目标节点发送组消息的备份节点;
所述冗余候选节点选择单元包括组内广播模式策略模块以及组外广播模式策略模块,所述组内广播模式策略模块的发送节点与目标节点处于同一组,所述组外广播模式策略模块的发送节点与目标节点处于不同组。
进一步的,所述组内广播模式策略模块计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
K=[n/2+1]
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为拓扑矩阵的列数,函数[X]为取整函数;
所述组内广播模式策略模块从发送节点所在行中选择K个冗余候选节点,首先选择发送节点所在行的第一个节点,其余K-1个冗余候选节点从余下节点中随机选取;
所述组内广播模式策略模块向所有冗余候选节点发送组消息;
所述组内广播模式策略模块向发送节点所在行中不是冗余候选节点的节点发送行消息。
进一步的,所述组外广播模式策略模块计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
K=[n/2+1]
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为目标节点所在组的拓扑矩阵列数,函数[X]为取整函数;
所述组外广播模式策略模块确定所有目标节点所在组中与发送节点存在连接关系的节点,构成已连接节点集合;
所述组外广播模式策略模块从已连接节点集合中选择不同列的K个节点,构成候选节点集合,若候选节点集合中总节点个数小于K,从剩余未连接节点中随机选择与候选节点集合中的节点均不位于同一列的节点,并将其加入候选节点集合;
所述组外广播模式策略模块向所述候选节点集合中所有节点发送组消息。
本发明的有益效果为:本发明提供了一种区块链组通信方法及系统,所述方法基于对等组内分层拓扑结构,可以根据消息重要性来决定消息发送对组成员有多少次全覆盖,从而控制消息的可靠性与冗余度;每次广播的消息量可以在1*n~n*n之间调整,保证通信可靠性的同时,达到提高通信效率,减少网络流量的目的。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为本发明具体实施方式的一种区块链组通信方法的流程图;
图2为本发明具体实施方式中组成员节点总数为20时的网络结构图;
图3为本发明具体实施方式的一种区块链组通信系统的结构图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为本发明具体实施方式的一种区块链组通信方法的流程图;如图1所示,所述方法包括:
步骤110,按预设规则将区块链系统中的通信节点分为一个或多个组,提取各组的组成员节点;
根据区块链系统的通信节点数量及通信需求可以将通信节点进行合理分组,分为一个或多个组,若消息发送节点将消息发送至本组其他节点则为组内广播模式,若消息发送节点将消息发送至其他组的节点则为组外广播模式。
步骤120,将各组的组成员节点通过对等的分层拓扑结构排列成m行n列的拓扑矩阵,使得任一所述组成员节点与该节点所在行的所有节点连接构成完全正则图,所述任一组成员节点与该节点所在列的所有节点连接构成完全正则图;
完全正则图中的任意节点与其他节点均有连接关系,所以消息只需一次即可通知到图上其他各点,结合完全正则图对网络结构重新设计,将组成员节点均匀分片,片内节点构成完全正则图,片间相同拓扑位置的节点构成完全正则图,达到增加消息传递速度并减少消息传输总量的目的。
拓扑矩阵的构建方法如下:
根据组成员节点总数V计算矩阵列数n,所述n=
Figure 100002_DEST_PATH_IMAGE002
,即取大于或者等于
Figure 100002_DEST_PATH_IMAGE004
的最小整数作为矩阵列数;
根据组成员节点总数V和矩阵列数n计算得到矩阵行数m,所述m= ceil(V/n),即取大于或者等于V/n的最小整数作为矩阵行数;
将组成员节点分成m组,每组有n个节点,每组成员节点作为矩阵的行向量,共m个行向量按顺序排布构成m行n列的矩阵,所述划分方式可以按顺序划分也可随机划分;
设置矩阵每行节点之间相互连接构成完全正则图、矩阵每列节点之间相互连接构成完全正则图。
若划分方式按顺序划分,定义组成员节点中任一节点为
Figure 100002_DEST_PATH_IMAGE006
,其中i为任一节点
Figure 687420DEST_PATH_IMAGE006
的索引值;
计算得到矩阵行数m与列数n后,将与节点索引值i除以矩阵列数n结果同商的节点构成行邻居节点集合,每个节点与其行邻居节点连接构成完全正则图,所述每个行邻居节点集合作为矩阵的行向量;
将节点索引值i关于矩阵列数n同余数的节点构成列邻居节点集合,每个节点与其列邻居节点连接构成完全正则图,所述每个列邻居节点集合作为矩阵的列向量;
根据所述行向量及所述列向量构成拓扑矩阵。
以节点总数V=20为例具体说明按顺序构建拓扑矩阵的方法,设其节点序列为{
Figure 100002_DEST_PATH_IMAGE008
Figure DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE012
};
首先计算拓扑矩阵列数n=
Figure DEST_PATH_IMAGE014
计算拓扑矩阵行数m= ceil(V/n)=4,则所述拓扑矩阵为
Figure DEST_PATH_IMAGE016
的矩阵;
将节点索引值i除以矩阵列数n结果同商的节点构成行邻居节点集合
Figure DEST_PATH_IMAGE018
,根据计算得到四个行邻居节点集合如下:
Figure DEST_PATH_IMAGE020
Figure DEST_PATH_IMAGE022
Figure DEST_PATH_IMAGE024
Figure DEST_PATH_IMAGE026
将节点索引值i关于矩阵列数n同余数的节点构成列邻居节点集合
Figure DEST_PATH_IMAGE028
,根据计算得到五个列邻居节点集合如下:
Figure DEST_PATH_IMAGE030
Figure DEST_PATH_IMAGE032
Figure DEST_PATH_IMAGE034
Figure DEST_PATH_IMAGE036
Figure DEST_PATH_IMAGE038
以行邻居节点集合
Figure 72745DEST_PATH_IMAGE018
作为行向量,列邻居节点集合
Figure 613579DEST_PATH_IMAGE028
作为列向量构造矩阵如下:
Figure DEST_PATH_IMAGE040
Figure DEST_PATH_IMAGE042
通过上述架构方法,将20个节点排列成
Figure 413914DEST_PATH_IMAGE016
的拓扑矩阵;
每个节点与其行邻居节点连接构成完全正则图,且每个节点与其列邻居节点连接构成完全正则图,如图2所示;
例如对节点
Figure DEST_PATH_IMAGE044
来说,Slice3是其行邻居节点集合构成的完全正则图,图1右侧第三个矩形是其列邻居节点构成的完全正则图。
步骤130,当所述任一组成员节点接收到组消息时,按照预设规则在所述拓扑矩阵中进行消息传输,使得全部组成员节点接收到该组消息中包含的信息;
消息类型包括组消息、列消息和行消息三种;所述当所述任一组成员节点接收到组消息时,按照预设规则在所述拓扑矩阵中进行消息传输的方法包括:
接收到组消息的节点,首先处理消息,然后向该节点所在列的所有节点发送列消息,向该节点在行的所有节点发送行消息;接收到列消息的一个或多个节点,首先处理消息,然后向该节点所在行的所有节点发送行消息;接收到行消息的一个或多个节点,仅处理消息。
仍以节点总数V=20为例具体说明消息传输过程:
对节点
Figure 524827DEST_PATH_IMAGE044
来说,它的行邻居节点包括
Figure DEST_PATH_IMAGE046
,列邻居节点包括;
当节点
Figure 454737DEST_PATH_IMAGE044
接收到组消息后,首先处理消息,向列邻居节点
Figure DEST_PATH_IMAGE048
发送列消息,向行邻居节点
Figure DEST_PATH_IMAGE050
发送行消息;
列邻居节点收到列消息后,首先处理消息,向每个节点所在行的所有节点发送行消息;行邻居节点处理行消息,不做消息转发,此时全部节点均接收到该组消息所包含的信息。
综上所述,若所有节点均按上述组消息、行消息、列消息规则正常工作,则不论是组内广播模式还是组外广播模式,只要消息发送者将组消息发送给目标组(目标节点所在组),经过目标节点的一次行、列消息转发即可覆盖全组节点。
但是,考虑如果选定的信息交互节点不正常工作时会造成消息广播失败。出于容灾备份的考虑,选择多个冗余候选节点用于组消息的发送,而冗余候选节点的选择要求尽可能的随机分散,降低消息广播失败的风险;针对组内广播模式和组外广播模式设置不同的冗余候选节点选择策略。
对于组内广播模式,计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
Figure DEST_PATH_IMAGE052
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为拓扑矩阵的列数,函数[X]为取整函数;
从发送节点所在行中选择K个冗余候选节点,首先选择发送节点所在行的第一个节点,其余K-1个冗余候选节点从余下节点中随机选取;
向所有冗余候选节点发送组消息;
向发送节点所在行中不是冗余候选节点的节点发送行消息。
以节点总数V=20,发送节点为节点
Figure DEST_PATH_IMAGE053
为例具体说明组内广播模式下冗余候选节点选择过程:
计算所需冗余候选节点总数
Figure DEST_PATH_IMAGE055
=3,即需要3个候选节点;
Figure 513609DEST_PATH_IMAGE044
的行邻居节点
Figure 568284DEST_PATH_IMAGE050
选择3个候选节点,首先
Figure 905725DEST_PATH_IMAGE053
所在行的第一个节点
Figure DEST_PATH_IMAGE057
必选,剩余2个节点随机选择,例如选择
Figure DEST_PATH_IMAGE059
Figure DEST_PATH_IMAGE061
三个冗余候选节点发送组消息;
Figure 798463DEST_PATH_IMAGE044
所在行的剩余节点
Figure DEST_PATH_IMAGE063
发送行消息。
对于组外广播模式,计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
Figure 507531DEST_PATH_IMAGE052
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为目标节点所在组的拓扑矩阵列数,函数[X]为取整函数;
确定所有目标节点所在组中与发送节点存在连接关系的节点,构成已连接节点集合;
从已连接节点集合中选择不同列的K个节点,构成候选节点集合,若候选节点集合中总节点个数小于K,从剩余未连接节点中随机选择与候选节点集合中的节点均不位于同一列的节点,并将其加入候选节点集合;
向所述候选节点集合中所有节点发送组消息。
以节点总数V=20,发送节点为节点
Figure 49502DEST_PATH_IMAGE053
为例具体说明组外广播模式下冗余候选节点选择过程:
假设目标组节点总数为20,设其节点序列为{
Figure DEST_PATH_IMAGE065
Figure DEST_PATH_IMAGE067
Figure DEST_PATH_IMAGE069
};
计算所需冗余候选节点总数
Figure 637304DEST_PATH_IMAGE055
=3,即需要3个候选节点;
假设目标组与节点
Figure 243603DEST_PATH_IMAGE053
相连的节点为{
Figure DEST_PATH_IMAGE071
Figure DEST_PATH_IMAGE073
,考虑
Figure 467780DEST_PATH_IMAGE071
Figure DEST_PATH_IMAGE075
不同列,故{
Figure 90522DEST_PATH_IMAGE071
Figure 550191DEST_PATH_IMAGE073
均能成为冗余候选节点;
因为连接的候选节点数小于3,所以从其余未连接节点中随机选出一个与
Figure 761730DEST_PATH_IMAGE071
Figure 48486DEST_PATH_IMAGE075
均不同列的节点,例如选择
Figure DEST_PATH_IMAGE077
构造冗余候选节点集合{
Figure 866181DEST_PATH_IMAGE071
Figure DEST_PATH_IMAGE079
},向所述冗余候选节点集合中所有节点发送组消息。
图3为本发明具体实施方式的一种区块链组通信系统的结构图;如图3所示,所述系统包括:
组成员节点310以及拓扑矩阵创建单元320;所述组成员节点310包括一个或多个,图3仅体现一个。
所述组成员节点310为各组的成员节点,所述组为区块链系统中待通信节点按预设规则划分的一个或多个组;
所述拓扑矩阵创建单元320用于将各组的组成员节点310通过对等的分层拓扑结构排列成m行n列的拓扑矩阵,使得任一所述组成员节点310与该节点所在行的所有节点连接构成完全正则图,所述任一组成员节点310与该节点所在列的所有节点连接构成完全正则图;
所述拓扑矩阵创建单元320根据组成员节点310总数V计算矩阵列数n,所述n=
Figure 896585DEST_PATH_IMAGE002
所述拓扑矩阵创建单元320根据组成员节点310总数V和矩阵列数n计算得到矩阵行数m,所述m=
Figure DEST_PATH_IMAGE081
将组成员节点310分成m组,每组有n个节点,每组成员节点作为矩阵的行向量,共m个行向量按顺序排布构成m行n列的矩阵,所述划分方式可以按顺序划分也可随机划分;
所述拓扑矩阵创建单元320设置矩阵每行节点之间相互连接构成完全正则图、矩阵每列节点之间相互连接构成完全正则图。
若划分方式按顺序划分,所述拓扑矩阵创建单元320计算得到拓扑矩阵行数和列数后,将所述组成员节点310中任一节点定义为
Figure DEST_PATH_IMAGE082
,其中i为任一节点
Figure 556106DEST_PATH_IMAGE006
的索引值;
所述拓扑矩阵创建单元320将与节点索引值i除以矩阵列数n结果同商的节点构成行邻居节点集合,每个节点与其行邻居节点连接构成完全正则图,所述每个行邻居节点集合作为矩阵的行向量;
所述拓扑矩阵创建单元320将节点索引值i关于矩阵列数n同余数的节点构成列邻居节点集合,每个节点与其列邻居节点连接构成完全正则图,所述每个列邻居节点集合作为矩阵的列向量;
所述拓扑矩阵创建单元320根据所述行向量及所述列向量构成拓扑矩阵。
当所述任一组成员节点310接收到组消息时,按照预设规则在所述拓扑矩阵中进行消息传输,使得全部组成员节点310接收到该组消息中包含的信息。
接收到组消息的节点,首先处理消息,然后向该节点所在列的所有节点发送列消息,向该节点在行的所有节点发送行消息;接收到列消息的一个或多个节点,首先处理消息,然后向该节点所在行的所有节点发送行消息;接收到行消息的一个或多个节点,仅处理消息。
所述任一组成员节点310发送消息分为组内广播和组外广播两种模式;
所述组内广播模式为任一节点发送组消息至本组其他节点,使得消息覆盖全组节点;所述组外广播模式为任一节点发送组消息至其他组的节点,使得消息覆盖其他组的全组节点。
考虑如果选定的信息交互节点不正常工作时会造成消息广播失败。出于容灾备份的考虑,选择多个冗余候选节点用于组消息的发送,而冗余候选节点的选择要求尽可能的随机分散,降低消息广播失败的风险;针对组内广播模式和组外广播模式设置不同的冗余候选节点选择策略。
因此所述系统还包括冗余候选节点选择单元330;
所述冗余候选节点选择单元330用于选取冗余候选节点,所述冗余候选节点为同时与发送节点一起向目标节点发送组消息的备份节点;
所述冗余候选节点选择单元330包括组内广播模式策略模块3301以及组外广播模式策略模块3302,所述组内广播模式策略模块3301的发送节点与目标节点处于同一组,所述组外广播模式策略模块3302的发送节点与目标节点处于不同组。
其中,所述组内广播模式策略模块3301计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
Figure 731872DEST_PATH_IMAGE052
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为拓扑矩阵的列数,函数[X]为取整函数;
所述组内广播模式策略模块3301从发送节点所在行中选择K个冗余候选节点,首先选择发送节点所在行的第一个节点,其余K-1个冗余候选节点从余下节点中随机选取;
所述组内广播模式策略模块3301向所有冗余候选节点发送组消息;
所述组内广播模式策略模块3301向发送节点所在行中不是冗余候选节点的节点发送行消息。
所述组外广播模式策略模块3302计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
Figure 765425DEST_PATH_IMAGE052
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为目标节点所在组的拓扑矩阵列数,函数[X]为取整函数;
所述组外广播模式策略模块3302确定所有目标节点所在组中与发送节点存在连接关系的节点,构成已连接节点集合;
所述组外广播模式策略模块3302从已连接节点集合中选择不同列的K个节点,构成候选节点集合,若候选节点集合中总节点个数小于K,从剩余未连接节点中随机选择与候选节点集合中的节点均不位于同一列的节点,并将其加入候选节点集合;
所述组外广播模式策略模块3302向所述候选节点集合中所有节点发送组消息。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。本说明书中涉及到的步骤编号仅用于区别各步骤,而并不用于限制各步骤之间的时间或逻辑的关系,除非文中有明确的限定,否则各个步骤之间的关系包括各种可能的情况。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,在权利要求书中所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。
以上所述仅是本公开的具体实施方式,应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开精神的前提下,可以作出若干改进、修改、和变形,这些改进、修改、和变形都应视为落在本申请的保护范围内。

Claims (14)

1.一种区块链组通信方法,所述方法包括:
按预设规则将区块链系统中的通信节点分为一个或多个组,提取各组的组成员节点;
将各组的组成员节点通过对等的分层拓扑结构排列成m行n列的拓扑矩阵,使得任一所述组成员节点与该节点所在行的所有节点连接构成完全正则图,所述任一组成员节点与该节点所在列的所有节点连接构成完全正则图;
接收到组消息的节点,首先处理消息,然后向该节点所在列的所有节点发送列消息,向该节点所在行的所有节点发送行消息;
接收到列消息的一个或多个节点,首先处理消息,然后向该节点所在行的所有节点发送行消息;
接收到行消息的一个或多个节点,仅处理消息。
2.根据权利要求1所述的方法,其特征在于,所述将各组的组成员节点通过对等的分层拓扑结构排列成m行n列的拓扑矩阵的方法包括:
根据组成员节点总数V计算矩阵列数n,所述n=
Figure DEST_PATH_IMAGE002
根据组成员节点总数V和矩阵列数n计算得到矩阵行数m,所述m=
Figure DEST_PATH_IMAGE004
,其中,ceil(x)为大于或者等于x的最小整数;
将组成员节点分成m组,每组有n个节点,将每组成员节点作为矩阵的行向量构造m行n列的矩阵;
设置矩阵每行节点之间相互连接构成完全正则图、矩阵每列节点之间相互连接构成完全正则图。
3.根据权利要求2所述的方法,其特征在于,所述根据组成员节点总数V和矩阵列数n计算得到矩阵行数m后,所述方法还包括:
将所述各组的组成员节点中任一节点定义为
Figure DEST_PATH_IMAGE006
,其中i为任一节点
Figure 288983DEST_PATH_IMAGE006
的索引值;
将与节点索引值i除以矩阵列数n结果同商的节点构成行邻居节点集合,每个节点与其行邻居节点连接构成完全正则图,所述每个行邻居节点集合作为矩阵的行向量;
将节点索引值i关于矩阵列数n同余数的节点构成列邻居节点集合,每个节点与其列邻居节点连接构成完全正则图,所述每个列邻居节点集合作为矩阵的列向量;
根据所述行向量及所述列向量构造拓扑矩阵。
4.根据权利要求1所述的方法,其特征在于:
所述任一组成员节点发送消息分为组内广播和组外广播两种模式;
所述组内广播模式为任一节点发送组消息至本组其他节点,使得消息覆盖全组节点;
所述组外广播模式为任一节点发送组消息至其他组的节点,使得消息覆盖其他组的全组节点。
5.根据权利要求1所述的方法,其特征在于:
所述组消息发送时设置冗余候选节点,发送节点发送组消息时,全部冗余候选节点及发送节点同时向目标节点发送消息;
所述冗余候选节点选择策略按发送节点与目标节点是否处于同一组分为组内广播模式策略和组外广播模式策略。
6.根据权利要求5所述的方法,其特征在于,所述组内广播模式策略的方法包括:
计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
Figure DEST_PATH_IMAGE008
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为拓扑矩阵的列数,函数[X]为取整函数;
从发送节点所在行中选择K个冗余候选节点,首先选择发送节点所在行的第一个节点,其余K-1个冗余候选节点从余下节点中随机选取;
向所有冗余候选节点发送组消息;
向发送节点所在行中不是冗余候选节点的节点发送行消息。
7.根据权利要求5所述的方法,其特征在于,所述组外广播模式策略的方法包括:
计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
Figure 81489DEST_PATH_IMAGE008
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为目标节点所在组的拓扑矩阵列数,函数[X]为取整函数;
确定所有目标节点所在组中与发送节点存在连接关系的节点,构成已连接节点集合;
从已连接节点集合中选择不同列的K个节点,构成候选节点集合,若候选节点集合中总节点个数小于K,从剩余未连接节点中随机选择与候选节点集合中的节点均不位于同一列的节点,并将其加入候选节点集合;
向所述候选节点集合中所有节点发送组消息。
8.一种区块链组通信系统,所述系统包括:
组成员节点以及拓扑矩阵创建单元;
所述组成员节点为各组的成员节点,所述组为区块链系统中待通信节点按预设规则划分的一个或多个组;
所述拓扑矩阵创建单元用于将各组的组成员节点通过对等的分层拓扑结构排列成m行n列的拓扑矩阵,使得任一所述组成员节点与该节点所在行的所有节点连接构成完全正则图,所述任一组成员节点与该节点所在列的所有节点连接构成完全正则图;
接收到组消息的节点,首先处理消息,然后向该节点所在列的所有节点发送列消息,向该节点所在行的所有节点发送行消息;
接收到列消息的一个或多个节点,首先处理消息,然后向该节点所在行的所有节点发送行消息;
接收到行消息的一个或多个节点,仅处理消息。
9.根据权利要求8所述的系统,其特征在于:
所述拓扑矩阵创建单元根据组成员节点总数V计算矩阵列数n,所述n=
Figure 657964DEST_PATH_IMAGE002
,其中,ceil(x)为大于或者等于x的最小整数;
所述拓扑矩阵创建单元根据组成员节点总数V和矩阵列数n计算得到矩阵行数m,所述m=
Figure 364758DEST_PATH_IMAGE004
所述拓扑矩阵创建单元将组成员节点分成m组,每组有n个节点,每组节点构成矩阵的行向量进而构造m行n列的矩阵;
所述拓扑矩阵创建单元设置矩阵每行节点之间相互连接构成完全正则图、矩阵每列节点之间相互连接构成完全正则图。
10.根据权利要求9所述的系统,其特征在于:
所述拓扑矩阵创建单元计算得到拓扑矩阵行数和列数后,将所述组成员节点中任一节点定义为
Figure 241447DEST_PATH_IMAGE006
,其中i为任一节点
Figure DEST_PATH_IMAGE009
的索引值;
所述拓扑矩阵创建单元将与节点索引值i除以矩阵列数n结果同商的节点构成行邻居节点集合,每个节点与其行邻居节点连接构成完全正则图,所述每个行邻居节点集合作为矩阵的行向量;
所述拓扑矩阵创建单元将节点索引值i关于矩阵列数n同余数的节点构成列邻居节点集合,每个节点与其列邻居节点连接构成完全正则图,所述每个列邻居节点集合作为矩阵的列向量;
所述拓扑矩阵创建单元根据所述行向量及所述列向量构成拓扑矩阵。
11.根据权利要求8所述的系统,其特征在于:
所述任一组成员节点发送消息分为组内广播和组外广播两种模式;
所述组内广播模式为任一节点发送组消息至本组其他节点,使得消息覆盖全组节点;
所述组外广播模式为任一节点发送组消息至其他组的节点,使得消息覆盖其他组的全组节点。
12.根据权利要求8所述的系统,其特征在于:
所述系统还包括冗余候选节点选择单元;
所述冗余候选节点选择单元用于选取冗余候选节点,所述冗余候选节点为同时与发送节点一起向目标节点发送组消息的备份节点;
所述冗余候选节点选择单元包括组内广播模式策略模块以及组外广播模式策略模块,所述组内广播模式策略模块的发送节点与目标节点处于同一组,所述组外广播模式策略模块的发送节点与目标节点处于不同组。
13.根据权利要求12所述的系统,其特征在于:
所述组内广播模式策略模块计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
Figure 939276DEST_PATH_IMAGE008
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为拓扑矩阵的列数,函数[X]为取整函数;
所述组内广播模式策略模块从发送节点所在行中选择K个冗余候选节点,首先选择发送节点所在行的第一个节点,其余K-1个冗余候选节点从余下节点中随机选取;
所述组内广播模式策略模块向所有冗余候选节点发送组消息;
所述组内广播模式策略模块向发送节点所在行中不是冗余候选节点的节点发送行消息。
14.根据权利要求12所述的系统,其特征在于:
所述组外广播模式策略模块计算需要发送组消息的冗余候选节点数量,所述计算方法如下:
Figure 517893DEST_PATH_IMAGE008
其中,所述K为需要发送组消息的冗余候选节点数量,所述n为目标节点所在组的拓扑矩阵列数,函数[X]为取整函数;
所述组外广播模式策略模块确定所有目标节点所在组中与发送节点存在连接关系的节点,构成已连接节点集合;
所述组外广播模式策略模块从已连接节点集合中选择不同列的K个节点,构成候选节点集合,若候选节点集合中总节点个数小于K,从剩余未连接节点中随机选择与候选节点集合中的节点均不位于同一列的节点,并将其加入候选节点集合;
所述组外广播模式策略模块向所述候选节点集合中所有节点发送组消息。
CN202010705415.4A 2020-07-21 2020-07-21 一种区块链组通信方法及系统 Active CN111741126B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010705415.4A CN111741126B (zh) 2020-07-21 2020-07-21 一种区块链组通信方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010705415.4A CN111741126B (zh) 2020-07-21 2020-07-21 一种区块链组通信方法及系统

Publications (2)

Publication Number Publication Date
CN111741126A CN111741126A (zh) 2020-10-02
CN111741126B true CN111741126B (zh) 2021-02-19

Family

ID=72655215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010705415.4A Active CN111741126B (zh) 2020-07-21 2020-07-21 一种区块链组通信方法及系统

Country Status (1)

Country Link
CN (1) CN111741126B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684127A (zh) * 2018-12-29 2019-04-26 西安电子科技大学 基于完全图最小带宽再生码的局部性节点修复方法
CN110378150A (zh) * 2019-09-11 2019-10-25 南京邮电大学 一种基于度序列最佳分组进行图结构修改的网络匿名方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012103705A1 (zh) * 2011-06-24 2012-08-09 华为技术有限公司 计算机子系统和计算机系统
US10193757B2 (en) * 2016-03-21 2019-01-29 National Cheng Kung University Network topology system and method
CN106209294B (zh) * 2016-07-01 2018-08-03 西安电子科技大学 一种高扩展的数据中心全光互连网络系统及通信方法
CN107092576A (zh) * 2017-04-28 2017-08-25 郑州云海信息技术有限公司 一种多处理机互联方法及互联系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684127A (zh) * 2018-12-29 2019-04-26 西安电子科技大学 基于完全图最小带宽再生码的局部性节点修复方法
CN110378150A (zh) * 2019-09-11 2019-10-25 南京邮电大学 一种基于度序列最佳分组进行图结构修改的网络匿名方法

Also Published As

Publication number Publication date
CN111741126A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
CN110474846B (zh) 一种区块链中区块传播的方法及装置
US20160134482A1 (en) Distributed Determination OF Routes in a Vast Communication Network
US10306664B2 (en) Deterministic scheduling method oriented to industrial wireless WIA-PA network
CN109617702B (zh) 消息签名的方法、区块链节点及具有存储功能的装置
CN107210850A (zh) 用于选择无线网络中的通信参数的方法和系统
CN103346967A (zh) 一种数据中心网络拓扑结构及其路由方法
CN117176736A (zh) 基于近邻节点分簇的区块传输方法
Brinkmeier et al. Optimally dos resistant p2p topologies for live multimedia streaming
CN109889447B (zh) 一种基于混合环组网和喷泉码的网络传输方法及系统
CN111741126B (zh) 一种区块链组通信方法及系统
CN109242242B (zh) 一种用于确定系统保护专网业务风险建模的方法和系统
Matsuura et al. Region-based neighbor selection in blockchain networks
CN107592218B (zh) 一种数据中心网络结构的构建方法
CA2577287A1 (en) Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network
CN102246476A (zh) 使用两个端口的数据中心服务器的可缩放互连
US20040042493A1 (en) System and method for communicating information among components in a nodal computer architecture
US20160173472A1 (en) Method for exchanging numerical data frames and associated communication system
Wu et al. On constructing the minimum orthogonal convex polygon for the fault-tolerant routing in 2-D faulty meshes
CN111818152B (zh) 一种基于分布式网络的领导者选举的共识方法
RU2290760C2 (ru) Способ динамического распределения нагрузки для сигнальных точек и подсистем
Xiong et al. Multi-fault aware parallel localization protocol for backbone network with many constraints
CN114095439A (zh) 流量优化方法和装置、电子设备、计算机可读存储介质
CN111510484A (zh) 区块链处理方法、系统、装置、计算机设备和存储介质
CA2975031C (en) Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network
CN107733810B (zh) 一种确定路由的方法、装置及通信设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20210129

Address after: 310008 No.24, nilongshan, Shangcheng District, Hangzhou City, Zhejiang Province

Applicant after: Lv Chengmin

Address before: Room A201, building 3, 88 Longyuan Road, Cangqian street, Yuhang District, Hangzhou City, Zhejiang Province

Applicant before: HANGZHOU ZHIKUAI NETWORK TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant