CN116192868B - 一种应用于联盟链的并行拜占庭容错共识方法及终端 - Google Patents

一种应用于联盟链的并行拜占庭容错共识方法及终端 Download PDF

Info

Publication number
CN116192868B
CN116192868B CN202310467479.9A CN202310467479A CN116192868B CN 116192868 B CN116192868 B CN 116192868B CN 202310467479 A CN202310467479 A CN 202310467479A CN 116192868 B CN116192868 B CN 116192868B
Authority
CN
China
Prior art keywords
consensus
blocks
instance
parallel
block
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
Application number
CN202310467479.9A
Other languages
English (en)
Other versions
CN116192868A (zh
Inventor
牛健宇
吕涵峥
张殷乾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest University of Science and Technology
Original Assignee
Southwest University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southwest University of Science and Technology filed Critical Southwest University of Science and Technology
Priority to CN202310467479.9A priority Critical patent/CN116192868B/zh
Publication of CN116192868A publication Critical patent/CN116192868A/zh
Application granted granted Critical
Publication of CN116192868B publication Critical patent/CN116192868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Marketing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及拜占庭容错共识技术领域,具体是涉及一种应用于联盟链的并行拜占庭容错共识方法及终端。控制各个节点并行执行客户端请求所对应的各个实例,得到各个实例上的区块,区块所占据的局部日志位置连续;将区块在日志中所占据的位置根据局部索引和实例编号进行排序,得到各个区块所对应的全局日志位置顺序;将各个区块按照各个区块的全局日志位置顺序发送至客户端。本发明根据局部索引和实例编号进行排序,使得各个区块所对应的全局日志位置顺序连续,只有全局日志位置连续,才能将运行各个实例得到的区块发送给客户端,从而增大节点后续处理客户端请求的吞吐量。

Description

一种应用于联盟链的并行拜占庭容错共识方法及终端
技术领域
本发明涉及拜占庭容错共识技术领域,具体是涉及一种应用于联盟链的并行拜占庭容错共识方法及终端。
背景技术
BFT共识(拜占庭共识)允许一组节点在存在某些拜占庭故障(即任意行为)的情况下就相同的交易序列达成一致。大多数现有的拜占庭容错共识协议都遵循简单高效的基于领导者的方案,其中协议在视图中运行,每个视图都有一个领导者,以广播其提案(即一批客户的交易),然后协调其他正常节点以达成共识。然而在大规模设置中,领导者方案被证明具有更严重的性能瓶颈,其广播请求负载随着节点数量的增加而线性增加。
综上所述,现有BFT共识在大规模设置中吞吐量低。
因此,现有技术还有待改进和提高。
发明内容
为解决上述技术问题,本发明提供了一种应用于联盟链的并行拜占庭容错共识方法及终端,解决了现有技术吞吐量降低的问题。
为实现上述目的,本发明采用了以下技术方案:
第一方面,本发明提供一种应用于联盟链的并行拜占庭容错共识方法,其中,包括:
控制各个节点并行执行客户端请求所对应的各个实例,得到各个所述实例上的区块,所述区块所占据的局部日志位置连续,所述实例为基于拜占庭容错共识的进程;
将所述区块在日志中所占据的位置根据局部索引和实例编号进行排序,得到各个所述区块所对应的全局日志位置顺序;
将各个所述区块按照各个所述区块的全局日志位置顺序发送至客户端。
在一种实现方式中,所述控制各个节点并行执行客户端请求所对应的各个实例,得到各个所述实例上的区块,所述区块所占据的局部日志位置连续,所述实例为基于拜占庭容错共识的进程,包括:
获取各个所述节点执行完一轮共识之后各个所述实例上的区块局部索引,若干轮共识构成一个实例;
比较各个所述实例上的区块局部索引,得到区块最大局部索引;
在所述区块局部索引不连续的所述实例上填充空区块,所述空区块为无共识结果的区块,所述空区块所占据的日志位置和各个所述节点执行完一轮共识产生的区块所占据的日志位置连续。
在一种实现方式中,所述控制各个节点并行执行客户端请求所对应的各个实例,得到各个所述实例上的区块,所述区块所占据的局部日志位置连续,所述实例为基于拜占庭容错共识的进程,包括:
控制各个节点并行执行客户端请求所对应的各个实例中的各轮共识;
给每轮共识之后产生的实区块赋予局部索引号,所述局部索引号与局部日志位置相对应,一个实例上的各个区块(包括空区块)的各个局部索引号连续,所述实区块为节点执行所述客户端请求产生的数据包,各个所述实例的最小局部索引号相同;
比较各个所述实例上的所述局部索引号,得到最大的所述索引号;
在同一实例上所述局部索引号不连续的位置处填充空区块直至所述局部索引号连续,所述空区块所占据的日志位置和各个所述节点执行完每轮共识产生的实区块所占据的日志位置连续,所述实区块为节点执行所述客户端请求产生的数据包。
在一种实现方式中,所述控制各个节点并行执行客户端请求所对应的各个实例中的各轮共识,包括:
控制各个节点并行执行客户端请求所对应的各个实例中的上一轮共识之后,监控每个节点接收的反馈信息的数量,所述反馈信息用于表征其它节点在上一轮共识之后产生实区块结果;
当反馈信息的数量大于等于设定数量时,控制各个节点并行执行客户端请求所对应的各个实例中的下一轮共识,所述设定数量为节点总数减去拜占庭节点数的最大值。
在一种实现方式中,所述控制各个节点并行执行客户端请求所对应的各个实例中的各轮共识,还包括:
控制各个节点并行执行客户端请求所对应的各个实例中的上一轮共识之后,监控各个实例中产生的区块局部索引;
当其中一个实例中的区块局部索引大于实例所能容纳的局部索引最大值时,终止各个节点执行下一轮。
在一种实现方式中,由所述局部索引构成的全局索引号按照区间分配,每个区间内的全局索引号的数量相同,区间之间的所述全局索引号连续。
在一种实现方式中,所述将各个所述区块按照各个所述区块的全局日志位置顺序发送至客户端,包括:
将各个所述区块中的所述实区块按照各个所述实区块的全局日志位置顺序发送至客户端;
当上一个所述实区块的下一个区块为空区块时,停止发送所述空区块,发送所述空区块所对应的全局日志中下一个所述实区块至客户端。
在一种实现方式中,所述客户端请求为基于联盟链产生的请求。
第三方面,本发明实施例还提供一种终端设备,其中,所述终端设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的应用于联盟链的并行拜占庭容错共识程序,所述处理器执行所述应用于联盟链的并行拜占庭容错共识程序时,实现上述所述的应用于联盟链的并行拜占庭容错共识方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有应用于联盟链的并行拜占庭容错共识程序,所述应用于联盟链的并行拜占庭容错共识程序被处理器执行时,实现上述所述的应用于联盟链的并行拜占庭容错共识方法的步骤。
有益效果:本发明首先控制各个节点独立并行各个实例(进程),得到各个实例上的区块,然后控制各个区块在日志中的位置连续,只有日志位置连续,才能将运行各个实例得到的区块发送给客户端,从而增大节点后续处理客户端请求的吞吐量。
附图说明
图1为本发明的整体流程图;
图2为本发明实施例中的Multi-BFT系统结构图;
图3为本发明实施例中的客户端和节点交互示意图;
图4为本发明实施例中的填充空区块示意图;
图5为本发明实施例提供的终端设备的内部结构原理框图。
具体实施方式
以下结合实施例和说明书附图,对本发明中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
经研究发现,BFT共识(拜占庭共识)允许一组节点在存在某些拜占庭故障(即任意行为)的情况下就相同的交易序列达成一致。大多数现有的拜占庭容错共识协议都遵循简单高效的基于领导者的方案,其中协议在视图中运行,每个视图都有一个领导节点,以广播其提案(即一批客户的交易),然后协调其他非领导节点以达成共识。然而在大规模设置中,领导者方案被证明具有严重的性能瓶颈,其广播请求负载随着节点数量的增加而线性增加。
为解决上述技术问题,本发明提供了一种应用于联盟链的并行拜占庭容错共识方法及终端,解决了现有技术降低吞吐量的问题。具体实施时,控制各个节点并行执行客户端请求所对应的各个实例,得到各个所述实例上的区块,所述实例为基于拜占庭容错共识的进程;将所述区块在日志中所占据的位置根据局部索引和实例编号进行排序,得到各个所述区块所对应的全局日志位置顺序;将各个所述区块按照各个所述区块的全局日志位置顺序发送至客户端。本发明能够提高各个节点处理拜占庭容错共识时的吞吐量。
举例说明,如图3所示,客户端将其请求(请求也就是客户端需要后面的四个节点完成的任务,比如客户端请求可以是处理四组图像分割)分别发送给四个节点,四个节点分别领导一个实例(进程),这四个实例独立并行运行,也就是用四个独立并行的进程去解决客户端的四个不同请求。每个实例同时进行各轮共识,比如四个实例进行第一轮共识时分别产生了四个区块(节点执行客户端请求产生的数据),则同时处理了四个客户请求。
该实施例中,多个节点同时处理客户端请求,实现了单线程到多线程的转变,利用并行处理,该协议能够同时运行多个协议,处理多个交易,提高效率。
在一个实施例中,客户端请求为基于联盟链产生的请求。
上述基于拜占庭协议处理客户端请求,如果共有n个节点,将其中一个节点作为领导节点,其它节点共同参与基于领导者的BFT协议,如果客户端请求的数据大小为st,且领导节点的带宽为B,则节点构成的系统最大吞吐量。BFT协议的核心思想是通过允许多个节点充当并行领导者来同时实现 BFT 协议的多个实例。一般来说,每个节点充当一个 BFT 实例的领导者并维护其局部日志。所有实例并行运行 BFT 共识。最后,所有的部分日志组成一个全局日志,对请求的响应可以按照全局日志中的顺序传递给客户端。
示例性方法
本实施例的一种应用于联盟链的并行拜占庭容错共识方法可应用于终端设备中,所述终端设备可为具有数据处理功能的终端产品,比如电脑等。在本实施例中,如图1中所示,所述应用于联盟链的并行拜占庭容错共识方法具体包括如下步骤:
S100,控制各个节点并行执行客户端请求所对应的各个实例,得到各个所述实例上的区块,所述区块所占据的局部日志位置连续,所述实例为基于拜占庭容错共识的进程。
S200,将所述区块在日志中所占据的位置根据局部索引和实例编号进行排序,得到各个所述区块所对应的全局日志位置顺序。
如图2所示,区块是按照节点的id号和局部索引进行排序,区块的全局索引与全局日志位置相一致,局部索引即局部索引号。
S300,将各个所述区块按照各个所述区块的全局日志位置顺序发送至客户端。
本实施例,首先控制各个节点独立并行各个实例(进程),得到各个实例上的区块,然后控制各个区块在全局日志中的位置连续,只有全局日志位置连续,才能将运行各个实例得到的区块发送给客户端,从而增大节点后续处理客户端请求的吞吐量。
在一个实施例中,在执行完一轮共识就进行下一轮共识,使得日志上的索引号连续。该实例中,S100包括如下的步骤S101a、S102a:
S101a,获取该实例上一轮共识的区块局部索引号。
S102a,在所述实例上填充新区块,使得新区块的局部索引号为上一轮共识的区块局部索引号加一,所述区块所占据的日志位置连续。
举例说明,如图3所示,第一轮共识之后,节点一、二、三、四的实例上区块的局部索引号分别是0,0,0,0,对应的全局索引号是0,1,2,3。第二轮共识之后,节点一、二、四的实例上区块的局部索引号分别是1,1,1,对应的全局索引号是4,5,7。第三轮共识之后,节点一、二、四的实例上区块的局部索引号分别是2,2,2,对应的全局索引号是8,9,11。
在另一实施例中,由所述局部索引构成的全局索引号按照区间分配,每个区间内的全局索引号的数量相同,区间之间的所述全局索引号连续。
该实施例,如图4所示,给每个节点的实例分配局部id号(节点一的id=0,节点二的id=1),id=0,1,2,3……,m-1。协议以连续的区间(epoch)为单位执行,区间编号记为e=1,2,3……。每个区间有固定的长度,对应全局日志中的一段全局索引号记为sn。一个区间的第一个全局索引号=上一个区间的最后一个全局索引号+1(如区间长度为12时,区间e=1的全局索引号为sn=0-11;区间e=2的全局索引号为sn=12-23;区间e=3的全局索引号为sn=24-35。比如图3中的节点一的实例上的各个实区块的全局索引号分别为0,4,8)。
在一个实施例中,步骤S100包括如下的步骤S101b、S102b、S103b、S104b、S105b:
S101b,控制各个节点并行执行客户端请求所对应的各个实例中的上一轮共识之后,监控每个节点接收的反馈信息的数量,所述反馈信息用于表征其它节点在上一轮共识之后产生实区块结果。
比如在第二轮共识之后,节点二会将其所知道的最大局部索引号2(反馈信息)发送给节点一、三、四;同样节点一也会将其所知道的最大索引号2发送给节点二、三、四。
步骤S101b是基于以下原理:
在协议的消息发送阶段,协议的主节点(任何一个节点相对其它节点而言都是主节点)将消息msg和其局部索引一起发送给从节点;在协议的最后一个阶段,下一轮协议的所有从节点向主节点发送其知道的最大/>。实例上每个区间的第一个区块的=,如果不是区间的第一个区块,其tn为上一轮收集的所有最大tn中的最大值+1。 主节点只有在收集到n-f个最大tn之后才能启动新一轮的协议(这n-f个包括主节点自己的最大tn)。当收集到的最大/>时,不再运行新一轮的共识协议。
S102b,当反馈信息的数量大于等于设定数量时,控制各个节点并行执行客户端请求所对应的各个实例中的下一轮共识,所述设定数量为节点总数减去拜占庭节点数的最大值。
当每个节点都收到其它n-f个节点发送的反馈信息之后,其中n为节点总数量,f为拜占庭节点数的最大值(拜占庭容错共识本身就会允许一部分节点是恶意节点,也就是即使一部分恶意节点在上一轮共识中没有发送反馈信息给其它节点,也会进行下一轮共识),各个节点就会执行下一轮共识。一旦发现恶意节点,那么在进行下一轮共识之前就会删除恶意节点。
S103b,给每轮共识之后产生的实区块赋予局部索引号,所述局部索引号与局部日志位置相对应,一个实例上的各个区块(包括空区块)的各个局部索引号连续,所述实区块为节点执行所述客户端请求产生的数据包,各个所述实例的最小索引号相同。
每一轮共识之后,都会在上一轮共识的基础上,对新产生的实块赋予局部索引号。
S104b,比较各个所述实例上的所述索引号,得到最大的所述索引号。
S105b,在所述局部索引号不连续时填充空区块,所述空区块所占据的日志位置和各个所述节点执行完每轮共识产生的实区块所占据的日志位置连续,所述实区块为节点执行所述客户端请求产生的数据包。
该实施例中,新区块为空区块(为无共识结果的区块),填充空区块可以保证实例产生的区块日志位置连续。
举例说明,如图4所示,节点一领导的第三轮共识之后索引号为4,发现上一轮共识索引号为2,索引号不连续,因此在2和4之间填充空区块,填补之后日志位置3和4就会被占据,那么日志被占据的位置就是连续的。
S103b至S105b是基于如下原理:
如果该轮共识不是当前区间内实例的第一轮共识,则检查其上一轮共识的实区块,如果局部索引不连续,那么将实区块之间空缺的位置补充为空区块。如果实例上最后一个区块的, 那么将/>到/>的所有区块都补充为空区块。
在一个实施例中,控制各个节点并行执行客户端请求所对应的各个实例中的上一轮共识之后,监控各个实例中产生的区块局部索引;当其中一个实例中的区块局部索引大于实例所能容纳的区块局部索引最大值时,终止各个节点执行下一轮共识。
举例说明,每个实例所能容纳的区块最大局部索引为10(包括实区块和空区块),当前轮共识之后,当实例三的区块局部索引达到10个了,那么就不再执行下一轮共识。
在一个实施例中,步骤S300的具体过程如下:将各个所述区块中的所述实区块按照各个所述实区块的日志位置顺序发送至客户端;当上一个所述实区块的下一个区块为空区块时,停止发送所述空区块,发送所述空区块在全局日志中所对应的下一个所述实区块至客户端。
该实施例只发送非空区块,可以保证客户端只接收具有共识结果的实区块。
在一个实施例中,将拜占庭容错共识协议应用于由n个节点组成的系统,用集合N表示。假设有一个公钥基础设施 (PKI),并且每个节点都有一对用于签署消息(例如,区块和投票)的密钥。假设 f 节点的子集是 Byzantine,用集合 F 表示,并且可以任意行为。N\ F 中的其他节点是诚实的并严格遵守协议。为了保证安全,定义n ≥ 3f + 1。为简单起见,假设所有拜占庭节点都由单个对手控制,该对手在计算上是有限的。对手无法破解密码原语(除非概率可忽略不计)来伪造诚实节点的消息。假设诚实节点是完全可靠连接的,即每对诚实节点都与经过身份验证的可靠通信链路相连。采用部分同步网络模型,在该模型中,有一个已知的界限和一个未知的全局稳定时间 (GST),在 GST 之后,两个诚实节点之间的所有消息传输都在一个界限/>内到达。假设有 N 个 BFT 协议实例并行运行。一开始,N = n,表示每个节点领一个实例。每个实例轮流运行拜占庭容错协议。实例i中的第j轮共识记为/>(区块)。
在一个实施例中,共识方法所在的系统采用模块化设计,从而可以支持多种共识协议,如PBFT HotStuff等,具有很强的实用价值。
下面以PBFT协议为例说明本发明的共识方法的一种情况:
首先介绍协议中要用到的两种签名方式。
聚合签名:聚合签名是支持聚合的数字签名的一种变体,即给定一组用户I,每个用户在消息上有一个签名/>,聚合签名的生成者可以将这些签名聚合成一个唯一的短签名:/>,其中,AGG为聚合签名函数。给定聚合签名,可以生成签名者/>发身份和签名的原始信息/>,验证者可以确定是用户/>在消息/>上签名验证函数:/>,其中,VERIFY为验证函数。
门限签名:一个签名组(t,n)由n个成员组成,每个成员拥有相同的公钥pk和自己的私钥键。群内大于等于t的合法诚实成员的组合可以使用私钥/>进行签名,任何人都可以使用公钥pk进行签名验证。t为阈值,只有t或更多的合法成员才能代表该组签名。任何t-1或更少的组成员不能代表组签名(组签名用于表征节点组成的系统是否允许处理客户端请求)。同时,任何成员不得冒充其他成员签名。门限签名因其灵活性、效率以及对攻击和故障的高容忍度而被用于分布式网络。
PBFT协议:每个区块都是基于PBFT协议形成的,PBFT协议在原有的三阶段(preprepare,prepare,commit)基础上进行了小幅调整。在消息格式中,添加了实例索引id和局部索引号tn 参数,并将副本身份i移出签名。一般消息的格式为元组,其中 type ∈ {preprepare ,prepare,commit,htn}, v 表示发送消息的视图,n为高度数,d是客户端请求消息的摘要,id是实例索引,tn是消息的局部索引号,/>是副本i 的签名。参数id用于标记消息属于哪个实例,因为并行运行多个共识实例。参数tn用于共识结果的局部排序。副本身份i被移出签名,以便可以将多个签名聚合在 一起以减少消息大小。消息m 的 2f + 1 签名的聚合被称为m的 Quorum Certifificate (QC)。
在 pre-prepare 阶段,leader (领导者节点,也就是客户端将其请求发送至的节点,由领导者节点再将客户端请求发送至其它节点)为请求分配一个高度号n(在 PBFT 中称为 sequence number)和局部索引号tn,广播带有 m 和 htnQC 的 pre-prepare 消息到所有节点,并将消息添加到其本地存储中。消息(客户端请求)的形式:
其中 m 是客户端的请求消息,htnQC是tn 有效性的证明,即leader 已经从 2f +1 个 htn 中选出最高的 htn 作为新消息的tn。
Prepare阶段:其他节点接受 leader 广播的 pre-prepare 消息, 如果该消息满足以下条件:
pre-prepare 消息满足原始 PBFT 协议中的接受条件。
包含不少于 2f + 1 的有效 v, n, id 和签名的 scshapehtn 消息。htnQC 中的htn 是 2f + 1 消息中指示的最高 tn,tn 等于 htn加一。
Commit阶段:在收到来自不同节点的2f个消息后,节点i广播/> 到其他节点。如果 pre-pare 消息中携带的 tn 大于/>,则副本将其/> 更新为 tn,并为新的/>生成 QC。然后,备份向领导者发送 htn 消息以报告其当前的/>。消息格式为
最后,在收到2f个COMMIT消息后,节点对消息进行全局排序。
基于上述实施例,本发明还提供了一种终端设备,其原理框图可以如图5所示。该终端设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用于联盟链的并行拜占庭容错共识方法。该终端设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端设备的温度传感器是预先在终端设备内部设置,用于检测内部设备的运行温度。
本领域技术人员可以理解,图5中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端设备的限定,具体的终端设备以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种终端设备,终端设备包括存储器、处理器及存储在存储器中并可在处理器上运行的应用于联盟链的并行拜占庭容错共识程序,处理器执行应用于联盟链的并行拜占庭容错共识程序时,实现如下操作指令:
控制各个节点并行执行客户端请求所对应的各个实例,得到各个所述实例上的区块,所述实例为基于拜占庭容错共识的进程;
将所述区块在日志中所占据的位置根据局部索引和实例编号进行排序,得到各个所述区块所对应的全局日志位置顺序;
将各个所述区块按照各个所述区块的全局日志位置顺序发送至客户端。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种应用于联盟链的并行拜占庭容错共识方法,其特征在于,包括:
控制各个节点并行执行客户端请求所对应的各个实例,得到各个所述实例上的区块,所述区块所占据的局部日志位置连续,所述实例为基于拜占庭容错共识的进程;
将所述区块在日志中所占据的位置根据局部索引号和实例编号进行排序,得到各个所述区块所对应的全局日志位置顺序;
将各个所述区块按照各个所述区块的全局日志位置顺序发送至客户端;
所述控制各个节点并行执行客户端请求所对应的各个实例,得到各个所述实例上的区块,所述区块所占据的局部日志位置连续,所述实例为基于拜占庭容错共识的进程,包括:
获取各个所述节点执行完一轮共识之后各个所述实例上的区块局部索引,若干轮共识构成一个实例;
在所述区块局部索引不连续的所述实例上填充空区块,所述空区块为无共识结果的区块,所述空区块所占据的局部日志位置和各个所述节点执行完一轮共识产生的区块所占据的局部日志位置连续。
2.如权利要求1 所述的应用于联盟链的并行拜占庭容错共识方法,其特征在于,所述控制各个节点并行执行客户端请求所对应的各个实例,得到各个所述实例上的区块,所述区块所占据的局部日志位置连续,所述实例为基于拜占庭容错共识的进程,包括:
控制各个节点并行执行客户端请求所对应的各个实例中的各轮共识;
给每轮共识之后产生的实区块赋予局部索引号,所述局部索引号与局部日志位置相对应,一个实例上的各个区块的各个局部索引号连续,所述实区块为节点执行所述客户端请求产生的数据包,各个所述实例的最小局部索引号相同;
在同一实例上所述局部索引号不连续的位置处填充空区块直至所述局部索引号连续,所述空区块所占据的局部日志位置和各个所述节点执行完每轮共识产生的实区块所占据的局部日志位置连续,所述实区块为节点执行所述客户端请求产生的数据包。
3.如权利要求2 所述的应用于联盟链的并行拜占庭容错共识方法,其特征在于,所述控制各个节点并行执行客户端请求所对应的各个实例中的各轮共识,包括:
控制各个节点并行执行客户端请求所对应的各个实例中的上一轮共识之后,监控每个节点接收的反馈信息的数量,所述反馈信息用于表征其它节点在上一轮共识之后产生实区块结果;
当反馈信息的数量大于等于设定数量时,控制各个节点并行执行客户端请求所对应的各个实例中的下一轮共识,所述设定数量为节点总数减去拜占庭节点数的最大值。
4.如权利要求3 所述的应用于联盟链的并行拜占庭容错共识方法,其特征在于,所述控制各个节点并行执行客户端请求所对应的各个实例中的各轮共识,还包括:
控制各个节点并行执行客户端请求所对应的各个实例中的上一轮共识之后,监控各个实例中产生的区块局部索引;
当其中一个实例中的区块局部索引大于实例所能容纳的局部索引最大值时,终止各个节点执行下一轮共识。
5.如权利要求2 所述的应用于联盟链的并行拜占庭容错共识方法,其特征在于,由所述局部索引号构成的全局索引号按照区间分配,每个区间内的全局索引号的数量相同,区间之间的所述全局索引号连续。
6.如权利要求2 所述的应用于联盟链的并行拜占庭容错共识方法,其特征在于,所述将各个所述区块按照各个所述区块的全局日志位置顺序发送至客户端,包括:
将各个所述区块中的所述实区块按照各个所述实区块的全局日志位置顺序发送至客户端;
当上一个所述实区块的下一个区块为空区块时,停止发送所述空区块,发送所述空区块所对应的全局日志中下一个所述实区块至客户端。
7.如权利要求1 所述的应用于联盟链的并行拜占庭容错共识方法,其特征在于:所述客户端请求为基于联盟链产生的请求。
8.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的应用于联盟链的并行拜占庭容错共识程序,所述处理器执行所述应用于联盟链的并行拜占庭容错共识程序时,实现如权利要求1-7任一项所述的应用于联盟链的并行拜占庭容错共识方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用于联盟链的并行拜占庭容错共识程序,所述应用于联盟链的并行拜占庭容错共识程序被处理器执行时,实现如权利要求1-7任一项所述的应用于联盟链的并行拜占庭容错共识方法的步骤。
CN202310467479.9A 2023-04-27 2023-04-27 一种应用于联盟链的并行拜占庭容错共识方法及终端 Active CN116192868B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310467479.9A CN116192868B (zh) 2023-04-27 2023-04-27 一种应用于联盟链的并行拜占庭容错共识方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310467479.9A CN116192868B (zh) 2023-04-27 2023-04-27 一种应用于联盟链的并行拜占庭容错共识方法及终端

Publications (2)

Publication Number Publication Date
CN116192868A CN116192868A (zh) 2023-05-30
CN116192868B true CN116192868B (zh) 2023-09-08

Family

ID=86434880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310467479.9A Active CN116192868B (zh) 2023-04-27 2023-04-27 一种应用于联盟链的并行拜占庭容错共识方法及终端

Country Status (1)

Country Link
CN (1) CN116192868B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445711A (zh) * 2016-08-28 2017-02-22 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
CN109447810A (zh) * 2018-11-29 2019-03-08 杭州秘猿科技有限公司 并行区块链共识方法、系统、电子设备和计算机可读存储介质
CN112417046A (zh) * 2020-11-23 2021-02-26 宙通科技(南京)有限公司 一种应用于区块链共识机制的并行化拜占庭容错方法
KR20220013846A (ko) * 2020-07-27 2022-02-04 한국전자통신연구원 블록체인 네트워크의 블록 합의 방법 및 장치
CN115664724A (zh) * 2022-09-30 2023-01-31 蚂蚁区块链科技(上海)有限公司 一种区块链系统中的共识方法、区块链系统和共识节点
WO2023016428A1 (zh) * 2021-08-12 2023-02-16 清华大学 一种拜占庭容错方法、装置、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10944546B2 (en) * 2017-07-07 2021-03-09 Microsoft Technology Licensing, Llc Blockchain object interface
US11349775B2 (en) * 2020-03-16 2022-05-31 Nec Corporation Multi-resource and autonomous hierarchical brokering platform to enable slice resource exchange among heterogeneous network tenants
US11706320B2 (en) * 2021-05-28 2023-07-18 International Business Machines Corporation Scalable leader-based total order broadcast protocol for distributed computing systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445711A (zh) * 2016-08-28 2017-02-22 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
CN109447810A (zh) * 2018-11-29 2019-03-08 杭州秘猿科技有限公司 并行区块链共识方法、系统、电子设备和计算机可读存储介质
KR20220013846A (ko) * 2020-07-27 2022-02-04 한국전자통신연구원 블록체인 네트워크의 블록 합의 방법 및 장치
CN112417046A (zh) * 2020-11-23 2021-02-26 宙通科技(南京)有限公司 一种应用于区块链共识机制的并行化拜占庭容错方法
WO2023016428A1 (zh) * 2021-08-12 2023-02-16 清华大学 一种拜占庭容错方法、装置、电子设备及存储介质
CN115664724A (zh) * 2022-09-30 2023-01-31 蚂蚁区块链科技(上海)有限公司 一种区块链系统中的共识方法、区块链系统和共识节点

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种并行出块的区块链共识算法;邵黑龙 等;阜阳师范大学学报(自然科学版);第39卷(第2期);第85-90页 *

Also Published As

Publication number Publication date
CN116192868A (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
CN108616596B (zh) 基于动态授权和网络环境感知的区块链自适应共识方法
CN110784346B (zh) 一种基于信誉值的pbft共识系统及方法
CN111131209B (zh) 一种改进的高效共识方法、系统、计算机设备及存储介质
CN107295080B (zh) 应用于分布式服务器集群的数据存储方法和服务器
CN108847925B (zh) 一种基于树状结构的分片区块链生成方法
US8549142B2 (en) Replicated state machine utilizing view change protocol resilient to performance attacks
CN113141414B (zh) 一种cnfs协议中区块链节点的分组多链异步共识方法
CN111092896B (zh) 基于优化paxos的食品溯源分布式数据同步方法
CN112600678B (zh) 一种数据处理方法、装置、设备及存储介质
WO2022217807A1 (zh) 区块链共识节点选择方法、装置、计算机设备和存储介质
CN111371877A (zh) 一种异构联盟链的共识方法
CN111522874B (zh) 区块链共识方法、装置、计算机设备和存储介质
Jalalzai et al. Window based BFT blockchain consensus
KR20200081533A (ko) 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법
CN110445795B (zh) 一种区块链认证唯一性确认方法
He et al. An improvement of consensus fault tolerant algorithm applied to alliance chain
CN112395113A (zh) 实用拜占庭容错共识方法及装置、可读存储介质
CN111679978B (zh) 一种程序测试方法、程序测试装置、电子设备及存储介质
CN110705893A (zh) 一种业务节点管理方法、装置、设备以及存储介质
Wang et al. A node rating based sharding scheme for blockchain
CN112398949A (zh) 交易确认方法、系统、装置和计算机设备
CN113259326B (zh) 基于联盟链网络的共识优化方法、装置和计算机设备
CN111064813B (zh) 在区块链共识处理时进行处理消息同步的方法及装置
CN116192868B (zh) 一种应用于联盟链的并行拜占庭容错共识方法及终端
WO2023179056A1 (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
GR01 Patent grant
GR01 Patent grant