CN116723200A - 集群变更方法、装置、电子设备及计算机可读存储介质 - Google Patents
集群变更方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116723200A CN116723200A CN202311007401.5A CN202311007401A CN116723200A CN 116723200 A CN116723200 A CN 116723200A CN 202311007401 A CN202311007401 A CN 202311007401A CN 116723200 A CN116723200 A CN 116723200A
- Authority
- CN
- China
- Prior art keywords
- consensus
- cluster
- legal
- certificates
- quorum
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000008859 change Effects 0.000 claims abstract description 94
- 238000004590 computer program Methods 0.000 claims description 22
- 230000004048 modification Effects 0.000 claims description 10
- 238000012986 modification Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000000977 initiatory effect Effects 0.000 description 8
- 238000012508 change request Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000002715 modification method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请涉及区块链技术领域,特别涉及一种集群变更方法、装置、电子设备及计算机可读存储介质;方法包括:获取异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书,交易提案包括集群变更信息;向异步网络集群中的其他共识节点广播法定证书,并接收其他共识节点对应的法定证书;在法定证书的数量达到法定数量时,将生成的法定证书和接收到的其他共识节点的法定证书存储至有向无环图的顶点;基于有向无环图的共识轮次,确定待提交的目标顶点,基于目标顶点中法定证书对应的提交顺序以及集群变更信息,完整异步网络集群变更。实现异步网络下的共识集群变更,降低了异步网络集群变更的难度。
Description
技术领域
本申请涉及区块链技术领域,特别涉及一种集群变更方法、装置、电子设备及计算机可读存储介质。
背景技术
在分布式系统中,共识问题是一个非常难以解决的问题,不可能结果定理(Fischer-Lynch-Paterson,FLP)从理论上证明了如果一个分布式系统中存在任意一个故障节点,那么共识问题在异步系统中是不可解的。针对异步网络,主节点的提案无法在有限的时间内达成共识,且共识结果的提交顺序以及提交时间不可预测,导致在异步网络下进行集群变更难度较大。
发明内容
根据本申请的各种实施例,提供一种集群变更方法、装置、电子设备及计算机可读存储介质,解决异步网络下进行集群变更难度较大的问题。
第一方面,本申请提供了一种集群变更方法,应用于异步网络集群中的共识节点,每个共识节点基于有向无环图的结构存储每轮共识后各个共识节点对应的法定证书;该方法包括:
获取异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书,交易提案包括集群变更信息;向异步网络集群中的其他共识节点广播所述法定证书,并接收其他共识节点对应的法定证书;在法定证书的数量达到法定数量时,将生成的法定证书和接收到的其他共识节点的法定证书存储至有向无环图的顶点;基于有向无环图的共识轮次,确定待提交的目标顶点,并在目标顶点被提交后,基于目标顶点中法定证书对应的提交顺序以及集群变更信息,完成异步网络集群的集群变更。
通过上述方式,异步网络集群中的共识节点通过生成投票通过的交易提案的法定证书,并获取其他共识节点的法定证书,基于有向无环图的结构存储每轮共识后各个共识节点对应的法定证书,然后基于有向无环图的共识轮次,确定有向无环图上的目标顶点,并在提交目标顶点存储的法定证书后,执行交易提案,基于交易提案中的集群变更信息,完成异步网络集群的集群变更,不要求严格的网络假设以及网络消息必须在规定的时间内达到,即可实现异步网络下的共识集群完成变更,降低了异步网络集群变更的难度;具有较强的易用性与实用性。
第二方面,本申请提供了一种集群变更装置,包括:
获取单元,用于获取异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书,所述交易提案包括集群变更信息;
发送单元,用于向所述异步网络集群中的其他共识节点广播所述法定证书,并接收其他共识节点对应的法定证书;
存储单元,用于在所述法定证书的数量达到法定数量时,将生成的法定证书和接收到的其他共识节点的法定证书存储至有向无环图的顶点;
变更单元,用于基于所述有向无环图的共识轮次,确定待提交的目标顶点,并在所述目标顶点被提交后,基于所述目标顶点中法定证书对应的提交顺序以及所述集群变更信息,完成所述异步网络集群的集群变更;
其中,所述异步网络集群中的每个所述共识节点基于有向无环图的结构存储每轮共识后各个所述共识节点对应的法定证书。
第三方面,本申请提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。
第五方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的异步网路集群的架构示意图;
图2为本申请实施例提供的集群变更方法的实现流程示意图;
图3为本申请实施例提供的共识节点的DAG结构示意图;
图4为本申请实施例提供的DAG中提交顶点对应的引用关系示意图;
图5为本申请实施例提供的集群变更后的共识节点的DAG结构示意图;
图6为本申请实施例提供的集群变更装置的结构示意图;
图7为本申请实施例提供电子设备的结构示意图。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如 A 和/或 B,可以表示:单独存在 A,同时存在 A 和 B,单独存在 B 这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
目前,区块链系统大多采用半同步网络的假设来解决分布式系统中的拜占庭将军问题,以实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)等为例,半同步网络假设的拜占庭容错算法会在每一轮的共识过程中选出一个主节点(当这一轮共识成功完成或者是超时进入下一轮后会切换至新的主节点)。
对于主节点,在每一轮共识开始时,负责提出需要集群共识的提案,提案会囊括主节点的观点,例如主节点期望打包的交易列表以及需要进行集群变更时主节点期望的变更结果。对于除了主节点以外集群中所有的从节点,在这一轮只能够验证主节点期望达成共识的提案,例如在集群变更过程中,验证主节点期望的变更结果是否是正确的。当有法定数量quorum个节点的投票确认后,主节点的提案才可以被视为达成一致,其附带的集群变更结果才可以被生效。
然而,针对极端网络情况下,例如异步网络集群,主节点的交易提案无法在有限的时间内达成共识,导致集群变更会一直无法完成;而且依赖单一主节点的提案无法抵抗审查攻击,例如当主节点是一个恶意节点时,会尝试提交错误的集群变更结果或是直接埋没集群变更请求,恶意组织集群的正常变更请求;因此,在异步网络下进行集群变更十分困难。
基于上述问题,本申请实施例提供了一种集群变更方法,异步网络集群中的共识节点基于有向无环图(Directed Acyclic Graph,DAG)算法,在异步网络下完成拜占庭容错的分布式集群变更,降低异步网络集群变更的难度。
为了便于本领域技术人员对方案实现原理的理解,先对相关的技术术语进行介绍。
1、半同步网络:半同步网络假设也称为异步系统中的弱同步,假定消息的发送和接收是在一个未知但有限的时间内完成的,也就是说,参与者之间的时钟可能存在不同步的情况。在半同步网络假设下,消息的可靠性和有序性不能完全保证,但是可以采取一些措施(超时机制)来降低错误的发生概率。
2、异步网络:异步网络假设假定消息的发送和接收是在一个完全不同步的情况下完成的,也就是说,参与者之间的时钟可能存在任何的差异。在异步网络假设下,消息的可靠性和有序性都不能得到保证,因此需要采取更加复杂的机制来保证通信的正确性和安全性。
3、拜占庭容错:分布式系统可以容忍拜占庭将军问题,即允许集群中存在少部分恶意节点。
4、PBFT:Practical Byzantine Fault Tolerance实用拜占庭容错算法,是一种传统的基于半同步网络假设的一致性算法。
5、主节点:基于半同步的一致性算法中发起提案的共识节点。
6、法定数量(quorum):拜占庭容错算法中达成共识所需要的投票数。
7、法定证书:包含quorum个节点签名的证明集合;法定证书签署的内容可以被正确提交。本申请实施例中采用有向无环图(DAG)的方式链接这些法定证书,每个法定证书同时会签署quorum个父法定证书(即引用法定数量的上一轮共识后的法定证书)。
8、引用:指新一轮的证书在创建时附加了前一轮的证书摘要,A引用B相当于在有向无环图结构中,A到B存在一条单向路径。
9、有向无环图(DAG):本申请实施例中的DAG的每个顶点都是每一轮共识的法定证书列表,每个路径都是证书之间的引用。
10、共识集群:指共识算法中参与共识提案、投票的共识节点集合。
11、可靠广播:指确定消息被正确的广播到至少法定数量(quorum)个节点,发送方保证消息来源的可靠,接受方在保证消息正确接受后才可以做出响应。
下面通过具体实施例介绍本申请提出的区块链共识方法的应用场景。
请参见图1,图1示出了本申请实施例提供异步网络集群的架构示意图。如图1所示,该异步网络集群的架构中可以包括多个共识节点,例如节点A、节点B、节点C以及节点D;每个共识节点之间没有严格的网络假设,从而不要求网络消息在规定的时间内达到就可以使处在异步网络下的共识集群完成变更;也没有主节点与从节点的划分,从而不依赖单个主节点发布集群变更的请求,提高了区块链系统的安全性以及容错能力。
图1仅示例性说明异步网络集群的架构,其中还可以包括更多数量的共识节点,在此不作具体限定。
下面通过实施例,基于上述异步网络集群架构,进一步介绍集群变更方法的具体实现过程。
参见图2,本申请实施例提供的集群变更方法的实现流程示意图。该方法可以应用于上述图1中异步网络集群中的任意一个共识节点,如图2所示,该方法可以包括以下步骤:
S201,获取异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书,交易提案包括集群变更信息。
在一些实施例中,异步网络集群(以下描述可简称为集群)中的共识节点通过发起提案,并经过集群中的其他共识节点的签名投票后,可以基于其他共识节点的签名生成法定证书,例如生成法定数量个的签名结果的摘要,将该摘要作为自己发起的交易提案的法定证书。
示例性的,该集群变更信息包括异步网络配置变更的信息,例如新增节点或删除节点、更新集群配置的版本信息等。
需要说明的是,在异步网络集群中,每个共识节点基于自己的交易提案均会向集群中的其他共识节点进行可靠广播,以得到其他法定数量的共识节点的共识,由于是异步网络,每个共识节点发起提案交易的时机以及接收到的响应均可能不同步,从而每个共识节点基于获取到法定数量的共识节点的签名投票,所生成与自己的交易提案对应的法定证书的时机也可能各不相同。
另外,当发生集群变更时,集群中的各个共识节点可以基于客户端发起的集群变更信息,生成各自针对集群更新的意见,并附带在各自发出的交易提案中,进而通过可靠广播的方式将自己的交易提案同步给集群中的其他共识节点,进行共识签名。
例如,图1中所示的4个共识节点,节点A通过发起交易提案,经过4个共识节点中的至少3个投票同意后,即可生成自己的法定证书a;相应地,节点B也会在自己提出的交易提案投票通过后,生成自己的法定证书b,节点C也会在自己提出的交易提案投票通过后,生成自己的法定证书c,节点D也会在自己提出的交易提案投票通过后,生成自己的法定证书d。
在一些实施例中,在获取异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书之前,该方法还包括:
获取客户端发送的交易提案;向异步网络集群中的其他共识节点发送交易提案,交易提案用于指示其他共识节点对交易提案中的集群变更信息进行投票。
示例性的,集群中的共识节点会持续获取客户端发起的交易提案,并向其他共识节点发送同步自己的交易提案,以获取其他共识节点的签名投票。
其中,交易提案的接收方(其他至少法定数量quorum个共识节点)向发起交易提案的共识节点回复自己的签名,以表示投票认可此集群变更的提案;发起交易提案的共识节点搜集来自至少quorum个节点签名后的投票,将其组合为法定证书,完成该轮次的交易提案的共识。
需要说明的是,当发生集群变更时,共识节点才会发起带有集群变更信息的交易提案,并不是发起的每个交易提案中均带有集群变更信息。但是每次发起的交易提案无论是否带有集群变更信息,在经过法定数量的其他共识节点投票通过后,均生成相应的法定证书,即每个共识节点针对自己一次发起的交易提案均会生成相应的一个法定证书;一次发起的交易提案可以包括多个交易,集群变更信息可以是其中一个交易的内容。
在一些实施例中,交易提案包括与上一轮共识后的法定证书对应的引用关系;获取所述异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书,包括:
获取异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合,并基于交易提案中的引用关系,生成包含引用关系的法定证书。
其中,引用关系用于指示当前共识轮次生成的法定证书与上一共识轮次的至少法定数量的法定证书的引用关系。
示例性的,为了保证异步网络集群变更的安全性和一致性,共识节点在提交新的交易提案时,会带有引用上一共识轮次投票通过的交易提案的法定证书的信息,并且引用法定数量的共识节点对应的法定证书。
例如,节点A、B、C和D在第1轮分别生成的法定证书a1、b1、c1和d1,在第2轮分别生成a2、b2、c2和d2;在第2轮每个共识节点生成的法定证书可以引用到第1轮生成的法定证书;如法定证书a2引用法定证书a1、b1和c1,或者引用法定证书a1、b1、c1和d1,又或者引用法定证书a1、c1和d1。
S202,向异步网络集群中的其他共识节点广播法定证书,并接收其他共识节点对应的法定证书。
在一些实施例中,集群中的共识节点在生成法定证书后,向集群中的其他共识节点同步自己的法定证书,并获取其他共识节点向自己同步的法定证书。
示例性的,针对每个共识节点,在接收到其他共识节点的法定证书与自己生成的法定证书,加在一起的数量达到法定数量后,该共识节点则可以进入下一轮的共识过程,即发起新的交易提案,对该新的交易提案进行共识的过程。
例如,节点A在第1轮生成了法定证书a1,并接收到了节点B和节点C发送的法定证书b1和c1(达到法定数量3),或者收到了节点B、节点C和节点D发送的法定证书b1、c1和d1,则节点A可以进入下一轮的共识轮次,即发起新的交易提案,并由节点B、C、D进行投票共识,投票通过后,节点A基于投票结果生成第2轮的法定证书a2;同时该法定证书引用节点A上一轮的法定数量的法定证书,例如法定证书a2引用法定证书a1、b1和c1或者引用法定证书b1、c1和d1(在节点A在上一轮接收到节点D发送的法定证书d1的情况下)。即基于共识节点本身上一轮接收到的共识节点的法定证书,确定在在下一轮所可以引用的法定证书。
S203,在法定证书的数量达到法定数量时,将生成的法定证书和接收到的其他共识节点的法定证书存储至有向无环图的顶点。
在一些实施例中,集群中的每个共识节点,基于DAG结构存储每个共识轮次的法定证书,存储的法定证书包括共识节点自己生成的以及接收到的法定证书。
如图3所示的DAG结构示意图,每个共识节点均维护一个DAG结构的存储单元,该DAG结构中每一行的顶点存储该共识节点在每一轮自己生成的法定证书,每一列的顶点对应存储接收到的其他共识节点的法定证书。如图3中的(a)图所示,节点A对应在第1轮次至第4轮次依次生成的法定证书分别存储在顶点A1至A4中;该共识节点在第1轮分别接收到的节点B、C和D的法定证书分别存储在顶点B1、C1和D1中。
示例性的,共识节点在当前共识轮次,接收到的法定证书和自己生成的法定证书的数量达到法定数量时,则将生成的法定证书和接收到的其他共识节点的法定证书存储至有向无环图的顶点。如图3中的(a)图所示,在第2轮共识过程,节点A生成法定证书a2存储在顶点A2中,将接收到的点C的法定证书c2存储在顶点C2中,将接收到的法定证书d2存储在顶点D2中,由于节点B的不同步,可能在该共识轮次没有接收到节点B的法定证书b2,在满足法定数量即可进行存储。
其中,如图3中的(a)图通过箭头的方向表示各顶点的法定证书的引用关系,以及在相应的顶点通过特定的标识表示带有集群变更信息的法定证书,例如在第2轮共识过程中的节点A生成的法定证书a2带有集群变更信息,节点C的法定证书c2带有集群变更信息;即并不是所有的法定证书均带有集群变更信息,大部分的法定证书对应的可以是共识节点的普通交易。如图3中(b)图所示的另一种引用关系的表示方式,即在每个顶点存储的法定证书带有被引用的前一轮法定证书对应的节点标识,如节点A、B和C。
需要说明的是,由于异步网络集群中的各个共识节点的不同步,每个共识节点中维护的DAG的实际状态可能不同,例如图3中的(a)图中的DAG是节点A对应的;而节点B对应的DAG图中,在第2轮可能包含顶点A2、顶点B2和顶点C2,即节点B在第2轮生成法定证书b2并存储在顶点B2,接收到节点A的法定证书a2并存储在顶点A2,接收到节点C的法定证书c2并存储在顶点C2,而没有接收到节点D的法定证书。
另外,在每个共识节点的DAG中,针对相邻两轮的共识过程,后一轮的每一个顶点的法定证书引用前一轮至少法定数量的顶点存储的法定证书,相应地,也可以保证前一轮的每一个顶点存储的法定证书被后一轮法定数量顶点存储的法定证书所引用;即顶点A2的法定证书分别引用顶点A1、B1和C1的法定证书,同时顶点A2的法定证书分别被后一轮的顶点A3、B3和D3的法定证书所引用。
S204,基于有向无环图的共识轮次,确定待提交的目标顶点,并在目标顶点被提交后,基于目标顶点中法定证书对应的提交顺序以及集群变更信息,完成异步网络集群的集群变更。
在一些实施例中,集群中的每一个共识节点可以经过多轮的共识轮次后,基于由多轮共识轮次构建的DAG,选择其中一个共识轮次,采用引入相同随机源的算法,确定出DAG在该共识轮次的目标顶点,例如图3中的(b)图所示的顶点B4,即在4轮确定出要提交的目标顶点B4。
示例性的,基于被提交的目标顶点,确定该目标顶点的法定证书所引用的父法定证书;基于被引用的父法定证书以及目标顶点的法定证书的提交顺序,共识节点执行相应的交易提案,并根据交易提案中的集群变更信息完成异步网络集群的集群变更。
例如,图3中的(b)图所示,针对被提交的顶点B4,结合其递归引用的法定证书,确定出法定证书的提交顺序为A1-B1-C1-D1-A2-C2-D2-A3-B3-D3-B4,其中A2-C2-B3-D3包含集群变更信息;基于上述提交顺序,删除DAG中重复的路径,得到如图4所示的DAG结构示意图。
另外,每个共识节点提交目标顶点后,基于被引用的每个顶点内的法定证书对应的提交顺序依次执行各个顶点对应的交易提案,并根据交易提案中的集群变更信息更新自己的集群配置。即节点A在提交并执行交易提案后,根据交易提案中的集群变更信息更新节点A中的集群配置;节点B在另一个时刻提交并执行交易提案后,根据交易提案中的集群变更信息更新节点B中的集群配置。
相应地,基于集群变更信息,增加、删除节点或者更改集群配置信息,完成异步网络集群的集群变更。在完成集群变更后,基于新的配置继续进行下一轮共识,构建新的DAG的架构,如图5所示的对应5个共识节点的DAG结构以及各顶点对应的共识节点的法定证书。
在一些实施例中,有向无环图包含各共识节点在预设数量的共识轮次分别对应的法定证书;基于有向无环图的共识轮次,确定待提交的目标顶点,包括:
在有向无环图的所述预设数量的共识轮次中,确定目标共识轮次;在目标共识轮次各共识节点的法定证书对应的顶点,基于与其他共识节点相同的随机源算法,确定所述目标顶点。
其中,所述目标顶点与其他共识节点在所述目标轮次提交的顶点相同。
示例性的,异步网络集群中的每个共识节点通过发起交易提案并参与投票共识的方式,各自生成一个预设数量的共识轮次的有向无环图结构,如图3所示的4个共识轮次的DAG结构;其中,每一行表示每个共识节点在不同共识轮次产生的法定证书,每一列表示每一轮由不同共识节点产生的法定证书,带阴影加深的顶点表示带有集群变更信息的法定证书,有向无环图的方向箭头线表示法定证书引用前一轮法定证书的关系。
其中,目标共识轮次可以根据实际需求进行确定,也可以基于各个共识节点的共同选择确定。
需要说明的是,在异步网络集群下,每个共识节点对目标顶点提交的时机不完全相同,但是提交的目标顶点是相同的,即节点A与节点B分别按各自的共识轮次进行选择目标顶点进行提交,但是所选的目标顶点相同,如都是选择的DAG图结构中的顶点B4。
另外,由于异步网络集群中各共识节点的不同步,不同的共识节点之间的所维护的DAG结构可能不同,基于DAG结构中,相邻两共识轮次的顶点对应的法定证书,后一轮的每个共识节点的法定证书均引用前一轮的法定数量的法定证书,同时前一轮的每个共识节点的法定证书被后一轮的法定数量的共识节点的法定证书所引用,从而可以保证不同共识节点在提交相同的目标顶点时的法定证书时,至少存在一条路径保证被依次递归引用的法定证书相同;从而保证异步网络的分布式集群的一致性与安全性。
在一些实施例中,基于目标顶点中法定证书对应的提交顺序以及集群变更信息,完成异步网络集群的集群变更,包括:
基于目标顶点中法定证书对应的提交顺序,执行交易提案,并基于交易提案中的集群变更信息完成异步网络集群的集群变更。
在一些实施例中,执行交易提案,并基于交易提案中的集群变更信息完成异步网络集群的集群变更,包括:
对交易提案中的集群变更信息进行解析,并生成解析正确的证明;基于解析正确的证明,更新异步网络集群的集群世代,完成集群变更。
示例性的,在DAG结构中,并不是所有顶点的法定证书均带有集群变更信息,可以仅仅是普通的交易信息。每个共识节点的交易执行器基于DAG提交的顺序执行各个顶点(例如顶点A1~B4)对应的所有交易,当A2、C2、B3和D3包含的集群变更信息被正确解析执行后,生成集群变更正确的证明,基于解析到的集群变更信息更新异步网络集群的集群世代,完成集群变更,例如集群世代由e更新为e+1。
在一些实施例中,在生成解析正确的证明之后,该方法还包括:
丢弃有向无环图中目标顶点所在共识轮次的其他共识节点的法定证书,以及目标顶点所在共识轮次之后其他共识轮次的法定证书;在完成集群变更后,进入下一个集群世代的共识轮次。
在一种可能的实现方式中,共识节点在接收到交易执行器的集群变更正确性证明后,可以丢弃A4、C4、D4以及后续共识轮次的法定证书。切换至新的集群世代(e+1),然后重新从第1轮开始,重新构造新集群的有向无环图结构(如果有新的集群变更请求,再次通过上述步骤生成新的集群变更正确性证明信息后变更至新的集群世代e+2),如图5所示,集群从4个节点ABCD更新为5个节点ABCDE后重新生成的DAG。
在一种可能的实现方式中,还可以保留A4、C4和D4证书中的交易,在进入新的集群世代后,重新发起提案通过新集群来生成这些旧交易的法定证书。
在一些实施例中,在将生成的法定证书和接收到的其他共识节点的法定证书存储至有向无环图的顶点之后,该方法还包括:
向异步网络集群中的其他共识节点发送新的共识轮次的交易提案;在基于至少法定数量的其他共识节点针对新的共识轮次的交易提案投票通过后生成法定证书,并获取其他共识节点的新的共识轮次的法定证书;在法定证书的数量达到法定数量时,将新的共识轮次生成的法定证书和接收到的其他共识节点的法定证书存储至有向无环图的顶点,直到有向无环图对应的共识轮次的轮次数达到预设数量的轮次数。
其中,目标轮次的轮次数小于或等于预设数量的轮次数。
示例性的,异步网络集群中的每个共识节点通过发起交易提案并参与投票共识的方式,各自生成一个预设数量的共识轮次的有向无环图结构,目标轮次可以为预设数量的共识轮次的中间一个轮次,也可以为最后一个轮次。例如每个共识节点可以构建了5个轮次的DAG,可以选择第4轮作为目标轮次,将第4轮的一个顶点作为目标顶点;或者每个共识节点分别构建了4个轮次的DAG,选择第4轮作为目标轮次,将第4轮的第一顶点作为目标顶点。
通过本申请实施例,实现了异步网络下拜占庭容错的分布式集群变更,降低了异步网络集群变更的难度;不依赖于单独的主节点发布集群变更请求,提升了分布式系统在集群变更场景下的抗攻击能力,增加了系统的安全性以及容错能力。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例提供的集群变更方法,图6示出了本申请实施例提供的集群变更装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图6,该集群变更装置包括:
获取单元61,用于获取异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书,所述交易提案包括集群变更信息;
发送单元62,用于向所述异步网络集群中的其他共识节点广播所述法定证书,并接收其他共识节点对应的法定证书;
存储单元63,用于在所述法定证书的数量达到法定数量时,将生成的法定证书和接收到的其他共识节点的法定证书存储至有向无环图的顶点;
变更单元64,用于基于所述有向无环图的共识轮次,确定待提交的目标顶点,并在所述目标顶点被提交后,基于所述目标顶点中法定证书对应的提交顺序以及所述集群变更信息,完成所述异步网络集群的集群变更;
其中,所述异步网络集群中的每个所述共识节点基于有向无环图的结构存储每轮共识后各个所述共识节点对应的法定证书。
在一种可能的实现方式中,所述获取单元61,还用于获取客户端发送的所述交易提案;所述发送单元62,还用于向所述异步网络集群中的其他共识节点发送所述交易提案,所述交易提案用于指示其他共识节点对所述交易提案中的所述集群变更信息进行投票。
在一种可能的实现方式中,所述交易提案包括与上一轮共识后的法定证书对应的引用关系;所述获取单元61,还用于获取所述异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合,并基于所述交易提案中的引用关系,生成包含所述引用关系的法定证书;其中,所述引用关系用于指示当前共识轮次生成的法定证书与上一共识轮次的至少法定数量的法定证书的引用关系。
在一种可能的实现方式中,所述有向无环图包含各共识节点在预设数量的共识轮次分别对应的法定证书;所述变更单元64,还用于在所述有向无环图的所述预设数量的共识轮次中,确定目标共识轮次;在所述目标共识轮次各共识节点的法定证书对应的顶点,基于与其他共识节点相同的随机源算法,确定所述目标顶点;其中,所述目标顶点与其他共识节点在所述目标轮次提交的顶点相同。
在一种可能的实现方式中,所述变更单元64,还用于基于所述目标顶点中法定证书对应的提交顺序,执行所述交易提案,并基于所述交易提案中的集群变更信息完成所述异步网络集群的集群变更。
在一种可能的实现方式中,所述变更单元64,还用于对所述交易提案中的集群变更信息进行解析,并生成解析正确的证明;基于所述解析正确的证明,更新所述异步网络集群的集群世代,完成集群变更。
在一种可能的实现方式中,所述变更单元64,还用于丢弃所述有向无环图中所述目标顶点所在共识轮次的其他共识节点的法定证书,以及所述目标顶点所在共识轮次之后其他共识轮次的法定证书;在完成集群变更后,进入下一个集群世代的共识轮次。
在一种可能的实现方式中,所述发送单元62,还用于向所述异步网络集群中的其他共识节点发送新的共识轮次的交易提案;所述存储单元63,还用于在基于至少法定数量的其他共识节点针对新的共识轮次的交易提案投票通过后生成法定证书,并获取其他共识节点的新的共识轮次的法定证书;在所述法定证书的数量达到法定数量时,将新的共识轮次生成的法定证书和接收到的其他共识节点的法定证书存储至所述有向无环图的顶点,直到所述有向无环图对应的共识轮次的轮次数达到所述预设数量的轮次数;其中,所述目标轮次的轮次数小于或等于所述预设数量的轮次数。
图7示出了电子设备7的硬件结构示意图。
如图7所示,该实施例的电子设备7包括:至少一个处理器70(图7中仅示出一个)、存储器71,所述存储器71中存储有可在所述处理器70上运行的计算机程序72。所述处理器70执行所述计算机程序72时实现上述方法实施例中的步骤,例如图2所示的S201至S204。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能。
可以理解的是,本申请实施例示意的结构并不构成对电子设备7的具体限定。在本申请另一些实施例中,电子设备7可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
该电子设备7可以是上述异步网络集群中的共识节点,例如可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该电子设备7可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是电子设备7的示例,并不构成对电子设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如该服务器还可以包括输入发送设备、网络接入设备、总线等。
上述处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
处理器70中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器70中的存储器为高速缓冲存储器。该存储器可以保存处理器70刚用过或循环使用的指令或数据。如果处理器70需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器70的等待时间,因而提高了系统的效率。
上述存储器71在一些实施例中可以是所述电子设备7的内部存储单元,例如电子设备7的硬盘或内存。该存储器71也可以是所述电子设备7的外部存储设备,例如该电子设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,该存储器71还可以既包括该电子设备7的内部存储单元也包括外部存储设备。该存储器71用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。该存储器71还可以用于暂时地存储已经发送或者将要发送的数据。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
需要说明的是,上述电子设备的结构仅示例性说明,基于不同的应用场景,还可以包括其他实体结构,在此不对电子设备的实体结构进行限定。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行时实现可实现上述各个方法实施例中的步骤。
所集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。
上述本申请实施例提供的算法开发平台、电子设备、计算机存储介质、计算机程序产品均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文所提供的方法对应的有益效果,在此不再赘述。
应理解,上述只是为了帮助本领域技术人员更好地理解本申请实施例,而非要限制本申请实施例的范围。本领域技术人员根据所给出的上述示例,显然可以进行各种等价的修改或变化,例如,上述检测方法的各个实施例中某些步骤可以是不必须的,或者可以新加入某些步骤等。或者上述任意两种或者任意多种实施例的组合。这样的修改、变化或者组合后的方案也落入本申请实施例的范围内。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
应理解,上述只是为了帮助本领域技术人员更好地理解本申请实施例,而非要限制本申请实施例的范围。本领域技术人员根据所给出的上述示例,显然可以进行各种等价的修改或变化,例如,上述检测方法的各个实施例中某些步骤可以是不必须的,或者可以新加入某些步骤等。或者上述任意两种或者任意多种实施例的组合。这样的修改、变化或者组合后的方案也落入本申请实施例的范围内。
还应理解,本申请实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在不矛盾的情况下可以相结合。
还应理解,在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种集群变更方法,其特征在于,应用于异步网络集群中的共识节点,每个所述共识节点基于有向无环图的结构存储每轮共识后各个所述共识节点对应的法定证书;所述方法包括:
获取所述异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书,所述交易提案包括集群变更信息;
向所述异步网络集群中的其他共识节点广播所述法定证书,并接收其他共识节点对应的法定证书;
在所述法定证书的数量达到法定数量时,将生成的法定证书和接收到的其他共识节点的法定证书存储至所述有向无环图的顶点;
基于所述有向无环图的共识轮次,确定待提交的目标顶点,并在所述目标顶点被提交后,基于所述目标顶点中法定证书对应的提交顺序以及所述集群变更信息,完成所述异步网络集群的集群变更。
2.根据权利要求1所述的方法,其特征在于,在所述获取所述异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书之前,所述方法还包括:
获取客户端发送的所述交易提案;
向所述异步网络集群中的其他共识节点发送所述交易提案,所述交易提案用于指示其他共识节点对所述交易提案中的所述集群变更信息进行投票。
3.根据权利要求1所述的方法,其特征在于,所述交易提案包括与上一轮共识后的法定证书对应的引用关系;所述获取所述异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书,包括:
获取所述异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合,并基于所述交易提案中的引用关系,生成包含所述引用关系的法定证书;
其中,所述引用关系用于指示当前共识轮次生成的法定证书与上一共识轮次的至少法定数量的法定证书的引用关系。
4.根据权利要求1所述的方法,其特征在于,所述有向无环图包含各共识节点在预设数量的共识轮次分别对应的法定证书;所述基于所述有向无环图的共识轮次,确定待提交的目标顶点,包括:
在所述有向无环图的所述预设数量的共识轮次中,确定目标共识轮次;
在所述目标共识轮次各共识节点的法定证书对应的顶点,基于与其他共识节点相同的随机源算法,确定所述目标顶点;
其中,所述目标顶点与其他共识节点在所述目标轮次提交的顶点相同。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述目标顶点中法定证书对应的提交顺序以及所述集群变更信息,完成所述异步网络集群的集群变更,包括:
基于所述目标顶点中法定证书对应的提交顺序,执行所述交易提案,并基于所述交易提案中的集群变更信息完成所述异步网络集群的集群变更。
6.根据权利要求5所述的方法,其特征在于,所述执行所述交易提案,并基于所述交易提案中的集群变更信息完成所述异步网络集群的集群变更,包括:
对所述交易提案中的集群变更信息进行解析,并生成解析正确的证明;
基于所述解析正确的证明,更新所述异步网络集群的集群世代,完成集群变更。
7.根据权利要求5所述的方法,其特征在于,在所述生成解析正确的证明之后,所述方法还包括:
丢弃所述有向无环图中所述目标顶点所在共识轮次的其他共识节点的法定证书,以及所述目标顶点所在共识轮次之后其他共识轮次的法定证书;
在完成集群变更后,进入下一个集群世代的共识轮次。
8.根据权利要求4所述的方法,其特征在于,在所述将生成的法定证书和接收到的其他共识节点的法定证书存储至所述有向无环图的顶点之后,所述方法还包括:
向所述异步网络集群中的其他共识节点发送新的共识轮次的交易提案;
在基于至少法定数量的其他共识节点针对新的共识轮次的交易提案投票通过后生成法定证书,并获取其他共识节点的新的共识轮次的法定证书;
在所述法定证书的数量达到法定数量时,将新的共识轮次生成的法定证书和接收到的其他共识节点的法定证书存储至所述有向无环图的顶点,直到所述有向无环图对应的共识轮次的轮次数达到所述预设数量的轮次数;
其中,所述目标轮次的轮次数小于或等于所述预设数量的轮次数。
9.一种集群变更装置,其特征在于,包括:
获取单元,用于获取异步网络集群中至少法定数量的其他共识节点针对交易提案投票通过的签名集合并生成法定证书,所述交易提案包括集群变更信息;
发送单元,用于向所述异步网络集群中的其他共识节点广播所述法定证书,并接收其他共识节点对应的法定证书;
存储单元,用于在所述法定证书的数量达到法定数量时,将生成的法定证书和接收到的其他共识节点的法定证书存储至有向无环图的顶点;
变更单元,用于基于所述有向无环图的共识轮次,确定待提交的目标顶点,并在所述目标顶点被提交后,基于所述目标顶点中法定证书对应的提交顺序以及所述集群变更信息,完成所述异步网络集群的集群变更;
其中,所述异步网络集群中的每个所述共识节点基于所述有向无环图的结构存储每轮共识后各个所述共识节点对应的法定证书。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311007401.5A CN116723200B (zh) | 2023-08-11 | 2023-08-11 | 集群变更方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311007401.5A CN116723200B (zh) | 2023-08-11 | 2023-08-11 | 集群变更方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116723200A true CN116723200A (zh) | 2023-09-08 |
CN116723200B CN116723200B (zh) | 2023-11-10 |
Family
ID=87875630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311007401.5A Active CN116723200B (zh) | 2023-08-11 | 2023-08-11 | 集群变更方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116723200B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527266A (zh) * | 2024-01-05 | 2024-02-06 | 杭州趣链科技有限公司 | 异步网络共识方法、装置、电子设备及可读存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214795A (zh) * | 2018-09-18 | 2019-01-15 | 北京物链互联科技有限公司 | 一种基于dag算法的区块链混合共识方法 |
CN110198233A (zh) * | 2019-05-09 | 2019-09-03 | 中国人民解放军国防科技大学 | 基于可信执行环境和有向无环图的区块链共识方法及系统 |
CN110730081A (zh) * | 2019-12-17 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 基于区块链网络的证书吊销方法、相关设备及介质 |
CN113888164A (zh) * | 2021-09-30 | 2022-01-04 | 上海浦东发展银行股份有限公司 | 区块链交易池实现方法、装置、计算机设备和存储介质 |
CN113923217A (zh) * | 2021-09-30 | 2022-01-11 | 中国人民解放军国防科技大学 | 一种基于dag的异步拜占庭共识方法及系统 |
CN114049123A (zh) * | 2022-01-12 | 2022-02-15 | 杭州趣链科技有限公司 | 区块链的共识方法、装置、计算机设备和存储介质 |
CN114422155A (zh) * | 2022-03-30 | 2022-04-29 | 杭州趣链科技有限公司 | 提案共识执行方法、区块链系统、设备和存储介质 |
WO2022134233A1 (zh) * | 2020-12-24 | 2022-06-30 | 杭州趣链科技有限公司 | 一种区块链的共识方法、装置、服务器及存储介质 |
EP4064609A1 (en) * | 2021-03-26 | 2022-09-28 | Peaq Technology GmbH | Directed acyclic graph of blocks data structure and node communication |
CN115225639A (zh) * | 2022-09-15 | 2022-10-21 | 杭州趣链科技有限公司 | 共识可信集群的变更方法、装置、计算机设备及介质 |
CN115622713A (zh) * | 2022-10-19 | 2023-01-17 | 度小满科技(北京)有限公司 | 共识方法、装置、终端及存储介质 |
CN115796275A (zh) * | 2023-01-05 | 2023-03-14 | 成都墨甲信息科技有限公司 | 基于区块链的联邦学习方法、装置、电子设备及存储介质 |
CN116009940A (zh) * | 2022-12-13 | 2023-04-25 | 杭州趣链科技有限公司 | 共识集群的变更方法、装置、计算机设备及介质 |
CN116389009A (zh) * | 2023-04-26 | 2023-07-04 | 浙江大学 | 一种基于联盟链的支持动态集群变更的共识算法切换方法 |
CN116471024A (zh) * | 2023-04-21 | 2023-07-21 | 河南工业大学 | 一种基于dag和分片的区块链异步共识算法 |
-
2023
- 2023-08-11 CN CN202311007401.5A patent/CN116723200B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214795A (zh) * | 2018-09-18 | 2019-01-15 | 北京物链互联科技有限公司 | 一种基于dag算法的区块链混合共识方法 |
CN110198233A (zh) * | 2019-05-09 | 2019-09-03 | 中国人民解放军国防科技大学 | 基于可信执行环境和有向无环图的区块链共识方法及系统 |
CN110730081A (zh) * | 2019-12-17 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 基于区块链网络的证书吊销方法、相关设备及介质 |
WO2022134233A1 (zh) * | 2020-12-24 | 2022-06-30 | 杭州趣链科技有限公司 | 一种区块链的共识方法、装置、服务器及存储介质 |
EP4064609A1 (en) * | 2021-03-26 | 2022-09-28 | Peaq Technology GmbH | Directed acyclic graph of blocks data structure and node communication |
CN113888164A (zh) * | 2021-09-30 | 2022-01-04 | 上海浦东发展银行股份有限公司 | 区块链交易池实现方法、装置、计算机设备和存储介质 |
CN113923217A (zh) * | 2021-09-30 | 2022-01-11 | 中国人民解放军国防科技大学 | 一种基于dag的异步拜占庭共识方法及系统 |
CN114049123A (zh) * | 2022-01-12 | 2022-02-15 | 杭州趣链科技有限公司 | 区块链的共识方法、装置、计算机设备和存储介质 |
CN114422155A (zh) * | 2022-03-30 | 2022-04-29 | 杭州趣链科技有限公司 | 提案共识执行方法、区块链系统、设备和存储介质 |
CN115225639A (zh) * | 2022-09-15 | 2022-10-21 | 杭州趣链科技有限公司 | 共识可信集群的变更方法、装置、计算机设备及介质 |
CN115622713A (zh) * | 2022-10-19 | 2023-01-17 | 度小满科技(北京)有限公司 | 共识方法、装置、终端及存储介质 |
CN116009940A (zh) * | 2022-12-13 | 2023-04-25 | 杭州趣链科技有限公司 | 共识集群的变更方法、装置、计算机设备及介质 |
CN115796275A (zh) * | 2023-01-05 | 2023-03-14 | 成都墨甲信息科技有限公司 | 基于区块链的联邦学习方法、装置、电子设备及存储介质 |
CN116471024A (zh) * | 2023-04-21 | 2023-07-21 | 河南工业大学 | 一种基于dag和分片的区块链异步共识算法 |
CN116389009A (zh) * | 2023-04-26 | 2023-07-04 | 浙江大学 | 一种基于联盟链的支持动态集群变更的共识算法切换方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527266A (zh) * | 2024-01-05 | 2024-02-06 | 杭州趣链科技有限公司 | 异步网络共识方法、装置、电子设备及可读存储介质 |
CN117527266B (zh) * | 2024-01-05 | 2024-05-17 | 杭州趣链科技有限公司 | 异步网络共识方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116723200B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Crain et al. | Red belly: A secure, fair and scalable open blockchain | |
CN108683539B (zh) | 区块链网络的管理方法、装置、介质及电子设备 | |
CN109361740B (zh) | 一种区块链的区块生成方法、装置、设备和介质 | |
EP3446272B1 (en) | Method and system for an efficient consensus mechanism for permissioned blockchains using audit guarantees | |
EP3465481B1 (en) | Method and system for desychronization recovery for permissioned blockchains using bloom filters | |
Amir et al. | Steward: Scaling byzantine fault-tolerant replication to wide area networks | |
KR20210003234A (ko) | 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것 | |
CN116723200B (zh) | 集群变更方法、装置、电子设备及计算机可读存储介质 | |
US20200134578A1 (en) | Blockchain consensus systems and methods involving a time parameter | |
Zhang et al. | Reaching consensus in the byzantine empire: A comprehensive review of bft consensus algorithms | |
WO2023071373A1 (zh) | 一种区块链共识方法、装置、设备及存储介质 | |
CN114422155B (zh) | 提案共识执行方法、区块链系统、设备和存储介质 | |
US20240097919A1 (en) | Consensus trusted cluster changing method, computer device and computer-readable storage medium | |
CN111275438A (zh) | 区块链网络的共识方法、装置、设备和存储介质 | |
Arun et al. | ezbft: Decentralizing byzantine fault-tolerant state machine replication | |
CN114553434A (zh) | 一种共识方法、区块链系统和共识节点 | |
He et al. | An improvement of consensus fault tolerant algorithm applied to alliance chain | |
EP3908932A1 (en) | Topology-driven byzantine fault-tolerant consensus protocol with vote aggregation | |
CN111724258B (zh) | 基于环形拓扑、依赖图及多版本控制的联盟链交易并发方案的实现方法 | |
CN114157550B (zh) | 一种基于无冲突事务合并的联盟区块链系统 | |
CN117251889B (zh) | 区块链共识方法、相关装置和介质 | |
Cohen et al. | Make every word count: adaptive Byzantine agreement with fewer words | |
CN116846916B (zh) | 数据同步方法、装置、电子设备及计算机可读存储介质 | |
CN116009940A (zh) | 共识集群的变更方法、装置、计算机设备及介质 | |
CN117527266B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231013 Address after: No. 03, 8th Floor, T1 Office Building, Vanke Future Center, No. 408 Hanyang Avenue, Hanyang District, Wuhan City, Hubei Province, 430000 Applicant after: Wuhan Qulian Digital Technology Co.,Ltd. Address before: Room 2001, building a, building 2, 399 Danfeng Road, Binjiang District, Hangzhou, Zhejiang 310000 Applicant before: HANGZHOU HYPERCHAIN TECHNOLOGIES Co.,Ltd. Applicant before: Wuhan Qulian Digital Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |