消息广播方法及装置制造方法及图纸

技术编号:37844687 阅读:16 留言:0更新日期:2023-06-14 22:28
本说明书提供一种消息广播方法及装置。该方法应用于每一节点分别连接至至少一个邻居节点的非结构化P2P网络,包括:任一广播路径上的任一i级节点从自身邻居节点中确定尚未接收到包含目标数据的广播消息的可选节点;可选节点数量不为零时,所述任一i级节点从按序排列的可选节点中选取i+1级节点,i+1级节点在可选节点的排列顺序中所处的位置与i呈正相关;以及,向各个i+1级节点分别发送i+1级广播消息,其中包含目标数据和记录有所述任一广播路径上层级不高于i+1级的各个节点及其兄弟节点的身份信息的i+1级布隆过滤器,用于指示已经接收到广播消息的节点;可选节点数量为零时,所述任一i级节点停止广播目标数据。述任一i级节点停止广播目标数据。述任一i级节点停止广播目标数据。

【技术实现步骤摘要】
消息广播方法及装置


[0001]本说明书实施例属于互联网
,尤其涉及一种消息广播方法及装置。

技术介绍

[0002]P2P(Peer

to

Peer)网络,又称对等网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。P2P网络被广泛应用于区块链网络等分布式场景。
[0003]非结构化P2P网络是作为P2P网络的一种重要形式,这类网络中的节点在算法逻辑上并非固定分布的,节点可以频繁进出网络,整个网络相对松散而不具有较为稳定的结构。非结构化P2P网络中的节点在需要广播时,可以通过发送广播消息的方式将待广播的数据传递至网络中的其他节点。在相关技术中,常采用Gossip算法(绯闻算法)进行广播。但采用该算法一方面广播过程不仅因冗余度过高而导致资源开销较大;另一方面由于广播消息的接收方需要缓存已接收消息,所以在高TPS(Transactions Per Second,每秒事务处理量)的场景下可能因缓存空间有限而无法收敛,导致广播无法终止。而且该方案中的任一节点选取通常随机选取下一节点作为广播消息的接收方,可能导致网络中较多的节点始终无法接收到广播消息,即存在广播盲区。

技术实现思路

[0004]本说明书的目的在于提供一种消息广播方法及装置。
[0005]根据本说明书一个或多个实施例的第一方面,提出了一种消息广播方法,应用于非结构化P2P网络,所述非结构化P2P网络中的每一节点分别连接至至少一个邻居节点,所述非结构化P2P网络中的各个节点在目标数据的广播路径上构成M个层级,第i层级的节点为i级节点,M和i均为整数,M>1,M≥i≥0;所述方法包括:
[0006]任一广播路径上的任一i级节点从自身的邻居节点中确定尚未接收到包含所述目标数据的广播消息的可选节点;
[0007]在所述可选节点的数量不为零的情况下,所述任一i级节点从按序排列的所述可选节点中选取至少一个i+1级节点,所述i+1级节点在所述可选节点的排列顺序中所处的位置与i呈正相关;以及,向各个i+1级节点分别发送i+1级广播消息,其中,所述i+1级广播消息中包含i+1级布隆过滤器、i+1级级别信息和所述目标数据,所述i+1级布隆过滤器中记录有所述任一广播路径上层级不高于i+1级的各个节点及其兄弟节点的身份信息,用于向所述i+1级节点指示已经接收到包含所述目标数据的广播消息的节点,所述i+1级级别信息用于向所述i+1级节点指示其在所述任一广播路径上处于第i+1层级;
[0008]在所述可选节点的数量为零的情况下,所述任一i级节点停止广播所述目标数据。
[0009]根据本说明书一个或多个实施例的第二方面,提出了一种非结构化P2P网络,所述非结构化P2P网络中的每一节点分别连接至至少一个邻居节点,所述非结构化P2P网络中的各个节点在目标数据的广播路径上构成M个层级,第i层级的节点为i级节点,M和i均为整
数,M>1,M≥i≥0;其中任一广播路径上的任一i级节点用于:
[0010]从自身的邻居节点中确定尚未接收到包含所述目标数据的广播消息的可选节点;
[0011]在所述可选节点的数量不为零的情况下,从按序排列的所述可选节点中选取至少一个i+1级节点,所述i+1级节点在所述可选节点的排列顺序中所处的位置与i呈正相关;以及,向各个i+1级节点分别发送i+1级广播消息,其中,所述i+1级广播消息中包含i+1级布隆过滤器、i+1级级别信息和所述目标数据,所述i+1级布隆过滤器中记录有所述任一广播路径上层级不高于i+1级的各个节点及其兄弟节点的身份信息,用于向所述i+1级节点指示已经接收到包含所述目标数据的广播消息的节点,所述i+1级级别信息用于向所述i+1级节点指示其在所述任一广播路径上处于第i+1层级;
[0012]在所述可选节点的数量为零的情况下,停止广播所述目标数据。
[0013]根据本说明书一个或多个实施例的第三方面,提出了一种消息广播装置,应用于非结构化P2P网络,所述非结构化P2P网络中的每一节点分别连接至至少一个邻居节点,所述非结构化P2P网络中的各个节点在目标数据的广播路径上构成M个层级,第i层级的节点为i级节点,M和i均为整数,M>1,M≥i≥0;所述装置包括:
[0014]确定单元,用于使任一广播路径上的任一i级节点从自身的邻居节点中确定尚未接收到包含所述目标数据的广播消息的可选节点;
[0015]发送单元,用于在所述可选节点的数量不为零的情况下,使所述任一i级节点从按序排列的所述可选节点中选取至少一个i+1级节点,所述i+1级节点在所述可选节点的排列顺序中所处的位置与i呈正相关;以及,向各个i+1级节点分别发送i+1级广播消息,其中,所述i+1级广播消息中包含i+1级布隆过滤器、i+1级级别信息和所述目标数据,所述i+1级布隆过滤器中记录有所述任一广播路径上层级不高于i+1级的各个节点及其兄弟节点的身份信息,用于向所述i+1级节点指示已经接收到包含所述目标数据的广播消息的节点,所述i+1级级别信息用于向所述i+1级节点指示其在所述任一广播路径上处于第i+1层级;
[0016]停止单元,用于在所述可选节点的数量为零的情况下,使所述任一i级节点停止广播所述目标数据。
[0017]根据本说明书一个或多个实施例的第四方面,提出了一种电子设备,包括:
[0018]处理器;
[0019]用于存储处理器可执行指令的存储器;
[0020]其中,所述处理器通过运行所述可执行指令以实现如第一方面中任一项所述的方法。
[0021]根据本说明书一个或多个实施例的第五方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面中任一项所述方法的步骤。
[0022]在本说明书实施例中,在可选节点的数量不为零的情况下,任一广播路径上的任一i级节点从可选节点中选取至少一个i+1级节点,并向各个i+1级节点分别发送包含i+1级布隆过滤器和所述目标数据的i+1级广播消息。其中,被选取的所述i+1级节点在所述可选节点的排列顺序中所处的位置与i呈正相关;而且所述i+1级布隆过滤器中记录有所述任一广播路径上层级不高于i+1级的各个节点及其兄弟节点的身份信息,用于向所述i+1级节点指示已经接收到包含所述目标数据的广播消息的节点。
mesh)网络(此时每一节点均与网络中的全部其他节点分别建立连接),也可以为非全连接网络(此时每一节点与网络中的部分其他节点分别建立连接)。其中,对于非结构化P2P网络中的任意两个节点,若二者之间建立有网络连接,则二者互为邻居节点。另外需要说明的是,所述非结构化P2P网络中的各个节点还可以分别维护有邻居节点列表,任一节点维护的邻居节点列表中可以记录有其各个邻居节点的节点信息。示例性的,任一邻居节点的节点信息可以包括节点标识、节点公钥等身份信息,以及I本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息广播方法,应用于非结构化P2P网络,所述非结构化P2P网络中的每一节点分别连接至至少一个邻居节点,所述非结构化P2P网络中的各个节点在目标数据的广播路径上构成M个层级,第i层级的节点为i级节点,M和i均为整数,M>1,M≥i≥0;所述方法包括:任一广播路径上的任一i级节点从自身的邻居节点中确定尚未接收到包含所述目标数据的广播消息的可选节点;在所述可选节点的数量不为零的情况下,所述任一i级节点从按序排列的所述可选节点中选取至少一个i+1级节点,所述i+1级节点在所述可选节点的排列顺序中所处的位置与i呈正相关;以及,向各个i+1级节点分别发送i+1级广播消息,其中,所述i+1级广播消息中包含i+1级布隆过滤器、i+1级级别信息和所述目标数据,所述i+1级布隆过滤器中记录有所述任一广播路径上层级不高于i+1级的各个节点及其兄弟节点的身份信息,用于向所述i+1级节点指示已经接收到包含所述目标数据的广播消息的节点,所述i+1级级别信息用于向所述i+1级节点指示其在所述任一广播路径上处于第i+1层级;在所述可选节点的数量为零的情况下,所述任一i级节点停止广播所述目标数据。2.根据权利要求1所述的方法,所述任一i级节点从自身的邻居节点中确定尚未接收到包含所述目标数据的广播消息的可选节点,包括:在所述任一i级节点为广播发起方的情况下,将自身的全部邻居节点确定为所述可选节点;在所述任一i级节点不为广播发起方的情况下,确定自身接收到的i

1级节点发送的i级广播消息中包含的i级布隆过滤器,并将自身的邻居节点中除所述i级布隆过滤器记录的身份信息所表征节点之外的其他邻居节点确定为所述可选节点。3.根据权利要求1所述的方法,所述任一i级节点从按序排列的所述可选节点中选取至少一个i+1级节点,包括:若所述任一i级节点在当前时刻之前向所述可选节点中的至少一个前序可选节点发送过包含其他数据的广播消息,则从所述可选节点中除所述至少一个前序可选节点之外的其他可选节点中选取至少一个i+1级节点。4.根据权利要求1所述的方法,在所述任一i级节点不为广播发起方的情况下,所述任一i级节点从按序排列的所述可选节点中选取至少一个i+1级节点,包括:确定所述可选节点的排列顺序,并根据自身接收到的i

1级节点发送的i级广播消息中包含的i级级别信息确定自身在所述任一广播路径上所处的第i层级;将在所述排列顺序中所处位置与i呈正相关的至少一个可选节点确定为i+1级节点。5.根据权利要求1所述的方法,所述将在所述排列顺序中所处位置与i呈正相关的至少一个可选节点确定为i+1级节点,包括:将所述排列顺序中的第k1*i个可选节点确定为i+1级节点;或者,在所述可选节点中随机选取至少一个定位可选节点,并确定各个定位可选节点在所述排列顺序中的序号hop_num;以及,将所述排列顺序中序号趋近于hop_num+k2*i的至少一个可选节点确定为所述i+1级节点;其中,k1和k2分别为预设常数或预设数组,所述预设常数或所述预设数组中的任一数值为正数。6.根据权利要求1所述的方法,在所述任一i级节点不为广播发起方的情况下,所述将
在所述排列顺序中所处位置与i呈正相关的至少一个可选节点确定为i+1级节点,包括:根据自身接收到的i

1级节点发送的i级广播消息中包含的i级级别信息确定自身在所述任一广播路径上所处的第i层级;以及,确定最大层级max_hop,并将所述可选节点按照所述排列顺序均分为max_hop个分组;将第i个分组或者趋近于第i个分组的邻近组中的可选节点确定为i+1级节点。7.根据权利要求1所述的方法,所述任一i级节点从按序排列的所述可选节点中选取至少一个i+1级节点,包括:在所述可选节点的数量不小于预设广播路数的情况下,从所述可选节点中选取数量为所述预设广播路数的可选节点作为i+1级节点;或者,在所述可选节点的数量小于预设广播路数的情况下,将所述可选节点全部作为i+1级节点。8.根据权利要求1所述的方法,所述任一i级节点向各个i+1级节点分别发送i+1级广播消息,包括:将所述至少一个i+1级节点的身份信息记录至i+1级布隆过滤器,并构造包含所述i+1级布隆过滤器和所述目标数据的i+1级广播消息;向各个i+1级节点分别发送构造完成的所述i+1级广播消息。9.根据权利要求8所述的方法,所述将所述至少一个i+1级节点的身份信息记录至i+1级布隆过滤器,包括:在所述任...

【专利技术属性】
技术研发人员:焦梦洪
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1