本申请提供一种基于区块链的消息广播方法、装置、电子设备及存储介质,涉及区块链技术领域。其中,该方法可以应用于区块链中的任一节点,该区块链中的多个节点可以共同构成一预设完全N叉树,该方法包括:若本节点生成待广播消息,根据预设完全N叉树确定根节点,预设完全N叉树根据每个节点的节点标识、节点之间的拓扑关系、以及预设根节点构造,其中,N为大于2的整数;向根节点发送待广播消息,以使根节点根据预设完全N叉树的拓扑关系向区块链中的其他节点有向转发待广播消息,应用本申请实施例,可以实现待广播消息的有向转发,解决待广播消息被重复发送的问题,避免广播风暴、节省带宽资源。资源。资源。
【技术实现步骤摘要】
基于区块链的消息广播方法、装置、电子设备及存储介质
[0001]本申请涉及区块链
,特别涉及一种基于区块链的消息广播方法、装置、电子设备及存储介质。
技术介绍
[0002]Kademlia是一种P2P重叠网络传输协议,可以用于构建分布式的P2P电脑网络,Kademlia节点可以利用分布式散列表(DHT)储存资料索引,通过现有的局域网/广域网,可以建立起一个新的虚拟网络或重叠网络,Kademlia节点间则使用传输通讯协议UDP进行数据交互。
[0003]目前,在公链区块链P2P网络中,基本使用Kademlia或类Kademlia算法的网络拓扑来实现消息的广播。
[0004]但现有的消息广播方式,由于消息在发送过程中,会存在大量的消息重复发送,并且反复广播的现象,因此,现有的广播方式,会存在严重的广播风暴以及带宽浪费的情况。
技术实现思路
[0005]本申请的目的在于,针对上述现有技术中的不足,提供一种基于区块链的消息广播方法、装置、电子设备及存储介质,可以避免广播风暴、节省带宽资源。
[0006]为实现上述目的,本申请实施例采用的技术方案如下:
[0007]第一方面,本申请实施例提供了一种基于区块链的消息广播方法,应用于区块链中的任一节点,所述区块链中的多个节点共同构成一预设完全N叉树,所述方法包括:
[0008]若本节点生成待广播消息,根据所述预设完全N叉树确定根节点,所述预设完全N叉树根据每个所述节点的节点标识、节点之间的拓扑关系、以及预设根节点构造,其中,N为大于2的整数,用于指示所述预设完全N叉树中每个所述节点最多可配置的子节点数;
[0009]向所述根节点发送所述待广播消息,以使所述根节点根据所述预设完全N叉树的拓扑关系向所述区块链中的其他节点有向转发所述待广播消息。
[0010]可选地,所述有向转发所述待广播消息包括:以所述根节点为起点向所述拓扑关系中的子节点依次转发所述待广播消息。
[0011]可选地,所述方法还包括:
[0012]获取所述区块链中每个节点的节点标识;
[0013]根据每个所述节点的节点标识、预设根节点以及预设拓扑规则,建立所述预设完全N叉树。
[0014]可选地,所述根据每个所述节点的节点标识、预设根节点以及预设拓扑规则,建立所述预设完全N叉树,包括:
[0015]根据所述节点标识,对每个所述节点的节点标识进行排序,获取排序后的节点标识列表;
[0016]根据所述节点标识列表、预设根节点以及预设拓扑规则,建立所述预设完全N叉
树。
[0017]可选地,所述方法还包括:
[0018]接收待注册节点发送的节点注册请求,所述节点注册请求用于请求分配网络地址;
[0019]根据所述节点注册请求,向所述待注册节点发送当前节点注册列表,所述当前节点注册列表包括为待注册节点分配的网络地址,所述当前节点注册列表用于记录已注册的至少一个节点分配的网络地址;
[0020]向所述其他节点发送为所述待注册节点分配的网络地址。
[0021]可选地,所述待广播消息包括:消息类型、本节点的节点标识,消息内容;
[0022]所述消息类型用于指示所述待广播消息是否为有向消息。
[0023]可选地,所述方法还包括:
[0024]若收到所述待广播消息,根据节点列表获取随机广播节点,并向所述随机广播节点发送所述待广播消息,所述节点列表包括所述区块链的至少一个节点信息。
[0025]可选地,所述根据节点列表获取随机广播节点,包括:
[0026]根据所述节点列表和预设随机算法,获取除本节点的子节点之外的节点作为所述随机广播节点。
[0027]可选地,所述根据节点列表获取随机广播节点,并向所述随机广播节点发送所述待广播消息,包括:
[0028]根据所述节点列表获取随机广播节点,并将所述待广播消息中的消息类型标记为随机消息,获取更新后的待广播消息;
[0029]向所述随机广播节点发送所述更新后的待广播消息,其中,所述随机广播节点接收到所述更新后的待广播消息后不再转发。
[0030]可选地,所述以所述根节点为起点向所述拓扑关系中的子节点依次转发所述待广播消息,包括:
[0031]判断所述待广播消息的消息类型是否为有向消息;
[0032]若是,则根据所述预设完全N叉树的拓扑关系向所述拓扑关系中的子节点依次转发所述待广播消息。
[0033]第二方面,本申请实施例提供了一种基于区块链的消息广播装置,应用于区块链中的任一节点,所述区块链中的多个节点共同构成一预设完全N叉树,所述装置包括:确定模块和发送模块;
[0034]所述确定模块,用于若本节点生成待广播消息,根据所述预设完全N叉树确定根节点,所述预设完全N叉树根据每个所述节点的节点标识、节点之间的拓扑关系、以及预设根节点构造,其中,N为大于2的整数,用于指示所述预设完全N叉树中每个所述节点最多可配置的子节点数;
[0035]所述发送模块,用于向所述根节点发送所述待广播消息,以使所述根节点根据所述预设完全N叉树的拓扑关系向所述区块链中的其他节点有向转发所述待广播消息。
[0036]可选地,所述有向转发所述待广播消息包括:以所述根节点为起点向所述拓扑关系中的子节点依次转发所述待广播消息。
[0037]可选地,所述装置还包括建立模块,用于获取所述区块链中每个节点的节点标识;
根据每个所述节点的节点标识、预设根节点以及预设拓扑规则,建立所述预设完全N叉树。
[0038]可选地,所述建立模块,具体用于根据所述节点标识,对每个所述节点的节点标识进行排序,获取排序后的节点标识列表;根据所述节点标识列表、预设根节点以及预设拓扑规则,建立所述预设完全N叉树。
[0039]可选地,上述装置还包括:注册模块,用于接收待注册节点发送的节点注册请求,所述节点注册请求用于请求分配网络地址;
[0040]根据所述节点注册请求,向所述待注册节点发送当前节点注册列表,所述当前节点注册列表包括为待注册节点分配的网络地址,所述当前节点注册列表用于记录已注册的至少一个节点分配的网络地址;
[0041]向所述其他节点发送为所述待注册节点分配的网络地址。
[0042]可选地,所述待广播消息包括:消息类型、本节点的节点标识,消息内容;所述消息类型用于指示所述待广播消息是否为有向消息。
[0043]可选地,所述发送模块,还用于若收到所述待广播消息,根据节点列表获取随机广播节点,并向所述随机广播节点发送所述待广播消息,所述节点列表包括所述区块链的至少一个节点信息。
[0044]可选地,所述发送模块,具体用于根据所述节点列表和预设随机算法,获取除本节点的子节点之外的节点作为所述随机广播节点。
[0045]可选地,所述发送模块,具体用于根据所述节点列表获取随机广播节点,并将所述待广播消息中的消息类型标记为随机本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于区块链的消息广播方法,其特征在于,应用于区块链中的任一节点,所述区块链中的多个节点共同构成一预设完全N叉树,所述方法包括:若本节点生成待广播消息,根据所述预设完全N叉树确定根节点,所述预设完全N叉树根据每个所述节点的节点标识、节点之间的拓扑关系、以及预设根节点构造,其中,N为大于2的整数,用于指示所述预设完全N叉树中每个所述节点最多可配置的子节点数;向所述根节点发送所述待广播消息,以使所述根节点根据所述预设完全N叉树的拓扑关系向所述区块链中的其他节点有向转发所述待广播消息。2.根据权利要求1所述的方法,其特征在于,所述有向转发所述待广播消息包括:以所述根节点为起点向所述拓扑关系中的子节点依次转发所述待广播消息。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述区块链中每个节点的节点标识;根据每个所述节点的节点标识、预设根节点以及预设拓扑规则,建立所述预设完全N叉树。4.根据权利要求3所述的方法,其特征在于,所述根据每个所述节点的节点标识、预设根节点以及预设拓扑规则,建立所述预设完全N叉树,包括:根据所述节点标识,对每个所述节点的节点标识进行排序,获取排序后的节点标识列表;根据所述节点标识列表、预设根节点以及预设拓扑规则,建立所述预设完全N叉树。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收待注册节点发送的节点注册请求,所述节点注册请求用于请求分配网络地址;根据所述节点注册请求,向所述待注册节点发送当前节点注册列表,所述当前节点注册列表包括为待注册节点分配的网络地址,所述当前节点注册列表用于记录已注册的至少一个节点分配的网络地址;向所述其他节点发送为所述待注册节点分配的网络地址。6.根据权利要求1
‑
5任一项所述的方法,其特征在于,所述待广播消息包括:消息类型、本节点的节点标识,消息内容;所述消息类型用于指示所述待广播消息是否为有向消息。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:若收到所述待广播消息,根据节点列表获取随机广播节点,并向所述随机广播节点发送所述待广播消息,所述节点列表包括所述区块链的至少一...
【专利技术属性】
技术研发人员:杜茂兵,赖奕宇,
申请(专利权)人:网易杭州网络有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。