CN116192891A - 一种区块链网络的组网方法、区块链网络和节点设备 - Google Patents
一种区块链网络的组网方法、区块链网络和节点设备 Download PDFInfo
- Publication number
- CN116192891A CN116192891A CN202211739524.3A CN202211739524A CN116192891A CN 116192891 A CN116192891 A CN 116192891A CN 202211739524 A CN202211739524 A CN 202211739524A CN 116192891 A CN116192891 A CN 116192891A
- Authority
- CN
- China
- Prior art keywords
- network
- node
- consensus
- nodes
- relay
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000006855 networking Effects 0.000 title claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 17
- 230000000977 initiatory effect Effects 0.000 claims abstract description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 241000854291 Dianthus carthusianorum Species 0.000 description 5
- 238000010276 construction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000006870 function 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
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种区块链网络的组网方法,包括:确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;如果是,作为中继节点与所述共识子网络中的至少N个共识节点分别建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数;如果否,作为普通节点与所述目标区域子网络中的至少M个中继节点分别建立网络连接;其中,所述M为预先计算出的与所述目标区域子网络中的中继节点对应的鲁棒性阈值。
Description
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种区块链网络的组网方法、区块链网络和节点设备。
背景技术
区块链是一个去中心化的、无需信任第三方的分布式账本。区块链技术具有多方写入、公开透明、不可篡改等特点。区块链按照准入机制的不同,可以分为公链、联盟链以及私有链。对于公链来说,任何的节点都可以加入区块链网络。而联盟链具备访问控制功能,只有被授权的节点才可以加入联盟链网络,因此往往比公链网络更安全和高效,主要用于企业或机构间的相互合作。然而,在实际应用中,当区块链节点规模逐渐增加时,现有的区块链的网络拓扑组织方式,可能导致数据分发的带宽利用率低,数据分发速度慢,难以满足大规模区块链网络下高效传输数据的要求。
发明内容
本说明书提出一种区块链网络的组网方法,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括从所述共识节点处接收共识数据的至少一中继节点;以及,从所述中继节点处接收所述中继节点转发的共识数据的至少一普通节点;所述方法应用于任一待加入所述区块链网络的网络设备;包括:
确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;
响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;如果是,作为中继节点与所述共识子网络中的共识节点建立网络连接;如果否,作为普通节点与所述目标区域子网络中的中继节点建立网络连接。
本说明书还提出一种区块链网络,包括:由多个共识节点构成的共识子网络;以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括从所述共识节点处接收共识数据的至少一中继节点;以及,从所述中继节点处接收所述中继节点转发的共识数据的至少一普通节点;
其中,待加入所述区块链网络的网络设备通过执行如下的注册过程加入所述区块链网络:
确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;
响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;如果是,作为中继节点与所述共识子网络中的共识节点建立网络连接;如果否,作为普通节点与所述目标区域子网络中的中继节点建立网络连接。
本说明书还提出一种区块链网络中的节点设备,其中所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括从所述共识节点处接收共识数据的至少一中继节点;以及,从所述中继节点处接收所述中继节点转发的共识数据的至少一普通节点;所述方法应用于任一待加入所述区块链网络的网络设备;包括:
注册模块,确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;
连接模块,响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;如果是,作为中继节点与所述共识子网络中的共识节点建立网络连接;如果否,作为普通节点与所述目标区域子网络中的中继节点建立网络连接。
上述实施例中,一方面,通过预先将区块链网络划分成共识子网络和分别对应不同的地理位置的至少一个区域子网络,使得一个网络设备在作为区块链节点加入区块链网络时,可以针对其所在的地理位置对应的目标区域子网络就近的发起注册,并作为区块链节点加入到该目标区域子网络。由于同一个区域子网络中的节点之间在物理拓扑上更加靠近,拥有更低的数据传输延迟,这使得同一个区域子网络中的节点,可以更快地将待共识的数据传输至共识节点,也可以更快收到共识节点分发的共识完成的共识数据。
另一方面,通过将区域子网络中的非共识节点,进一步划分成从共识节点处接收共识数据的中继节点;以及,从中继节点处接收中继节点转发的共识数据的普通节点,使得共识子网络中的共识节点在向各个区域子网络中的非共识节点分发共识数据时,可以将共识数据分发给中继节点,再由中继节点转发到各个普通节点,而不再需要向各个非共识节点分别分发共识数据,从而可以降低区块链网络的共识层在分发共识数据时的带宽负载,提升共识效率。
第三方面,由于网络设备在满足成为中继节点的条件时,可以作为中继节点与共识子网络中的至少N个共识节点分别建立网络连接,其中N的取值大于区块链网络的最大容错节点数;并且,网络设备在不满足成为中继节点的条件时,网络也可以作为普通节点与目标区域子网络中的至少M个中继节点分别建立网络连接;其中,M为预先计算出的与目标区域子网络中的中继节点对应的鲁棒性阈值;因此,通过这种方式,使得网络设备无论是作为中继节点还是普通节点,与其建立了网络连接的共识节点或者中继节点,对于节点宕机的异常情况都能具有一定的容错空间,从而可以提升整个网络的鲁棒性。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书根据一示例性实施例示出的区块链网络的组网架构图;
图2是本说明书根据一示例性实施例示出的一种区块链网络的组网方法的流程图;
图3是本说明书根据一示例性实施例示出的一种电子设备的示意结构图;
图4是本说明书根据一示例性实施例示出的一种区块链网络中的节点设备的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
在相关技术中,目前的区块链网络在组网时所采用的网络拓扑以及组网方式主要有以下的三种方式。
1)基于直连式网络拓扑的组网方式
在采用直连式网络拓扑进行组网时,共识层的共识节点之间可以进行全连接,其他的新加入的非共识节点(全节点)可以直接与共识节点建立网络连接,共识节点再通过该网络连接把共识结果传输给非共识节点。
采用这种网络拓扑在小规模的组网场景下简单实用,每个共识节点的带宽,除了要用于数据共识之外,还要用于将共识结果发送给与共识节点建立了网络连接的非共识节点。随着网络中新加入节点数量越来越多,共识节点需要保持的网络连接越来越多,需要由共识节点发送的数据也会越来越多。
而且,由于共识节点向外发送数据时的带宽耗费通常与区块链网络中与共识节点建立网络连接的节点数量正相关,因此与共识节点建立了网络连接的非共识节点数量越多,共识节点的上行带宽负载就越大。当与共识节点建立了网络连接的非共识节点的数量较小的时候,每个非共识节点都能很快的收到最新的共识结果。
然而,一旦与共识节点建立网络连接的节点的数量达到上限,并超出共识节点的带宽能力时,会导致共识层的带宽负载也会急剧降低,这就可能会导致数据分发效率下降,共识时间增加,吞吐量降低等等,最终削弱了整个系统的共识能力。
可见,采用这种直连式网络拓扑的组网方式,通常不具有良好的扩展性,难以应对大规模节点的区块链网络的场景。
2)基于随机式的组网方式
在采用随机式的组网方式进行组网时,共识层的共识节点之间仍然可以进行全连接,新加入的非共识节点,可以优先与共识节点建立网络连接。而当与共识节点建立网络连接的节点的数量达到上限,此时新加入的节点则可以从与共识节点已建立了网络连接的节点中随机选择一个节点作为中继节点,并与该中继节点建立网络连接,以基于该网络连接从该中继节点处接收共识数据。
采用随机式的组网方式,虽然能够有效降低共识节点向其它的非共识节点发送数据的带宽负载,但是由于非共识节点之间采用的是随机连接,并没有考虑节点之间的物理拓扑关系,一个节点在逻辑距离上的邻居很可能在物理拓扑上具有很大的延迟。因此,采用这种组网方式,仍然可能会增加数据的传输时延,让整个网络的数据传输延迟波动较大。
3)基于簇形网络拓扑的组网方式
在采用簇形网络拓扑进行组网时,一个共识节点可以作为一个簇头节点,管理很多子节点。每个共识节点将数据分发给其子节点,子节点之间再互相转发数据。
然而,采用这种组网方式,网络的鲁棒性较弱。每个共识节点作为一个簇头节点,共识结果经过簇头分发到所属的簇中的各个子节点,而一旦簇头节点宕机,一个簇中的其他节点则无法及时收到数据,只能通过其他共识节点或者其他全节点获取数据。
可见,采用基于簇形网络拓扑的组网方式,会导致区块链网络的鲁棒性比较差,簇形网络的健壮性不足。
综上所述,从传输延迟、可扩展性、健壮性要求来看,目前区块链在进行组网时所采用的组网方式,均无法满足大规模节点的区块链组网对数据传输效率和性能上的需求。
有鉴于此,本说明书提出一种适用于大规模节点的区块链组网框架。
在这种组网框架下,可以将区块链网络划分成由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;
其中,上述区域子网络可以包括多个非共识节点;上述多个非共识节点可以包括从共识节点处接收共识数据的至少一中继节点;以及,从中继节点处接收该中继节点转发的共识数据的至少一普通节点。
当任一待加入区块链网络的网络设备,在加入上述区块链网络时,可以先确定与该网络设备所在的地理位置对应的目标区域子网络,然后可以发起针对该目标区域子网络的注册。
当针对该目标区域子网络注册完成后,可以进一步确定该网络设备是否满足成为中继节点的条件;如果是,可以作为中继节点与共识子网络中的至少N个共识节点建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数;如果否,可以作为普通节点与目标区域子网络中的至少M个中继节点建立网络连接;其中,所述M为预先计算出的与所述目标区域子网络中的中继节点对应的鲁棒性阈值。
在以上实施例中,一方面,通过预先将区块链网络划分成共识子网络和分别对应不同的地理位置的至少一个区域子网络,使得一个网络设备在作为区块链节点加入区块链网络时,可以针对其所在的地理位置对应的目标区域子网络就近的发起注册,并作为区块链节点加入到该目标区域子网络。由于同一个区域子网络中的节点之间在物理拓扑上更加靠近,拥有更低的数据传输延迟,这使得同一个区域子网络中的节点,可以更快地将待共识的数据传输至共识节点,也可以更快收到共识节点分发的共识完成的共识数据。
另一方面,通过将区域子网络中的非共识节点,进一步划分成从共识节点处接收共识数据的中继节点;以及,从中继节点处接收中继节点转发的共识数据的普通节点,使得共识子网络中的共识节点在向各个区域子网络中的非共识节点分发共识数据时,可以将共识数据分发给中继节点,再由中继节点转发到各个普通节点,而不再需要向各个非共识节点分别分发共识数据,从而可以降低区块链网络的共识层在分发共识数据时的带宽负载,提升共识效率。
第三方面,由于网络设备在满足成为中继节点的条件时,可以作为中继节点与共识子网络中的至少N个共识节点分别建立网络连接,其中N的取值大于区块链网络的最大容错节点数;并且,网络设备在不满足成为中继节点的条件时,网络也可以作为普通节点与目标区域子网络中的至少M个中继节点分别建立网络连接;其中,M为预先计算出的与目标区域子网络中的中继节点对应的鲁棒性阈值;因此,通过这种方式,使得网络设备无论是作为中继节点还是普通节点,与其建立了网络连接的共识节点或者中继节点,对于节点宕机的异常情况都能具有一定的容错空间,从而可以提升整个网络的鲁棒性。
请参见图1,图1是本说明书根据一示例性实施例示出的区块链网络的组网架构图。
如图1所示,上述组网架构中可以包括以下的几个部分:
1:共识子网络
共识子网络,也可以称之为共识层的内部网络。在共识子网络中,可以包括多个共识节点,共识节点之间可以相互建立网络连接,用于数据共识过程中的数据交换。
2:至少一个区域子网络
在上述组网架构中,可以将区块链网络中除了共识层以外的网络划分成至少一个区域子网络。
如图1所示,每一个区域子网络可以称之为一个zone,每一个zone可以包含多个非共识节点。其中,所谓非共识节点通常是指区块链网络中不参与共识的全节点。不同的zone可以分别对应不同的地理位置。
需要说明的是,区块链网络中包含的区域子网络的数量,通常由区块链网络规模决定,与共识层参与共识的共识节点的数量无关。
为了降低共识节点向各个zone分发共识数据时的带宽的压力,每个共识节点可以只向每个zone中的部分节点发送数据,我们称这部分节点为中继节点。而中继节点再把来自共识层的共识节点分发的共识数据转发给zone内的其他节点,这些经过从中继节点处接收中继节点转发的共识数据的节点,我们称为普通节点。
请继续参见图1,对于每一个区域子网络中的非共识节点,可以包含至少一个中继节点和至少一个普通节点。
其中,上述中继节点,可以与共识层的共识节点建立网络连接,用于从共识层的共识节点处接收共识数据。
上述普通节点,可以与上述中继节点建立网络连接,用于从上述中继节点处接收中继节点转发的共识数据。
例如,在实际应用中,上述普通节点可以将客户端发送的交易,通过与中继节点之间的网络连接发送给中继节点,再由该中继节点通过与共识层的共识节点之间的网络连接,将该交易提交给共识层中的共识节点进行共识处理。
相应的,共识层的共识节点,在对各个普通节点提交的交易共识通过后,可以基于这些共识通过的交易生成区块,再通过与中继节点之间的网络连接,将该区块发送给中继节点,再由该中继节点基于与普通节点之间的网络连接,将该区块进一步发送给该普通节点。
在基于上述组网架构进行区块链组网时,由于共识层的共识节点之间通常采用的是全连接的形式,而且共识节点之间的数据交互过程,通常由共识协议决定;因此,在本说明书中,将详细描述共识子网络和各个zone之间的网络拓扑的构建,以及各个zone内和各个zone之间的网络拓扑的构建,而关于共识子网络的网络拓扑的构建过程,在本说明书中不再进行详述。
其中,需要说明的是,图1中的各个节点的连接关系仅为示意性的,并不用于对本说明书的技术方案做出任何形式的限定。
请参见图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,如果是,作为中继节点与所述共识子网络中的至少N个共识节点分别建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数;如果否,作为普通节点与所述目标区域子网络中的至少M个中继节点分别建立网络连接;其中,所述M为预先计算出的与所述目标区域子网络中的中继节点对应的鲁棒性阈值。
在本说明书中,如果网络设备确定自身满足成为目标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中的非共识节点(包括中继节点和普通节点),则可以是不参与共识的全节点。
与前述方法的实施例相对应,本说明书还提供了区块链网络、节点设备以及存储介质的实施例。
本说明书还提供一种区块链网络实施例,该区块链网络可以包括由多个共识节点构成的共识子网络;以及分别对应不同的地理位置的至少一个区域子网络;
其中,上述区域子网络可以包括多个非共识节点;该多个非共识节点可以包括从共识节点处接收共识数据的至少一中继节点;以及,从中继节点处接收所述中继节点转发的共识数据的至少一普通节点;
其中,待加入所述区块链网络的网络设备通过执行如下的注册过程加入所述区块链网络:
确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;
响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;如果是,作为中继节点与所述共识子网络中的至少N个共识节点分别建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数;如果否,作为普通节点与所述目标区域子网络中的至少M个中继节点分别建立网络连接;其中,所述M为预先计算出的与所述目标区域子网络中的中继节点对应的鲁棒性阈值。
需要说明的是,以上描述的注册过程的实施细节,可以参照如图2所示的实施例,在本实施例中不再进行赘述。
图3是一示例性实施例提供的一种电子设备的示意结构图。请参考图3,在硬件层面,该设备包括处理器302、内部总线304、网络接口306、内存308以及非易失性存储器310,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器302从非易失性存储器310中读取对应的计算机程序到内存308中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑模块,也可以是硬件或逻辑器件。
如图4所示,图4是本说明书根据一示例性实施例示出的一种区块链网络中的节点设备的框图,该装置可以应用于如图3所示的电子设备中,以实现本说明书的技术方案。所述区块链节点40包括:
注册模块401,确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;
连接模块402,响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;如果是,作为中继节点与所述共识子网络中的至少N个共识节点分别建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数;如果否,作为普通节点与所述目标区域子网络中的至少M个中继节点分别建立网络连接;其中,所述M为预先计算出的与所述目标区域子网络中的中继节点对应的鲁棒性阈值。
上述装置40的各个模块的具体细节已经在之前描述的方法流程中进行了详细的描述,因此此处不再赘述。
相应的,本说明书还提供一种电子设备,所述电子设备包括有处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现之前描述的全部的方法流程中的步骤。
相应的,本说明书还提供一种计算机可读存储介质,其上存储有可执行的指令;其中,该指令被处理器执行时,实现之前描述的全部的方法流程中的步骤。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (27)
1.一种区块链网络的组网方法,所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括从所述共识节点处接收共识数据的至少一中继节点;以及,从所述中继节点处接收所述中继节点转发的共识数据的至少一普通节点;所述方法应用于任一待加入所述区块链网络的网络设备;包括:
确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;
响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;
如果是,作为中继节点与所述共识子网络中的至少N个共识节点分别建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数;如果否,作为普通节点与所述目标区域子网络中的至少M个中继节点分别建立网络连接;其中,所述M为预先计算出的与所述目标区域子网络中的中继节点对应的鲁棒性阈值。
2.如权利要求1所述的方法,发起针对所述目标区域子网络的注册之前,还包括:
向区块链服务平台发起针对所述区块链网络的注册请求,以由所述区块链服务平台响应于所述注册请求针对所述网络设备进行注册处理;
响应于针对所述区块链网络的注册完成,从所述区块链服务平台处同步所述区块链网络相关的服务数据;其中,所述服务数据包括所述区块链网络中的共识节点的网络地址。
3.如权利要求1所述的方法,发起针对所述目标区域子网络的注册,包括:
构建针对所述目标区域子网络的注册交易;其中,所述注册交易包含与所述网络设备对应的网络地址;
将所述注册交易提交至所述共识子网络,由所述共识子网络中的各个共识节点对所述注册交易进行共识,并在共识通过后将所述注册交易在所述区块链上进行存储,以完成针对所述目标区域子网络的注册。
4.如权利要求1所述的方法,确定所述网络设备是否满足成为所述中继节点的条件,包括:
获取所述目标区域子网络中的中继节点的数量:
确定所述目标区域子网络中的中继节点的数量是否低于所述M;
如果是,确定所述网络设备是否满足成为所述中继节点的条件;反之,确定所述网络设备不满足成为所述中继节点的条件。
5.如权利要求4所述的方法,获取所述目标区域子网络中的中继节点的数量之前,还包括:
获取所述区块链上存储的由所述目标区域子网络中的其它非共识节点提交的注册交易,从获取到的该注册交易中获取所述目标区域子网络中的其它非共识节点对应的网络地址;
从获取到的所述目标区域子网络中的非共识节点对应的网络地址中,随机选择至少一个网络地址,并与所述至少一个网络地址对应的至少一个非共识节点分别建立网络连接。
6.如权利要求5所述的方法,所述区块链网络中的各个节点之间交互的消息包括用于询问消息接收节点对应的区域子网络中的中继节点的节点信息的第一消息;以及,用于向所述第一消息的消息发送节点返回由所述消息接收节点维护的其所在的区域子网络中的中继节点的节点信息集合的第二消息;
获取所述目标区域子网络中的中继节点的数量,包括:
向所述至少一个非共识节点分别发送所述第一消息;
获取所述至少一个非共识节点返回的所述第二消息,读取所述第二消息的消息内容中包含的由所述至少一个非共识节点维护的所述目标区域子网络中的中继节点的节点信息集合,并基于所述节点信息集合来统计所述目标区域子网络中的中继节点的数量。
7.如权利要求6所述的方法,如果所述至少一个非共识节点为多个非共识节点,则获取所述至少一个非共识节点返回的所述第二消息,并读取所述第二消息的消息内容中包含的由所述至少一个非共识节点维护的所述目标区域子网络中的中继节点的节点信息集合,并基于所述节点信息集合来统计所述目标区域子网络中的中继节点的数量,包括:
获取所述多个非共识节点返回的所述第二消息,分别读取所述多个非共识节点返回的所述第二消息的消息内容中包含的由所述多个非共识节点分别维护的所述目标区域子网络中的中继节点的节点信息集合,对读取到的节点信息集合取并集,并基于得到的并集来统计所述目标区域子网络中的中继节点的数量。
8.如权利要求2所述的方法,所述作为中继节点与所述共识子网络中的至少N个共识节点分别建立网络连接,包括:
从所述区块链网络中的各个共识节点的网络地址中随机选择至少N个网络地址;
作为中继节点与所述N个网络地址分别建立网络连接。
9.如权利要求5所述的方法,所述作为普通节点与所述目标区域子网络中的至少M个中继节点分别建立网络连接,包括:
从所述区块链网络中的各个中继节点的网络地址中随机选择至少M个网络地址;
作为普通节点与所述M个网络地址建立网络连接。
10.如权利要求9所述的方法,所述方法还包括:
在作为普通节点与所述M个中继节点中的任一目标中继节点建立网络连接时,如果与该目标中继节点建立了网络连接的普通节点的数量达到所述M,则获取该目标中继节点发送的与该目标中继节点建立了网络连接的目标普通节点的网络地址,并基于该网络地址与所述目标普通节点建立网络连接。
11.如权利要求8所述的方法,所述区块链网络中的各个节点之间交互的消息还包括用于声明消息发送节点为正常运行的中继节点的第三消息;
所述方法还包括:
在作为中继节点与所述共识子网络中的至少N个共识节点建立了网络连接之后,周期性的在所述目标区域子网络中广播发送所述第三消息;其中,所述第三消息的消息内容中包含所述网络设备作为中继节点的节点信息;以及,
接收所述目标区域子网络中的其它中继节点周期性的广播发送的所述第三消息,读取所述第三消息的消息内容中包含的所述其它中继节点的节点信息,并将读取到的节点信息添加至维护的与所述目标区域子网络中的中继节点对应的节点信息集合。
12.如权利要求11所述的方法,所述区块链网络中的各个节点之间交互的消息还包括用于声明消息发送节点以中继节点的身份退出其所属的区域子网络的第四消息;
所述方法还包括:
响应于退出所述目标区域子网络的指令,从与所述网络设备建立了网络链接的普通节点中确定作为候选中继节点的目标普通节点,并向所述目标普通节点发送所述第四消息,以触发所述目标普通节点作为新的中继节点,与所述至少N个共识节点建立网络连接;以及,与所述网络设备已经建立了网络连接的其它的普通节点分别建立网络连接。
13.如权利要求12所述的方法,从与所述网络设备建立了网络链接的普通节点中确定作为候选中继节点的目标普通节点,包括:
基于与所述网络设备建立了网络链接的各个普通节点加入所述目标区域子网络的时刻,确定所述各个普通节点最早加入所述目标区域子网络的普通节点,并将该普通节点确定为作为候选中继节点的目标普通节点。
14.如权利要求1所述的方法,所述区块链网络所采用的共识算法为拜占庭共识算法;所述区块链网络中参与共识的共识节点的数量为3f+1个;其中,所述f表示所述区块链网络容忍的拜占庭节点的数量;所述N的取值范围为(f,3f+1]。
15.如权利要求14所述的方法,
所述M的取值采用如下的公式进行计算:
(pcrash)M≤probust
其中,pcrash表示所述目标区域子网络中任意一个非共识节点宕机的概率;probust表示所述目标区域子网络中的中继节点全部发生宕机的概率对应的鲁棒性阈值。
18.如权利要求1所述的方法,所述方法还包括:
如果所述网络设备满足成为所述中继节点的条件,与所述目标区域子网络中的其它的各个中继节点的网络地址,分别建立网络连接。
19.如权利要求1所述的方法,所述方法还包括:
响应于针对所述目标区域子网络的注册完成,从所述区块链网络中的各个网络子区域中,确定与所述目标区域子网络对应的邻居区域子网络;
与所述邻居区域子网络中的至少部分中继节点的网络地址建立网络连接。
20.如权利要求1所述的方法,如果所述网络设备作为中继节点与所述共识子网络中的共识节点建立了网络连接,所述方法还包括:
通过与所述共识子网络中的共识节点之间的网络连接,接收所述共识节点发送的共识数据,并通过与所述目标区域子网络中的普通节点之间的网络连接,将所述共识数据进一步转发至所述普通节点;以及,
通过与所述目标区域子网络中的普通节点之间的网络连接,接收所述普通节点发送的交易,并通过与所述共识子网络中的共识节点之间的网络连接,将所述交易进一步提交至所述共识节点。
21.如权利要求20所述的方法,如果所述网络设备作为普通节点与所述目标区域子网络中的中继节点建立了网络连接,所述方法还包括:
接收客户端发送的交易,并通过与所述目标区域子网络中的中继节点之间的网络连接,将所述交易发送给所述中继节点,以由所述中继节点通过与所述共识子网络中的共识节点之间的网络连接,将所述交易进一步提交至所述共识节点。
22.如权利要求21所述的方法,所述多个非共识节点为不参与共识的全节点;所述客户端为与所述普通节点建立了网络连接的轻节点。
23.如权利要求1所述的方法,所述区块链包括联盟链。
24.一种区块链网络,包括:由多个共识节点构成的共识子网络;以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括从所述共识节点处接收共识数据的至少一中继节点;以及,从所述中继节点处接收所述中继节点转发的共识数据的至少一普通节点;
其中,待加入所述区块链网络的网络设备通过执行如下的注册过程加入所述区块链网络:
确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;
响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;
如果是,作为中继节点与所述共识子网络中的至少N个共识节点分别建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数;如果否,作为普通节点与所述目标区域子网络中的至少M个中继节点分别建立网络连接;其中,所述M为预先计算出的与所述目标区域子网络中的中继节点对应的鲁棒性阈值。
25.一种区块链网络中的节点设备,其中所述区块链网络中包括由多个共识节点构成的共识子网络,以及分别对应不同的地理位置的至少一个区域子网络;所述区域子网络包括多个非共识节点;所述多个非共识节点包括从所述共识节点处接收共识数据的至少一中继节点;以及,从所述中继节点处接收所述中继节点转发的共识数据的至少一普通节点;包括:
注册模块,确定与所述网络设备所在的地理位置对应的目标区域子网络,并发起针对所述目标区域子网络的注册;
连接模块,响应于针对所述目标区域子网络的注册完成,确定所述网络设备是否满足成为所述中继节点的条件;如果是,作为中继节点与所述共识子网络中的至少N个共识节点分别建立网络连接;其中,所述N的取值大于所述区块链网络的最大容错节点数;如果否,作为普通节点与所述目标区域子网络中的至少M个中继节点分别建立网络连接;其中,所述M为预先计算出的与所述目标区域子网络中的中继节点对应的鲁棒性阈值。
26.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至23任一项所述的方法。
27.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至23任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211739524.3A CN116192891A (zh) | 2022-12-30 | 2022-12-30 | 一种区块链网络的组网方法、区块链网络和节点设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211739524.3A CN116192891A (zh) | 2022-12-30 | 2022-12-30 | 一种区块链网络的组网方法、区块链网络和节点设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116192891A true CN116192891A (zh) | 2023-05-30 |
Family
ID=86443592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211739524.3A Pending CN116192891A (zh) | 2022-12-30 | 2022-12-30 | 一种区块链网络的组网方法、区块链网络和节点设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192891A (zh) |
-
2022
- 2022-12-30 CN CN202211739524.3A patent/CN116192891A/zh active Pending
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) | 混合云架构下的跨云数据访问方法及装置 | |
US11218402B2 (en) | Blockchain systems, and message transmission methods and apparatuses | |
US12010164B2 (en) | System for providing exact communication delay guarantee of request response for distributed service | |
US11329880B2 (en) | Automatic route reflector configuration system | |
CN116192692B (zh) | 一种区块链网络中的数据传输延迟探测方法和区块链系统 | |
CN116192891A (zh) | 一种区块链网络的组网方法、区块链网络和节点设备 | |
WO2023124743A1 (zh) | 区块同步 | |
CN114866560B (zh) | 区块链节点迁移的方法、装置、电子设备及可读存储介质 | |
CN116032925A (zh) | 一种区块链网络的组网方法、区块链网络和节点设备 | |
CN113612732B (zh) | 一种资源调用方法、装置和多方安全计算系统 | |
CN114338714B (zh) | 一种区块同步方法、装置、电子设备和存储介质 | |
Dragan et al. | Leader election in opportunistic networks | |
CN116170464A (zh) | 一种区块链网络中的共识数据分发方法和区块链网络 | |
CN115277864A (zh) | 路由确定方法及装置、计算机可读存储介质、终端 | |
CN114422526A (zh) | 一种区块同步方法、装置、电子设备和存储介质 | |
US20230012242A1 (en) | Intelligent route selection for low latency services | |
Soo | Towards proactive mobility-aware fog computing | |
CN103179160A (zh) | 一种负载转移方法、装置及系统 | |
CN116743765A (zh) | 区块链系统、跨链交互方法和装置 | |
Anitha et al. | Improved life of watchdog nodes in ad hoc networks | |
CN102148847A (zh) | 基于reload的客户端接入对等网络的方法和系统 | |
CN105827728A (zh) | 一种对等网络的数据连接方法 |
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 |