CN113923226B - 区块链下的邻居节点管理方法、设备及存储介质 - Google Patents
区块链下的邻居节点管理方法、设备及存储介质 Download PDFInfo
- Publication number
- CN113923226B CN113923226B CN202111205489.2A CN202111205489A CN113923226B CN 113923226 B CN113923226 B CN 113923226B CN 202111205489 A CN202111205489 A CN 202111205489A CN 113923226 B CN113923226 B CN 113923226B
- Authority
- CN
- China
- Prior art keywords
- node
- neighbor
- topic
- theme
- message
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 238000005304 joining Methods 0.000 claims abstract description 38
- 230000007246 mechanism Effects 0.000 claims abstract description 19
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 230000005055 memory storage Effects 0.000 claims 1
- 230000008859 change Effects 0.000 abstract description 6
- 238000007726 management method Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供一种区块链下的邻居节点管理方法、设备及存储介质,涉及区块链技术领域,所述方法包括:初始化本地节点,将已加入主题集合和主题邻居节点集合置为空集;加入第一主题时,将向已加入主题集合加入所述第一主题,向邻居节点发送第一加入消息;接收第一加入消息的第一回复消息,在主题邻居节点集合中的第一主题下加入第一回复消息的发送节点;通知上层应用有新节点加入。本申请的方法能够与多种主动节点发现机制相结合,完成节点发现的过程,并且通过回调的方式,提供了邻居节点变动的信息,从而使得查询系统具备感知周围网络连接情况的能力,动态调整邻居节点集合,及时维护覆盖网络,从而提升了区块链网络的可扩展性和可容错性。
Description
技术领域
本申请实施例涉及区块链技术领域,具体而言,涉及一种区块链下的邻居节点管理方法、设备及存储介质。
背景技术
互联网的计算模式正经历着从传统的客户/服务器(C/S)模式到对等P2P(peer-to-peer)模式的发展。P2P的核心思想是使应用从中央服务器向网络边缘的终端设备扩散化,充分利用闲散的资源,减轻主干网络和关键点的负荷。目前的区块链都采用P2P结构。
针对其结构,区块链通常采用邻居管理协议进行管理,邻居管理协议(membershipprotocol)是一个在动态网络每个节点上初始化和维护邻居集合的协议。所谓邻居集合,是指在网络中每个节点在本地维护的节点标识集合,包括这些节点的IP地址和端口号。本地节点能够通过IP地址和端口与邻居集合中的节点建立直接的连接。
但是现有的邻居管理协议无法应对P2P网络的节点加入退出的频率更高的情况,使得出现网络延迟、宕机的可能性更大,无法保证系统的可扩展性和可容错性。
发明内容
本申请实施例提供一种区块链下的邻居节点管理方法、设备及存储介质,旨在解决以上至少一项技术问题。
本申请实施例第一方面提供一种区块链下的邻居节点管理方法,所述方法包括:
初始化本地节点,将已加入主题集合和主题邻居节点集合置为空集,所述已加入主题集合包含本地节点已加入的主题,所述主题邻居节点集合包含有多个主题及各主题下的邻居节点;
加入第一主题时,将向所述已加入主题集合加入所述第一主题,向邻居节点发送第一加入消息;
接收所述第一加入消息的第一回复消息,在所述主题邻居节点集合中的第一主题下加入第一回复消息的发送节点;
通知上层应用有新节点加入。
可选地,所述方法还包括:
接收第二加入消息,确定所述第二加入消息的主题,在主题邻居节点集合中的相同主题下加入发送所述第二加入消息的发送节点,其中,所述第二加入消息由邻居节点加入任意主题时发送;
判断所述第二加入消息的主题是否在已加入的主题中;
当第二加入消息的主题在已加入的主题中时,则通知上层应用该主题下有新的节点加入,并向所述第二加入消息的发送节点发送第二回复消息。
可选地,在本地节点退出主题时,所述方法还包括:
从所述已加入主题集合中读取所有的已加入主题;
在所述主题邻居节点集合中读取每一个所述已加入主题下的邻居节点,将读取的邻居节点作为通知节点;
向所述通知节点发送离开消息,并在发送所述离开消息时向所述上层应用通知。
可选地,当邻居节点意外退出时,所述方法还包括:
将退出的邻居节点从所述主题邻居节点集合中删除;
判断所述退出的邻居节点是否加入过所述已加入主题集合中的主题;
当所述退出的邻居节点加入过所述已加入主题集合中的主题时,则通知所述上层应用。
可选地,当得到所有主题下的邻居节点后,所述方法还包括:
使用广播策略在节点之间传输消息;
其中,所述广播策略包括:
在同一主题的节点之间,采用推机制传输网连接消息,所述网连接消息包括所需传输信息的完整内容;
在同一/不同主题的节点之间,采用通过懒惰推机制来传输元消息,所述元消息只包括需要需传输信息的消息摘要。
可选地,当本地节点与邻居节点未建立连接时,通过传输层建立连接;
当本地节点与邻居节点已经有建立好的连接时,则复用现有连接。
可选地,所述通过传输层建立连接,包括:
本地节点和邻居节点相互发送多流选择协议ID,确定对方支持的多流选择协议;
本地节点将自身的相关信息发送给邻居节点;
邻居节点通过所述相关信息判断自身是否支持本地节点的多流选择协议;
当支持本地节点的多流选择协议时,向本地节点发送支持信息;
本地节点和邻居节点相互交换多流选择协议的协议信息,确认通信协议。
可选地,所述复用现有连接,包括:
通过多流选择协议,确定双方共同的加密通信方法;
根据所述加密通信方法进行握手,完成连接的加密通信;
通过协议协商,确定在加密信道上使用的多路复用器。
本申请实施例第二方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面所述的方法中的步骤。
本申请实施例第三方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第一方面所述的方法的步骤。
采用本申请提供的区块链下的邻居节点管理方法,能够与多种主动节点发现机制相结合,完成节点发现的过程,并且通过回调的方式,提供了邻居节点变动的信息,从而使得查询系统具备感知周围网络连接情况的能力,动态调整邻居节点集合,及时维护覆盖网络,从而提升了区块链网络的可扩展性和可容错性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的区块链下的邻居节点管理方法的流程图;
图2是本申请一实施例提出的主题邻居管理协议的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在对等网络的场景下,节点需要及时发现邻居节点的加入、退出,以保证节点之间的通信正常,从而维护整个系统的可扩展性和可容错性。
可扩展性在分布式系统中意味着系统在负载增加的情况下,通过增加系统资源的方式,能够保持性能不变。而在对等网络的条件下,系统负载往往与参与网络的节点数成正相关,这要求对等网络能够随着节点数增加同时能够保证网络的查询成功率、查询时间等性能指标维持在可以接受的水平。
可容错性指系统在部分故障的情况下依然能够正常工作的能力。在对等网络的场景下,节点将出现频繁加入、退出的现象,部分节点延迟较大甚至宕机,造成网络的波动。同时,各个节点的处理能力、带宽可能各不相同。可容错性要求在这种动态异构的网络条件下,即使部分节点发生故障,对等网络依然能够实现点对点的通信。
本申请提供了一种新的邻居管理方法,其在实际链接组成的覆盖网络上按不同主题构建多个覆盖网络,采用周围节点发现的机制,无需提供主动的邻居节点发现能力,借助其他节点发现的机制,建立连接后,通过点对点传输层提供的连接变化,再完成邻居管理协议本身的节点发现过程。
本申请的邻居管理方法能够与多种主动节点发现机制相结合,完成节点发现的过程,并且通过回调的方式,提供了邻居节点变动的信息,从而使得查询系统具备感知周围网络连接情况的能力,动态调整邻居节点集合,及时维护覆盖网络,从而提升了区块链网络的可扩展性和可容错性。
参考图1,图1是本申请一实施例提出的区块链下的邻居节点管理方法的流程图。如图1所示,该方法包括以下步骤:
步骤S110、初始化本地节点,将已加入主题集合和主题邻居节点集合置为空集,所述已加入主题集合包含本地节点已加入的主题,所述主题邻居节点集合包含有多个主题及各主题下的邻居节点
区块链网络由多个节点组成,节点之间通过点对点协议相互进行交流,来传输交易和区块的信息,任何连接至区款链网络的计算机或其他设备,都可以被视为是区块链网络的节点。在本实施例中,每个节点使用相同的邻居节点管理方法,本地节点与周围节点是一个相对概念,二者可以相互转换,为了便于描述本实施例提供的方法,选择区块链网络中任一节点,将被选中的节点称为本地节点,而未被选中的节点称为邻居节点。
本申请设计了一种主题邻居管理协议,其是一个在周围节点发现(ambientpeerdiscovery)机制基础上实现的邻居管理协议,它能在由实际链接组成的覆盖网络上按不同主题构建多个覆盖网络,示意图如图2所示。
所谓周围节点发现,是指本申请的邻居管理协议并不提供主动的邻居节点发现能力,而是借助其他节点发现机制,建立连接后,通过点对点传输层提供的连接变化的通知接口,再完成邻居管理协议本身的节点发现过程。因此,基于周围节点发现的邻居管理协议,能够与多种主动节点发现机制相结合,完成节点发现的过程。
本申请的主题邻居管理协议能通过回调的方式提供了邻居节点变动的信息,从而使得节点具备感知周围网络连接情况的能力,动态调整邻居节点集合。同时,不同主题下的邻居节点集合可以各不相同,这为节点支持多账本下提供了网络层的支持。
网络中的每个节点分别维护自己已加入的主题集合joinedTopics和不同主题下的邻居节点集合topicPeers。topicPeers为主题到邻居集合的映射,用来维护周围节点所加入的主题网络信息,因此,即使本地节点并没有加入一个特定主题,在topicPeers中依然需要维护该主题下的节点信息。
本地节点初始化时,将joinedTopics和topicPeers两者置为空集。
步骤S120、加入第一主题时,将向所述已加入主题集合加入所述第一主题,向邻居节点发送第一加入消息。
第一主题并非一个特定主题,而是指任意主题,当本地节点加入一个主题时,本地节点将向joinedTopics加入该主题,并向周围已连接的节点发送JOIN消息。
步骤S130、接收所述第一加入消息的第一回复消息,在所述主题邻居节点集合中的第一主题下加入第一回复消息的发送节点。
步骤S140、通知上层应用有新节点加入。
本地节点收到加入-回复JOIN_REPLY消息后,将发送节点加入自己的在该主题下的topicPeers中,并通知上层应用有新节点加入。如此,在远程节点已经加入主题的前提下,本地节点和远程节点的上层应用都能收到节点加入的通知。
所述方法还包括,对于加入消息的处理:
接收第二加入消息,确定所述第二加入消息的主题,在主题邻居节点集合中的相同主题下发送所述第二加入消息的发送节点,其中,所述第二加入消息由邻居节点加入任意主题时发送;
由于本地节点与邻居节点执行的是同样的邻居节点管理协议,无论是何种节点都是采用的同样的处理方法。为了便于表述,对于JOIN消息的处理,本申请从本地节点进行描述。
本地节点发送JOIN消息后远程节点会收到JOIN消息,相对的,当远程节点加入特定主题时,也会向包括本地节点在内的节点发送JOIN消息,为了便于区分将本地节点发送的送JOIN消息称为第一JOIN消息,本申请将远程节点发送的送JOIN消息称为第二JOIN消息。
判断所述第二加入消息的主题是否在已加入的主题中;
当第二加入消息的主题在已加入的主题中时,则通知上层应用该主题下有新的节点加入,并向所述第二加入消息的发送节点发送第二回复消息。
接收到JOIN消息后,将发JOIN消息的节点加入topicPeers中该主题的邻居集合中。并,判断该主题是否在已加入的主题中,如果已加入,则通过notify函数通知上层应用,表示在该主题下有新的节点加入。接着,远程节点向发消息的节点发送JOIN_REPLY消息。JOIN_REPLY消息将帮助本地节点获取其周围节点的主题加入情况。
在本申请的一个实施例中,在本地节点退出主题时,所述方法还包括:
从所述已加入主题集合中读取所有的已加入主题;
在所述主题邻居节点集合中读取每一个所述已加入主题下的邻居节点,将读取的邻居节点作为通知节点;
向所述通知节点发送离开消息,并在发送所述离开消息时向所述上层应用通知。
节点退出的情况则和加入时略有不同。首先,节点退出时,已经维护了当前主题下已加入的邻居节点集合,因此,不需要像加入时向所有邻接节点发送消息,仅需要像已加入的邻居节点集合发送LEAVE消息;其次,本地节点在发送LEAVE消息时即可向上层通知,无须等待远程节点返回回复消息。这是因为一旦调用leave方法后,本地节点就不应该对该主题下的邻居节点进行通信,尽早通知有助于让上层应用尽早结束通信,从而减少和底层的邻居集合不一致的时间。
在本申请的一个实施例中,当邻居节点意外退出时,所述方法还包括:
将退出的邻居节点从所述主题邻居节点集合中删除;
判断所述退出的邻居节点是否加入过所述已加入主题集合中的主题;
当所述退出的邻居节点加入过所述已加入主题集合中的主题时,则通知所述上层应用。
当邻居节点因网络等原因意外退出时,将通过点对点传输层的通知能力,通过回调方式调用handlePeerDown方法,将从topicPeers中的所有集合中删除该节点。如果该节点之前加入过属于本地节点joinedTopics的主题,则通知上层应用。这样,保证了主题邻居管理协议能够处理节点意外退出的情况。
在本申请的一个实施例中,当得到所有主题下的邻居节点后,所述方法还包括:
使用广播策略在节点之间传输消息;
其中,所述广播策略包括:
在同一主题的节点之间,采用推机制传输网连接消息,所述网连接消息包括所需传输信息的完整内容;
在同一/不同主题的节点之间,采用通过懒惰推机制来传输元消息,所述元消息只包括需要需传输信息的消息摘要。
当发现足够的邻居节点之后,节点需要管理节点的订阅信息,每个节点都会记录自己直接相连的邻居已经订阅了的主题。当节点订阅或者退订主题时,需要向周围所有邻居节点发送主题变更消息,而不管邻居本身是否订阅了相关主题。
当得到特定主题下的所有邻居的信息后,节点可以使用策略模式进行发布操作了,通过实现不同的发布订阅路由器(pubsub router)来实现可插拔的广播策略。在本申请中,默认的广播策略是gossipsub。gossipsub将某个主题下的节点之间的连接分为两类:一类用来传输完整信息,称为网连接消息mesh link,它采用推机制,用于快速传输完整消息;另一类只用来传输消息摘要,称为元消息gossip link,通过懒惰推(lazy push)的机制来广播。mesh link只包含订阅了相同主题的节点,当邻居节点订阅或退订主题时,通过回调函数删除该节点;而gossip link则可以包含订阅不同主题的节点。当节点发布消息时,会立即向mesh link连接的节点广播该消息,而包含该消息摘要的谣言(gossip)消息则要通过定时器周期性地向gossip link连接的节点广播。
和传统的洪泛机制相比,gossipsub通过独特的谣言机制减少了消息洪泛带来的大量带宽占用,同时,谣言机制让节点能够通过拉取的方式拿到消息,在一定程度上提高了可靠性。
本申请上述所有消息的发送、接收都是通过节点之间的连接实现的,在本申请一个实施例中,在进行邻居节点管理方法前还需要建立连接,建立连接的方法,包括:
当本地节点与邻居节点未建立连接时,通过传输层建立连接;
当本地节点与邻居节点已经有建立好的连接时,则复用现有连接。
本申请对连接提供了多流的抽象,并实现了自动化的管理,提供了以下用户友好的接口:
type Host interface{
//New Stream向邻居p打开一个协议为pids的流
New Stream(ctxcontext.Context,p peer.ID,pids...protocol.ID)(network.Stream,error)
//SetStream H and ler设置协议为pid的处理函数
SetStream H and ler(pid protocol.ID,hand ler network.Stream H andler)
...
}
当本地节点和邻居p尚未建立连接时,将通过传输层建立连接;而如果已经有建立好的连接,则可以复用现有的连接。
进一步的,所述通过传输层建立连接,包括:
本地节点和邻居节点相互发送多流选择协议ID,确定对方支持的多流选择协议;
本地节点将自身的相关信息发送给邻居节点;
邻居节点通过所述相关信息判断自身是否支持本地节点的多流选择协议;
当支持本地节点的多流选择协议时,向本地节点发送支持信息;
本地节点和邻居节点相互交换多流选择协议的协议信息,确认通信协议。
当连接第一次被建立时,或者是当发送一个新的流时,为了确定通信双方所用的协议,本申请采用了一个内在的协议multistream-select(多流选择协议)用于协商协议。该协议不同于现有技术提供给开发者的“应用层协议”,它只需要双向连接,而无需对流进行多路复用或加密。当节点之间建立连接时,双方会将multistream-select的协议ID发送给对方,从而双方都能确定对方支持multistream-select协议。之后,发送方将自己的协议ID发送给对方,接收方通过自定义的匹配函数或语义化版本的匹配方法,将自己是否支持该协议的结果返回给发送方。最后,双方通过交换协议信息,从而确认最终选择的协议进行通信。
进一步的,所述复用现有连接,包括:
通过多流选择协议,确定双方共同的加密通信方法;
根据所述加密通信方法进行握手,完成连接的加密通信;
通过协议协商,确定在加密信道上使用的多路复用器。
在本申请中,复用现有连接通过多路复用器实现,多路复用器是可插拔的,并且可以在连接建立的早期通过协议协商的方式确定通信双方所用的多路复用器。常见的多路复用器包括mplex,yamux,quic等。多路复用器为libp2p中底层的可靠流连接提供多路复用的抽象。
本申请的流是已经多路复用、加密过的,并且加密方法和多路复用器都是可插拔的,这就要求加密通信和多路复用中具体模块的选择都通过协议协商来完成。当连接初始化时,首先通过multistream-select协议,确定双方支持同一种加密通信方法(默认的加密方法为secio),然后根据该加密的协议进行握手,完成连接的加密通信,然后再通过协议协商,在加密信道上确定使用的多路复用器。
基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的区块链下的邻居节点管理方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的区块链下的邻居节点管理方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种区块链下的邻居节点管理方法、设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种区块链下的邻居节点管理方法,其特征在于,所述方法包括:
初始化本地节点,将已加入主题集合和主题邻居节点集合置为空集,所述已加入主题集合包含本地节点已加入的主题,所述主题邻居节点集合包含有多个主题及各主题下的邻居节点;
加入第一主题时,将向所述已加入主题集合加入所述第一主题,向邻居节点发送第一加入消息;
接收所述第一加入消息的第一回复消息,在所述主题邻居节点集合中的第一主题下加入第一回复消息的发送节点;
通知上层应用有新节点加入;
在本地节点退出主题时,所述方法还包括:
从所述已加入主题集合中读取所有的已加入主题;
在所述主题邻居节点集合中读取每一个所述已加入主题下的邻居节点,将读取的邻居节点作为通知节点;
向所述通知节点发送离开消息,并在发送所述离开消息时向所述上层应用通知。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:
接收第二加入消息,确定所述第二加入消息的主题,在主题邻居节点集合中的相同主题下加入所述第二加入消息的发送节点,其中,所述第二加入消息由邻居节点加入任意主题时发送;
判断所述第二加入消息的主题是否在已加入的主题中;
当第二加入消息的主题在已加入的主题中时,则通知上层应用该主题下有新的节点加入,并向所述第二加入消息的发送节点发送第二回复消息。
3.根据权利要求1所述方法,其特征在于,当邻居节点意外退出时,所述方法还包括:
将退出的邻居节点从所述主题邻居节点集合中删除;
判断所述退出的邻居节点是否加入过所述已加入主题集合中的主题;
当所述退出的邻居节点加入过所述已加入主题集合中的主题时,则通知所述上层应用。
4.根据权利要求1所述方法,其特征在于,当得到所有主题下的邻居节点后,所述方法还包括:
使用广播策略在节点之间传输消息;
其中,所述广播策略包括:
在同一主题的节点之间,采用推机制传输网连接消息,所述网连接消息包括所需传输信息的完整内容;
在同一/不同主题的节点之间,采用通过懒惰推机制来传输元消息,所述元消息只包括需传输信息的消息摘要。
5.根据权利要求1所述方法,其特征在于,当本地节点与邻居节点未建立连接时,通过传输层建立连接;
当本地节点与邻居节点已经有建立好的连接时,则复用现有连接。
6.根据权利要求5所述方法,其特征在于,所述通过传输层建立连接,包括:
本地节点和邻居节点相互发送多流选择协议ID,确定对方支持的多流选择协议;
本地节点将自身的相关信息发送给邻居节点;
邻居节点通过所述相关信息判断自身是否支持本地节点的多流选择协议;
当支持本地节点的多流选择协议时,向本地节点发送支持信息;
本地节点和邻居节点相互交换多流选择协议的协议信息,确认通信协议。
7.根据权利要求5所述方法,其特征在于,所述复用现有连接,包括:
通过多流选择协议,确定双方共同的加密通信方法;
根据所述加密通信方法进行握手,完成连接的加密通信;
通过协议协商,确定在加密信道上使用的多路复用器。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1至7任一所述的方法中的步骤。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理
器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,
实现如权利要求1至7任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111205489.2A CN113923226B (zh) | 2021-10-15 | 2021-10-15 | 区块链下的邻居节点管理方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111205489.2A CN113923226B (zh) | 2021-10-15 | 2021-10-15 | 区块链下的邻居节点管理方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113923226A CN113923226A (zh) | 2022-01-11 |
CN113923226B true CN113923226B (zh) | 2024-03-01 |
Family
ID=79240676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111205489.2A Active CN113923226B (zh) | 2021-10-15 | 2021-10-15 | 区块链下的邻居节点管理方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113923226B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971663A (zh) * | 2019-10-28 | 2020-04-07 | 北京大学 | 一种面向数据交易的可信处理方法与系统 |
CN112052995A (zh) * | 2020-08-31 | 2020-12-08 | 杭州电子科技大学 | 基于融合情感倾向主题的社交网络用户影响力预测方法 |
CN113473427A (zh) * | 2021-06-11 | 2021-10-01 | 苏州集萃智造大数据科技有限公司 | 一种基于邻居信息的蓝牙Mesh网络泛洪冗余优化方法 |
-
2021
- 2021-10-15 CN CN202111205489.2A patent/CN113923226B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971663A (zh) * | 2019-10-28 | 2020-04-07 | 北京大学 | 一种面向数据交易的可信处理方法与系统 |
CN112052995A (zh) * | 2020-08-31 | 2020-12-08 | 杭州电子科技大学 | 基于融合情感倾向主题的社交网络用户影响力预测方法 |
CN113473427A (zh) * | 2021-06-11 | 2021-10-01 | 苏州集萃智造大数据科技有限公司 | 一种基于邻居信息的蓝牙Mesh网络泛洪冗余优化方法 |
Non-Patent Citations (4)
Title |
---|
"两个模块,从数据的角度带你深入了解IPFS";星鉴IPFS媒体;《https://zhuanlan.zhihu.com/p/44855999》;第1-12页 * |
"深入理解IPFS-消费/订阅系统";facert;《https://zhuanlan.zhihu.com/p/136228773?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io》;第1-13页 * |
Carson Farmer 等."Decentralized identifiers for peer-to-peer service discovery".《 2021 IFIP Networking Conference (IFIP Networking)》.2021,第1-6页. * |
facert."深入理解IPFS-消费/订阅系统".《https://zhuanlan.zhihu.com/p/136228773?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io》.2020,第1-13页. * |
Also Published As
Publication number | Publication date |
---|---|
CN113923226A (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Deshpande et al. | Streaming live media over a peer-to-peer network | |
US8116235B2 (en) | Peer-to-peer aided live video sharing system | |
US6134599A (en) | System and method for organizing devices in a network into a tree using suitability values | |
US7493413B2 (en) | APIS to build peer to peer messaging applications | |
US8612621B2 (en) | Method for constructing network topology, and streaming delivery system | |
US20100153578A1 (en) | Method and Apparatus for Peer to Peer Streaming | |
US20080130630A1 (en) | Secure peer to peer messaging service | |
US20070116050A1 (en) | Connection mode setting apparatus, connection mode setting method, connection mode control apparatus, connection mode control method and so on | |
CN101352002A (zh) | 使用可缩放对等组来优化通信 | |
FR2952776A1 (fr) | Procede et systeme pour distribuer du contenu avec des garanties de delais de livraison dans les reseaux radio hybrides | |
Xu et al. | Twittering by cuckoo: decentralized and socio-aware online microblogging services | |
KR101612475B1 (ko) | 가십 기반의 p2p 서비스의 파트너쉽 형성 방법 및 장치 | |
Tran et al. | An efficient hybrid push-pull methodology for peer-to-peer video live streaming system on mobile broadcasting social media | |
CN102227893B (zh) | 用于建立数字媒体流的方法和系统 | |
JP2010505196A (ja) | 効率的に拡張可能なコンピューティングのための複数のピアグループ | |
WO2007008567A1 (en) | Secure peer to peer messaging service | |
CN113923226B (zh) | 区块链下的邻居节点管理方法、设备及存储介质 | |
JP5086347B2 (ja) | 分散型ネットワークにおける情報拡散のための方法 | |
Kuo et al. | Advanced bootstrap and adjusted bandwidth for content distribution in peer-to-peer live streaming | |
CN101873248A (zh) | 一种p2p流媒体传输方法和装置 | |
SG178407A1 (en) | Method and apparatus for constructing seed group in peer-to-peer application and method for using seed group | |
JP2009088970A (ja) | 動画配信システム、加入者回線終端装置、動画配信方法、動画配信プログラム、及び記憶媒体 | |
Ha et al. | Topology and architecture design for peer to peer video live streaming system on mobile broadcasting social media | |
Schuett et al. | A distributed recording system for high quality MBone archives | |
AlTuhafi et al. | Concepts and types of peer-to-peer network topology for live video streaming |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |