掌桥专利:专业的专利平台
掌桥专利
首页

一种适用于非全连接区块链网络的消息传输方法

文献发布时间:2024-04-18 19:58:21


一种适用于非全连接区块链网络的消息传输方法

技术领域

本发明涉及了区块链技术领域的一种区块链网络自发现的优化方法,具体涉及了一种基于分组机制的适应于非全连接的区块链网络发现的消息传输方法。

背景技术

在多机构参与的联盟链场景里,打通物理网络对于部分IT能力比较弱的机构来说比较困难,物理网络打通耗时长。因此,期望区块链可以实现高效的非直连节点的(共识)消息转发功能。

在现有的网络场景下,面临着网络中节点发现消息冗余度大和节点发现速度慢的问题。消息传输在网络中一般有三种形式:单播、广播和组播。对于单播和组播而言,现存的区块链中的单播和组播局限于直接通信链路间的传输或者指定中继节点的转发,无法解决多跳距离的传输问题。而对于广播而言,目前区块链中使用的广播协议虽能够解决节点间没有直接通信连接的问题,但收敛速度和覆盖率一直是广播协议面临的挑战,这些将影响系统的吞吐和时延等,因此也无法将广播协议直接应用于非全连接网络。故在非全连接区块链网络中研究高效的消息传输算法十分重要。

发明内容

为了解决背景技术中存在的问题和需求,本发明的目的是提供一种适应于非全连接的区块链网络发现的消息传输方法,实现在非全连接的区块链网络环境下进行消息传输的目的。本发明可以在物理网络环境正常情况下,实现确定性网络消息交付,同时基于分组机制,大大提升网络节点发现的效率,实现了在区块链非全连接网络下的高效的消息传输机制。

本发明采用的技术方案是:

1)将非全连接区块链网络的节点进行聚类分组后,获得分组结构的网络拓扑;

2)利用组播方法对分组结构的网络拓扑进行组内和组间的路径学习,获得组内路径图和相邻组间关键节点的路径图并存储于对应的组内关键节点中,从而更新分组结构的网络拓扑;

3)当消息从源节点传输至目标节点时,首先查看当前源节点是否存储有到目标节点的路径图,如果有,则根据当前路径图从当前源节点到目标节点进行单播传输;否则,基于当前源节点所在组的关键节点,利用组播方法向其他组的关键节点进行路径学习,直到找到目标节点所在组的关键节点,然后通过目标所在组的关键节点在本组内向目标节点传输消息。

所述分组结构的网络拓扑中,每个组由至少2个关键节点和多个普通节点以非全连接的形式连接组成。

所述2)中,利用组播方法对分组结构的网络拓扑进行组内的路径学习时,源节点和目标节点均为每个组内的节点,将当前组内的所有节点记为共识节点。

利用组播方法对分组结构的网络拓扑进行组间的路径学习时,源节点和目标节点为相邻两个组中不同组内的关键节点,将当前相邻两个组中的所有节点记为共识节点。

利用组播方法对当前分组结构的网络拓扑进行路径学习时,源节点和目标节点为非全连接区块链网络的任一节点,非全连接区块链网络的所有节点记为共识节点。

所述组播方法具体为:

S1:将源节点记为初始组播节点,根据目标节点确定目标节点列表;

S2:将当前组播节点的邻居节点列表中存在于目标节点列表的节点加入下一跳节点列表中并且从目标节点列表中剔除;

S3:遍历共识节点列表,将存在于当前组播节点的邻居节点列表且不存在于当前下一跳节点列表的节点加入下一跳节点列表中,以及将不存在于当前组播节点的邻居节点列表且不存在于当前目标节点列表中的节点加入转发节点列表中;

S4:将当前目标节点列表和转发节点列表放入当前组播节点的组播消息中并发送给下一跳节点列表中的各节点;

S5:下一跳节点列表中的各节点均记为组播节点,如果当前目标节点列表为空,则结束转发;否则每个当前组播节点根据目标节点列表和转发节点列表继续组播并更新,直至目标节点列表为空。

所述每个当前组播节点根据目标节点列表和转发节点列表继续组播并更新,具体为:

将当前组播节点的邻居节点列表中存在于目标节点列表中的节点放入当前组播节点的下一跳节点列表中并从目标节点列表中剔除,以及将存在于转发节点列表中的节点放入下一跳节点列表中并从转发节点列表中剔除,更新目标节点列表和转发节点列表并放入当前组播节点的组播消息中,进而发送给对应下一跳节点列表中的各节点并作为新的组播节点。

本发明的有益效果是:

1)在区块链非全连接网络环境下实现消息的转发。

2)将网络拓扑设置为节点分组模式,提高消息转发的效率。

3)使用自定义的组播方法进行路径学习,收敛速度更快。

4)利用已经发现的路径进行消息转发,减少消息冗余提高速度。节点加入网络后,会不断的从网络中学习新的路径。

附图说明

图1为节点分组的网络拓扑图。

图2为面向非直连节点传输方法的组播方法。

具体实施方式

