CN115102899B - 一种基于负载均衡的区块链节点树形分片方法 - Google Patents
一种基于负载均衡的区块链节点树形分片方法 Download PDFInfo
- Publication number
- CN115102899B CN115102899B CN202211015896.1A CN202211015896A CN115102899B CN 115102899 B CN115102899 B CN 115102899B CN 202211015896 A CN202211015896 A CN 202211015896A CN 115102899 B CN115102899 B CN 115102899B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- tree
- message
- verification
- 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 41
- 238000013467 fragmentation Methods 0.000 title claims abstract description 23
- 238000006062 fragmentation reaction Methods 0.000 title claims abstract description 23
- 238000012795 verification Methods 0.000 claims abstract description 38
- 238000001514 detection method Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 15
- 238000000638 solvent extraction Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 239000012634 fragment Substances 0.000 abstract description 20
- 238000004891 communication Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 235000012571 Ficus glomerata Nutrition 0.000 description 4
- 244000153665 Ficus glomerata Species 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 238000005304 joining Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 241000592335 Agathis australis Species 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013068 supply chain management Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及区块链技术领域,具体涉及一种基于负载均衡的区块链节点树形分片方法,根据打分函数确定最大得分的节点为群组树的根节点,并以根节点为起点,选择前多个最大得分节点作为孩子节点,随机选择一个节点,该节点广播群组树,若其他节点收到群组树消息且验证通过,则生成部分门限签名,该节点若接收到超过预设门限值个部分门限签名,则生成完整门限签名并广播给其他节点,若其他节点验证通过,则确定为有效的群组树,所有节点在同一视图下具有相同的群组树。将区块链节点划分到树形分片中,可以把网络广播、签名验证的任务分散到树形结构的不同分片中取执行,减少了节点之间消息广播和签名验证的工作量,实现了区块链系统的负载均衡。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种基于负载均衡的区块链节点树形分片方法。
背景技术
区块链是分布式数据存储、点对点传输、共识算法、加密算法等计算机技术的新型应用模式。区块链由单一的区块的形式构成,每一个区块记录了数据库在当前时刻的状态变更,所有的区块可以组合成完整的历史数据,并且为了防止区块链状态的割裂或伪造,使用hash值将区块进行链接,区块之间形成的线性顺序是不可更改的。区块链是一种防篡改可追溯的分布式数据库,由多个互相独立互不信任的节点共同维护,正是这种特殊的区块结构和运行机制使得区块链技术具备去中心化、匿名性、不可篡改、安全稳定的特性,已经与金融服务、供应链管理、法律和物联网等多个领域结合并展开应用。
共识算法是区块链技术的核心,用于使得区块链系统的多个副本之间的数据达成一致,共识算法很大程度上决定了分布式系统的性能,例如交易的吞吐量、延迟、节点的可扩展性和安全性等。根据应用场景和性能要求,区块链系统可以分为非许可区块链和许可区块链,许可区块链系统通常具有高的吞吐量和低的延迟的特性,在许多商业应用中受到欢迎。现有大多数适用于联盟区块链的共识算法通常采用单一主节点提议新的区块的网络通信模式,主节点需要与其他所有节点进行通讯,主节点的计算能力和带宽资源成为了限制系统性能的瓶颈。此外,在区块链系统共识的流程中,大多数区块链系统需要节点之间n-n通讯。在这种网状拓扑结构中,节点之间的消息传播数量和计算任务量随着节点数量的增加呈现指数上升,共识算法的性能和可扩展性随着节点数量的增加而变差。
分片技术,也就是将网络进行分割成各个不同的小组,通过一定的分配手段确保每个小组处理的是不同的交易,最终达到共同计算机同时解决高数量级交易的结果。可拓展性是区块链的一个重要性能指标,是指随着区块链网络中节点数目增加,系统对交易的处理性能也随之增长。分片技术是分布式数据库中常用来提升性能的技术方案。
分片技术可以将区块链划分为多个同时并行的子系统,每个分片相对独立的运行,从而提升吞吐量和可扩展性。目前,有学者提出了Elastico 共识算法,算法形成多个BFT委员会,将不同委员会生成的区块合并到同一链中,算法具有O(n)的消息复杂度,并且随着分片的增多具有线性的吞吐量。有学者提出了Rapid Chain算法,这是一种基于时期和委员会的共识算法,采用PoW竞争选取领导人,在每个时期会替换一部分委员会成员节点,并且将新节点随机分配到委员会中。
图1是节点网状拓扑结构图。节点网络拓扑结构也可以用于提升共识算法性能和可扩展性,许多学者开展了树形拓扑共识算法的研究工作。比如:有学者提出的ResilientDB将任务组织在不同分层中,基于通讯时间对节点进行分组,实现了通讯和带宽的负载均衡。图2是树形拓扑结构图。ByzCoin系统将节点用树形结构进行通讯,在允许拜占庭故障的情况下优化了交易的承诺和验证,提升了性能,但是树形结构带来了比较高的通讯延迟。有学者提出了Kauri共识算法,这是一种树形拓扑结构的共识算法,该算法提出使用传播聚合树来搜集和验证投票,但是如何高效构建节点的树形拓扑,使得节点故障时可以快速重配置树形拓扑仍然是需要解决的问题。有学者提出了OmniLedger共识算法将节点划分到树形拓扑中,OmniLedger由一条身份链以及多条子链(shard)构成,每个分片的共识采用PBFT算法,但是不同分片可能存在数据不一致的问题。
相比于节点之间n-n广播通讯的网状拓扑结构,树形结构可以减少消息之间消息通讯的数量,每个节点只需要与孩子节点或者双亲节点进行通讯,树形结构将节点之间数据共识的任务分配到了不同孩子节点进行,实现了网络消息和签名验证的负载均衡,降低主节点计算资源和网络资源瓶颈对系统可扩展性的影响。然而树形结构中节点只与双亲节点或者孩子节点通讯,这为节点之间的数据不一致性带来了风险。此外,如何将合理的节点划分到树形结构中,使得系统具有较高的吞吐量,并且实现树形结构的快速重新构建也是需要解决的问题。树形结构还会带来额外的通讯延迟,相比于网状拓扑结构,树形分片结构带来的额外消息延迟会对系统吞吐量产生负面的影响。
现有大多数区块链共识算法需要一个主节点与其他所有节点进行通讯,接收和验证其他所有节点的投票并且广播结果。随着节点数量的增多,主节点的计算资源和网络资源成为了系统性能的瓶颈,这限制了区块链系统的可扩展性。虽然也有一些算法提出使用树形结构实现节点之间的通讯,但是如何综合考虑网络、计算资源等多种因素将节点划分到树形分片结构,使得系统具有局部最优的效率仍然是需要解决的问题。
发明内容
有鉴于此,为了解决上述技术问题,本发明提供了一种基于负载均衡的区块链节点树形分片方法。
一种基于负载均衡的区块链节点树形分片方法,包括:
对节点集合中的各节点进行编号,设定某一个节点为第一节点,设定比所述第一节点的编号大的节点为第二节点,所述第一节点与第二节点进行连接请求流程;
对于满足连接请求流程的第一节点,计算第一节点与对应的所有第二节点的打分函数,对各第一节点的得分由高到低排序,获取前k+1个得分,确定所述前k+1个得分中的第一个得分对应的第一节点为群组树的根节点,并以根节点为起点,选择所述前k+1个得分中的后k个得分对应的节点作为孩子节点;
对于任意随机选择的节点,该节点向其他n-1个节点广播该随机选择节点产生的群组树作为候选群组树,其他n-1个节点对所述候选群组树进行有效性验证,若有效性验证通过,则生成部分门限签名并发送给上述随机选择的节点;该随机选择的节点搜集所述部分门限签名,若接收到超过预设门限值个所述部分门限签名,则生成一个完整门限签名广播给其他n-1个节点;
其他n-1个节点接收到完整门限签名消息后,验证完整门限签名的有效性,若验证通过,则其他n-1个节点更新自身的群组树结构为消息中所述候选群组树。
进一步地,所述第一节点与第二节点进行连接请求流程,包括:
所述第一节点向各第二节点发送节点检测请求;
第二节点接收到所述节点检测请求后,对所述节点检测请求进行相关验证,若验证通过,则第二节点向第一节点回复连接检测响应消息;
第一节点搜集各第二节点发送的连接检测响应消息,并对连接检测响应消息进行有效性验证,若验证通过,则第一节点广播连接状态消息;
所述对于满足连接请求流程的第一节点,是指:对于广播连接状态消息的第一节点。
进一步地,所述节点检测请求具体如下:
所述对所述节点检测请求进行相关验证,包括:
所述连接检测响应消息具体如下:
所述对连接检测响应消息进行有效性验证,包括:
进一步地,所述打分函数为Rank打分函数。
进一步地,所述部分门限签名通过签名函数生成得到,表示其他n-1个节点同意该随机选择的节点产生的群组树作为其他n-1个节点对应的视图下的群组树。
本发明提供的一种基于负载均衡的区块链节点树形分片方法中,综合考虑节点之间的网络延迟和计算资源将区块链节点划分到树形结构中,融合多元寻优的打分函数、门限签名和负载均衡等技术,将区块链节点划分到树形分片中,可以把网络广播、签名验证的任务分散到树形结构的不同分片中取执行,减少了节点之间消息广播和签名验证的工作量,实现了区块链系统的负载均衡。而且,有助于减少区块链节点通讯的网络负载与计算量,通过树形分片结构实现网络广播和计算任务的负载均衡,可以使得区块链系统在相同硬件条件下支持更多数量的节点,提升区块链系统的峰值处理吞吐量,从而优化区块链系统的性能和可扩展性。
附图说明
图1是节点网状拓扑结构图;
图2是树形拓扑结构图;
图3是本发明提供的基于负载均衡的区块链节点树形分片方法的流程图;
图4是区块链节点树形分片结构图。
具体实施方式
如图3所示,本实施例提供一种基于负载均衡的区块链节点树形分片方法,该区块链节点树形分片方法的硬件执行主体可以为台式电脑、笔记本电脑、服务器设备、智能移动终端(平板电脑、智能手机等)等等,本实施例不做限定。
在详细描述本实施例提供的一种基于负载均衡的区块链节点树形分片方法之前,首先介绍区块链节点树形分片结构,把这种树形分片结构命名为群组树。群组树包括三级节点,分别为根节点、孩子节点和叶节点,孩子节点是根节点的下一级节点,叶节点是孩子节点的下一级节点。如图4所示,根节点身份是领导者,因此,根节点也称为领导者节点。孩子节点为转发者节点,叶节点是听从者节点。所有孩子节点和叶节点共享一个唯一的根节点。本实施例中,每个群组包含一个转发者节点和若干个听从者节点。每个群组的节点构成了一个单独的分片。
由于领导者节点需要与其他所有转发者节点通讯并提议区块,转发者节点需要与群组内所有节点通讯,听从者节点只需要与群组内的用户通讯。如果领导者和转发者与孩子节点的通讯延迟较高,分别会导致系统整体和转发者所在群组的具有较高的通讯延迟。此外,领导者和转发者往往需要搜集或向孩子节点消息广播,需要较高的CPU与带宽等可用系统资源。
具体而言,表示网络延迟之和的最大值,它的作用是对网络延迟打分,可以简单的认为,其中n是节点集合中节点的数量,表示两个节点之间网络往返时间的上界,单位是毫秒。表示节点与节点集合中其他n-1个节点的通讯延迟之和。的值越小,表示该节点与其他节点的通讯延迟之和越小,从而通讯延迟的得分越高。表示节点自身可用的CPU计算资源与网络带宽资源,表示单位系统资源对应的得分,它的作用是对系统资源进行打分。打分函数得分更高的节点具有更高的分组优先程度,具有更高的可能性成为领导者或者转发者节点。
下面介绍基于网络延迟和计算资源的区块链节点树形分片方法的详细步骤,通过该方法可以将节点集合中的相应节点分配到一个群组树中。
步骤S1:对节点集合中的各节点进行编号,设定某一个节点为第一节点,设定比所述第一节点的编号大的节点为第二节点,所述第一节点与第二节点进行连接请求流程:
节点集合中包含有多个节点,具体个数由实际应用场景进行设置。对节点集合中的各节点进行编号,那么,各个节点具有唯一的、大小不同的编号。设定某一个节点(即任意一个节点)为第一节点,设定比第一节点的编号大的节点为第二节点,比如:设定第一节点的编号为节点,比第一节点的编号大的节点为第二节点的编号为节点。应当理解,比第一节点的编号大的第二节点的个数不定,可以只要一个,也可以有多个,更为特殊地,也可以没有。
本实施例中,第一节点与第二节点进行连接请求流程,具体包括:
第二节点接收到节点检测请求后,对节点检测请求进行相关验证,本实施例中,相关校验可以包括:校验第二节点对中的第一节点的视图与自身的视图是否一致,若一致,表示验证通过。作为其他的实施方式,相关校验还可以为:首先验证消息的签名信息是否正确,若正确,则第二节点对中的第一节点的视图与自身的视图是否一致,若一致,表示验证通过。若验证通过,则第二节点向第一节点回复连接检测响应消息,本实施例中,连接检测响应消息具体如下:
与第一节点相关的所有的第二节点均会回复连接检测响应消息,则第一节点搜集各第二节点发送的连接检测响应消息,记录此时的时间为。并对连接检测响应消息进行有效性验证,本实施例中,有效性校验过程包括:验证中包含的时间戳和视图与第一节点对应的时间戳和视图是否一致,若一致,则判定有效。作为其他的实施方式,校验过程还可以为:验证中包含的时间戳和视图与第一节点对应的时间戳和视图是否一致,若一致,且消息签名验证通过,则判定有效。=表示两个节点之间网络往返时间。
步骤S2:对于满足连接请求流程的第一节点,计算第一节点与对应的所有第二节点的打分函数,对各第一节点的得分由高到低排序,获取前k+1个得分,确定所述前k+1个得分中的第一个得分对应的第一节点为群组树的根节点,并以根节点为起点,选择所述前k+1个得分中的后k个得分对应的节点作为孩子节点:
基于步骤S1中的过程,对于满足连接请求流程的第一节点,是指:对于广播连接状态消息的第一节点。
对于广播连接状态消息的第一节点,计算第一节点与对应的所有第二节点的打分函数,本实施例中,打分函数为Rank打分函数。那么,每一个第一节点均能够得到一个得分。对各第一节点的得分由高到低排序,获取前k+1个得分,k大于等于1,且k为整数,k的具体数值由实际需要进行设置。那么,获取到的前k+1个得分为最高的k+1个得分。
其中,前k+1个得分包括第一个得分和后k个得分,那么,第一个得分是前k+1个得分中最高的得分。确定前k+1个得分中的第一个得分对应的第一节点为群组树的根节点(即领导者节点)。并以根节点为起点,选择前k+1个得分中的后k个得分对应的节点作为孩子节点(即转发者节点)。
本实施例中,可以使用(k,n)门限签名算法对消息进行投票。所有节点持有相同的单一公钥和验证函数,节点可以用私钥和签名函数产生一个消息的部分门限签名。当且仅当节点收到至少门限值k个相同消息的部分门限签名,可以通过签名函数合成一个完整门限签名,其他节点可以使用公钥和验证函数验证完整门限签名的有效性。
步骤S3:对于任意随机选择的节点,该节点向其他n-1个节点广播该随机选择节点产生的群组树作为候选群组树,其他n-1个节点对所述候选群组树进行有效性验证,若有效性验证通过,则生成部分门限签名并发送给上述随机选择的节点;该随机选择的节点搜集所述部分门限签名,若接收到超过预设门限值个所述部分门限签名,则生成一个完整门限签名广播给其他n-1个节点:
通过上文处理,节点集合中包括两大部分,第一部分是:前k+1个得分对应的节点,第二部分是节点集合中除了第一部分的其他节点。本实施例中,设定节点集合中除了前k+1个得分对应的节点之外的各个节点为待分配叶节点。
本实施例中,候选群组树是某一个节点,向全网其他节点广播的,也就是说,所有全网节点共享一个相同的群组树,而不是每个不同的孩子节点有一个群组树广播。在广播候选群组树的阶段,不是采用树形通讯,而是采用n-n广播,只有所有节点共享了相同的群组树,才开始使用树形结构进行通信。
在同一视图中,群组树由唯一一个随机的节点产生,并且广播给其他所有节点。所有n个节点在相同视图,具有相同的候选群组树结构。
每个节点都会生成自身的本地群组树,每个节点都会根据自身的打分函数计算一个群组树。但是此时每个节点的群组树没有达成全网节点的一致性共识,所以需要选择一个索引随机的节点,以节点为例,由该节点广播本地群组树作为系统的候选群组树,由其他节点对该候选群组树的有效性进行验证,具体如下:
任意随机选择一个节点(该节点可以是领导者节点、转发者节点或者听从者节点,只要是随机的就可以),对于该节点,该节点向其他n-1个节点广播该随机选择节点产生的群组树作为候选群组树,即该节点向其他n-1个节点广播与该节点产生的群组树作为候选群组树相关的消息。其他n-1个节点对候选群组树进行有效性验证(即验证候选群组树是否有效,也就是说,其他n-1个节点为候选群组树投票),若有效性验证通过,则生成部分门限签名并发送给上述随机选择的节点。本实施例中,部分门限签名通过签名函数生成得到,部分门限签名表示其他n-1个节点同意该节点产生的群组树作为其他n-1个节点对应的视图下的群组树。作为一个具体实施方式,该节点以节点为例,各其他n-1个节点以节点为例,节点收到节点发送的消息后,判断接收到的候选群组树是否有效,如果验证成功,节点通过签名函数生成部分门限签名,表示节点同意节点产生的群组树作为视图下的群组树。
该随机选择的节点搜集网络中其他n-1个节点生成的部分门限签名,若接收到超过预设门限值个部分门限签名,则生成一个完整门限签名广播给其他n-1个节点。本实施例中,预设门限值为门限值,则若接收到超过门限值个有效的部分门限签名,说明至少2f+1个节点同意该节点产生的候选群组树,节点更新自身的群组树结构,并且使用签名函数生成一个完整门限签名广播给其他节点。
步骤S4:其他n-1个节点接收到完整门限签名消息后,验证完整门限签名的有效性,若验证通过,则其他n-1个节点更新自身的群组树结构为消息中所述候选群组树:
其他n-1个节点接收到完整门限签名消息后,验证完整门限签名的有效性,本实施例使用公钥集合和验证函数验证完整门限签名的有效性。若验证通过,则其他n-1个节点更新自身的群组树结构为收到的消息中的群组树,即候选群组树。所有节点具有相同的群组树,节点不需要分配,只要所有节点保存的相同视图下对应的群组树结构是相同的即可。
根据上述步骤,一个完整的区块链节点树形分片需要通过上述步骤来生成。
另外,在区块链系统共识的流程中,通常需要暂停共识算法的流程从而更新群组树,如果每次节点的加入和退出都需要完整的上述步骤,会使得系统有大量的时间用于更新群组树,造成整体吞吐量的下降。接下来本实施例还提出一种区块链节点树形结构快速调整算法,无需通过完整步骤就可以实现群组树的快速动态调整,从而降低系统调整树形分片所需的时间和计算资源,减少树形分片算法对系统整体性能的影响。
根据图4,树形分片结构中数量最多的节点类型是听从者节点,听从者节点的调整无需停止共识算法的流程,也无需完全更新树形分片结构。基于此提出区块链节点树形结构快速调整算法,通常情况下无需通过完整的节点树形分片算法,即可对树形分片结构进行调整,算法分为节点加入和节点退出两种情况:
1)新节点加入
新加入的节点用表示,它可以与节点集合中的任何一个节点建立连接。节点向所有转发者节点发送节点检测请求消息,并搜集来自转发者节点的连接检测响应消息,接下来节点广播节点自身的单节点连接状态消息,它包含该节点与所有转发者节点的通讯延迟与可用系统资源。节点用视图和群组树作为随机数种子,选择一个索引随机的节点,根据打分函数,该节点发起提议请求将节点划分到树形分片中,并搜集其他节点的部分门限签名投票,只有当节点搜集到超过门限值的投票,才可以生成一个新的群组树和完整门限签名,接下来节点将新的树形分片结构广播给其他节点。
通过区块链节点树形结构快速调整算法,新加入的节点可以成为一个听从者节点,但是无法成为有领导者和转发者节点。参与共识的节点没有因为树形分片结构的调整而停止对新的区块达成共识,也就是说,此时新节点的加入和共识的步骤是并行的,不会对系统的吞吐量产生明显的影响。
2)节点故障
如果故障节点的类型是群组树中的听从者节点,而不是领导者和转发者节点,则可以通过区块链节点树形结构快速调整算法直接将故障节点从群组树中删除,但是该算法不适用于领导者和转发者节点故障的场景。
如果其他节点在计时器超时后仍然没有收到某一节点的确认消息,或者收到的确认消息不正确,则判定对应的节点发生了故障。与先前的步骤类似,系统选择一个索引随机的节点,该节点发起提议请求将节点从群组树中移除,并搜集其他节点基于门限签名的投票消息。只有当搜集到门限值条有效的部分门限签名投票后,才可以生成一个新的群组树和完整门限签名,采用区块链节点树形结构快速调整算法将故障节点从群组树中移除。
通过上述步骤,可以在不停止区块链系统共识流程的情况下,并行的修改群组树结构,区块链节点树形结构快速调整算法可以支持听从者类型的节点加入和退出群组树,但是无法支持领导者节点和转发者节点的加入和退出。每当系统运行一定周期,例如区块高度增加一个特定具体的高度,或者领导者或者转发者节点出现故障,仍然需要通过基于网络延迟和计算资源的区块链节点树形分片算法完整的步骤更新区块链节点树形分片。
本实施例提供了一种基于负载均衡的区块链节点树形分片方法,综合考虑节点之间的网络延迟和计算资源将区块链节点划分到树形结构中,设计了基于网络延迟和计算资源的区块链节点树形分片算法,算法融合多元寻优的打分函数、门限签名和负载均衡等技术,将区块链节点划分到树形分片中,可以把网络广播、签名验证的任务分散到树形结构的不同分片中取执行,减少了节点之间消息广播和签名验证的工作量,实现了区块链系统的负载均衡。而且,本实施例还提供了区块链节点树形结构快速调整算法,针对节点通常需要动态加入和退出,导致区块链系统花费较长时间频繁调整区块链树形分片结构的问题,该算法可以快速重新构建区块链树形分片结构,无需通过完整步骤就可以实现节点加入和退出的快速动态调整,从而减少更新树形分片所需的时间,减少区块链树形分片结构对系统整体性能的影响。
因此,本实施例创新的提出了负载均衡的区块链节点树形分片方法,综合考虑节点之间的网络延迟和计算资源将区块链节点进行分片,将网络广播、签名验证的任务分散到树形结构的不同分片中取执行,通过树形结构实现了区块链共识任务的负载均衡。而且,针对树形结构带来的消息延迟增加和调整树形结构耗时较多的问题,本实施例提供了区块链节点树形结构快速调整算法,支持区块链节点树形分片的快速调整,算法有助于减少区块链节点通讯的网络负载与计算量,提升区块链系统的性能和可扩展性。
Claims (5)
1.一种基于负载均衡的区块链节点树形分片方法,其特征在于,包括:
对节点集合中的各节点进行编号,设定某一个节点为第一节点,设定比所述第一节点的编号大的节点为第二节点,所述第一节点与第二节点进行连接请求流程;
对于满足连接请求流程的第一节点,计算第一节点与对应的所有第二节点的打分函数,对各第一节点的得分由高到低排序,获取前k+1个得分,确定所述前k+1个得分中的第一个得分对应的第一节点为群组树的根节点,并以根节点为起点,选择所述前k+1个得分中的后k个得分对应的节点作为孩子节点;
对于任意随机选择的节点,该节点向其他n-1个节点广播该随机选择节点产生的群组树作为候选群组树,其他n-1个节点对所述候选群组树进行有效性验证,若有效性验证通过,则生成部分门限签名并发送给上述随机选择的节点;该随机选择的节点搜集所述部分门限签名,若接收到超过预设门限值个所述部分门限签名,则生成一个完整门限签名广播给其他n-1个节点;
其他n-1个节点接收到完整门限签名消息后,验证完整门限签名的有效性,若验证通过,则其他n-1个节点更新自身的群组树结构为消息中所述候选群组树。
2.根据权利要求1所述的基于负载均衡的区块链节点树形分片方法,其特征在于,所述第一节点与第二节点进行连接请求流程,包括:
所述第一节点向各第二节点发送节点检测请求;
第二节点接收到所述节点检测请求后,对所述节点检测请求进行相关验证,若验证通过,则第二节点向第一节点回复连接检测响应消息;
第一节点搜集各第二节点发送的连接检测响应消息,并对连接检测响应消息进行有效性验证,若验证通过,则第一节点广播连接状态消息;
所述对于满足连接请求流程的第一节点,是指:对于广播连接状态消息的第一节点。
3.根据权利要求2所述的基于负载均衡的区块链节点树形分片方法,其特征在于,所述节点检测请求具体如下:
所述对所述节点检测请求进行相关验证,包括:
所述连接检测响应消息具体如下:
所述对连接检测响应消息进行有效性验证,包括:
4.根据权利要求1所述的基于负载均衡的区块链节点树形分片方法,其特征在于,所述打分函数为Rank打分函数。
5.根据权利要求1所述的基于负载均衡的区块链节点树形分片方法,其特征在于,所述部分门限签名通过签名函数生成得到,表示其他n-1个节点同意该随机选择的节点产生的群组树作为其他n-1个节点对应的视图下的群组树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211015896.1A CN115102899B (zh) | 2022-08-24 | 2022-08-24 | 一种基于负载均衡的区块链节点树形分片方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211015896.1A CN115102899B (zh) | 2022-08-24 | 2022-08-24 | 一种基于负载均衡的区块链节点树形分片方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115102899A CN115102899A (zh) | 2022-09-23 |
CN115102899B true CN115102899B (zh) | 2022-10-28 |
Family
ID=83300783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211015896.1A Active CN115102899B (zh) | 2022-08-24 | 2022-08-24 | 一种基于负载均衡的区块链节点树形分片方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115102899B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108847925A (zh) * | 2018-06-20 | 2018-11-20 | 深圳大学 | 一种基于树状结构的分片区块链生成方法 |
CN114511319A (zh) * | 2021-12-29 | 2022-05-17 | 壹链盟生态科技有限公司 | 一种区块链共识方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102473672B1 (ko) * | 2020-10-20 | 2022-12-02 | 주식회사 커먼컴퓨터 | 트리 구조의 상태 데이터베이스를 포함하는 블록체인에 대한 상태 관리 방법 및 시스템 |
-
2022
- 2022-08-24 CN CN202211015896.1A patent/CN115102899B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108847925A (zh) * | 2018-06-20 | 2018-11-20 | 深圳大学 | 一种基于树状结构的分片区块链生成方法 |
CN114511319A (zh) * | 2021-12-29 | 2022-05-17 | 壹链盟生态科技有限公司 | 一种区块链共识方法 |
Non-Patent Citations (1)
Title |
---|
基于Hadoop平台的XML Twig查询处理方法;何志学等;《北华航天工业学院学报》;20150228(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115102899A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12093247B2 (en) | Blockchain system and method | |
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN109218348B (zh) | 一种区块链中区块的确定方法及节点设备 | |
Hassanzadeh-Nazarabadi et al. | Lightchain: A dht-based blockchain for resource constrained environments | |
CN111311414A (zh) | 一种基于一致性哈希算法的区块链多方共识方法 | |
CN109189751A (zh) | 基于区块链的数据同步方法及终端设备 | |
CN111682942B (zh) | 一种应用于许可链的二元加权拜占庭容错共识方法 | |
CN112636905B (zh) | 基于多角色的可扩展共识机制的系统及方法 | |
CN111935207A (zh) | 基于改进型c4.5算法区块链系统共识方法 | |
CN115665170B (zh) | 基于信誉和节点压缩机制的区块链共识方法 | |
CN111092896A (zh) | 基于优化paxos的食品溯源分布式数据同步方法 | |
CN113553375B (zh) | 一种面向图式区块链的分片存储装置及方法 | |
CN113259179B (zh) | 一种基于节点评分的拜占庭容错共识方法与系统 | |
CN113626875B (zh) | 一种区块链分片赋能的知识图谱文件存储方法 | |
CN112395113A (zh) | 实用拜占庭容错共识方法及装置、可读存储介质 | |
CN114938292A (zh) | 一种基于节点可信度的多层次优化pbft共识方法 | |
CN111798234B (zh) | 一种轻量级区块链系统及构造方法 | |
CN115022326A (zh) | 基于协同过滤推荐的区块链拜占庭容错共识方法 | |
CN115102899B (zh) | 一种基于负载均衡的区块链节点树形分片方法 | |
JP7554871B2 (ja) | ブロックチェーンに付加的なチェーンを追加する方法および装置、そのためのシャード生成方法および装置 | |
CN115878729B (zh) | 一种基于联盟链的节点区块存储分配优化方法及系统 | |
CN115002111B (zh) | 一种基于群组树架构的区块链共识方法 | |
CN114726879B (zh) | 一种基于区块链分流验证交易信息的方法 | |
Wan et al. | Zebra: A cluster-aware blockchain consensus algorithm |
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 |