CN110800258A - 用于结束视图更改协议的系统和方法 - Google Patents

用于结束视图更改协议的系统和方法 Download PDF

Info

Publication number
CN110800258A
CN110800258A CN201980002964.0A CN201980002964A CN110800258A CN 110800258 A CN110800258 A CN 110800258A CN 201980002964 A CN201980002964 A CN 201980002964A CN 110800258 A CN110800258 A CN 110800258A
Authority
CN
China
Prior art keywords
node
nodes
view
sequence number
messages
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
Application number
CN201980002964.0A
Other languages
English (en)
Other versions
CN110800258B (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN110800258A publication Critical patent/CN110800258A/zh
Application granted granted Critical
Publication of CN110800258B publication Critical patent/CN110800258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • 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
    • G06Q30/00Commerce
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

用于执行视图更改的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一将在由多个(N个)节点维护的区块链上实施,并且由所述N个节点中处于视图更改协议的第一节点执行。所述方法包括:分别从N个节点中的至少Q个第二节点获得至少Q个第一消息,至少Q个第一消息各自包括(1)第二节点已知的指示N个节点中指定的主节点的一致性当前视图,以及(2)第二节点已知的一致性当前序列号,所述当前序列号与最新交易或最新区块相关联,所述当前序列号大于所述第一节点已知的第一序列号;并且响应于获得至少Q个第一消息,结束所述视图更改协议。

Description

用于结束视图更改协议的系统和方法
技术领域
本申请一般涉及用于执行视图更改的方法和设备,尤其涉及用于在实用拜占庭容错(PBFT)系统中结束视图更改的方法和设备。
背景技术
实用拜占庭容错(PBFT)是一种可以在分布式系统如区块链系统中实现的共识机制。PBFT共识机制使得分布式系统能够在安全性和活跃性方面达成足够的共识,尽管系统的某些节点可能发生故障(例如,由于网络连接不良或以其他方式变得有故障)或向其他对等方传播不正确的信息(例如,恶意行动)。这种机制的目的是通过减轻无功能节点对系统的正确功能的影响以及对由系统中功能节点(例如,无故障和诚实节点)达成的共识的影响来抵御灾难性的系统故障。
PBFT共识机制侧重于通过假设存在独立节点故障和由特定并独立的节点传播的操纵消息来提供容忍拜占庭故障(例如,无功能节点)的实用拜占庭状态机复制。例如,在这种PBFT共识机制中,区块链系统中的所有节点按顺序排序,其中一个节点是主节点(也称为领导节点或主控节点),其他节点称为备份节点(也称为追随者节点)。系统内的所有节点彼此通信,并且目标是让所有诚实节点对系统状态达成一致/共识。
例如,为了使PBFT共识机制起作用,假设在给定的漏洞窗口中,区块链系统中的无功能节点的数量不能同时等于或超过系统中总节点数的三分之一。只要至多F个节点同时是无功能节点,该方法就有效地提供活跃性和安全性。换句话说,在一些实现中,PBFT共识机制可以容忍的无功能节点的数量F等于(N-1)/3向下取最接近整数,其中N表示系统中的节点总数。在一些实现中,实现PBFT共识机制的区块链系统可以处理多达F个拜占庭故障,其中总共存在至少3F+1个节点。为了执行共识验证,每个节点在主节点的领导下执行正常操作协议。当节点认为主节点是无功能的时,所述节点可以进入视图更改协议,以启动主节点的更改。在新主节点在大多数节点同意下替换无功能主节点之后,这些节点切换回正常操作协议。
在当前技术中,节点根据如下的传统程序退出视图更改协议:等待大多数节点也进入视图更改协议并同意主节点是无功能的。在传统的视图更改协议中,这种情况是当至少2F+1个节点进入视图更改协议并分别组播视图更改消息时,获得至少2F+1个视图更改消息的新主节点组播新的视图消息以帮助这些节点恢复正常操作。然而,在一些情况下,网络通信中断可能导致节点错误地确定主节点是无功能的并且进入视图更改协议,而其他节点仍处于正常操作。结果,所述节点陷入视图更改协议中并且有效地关闭共识过程。在使陷入的节点恢复正常操作之前的延迟是不可预测的,因为它可能取决于实际的主节点故障或功能失灵何时发生。因此,在等待其他节点加入视图更改时浪费了陷入的节点的计算能力。因此,期望提供可以帮助节点退出视图更改协议的替代机制。
发明内容
本说明书的各种实施例包括但不限于用于执行视图更改的系统、方法和非瞬态计算机可读介质。
根据一个实施例,计算机实现的待在由多个(N个)节点维护的区块链上实施的视图更改方法由N个节点中处于视图更改协议的第一节点执行。所述方法包括:分别从N个节点中的至少Q个第二节点获得至少Q个第一消息,至少Q个第一消息各自包括(1)第二节点已知的指示N个节点中指定的主节点的一致性当前视图以及(2)第二节点已知的一致性当前序列号,所述当前序列号与第二节点提交(commit)的最新区块或最新交易相关联,当前序列号大于第一节点已知的第一序列号,Q(定额,quorum)是(N+F+1)/2向上取最接近整数,F是(N-1)/3向下取最接近整数;并且响应于获得至少Q个第一消息,结束视图更改协议。
在一些实施例中,获得至少Q个第一消息包括:分别从至少Q个第二节点获得指示至少Q个第二节点同意将下一区块添加到区块链中的至少Q个提交消息,所述Q个提交消息分别包括Q个第一消息。
在其他实施例中,获得至少Q个第一消息包括:分别从至少Q个第二节点获得指示至少Q个第二节点同意将下一区块添加到区块链中的至少Q个提交消息,所述Q个第一消息分别被附加到所述Q个提交消息。
在其他实施例中,当前序列号包括由第二节点维护的区块链的第二副本的长度;第一序列号包括由第一节点维护的区块链的第一副本的长度。
在其他实施例中,当前序列号包括第二节点提交的最新交易的序列号;第一序列号包括第一节点提交的最新交易的序列号。
在一些实施例中,第一消息包括认证当前视图和当前序列号均为第二节点已知的数字签名。
在其他实施例中,第一消息还包括最新区块或最新交易的摘要。
在其他实施例中,所述摘要包括最新区块或最新交易的哈希值。
在其他实施例中,所述摘要包括第二节点已知但第一节点未知的最新区块的默克尔(Merkle)根。
在一些实施例中,结束视图更改协议包括:将由第一节点维护的区块链的第一副本与由第二节点维护的区块链的第二副本同步;并且退出视图更改协议,以使用第一节点的一致性当前视图进入正常操作协议。
在其他实施例中,至少Q个第二节点已知的当前序列号是(n+1);并且第一节点已知的第一序列号是n。
在其他实施例中,至少Q个第二节点的当前视图是v;以及当处在视图更改协议中时,第一节点具有大于v的第一视图。
在其他实施例中,N个节点形成实用拜占庭容错(PBFT)网络,其中N个节点之一充当主节点而其他(N-1)个节点充当备份节点。
在一些实施例中,视图更改系统包括:一个或多个处理器;和耦合到所述一个或多个处理器并且其上存储有指令的一个或多个计算机可读存储器,所述指令能由所述一个或多个处理器执行以执行任何前述实施例的方法。
在其他实施例中,视图更改装置包括用于执行任何前述实施例的方法的多个模块。
根据另一实施例,视图更改系统用于维护区块链,其中多个(N个)节点维护所述区块链,所述系统充当N个节点中处于视图更改协议的第一节点。所述系统包括一个或多个处理器和一个或多个非瞬态计算机可读存储器,所述非瞬态计算机可读存储器耦合到一个或多个处理器并配置有可由一个或多个处理器执行的指令,以促使所述系统执行包括以下的操作:分别从所述N个节点中的至少Q个第二节点获得至少Q个第一消息,所述至少Q个第一消息各自包括(1)第二节点已知的指示N个节点中指定的主节点的一致性当前视图以及(2)第二节点已知的一致性当前序列号,所述当前序列号与第二节点提交的最新区块或最新交易相关联,当前序列号大于第一节点已知的第一序列号,Q(定额)为(N+F+1)/2向上取最接近整数,F是(N-1)/3向下取最接近整数;并且响应于获得至少Q个第一消息,结束视图更改协议。
根据又一实施例,非瞬态计算机可读存储介质用于维护区块链,其中多个(N个)节点维护所述区块链,所述存储介质与N个节点中处于视图更改协议的第一节点相关联。所述存储介质配置有可由一个或多个处理器执行的指令,以促使一个或多个处理器执行包括以下的操作:分别从N个节点中的至少Q个第二节点获得至少Q个第一消息,所述至少Q个第一消息各自包括(1)第二节点已知的指示N个节点中指定的主节点的一致性当前视图以及(2)第二节点已知的一致性当前序列号,所述当前序列号与第二节点提交的最新区块或最新交易相关联,当前序列号大于第一节点已知的第一序列号,Q(定额)是(N+F+1)/2向上取最接近整数,F是(N-1)/3向下取最接近整数;并且响应于获得至少Q个第一消息,结束视图更改协议。
根据另一实施例,视图更改装置用于维护区块链,其中多个(N个)节点维护所述区块链,所述装置充当N个节点中处于视图更改协议的第一节点。所述装置包括获取模块和结束模块,所述获取模块用于分别从N个节点中的至少Q个第二节点获得至少Q个第一消息,所述至少Q个第一消息各自包括(1)第二节点已知的指示N个节点中指定的主节点的一致性当前视图以及(2)第二节点已知的一致性当前序列号,所述当前序列号与第二节点提交的最新区块或最新交易相关联,当前序列号大于第一节点已知的第一序列号,Q(定额)是(N+F+1)/2向上取最接近整数,F是(N-1)/3向下取最接近整数;所述结束模块用于响应于获得至少Q个第一消息,结束视图更改协议。
本说明书中公开的实施例具有一个或多个技术效果。在一些实施例中,所述方法和系统可以确保PBFT共识系统中已进入视图更改协议的节点(例如,第一节点)可以有效地退出视图更改协议并恢复正常操作协议。在其他实施例中,当正常操作协议中的第二节点组播提交消息时,它可以向所述提交消息添加或附加第一消息,所述第一消息包括第二节点已知的当前视图和当前序列号。当前视图指示第二节点的主节点视图,当前序列号指示第二节点的最新提交的交易或与第二节点维护的区块链的最新区块相关联的区块链长度(也称为区块长度)。在其他实施例中,陷入视图更改协议的第一节点可以从第一消息获得当前视图和当前序列号。在接收到定额数量Q的一致性第一消息时,第一节点可以将它们与其自己的视图和序列号进行比较,以确定大多数节点是否仍处于正常操作中。如果大多数其他节点仍处于正常操作中,则第二节点可以结束视图更改协议并恢复正常操作协议。在其他实施例中,如第一消息中的序列号所指示的,大多数节点可能已经对共识验证序列中的下一交易或下一区块达成共识,所述下一交易或下一区块尚未被第一节点识别。通过意识到大多数节点没有进入视图更改,第一节点可以顺利地结束视图更改协议。在一些实施例中,如果大多数节点没有也进入视图更改且对用于结束视图更改协议的新视图达成一致,第一节点可以结束视图更改。因此可以优化正常操作中的节点数量以及贡献其计算能力的节点数量。
参考附图考虑以下描述和所附权利要求,本文公开的系统、方法和非瞬态计算机可读介质的这些和其他特征,以及相关结构元件的操作方法和功能以及部件的组合和制造经济性将变得更加明显。所有这些附图形成本说明书的一部分,其中相同的附图标记表示各附图中的对应部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,而不是限制性的。
附图说明
图1示出了根据各种实施例的网络。
图2A示出了PBFT的正常操作协议。
图2B示出了具有一个无功能副本的PBFT的正常操作协议。
图2C示出了PBFT的正常操作协议和视图更改协议。
图3A示出了正常操作协议和视图更改协议之间切换路径的流程图。
图3B示出了根据各种实施例的在正常操作协议和视图更改协议之间切换路径的流程图。
图4示出了根据各种实施例的视图更改退出步骤的流程图。
图5A示出了根据各种实施例的视图更改方法的流程图。
图5B示出了根据各种实施例的视图更改方法的流程图。
图6示出了根据各种实施例的视图更改系统的框图。
图7示出了计算机系统的框图,其中可以实现本文描述的任何实施例。
具体实施方式
本文公开的实施例包括但不限于可以在PBFT系统中实现的视图更改系统、方法和非瞬态计算机可读介质。在各种实施例中,提供了退出视图更改协议并恢复正常操作协议的路径。已进入视图更改的节点在无需通过传统视图更改协议的情况下可以被恢复到正常操作,传统视图更改协议需要至少Q个节点进入视图更改。Q(定额)是(N+F+1)/2向上取最接近整数,N表示节点总数并且是不小于4的整数,F是(N-1)/3向下取最接近整数。与PBFT类似,所公开的系统、方法和非瞬态计算机可读介质可以应用于其他共识协议,例如SecureRing、Byzantine Paxos、Q/U、HQ、Zyzzvyva、ABsTRACTs、RBFT、Adapt、Tangaroa、CheapBFT、MinBFT、FastBFT等。PBFT的各个方面可以参考M.Castro,B.Liskov,“PracticalByzantine Fault Tolerance,”Proceedings of the Third Symposium on OperatingSystems Design and Implementation,(Feb 1999),其通过引用完整地并入本文。
图1示出了根据各种实施例的网络120。下面给出的组件旨在说明。如图所示,网络120可以包括网络系统112。网络系统112可以包括在诸如服务器、计算机、移动电话之类的一个或多个计算设备中实现的一个或多个节点(例如,节点0、节点1、节点2、节点3、节点4、节点i等)。网络系统112可以安装有适当软件(例如,共识程序)和/或硬件(例如,有线连接、无线连接),以访问网络120或附加系统的其他设备。所述节点可以包括一个或多个处理器以及耦合到所述一个或多个处理器的一个或多个存储器。所述存储器可以是非瞬态的且计算机可读的,并且配置有可由所述一个或多个处理器执行的指令,以促使所述一个或多个处理器执行本文所述的操作。尽管在该图中节点被示为单个组件,但是应当理解,这些节点可以实现为单个设备或耦合在一起的多个设备。通常,节点能够彼此通信并且与网络系统112外部的其他设备通信。例如,通过一个或多个有线网络或无线网络(例如,因特网),数据可以被传送。
在各种实施例中,网络系统112可以被实现为包括各种区块链节点的区块链网络系统。如图所示,所述区块链网络系统可以包括多个区块链节点(例如,节点0、节点1、节点2、节点3、节点4、节点i等)。所述区块链节点可以形成网络(例如,点对点网络,Peer-to-Peer network),其中一个区块链节点与另一区块链节点通信。所示的区块链节点的顺序和数量仅仅是示例性的并且是为了简化说明。所述区块链节点可以在服务器、计算机等中被实现。每个区块链节点可以对应于经由各种类型的通信方法诸如TCP/IP耦合在一起的一个或多个物理硬件设备或虚拟设备。根据分类,区块链节点可以包括全量节点、Geth节点、共识节点等。
在各种实施例中,所述区块链网络系统可以与诸如节点A和节点B(例如,轻量节点)的其他系统和设备交互。所述交互可以涉及数据的发送和接收,以便例如接收请求并返回所述请求的执行结果。在一个示例中,用户A可能想要通过区块链网络与用户B进行交易。所述交易可以涉及将用户A的账号中的某些资产转移到用户B的账号。用户A和用户B可以使用各自的安装有适当区块链软件(例如,加密货币钱包)的设备节点A和节点B进行交易。节点A可以通过与节点0的通信来访问区块链,节点B可以通过与节点1的通信来访问区块链。例如,节点A可以通过节点0向区块链提交交易请求,节点B可以通过节点1向区块链提交智能合约执行请求。在区块链之外,节点A和节点B可以具有其他通信信道(例如,不经过节点0和节点1的常规因特网通信)。
所述区块链节点可以各自包括存储器或耦合到存储器。在一些实施例中,存储器可以存储池数据库(pool database)。所述池数据库可以被分布式方式的多个区块链节点访问。例如,所述池数据库可以分别存储在区块链节点的存储器中。所述池数据库可以存储由一个或多个用户设备(例如由用户操作的节点A和节点B)提交的多个交易。
区块链节点形成网络(例如,P2P网络),所述网络,通过共识,在称为区块链的分布式分类账中记录交易。P2P网络的参与者可以被称为维护区块链的节点。在区块链P2P网络中,每个节点参与共识验证并存储区块链的完整分类账副本。每个节点通过区块链共识方法确认批量交易,以确保所有节点具有一致的确认结果,从而确保所有节点具有一致的区块链副本。
区块链共识方法之一是实用拜占庭容错(PBFT)。拜占庭容错源于拜占庭一般问题。对于P2P网络系统,只要这些无功能节点的数量在一定限度内,所述系统就可以继续正常运行。这种系统称为拜占庭容错系统。PBFT是拜占庭容错网络能力优化的一个例子。PBFT通过复制服务器并将客户端交互与服务器副本同步,为网络提供拜占庭状态机。
PBFT操作的核心是维护记录在区块链上的信息的一致性全局视图,这形成了使用户能够以分散方式彼此交互的主干。PBFT共识模型的安全性对区块链平台至关重要。所述共识模型的两个关键属性是:1)安全性或共识性:所有诚实节点产生相同的有效输出;2)活跃性:共识中的所有诚实节点最终都会产生值而不会在中间步骤停滞。安全可靠的PBFT共识协议需要容忍各种各样的拜占庭行为,包括网络节点故障、网络分区、消息延迟、无序消息传递、消息损坏等,并且在节点中达成共识,只要系统内的无功能节点数量是有限的。为此,PBFT模型在两种互斥协议中的任何一种下工作:正常操作/共识协议和视图更改协议,这将在下面进一步描述。在本说明书中,无功能意味着有故障和/或恶意,起作用意味着无故障和诚实。可能的故障或恶意行为可以包括:消息传递故障、消息传递延迟、无序消息传递、拜占庭故障(向不同节点传递任意消息,违反协议)等。
在一些实施例中,实用拜占庭容错(PBFT)系统可以包括N个节点,其中N个节点之一充当主节点,而N个节点中的其他节点充当备份节点。主节点指定可以不被固定于特定节点,因为可以通过视图更改协议选择另一节点成为新主节点。例如,可以通过取模运算选择主节点,其中具有最低序列号(模视图号)的功能节点成为新主节点。当前视图和节点总数N可以确定主节点id=(view+1)mod N。在PBFT中,每次选择新主节点时都会更改视图。例如,随着每个视图更改,视图从零开始单调增加。也就是说,所述视图可以随主节点更改而更改。
在一些实施例中,所述主节点在视图v处运行,并且执行正常操作协议。对于正常操作,所述主节点和/或备份节点可以从一个或多个客户端接收与未验证交易相关联的请求。例如,作为客户端的节点A可以向主节点和/或备份节点提交请求。所述请求可以包括未验证交易(例如,要添加到区块链的新区块中的交易)。所述未验证交易可以包括例如基于区块链的金融交易、智能合约部署或执行交易等。所述主节点和备份节点可以执行或不执行交易的一些初步验证。接收所述请求的备份节点可以将接收到的请求转发到主节点。一旦主节点处的交易达到特定级别或以其他方式满足触发条件,则所述主节点可以发起一轮共识验证,并提议对未验证交易的验证结果。所述备份节点可以响应共识,并确认所述提议以达成共识。对这些节点的要求是它们是确定性的并且以相同状态开始。最终的结果是,所有诚实节点对记录的顺序达成共识,所有诚实节点要么接受它,要么拒绝它。一旦经过共识验证,所述交易就可以被打包到区块链的新区块中,并被添加到由这些节点维护的本地区块链副本中。此外,最初发送请求的客户端(例如,节点A)被通知。
为了保持安全,主要的PBFT方法包括正常操作协议的三个阶段:预准备、准备和提交。参考图2A至图2C,PBFT系统的示例包括四个副本(副本是节点的另一个术语):副本0、副本1、副本2和副本3。数字0至3是可用于确定新主节点的副本序列号。副本0可以对应于主节点0,副本1、副本2和副本3可以对应于备份节点1、备份节点2和备份节点3。例如,所述副本可以在上述网络系统112的各种区块链节点中被实现。图2A中示出了正常操作协议,其中不存在无功能节点,图2B中示出了另一种正常操作协议,其中副本3是无功能节点。对于这两种情况,可以将正常操作协议划分为请求阶段、预准备阶段、准备阶段、提交阶段和回复阶段。
参考图2A和图2B,当客户端向负责提倡请求的主节点(副本0)提交请求(消息)时,正常操作在请求阶段开始。所述请求可以包括客户端的信息、请求操作(例如,用于共识验证的交易请求)和请求时间戳。所述客户端(也称为客户端节点)可以例如在上述节点A中被实现。节点A可以是轻量节点(例如,在移动电话中被实现)。附加地或替代地,客户端可以将请求提交给备份节点,所述备份节点在预准备阶段之前将所述请求转发到主节点。无论是主节点还是备份节点接收所述请求,相应节点都可以将所接收的请求组播到网络中的其他节点。因此,主节点可能最终以某种方式获得客户端提交给共识网络的未决请求。
因此,主节点充当领导者并且领导备份节点验证与请求相关联的交易。主节点负责在其视图中对请求的执行进行排序。在预准备阶段,主节点可以验证所获得的请求并为每个请求提出序列号。因此,每个请求可以被分配递增的序列号,从而被按顺序排列。另外,所述预准备消息可以包括区块长度。所述区块长度可以基于区块链的当前长度。例如,如果区块链当前具有1000个区块,则区块长度可以是1000,其表示区块链中已经存在1000个区块,或者可以是1001,其表示与请求相关联的交易被提议打包到区块链中尚未被其他节点验证的第1001个区块中。所述主节点可以转发请求以及序列号和/或区块长度。例如,在获得所述请求之后,所述主节点可以通过分配序列号来将请求按照用于执行相应交易的顺序排列,并将其存储到列表中。所述主节点可以向PBFT网络系统中的每个备份节点(副本1至副本3)发送预准备消息。如图2A所示,所述主节点可以将预准备消息中的列表组播到备份节点或将所述列表与预准备消息一起组播到备份节点。如图2B所示,即使备份节点(副本3)是无功能的并且主节点不知道这一点,所述主节点仍然可以发送预准备消息。每个备份节点都接受预准备消息,只要所述预准备消息是有效的。预准备消息可以包含允许确定消息的有效性的视图号、序列号、签名、摘要(d)、其他元数据等。
在准备阶段,如果备份节点接受预准备消息,则可以通过将准备消息组播到包括主节点的PBFT网络系统中的其他节点来跟踪。组播准备消息表示发送方节点同意该顺序。每个准备消息,只要是有效的,就被接收节点接受。所述准备消息的有效性可以基于视图号、序列号、签名、摘要(d)、其他元数据等被类似地确定。如果节点已经从主节点接收原始请求,已经预准备(例如,通过组播预准备消息),并且已经获得至少(Q-1)个不同的、有效的且与预准备消息匹配的一致性准备消息,则节点准备就绪。(Q-1)个准备消息可以包括组播准备消息。Q(定额)是(N+F+1)/2向上取最接近整数,N表示节点总数并且是不小于4的整数,F是(N-1)/3向下取最接近整数。Q个节点的PBFT网络系统可以容忍多达F个拜占庭故障。在一些实施例中,当N至少为(3F+1)时,Q为(2F+1)。这里,需要(Q-1)个而不是Q个准备消息,因为预准备消息可以被视为主节点的准备消息的等效物(尽管主节点本身可以不发送准备消息)。如果将预准备消息计算为另一个准备消息,那么将有至少Q个不同且有效的准备消息,这些准备消息指示所有节点中的至少Q个节点接受预准备消息,其中至多F个无功能节点可以被容忍。因此,所述预准备阶段至准备阶段确保至少(Q-F)个功能节点(Q个准备节点但考虑了至多F个无功能节点)同意,如果在视图v中执行请求,则将按照其序列号执行所述请求。所述准备阶段确保视图中每个请求的容错一致性排序。
在一些实施例中,在接收到预准备消息和(Q-1)个准备消息之后,所述备份节点可以验证该顺序并将验证结果与主节点在预准备消息中写入的提议验证结果进行比较。可以有多种方法来验证该顺序。例如,所述提议验证结果可以包括写入摘要(d)中的提议的Merkle Patricia Trie根。所述备份节点可以根据该顺序对与请求相关联的交易进行排列,并计算Merkle Patricia Trie根以与提议的Merkle Patricia Trie根进行比较。所述计算还可能需要某些现有信息,例如区块链中现有区块的节点哈希值。所述比较产生由备份节点计算的摘要(D(m))。如果摘要(D(m))与摘要(d)一致,则验证成功。一旦被验证,所述备份节点可以同意所述请求的排序(例如,将与请求相关联的交易打包到区块链的新区块中的顺序)。类似地,所述备份节点可以验证它接收的提交消息(下面相对于提交阶段描述的)是否包括相同摘要D(m),以确定其他节点是否也同意所述请求的排序。如果准备节点已经获得Q个提交消息并且已经执行了具有较低序列号的所有请求,则所述节点可以执行所述请求。
在一些实施例中,所述预准备消息可以包括新区块的摘要(d)或者与执行所述请求有关的其他信息(例如,与所述请求相关联的交易)。所述摘要(d)(例如,哈希值)可以是将哈希算法应用于诸如交易的数据的数值结果。所述备份节点可以执行交易以确认所述摘要(d)。对于多个请求,所述备份节点可以根据顺序(即,所述请求的序列号)执行所述请求以获得摘要D(m)。如果D(m)和(d)是一致的,则所述备份节点组播提交消息(下面针对提交阶段描述的),所述提交消息指示备份节点与主节点的验证结果一致。在一些实施例中,所述提交消息指示组播提交消息的备份节点同意预准备消息,并且已经从不同节点获得(Q-1)个或更多个有效的一致性准备消息。对于特定序列号的未决请求,如果准备节点已经获得Q个提交消息并且已经执行具有较低序列号的所有请求,则所述节点可以执行所述请求。
在提交阶段,如果节点准备就绪,则所述节点可以将提交消息组播到其他节点。所述节点可以从其他节点接收提交消息。只要提交消息是有效的,每个节点都接受它。所述提交消息可以包含允许确定消息的有效性的视图号、序列号、签名、摘要、其他元数据等。如果节点已经获得至少Q个不同的、有效的一致性提交消息,则表示定额数量的节点已经提交(即,至少(Q-F)个诚实节点准备就绪)并且已达成共识。至少Q个有效的提交消息可以包括组播提交消息。因此,准备阶段至提交阶段确保至少(Q-F)个功能节点(Q个提交消息但考虑了最多F个无功能节点)同意,请求最终将在视图v中按照其序列号被执行。由于节点可以在不同视图(例如,当一些节点已经进入新视图并且一些其他节点依然在先前视图中时)中提交,所接收的提交消息可以对应于在不同视图中执行的提交。所述提交阶段确保跨视图的每个请求的容错一致性排序,因为功能节点对每个请求的序列号达成一致。
在一些实施例中,如果节点已经获得至少Q个不同的、有效的一致性提交消息,则所述节点可以执行相应请求。例如,一旦获得Q个提交消息,就意味着新区块被共识验证。因此,所述节点可以将新区块打包到本地维护的区块链副本中。否则,所述备份节点可以直接触发视图更改协议。
在回复阶段,在执行所述请求之后,所述节点直接向客户端发送回复。对于打包到区块链中的交易,所述回复可以包括所述交易在区块链中的地址。由于允许多达F个故障,所以客户端在接受结果之前等待来自不同节点的具有有效签名以及具有相同请求时间戳和相同执行结果的(Q-F)个回复。对于图2A和图2B中所示的PBFT网络系统,总共存在四个节点,因此可以容忍至多一个(N=4,Q=3和F=1)无功能节点。因此,即使副本3是无功能的,在图2B中仍然可以达成共识。
为了保持活跃性,如果主节点没有组播请求的情况经过了特定时间量,则可以在视图更改协议中替换主节点。例如,所述备份节点可以维护计时器。所述备份节点在接收请求并且计时器尚未运行时启动计时器。当所述备份节点不再等待执行请求时(即,所述请求被执行),所述备份节点停止计时器,但是如果在那时它正在等待执行一个或多个其他请求,则重新启动计时器。如果所述计时器到期,则备份节点可以确定主节点是无功能的。因此,所述备份节点可以将视图更改消息组播到其他节点。又例如,所述备份节点可以确定主节点是无功能的。因此,所述备份节点可以组播视图更改消息。再例如,客户端可以使用计时器来确定在客户端将所述请求发送到主节点之后是否已经过太多时间而没有接收到响应。当该计时器到期时,客户端将其请求发送到所有节点。如果节点已经获知该请求,则忽略该重新广播。如果节点未获知该请求,它将启动计时器。一旦所述节点的计时器超时,基于怀疑主节点是无功能的,所述节点通过将视图更改消息组播到其他备份节点来启动视图更改过程。所述视图更改消息包括系统状态(以存档消息的形式,包括在先前正常操作期间其自己的准备消息),以便其他节点将获知发送方节点未发生故障。
绝对多数诚实节点可以确定主节点是否是无功能的,并在用下一主节点作为替换的情况下删除该主节点。当足够的节点认为主节点发生故障时,发生视图更改。图2C的一部分示出了视图更改协议。参考图2C,在视图更改阶段,如果当前视图是v,则节点p=(v+1)mod N等待获得Q个有效视图更改消息以成为新主节点,其中p是副本/节点序列号,v是视图号,N是副本/节点的总数。Q个视图更改消息可以包括组播视图更改消息。由于先前视图是v,因此视图更改消息可以各自包括新视图v+1。一旦新主节点p已经获得Q个视图更改消息,它就组播新视图消息。该消息包含接收的所有有效视图更改消息以及由于主节点故障而可能尚未完成的所有请求的集合。新主节点可以决定最新的检查点,并且此外,确保功能节点赶上最新状态,这可能涉及在新视图中重新提交先前的请求(例如,准备就绪、提交、但未被执行的请求)。当视图更改发生时,不会接受任何新请求。在节点接收包含Q个视图更改消息的有效新视图消息后,它将进入视图v+1并处理未完成的请求的集合。此后,正常操作协议继续进行,并且节点重做在最新的稳定检查点的序列号和准备消息中的最高号之间的请求,但是避免重新执行请求。在图3A中示出了节点在正常操作协议和视图更改协议之间的相应状态切换。如图3A所示,例如,备份节点的超时可以触发从正常操作协议(例如,在正常操作协议的任何阶段期间)切换到视图更改协议(例如,开始视图更改阶段)。在执行视图更改协议之后,一旦获得有效的新视图消息,所述备份节点可以退出视图更改协议并恢复正常操作协议以执行未决请求。有效的新消息可以包括来自不同节点的Q个视图更改消息。
如图3B所示,根据各种实施例,可以为节点提供从视图更改协议切换到正常操作协议的替代路径。在一些实施例中,所述视图更改协议中的节点可以获得Q个第一消息以结束视图更改协议。所述第一消息可以包括当前视图、当前序列号和/或摘要。基于所述第一消息,所述视图更改协议中的节点可以确定大多数其他节点处于正常操作中并因此退出视图更改。下面参考图4至图6描述更多细节。
图4示出了根据本说明书的各种实施例的视图更改退出步骤410的流程图。步骤410可以由图1的系统112的一个或多个组件(例如,上述节点0、节点1、节点2、......或节点i或者类似设备,或者任何节点和一个或多个附加设备例如节点A的组合)实现。步骤410可以由一个或多个区块链节点(例如,主节点、备份节点)实现。主节点和备份节点可以是PBFT模型中定义的节点。步骤410可以由包括各种硬件机器和/或软件的视图更改系统或设备(例如,计算机、服务器)实现。例如,视图更改退出系统或设备可以包括一个或多个处理器和一个或多个非瞬态计算机可读存储介质(例如,一个或多个存储器),所述存储介质耦合到所述一个或多个处理器并配置有可由所述一个或多个处理器执行的指令,以促使所述系统或设备(例如,处理器)执行步骤410。下面的操作旨在说明。根据实施方式,操作可以包括以各种顺序执行或并行执行的附加、更少或替代步骤。
在步骤411,第一节点(例如,备份节点)可以进入视图更改协议。在步骤412,第一节点可以组播视图更改消息。为了进入视图更改,第一节点结束正常操作协议并进入上述视图更改协议的视图更改阶段。在一个实施例中,第一节点可以通过组播视图更改消息来进入视图更改协议。例如,第一节点可以将视图更改消息组播到主节点和其他备份节点。第一节点可以确定主节点有故障或者是无功能的,并且根据视图更改协议开始组播视图更改消息。
主节点和(N-1)个备份节点可以形成PBFT共识系统。这里,主节点可能是或可能不是真正无功能的。如果主节点确实是无功能的,则大多数备份节点(例如,Q个备份节点)可以各自进入视图更改协议,并且各自组播视图更改消息。当第一节点获得Q个视图更改消息时,它可以确定大多数节点已达成主节点是无功能的并且需要选择新主节点的共识。所述视图更改协议的其余部分可以遵循。但是,如果主节点仍在运行,则第一节点可以根据以下步骤结束视图更改协议。对于这种情况,第一节点可能由于错误、不稳定的连接和/或其他原因而进入视图更改,这导致发送和/或接收预准备消息、准备消息或提交消息的延迟,如前所述。
在步骤413,第二节点可以各自组播第一消息。在一些实施例中,第二节点可以仍然处于正常操作协议中并执行上述过程(例如,接收预准备消息、组播准备消息、接收准备消息、组播提交消息、接收提交消息等等)。在正常操作协议中,第二节点可以各自向第一节点发送第一消息或者组播第一消息,使得第一节点可以获得第一消息。在一些实施例中,第一消息可以包括在提交阶段组播的提交消息中。在其他实施例中,可以将第一消息附加到提交阶段组播的提交消息中。在其他实施例中,例如,在提交消息被组播之后,第一消息可以被独立地发送或组播。
在一个实施例中,第一消息可以包括第二节点已知的当前视图和当前序列号。当前视图可以指示哪个节点是第二节点已知的主节点。当前序列号可以指示(1)第二节点在提交阶段提交的最新请求(例如,交易请求)的序列号,或者指示(2)第二节点在提交阶段提交的最新区块的区块长度。所述区块长度可以基于区块链中的区块数。例如,所述区块长度可以是链中在所述区块与创始区块(genesis block)之间的区块的数量。区块链中的最先区块的区块长度可以为0,下一个区块的区块长度可以为1,依此类推。该示例不旨在限制表示区块长度的方式,只要能够指示区块链中区块的序列号,区块长度可以具有其他类型的表示。可选地,第一消息还可以包括最新请求的摘要或最新区块的摘要。
在步骤414,第一节点可以从各第二节点获得第一消息。响应于获得Q个或更多个一致性第一消息,第一节点可以结束视图更改协议以进入正常操作协议。Q个或更多个第一消息意味着至少Q个节点同意一致性“视图”和“序列号”。所述一致性“视图”和“序列号”表示大多数节点在其正常操作协议中正常运行,因为它们已经成功地共识验证了针对请求或区块的一个或多个交易。如果第一节点没有获得具有一致的视图和序列号的Q个第一消息,则第一节点可以依然留在视图更改协议中。
在一些实施例中,Q个或更多个第二节点已知的当前序列号大于第一节点已知的第一序列号(例如,大1)。这表明大多数节点已经完成了针对请求或区块的一轮共识验证,而这被第一节点错过了。因此,接收至少Q个第一消息的第一节点可以通过一致性第一消息知道大多数节点仍处于正常操作中。
在一些实施例中,第一节点可以至少基于当前视图进入正常操作。例如,在退出视图更改时,第一节点可以使用当前视图作为其自己的视图进入正常操作协议。第一节点还可以通过合并最新区块的信息(例如,摘要)来使其区块链的副本与区块链的最新副本同步。因此,第一节点可以用正确的视图和更新的区块链副本恢复正常操作协议。此外,第一节点从进入视图更改至恢复正常操作所花费的时间是可以预测的。因为区块链的长度随着被添加的新区块的增加而增加,由于第一节点进入视图更改并错过新区块的共识验证,第一节点可以在将该新区块添加到区块链时发现其错误。因此,恢复正常操作所花的时间可以比完成一轮共识验证所花的时间少。
因此,进入视图更改的节点可以通过替代路径有效地结束视图更改协议并重新加入其他正常操作的节点。该路径对于例如,由于错误、不稳定的连接和/或其他原因而进入视图更改的节点是有用的。该路径绕过了要求Q个节点同意视图更改以便更改主节点并恢复正常操作的传统视图更改协议。因此,通过确保最大数量的节点处于正常操作中,可以更有效地利用整体网络资源。
图5A示出了根据本说明书的各种实施例的视图更改方法510的流程图。方法510可以由图1的系统112的一个或多个组件(例如,上述节点0、节点1、节点2、......或节点i或者类似设备,或者任何节点和一个或多个附加设备例如节点A的组合)实现。方法510可以由一个或多个区块链节点(例如,PBFT系统中的备份节点)实现。主节点和备份节点可以是PBFT模型中定义的节点。方法510可以由包括各种硬件机器和/或软件的视图更改系统或设备(例如,计算机、服务器)实现。例如,所述视图更改系统或设备可以包括一个或多个处理器和一个或多个非瞬态计算机可读存储介质(例如,一个或多个存储器),所述存储介质耦合到所述一个或多个处理器并配置有可由所述一个或多个处理器执行的指令,以促使系统或设备(例如,处理器)执行方法510。以下呈现的方法510的操作旨在是说明性的。根据实施方式,方法510可以包括以各种顺序执行或并行执行的附加、更少或替代步骤。方法510的进一步细节可以参考图1至图4以及上面的相关描述。方法510可以由第一节点执行。
在各种实施例中,方法510可以是计算机实现的待在由多个(N个)节点(例如,PBFT共识系统的节点)维护的区块链上实施的视图更改方法。在一个实施例中,N个节点形成实用拜占庭容错(PBFT)网络,其中N个节点之一充当主节点而其他(N-1)个节点充当备份节点。方法510可以由N个节点中处于视图更改协议的第一节点(例如,备份节点)执行。
在一些实施例中,在框511之前,第一节点可能已进入视图更改。当进入视图更改时,第一节点可以将视图更改消息组播到其他节点。例如,第一节点可以是备份节点,并且可以将视图更改消息组播到主节点和其他备份节点。主节点和备份节点可以形成PBFT共识系统。所述视图更改消息指示第一节点已退出其正常操作协议并进入视图更改协议。如果第一节点没有从其他节点接收到(Q-1)个类似的视图更改消息(因此获得总共Q个一致性视图更改消息,包含其自己的视图更改消息),则将无法满足针对传统视图更改协议的阈值。无论如何,以下步骤可以允许第一节点结束视图更改协议并进入正常操作协议。
框511包括:分别从所述N个节点中的至少Q个第二节点获得至少Q个第一消息,至少Q个第一消息各自包括(1)所述第二节点已知的指示所述N个节点中指定的主节点的一致性当前视图以及(2)所述第二节点已知的一致性当前序列号,所述当前序列号与第二节点提交的最新区块或最新交易相关联,所述当前序列号大于所述第一节点已知的第一序列号(例如大1),Q(定额)是(N+F+1)/2向上取最接近整数,F是(N-1)/3向下取最接近整数。N可以是不小于4的任何整数。在一些实施例中,当N至少为(3F+1)时,Q为(2F+1)。与最新交易相关联的当前序列号可以包括例如由对应的第二节点提交的一个或多个最新交易的序列号。与最新区块相关联的当前序列号可以包括例如由对应的第二节点维护的区块链副本的长度。如前所述,区块链的长度可以取决于区块链中的区块数量,并且随着最新区块的添加而增加。在一个实施例中,针对第一节点结束视图更改,所述至少Q个第一消息可以包括一致性当前视图和一致性当前序列号。框512包括:响应于获得至少Q个第一消息,结束视图更改协议。
在一些实施例中,术语“交易”可以通过区块链系统被实现并被记录到区块链中。所述交易可以包括,例如,金融交易、用于部署或调用区块链合约的区块链合约交易、更新区块链状态(例如,世界状态)的交易等。所述交易不必涉及金融交易。
在一些实施例中,获得至少Q个第一消息包括:分别从至少Q个第二节点获得指示至少Q个第二节点同意将下一区块添加到区块链中的至少Q个提交消息,所述Q个提交消息分别包括Q个第一消息。例如,所述提交消息可以包括当前视图和当前序列号。
在其他实施例中,获得至少Q个第一消息包括:分别从至少Q个第二节点获得指示至少Q个第二节点同意将下一区块添加到区块链中的至少Q个提交消息,所述Q个第一消息分别被附加到所述Q个提交消息中。例如,第二节点可以将第一消息与提交消息一起发送或组播。
在各种实施例中,至少Q个第二节点的当前视图是v;并且当在视图更改协议中时,第一节点具有大于v的第一视图。例如,第一节点和第二节点可以在第一节点进入视图更改之前全都具有视图v,但是之后第一节点怀疑第一节点是无功能的,并且已经进入具有视图v+1的视图更改,而第二节点仍处于视图v。
在一些实施例中,当前序列号包括由第二节点维护的区块链的第二副本的长度(也称为区块长度);第一序列号包括由第一节点维护的区块链的第一副本的长度。在一个实施例中,至少Q个第二节点已知的当前序列号是(n+1);并且第一节点已知的第一序列号是n。例如,在第一节点进入视图更改之前,第一节点和第二节点都可以在视图v中以区块长度99的区块链(即区块链中的100个区块)开始。在第一节点进入提交阶段(例如,组播提交消息)之前进入视图更改协议并因此退出共识验证之后,第二节点已经对第101个区块达成共识,从而将区块长度增加至100。陷入视图更改协议中的第一节点未知第101个区块可以引起当前序列号(100)和第一序列号(99)之间的差。
在其他实施例中,当前序列号包括第二节点提交的最新交易的序列号;第一序列号包括第一节点提交的最新交易的序列号。在一个实施例中,至少Q个第二节点已知的当前序列号是(n+1);并且第一节点已知的第一序列号是n。例如,在第一节点进入视图更改之前,第一节点和第二节点都可以以用于共识验证的80个请求(例如,交易请求)开始。所述请求可以被分配递增的序列号。在视图v中,第一节点和第二节点可以具有经共识验证的50个请求。在第一节点进入提交阶段(例如,组播提交消息)之前进入视图更改协议并因此退出共识验证之后,第二节点已经对第51个请求达成共识,从而将下一个未决请求的序列号增加到52。被共识验证的第51个请求对于陷入视图更改协议中的第一节点是未知的,并且可能引起当前序列号(51)和第一序列号(50)之间的差。
在一些实施例中,第一消息还包括最新区块或最新交易的摘要。所述摘要(例如,哈希值)可以是将哈希算法应用于诸如交易的数据的数值结果。在一个实施例中,所述摘要包括最新区块或最新交易的哈希值。在一个示例中,所述摘要包括第二节点已提交但第一节点未提交的最新交易的交易哈希值。在另一示例中,所述摘要包括第二节点已提交但第一节点未提交的多个最新交易的多个交易哈希值。在另一示例中,所述摘要包括第二节点已知但第一节点未知的最新区块的默克尔(Merkle)根。在另一示例中,所述摘要包括第二节点已知但第一节点未知的多个最新区块的多个默克尔(Merkle)根。
在一些实施例中,“视图”、“序列号”和/或“摘要”可以作为一个或多个数字签名(或简称为签名)被包含在第一消息中。所述第一消息包括认证当前视图和当前序列号均为所述第二节点已知的数字签名。“签名”表示发送相应消息的实体的认可。术语“签名”可以是任何形式的批准指示。在一个实施例中,“视图”、“序列号”和/或“摘要”可以首先输入到单向哈希函数,用对应节点的私钥对该函数的输出哈希值进行加密以获得数字签名。加密可以通过各种方式实现,例如公钥-私钥加密(也称为非对称加密);数字签名算法(DSA),例如椭圆曲线数字签名算法(ECDSA)等。例如,使用公钥算法诸如RSA,可以生成两个数学链接的密钥:一个私钥和一个公钥。数字签名是奏效的,因为公钥加密依赖于两个相互认证的加密密钥。创建数字签名的节点可以使用其自己的私钥来对“视图”、“序列号”和/或“摘要”进行加密;对这些数据进行解密的唯一方法是使用签名者节点的公钥。因此,所述数字签名可以表示对应节点已知的“视图”、“序列号”和/或“摘要”。
在一些实施例中,结束视图更改协议包括:将由第一节点维护的区块链的第一副本与由第二节点维护的区块链的第二副本同步;并且退出视图更改协议,以使用第一节点的一致性当前视图进入正常操作协议。因此,如果第二节点处于视图v中并且第一节点陷入视图(v+1)中,则第一节点可以结束视图更改协议并在视图v中进入正常操作协议。
图5B示出了根据本说明书的各种实施例的视图更改方法520的流程图。方法520可以由图1的系统112的一个或多个组件(例如,上述节点0、节点1、节点2、......或节点i或者类似设备,或者任何节点和一个或多个附加设备,例如节点A的组合)实现。方法520可以由一个或多个区块链节点(例如,PBFT系统中的主节点或备份节点)实现。主节点和备份节点可以是PBFT模型中定义的节点。方法520可以由包括各种硬件机器和/或软件的视图更改系统或设备(例如,计算机、服务器)实现。例如,视图更改系统或设备可以包括一个或多个处理器和一个或多个非瞬态计算机可读存储介质(例如,一个或多个存储器),所述存储介质耦合到所述一个或多个处理器并配置有可由所述一个或多个处理器执行的指令,以促使系统或设备(例如,处理器)执行方法520。以下呈现的方法520的操作旨在是说明性的。根据实施方式,方法520可以包括以各种顺序执行或并行执行的附加、更少或替代步骤。方法520的进一步细节可以参考图1至图4以及上面的相关描述。方法520可以由第二节点执行。如果第二节点是主节点,则第二节点可以执行步骤521a、522a、523、524、525和526。如果第二节点是备份节点,则第二节点可以执行步骤521b、522b、523、524、525和526。
框521a包括:第二节点(例如,主节点)获得一个或多个请求(例如,交易请求)。所述请求可以涉及用于共识验证的区块链交易(在有或没有智能合约的情况下)。在一个示例中,所述请求可以对应于要被共识验证并被添加到区块链中的交易。可以在执行一轮正常操作协议期间执行共识验证。或者,所述请求可以对应于其他操作。在一些实施例中,主节点可以从客户端(例如,轻量节点)或从备份节点获得请求,所述备份节点获得来自客户端的请求并将所述请求转发到主节点。
框522a包括:将预准备消息和请求组播到备份节点。在一些实施例中,在获得多个请求之后,所述第二节点可以将预准备消息和请求组播到每个备份节点。所述预准备消息可以包括请求的顺序(例如,与请求相关联的交易的顺序)。所述顺序可以包括每个请求的序列号和/或要添加到区块链的下一个区块的序列号。
框521b包括:第二节点(例如,备份节点)获得预准备消息和一个或多个请求。例如,所述预准备消息和请求可以由备份节点从主节点获得。类似地,所述备份节点可以获得预准备消息和请求,其中所述请求具有执行请求的顺序。
框522b包括:如果第二节点接受预准备消息则组播准备消息。组播可以意味着广播。例如,所述准备消息可以由备份节点组播到主节点和其他备份节点。
框523包括:获得(Q-1)个或更多个准备消息。在一些实施例中,Q(定额)是(N+F+1)/2向上取最接近整数;并且,F是(N-1)/3向下取最接近整数,表示N个节点中允许的最大数量的无功能节点以保持N个节点的共识系统运行。获得(Q-1)个或更多个准备消息可以是在进入提交阶段之前要满足的条件。(Q-1)个或更多个准备消息可以包括相应节点自己组播的准备消息。
框524包括:向其他节点组播提交消息,所述提交消息包括(1)指示第二节点已知的主节点的当前视图和(2)第二节点已知的当前序列号。在一些实施例中,所述组播提交消息包括对当前视图和当前序列号进行加密的一个或多个数字签名。
在一些实施例中,所述提交消息还包括与请求相关联的一个或多个交易的摘要。例如,所述摘要可以包括最新提交的交易的交易哈希值或区块链的最新区块的MerkleTrie根。
在一些实施例中,第二节点尚未进入视图更改;并且第二节点已知的当前序列号大于已进入视图更改的第一节点已知的第一序列号(例如,大1)。
在一些实施例中,多达F个节点可以是无功能的。尽管如此,可以适当地执行所描述的方法和共识验证,因为PBFT系统容忍多达F个无功能节点。
框525包括:获得至少Q个提交消息。所述Q个提交消息可以包括相应节点自己的组播提交消息。
框526包括:执行一个或多个请求。例如,所述一个或多个请求可以被共识验证并且被相应地添加到区块链的本地副本。结果,如果足够的节点(例如,Q个节点)已经验证相应交易,则将交易打包到区块链中。
图6示出了根据各种实施例的视图更改系统610的框图。视图更改系统610(例如,计算机系统)可以是上述节点0、节点1、节点2、......或节点i或者类似设备,或者任何节点和附加设备(例如,节点A)的组合的实现的示例。方法510可以由视图更改系统610实现。视图更改系统610可以包括一个或多个处理器和一个或多个非瞬态计算机可读存储介质(例如,一个或多个存储器),所述存储介质耦合到所述一个或多个处理器并配置有可由所述一个或多个处理器执行的指令,以促使系统或设备(例如,处理器)执行方法510。视图更改系统610可以包括与指令(例如,软件指令)相对应的各种单元/模块。
在一些实施例中,视图更改系统610可以被称为视图更改装置。视图更改装置可以用于维护区块链,其中多个(N个)节点维护区块链,N个节点之一充当主节点而其他(N-1)个节点充当备份节点,共识装置充当N个节点中处于视图更改协议的第一节点。所述共识装置可以包括一个或多个处理器和一个或多个非瞬态计算机可读存储器,所述存储器耦合到所述一个或多个处理器并配置有可由所述一个或多个处理器执行的指令,以促使装置执行操作。所述共识装置可以包括与指令(例如,软件指令)对应的各种单元/模块。所述共识装置可以包括获取模块611和结束模块612,所述获取模块用于分别从N个节点中的至少Q个第二节点获得至少Q个第一消息,所述至少Q个第一消息各自包括(1)第二节点已知的指示N个节点中指定的主节点的一致性当前视图以及(2)第二节点已知的一致性当前序列号,所述当前序列号与由第二节点提交的最新区块或最新交易相关联,当前序列号大于第一节点已知的第一序列号,Q(定额)是(N+F+1)/2向上取最接近整数,F是(N-1)/3向下取最接近整数;所述结束模块用于响应于获得至少Q个第一消息,结束视图更改协议。
本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是台式计算机系统、服务器计算机系统、便携式计算机系统、手持设备、网络设备或结合硬连线和/或程序逻辑以实现这些技术的任何其他设备或设备的组合。专用计算设备可以被实现为个人计算机、膝上型计算机、蜂窝电话、照相电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板电脑、可穿戴设备或其组合。计算设备通常由操作系统软件控制和协调。传统的操作系统控制和调度用于执行的计算机进程,执行存储器管理,提供文件系统、网络、I/O服务,以及提供用户界面功能,例如图形用户界面(“GUI”)等。这里描述的各种系统、装置、存储介质、模块和单元可以在专用计算设备或者一个或多个专用计算设备的一个或多个计算芯片中实现。在一些实施例中,本文描述的指令可以在专用计算设备上的虚拟机中实现。当被执行时,指令可以促使专用计算设备执行本文描述的各种方法。虚拟机可以包括软件、硬件或其组合。例如,虚拟机可以包括为以太坊中的智能合约提供运行时环境的以太坊虚拟机(EVM)软件。
图7是示出计算机系统700的框图,在所述计算机系统700上可以实现本文描述的任何实施例。系统700可以执行本文描述的任何方法(例如,视图更改方法510、视图更改方法520)。系统700可以在本文描述的任何系统(例如,视图更改系统610)中实现。系统700可以在本文描述的任何节点中实现,并且被配置为执行用于实现区块链合约的相应步骤。计算机系统700包括用于通信信息的总线702或其他通信机制,与总线702耦合以处理信息的一个或多个硬件处理器704。硬件处理器704可以是例如一个或多个通用微处理器。
计算机系统700还包括耦合到总线702的用于存储信息和可由处理器704执行的指令的主存储器706,例如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备。主存储器706还可以用于在执行可由处理器704执行的指令期间存储临时变量或其他中间信息。当这些指令存储在处理器704可访问的存储介质中时,这些指令将计算机系统700呈现为被定制以执行指令中指定的操作的专用机器。计算机系统700还包括耦合到总线702的用于存储处理器704的静态信息和指令的只读存储器(ROM)708或其他静态存储设备。存储设备710诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等被提供并被耦合到总线702以存储信息和指令。
计算机系统700可以使用与计算机系统相结合使得计算机系统700成为专用机器或将计算机系统700编程为专用机器的定制硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑实现本文所述的技术。根据一个实施例,本文描述的操作、方法和过程由计算机系统700响应于处理器704执行主存储器706中包含的一个或多个指令的一个或多个序列而执行。这些指令可以从另一存储介质(例如存储设备710)读入主存储器706中。主存储器706中包含的指令序列的执行促使处理器704执行本文描述的处理步骤。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令组合。
主存储器706、ROM 708和/或存储710可以包括非瞬态存储介质。本文使用的术语“非瞬态介质”和类似术语是指存储促使机器以特定方式操作的数据和/或指令的介质,所述介质不包括暂时性信号。这种非瞬态介质可以包括非易失性介质和/或易失性介质。例如,非易失性介质包括光盘或磁盘,诸如存储设备710。易失性介质包括动态存储器,例如主存储器706。常规形式的非瞬态介质包括,例如,软磁盘、软盘、硬盘、固态驱动器、磁带或任何其他磁数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储器芯片或盒式磁带的以及它们的网络版本。
计算机系统700还包括耦合到总线702的网络接口718。网络接口718提供耦合到一个或多个网络链路的双向数据通信,所述一个或多个网络链路连接到一个或多个本地网络。例如,网络接口718可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,以提供与相应类型的电话线的数据通信连接。作为另一示例,网络接口718可以是局域网(LAN)卡,以提供到兼容LAN(或与WAN通信的WAN组件)的数据通信连接。还可以实现无线链路。在任何这样的实施方式中,网络接口718发送和接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。
计算机系统700可以通过网络、网络链路和网络接口718发送消息和接收数据,包括程序代码。在因特网示例中,服务器可以通过因特网、ISP、本地网络和网络接口718发送用于应用程序的请求代码。
所接收的代码可在其被接收时由处理器704执行,和/或存储在存储设备710或其他非易失性存储器中以用于稍后执行。
前面部分中描述的每个过程、方法和算法可以在由包括计算机硬件的一个或多个计算机系统或计算机处理器执行的代码模块中实现,并且完全或部分自动化地实现。过程和算法可以部分或全部地在专用电路中实现。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合都旨在落入本说明书的范围内。另外,在一些实施方式中可以省略某些方法或过程框。本文描述的方法和过程也不限于任何特定序列,与其相关的框或状态可以以适当的其他序列执行。例如,所描述的框或状态可以以不同于具体公开的顺序执行,或者多个框或状态可以在单个框或状态中组合。框或状态的示例可以串行、并行或以某种其他方式执行。可以将框或状态添加到所公开的实施例中或从所公开的实施例中移除。本文描述的系统和组件的示例可以与所描述的不同地被配置。例如,与所公开的实施例相比,可以添加、移除或重新排列元件。
本文描述的方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或被永久配置为执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,这样的处理器可以构成处理器实现引擎,所述处理器实现引擎操作以执行本文描述的一个或多个操作或功能。
类似地,本文描述的方法可以至少部分地由处理器实现,其中一个或多个特定处理器是硬件的示例。例如,所述方法的至少一些操作可以由一个或多个处理器或处理器实现引擎执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,应用程序接口(API))被访问。
某些操作的性能可以在处理器之间分配,不仅驻留在单个机器中,而且跨多个机器被部署。在一些实施例中,处理器或处理器实现引擎可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他实施例中,处理器或处理器实现引擎可以分布在多个地理位置。
在整个说明书中,多个实例可以实现作为单个实例所描述的组件、操作或结构。尽管一个或多个方法的各个操作被示出并描述为独立的操作,但是可以同时执行一个或多个独立的操作,并且不需要以所示的顺序执行所述操作。在配置中作为独立组件呈现的结构和功能可以实现为组合结构或组件。类似地,作为单个组件呈现的结构和功能可以实现为独立的组件。这些和其他变化、修改、添加和改进都落入本文中的主题的范围内。此外,本文使用的相关术语(诸如“第一”、“第二”、“第三”等)不表示任何顺序、高度或重要性,而是用于将一个元件与另一元件区分开。此外,术语“一”、“一个”和“多个”在本文中并不表示数量的限制,而是表示存在至少一个所述的物品。
尽管已经参考具体实施例描述了主题的概述,但是在不脱离本说明书的实施例的较宽范围的情况下,可以对这些实施例进行各种修改和改变。具体实施方式不应被视为具有限制意义,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围限定。

Claims (15)

1.一种计算机实现的待在由多个、即N个节点维护的区块链上实施的视图更改方法,所述方法由所述N个节点中处于视图更改协议的第一节点执行,所述方法包括:
分别从所述N个节点中的至少Q个第二节点获得至少Q个第一消息,所述至少Q个第一消息各自包括(1)所述第二节点已知的指示所述N个节点中指定的主节点的一致性当前视图,以及(2)所述第二节点已知的一致性当前序列号,所述当前序列号与所述第二节点提交的最新区块或最新交易相关联,所述当前序列号大于所述第一节点已知的第一序列号,定额Q是(N+F+1)/2向上取最接近整数,F是(N-1)/3向下取最接近整数;并且
响应于获得所述至少Q个第一消息,结束所述视图更改协议。
2.如权利要求1所述的方法,其中,获得所述至少Q个第一消息包括:
分别从所述至少Q个第二节点获得至少Q个提交消息,所述至少Q个提交消息指示所述至少Q个第二节点同意将下一区块添加到所述区块链中,所述Q个提交消息分别包括所述Q个第一消息。
3.如权利要求1所述的方法,其中,获得所述至少Q个第一消息包括:
分别从所述至少Q个第二节点获得至少Q个提交消息,所述至少Q个提交消息指示所述至少Q个第二节点同意将下一区块添加到所述区块链中,所述Q个第一消息分别被附加到所述Q个提交消息中。
4.如权利要求1-3中任一项所述的方法,其中:
所述当前序列号包括由所述第二节点维护的所述区块链的第二副本的长度;且
所述第一序列号包括由所述第一节点维护的所述区块链的第一副本的长度。
5.如权利要求1-3中任一项所述的方法,其中:
所述当前序列号包括所述第二节点提交的最新交易的序列号;且
所述第一序列号包括所述第一节点提交的最新交易的序列号。
6.如前述任一权利要求所述的方法,其中:
所述第一消息包括认证所述当前视图和所述当前序列号均为所述第二节点已知的数字签名。
7.如前述任一权利要求所述的方法,其中:
所述第一消息还包括所述最新区块或所述最新交易的摘要。
8.如权利要求7所述的方法,其中:
所述摘要包括所述最新区块或所述最新交易的哈希值。
9.如权利要求7和8中任一项所述的方法,其中:
所述摘要包括所述第二节点已知但所述第一节点未知的所述最新区块的默克尔根。
10.如前述任一权利要求所述的方法,其中,结束所述视图更改协议包括:
将由所述第一节点维护的所述区块链的第一副本与由所述第二节点维护的所述区块链的第二副本进行同步;并且
退出所述视图更改协议,以使用所述第一节点的所述一致性当前视图进入正常操作协议。
11.如前述任一权利要求所述的方法,其中:
所述至少Q个第二节点已知的所述当前序列号是(n+1);且
所述第一节点已知的所述第一序列号是n。
12.如前述任一权利要求所述的方法,其中:
所述至少Q个第二节点的当前视图是v;以及
当在所述视图更改协议中时,所述第一节点具有大于v的第一视图。
13.如前述任一权利要求所述的方法,其中:
所述N个节点形成实用拜占庭容错PBFT网络,其中,所述N个节点之一充当主节点而其他N-1个节点充当备份节点。
14.一种视图更改系统,包括:
一个或多个处理器;和
耦合到所述一个或多个处理器并且其上存储有指令的一个或多个计算机可读存储器,所述指令能由所述一个或多个处理器执行以执行权利要求1至13中任一项所述的方法。
15.一种视图更改装置,包括用于执行权利要求1至13中任一项所述的方法的多个模块。
CN201980002964.0A 2019-03-18 2019-03-18 用于结束视图更改协议的系统和方法 Active CN110800258B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/078487 WO2019101241A2 (en) 2019-03-18 2019-03-18 System and method for ending view change protocol

