CN113852691A - 一种区块链的共识方法、共识节点及电子设备 - Google Patents
一种区块链的共识方法、共识节点及电子设备 Download PDFInfo
- Publication number
- CN113852691A CN113852691A CN202111124488.5A CN202111124488A CN113852691A CN 113852691 A CN113852691 A CN 113852691A CN 202111124488 A CN202111124488 A CN 202111124488A CN 113852691 A CN113852691 A CN 113852691A
- Authority
- CN
- China
- Prior art keywords
- consensus
- target
- node
- nodes
- block chain
- 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 44
- 230000001360 synchronised effect Effects 0.000 claims abstract description 22
- QSHDDOUJBYECFT-UHFFFAOYSA-N mercury Chemical compound [Hg] QSHDDOUJBYECFT-UHFFFAOYSA-N 0.000 claims abstract description 14
- 229910052753 mercury Inorganic materials 0.000 claims abstract description 14
- 230000005540 biological transmission Effects 0.000 claims description 21
- 230000010076 replication Effects 0.000 claims description 16
- 230000000977 initiatory effect Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 6
- 230000002085 persistent effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 239000002360 explosive Substances 0.000 description 2
- 108091035707 Consensus sequence Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- 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/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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本说明书实施例提供一种区块链的共识方法、共识节点及电子设备。方法包括:目标共识节点选取本地交易池中尚未同步的交易集执行RBC协议,使用纠删码算法将交易集拆分成与区块链的共识节点相对应的N个数据块,并基于Rval消息向其他共识节点发送对应的数据块。其他共识节点响应RBC协议,通过Echo消息将从Rval消息获得的数据块在区块链中转发,并在接收到一定Echo消息后,基于纠删码算法将数据块还原成回交易集。目标共识节点成为领导者节点时,从本地共识执行队列中按序选取默克尔树证明发起RAFT协议的共识提议,共识执行队列按序存放目标共识节点生成的默克尔树证明。各共识节点从本地交易集中匹配出达成共识的默克尔树证明所对应的交易,以对其执行写块操作。
Description
技术领域
本文件涉及数据处理技术领域,尤其涉及一种区块链的共识方法、共识节点及电子设备。
背景技术
基于区块链的特性,在复制和容错RAFT的共识协议中,每轮共识提议的提议数据是由领导者节点打包并同步传输给区块链的各追随者节点。假设区块链的共识节点数量为N (领导者节点和追随者节点均属于共识节点),针对一轮共识提议,领导者节点需要发送N-1份提议数据,这对于领导者节点的网络带宽产生了极大开销。
随着未来区块链业务的爆发性增长,要获得更高的吞吐量,就需要单位时间内达成更多数据的共识,对领导者节点来讲负担更大,导致共识效率反而下降。为此,当前亟需一种能够降低领导者节点发起共识提议所开销的带宽的技术方案。
发明内容
本说明书实施例目的是提供一种区块链的共识方法、共识节点及电子设备,能够以较小的领导者节点侧的带宽开销,完成区块链共识。
为了实现上述目的,本说明书实施例是这样实现的:
第一方面,提供一种区块链的共识方法,包括:
区块链的目标共识节点在触发预设条件时,对所述目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量;
其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,其中,f为所述区块链的共识节点容错数;
所述目标共识节点在成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC 协议所拆分生成的数据块的默克尔树证明;
所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对所述目标共识节点所发起的共识提议中的至少一个默克尔树证明进行共识;
在所述目标共识节点发起的共识提议完成后,所述目标共识节点和其他共识节点从各自确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
第二方面,提供一种区块链的共识方法,包括:
目标共识节点在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f 个Echo消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数;
所述目标共识节点响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC 协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于 Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块;
目标共识节点在成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对所述目标共识节点所发起的共识提议中的至少一个默克尔树证明进行共识;
所述目标共识节点在所述目标共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作;
目标共识节点在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
目标共识节点在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
第三方面,提供一种区块链的共识节点,包括:
RBC发起模块,在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N 为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数;
RAFT发起模块,在所述目标共识节点成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对从所述目标共识节点的共识执行队列中按序选取到的至少一个默克尔树证明进行共识;
第一写块模块,在所述RAFT发起模块发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作;
RBC响应模块,响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval 消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块;
RAFT响应模块,在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
第二写块模块,在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
第四方面,提供一种电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输 RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N 个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo 消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数;
在所述目标共识节点成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC 协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对从所述目标共识节点的共识执行队列中按序选取到的至少一个默克尔树证明进行共识;
在针对从所述目标共识节点的共识执行队列中选取到的至少一个默克尔树证所发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作;
响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块;
在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输 RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N 个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo 消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数;
在所述目标共识节点成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC 协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对从所述目标共识节点的共识执行队列中按序选取到的至少一个默克尔树证明进行共识;
在针对从所述目标共识节点的共识执行队列中选取到的至少一个默克尔树证所发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作;
响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块;
在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
基于本说明书实施例的方案,区块链的共识节点可以通过RBC协议完成交易同步,并通过RAFT协议完成交易共识。在RBC协议阶段,各共识节点利用RBC协议的纠删码传输机制,将本地待作为提议数据的交易集拆分成与其他共识节点相对应的数据块,并将拆分成的数据块发送至对应的其他共识节点,再由其他共识节点相互转发,从而实现了提议数据的分摊传输。之后,各共识节点将本地RBC协议执行结果中所获得的默克尔树证明安讯存放至本地维护的共识执行队列中,以在后续成为领导者节点时发起共识提议。在RAFT 协议阶段,领导者节点从本地共识执行队列中按序选取默克尔树证明作为共识对象发起共识提议,以将达成共识的默克尔树证明匹配回相对应的交易以完成写块操作。由于默克尔树证明的数据量相对较小,可以有效减小RAFT协议的执行时间,进而提高共识效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的区块链的共识方法的流程示意图。
图2为本说明书实施例提供的共识节点的结构示意图。
图3为本说明书实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如前所述,现有的RAFT协议共识中,每轮共识提议的提议数据是由领导者节点打包并同步传输给区块链的各追随者节点。假设区块链的共识节点数量为N,针对一轮共识提议,领导者节点需要发送N-1份提议数据,这对于领导者节点的网络带宽产生了极大开销。随着未来区块链业务的爆发性增长,要获得更高的吞吐量,就需要单位时间内达成更多数据的共识,对领导者节点来讲负担更大,导致共识效率反而下降。有鉴于此,本文件旨在提出一种以较小的领导者节点带宽开销就能实现区块链共识的技术方案,以适应未来区块链业务增长的需求。
图1是本说明书实施例区块链的共识方法的流程图。图1所示的方法可以由下文相对应的装置执行,包括如下步骤:
S102,区块链的目标共识节点在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与区块链的共识节点相对应的N个数据块,并基于Rval消息向区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于纠删码算法计算得到的默克尔树证明,N 为区块链的共识节点数量。
纠删码(erasure coding,EC)是一种数据容错保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。从数据函数角度来说,纠删码提供的保护可以用下面公式:x=k+y来表示。变量x”代表原始数据或符号的值。变量“y”代表故障后添加的提供保护的额外或冗余符号的值。变量“x”代表纠删码过程后创建的符号的总值。举个例子来说,在一个EC 10/16的配置中,会有6 个额外的符号(变量m)被添加到10个原始符号(变量k)中。这16个数据片段(变量n) 可以遍布16个驱动器、节点或地理位置中,而原始文件可以从10个验证片段中重建。也就是说,即使有6个驱动器、节点或者地理位置丢失或不可用,而原始文件还是可以恢复。可以看出,纠删码仅需要数据量较少的冗余就能实现数据的还原。
在本说明书实施例中,目标共识节点执行RBC协议是为了使用纠删码技术将自身交易池中需要共识的交易集(后续作为提议数据)同步给其他共识节点。基于纠删码技术,目标共识节点在将自身交易池中的交易集拆分成与区块链的各共识节点相对应数据块后,只需向每个其他共识节点发送该其他共识节点自身所对应的数据块。也就是说,本次同步过程中,目标共识节点发送的数据量只是一份交易集的数据量。
在实际应用中,区块链中的各共识节点之间可以轮询执行RBC协议。也就是说,上述目标共识节点触发预设条件包括:区块链轮询到目标共识节点执行RBC协议。
或者,
区块链中的共识节点也可以各自独立执行RBC协议。比如:目标共识节点可以逐轮执行RBC协议,对应地,上述目标共识节点触发预设条件可以包括:目标共识节点执行完成上一轮RBC协议;再比如:目标共识节点可以周期性执行RBC协议,对应地,上述目标共识节点触发预设条件可以包括:目标共识节点对到RBC协议的执行间隔计时达到RBC 协议的执行周期。
S104,其他共识节点响应目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo消息后,基于纠删码算法将接收到的目标共识节点执行RBC协议所拆分生成的数据块还原成目标共识节点的交易池中的相对应的交易集,其中,f为区块链的共识节点容错数。
如前所述,本说明书实施例的各个其他共识节点通过目标共识节点的Rval消息只获得了自身对应的数据块。因此,为了进一步获得完整的第一交集
目标共识节点在执行RBC协议,通过Rval消息至向共识其他节点提供该追随者节点所对应的数据块。为了使共识其他节点获得目标共识节点交易池中完整的交易集,本步骤中,其他共识节点还需要通过RBC协议的Echo消息将从Rval消息接收到的相对应的数据块在区块链中转发,以保证区块链的各追随者节点能够接收到基于纠删码算法足以还原回交易集的数据块。
这里,当任意其他共识节点接收到N-2f个Echo消息后,即可基于纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成目标共识节点的交易池中的相对应的交易集,从而实现了目标共识节点自身交易池中的交易集向其他共识节点的同步。
从上述基于基于RBC协议实现交易集同步的过程可以看出,其他共识节点也消耗网络带宽辅助目标共识节点转发自身对应的数据块,从而分担了目标共识节点的传输压力。
S106,目标共识节点在成为区块链的领导者节点时,从目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,目标共识节点的共识执行队列按序存放有目标共识节点执行RBC协议所拆分生成的数据块的默克尔树证明。
需要说明的是,区块链交易执行的有序性十分重要。比如,某个交易场景中,用户A需要向用户B汇款10000元,再由用户B向用户C汇款5000元。假设用户B初始的余额为3000元,如果交易不按序执行,也就是用户B先向用户C汇款5000元,用户A再向用户B汇入10000元,那么会出现用户B向用户C汇款失败的交易逻辑错误。
而本说明书实施例通过共识执行队列中存放默克尔树证明的顺序可以确定出区块链交易的顺序,后续可以保证区块链交易能够按序执行,从而避免发生类似上述交易逻辑错误的问题。
在实际应用中,如果目标共识节点从共识执行队列中的默克尔树证明无法通过一次共识提议完成共识(比如,共识执行队列中的默克尔树证明数量超出了区块链一轮共识所支持的默克尔树证明的数量上限),则可以发起多次共识提议以保证共识执行队列中的默克尔树证明能够完成共识。
应理解,目标共识节点还可以将自身共识执行队列中已完成共识的默克尔树证明移除出去。
此外,在上述基础之上,目标共识节点还可以对本地的共识执行队列进行数据持久化,如果目标共识节点发生宕机,能够在重启后基于目标共识节点的持久化数据,将目标共识节点的共识执行队列恢复至重启前的状态。
S108,区块链的其他共识节点在目标共识节点成为领导者节点时,作为追随者节点,响应目标共识节点发起的共识提议,以对目标共识节点所发起的共识提议中的至少一个默克尔树证明进行共识。
应理解,本说明书实施例中,RAFT协议的共识对象由传统的交易集数据更换为默克尔树证明,但共识原理并没有改变,因此可以基于传统的RAFT协议逻辑来完成共识。
S110,在目标共识节点发起的共识提议完成后,目标共识节点和其他共识节点从各自确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
相较于传统的RAFT协议,由于共识对象由交易集数据更换为默克尔树证明,因此RAFT协议结果所确定的是达成共识的默克尔树证明,需要区块链的共识节点从各自确定的交易集中再匹配出相对应的交易,再对匹配出的交易执行写块操作。
这里应理解是,本步骤中其他共识节点侧的交易集是通过目标共识节点执行RBC协议所同步得到的,而目标共识节点的交易集则本身来源于目标共识节点的交易池。
基于本说明书实施例的方法,区块链的共识节点可以通过RBC协议完成交易同步,并通过RAFT协议完成交易共识。在RBC协议阶段,各共识节点利用RBC协议的纠删码传输机制,将本地待作为提议数据的交易集拆分成与其他共识节点相对应的数据块,并将拆分成的数据块发送至对应的其他共识节点,再由其他共识节点相互转发,从而实现了提议数据的分摊传输。之后,各共识节点将本地RBC协议执行结果中所获得的默克尔树证明安讯存放至本地维护的共识执行队列中,以在后续成为领导者节点时发起共识提议。在RAFT 协议阶段,领导者节点从本地共识执行队列中按序选取默克尔树证明作为共识对象发起共识提议,以将达成共识的默克尔树证明匹配回相对应的交易以完成写块操作。由于默克尔树证明的数据量相对较小,可以有效减小RAFT协议的执行时间,进而提高共识效率。
应理解,本说明书实施例的其他共识节点也可以执行上述图1所示的共识方法对自身交易池中的交易进行共识上链。
即,在上述基础之上,目标其他共识节点也可以在触发预设条件时,对目标其他共识节点的交易池中尚未同步的交易集执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与区块链的共识节点相对应的N个数据块,并基于Rval消息向区块链中除所述目标其他共识节点外的共识节点发送对应的数据块。
对应地,目标共识节点响应目标其他共识节点执行的RBC协议,以在接收到目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的目标其他共识节点执行RBC协议所拆分生成的数据块还原成目标其他共识节点的交易池中的相对应的交易集。
当目标其他共识节点在成为区块链领导者节点时,也可以从目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起RAFT协议的共识提议(目标其他共识节点的共识执行队列同样按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块)。
对应地,目标共识节点在所述目标其他共识节点成为领导者节点时,作为追随者节点,响应目标其他共识节点发起的共识提议,以对目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识。以及,在目标其他共识节点发起的共识提议完成后,目标共识节点从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
此外,还应理解的是,本说明书实施例中,目标共识节点可以异步执行执行RBC协议并和RAFT协议。
也就是说,在目标共识节点在对目标共识节点的交易池中尚未同步的交易集执行RBC 协议时,如果成为区块链的领导者节点,则可以并行执行从目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起RAFT协议的共识提议。
下面对本说明书实施例的共识方法进行详细介绍。
本说明书实施例的方法中,区块链的各共识节点基于RBC协议+RAFT协议实现交易的共识上链。假设区块链的共识节点数量为N,拜占庭的共识节点容错数量为f,N>=3f+1。
RAFT协议把共识节点分为三种,分别是Leader(领导者)、Follower(追随者)、Candidate (候选者):
Leader:负责日志的同步管理,处理来自客户端的请求,与Follower保持心跳(heartBeat) 的联系;
Follower:刚启动时所有共识节点为Follower状态;响应Leader的日志同步请求;响应Candidate的请求,把请求到Follower的事务转发给Leader;
Candidate:负责选举投票,RAFT刚启动时由一个节点从Follower转为Candidate发起选举,选举出Leader后从Candidate转为Leader状态。
此外,RAFT协议将时间划分成为任意不同长度的任期(Term)。任期用连续的数字进行表示。每一个任期的开始都是一次选举(election),一个或多个Candidate会试图成为Leader。如果一个Candidate赢得了选举,它就会在该任期的剩余时间担任Leader。
以目标共识节点为示例,对应的共识上链流程如下:
RBC协议阶段:
目标共识节点从目标共识节点的交易池中选取若干个待共识的交易,构成第一交易集。
目标共识节点使用纠删码算法按照共识顺序,将第一交易集拆分成与区块链的共识节点一一对应的N个有序的数据块。这里,每个数据块均包含有第一交易集中至少一个交易,并对应有纠删码算法计算得到的默克尔树证明(根哈希)。
为便于理解,假设区块链设置有包含目标共识节点在内的6个共识节点(其余均为追随者节点),第一交易集中的交易为20个,即tx1至tx20,则第一交易集可以被拆分成6个数据块,即root hash 1至root hash 6。对应地,默克尔树证明和交易的对应关系如下:
root hash 1:{tx1,tx2,tx3,tx4}
root hash 2:{tx5,tx6,tx7}
root hash 3:{tx8,tx9,tx10}
root hash 4:{tx11,tx12,tx13}
root hsh 5:{tx14,tx15,tx16}
root hash 6:{tx17,tx18,tx19,tx20}
之后,目标共识节点Rval消息向区块链的各个其他共识节点发送对应的数据块。
这里将共识节点1作为目标共识节点。如果共识节点2对应有默克尔树证明为roothash 2的数据块,则共识节点1向共识节点2发送的Rval消息携带有默克尔树证明roothash 2;同理,共识节点3对应有默克尔树证明为root hash 3的数据块,则共识节点1向共识节点3 发送的Rval消息携带有默克尔树证明root hash 3;……共识节点6对应有默克尔树证明为 root hash 6的数据块,则共识节点1向共识节点6发送的Rval消息携带有默克尔树证明root hash 6。
之后,各其他共识节点在接收到目标共识节点的Rval消息后,将Rval消息中的默克尔树证明通过Echo消息在区块链中进行转发。
比如,共识节点2向共识节点1、3、4、5、6发送携带有root hash 2的Echo消息;共识节点3向共识节点1、2、4、5、6发送携带有root hash 3的Echo消息……;共识节点6 向共识节点1、2、3、4、5发送携带有root hash 6的Echo消息。
任意其他共识节点在接收到N-2f个Echo消息后,尝试使用纠删码算法将已接收到的数据块(从Rval消息和Echo消息中获得的数据块)还原回第一交易集,并重构第一交易集的默克尔树,以校验重构的默克尔树与接收到的默克尔树证明是否一致。如果一致,则向区块链广播Ready消息。
此外,在上述基础之上,任意其他共识节点如果从Echo消息和Rval消息中获得数据块不足以还原第一交易集,也可以向处自身外的其他共识节点获取该其他共份节点所接收到的Rval消息中的数据块,以尝试还原第一交易集。
之后,针对每个共识节点,当收到f+1个相同的且来自于不同节点的Ready消息时,判断自己是否广播过Ready消息,没有则广播Ready消息;当收到2f+1个自于不同共识节点的Ready消息时,意味着收到正确的第一交集,即,目标共识节点将自身交易池中的第一交集正确同步给追随者节点。
这里,目标共识节点本地维护一个共识执行队列,用于按序存放第一交易集中所有数据块的默克尔树证明。
以上是一轮RBC协议流程的介绍。
之后,目标共识节点还可以发起新一轮RBC协议流程。也就是从目标共识节点的交易池中选取若干个待共识的交易,构成第二交易集,并对第二交易集执行RBC协议以完成同步。
当目标共识节点使用纠删码算法将第二交易集被拆分成数据块后,还需要将第二交易集中所有数据块的默克尔树证明按序添加至本地维护的共识执行队列。应理解,基于共识执行队列的存放排序,新添加的默克尔树证明会晚于其他默克尔树证明完成共识。
RAFT协议阶段:
RAFT协议阶段:
首先,领导者节点将第一交易集的各数据块的默克尔树证明作为提议数据,发起共识提议。共识过程包括:
领导者节点将第一交易集的各数据块的默克尔树证明以Log日志的形式分发尝试复制到追随者节点上保存起来。此外,Log日志中还包含了命令,对应的Terms时期号和该Log日志的索引Index。这些Log日志中的附加信息辅助追随者判定日志的合法性和之后的数据同步安全逻辑。
日志被复制到追随者节点上不代表这Log日志所包含的命令就生效了,复制完的Log 日志还需要经过一个确认提交(commit)的过程。当Leader确认Log日志已经被多数共识节点成功复制后,该Log日志所包含的指令就可以正式提交生效了。
在领导者节点认为数据可靠性有保障的时候(条件是在过半数的节点上完成复制), Leader再通知其它共识节点(包括自己)将这条指令在各自的状态机中进行提交(即在状态机中执行)。只要保证每个共识节点的状态机转换逻辑是一致的,执行的指令也是一致的 (包括顺序),那么就可以保证所有RAFT节点之间的状态一致性,从而实现共识。
在领导者节点的共识执行队列中的所有的默克尔树证明完成共识后,领导者节点和追随者节点从各自的第一交易集中匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
为方便理解,假设上文示例的第一交集中root hash 1和root hash 5的默克尔树证明在本轮共识提议中达成共识,则领导者节点和追随者节点对root hash 1对应的交易{tx1,tx2,tx3, tx4}和root hsh 5对应的交易{tx14,tx15,tx16}执行写块操作,也就是交易{tx1,tx2,tx3, tx4 tx14,tx15,tx16}完成上链。
以上是对一轮RAFT协议流程的介绍。
应理解的是,若区块链未更换RAFT协议的任期(即未更换领导者节点),则目标领导者节点作为领导者节点,还可以从本地的共识执行队列中按序选取一定数量的默克尔树证明发起新一轮共识提议(完成共识的默克尔树证明会从共识执行队列中移除出去)。
以上是对本说明书实施例的方法的介绍。应理解,在不脱离本文上述原理基础之上,还可以进行适当的变化,这些变化也应视为本说明书实施例的保护范围。
与上述图1所示共识方法相对应地,本说明书实施例还提供一种区块链的共识节点。图2是本说明书实施例共识节点200的结构图,包括:
RBC发起模块210,在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数。
RAFT发起模块220,在所述目标共识节点成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对从所述目标共识节点的共识执行队列中按序选取到的至少一个默克尔树证明进行共识。
第一写块模块230,在所述RAFT发起模块发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
RBC响应模块240,响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行 RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块。
RAFT响应模块250,在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明。
第二写块模块260,在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
本说明书实施例的共识节点可以通过RBC协议完成交易同步,并通过RAFT协议完成交易共识。在RBC协议阶段,各共识节点利用RBC协议的纠删码传输机制,将本地待作为提议数据的交易集拆分成与其他共识节点相对应的数据块,并将拆分成的数据块发送至对应的其他共识节点,再由其他共识节点相互转发,从而实现了提议数据的分摊传输。之后,各共识节点将本地RBC协议执行结果中所获得的默克尔树证明安讯存放至本地维护的共识执行队列中,以在后续成为领导者节点时发起共识提议。在RAFT协议阶段,领导者节点从本地共识执行队列中按序选取默克尔树证明作为共识对象发起共识提议,以将达成共识的默克尔树证明匹配回相对应的交易以完成写块操作。由于默克尔树证明的数据量相对较小,可以有效减小RAFT协议的执行时间,进而提高共识效率。
可选地,RBC发起模块210和RAFT发起模块220相互为异步执行的模块。也就是说,在RBC发起模块210对所述目标共识节点的交易池中尚未同步的交易集执行RBC协议时成为所述区块链的领导者节点,则RAFT发起模块220可以与RBC发起模块210并行执行:从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议的步骤。
可选地,本说明书实施例的共识节点还包括:
持久化模块,对所述目标共识节点的共识执行队列进行数据持久化,若所述目标共识节点发生重启,则基于所述目标共识节点的持久化数据,将所述目标共识节点的共识执行队列恢复至重启前的状态。
显然,本说明书实施例的共识节点可以作为上述图1所示的共识方法中的执行主体,能够实现该共识方法在图1中对应的功能。由于原理相同,本文不再赘述。
图3是本说明书的一个实施例电子设备的结构示意图。请参考图3,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构) 总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
其中,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成区块链的共识装置,该共识装置可以作为区块链的共识节点,也可以属于共识节中的部件。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输 RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N 个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo 消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数。
在所述目标共识节点成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC 协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对从所述目标共识节点的共识执行队列中按序选取到的至少一个默克尔树证明进行共识。
在针对从所述目标共识节点的共识执行队列中选取到的至少一个默克尔树证所发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块。
在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明。
在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
上述如本说明书图1所示实施例揭示的共识方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
应理解,本说明书实施例的电子设备可以实现共识节点在图1所示的实施例的功能,本文不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
此外,本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令。其中,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备实现图1所示实施例的方法,并具体用于执行以下步骤:
在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输 RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N 个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo 消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数。
在所述目标共识节点成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC 协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对从所述目标共识节点的共识执行队列中按序选取到的至少一个默克尔树证明进行共识。
在针对从所述目标共识节点的共识执行队列中选取到的至少一个默克尔树证所发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块。
在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明。
在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
应理解,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使上文所述的领导者节点实现图1所示实施例的功能,本文不再赘述。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。此外,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
Claims (11)
1.一种区块链的共识方法,包括:
区块链的目标共识节点在触发预设条件时,对所述目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量;
其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,其中,f为所述区块链的共识节点容错数;
所述目标共识节点在成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对所述目标共识节点所发起的共识提议中的至少一个默克尔树证明进行共识;
在所述目标共识节点发起的共识提议完成后,所述目标共识节点和其他共识节点从各自确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
2.根据权利要求1所述的方法,还包括:
所述目标共识节点响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块。
3.根据权利要求2所述的方法,还包括:
所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,其中,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
所述目标共识节点在所述目标其他共识节点成为领导者节点时,作为追随者节点,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识;
在所述目标其他共识节点发起的共识提议完成后,所述目标共识节点从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
4.根据权利要求1所述的方法,
在所述目标共识节点在对所述目标共识节点的交易池中尚未同步的交易集执行RBC协议时成为所述区块链的领导者节点,则并行执行从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议。
5.根据权利要求1所述的方法,
所述区块链中的各共识节点之间轮询执行RBC协议,所述目标共识节点触发预设条件包括:所述区块链轮询到所述目标共识节点执行RBC协议;
或者,
所述区块链中的共识节点独立执行RBC协议,所述目标共识节点触发预设条件包括:所述目标共识节点执行完成上一轮RBC协议或所述目标共识节点对到RBC协议的执行间隔计时达到RBC协议的执行周期。
6.根据权利要求1所述的方法,
所述目标共识节点的共识执行队列作为所述目标共识节点的持久化数据,所述方法还包括:
若所述目标共识节点发生重启,则基于所述目标共识节点的持久化数据,将所述目标共识节点的共识执行队列恢复至重启前的状态。
7.根据权利要求1所述的方法,
所述目标共识节点在针对至少一个默克尔树证明发起RAFT协议的共识提议时,基于所述RAFT协议的预准备消息,将作为本轮共识对象的默克尔树证明发送至其他共识节点。
8.一种区块链的共识方法,包括:
目标共识节点在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数;
所述目标共识节点响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块;
目标共识节点在成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对所述目标共识节点所发起的共识提议中的至少一个默克尔树证明进行共识;
所述目标共识节点在所述目标共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作;
目标共识节点在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
目标共识节点在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
9.一种区块链的共识节点,包括:
RBC发起模块,在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数;
RAFT发起模块,在所述目标共识节点成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对从所述目标共识节点的共识执行队列中按序选取到的至少一个默克尔树证明进行共识;
第一写块模块,在所述RAFT发起模块发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作;
RBC响应模块,响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块;
RAFT响应模块,在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
第二写块模块,在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
10.一种电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数;
在所述目标共识节点成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对从所述目标共识节点的共识执行队列中按序选取到的至少一个默克尔树证明进行共识;
在针对从所述目标共识节点的共识执行队列中选取到的至少一个默克尔树证所发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作;
响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块;
在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
11.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
在触发预设条件时,对目标共识节点的交易池中尚未同步的交易集执行可靠广播传输RBC协议,以使用纠删码算法将选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链的其他共识节点发送对应的数据块,其中,交易集拆分成的数据块对应有基于所述纠删码算法计算得到的默克尔树证明,N为所述区块链的共识节点数量,其他共识节点响应所述目标共识节点执行的RBC协议,以通过Echo消息将从Rval消息接收到的相对应的数据块在所述区块链中转发,并在接收到N-2f个Echo消息后,基于所述纠删码算法将接收到的所述目标共识节点执行RBC协议所拆分生成的数据块还原成所述目标共识节点的交易池中的相对应的交易集,f为所述区块链的共识节点容错数;
在所述目标共识节点成为所述区块链的领导者节点时,从所述目标共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起复制和容错RAFT协议的共识提议,其中,所述目标共识节点的共识执行队列按序存放有所述目标共识节点执行RBC协议所拆分生成的数据块的默克尔树证明,所述区块链的其他共识节点在所述目标共识节点成为领导者节点时,作为追随者节点,响应所述目标共识节点发起的共识提议,以对从所述目标共识节点的共识执行队列中按序选取到的至少一个默克尔树证明进行共识;
在针对从所述目标共识节点的共识执行队列中选取到的至少一个默克尔树证所发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作;
响应目标其他共识节点执行的RBC协议,以在接收到所述目标其他共识节点向所述目标共识节点发送的Rval消息后,通过Echo消息将从该Rval消息接收到的相对应的数据块在所述区块链中转发,以及将接收到的所述目标其他共识节点执行RBC协议所拆分生成的数据块还原成所述目标其他共识节点的交易池中的相对应的交易集,其中,所述目标其他共识节点执行RBC协议,以使用纠删码算法将从所述目标其他共识节点的交易池中所选取的交易集拆分成与所述区块链的共识节点相对应的N个数据块,并基于Rval消息向所述区块链中除所述目标其他共识节点外的共识节点发送对应的数据块;
在所述目标其他共识节点成为领导者节点时,响应所述目标其他共识节点发起的共识提议,以对所述目标其他共识节点所发起的共识提议中的至少一个默克尔树证明进行共识,其中,所述目标其他共识节点在成为所述区块链领导者节点时,从所述目标其他共识节点的共识执行队列中按序选取至少一个默克尔树证明作为共识对象,以发起所述RAFT协议的共识提议,所述目标其他共识节点的共识执行队列按序存放有所述目标其他共识节点执行RBC协议所拆分生成的数据块的默克尔树证明;
在所述目标其他共识节点发起的共识提议完成后,从确定到的交易集中,匹配出达成共识的默克尔树证明所对应的交易,以对匹配出的交易执行写块操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111124488.5A CN113852691A (zh) | 2021-09-24 | 2021-09-24 | 一种区块链的共识方法、共识节点及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111124488.5A CN113852691A (zh) | 2021-09-24 | 2021-09-24 | 一种区块链的共识方法、共识节点及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113852691A true CN113852691A (zh) | 2021-12-28 |
Family
ID=78979754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111124488.5A Pending CN113852691A (zh) | 2021-09-24 | 2021-09-24 | 一种区块链的共识方法、共识节点及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113852691A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710512A (zh) * | 2022-03-30 | 2022-07-05 | 蚂蚁区块链科技(上海)有限公司 | 共识结果的分发方法、节点和区块链系统 |
CN114996027A (zh) * | 2022-08-02 | 2022-09-02 | 深圳百纳维科技有限公司 | 一种百纳海链区块链共识算法 |
CN116628083A (zh) * | 2023-04-27 | 2023-08-22 | 中国人民解放军战略支援部队信息工程大学 | 区块链交易数据扩容存储方法及系统 |
-
2021
- 2021-09-24 CN CN202111124488.5A patent/CN113852691A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710512A (zh) * | 2022-03-30 | 2022-07-05 | 蚂蚁区块链科技(上海)有限公司 | 共识结果的分发方法、节点和区块链系统 |
CN114710512B (zh) * | 2022-03-30 | 2023-09-29 | 蚂蚁区块链科技(上海)有限公司 | 共识结果的分发方法、节点和区块链系统 |
CN114996027A (zh) * | 2022-08-02 | 2022-09-02 | 深圳百纳维科技有限公司 | 一种百纳海链区块链共识算法 |
CN116628083A (zh) * | 2023-04-27 | 2023-08-22 | 中国人民解放军战略支援部队信息工程大学 | 区块链交易数据扩容存储方法及系统 |
CN116628083B (zh) * | 2023-04-27 | 2024-05-24 | 中国人民解放军战略支援部队信息工程大学 | 区块链交易数据扩容存储方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111526219B (zh) | 一种联盟链的共识方法及联盟链系统 | |
CN113852691A (zh) | 一种区块链的共识方法、共识节点及电子设备 | |
US10666778B1 (en) | System and method for ending view change protocol | |
KR102230829B1 (ko) | 합의 시스템 다운타임 복구 | |
CN113873030A (zh) | 一种区块链的共识方法、共识节点及电子设备 | |
US20200125456A1 (en) | Consensus system downtime recovery | |
AU2019203862B2 (en) | System and method for ending view change protocol | |
US10938750B2 (en) | Consensus system downtime recovery | |
CN113849564B (zh) | 一种区块链的共识方法、共识节点及电子设备 | |
WO2023045533A1 (zh) | 区块链的共识 | |
CN114422331B (zh) | 容灾切换方法、装置及系统 | |
CN115409507A (zh) | 区块处理方法、区块处理装置、计算机设备及存储介质 | |
CN115292340B (zh) | 基于分布式网络编码的区块链存储优化方法及装置 | |
CN111522696A (zh) | 区块链共识节点的宕机处理方法、数据持久化方法及硬件 | |
CN116232893A (zh) | 分布式系统的共识方法、装置、电子设备及存储介质 | |
CN113872961B (zh) | 一种区块链的共识方法、共识节点及电子设备 | |
CN112468598A (zh) | 一种基于amqp协议实现消息补偿推送的方法 | |
AU2019101575A4 (en) | System and method for ending view change protocol | |
CN118012960A (zh) | 数据同步方法及设备 | |
CN114090299A (zh) | 一种集群间的数据同步方法、装置和电子设备 | |
CN114385761A (zh) | 一种基于共识系统的共识数据存储、获取方法及装置 | |
CN116915794A (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 |