消息广播方法及装置与流程

文档序号:34443597发布日期:2023-06-13 09:08阅读:47来源:国知局
消息广播方法及装置与流程

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


背景技术:

1、p2p(peer-to-peer)网络,又称对等网络,是一种在对等者(peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。p2p网络被广泛应用于区块链网络等分布式场景。

2、非结构化p2p网络是作为p2p网络的一种重要形式,这类网络中的节点在算法逻辑上并非固定分布的,节点可以频繁进出网络,整个网络相对松散而不具有较为稳定的结构。非结构化p2p网络中的节点在需要广播时,可以通过发送广播消息的方式将待广播的数据传递至网络中的其他节点。在相关技术中,常采用gossip算法(绯闻算法)进行广播。但采用该算法一方面广播过程不仅因冗余度过高而导致资源开销较大;另一方面由于广播消息的接收方需要缓存已接收消息,所以在高tps(transactions per second,每秒事务处理量)的场景下可能因缓存空间有限而无法收敛,导致广播无法终止。而且该方案中的任一节点选取通常随机选取下一节点作为广播消息的接收方,可能导致网络中较多的节点始终无法接收到广播消息,即存在广播盲区。


技术实现思路

1、本说明书的目的在于提供一种消息广播方法及装置。

2、根据本说明书一个或多个实施例的第一方面,提出了一种消息广播方法,应用于非结构化p2p网络,所述非结构化p2p网络中的每一节点分别连接至至少一个邻居节点,所述非结构化p2p网络中的各个节点在目标数据的广播路径上构成m个层级,第i层级的节点为i级节点,m和i均为整数,m>1,m≥i≥0;所述方法包括:

3、任一广播路径上的任一i级节点从自身的邻居节点中确定尚未接收到包含所述目标数据的广播消息的可选节点;

4、在所述可选节点的数量不为零的情况下,所述任一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层级;

5、在所述可选节点的数量为零的情况下,所述任一i级节点停止广播所述目标数据。

6、根据本说明书一个或多个实施例的第二方面,提出了一种非结构化p2p网络,所述非结构化p2p网络中的每一节点分别连接至至少一个邻居节点,所述非结构化p2p网络中的各个节点在目标数据的广播路径上构成m个层级,第i层级的节点为i级节点,m和i均为整数,m>1,m≥i≥0;其中任一广播路径上的任一i级节点用于:

7、从自身的邻居节点中确定尚未接收到包含所述目标数据的广播消息的可选节点;

8、在所述可选节点的数量不为零的情况下,从按序排列的所述可选节点中选取至少一个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层级;

9、在所述可选节点的数量为零的情况下,停止广播所述目标数据。

10、根据本说明书一个或多个实施例的第三方面,提出了一种消息广播装置,应用于非结构化p2p网络,所述非结构化p2p网络中的每一节点分别连接至至少一个邻居节点,所述非结构化p2p网络中的各个节点在目标数据的广播路径上构成m个层级,第i层级的节点为i级节点,m和i均为整数,m>1,m≥i≥0;所述装置包括:

11、确定单元,用于使任一广播路径上的任一i级节点从自身的邻居节点中确定尚未接收到包含所述目标数据的广播消息的可选节点;

12、发送单元,用于在所述可选节点的数量不为零的情况下,使所述任一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层级;

13、停止单元,用于在所述可选节点的数量为零的情况下,使所述任一i级节点停止广播所述目标数据。

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

15、处理器;

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

17、其中,所述处理器通过运行所述可执行指令以实现如第一方面中任一项所述的方法。

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

19、在本说明书实施例中,在可选节点的数量不为零的情况下,任一广播路径上的任一i级节点从可选节点中选取至少一个i+1级节点,并向各个i+1级节点分别发送包含i+1级布隆过滤器和所述目标数据的i+1级广播消息。其中,被选取的所述i+1级节点在所述可选节点的排列顺序中所处的位置与i呈正相关;而且所述i+1级布隆过滤器中记录有所述任一广播路径上层级不高于i+1级的各个节点及其兄弟节点的身份信息,用于向所述i+1级节点指示已经接收到包含所述目标数据的广播消息的节点。

20、可见,任一广播路径上的前一级节点可以通过i+1级布隆过滤器向后一级节点明确地指示已经接收到包含所述目标数据的广播消息的节点,从而避免后一级节点将这部分节点选取为自身对应的下一级节点,有效避免了同一节点重复接收到包含目标数据的广播消息的概率,从而降低了广播过程的冗余度,节省了广播过程的资源开销。而且,由于前一级节点向后一级节点发送广播消息时无需向后者确认,而任一节点无需缓存自身接收到的广播消息用于后续判断,并且可以根据自身所对应可选节点(即所述可选节点的数量为零)的数量,明确自身何时应当停止广播所述目标数据,所以即便在高tps的场景下也能够保证广播收敛,从而有效避免广播无法终止。另外,因为后一级节点在前一级节点的可选节点的排列顺序中所处的位置与i(即前一级节点所处的层级,用于表征该节点在广播路径中的跳数)呈正相关,所以可确保各个层级被选出的(用于接收广播消息的)节点在所述排列顺序中按照同一方向偏移,进而在一定程度上解决了某些节点无法被选取为广播消息的接收方的问题,有助于缩小广播盲区,最终实现较为完整的广播覆盖效果。

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