Publications (2)

Publication Number Publication Date
CN110800258A true CN110800258A (zh) 2020-02-14
CN110800258B CN110800258B (zh) 2022-04-22

Family

ID=66631234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980002964.0A Active CN110800258B (zh) 2019-03-18 2019-03-18 用于结束视图更改协议的系统和方法

Country Status (12)

Country Link
US (3) US11057504B2 (zh)
EP (2) EP3889780A1 (zh)
JP (1) JP6882527B2 (zh)
KR (1) KR102170345B1 (zh)
CN (1) CN110800258B (zh)
AU (1) AU2019203861B2 (zh)
CA (1) CA3057212A1 (zh)
ES (1) ES2880108T3 (zh)
PL (1) PL3593249T3 (zh)
SG (1) SG11201908853YA (zh)
TW (1) TWI709063B (zh)
WO (1) WO2019101241A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111510317A (zh) * 2020-03-06 2020-08-07 杜晓楠 弱化dbft中连续多个节点故障导致的延迟的方法、计算机可读存储介质和dbft网络
CN111526219A (zh) * 2020-07-03 2020-08-11 支付宝(杭州)信息技术有限公司 一种联盟链的共识方法及联盟链系统
CN113541968A (zh) * 2021-09-16 2021-10-22 中国信息通信研究院 共识方法、装置及区块链系统

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109327459B (zh) * 2018-11-12 2020-12-01 崔晓晖 一种联盟区块链网络的共识方法
CN110800258B (zh) * 2019-03-18 2022-04-22 创新先进技术有限公司 用于结束视图更改协议的系统和方法
SG11201908887XA (en) 2019-03-18 2019-10-30 Alibaba Group Holding Ltd System and method for ending view change protocol
KR20200139034A (ko) * 2019-06-03 2020-12-11 삼성에스디에스 주식회사 블록체인 기반 컴퓨팅 시스템 및 그 시스템의 트랜잭션 관리 방법
EP3701701A4 (en) 2019-06-05 2020-12-30 Alibaba Group Holding Limited CONSENSUS SYSTEM AND PROCESS
US20210099312A1 (en) * 2019-09-27 2021-04-01 Cypherium Blockchain Inc. Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system
CN110460484B (zh) * 2019-10-10 2020-02-18 杭州趣链科技有限公司 一种基于pbft算法改进的单节点异常主动恢复方法
US11720526B2 (en) 2019-11-12 2023-08-08 ClearTrace Technologies, Inc. Sustainable energy tracking system utilizing blockchain technology and Merkle tree hashing structure
CN111031076B (zh) * 2020-03-06 2020-07-10 南京畅洋科技有限公司 一种基于定时机制的物联网区块链共识方法
KR20210140851A (ko) * 2020-05-14 2021-11-23 삼성에스디에스 주식회사 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치
CN111526216B (zh) * 2020-07-03 2020-09-22 支付宝(杭州)信息技术有限公司 联盟链中的共识方法和系统
US11343313B1 (en) * 2021-01-28 2022-05-24 International Business Machines Corporation Fault tolerant periodic leader rotation for blockchain
EP4285456A1 (en) 2021-01-29 2023-12-06 Cleartrace Technologies, Inc. Sustainable energy physical delivery tracking and verification of actual environmental impact
EP4350518A1 (en) * 2021-05-24 2024-04-10 Scalar, Inc Data management system and method for detecting byzantine fault
WO2022250047A1 (ja) * 2021-05-24 2022-12-01 株式会社Scalar ビザンチン故障を検知するデータ管理システム及び方法
US11609824B2 (en) * 2021-07-22 2023-03-21 Vmware, Inc. Byzantine fault tolerant view change processing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107528882A (zh) * 2017-07-14 2017-12-29 阿里巴巴集团控股有限公司 区块链共识网络中处理共识请求的方法、装置和电子设备
WO2018095540A1 (en) * 2016-11-25 2018-05-31 NEC Laboratories Europe GmbH Method and system for byzantine fault - tolerance replicating of data
US20180351732A1 (en) * 2017-05-31 2018-12-06 Alibaba Group Holding Limited Enhancing processing efficiency of blockchain technologies using parallel service data processing
CN109039748A (zh) * 2018-08-10 2018-12-18 上交所技术有限责任公司 一种pbft协议动态增删节点的方法
CN109327548A (zh) * 2018-11-27 2019-02-12 北京瑞卓喜投科技发展有限公司 一种区块链更新方法及区块链更新系统

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671821B1 (en) * 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US8549142B2 (en) * 2011-03-28 2013-10-01 Siemens Corporation Replicated state machine utilizing view change protocol resilient to performance attacks
WO2017036546A1 (en) 2015-09-04 2017-03-09 Nec Europe Ltd. Method for storing an object on a plurality of storage nodes
US10529042B2 (en) 2016-04-18 2020-01-07 Rs Ltd. System and method for managing transactions in dynamic digital documents
US10204341B2 (en) 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US10713731B2 (en) 2016-07-22 2020-07-14 Nec Corporation Method for secure ledger distribution and computer system using secure distributed ledger technology
US10049017B2 (en) 2016-10-04 2018-08-14 Nec Corporation Method and system for byzantine fault-tolerance replicating of data on a plurality of servers
JP6825296B2 (ja) 2016-10-11 2021-02-03 富士通株式会社 エッジサーバ,及びその暗号化通信制御方法
US10540652B2 (en) 2016-11-18 2020-01-21 Intel Corporation Technology for secure partitioning and updating of a distributed digital ledger
US10586210B2 (en) 2016-11-30 2020-03-10 International Business Machines Corporation Blockchain checkpoints and certified checkpoints
US10523421B2 (en) 2016-11-30 2019-12-31 International Business Machines Corporation Checkpoints for permissionless blockchains
US20180158034A1 (en) 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US11954697B2 (en) 2017-02-27 2024-04-09 Ncr Corporation Blockchain consumer ledger
US20180267539A1 (en) 2017-03-17 2018-09-20 Jeanne Louise Shih Distributive networks of groups of moveable autonomous devices
CN107391320B (zh) 2017-03-10 2020-07-10 创新先进技术有限公司 一种共识方法及装置
US10521604B2 (en) 2017-03-17 2019-12-31 Labyrinth Research Llc Unified control of privacy-impacting devices
CN107360206B (zh) 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及系统
CN110445619B (zh) 2017-03-30 2020-10-16 腾讯科技(深圳)有限公司 区块链系统、消息处理方法及存储介质
CN107040594B (zh) * 2017-04-12 2020-04-10 山大地纬软件股份有限公司 基于pbft的许可区块链节点准入的方法及装置
US20180308091A1 (en) 2017-04-21 2018-10-25 Vmware, Inc. Fairness preserving byzantine agreements
US10896169B2 (en) 2017-05-12 2021-01-19 International Business Machines Corporation Distributed system, computer program product and method
JP2019012415A (ja) 2017-06-30 2019-01-24 株式会社bitFlyer ネットワークにおける合意形成方法及び当該ネットワークを構成するノード
WO2019010392A1 (en) 2017-07-07 2019-01-10 Symbiont.Io, Inc. SYSTEMS, METHODS AND DEVICES FOR REDUCING AND / OR ELIMINATING DATA LEAKAGE IN ELECTRONIC REGISTER TECHNOLOGIES FOR NON-TRUST ORDER MATCHING
US10984134B2 (en) 2017-07-14 2021-04-20 Microsoft Technology Licensing, Llc Blockchain system for leveraging member nodes to achieve consensus
US10567359B2 (en) 2017-07-18 2020-02-18 International Business Machines Corporation Cluster of secure execution platforms
US10956555B2 (en) 2017-08-01 2021-03-23 Panasonic Intellectual Property Corporation Of America Management system, vehicle, and information processing method
US20190058709A1 (en) 2017-08-16 2019-02-21 Telefonaktiebolaget Lm Ericsson (Publ) Tenant management method and system in a cloud computing environment
CN107579848B (zh) * 2017-08-30 2020-08-25 上海保险交易所股份有限公司 实用拜占庭容错共识机制中动态更改共识节点的方法
CN107819749A (zh) 2017-10-26 2018-03-20 平安科技(深圳)有限公司 基于以太坊的区块链系统和交易数据处理方法
CN108108967B (zh) * 2017-12-29 2020-10-16 山大地纬软件股份有限公司 面向复杂数字资产的多阶段pbft共识系统及方法
US20190251199A1 (en) 2018-02-14 2019-08-15 Ivan Klianev Transactions Across Blockchain Networks
WO2019072263A2 (en) * 2018-11-07 2019-04-18 Alibaba Group Holding Limited FACILITATION OF BLOCK CHAIN CONSENSUS AND NODE SYNCHRONIZATION FOR PRACTICAL TOLERANCE TO ARBITRARY FAILURES
US20200162266A1 (en) 2018-11-16 2020-05-21 Adobe Inc. Facilitating analytic services for provenance of digital documents
SG11201908887XA (en) * 2019-03-18 2019-10-30 Alibaba Group Holding Ltd System and method for ending view change protocol
US10938750B2 (en) * 2019-03-18 2021-03-02 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
AU2019203865B2 (en) * 2019-03-18 2021-01-21 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
CN110800258B (zh) * 2019-03-18 2022-04-22 创新先进技术有限公司 用于结束视图更改协议的系统和方法
EP3701701A4 (en) * 2019-06-05 2020-12-30 Alibaba Group Holding Limited CONSENSUS SYSTEM AND PROCESS
US10944624B2 (en) * 2019-06-28 2021-03-09 Advanced New Technologies Co., Ltd. Changing a master node in a blockchain system
CN110727731B (zh) * 2019-09-05 2021-12-21 创新先进技术有限公司 区块链网络中加入节点的方法和区块链系统
CN110730204B (zh) * 2019-09-05 2022-09-02 创新先进技术有限公司 区块链网络中删除节点的方法和区块链系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018095540A1 (en) * 2016-11-25 2018-05-31 NEC Laboratories Europe GmbH Method and system for byzantine fault - tolerance replicating of data
US20180351732A1 (en) * 2017-05-31 2018-12-06 Alibaba Group Holding Limited Enhancing processing efficiency of blockchain technologies using parallel service data processing
CN107528882A (zh) * 2017-07-14 2017-12-29 阿里巴巴集团控股有限公司 区块链共识网络中处理共识请求的方法、装置和电子设备
CN109039748A (zh) * 2018-08-10 2018-12-18 上交所技术有限责任公司 一种pbft协议动态增删节点的方法
CN109327548A (zh) * 2018-11-27 2019-02-12 北京瑞卓喜投科技发展有限公司 一种区块链更新方法及区块链更新系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111510317A (zh) * 2020-03-06 2020-08-07 杜晓楠 弱化dbft中连续多个节点故障导致的延迟的方法、计算机可读存储介质和dbft网络
CN111510317B (zh) * 2020-03-06 2022-08-26 杜晓楠 弱化dbft中连续多个节点故障导致的延迟的方法、计算机可读存储介质和dbft网络
CN111526219A (zh) * 2020-07-03 2020-08-11 支付宝(杭州)信息技术有限公司 一种联盟链的共识方法及联盟链系统
CN111526219B (zh) * 2020-07-03 2021-02-09 支付宝(杭州)信息技术有限公司 一种联盟链的共识方法及联盟链系统
US11368317B2 (en) 2020-07-03 2022-06-21 Alipay (Hangzhou) Information Technology Co., Ltd. Consensus method of consortium blockchain, and consortium blockchain system
CN113541968A (zh) * 2021-09-16 2021-10-22 中国信息通信研究院 共识方法、装置及区块链系统
CN113541968B (zh) * 2021-09-16 2021-11-26 中国信息通信研究院 共识方法、装置及区块链系统

