CN116192692B - 一种区块链网络中的数据传输延迟探测方法和区块链*** - Google Patents
一种区块链网络中的数据传输延迟探测方法和区块链*** Download PDFInfo
- Publication number
- CN116192692B CN116192692B CN202211735064.7A CN202211735064A CN116192692B CN 116192692 B CN116192692 B CN 116192692B CN 202211735064 A CN202211735064 A CN 202211735064A CN 116192692 B CN116192692 B CN 116192692B
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- network
- nodes
- relay node
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 152
- 238000001514 detection method Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 claims abstract description 71
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000012546 transfer Methods 0.000 claims abstract description 9
- 239000000523 sample Substances 0.000 claims description 90
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000006855 networking Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 241000854291 Dianthus carthusianorum Species 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 206010061619 Deformity Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- 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
-
- 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/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种区块链网络中的数据传输延迟探测方法,包括:接收共识子网络中的共识节点周期性广播发送的探测消息;其中,探测消息中包含共识节点的第一网络地址和共识节点发送探测消息的第一时刻对应的第一时间戳;响应于探测消息,在探测消息中添加目标中继节点的第二网络地址和目标中继节点发送探测消息的第二时刻对应的第二时间戳,并将添加了第二网络地址和第二时间戳的探测消息,继续转发至与目标中继节点建立了网络连接的其它的各个非共识节点,以使其它的各个非共识节点中的普通节点基于接收到的探测消息中包含的各个时间戳,计算将第二网络地址作为中转,与第一网络地址之间的数据传输路径的数据传输延迟。
Description
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种区块链网络中的数据传输延迟探测方法、区块链***和节点设备。
背景技术
区块链是一个去中心化的、无需信任第三方的分布式账本。区块链技术具有多方写入、公开透明、不可篡改等特点。区块链按照准入机制的不同,可以分为公链、联盟链以及私有链。对于公链来说,任何的节点都可以加入区块链网络。而联盟链具备访问控制功能,只有被授权的节点才可以加入联盟链网络,因此往往比公链网络更安全和高效,主要用于企业或机构间的相互合作。然而,在实际应用中,当区块链节点规模逐渐增加时,现有的区块链的网络拓扑组织方式,可能导致数据分发的带宽利用率低,数据分发速度慢,难以满足大规模区块链网络下高效传输数据的要求。
发明内容
本说明书提出一种区块链网络中的数据传输延迟探测方法,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;所述方法应用于任一目标区域子网络中的任一目标中继节点;包括:
接收所述共识子网络中的共识节点周期性广播发送的探测消息;其中,所述探测消息中包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;
响应于所述探测消息,在所述探测消息中添加所述目标中继节点的第二网络地址和所述目标中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续转发至与所述目标中继节点建立了网络连接的其它的各个非共识节点,以使所述其它的各个非共识节点中的普通节点基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
本说明书还提出一种区块链网络中的数据传输延迟探测方法,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与至少一个中继节点建立了网络连接的至少一个普通节点;所述方法应用于任一目标区域子网络中的任一目标普通节点;包括:
接收与所述目标普通节点建立了网络连接的目标中继节点转发的探测消息;其中,该探测消息为所述目标中继节点接收到的,由所述共识子网络中的共识节点周期性广播发送的探测消息;所述探测消息包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;以及,所述目标中继节点在发送所述探测消息时添加在所述探测消息中的所述目标中继节点的第二网络地址和所述目标中继节点在发送探测消息的第二时刻对应的第二时间戳;
基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
本说明书还提出
一种区块链网络,包括:由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;
其中,所述共识节点,在所述区块链网络中周期性广播发送探测消息;其中,所述探测消息中包含该共识节点的第一网络地址和该共识节点发送所述探测消息的第一时刻对应的第一时间戳;
中继节点,接收所述探测消息,并响应于接收到的所述探测消息,在所述探测消息中添加该中继节点的第二网络地址和该中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续广播发送至与该中继节点建立了网络连接的其它的各个非共识节点;
与所述中继节点建立了网络连接的普通节点,基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
本说明书还提出一种区块链网络中的节点设备,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;包括:
第一接收模块,接收所述共识子网络中的共识节点周期性广播发送的探测消息;其中,所述探测消息中包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;
发送模块,响应于所述探测消息,在所述探测消息中添加所述目标中继节点的第二网络地址和所述目标中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续转发至与所述目标中继节点建立了网络连接的其它的各个非共识节点,以使所述其它的各个非共识节点中的普通节点基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
本说明书还提出一种区块链网络中的节点设备,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与至少一个中继节点建立了网络连接的至少一个普通节点;包括:
第二接收模块,接收与所述目标普通节点建立了网络连接的目标中继节点转发的探测消息;其中,该探测消息为所述目标中继节点接收到的,由所述共识子网络中的共识节点周期性广播发送的探测消息;所述探测消息包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;以及,所述目标中继节点在发送所述探测消息时添加在所述探测消息中的所述目标中继节点的第二网络地址和所述目标中继节点在发送探测消息的第二时刻对应的第二时间戳;
计算模块,基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
上述实施例中,一方面,通过将区域子网络中的非共识节点,进一步划分成从共识节点处接收共识数据的中继节点;以及,从中继节点处接收中继节点转发的共识数据的普通节点,使得共识子网络中的共识节点在向各个区域子网络中的非共识节点分发共识数据时,可以将共识数据分发给中继节点,再由中继节点转发到各个普通节点,而不再需要向各个非共识节点分别分发共识数据,从而可以降低区块链网络的共识层在分发共识数据时的带宽负载,提升共识效率。
另一方面,由于共识节点周期性广播的探测消息中包含该共识节点的网络地址和该共识节点发送该探测消息时的时刻对应的时间戳,并且中继节点在继续广播该探测消息时,添加了该中继节点的网络地址和该中继节点发送该探测消息时的时刻对应的时间戳;因此,对于区域子网络中的普通节点而言,在收到该探测消息后,则可以基于该探测消息中包含的各个时间戳,计算出以该中继节点作为中转的,到达该共识节点的数据传输路径的数据传输延迟,从而使得该普通节点在需要接收共识数据时,可以选择从数据传输延迟最小的数据传输路径,来接收该共识数据,可以有效的降低共识节点在分发共识数据时的数据传输延迟。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书根据一示例性实施例示出的区块链网络的组网架构图;
图2是本说明书根据一示例性实施例示出的一种区块链网络的组网方法的流程图;
图3是本说明书根据一示例性实施例示出的一种区块链网络中的数据传输延迟探测方法的流程图;
图4是本说明书根据一示例性实施例示出的另一种区块链网络中的数据传输延迟探测方法的流程图;
图5是本说明书根据一示例性实施例示出的一种电子设备的示意结构图;
图6是本说明书根据一示例性实施例示出的一种区块链网络中的节点设备的框图;
图7是本说明书根据一示例性实施例示出的另一种区块链网络中的节点设备的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
目前的区块链网络在组网时所采用的网络拓扑以及组网方式主要有以下的三种方式。
1)基于直连式网络拓扑的组网方式
在采用直连式网络拓扑进行组网时,共识层的共识节点之间可以进行全连接,其他的新加入的非共识节点(全节点)可以直接与共识节点建立网络连接,共识节点再通过该网络连接把共识结果传输给非共识节点。
采用这种网络拓扑在小规模的组网场景下简单实用,每个共识节点的带宽,除了要用于数据共识之外,还要用于将共识结果发送给与共识节点建立了网络连接的非共识节点。随着网络中新加入节点数量越来越多,共识节点需要保持的网络连接越来越多,需要由共识节点发送的数据也会越来越多。
而且,由于共识节点向外发送数据时的带宽耗费通常与区块链网络中与共识节点建立网络连接的节点数量正相关,因此与共识节点建立了网络连接的非共识节点数量越多,共识节点的上行带宽负载就越大。当与共识节点建立了网络连接的非共识节点的数量较小的时候,每个非共识节点都能很快的收到最新的共识结果。
然而,一旦与共识节点建立网络连接的节点的数量达到上限,并超出共识节点的带宽能力时,会导致共识层的带宽负载也会急剧降低,这就可能会导致数据分发效率下降,共识时间增加,吞吐量降低等等,最终削弱了整个***的共识能力。
可见,采用这种直连式网络拓扑的组网方式,通常不具有良好的扩展性,难以应对大规模节点的区块链网络的场景。
2)基于随机式的组网方式
在采用随机式的组网方式进行组网时,共识层的共识节点之间仍然可以进行全连接,新加入的非共识节点,可以优先与共识节点建立网络连接。而当与共识节点建立网络连接的节点的数量达到上限,此时新加入的节点则可以从与共识节点已建立了网络连接的节点中随机选择一个节点作为中继节点,并与该中继节点建立网络连接,以基于该网络连接从该中继节点处接收共识数据。
采用随机式的组网方式,虽然能够有效降低共识节点向其它的非共识节点发送数据的带宽负载,但是由于非共识节点之间采用的是随机连接,并没有考虑节点之间的物理拓扑关系,一个节点在逻辑距离上的邻居很可能在物理拓扑上具有很大的延迟。因此,采用这种组网方式,仍然可能会增加数据的传输时延,让整个网络的数据传输延迟波动较大。
3)基于簇形网络拓扑的组网方式
在采用簇形网络拓扑进行组网时,一个共识节点可以作为一个簇头节点,管理很多子节点。每个共识节点将数据分发给其子节点,子节点之间再互相转发数据。
然而,采用这种组网方式,网络的鲁棒性较弱。每个共识节点作为一个簇头节点,共识结果经过簇头分发到所属的簇中的各个子节点,而一旦簇头节点宕机,一个簇中的其他节点则无法及时收到数据,只能通过其他共识节点或者其他全节点获取数据。
可见,采用基于簇形网络拓扑的组网方式,会导致区块链网络的鲁棒性比较差,簇形网络的健壮性不足。
综上所述,从传输延迟、可扩展性、健壮性要求来看,目前区块链在进行组网时所采用的组网方式,均无法满足大规模节点的区块链组网对数据传输效率和性能上的需求。
请参见图1,图1为相关技术中提出的一种适用于大规模节点的区块链组网框架。
如图1所示,上述组网架构中可以包括以下的几个部分:
1:共识子网络
共识子网络,也可以称之为共识层的内部网络。在共识子网络中,可以包括多个共识节点,共识节点之间可以相互建立网络连接,用于数据共识过程中的数据交换。
2:至少一个区域子网络
在上述组网架构中,可以将区块链网络中除了共识层以外的网络划分成至少一个区域子网络。
如图1所示,每一个区域子网络可以称之为一个zone,每一个zone可以包含多个非共识节点。其中,所谓非共识节点通常是指区块链网络中不参与共识的全节点。不同的zone可以分别对应不同的地理位置。
需要说明的是,区块链网络中包含的区域子网络的数量,通常由区块链网络规模决定,与共识层参与共识的共识节点的数量无关。
为了降低共识节点向各个zone分发共识数据时的带宽的压力,每个共识节点可以只向每个zone中的部分节点发送数据,我们称这部分节点为中继节点。而中继节点再把来自共识层的共识节点分发的共识数据转发给zone内的其他节点,这些经过从中继节点处接收中继节点转发的共识数据的节点,我们称为普通节点。
请继续参见图1,对于每一个区域子网络中的非共识节点,可以包含至少一个中继节点和至少一个普通节点。
其中,上述中继节点,可以与共识层的共识节点建立网络连接,用于从共识层的共识节点处接收共识数据。
上述普通节点,可以与上述中继节点建立网络连接,用于从上述中继节点处接收中继节点转发的共识数据。
例如,在实际应用中,上述普通节点可以将客户端发送的交易,通过与中继节点之间的网络连接发送给中继节点,再由该中继节点通过与共识层的共识节点之间的网络连接,将该交易提交给共识层中的共识节点进行共识处理。
相应的,共识层的共识节点,在对各个普通节点提交的交易共识通过后,可以基于这些共识通过的交易生成区块,再通过与中继节点之间的网络连接,将该区块发送给中继节点,再由该中继节点基于与普通节点之间的网络连接,将该区块进一步发送给该普通节点。
其中,需要说明的是,图1中的各个节点的连接关系仅为示意性的,并不用于对本说明书的技术方案做出任何形式的限定。
在采用图1示出的组网框架进行区块链组网时,当任一待加入区块链网络的网络设备,在加入上述区块链网络时,可以先确定与该网络设备所在的地理位置对应的目标区域子网络,然后可以发起针对该目标区域子网络的注册。
当针对该目标区域子网络注册完成后,可以进一步确定该网络设备是否满足成为中继节点的条件;如果是,可以作为中继节点与共识子网络中的共识节点建立网络连接;如果否,可以作为普通节点与目标区域子网络中的中继节点建立网络连接。
例如,为了提升上述区块链网络的鲁棒性,如果网络设备满足成为中继节点的条件,可以作为中继节点与共识子网络中的至少N个共识节点建立网络连接;其中,N的取值大于所述区块链网络的最大容错节点数。如果网络设备不满足成为中继节点的条件,可以作为普通节点与目标区域子网络中的至少M个中继节点建立网络连接;其中,M为预先计算出的与所述目标区域子网络中的中继节点对应的鲁棒性阈值。
可见,采用图1示出的组网框架进行区块链组网,可以适用于大规模节点的组网场景。
例如,一方面,通过预先将区块链网络划分成共识子网络和分别对应不同的地理位置的至少一个区域子网络,使得一个网络设备在作为区块链节点加入区块链网络时,可以针对其所在的地理位置对应的目标区域子网络就近的发起注册,并作为区块链节点加入到该目标区域子网络。由于同一个区域子网络中的节点之间在物理拓扑上更加靠近,拥有更低的数据传输延迟,这使得同一个区域子网络中的节点,可以更快地将待共识的数据传输至共识节点,也可以更快收到共识节点分发的共识完成的共识数据。
另一方面,通过将区域子网络中的非共识节点,进一步划分成从共识节点处接收共识数据的中继节点;以及,从中继节点处接收中继节点转发的共识数据的普通节点,使得共识子网络中的共识节点在向各个区域子网络中的非共识节点分发共识数据时,可以将共识数据分发给中继节点,再由中继节点转发到各个普通节点,而不再需要向各个非共识节点分别分发共识数据,从而可以降低区块链网络的共识层在分发共识数据时的带宽负载,提升共识效率。
可见,基于图1示出的组网架构,使得一些普通节点可以不再直接从共识节点处接收共识数据,而可以通过中继节点处接收共识节点,来缓解共识节点在分发共识数据时的带宽压力。
然而,基于图1示出的组网框架虽然在某种程度上可以缓解共识节点在分发共识数据时的带宽压力,但在实际应用中,图1示出的区块链网络中的各个zone中的普通节点,可能会同时与多个中继节点建立了网络连接,并且该多个中继节点中的每一个中继节点,也可能与多个共识节点建立了网络连接。这就会导致每一个普通节点,与各个共识节点之间将会存在着众多的以中继节点作为中转的数据传输通道。
有鉴于此,在本说明书中,在图1示出的组网框架的基础上,提出一种来探测普通节点与各个共识节点之间的以中继节点为中转的数据传输路径的传输延迟的技术方案。
对于共识子网络中的各个共识节点,可以在区块链网络中周期性广播发送探测消息;其中,该探测消息可以包含该共识节点的第一网络地址和该共识节点发送该探测消息的第一时刻对应的第一时间戳;
对于各个zone中的中继节点,在收到该探测消息后,可以在所述探测消息中添加该中继节点的第二网络地址和该中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续广播发送至与该中继节点建立了网络连接的其它的各个非共识节点;
与所述中继节点建立了网络连接的普通节点,在收到所述探测消息后,可以基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
在以上实施例中,一方面,通过将区域子网络中的非共识节点,进一步划分成从共识节点处接收共识数据的中继节点;以及,从中继节点处接收中继节点转发的共识数据的普通节点,使得共识子网络中的共识节点在向各个区域子网络中的非共识节点分发共识数据时,可以将共识数据分发给中继节点,再由中继节点转发到各个普通节点,而不再需要向各个非共识节点分别分发共识数据,从而可以降低区块链网络的共识层在分发共识数据时的带宽负载,提升共识效率。
另一方面,由于共识节点周期性广播的探测消息中包含该共识节点的网络地址和该共识节点发送该探测消息时的时刻对应的时间戳,并且中继节点在继续广播该探测消息时,添加了该中继节点的网络地址和该中继节点发送该探测消息时的时刻对应的时间戳;因此,对于区域子网络中的普通节点而言,在收到该探测消息后,则可以基于该探测消息中包含的各个时间戳,计算出以该中继节点作为中转的,到达该共识节点的数据传输路径的数据传输延迟,从而使得该普通节点在需要接收共识数据时,可以选择从数据传输延迟最小的数据传输路径,来接收该共识数据,可以有效的降低共识节点在分发共识数据时的数据传输延迟。
请参见图2,图2是本说明书根据一示例性实施例示出的区块链网络的组网方法的流程图,所该方法可以应用于任一待加入采用图1示出的组网架构的区块链网络的网络设备;所述方法包括:
步骤202,确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;
上述网络设备,具体可以是以区块链节点的身份待加入区块链网络的服务设备。其中,上述服务设备的具体的设备形态,在本说明书中不进行特别限定;例如,以上述区块链网络为联盟链为例,上述网络设备具体可以是与联盟链中的联盟成员对应的服务端设备(比如服务器或者服务器集群)。
如图1所示,由于上述区块链网络被划分为了分别对应不同的地理位置的若干个zone,上述网络设备在作为区块链节点加入上述区块链网络时,可以先确定自身的地理位置,再根据自身的地理位置,来确定与该网络设备的地理位置对应的目标zone。
其中,上述网络设备的地理位置,可以是上述网络设备的精确地理位置,也可以是该网络设备的相对地理位置,在本说明书中不进行特别限定。
例如,上述精确地理位置,具体可以是该网络设备的精确的定位位置;比如gps定位坐标。而上述相对地理位置,具体可以是预先为该网络设备配置的所属的区域信息;比如,以上述网络设备为服务设备为例,上述相对地理位置,具体可以是该服务设备所属的服务器集群的服务设备分区(Region)。该服务设备分区通常是按照服务器集群所在的机房等设施所属的行政区域来标识。
上述网络设备在确定了与自身的地理位置对应的目标zone之后,可以进一步发起针对该目标zone的注册流程。
其中,需要说明的是,上述网络设备在发起针对上述目标zone的注册之前,通常需要预先完成针对上述区块链网络的注册。
在示出的一种实施方式中,上述网络设备在针对上述区块链网络进行注册时,可以向区块链服务平台(比如BaaS平台)发起针对区块链网络的注册请求,以由该区块链服务平台响应于该注册请求针对该网络设备进行注册处理;其中,注册处理的具体细节不再详述;比如,以联盟链为例,上述注册处理通常可以包括针对联盟链的授权和准入等处理。
区块链服务平台针对该网络设备的注册处理完成后,该网络设备可以响应于针对该区块链网络的注册完成,从区块链服务平台处同步与上述区块链网络相关的服务数据;其中,与上述区块链网络相关的服务数据,通常可以包括该区块链网络中的各个共识节点的网络地址(比如IP地址)等信息。
而上述网络设备发起针对上述目标zone的注册时,具体可以通过打包一笔注册交易,并将该笔注册交易提交至区块链网络进行执行来实现。
在示出的一种实施方式中,该网络设备可以进一步构建一笔针对目标zone的注册交易;该注册交易可以包含与该网络设备对应的注册信息;其中,需要说明的是,上述注册信息的具体内容具体可以包含与上述网络设备对应的网络地址;当然,在实际应用中,除了与上述网络设备对应的网络地址以外,还可以包含其它形式的用于注册的信息;比如,上述网络设备在成功注册区块链网络后取得的公钥,请求注册的上述目标zone的网络标识(比如网络编号),等等,在本说明书中不再进行一一列举。
然后,网络设备可以将该注册交易提交至共识子网络,由共识子网络中的各个共识节点对该注册交易进行共识,并在共识通过后将注册交易在区块链上进行存储,以完成针对目标区域子网络的注册。而上述目标zone中的其它的非共识节点,可以通过获取区块链上存储的上述注册交易,来发现新加入上述目标zone的非共识节点。
其中,需要说明的是,上述注册交易的具体类型,在本说明书中不进行特别限定,具体可以是区块链网络支持的原生交易类型,也可以是智能合约调用交易。
例如,在一个例子中,在区块链上可以部署一个用于对区块链网络进行注册管理的智能合约;在这种情况下,上述注册交易具体可以是一笔与该智能合约对应的智能合约调用交易;上述网络设备发起针对上述目标zone的注册时,具体可以打包一笔针对该智能合约的智能合约调用交易,该智能合约调用交易具体可以包含作为合约调用参数的注册信息;然后,可以将包含上述注册信息的智能合约调用交易提交至共识子网络,以触发共识子网络中的各个共识节点分布式的执行上述智能合约包含的执行代码,来运行针对上述目标zone进行注册的注册逻辑,生成上述网络设备针对目标zone的注册事件(Event)。
然后,可以对生成的注册事件进行共识,使得各个共识节点对上述智能合约的调用结果达成分布式一致;其中,该注册事件可以包含上述注册信息。而在针对上述注册事件共识通过后,各个共识节点可以将该注册事件在区块链上进行存储,以完成针对目标区域子网络的注册。例如,可以将生成的注册事件作为上述智能合约调用交易对应的交易收据(receipt)的一部分,存储在上述区块链对应的数据库中。
步骤204,响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;
当上述网络设备完成针对目标zone的注册之后,可以进一步来判断自身是否符合成为上述中继节点的条件,并基于判断结果来确认自身在目标zone中的节点角色。
其中,在示出的一种实施方式中,上述网络设备在进一步判断自身是否符合成为上述中继节点的条件之前,首先需要获取区块链上存储的由该目标zone中的其它非共识节点提交的注册交易,并从该注册交易中获取该目标zone中的其它非共识节点对应的网络地址,以此来发现该目标zone中的其它非共识节点。
例如,以上述注册交易是一笔与该述智能合约对应的智能合约调用交易为例,在这种情况下,上述网络设备可以监听区块链上存储的由上述智能合约生成的上述目标zone中的其它非共识节点针对该目标zone的注册事件;然后,可以响应于监听到的注册事件,获取该注册事件中包含的上述其它非共识节点针对该目标zone的注册信息,并从获取到的注册信息中进一步获取该目标zone中的其它非共识节点对应的网络地址。
其中,需要说明的是,由于上述注册事件可以包含目标zone的网络标识,上述网络设备在监听区块链上存储的由上述智能合约生成的上述目标zone中的其它非共识节点针对该目标zone的注册事件时,具体可以通过监听区块链上存储的由智能合约生成的包含该目标zone的网络标识的注册事件来实现。
当网络设备从上述注册交易中获取到该目标zone中的其它非共识节点对应的网络地址之后,还可以从获取到的该目标zone中的非共识节点对应的网络地址中,随机选择至少一个网络地址,并与该至少一个网络地址对应的至少一个非共识节点分别建立网络连接。
需要说明的是,网络设备与上述至少一个非共识节点分别建立的网络连接,具体可以作为上述网络设备在加入上述目标zone之后,与该目标zone中的其它非共识节点之间的初始化传输通道,该初始化传输通道用于与其它非共识节点之间进行初始化信息的交互。
在实际应用中,如果网络设备与上述至少一个非共识节点建立网络连接失败,为了保证该网络设备能够与其它非共识节点进行初始化信息的交互,此时可以从获取到的该目标zone中的非共识节点对应的网络地址中,重新选择至少一个网络地址,并与重新选择的至少一个网络地址对应的至少一个非共识节点建立网络连接。
当然,如果此时与该重新选择的至少一个非共识节点建立网络连接仍然失败,还可以继续从与该目标zone的邻居zone中的非共识节点的网络地址中随机选择至少一个网络地址,然后与邻居zone中的至少一个非共识节点建立网络连接,直到该网络设备与上述目标zone或者该目标zone的邻居zone中的至少一个非共识节点成功建立了网络连接为止。
在本说明书中,网络设备在成功注册了上述目标zone以后,可以进一步判断自身是否满足成为中继节点的条件,再基于判断结果来确认自身在目标zone中的节点角色。
在示出的一种实施方式中,网络设备成为上述目标zone中的中继节点的条件,具体可以是该目标zone中是否具有足够数量的中继节点。
在这种情况下,网络设备在判断自身是否符合成为上述中继节点的条件时,具体可以先获取目标区域子网络中的中继节点的数量,再确定目标zone中的中继节点的数量是否低于阈值M。
其中,该阈值M具体可以是一个预先计算出的与目标zone中的中继节点对应的鲁棒性阈值。该鲁棒性阈值反映的是对该目标zone的鲁棒性要求。也即,当目标zone中的中继节点的数量不低于M个,认为该目标zone符合鲁棒性要求。
如果目标zone中的中继节点的数量低于阈值M,可以确定该网络设备满足成为中继节点的条件;反之,可以确定该网络设备不满足成为中继节点的条件。
其中,网络设备在获取目标zone中的中继节点的数量时,具体可以通过上述初始化传输通道与其它非共识节点进行消息交互来实现。
在示出的一种实施方式中,上述区块链网络支持的用于在各个节点之间进行交互的消息类型,具体可以包括如下示出的消息:
get-relay-nodes消息(记为第一消息),用于询问消息接收节点对应的区域子网络中的中继节点的节点信息。
relay-nodes消息(记为第二消息),用于向get-relay-nodes消息的消息发送节点返回由消息接收节点维护的其所在的区域子网络中的中继节点的节点信息集合。
在这种情况下,网络设备在通过上述初始化传输通道与其它非共识节点进行消息交互来获取目标zone中的中继节点的数量时,具体可以向已经建立了网络连接的上述至少一个非共识节点发送上述get-relay-nodes消息。而上述至少一个非共识节点在获取到上述get-relay-nodes消息之后,可以分别向该网络设备返回一个relay-nodes消息。而该网络设备在收到上述relay-nodes消息之后,可以读取该relay-nodes消息的消息内容中包含的由上述至少一个非共识节点维护的目标zone中的中继节点的节点信息集合,然后基于该节点信息集合来确定目标zone中的中继节点的数量;比如,在实际应用中,可以基于对该节点信息集合中的节点信息进行统计,来确定目标zone中的中继节点的数量。
如果上述至少一个非共识节点为多个非共识节点,此时网络设备可以获取到该多个非共识节点返回的多个relay-nodes消息,在这种情况下,网络设备可以分别读取该多个非共识节点返回的relay-nodes消息的消息内容中包含的由该多个非共识节点分别维护的目标zone中的中继节点的节点信息集合,然后对读取到的节点信息集合取并集,然后再基于得到的并集来确定目标zone中的中继节点的数量。
在示出的一种实施方式中,上述区块链网络支持的用于在各个节点之间进行交互的消息类型,除了可以包括诸如get-relay-nodes消息和relay-nodes消息以外,在实际应用中,还可以包括如下示出的消息:
Relayer消息(记为第三消息),用于声明消息发送节点为正常运行的中继节点。
在这种情况下,上述目标zone中的中继节点,可以分别周期性的在目标zone中广播发送Relayer消息;其中,Relayer消息的消息内容中包含该中继节点的节点信息。而该目标zone中的其它非共识节点(包括其它的中继节点和其它的普通节点)可以分别维护一个与目标zone中的中继节点对应的节点信息集合,当接收到该Relayer消息之后,可以读取该Relayer消息的消息内容中包含的该中继节点的节点信息,然后将该节点信息添加至本地维护的上述节点信息集合。
Leave消息(记为第四消息),用于声明消息发送节点以中继节点的身份退出其所属的区域子网络。
在这种情况下,上述目标zone中的中继节点,在收到退出其所属的区域子网络的指令时,可以响应于该指令,从与该中继节点建立了网络链接的普通节点中确定作为候选中继节点的目标普通节点,并向该目标普通节点发送Leave消息,以触发该目标普通节点作为新的中继节点接替该中继节点,和与该中继节点已经建立了网络连接的共识节点,分别建立网络连接,并与该中继节点已经建立了网络连接的其它的普通节点分别建立网络连接。
通过这种方式,可以始终将各个区域子网络中的中继节点的数量,维持在一个固定的水平,有助于保持各个区域子网络的网络稳定性。
其中,需要说明的是,在实际应用中,上述退出其所属的区域子网络的指令,具体可以是一个由上述中继节点的管理者手动输入的退出其所属区域子网络的指令,也可以是一个该中继节点长时间没有响应疑似发生宕机时自动触发的一个退出其所属区域子网络的指令,在本说明书中不进行特别限定。
在从与该中继节点建立了网络链接的普通节点中确定作为候选中继节点的目标普通节点的具体确定方式,在实际应用中,可以基于需求来灵活的进行定制,在本说明书中也不进行具体的限定。
例如,在一个例子中,可以基于与该中继节点建立了网络链接的各个普通节点加入该中继节点所属的区域子网络的时刻,来确定各个普通节点最早加入该区域子网络的普通节点,然后将该普通节点确定为作为候选中继节点的目标普通节点。
步骤206,如果是,作为中继节点与所述共识子网络中的共识节点建立网络连接;如果否,作为普通节点与所述目标区域子网络中的中继节点建立网络连接。
在本说明书中,如果网络设备确定自身满足成为目标zone中的中继节点的条件,此时可以作为中继节点进一步与共识子网络中的共识节点建立网络连接;反之,可以与作为普通节点与目标zone中的中继节点建立网络连接。
需要说明的是,与网络设备建立网络连接的共识节点或者中继节点的数量,可以是一个也可以是多个,在实际应用中,可以基于对上述区块链网络的鲁棒性要求来进行确定。
例如,如果对上述区块链网络的鲁棒性要求较高,网络设备在作为中继节点时,可以同时与共识子网络中的多个共识节点分别建立网络连接。在这种情况下,一旦某一个共识节点发生宕机,该网络设备还可以从该多个共识节点中的其它共识节点处接收数据。相应的,网络设备在作为普通节点时,也可以同时与目标zone中的多个中继节点分别建立网络连接。在这种情况下,一旦某一个中继节点发生宕机,该网络设备也可以从该多个中继节点中的其它共识节点处接收数据。
在实际应用中,区块链网络通常会有一个最大容错节点数;比如,以区块链网络采用的共识算法为拜占庭共识算法为例,该最大容错节点数通常为该区块链网络能够容忍的拜占庭节点的最大数量f。
一方面,当一个中继节点与超过f个共识节点建立了网络连接,在极限情况下,即便f个共识节点同时宕机(拜占庭节点可以直接当作宕机节点),也可以确保与该中继节点建立了网络连接的共识节点中,仍然能够存在至少一个共识节点处于正常运行的状态,也就是说,此时该中继节点仍然能够从至少一个共识节点处接收数据。在这种情况下,可以认为该中继节点符合区块链网络的鲁棒性要求。
另一方面,如前所述,也可以预先计算出一个与目标zone中的中继节点对应的鲁棒性阈值M。该鲁棒性阈值M反映的是对该目标zone的鲁棒性要求。也即,当目标zone中的中继节点的数量不低于M个,认为该目标zone符合鲁棒性要求。在这种情况下,当一个普通节点与不低于M个中继节点建立了网络连接,可以认为该普通节点符合区块链网络的鲁棒性要求。
基于此,在示出的一种实施方式中,如果网络设备确定自身满足成为目标zone中的中继节点的条件,可以作为中继节点与共识子网络中的至少N个共识节点分别建立网络连接;其中,N的取值可以大于区块链网络的最大容错节点数;
例如,在一个例子中,以区块链网络所采用的共识算法为拜占庭共识算法为例,此时区块链网络的容错节点数(即拜占庭节点的数量)可以记为f,而区块链网络中参与共识的共识节点的数量可以为3f+1个;在这种情况下,上述N的取值范围可以为(f,3f+1]。也即,N可以是一个大于f,而小于等于3f+1的数值。
相应的,如果网络设备确定自身不满足成为目标zone中的中继节点的条件,还可以作为普通节点与目标zone中的至少M个中继节点分别建立网络连接;其中,如前所述,该M为预先计算出的与目标zone中的中继节点对应的鲁棒性阈值。
其中,需要说明的是,在实际应用中,与区块链网络中的各个zone对应的M的取值,可以由区块链网络对应的区块链服务平台基于各个zone的实际规模来预先进行计算,也可以由各个zone中的非共识节点基于当前的zone的实际规模来自主的进行计算,在本说明书中不进行特别限定。
以下以上述区块链网络采用的共识算法为拜占庭共识算法为例,来详细描述上述M的取值的计算过程。
在实际应用中,由于区块链网络中的非共识层网络的拜占庭节点的恶意行为,通常是拒绝发送数据或者延时发送数据;因此,在本实施例中,可以把中继节点和普通节点中的拜占庭节点的拒绝发送数据或者延时发送数据等作恶行为视为节点宕机。
当网络中只有一个zone时,若zone内的中继节点全部出现宕机(即全部为拜占庭节点)时,zone内的节点将长时间无法接收数据。为了保证数据传输的高效性,理论上要确保一个zone中至少有足够数量的中继节点,才能避免中继节点全部宕机的情况。
在示出的一种实施方式中,假设在一段运行时间内,诚实节点宕机的概率记为phonest,拜占庭节点宕机的概率是pbyzantine;在这种情况下,区块链网络中任意一个节点出现宕机的概率可以用如下的公式进行计算:
其中,f表示区块链网络容忍的拜占庭节点的数量;T表示区块链网络中的节点的总数量;pbyzantine表示区块链网络中的任意一个拜占庭节点宕机的概率;phonest表示区块链网络中的任意一个诚实节点发生宕机的概率。
在示出的一种实施方式中,假设目标zone中的中继节点的鲁棒性阈值用M来表示,则M个中继节点全部宕机的概率可以用如下公式来进行表示:
(pcrash)M≤probust (公式2)
需要说明的是,由于区块链网络中的任意一个拜占庭节点宕机的概率,与上述目标zone中的任意一个拜占庭节点宕机的概率相同,因此在上述公式2中pbyzantine可以表示上述目标zone中的任意一个拜占庭节点宕机的概率。相似的,上述公式2中的phonest也可以表示目标zone中的任意一个诚实节点发生宕机的概率。pcrash则也可以用于表示目标zone中任意一个非共识节点宕机的概率。
其中,请继续参见公式1,如前所述,由于拜占庭节点将默认被视为节点宕机,因此上述pbyzantine=1。由于上述公式1中的这部分的数值大小通常非常小,可以忽略不计,因此如果将pbyzantine=1代入到公式1,则基于上述公式1可知,pcrash的取值通常可以约等于/>
基于此,在示出的一种实施方式中,上述pcrash的取值可以用如下的公式进行计算:
将公式3代入到公式2中,最终可以得到如下的计算公式:
综上所述,可以利用公式4来计算与目标zone对应的M的取值。
例如,在公式4的基础上进行推导,就可以得到M的计算公式:
其中,需要说明的是,probust的取值,通常与各个zone的鲁棒性要求和各个zone的规模(比如节点总数)相关,不同的zone的probust的取值,可能会存在差异。因此,在实际应用中,可以基于对各个zone的鲁棒性要求,来灵活的为各个zone设置鲁棒性阈值probust。
在示出的一种实施方式,网络设备在作为中继节点进一步与共识子网络中的N个共识节点建立网络连接时,具体可以从在区块链网络的注册阶段获取到的共识子网络中的共识节点的网络地址中,随机选择至少N个网络地址,然后与随机选择的该N个网络地址建立网络连接。
而网络设备在作为普通节点与目标zone中的M个中继节点建立网络连接时,具体也可以从在目标zone的注册阶段获取到的该目标zone中的中继节点的网络地址中,随机选择M个网络地址,并与随机选择的M个网络地址建立网络连接。
其中,上述网络连接的具体类型,在本说明书中不进行特别限定;例如,以上述网络地址为IP地址为例,上述网络连接具体可以是TCP连接,在这种情况下,上述网络设备可以基于TCP协议与其它的共识节点或者中继节点来进行TCP三次握手来创建TCP连接。
需要说明的是,上述目标zone中的各个中继节点之间,可以建立全连接;也即,对于目标zone中的任一中继节点来说,可以与其它的各个中继节点分别建立网络连接。
例如,在实际应用中,如果网络设备满足成为中继节点的条件,除了与共识子网络中的共识节点建立网络连接以外,还可以与目标zone中的其它的各个中继节点的网络地址,分别建立网络连接。
需要补充说明的是,当与一个中继节点建立了网络连接的普通节点的数量达到一定数量之后,可能会对导致该中继节点在向各个普通节点转发数据时面临带宽上的压力,因此在实际应用中,可以引入以各个中继节点为簇头的簇形拓扑结构,来对与中继节点建立网络连接的普通节点的数量进行限制。
例如,在示出的一种实施方式中,可以为各个中继节点设置一个允许与其建立网络连接的普通节点的阈值。比如,该阈值仍然可以是上述M。在这种情况下,当网络设备作为普通节点与目标zone中的M个中继节点中的任一目标中继节点建立网络连接时,如果与该目标中继节点保持了网络连接的普通节点的数量达到M,该目标中继节点可以拒绝与该网络设备建立网络连接,并从与其建立了网络连接的普通节点中选择一个目标普通节点,然后将该目标普通节点的网络地址发送给该网络设备。而该网络设备在获取到该目标普通节点的网络地址之后,可以不再与该目标中继节点直接建立网络连接,而是作为与该中继节点已经建立了网络连接的目标普通节点的子节点,与该目标普通节点的网络地址建立网络连接。
其中,目标中继节点从与其建立了网络连接的普通节点中选择目标普通节点的具体方式,在本说明书中不进行特别限定;比如,可以采用随机选择的方式,或者选择与该网络设备在地理位置上更接近的普通节点。
在示出的一种实施方式中,该网络设备在作为中继节点与共识子网络中的N个共识节点建立了网络连接之后,也可以周期性的在目标zone中广播发送上述Relayer消息;其中,该Relayer消息的消息内容中包含该网络设备作为中继节点的节点信息;相应的,该网络设备作为中继节点,也可以接收目标zone中的其它中继节点周期性的广播发送的Relayer消息,并读取接收到的Relayer消息的消息内容中包含的其它中继节点的节点信息,并将读取到的节点信息添加至本地维护的与目标zone中的中继节点对应的节点信息集合。
在示出的一种实施方式中,网络设备在针对目标zone的注册完成之后,该网络设备还可以从区块链网络中的各个zone中,确定出与该目标zone对应的邻居zone;比如,在实现时,可以将地理位置较为接近的其它zone,确定为与该目标zone对应的邻居zone;然后,可以进一步与确定出的该邻居zone中的至少部分中继节点建立网络连接。其中,该网络连接具体可以用于与邻居zone进行数据同步。
在这种情况下,当目标zone中的非共识节点发生大规模的节点宕机,而造成的该目标zone中的节点整体不可用时,网络设备可以启用与邻居zone中的中继节点之间的网络连接,通过该网络连接从邻居zone处进行数据同步。当然,如果目标zone中的非共识节点并非发生大规模的节点宕机而变的不可用,该网络连接可以仅仅用于与邻居zone中的中继节点交互保活报文,来维持该网络连接的可用性。
在示出的一种实施方式中,如果网络设备作为中继节点与共识子网络中的共识节点建立了网络连接,后续可以通过与共识子网络中的共识节点之间的网络连接,接收该共识节点发送的共识数据,再通过与其连接的普通节点之间的网络连接,将该共识数据进一步转发至普通节点;通过这种方式,使得普通节点可以不再需要与共识节点建立网络连接,从共识节点处接收数据,从而可以缓解共识节点的带宽压力。
除此之外,与该网络设备建立了网络连接的普通节点,也可以将需要进行共识的交易,通过与该网络设备之间的网络连接发送给该网络设备,而网络设备在通过该网络连接接收到该普通节点发送的交易之后,可以通过与共识子网络中的共识节点之间的网络连接,将该交易进一步提交至共识子网络中的共识节点进行共识处理。
在示出的另一种实施方式中,如果网络设备作为普通节点,与目标zone中的中继节点建立了网络连接,后续与该普通节点对应的客户端,可以将待共识的交易提交给该网络设备。而该网络设备在接收到客户端发送的交易之后,可以通过与目标zone中的中继节点之间的网络连接,将该交易发送给该中继节点,由该中继节点通过与所述共识子网络中的共识节点之间的网络连接,将该交易进一步提交至所述共识节点进行共识处理。
需要说明的是,上述客户端具体可以是与上述普通节点建立了网络连接的轻节点。相应的,上述区块链网络中的各个zone中的非共识节点(包括中继节点和普通节点),则可以是不参与共识的全节点。
请参见图3,图3是本说明书根据一示例性实施例示出的区块链网络中的数据传输延迟探测方法的流程图;其中,所述区块链网络仍然可以采用图1示出的组网框架;所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;所该方法可以应用于任一目标区域子网络中的任一目标中继节点,所述方法包括:
步骤302,接收所述共识子网络中的共识节点周期性广播发送的探测消息;其中,所述探测消息中包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;
在本说明书,上述区块链网络支持的用于在各个节点之间进行交互的消息类型,还可以包括如下示出的消息:
latency-detect消息(即上述探测消息),该消息可以由共识子网络中的共识节点在区块链网络中周期性的进行广播发送,该消息可以用于探测各个非共识节点与共识节点之间的数据传输路径的数据传输延迟。在默认情况下,该消息中可以包含发送该消息的共识节点的网络地址和发送该消息的时刻对应的时间戳。
在这种情况下,共识子网络中的共识节点,可以周期性的在区块链网络中广播发送该latency-detect消息;其中,发出的该latency-detect消息中可以包含该共识节点的网络地址和该共识节点发送该latency-detect消息的第一时刻对应的第一时间戳。
其中,需要说明的是,共识节点发送latency-detect消息所采用的周期时长,在本说明书中不进行特别限定,在实际应用中,可以基于实际的需求进行灵活的指定。发送该latency-detect消息的时刻,可以是共识节点广播发送该latency-detect消息的精确时刻,也可以不是发送该latency-detect消息的精确时刻,而是预先指定的一个作为发送时刻的其它时刻,在本说明书中也不进行特别限定。也即,在实际应用中,可以将发送该latency-detect消息的精确时刻包含在上述latency-detect消息中,也可以预先指定一个时刻作为该latency-detect消息的发送时刻包含在上述latency-detect消息。
而上述目标中继节点可以接收共识子网络中的共识节点周期性广播发送的latency-detect消息。在示出的一种实施方式中,上述目标中继节点接收到的latency-detect消息,可以是与该目标中继节点建立了网络连接的共识节点周期性广播发送的latency-detect消息。在这种情况下,上述第一网络地址则是与该目标中继节点建立了网络连接的共识节点的网络地址;上述第一时间戳则是与该目标中继节点建立了网络连接的共识节点在广播发送该latency-detect消息时的时刻对应的时间戳。
如前所述,为了提升上述区块链网络的鲁棒性,各个zone中的中继节点,可以分别与共识子网络中的至少N个共识节点分别建立网络连接;其中,N可以是一个大于区块链网络的最大容错节点数的取值,不再赘述。
在这种情况下,由于上述目标中继节点同时与N个共识节点建立了网络连接,因此该目标中继节点在接收由共识节点广播发送的latency-detect消息时,具体可以接收到该N个共识节点分别广播发送的latency-detect消息。
在实际应用中,各个zone中的中继节点,也可以分别与共识子网络中的各个共识节点建立全连接;也即,各个zone中的中继节点,可以与共识子网络中的每一个共识节点分别建立网络连接。此时上述N的取值可以是共识子网络中参与共识数据分发的共识节点的总数量。
在这种情况下,由于上述目标中继节点同时与共识子网络中的所有共识节点均建立了网络连接,因此该目标中继节点在接收由共识节点广播发送的latency-detect消息,接收到的latency-detect消息的数量,具体可以与共识子网络中参与共识数据分发的共识节点的总数量相同。例如,假设共识子网络中包含3f+1个共识节点,则上述目标中继节点也可以接收到3f+1个latency-detect消息。
在示出的另一种实施方式中,上述目标中继节点接收到的latency-detect消息,具体也可以是其它的中继节点转发的,由与上述其它的中继节点建立了网络连接的共识节点周期性广播发送的latency-detect消息。
也即,在本说明书中,上述目标中继节点除了可以接收与其建立了网络连接的共识节点广播发送的latency-detect消息以外,也可以接收由其它的中继节点转发的latency-detect消息。
在这种情况下,上述第一网络地址则是与上述其它的中继节点建立了网络连接的共识节点的网络地址;上述第一时间戳则是与上述其它的中继节点建立了网络连接的共识节点在广播发送该latency-detect消息时的时刻对应的时间戳。
其中,需要说明的是,上述其它的中继节点,具体可以包括上述目标中继节点所属的目标zone中的其它的中继节点,还可以包括该目标zone以外的其它zone中与该目标中继节点建立了网络连接的中继节点,在本说明书中不进行特别限定。
步骤304,响应于所述探测消息,在所述探测消息中添加所述目标中继节点的第二网络地址和所述目标中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续转发至与所述目标中继节点建立了网络连接的其它的各个非共识节点,以使所述其它的各个非共识节点中的普通节点基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
上述目标中继节点在接收到由共识节点广播发送的latency-detect消息之后,可以继续将该latency-detect消息向与其建立了网络连接的普通节点进行转发。比如,在实际应用中,上述目标中继节点也可以采用在区块链网络中进行广播发送的方式,继续转发接收到的latency-detect消息。
其中,上述目标中继节点继续转发该latency-detect消息时,可以将自身的第二网络地址和发送该latency-detect消息的第二时刻对应的第二时间戳,添加到该latency-detect消息的消息内容中,然后再将添加了上述第二网络地址和第二时间戳的latency-detect消息继续转发至与其建立了网络连接的其它的非共识节点;其中,该其它的非共识节点,可以包括与该目标中继节点建立了网络连接的其它的各个中继节点和与该目标中继节点建立了网络连接的其它的各个普通节点。
需要说明的是,区块链网络中的其它的中继节点在接收到与其建立了网络连接的共识节点广播发送的latency-detect消息后,也会执行与上述目标中继节点相同的动作,在该latency-detect消息中包含的与该其它的中继节点建立了网络连接的共识节点的网络地址和该共识节点发送该latency-detect消息的时刻对应的时间戳的基础上,进一步添加上述其它的中继节点的网络地址和上述其它的中继节点在发送探测消息的时刻对应的时间戳。
在示出的一种实施方式中,如前所述,各个zone的各个中继节点之间可以建立了全连接。而且,各个zone中的各个普通节点,也可以分别与其所属的zone中的至少M个中继节点分别建立了网络连接;其中,M为预先计算出的与所述区域子网络中的中继节点对应的鲁棒性阈值,具体计算过程不再赘述。
在这种情况下,与目标中继节点建立了网络连接的非共识节点,可能包含多个普通节点和多个其它的中继节点。该目标中继节点在继续转发latency-detect消息时,具体可以将该latency-detect消息继续转发至其所属的zone中与该目标中继节点建立了网络连接的各个普通节点以及其它的各个中继节点。
在示出的一种实施方式中,各个区域子网络中的各个普通节点,也可以分别与其所属的zone中的各个中继节点之间建立全连接。也即,各个zone中的各个普通节点,可以与其所属的zone中的每一个中继节点分别建立网络连接。此时上述M的取值可以是其所属的zone中的中继节点的总数量。
在这种情况下,由于上述目标中继节点同时与其所属的zone中的所有普通节点均建立了网络连接,因此该目标中继节点在继续转发latency-detect消息时,具体可以将该latency-detect消息继续转发至其所属的zone中的所有的各个普通节点以及其它的各个中继节点。
在示出的一种实施方式中,各个zone的各个普通节点,还可以分别与其所属的zone对应的邻居zone中的至少一个中继节点建立网络连接;比如,在一个例子中,各个zone的各个普通节点,还可以分别与其所属的zone对应的邻居zone中的所有中继节点建立全连接。
在这种情况下,该目标中继节点在继续转发latency-detect消息时,除了需要继续将该latency-detect消息继续转发至其所属的zone中的与其建立了网络连接的各个非共识节点,还要将其转发至其所属的zone对应的邻居zone中与其建立了网络连接的至少一个普通节点;比如,以各个zone的各个普通节点,可以分别与其所属的zone对应的邻居zone中的所有中继节点建立全连接为例,此时目标中继节点还需要将其转发至上述邻居zone中与其建立了网络连接的普通节点。
在示出一种实施方式中,由于上述目标中继节点继续广播发送的latency-detect消息,可能是经过其它中继节点中转过的latency-detect消息;因此,该latency-detect消息中可能包含的多个中继节点二次添加的网络地址。在这种情况下,上述目标中继节点在继续广播发送latency-detect消息时,具体可以先读取该latency-detect消息中包含的网络地址,并确定与该目标中继节点建立了网络连接的其它的各个非共识节点的网络地址中,除了该探测消息中包含的网络地址以外的其它网络地址;然后,可以将latency-detect消息继续广播发送至与上述其它网络地址对应的各个非共识节点。
通过这种方式,可以避免继续将latency-detect消息广播发送给已经接收并转发过相同的latency-detect消息的重复的非共识节点,从而可以避免发送latency-detect消息时的带宽浪费。
在本说明书中,上述目标中继节点在将添加了上述第二网络地址和第二时间戳的latency-detect消息继续转发至与其建立了网络连接的其它的非共识节点之后,这些非共识节点中的普通节点,可以基于接收到的该latency-detect消息中包含的各个时间戳,计算将上述第二网络地址作为中转,与上述第一网络地址之间的数据传输路径的数据传输延迟。
在示出的一种实施方式中,如果上述目标中继节点转发的latency-detect消息,是与该目标中继节点建立了网络连接的共识节点周期性广播发送的latency-detect消息,此时上述第一网络地址则是与该目标中继节点建立了网络连接的共识节点的网络地址;上述第一时间戳则是与该目标中继节点建立了网络连接的共识节点在广播发送该latency-detect消息时的时刻对应的时间戳。
在这种情况下,与该目标中继节点建立了网络连接的普通节点,可以基于接收到的该latency-detect消息中包含的各个时间戳,计算将上述第二网络地址作为中转,与上述第一网络地址之间的数据传输路径的数据传输延迟。
例如,该普通节点可以先计算接收到该latency-detect消息的时刻对应的时间戳,和上述第二时间戳的差值,得到该普通节点与上述目标中继节点之间的网络连接的第一传输延迟。然后,再计算上述第一时间戳和上述第二时间戳的差值,得出上述目标中继节点和广播发送该latency-detect消息的共识节点之间的网络连接的第二传输延迟。最后,将第一传输延迟和第二传输延迟相加,即可得到该普通节点与该共识节点之间的,以该目标中继节点作为中转的数据传输路径的总传输延迟。
在示出的另一种实施方式中,如果上述目标中继节点转发的latency-detect消息,是其它的中继节点转发的latency-detect消息;也即,由与上述其它的中继节点建立了网络连接的共识节点周期性广播发送的latency-detect消息。此时上述第一网络地址则是与上述其它的中继节点建立了网络连接的共识节点的网络地址;上述第一时间戳则是与上述其它的中继节点建立了网络连接的共识节点在广播发送该latency-detect消息时的时刻对应的时间戳。
由于该latency-detect消息是经过其它的中继节点中转过的latency-detect消息,此时该latency-detect消息还包含上述其它的中继节点在发送该latency-detect消息时添加在该latency-detect消息中的上述其它的中继节点的第三网络地址和上述其它的中继节点在发送该latency-detect消息的第三时刻对应的第三时间戳。
在这种情况下,与该目标中继节点建立了网络连接的普通节点,可以基于接收到的该latency-detect消息中包含的各个时间戳,计算将上述第二网络地址和上述第三网络地址作为中转(即中转至少两次),与第一网络地址之间的数据传输路径的数据传输延迟。
例如,该普通节点可以先计算接收到该latency-detect消息的时刻对应的时间戳,和上述第二时间戳的差值,得到该普通节点与上述目标中继节点之间的网络连接的第一传输延迟。然后,在计算上述第二时间戳和上述第三时间戳的差值,得出上述目标中继节点和上述其它的中继节点之间的网络连接的第二传输延迟。最后,再计算上述第三时间戳和上述第一时间戳的差值,得出广播发送该latency-detect消息的共识节点和该其它的中继节点之间的网络连接的第三传输延迟。最后,将第一传输延迟、第二传输延迟和第三传输延迟相加,即可得到该普通节点与该共识节点之间的,以该目标中继节点和上述其它的中继节点作为中转的数据传输路径的总传输延迟。
请参见图4,图4是本说明书根据一示例性实施例示出的区块链网络中的数据传输延迟探测方法的流程图;其中,所述区块链网络仍然可以采用图1示出的组网框架;所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;分别与至少一个中继节点建立了网络连接的至少一个普通节点;所述方法应用于任一目标区域子网络中的任一目标普通节点;所述方法包括:
步骤402,接收与所述目标普通节点建立了网络连接的目标中继节点转发的探测消息;其中,该探测消息为所述目标中继节点接收到的,由所述共识子网络中的共识节点周期性广播发送的探测消息;所述探测消息包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;以及,所述目标中继节点在发送所述探测消息时添加在所述探测消息中的所述目标中继节点的第二网络地址和所述目标中继节点在发送探测消息的第二时刻对应的第二时间戳;
关于将该步骤的实施细节,请参照图3示出的实施例的记载,在本实施例中不再进行详述。
步骤404,基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。在本说明书中,上述目标普通节点在接收到与其建立了网络连接的目标中继节点转发的latency-detect消息之后,可以基于接收到的该latency-detect消息中包含的各个时间戳,计算将上述第二网络地址作为中转,与上述第一网络地址之间的数据传输路径的数据传输延迟。
在示出的一种实施方式中,如果上述目标中继节点转发的latency-detect消息,是与该目标中继节点建立了网络连接的共识节点周期性广播发送的latency-detect消息,此时上述第一网络地址则是与该目标中继节点建立了网络连接的共识节点的网络地址;上述第一时间戳则是与该目标中继节点建立了网络连接的共识节点在广播发送该latency-detect消息时的时刻对应的时间戳。
在这种情况下,与该目标中继节点建立了网络连接的普通节点,可以基于接收到的该latency-detect消息中包含的各个时间戳,计算将上述第二网络地址作为中转,与上述第一网络地址之间的数据传输路径的数据传输延迟。
例如,该普通节点可以先计算接收到该latency-detect消息的时刻对应的时间戳,和上述第二时间戳的差值,得到该普通节点与上述目标中继节点之间的网络连接的第一传输延迟。然后,再计算上述第一时间戳和上述第二时间戳的差值,得出上述目标中继节点和广播发送该latency-detect消息的共识节点之间的网络连接的第二传输延迟。最后,将第一传输延迟和第二传输延迟相加,即可得到该普通节点与该共识节点之间的,以该目标中继节点作为中转的数据传输路径的总传输延迟。
在示出的另一种实施方式中,如果上述目标中继节点转发的latency-detect消息,是其它的中继节点转发的latency-detect消息;也即,由与上述其它的中继节点建立了网络连接的共识节点周期性广播发送的latency-detect消息。此时上述第一网络地址则是与上述其它的中继节点建立了网络连接的共识节点的网络地址;上述第一时间戳则是与上述其它的中继节点建立了网络连接的共识节点在广播发送该latency-detect消息时的时刻对应的时间戳。
由于该latency-detect消息是经过其它的中继节点中转过的latency-detect消息,此时该latency-detect消息还包含上述其它的中继节点在发送该latency-detect消息时添加在该latency-detect消息中的上述其它的中继节点的第三网络地址和上述其它的中继节点在发送该latency-detect消息的第三时刻对应的第三时间戳。
在这种情况下,与该目标中继节点建立了网络连接的普通节点,可以基于接收到的该latency-detect消息中包含的各个时间戳,计算将上述第二网络地址和上述第三网络地址作为中转(即中转至少两次),与第一网络地址之间的数据传输路径的数据传输延迟。
例如,该普通节点可以先计算接收到该latency-detect消息的时刻对应的时间戳,和上述第二时间戳的差值,得到该普通节点与上述目标中继节点之间的网络连接的第一传输延迟。然后,在计算上述第二时间戳和上述第三时间戳的差值,得出上述目标中继节点和上述其它的中继节点之间的网络连接的第二传输延迟。最后,再计算上述第三时间戳和上述第一时间戳的差值,得出广播发送该latency-detect消息的共识节点和该其它的中继节点之间的网络连接的第三传输延迟。最后,将第一传输延迟、第二传输延迟和第三传输延迟相加,即可得到该普通节点与该共识节点之间的,以该目标中继节点和上述其它的中继节点作为中转的数据传输路径的总传输延迟。
在示出的一种实施方式中,如前所述,各个zone的各个普通节点,还可以分别与其所属的zone对应的邻居zone中的至少一个中继节点建立网络连接;比如,在一个例子中,各个zone的各个普通节点,还可以分别与其所属的zone对应的邻居zone中的所有中继节点建立全连接。
在这种情况下,上述步骤402中提到的目标中继节点,也可以是指该目标普通节点所属的zone的邻居zone中的其它的中继节点,此时该目标普通节点接收到的latency-detect消息,可以是该目标普通节点所属的zone的邻居zone中与该目标普通节点建立了网络连接的目标中继节点转发的,由与该目标中继节点建立了网络连接的共识节点周期性广播发送的latency-detect消息。上述目标中继节点基于该latency-detect消息中的各个时间戳,也可以计算出与邻居zone中的共识节点之间,以上述目标中继节点作为中转的数据传输路径的数据传输延迟。
通过上述计算,最终上述目标普通节点可以得到,将与其建立了网络连接的各个中继节点的网络地址作为中转,与共识子网络中的各个共识节点之间的数据传输路径的数据传输延迟。
上述目标普通节点在计算出将与其建立了网络连接的各个中继节点的网络地址作为中转,与共识子网络中的各个共识节点的网络地址之间的各个数据传输路径的数据延迟之后,可以进一步确定上述各个数据传输路径中数据传输延迟最小的目标数据传输路径;然后,可以订阅该目标数据传输路径上作为中转的目标中继节点转发的共识数据,并从该目标中继节点处接收所述共识数据。
例如,在示出的一种实施方式中,上述区块链网络支持的用于在各个节点之间进行交互的消息类型,还可以包括如下示出的消息:
Subscribe消息(记为第五消息)用于向消息接收节点订阅数据分片。
其中,各个zone中的中继节点可以通过向共识子网络中的共识节点发送Subscribe消息,来订阅该共识节点负责分发的共识数据。而该共识节点在收到该中继节点发送的Subscribe消息后,可以响应于该Subscribe消息,建立该中继节点与该共识节点负责分发的共识数据之间的订阅关系。
相应的,各个zone中的普通节点可以通过向各个zone中的中继节点发送Subscribe消息,来订阅该中继节点负责分发的共识数据。而该中继节点在收到该普通节点发送的Subscribe消息后,可以响应于该Subscribe消息,建立该普通节点与该中继节点负责分发的共识数据之间的订阅关系。
在这种情况下,上述目标普通节点在订阅上述目标数据传输路径上作为中转的目标中继节点转发的共识数据时,具体可以向该目标中继节点发送Subscribe消息。而该目标中继节点在收到该Subscribe消息后,可以响应于该Subscribe消息,建立该目标普通节点与该目标中继节点转发的所述共识数据之间的订阅关系。后续,该目标中继节点可以基于该订阅关系将共识数据转发给该目标普通节点。
通过这种方式,可以选择一个数据传输延迟最小的数据传输路径,来接收共识层的共识数据,可以有效的降低共识节点在分发共识数据时的数据传输延迟。
与前述方法的实施例相对应,本说明书还提供了区块链网络、节点设备以及存储介质的实施例。
本说明书还提供一种区块链网络实施例,该区块链网络可以包括由多个共识节点构成的共识子网络;以及分别对应不同的地理位置的至少一个区域子网络;
其中,所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;
所述共识节点,在所述区块链网络中周期性广播发送探测消息;其中,所述探测消息中包含该共识节点的第一网络地址和该共识节点发送所述探测消息的第一时刻对应的第一时间戳;
所述中继节点,接收所述探测消息,并响应于接收到的所述探测消息,在所述探测消息中添加该中继节点的第二网络地址和该中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续广播发送至与该中继节点建立了网络连接的其它的各个非共识节点;
与所述中继节点建立了网络连接的普通节点,基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
需要说明的是,以上实施例的实施细节,可以参照如图2和3所示的实施例,在本实施例中不再进行赘述。
图5是一示例性实施例提供的一种电子设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑模块,也可以是硬件或逻辑器件。
如图6所示,图6是本说明书根据一示例性实施例示出的一种区块链网络中的节点设备的框图,该节点设备60可以应用于如图5所示的电子设备中,以实现本说明书的技术方案。所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;所述节点设备60包括:
第一接收模块601,接收所述共识子网络中的共识节点周期性广播发送的探测消息;其中,所述探测消息中包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;
发送模块602,响应于所述探测消息,在所述探测消息中添加所述目标中继节点的第二网络地址和所述目标中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续转发至与所述目标中继节点建立了网络连接的其它的各个非共识节点,以使所述其它的各个非共识节点中的普通节点基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
上述装置60的各个模块的具体细节已经在之前描述的方法流程中进行了详细的描述,因此此处不再赘述。
如图7所示,图7是本说明书根据一示例性实施例示出的另一种区块链网络中的节点设备的框图,该节点设备70也可以应用于如图6所示的电子设备中,以实现本说明书的技术方案。所述区块链网络中包括共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述共识子网络包括用于向所述区域子网络中的非共识节点分发与共识数据对应的数据分片的若干共识节点;所述区域子网络中的非共识节点包括至少一中继节点;以及,与所述中继节点建立了网络连接的至少一普通节点;其中,所述区域子网络中的各个中继节点之间建立了全连接;所述若干共识节点分别与各个区域子网络中的至少一个中继节点建立了网络连接;所述节点设备70包括:
第二接收模块701,接收与所述目标普通节点建立了网络连接的目标中继节点转发的探测消息;其中,该探测消息为所述目标中继节点接收到的,由所述共识子网络中的共识节点周期性广播发送的探测消息;所述探测消息包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;以及,所述目标中继节点在发送所述探测消息时添加在所述探测消息中的所述目标中继节点的第二网络地址和所述目标中继节点在发送探测消息的第二时刻对应的第二时间戳;
计算模块702,基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
上述装置70的各个模块的具体细节已经在之前描述的方法流程中进行了详细的描述,因此此处不再赘述。
相应的,本说明书还提供一种电子设备,所述电子设备包括有处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现之前描述的全部的方法流程中的步骤。
相应的,本说明书还提供一种计算机可读存储介质,其上存储有可执行的指令;其中,该指令被处理器执行时,实现之前描述的全部的方法流程中的步骤。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的***、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (34)
1.一种区块链网络中的数据传输延迟探测方法,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;所述方法应用于任一目标区域子网络中的任一目标中继节点;包括:
接收所述共识子网络中的共识节点周期性广播发送的探测消息;其中,所述探测消息中包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;
响应于所述探测消息,在所述探测消息中添加所述目标中继节点的第二网络地址和所述目标中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续转发至与所述目标中继节点建立了网络连接的其它的各个非共识节点,以使所述其它的各个非共识节点中的普通节点基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
2.如权利要求1所述的方法,所述探测消息为与所述目标中继节点建立了网络连接的共识节点周期性广播发送的探测消息;或者,
所述探测消息为所述其它的中继节点转发的,由与所述其它的中继节点建立了网络连接的共识节点周期性广播发送的探测消息。
3.如权利要求2所述的方法,所述其它的中继节点包括所述目标区域子网络中的其它的中继节点;或者,与所述目标区域子网络对应的邻居区域子网络中的其它的中继节点。
4.如权利要求3所述的方法,如果所述探测消息为所述其它的中继节点转发的探测消息,则所述探测消息中还包含所述其它的中继节点在发送所述探测消息时添加在所述探测消息中的所述其它的中继节点的第三网络地址和所述其它的中继节点在发送所述探测消息的第三时刻对应的第三时间戳;
将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续广播发送至与所述目标中继节点建立了网络连接的其它的各个非共识节点,以使所述其它的各个非共识节点中的普通节点基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟,包括:
将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续广播发送至与所述目标中继节点建立了网络连接的其它的各个非共识节点,以使所述其它的各个非共识节点中的普通节点基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址和所述第三网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
5.如权利要求1所述的方法,所述区域子网络中的各个中继节点,分别与所述多个共识节点中的至少N个共识节点分别建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数。
6.如权利要求5所述的方法,所述区域子网络中的各个中继节点,分别与所述多个共识节点之间建立了全连接;相应的,所述N的取值为所述多个共识节点的总数量。
7.如权利要求5所述的方法,所述区域子网络中的各个中继节点之间建立了全连接;以及,所述区域子网络中的各个普通节点,分别与该区域子网络中的至少M个中继节点分别建立了网络连接;其中,所述M为预先计算出的与所述区域子网络中的中继节点对应的鲁棒性阈值。
8.如权利要求7所述的方法,所述区域子网络中的各个普通节点,分别与该区域子网络中的各个中继节点之间建立了全连接;其中,所述M的取值为所述区域子网络中的中继节点的总数量。
9.如权利要求1所述的方法,将所述探测消息继续转发至所述目标区域子网络中与所述目标中继节点建立了网络连接的其它的各个非共识节点,包括:
确定与所述目标中继节点建立了网络连接的其它的各个非共识节点的网络地址中,除了所述探测消息中包含的网络地址以外的其它网络地址;
将所述探测消息继续转发至与所述其它网络地址对应的各个非共识节点。
10.如权利要求7所述的方法,
所述M的取值采用如下的公式进行计算:
(pcrash)M≤probust
其中,pcrash表示所述目标区域子网络中任意一个非共识节点宕机的概率;probust表示所述目标区域子网络中的中继节点全部发生宕机的概率对应的鲁棒性阈值。
11.如权利要求10所述的方法,所述pcrash用如下的公式进行计算:
其中,T表示所述区块链网络中的节点的总数量;pbyzantine表示所述目标区域子网络中的任意一个拜占庭节点宕机的概率;phonest表示所述目标区域子网络中的任意一个诚实节点发生宕机的概率。
12.如权利要求11所述的方法,所述目标区域子网络中的拜占庭节点发生宕机的概率被设置为1;所述pcrash用如下的公式进行计算:
相应的,所述M的取值采用如下的公式进行计算:
13.如权利要求1所述的方法,所述多个非共识节点为不参与共识的全节点。
14.一种区块链网络中的数据传输延迟探测方法,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与至少一个中继节点建立了网络连接的至少一个普通节点;所述方法应用于任一目标区域子网络中的任一目标普通节点;包括:
接收与所述目标普通节点建立了网络连接的目标中继节点转发的探测消息;其中,该探测消息为所述目标中继节点接收到的,由所述共识子网络中的共识节点周期性广播发送的探测消息;所述探测消息包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;以及,所述目标中继节点在发送所述探测消息时添加在所述探测消息中的所述目标中继节点的第二网络地址和所述目标中继节点在发送探测消息的第二时刻对应的第二时间戳;
基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
15.如权利要求14所述的方法,所述探测消息为与所述目标中继节点建立了网络连接的共识节点周期性广播发送的探测消息;或者,
所述探测消息为所述目标中继节点转发的,由与其它的中继节点建立了网络连接的共识节点周期性广播发送的探测消息。
16.如权利要求15所述的方法,所述其它的中继节点包括所述目标区域子网络中的其它的中继节点;或者,与所述目标区域子网络对应的邻居区域子网络中的其它的中继节点。
17.如权利要求15所述的方法,如果所述探测消息为所述目标中继节点转发的,与其它的中继节点建立了网络连接的共识节点周期性广播发送的探测消息,则所述探测消息中还包含所述其它的中继节点在发送所述探测消息时添加在所述探测消息中的所述其它的中继节点的第三网络地址和所述其它的中继节点在发送探测消息的第三时刻对应的第三时间戳;
基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟,包括:
基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址和所述第三网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
18.如权利要求15所述的方法,所述区域子网络中的各个中继节点,分别与所述多个共识节点中的至少N个共识节点分别建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数。
19.如权利要求18所述的方法,所述区域子网络中的各个中继节点,分别与所述多个共识节点之间建立了全连接;相应的,所述N的取值为所述多个共识节点的总数量。
20.如权利要求18所述的方法,所述区域子网络中的各个中继节点之间建立了全连接;以及,所述区域子网络中的各个普通节点,分别与该区域子网络中的至少M个中继节点分别建立了网络连接;其中,所述M为预先计算出的与所述区域子网络中的中继节点对应的鲁棒性阈值。
21.如权利要求20所述的方法,所述区域子网络中的各个普通节点,分别与该区域子网络中的各个中继节点之间建立了全连接。
22.如权利要求17所述的方法,所述区域子网络中的各个普通节点,分别与该区域子网络对应的邻居区域子网络中的至少一个中继节点建立了网络连接。
23.如权利要求22所述的方法,所述区域子网络中的各个普通节点,分别与该区域子网络对应的邻居区域子网络中的各个中继节点建立了全连接。
24.如权利要求20所述的方法,
所述M的取值采用如下的公式进行计算:
(pcrash)M≤probust
其中,pcrash表示所述目标区域子网络中任意一个非共识节点宕机的概率;probust表示所述目标区域子网络中的中继节点全部发生宕机的概率对应的鲁棒性阈值。
25.如权利要求24所述的方法,所述pcrash用如下的公式进行计算:
其中,T表示所述区块链网络中的节点的总数量;pbyzantine表示所述目标区域子网络中的任意一个拜占庭节点宕机的概率;phonest表示所述目标区域子网络中的任意一个诚实节点发生宕机的概率。
26.如权利要求25所述的方法,所述目标区域子网络中的拜占庭节点发生宕机的概率被设置为1;所述pcrash用如下的公式进行计算:
相应的,所述M的取值采用如下的公式进行计算:
27.如权利要求14所述的方法,所述方法还包括:
在计算出将与所述目标普通节点建立了网络连接的各个中继节点的网络地址作为中转,与所述共识子网络中的各个共识节点的网络地址之间的各个数据传输路径的数据延迟之后,确定所述各个数据传输路径中数据传输延迟最小的目标数据传输路径;
订阅所述目标数据传输路径上作为中转的目标中继节点转发的共识数据,并从所述目标中继节点处接收所述共识数据;其中,所述共识数据为与该目标中继节点建立了网络连接的共识节点分发至目标中继节点的,由所述共识子网络中的各个共识节点共识通过的共识数据。
28.如权利要求27所述的方法,所述区块链网络中的各个节点之间交互的消息还包括用于向消息接收节点订阅数据分片的第五消息;
订阅所述目标数据传输路径上作为中转的目标中继节点转发的共识数据,包括:
向所述目标数据传输路径上作为中转的目标中继节点发送所述第五消息,以使所述目标中继节点响应于所述第五消息,建立所述目标普通节点与所述目标中继节点转发的所述共识数据之间的订阅关系,以使所述目标中继节点基于所述订阅关系将所述共识数据转发给所述目标普通节点。
29.如权利要求15所述的方法,所述多个非共识节点为不参与共识的全节点。
30.一种区块链***,包括:由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;
所述共识节点,在所述区块链网络中周期性广播发送探测消息;其中,所述探测消息中包含该共识节点的第一网络地址和该共识节点发送所述探测消息的第一时刻对应的第一时间戳;
所述中继节点,接收所述探测消息,并响应于接收到的所述探测消息,在所述探测消息中添加该中继节点的第二网络地址和该中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续广播发送至与该中继节点建立了网络连接的其它的各个非共识节点;
与所述中继节点建立了网络连接的普通节点,基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
31.一种区块链网络中的节点设备,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与所述至少一个中继节点建立了网络连接的至少一个普通节点;包括:
第一接收模块,接收所述共识子网络中的共识节点周期性广播发送的探测消息;其中,所述探测消息中包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;
发送模块,响应于所述探测消息,在所述探测消息中添加目标中继节点的第二网络地址和所述目标中继节点发送所述探测消息的第二时刻对应的第二时间戳,并将添加了所述第二网络地址和所述第二时间戳的所述探测消息,继续转发至与所述目标中继节点建立了网络连接的其它的各个非共识节点,以使所述其它的各个非共识节点中的普通节点基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
32.一种区块链网络中的节点设备,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括分别与共识子网络中的至少一个共识节点建立了网络连接的至少一个中继节点;以及,分别与至少一个中继节点建立了网络连接的至少一个普通节点;包括:
第二接收模块,接收与目标普通节点建立了网络连接的目标中继节点转发的探测消息;其中,该探测消息为所述目标中继节点接收到的,由所述共识子网络中的共识节点周期性广播发送的探测消息;所述探测消息包含所述共识节点的第一网络地址和所述共识节点发送所述探测消息的第一时刻对应的第一时间戳;以及,所述目标中继节点在发送所述探测消息时添加在所述探测消息中的所述目标中继节点的第二网络地址和所述目标中继节点在发送探测消息的第二时刻对应的第二时间戳;
计算模块,基于接收到的所述探测消息中包含的各个时间戳,计算将所述第二网络地址作为中转,与所述第一网络地址之间的数据传输路径的数据传输延迟。
33.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至29任一项所述的方法。
34.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至29任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735064.7A CN116192692B (zh) | 2022-12-30 | 2022-12-30 | 一种区块链网络中的数据传输延迟探测方法和区块链*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735064.7A CN116192692B (zh) | 2022-12-30 | 2022-12-30 | 一种区块链网络中的数据传输延迟探测方法和区块链*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116192692A CN116192692A (zh) | 2023-05-30 |
CN116192692B true CN116192692B (zh) | 2024-06-14 |
Family
ID=86445425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211735064.7A Active CN116192692B (zh) | 2022-12-30 | 2022-12-30 | 一种区块链网络中的数据传输延迟探测方法和区块链*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192692B (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430064B (zh) * | 2017-03-30 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 区块链***、消息处理方法及存储介质 |
US10972479B2 (en) * | 2018-08-02 | 2021-04-06 | Balanced Media Technology, LLC | Task completion using a blockchain network |
US20200394183A1 (en) * | 2019-06-12 | 2020-12-17 | Subramanya R. Jois | System and method of executing, confirming and storing a transaction in a serverless decentralized node network |
CN110602096B (zh) * | 2019-09-12 | 2021-07-13 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据处理方法、装置、存储介质和设备 |
CN112015811B (zh) * | 2020-03-16 | 2024-06-18 | 支付宝(杭州)信息技术有限公司 | 用于区块链***的节点管理的方法、节点和计算设备 |
CN111447290B (zh) * | 2020-06-12 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 区块链网络中的通信方法、业务数据传输方法 |
CN113079081B (zh) * | 2020-09-25 | 2022-08-02 | 支付宝(杭州)信息技术有限公司 | 消息传输方法及装置 |
CN112615905B (zh) * | 2020-12-03 | 2022-09-20 | 广州智链未来科技有限公司 | 区块链分片的调度方法、装置、设备及存储介质 |
CN113872828B (zh) * | 2021-09-27 | 2022-12-30 | 深圳前海微众银行股份有限公司 | 区块链预言机状态监控方法 |
CN114301828A (zh) * | 2021-12-31 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 一种跨子网交互方法、装置、电子设备和存储介质 |
CN114285755B (zh) * | 2021-12-31 | 2024-06-28 | 支付宝(杭州)信息技术有限公司 | 一种跨子网交互方法、装置、电子设备和存储介质 |
CN114513510A (zh) * | 2022-01-19 | 2022-05-17 | 贵阳信息技术研究院 | 一种面向许可链的分布式跨链事务中继***及其通信方法 |
-
2022
- 2022-12-30 CN CN202211735064.7A patent/CN116192692B/zh active Active
Non-Patent Citations (2)
Title |
---|
基于区块链优化的物联网设备安全管理研究;杨宏志;《 中国优秀硕士论文电子期刊网》;20210815;全文 * |
基于区块链的数据溯源研究;张力;《 中国优秀硕士论文电子期刊网》;20190515;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116192692A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3975507B1 (en) | Block synchronization methods and apparatuses | |
EP3975506B1 (en) | Methods and apparatuses for transmitting messages | |
CN111934999B (zh) | 消息传输方法及装置 | |
CN113452592B (zh) | 混合云架构下的跨云数据访问方法及装置 | |
CN111935314B (zh) | 区块链***、消息传输方法及装置 | |
US12010164B2 (en) | System for providing exact communication delay guarantee of request response for distributed service | |
CN116192692B (zh) | 一种区块链网络中的数据传输延迟探测方法和区块链*** | |
WO2023124743A1 (zh) | 区块同步 | |
CN116192891A (zh) | 一种区块链网络的组网方法、区块链网络和节点设备 | |
CN112491935A (zh) | 一种用于区块链的水波式广播方法及*** | |
CN116032925A (zh) | 一种区块链网络的组网方法、区块链网络和节点设备 | |
CN116170464A (zh) | 一种区块链网络中的共识数据分发方法和区块链网络 | |
CN113612732B (zh) | 一种资源调用方法、装置和多方安全计算*** | |
CN114422526A (zh) | 一种区块同步方法、装置、电子设备和存储介质 | |
US8437274B2 (en) | Discovery of disconnected components in a distributed communication network | |
WO2019242459A1 (zh) | 节点切换方法、网络节点、网络***及存储介质 | |
US20230012242A1 (en) | Intelligent route selection for low latency services | |
Nidito et al. | Fault-tolerant and load balancing localization of services in wireless sensor networks | |
Chen et al. | Elasto: Dynamic, efficient, and robust maintenance of low fan-out overlays for topic-based publish/subscribe under churn | |
CN102148847A (zh) | 基于reload的客户端接入对等网络的方法和*** | |
Deshmukh | Energy Efficient Content Sharing in Smart Phones using Wi-Fi Networks |
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 |