下面结合附图及具体实施例对本发明作进一步详细说明。

本发明将非全连接区块链网络设置成相邻节点分组的拓扑结构,从而减少消息的冗余和提高消息传输的效率。同时自定义高效组播方法,用于实现非直连节点间的通讯和路径学习。本发明将两种机制综合起来,实现在非全连接网络下的高效的消息传输机制。本发明具体包括以下步骤:

1)将非全连接区块链网络的节点进行聚类分组后,获得分组结构的网络拓扑;

分组结构的网络拓扑中,每个组由至少2个关键节点(一个主关键节点和若干个备用关键节点)和多个普通节点以非全连接的形式连接组成,如图1所示,图中的1、2、3、4、5、6为组编号,每组中有2个黑色圆点均为关键节点,一个关键节点作为主关键节点,另一个关键节点作为备份关键节点,白色圆点为普通节点。

2)利用组播方法对分组结构的网络拓扑进行组内和组间的路径学习,获得组内路径图和相邻组间关键节点的路径图并存储于对应的组内关键节点中,具体是将每个组内路径图存储于对应组内关键节点中,以及每个相邻组间关键节点的路径图存储于对应的两个相邻组内的组内关键节点中,从而更新分组结构的网络拓扑;

3)当消息从源节点传输至目标节点时,首先查看当前源节点是否存储有到目标节点的路径图,如果有,则根据当前路径图从当前源节点到目标节点进行单播传输;否则,基于当前源节点所在组的关键节点,利用组播方法向其他组的关键节点进行路径学习,直到找到目标节点所在组的关键节点,然后通过目标所在组的关键节点在本组内向目标节点传输消息。

2)中,利用组播方法对分组结构的网络拓扑进行组内的路径学习时,源节点和目标节点均为每个组内的节点,将当前组内的所有节点记为共识节点。

2)中,利用组播方法对分组结构的网络拓扑进行组间的路径学习时,源节点和目标节点为相邻两个组中不同组内的关键节点,将当前相邻两个组中的所有节点记为共识节点。

3)中,利用组播方法对当前分组结构的网络拓扑进行路径学习时,源节点和目标节点为非全连接区块链网络的任一节点,非全连接区块链网络的所有节点记为共识节点。

如图2所示,组播方法具体为:

S1:消息源节点需要组播消息时,将源节点记为初始组播节点,根据目标节点确定目标节点列表TargetNodes,目标节点至少设置有一个;

S2:将当前组播节点的邻居节点列表中存在于目标节点列表的节点加入下一跳节点列表中并且从目标节点列表中剔除,更新目标节点列表;

S3:遍历共识节点列表,将存在于当前组播节点的邻居节点列表且不存在于当前下一跳节点列表的节点加入下一跳节点列表中,以及将不存在于当前组播节点的邻居节点列表且不存在于当前目标节点列表中的节点加入转发节点列表FarwordNodes中;

S4:将当前目标节点列表和转发节点列表放入当前组播节点的组播消息中并发送给下一跳节点列表中的各节点;

S5:下一跳节点列表中的各节点均记为组播节点,每个组播节点收到组播消息,首先拿到组播消息中的TargetNodes字段,记为目标节点列表,拿到组播消息中的FowardNodes字段,记为转发节点列表;如果当前目标节点列表为空,则结束转发;否则每个当前组播节点根据目标节点列表和转发节点列表继续组播并更新,直至目标节点列表为空,将源节点到目标节点的路径图存储于源节点所在组的关键节点中;

每个当前组播节点根据目标节点列表和转发节点列表继续组播并更新,具体为:

将当前组播节点的邻居节点列表中存在于目标节点列表中的节点放入当前组播节点的下一跳节点列表中并从目标节点列表中剔除,以及将存在于转发节点列表中的节点放入下一跳节点列表中并从转发节点列表中剔除,更新目标节点列表和转发节点列表并放入当前组播节点的组播消息中,进而发送给对应下一跳节点列表中的各节点并作为新的组播节点。

其中,单播算法具体包括以下子步骤:

首先进行路径学习,节点从组播消息中学习转发路径,不再单独使用路由消息使网络中的节点学习路径,减少了消息的冗余。当组播消息每经过一跳节点就将这一跳节点信息加入到消息的Path字段,再将该含有路径信息的消息转发给下一跳节点,下一跳节点收到消息后,能够从消息中拿到一条到源节点的路径,因此目标节点会学习到多条到源节点的路径。将路径按照路径代价进行排序,同时设置路径数量上限,缓存路径信息;

接着,由于网络拓扑时时发生变化,导致路径信息随之改变,因此需要路径更新算法实时更新路径信息,通过定时探测机制探测路径的有效性。

最终进行消息传播时,优先选择路径代价最低的路径进行消息的转发。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

相关技术
  • 一种适用于区块链网络改进事务效率与稳定性的方法
  • 区块链网络、基于区块链网络的消息发送、消息接收方法
  • 区块链网络、基于区块链网络的消息发送、消息接收方法
技术分类

06120116484032