Also Published As

Publication number Publication date
JP6882527B2 (ja) 2021-06-02
US11057504B2 (en) 2021-07-06
SG11201908853YA (en) 2019-10-30
WO2019101241A2 (en) 2019-05-31
TW202036229A (zh) 2020-10-01
US20200213427A1 (en) 2020-07-02
EP3593249B1 (en) 2021-06-23
WO2019101241A3 (en) 2020-01-16
KR20200112635A (ko) 2020-10-05
KR102170345B1 (ko) 2020-10-28
US10666778B1 (en) 2020-05-26
US20200145520A1 (en) 2020-05-07
AU2019203861B2 (en) 2020-07-02
PL3593249T3 (pl) 2021-12-13
TWI709063B (zh) 2020-11-01
EP3593249A4 (en) 2020-10-14
EP3889780A1 (en) 2021-10-06
JP2020522778A (ja) 2020-07-30
CA3057212A1 (en) 2019-05-31
US20200028947A1 (en) 2020-01-23
CN110800258B (zh) 2022-04-22
ES2880108T3 (es) 2021-11-23
US10701192B1 (en) 2020-06-30
EP3593249A2 (en) 2020-01-15

Similar Documents

Publication Publication Date Title
CN110800258B (zh) 用于结束视图更改协议的系统和方法
CN110785966B (zh) 用于结束视图更改协议的系统和方法
CN111630826B (zh) 共识系统和方法
CN110870288B (zh) 共识系统停机时间恢复
CN110915185B (zh) 共识系统停机时间恢复
AU2019101575A4 (en) System and method for ending view change protocol

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: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40027500

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant