CN112424810B - 实现区块链分布式分类账的基于分布式协调引擎的兑汇的方法、设备和系统 - Google Patents

实现区块链分布式分类账的基于分布式协调引擎的兑汇的方法、设备和系统 Download PDF

Info

Publication number
CN112424810B
CN112424810B CN201980045167.0A CN201980045167A CN112424810B CN 112424810 B CN112424810 B CN 112424810B CN 201980045167 A CN201980045167 A CN 201980045167A CN 112424810 B CN112424810 B CN 112424810B
Authority
CN
China
Prior art keywords
redemption
proposal
server nodes
agreed
offers
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
CN201980045167.0A
Other languages
English (en)
Other versions
CN112424810A (zh
Inventor
R·图里梅拉
Y·阿赫拉德
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.)
Xilata Co ltd
Original Assignee
Xilata Co 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 Xilata Co ltd filed Critical Xilata Co ltd
Publication of CN112424810A publication Critical patent/CN112424810A/zh
Application granted granted Critical
Publication of CN112424810B publication Critical patent/CN112424810B/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
    • 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
    • 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
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

在线兑汇包括多个服务器节点,每个服务器节点配置为从在线兑汇的客户接收兑汇交易提议,并且配置为存储已完成兑汇交易的区块链分布式分类帐的副本。分布式协调引擎从服务器节点接收多个兑汇交易提议。分布式协调引擎进一步配置为在多个兑汇交易提议上达成共识,并且生成商定的兑汇交易提议的顺序。商定的兑汇交易提议的顺序将相同地提供给每个服务器节点,并指定服务器节点将要执行兑汇交易并更新其分布式分类帐的副本的顺序。可对商定的兑汇交易提议的顺序可选地进行重新排序,并将其相同地提供给每个服务器节点,以符合兑汇交易提议的源节点服务器上的本地顺序。

Description

实现区块链分布式分类账的基于分布式协调引擎的兑汇的方 法、设备和系统
背景技术
本文公开的实施例的领域包括分布式系统。具体而言,实施例涉及分布式系统(以及由此能够实现的功能),该分布式系统使用分布式协调引擎的实例通过广域网(WAN)来实现在线兑汇,该广域网可以包括,例如因特网。实施例也涉及以这种通过WAN的分布式系统中来维持分布式和/或复制分类账的一致性的方法、设备和系统。其他实施例包括使用分布式分类账或区块链技术来实现安全市场或交易的方法和系统。
附图说明
图1是根据一个实施例配置的系统的框图。
图2是示出了根据一个实施例的兑汇的方面的框图。
图3是示出了根据一个实施例,当生成兑汇交易提议的全局排序序列时,遵循本地序列号的计算机实现的方法的各方面的框图。
图4是示出了根据一个实施例的交易安全性和密码方面的图。
图5是根据一个实施例的计算机实现的流程图。
图6是具有可以实践本文示出和描述的实施例的计算设备的框图。
具体实施方式
定义
分布式系统:分布式系统包括不同进程的集合,该进程可以在空间上分开,并且可以通过兑汇消息或事件而相互通信。
协议:协议是由提议者生成并交付给学习者的潜在多个提议事件中的选定事件。
协议的全局序列:根据一个实施例,提交出价或要价给至少大多数接受者并由他们同意,并且以协议的全局序列进行传递。然后,接收协议的全局序列的服务器节点可以按照协议的全局序列指定的顺序执行底层的交易,并相应地更新其复制分类账,从而确保复制分类账的所有副本都以相同的顺序更新。
分布式协议/协调引擎(DConE):一个实施例要求协议或协调引擎通过Paxos共识协议的新颖的工业级实现来生成商定的交易的有序全局序列。在2008年2月13日提交的共同指定且共同未决的申请号为12/069986的美国专利申请中描述了示例性DConE,其全部内容通过引用合并于此。DConE是容错的、连续可用的和确定性的复制状态机。DConE的工作方式为:收集提议者生成的事件,在接受者的帮助下将它们组织成有序的全局序列,并按该顺序将其交付给学习者。学习者通过处理交付事件的有序序列来实施其业务逻辑(例如,在当前兑汇或市场上实现交易)。DConE保证将每个交易提议事件(出价或要价)按商定的兑汇交易提议的相同的有序全局序列至少一次交付给每个学习者节点。
非阻挡:本文中,术语“非阻挡”是指在对一组进程进行更改时,使一组进程保持全部或部分可获得的能力。
提议者:根据一个实施例,提议者是配置为并使得能够交易兑汇交易(即,进行出价或要价提议)的进程。
接受者:根据一个实施例,接受者是配置为参与决定提议的顺序的进程,该顺序由提议者做出。根据一个实施例,仅当大多数接受者已经确定提议在协议的全局序列中占据特定位置时,它才成为协议(例如,商定的提议)。根据一个实施例,可将接受者配置为仅参与决定协议的顺序,而不理会/关心协议的底层内容(如本文所述,协议的值对DConE不透明)。接受者可以配置为独立应用的实体。
学习者:根据一个实施例,学习者获悉在提议者和接受者之间制作的协议,并通过其输出提议序列以确定性的顺序将协议应用于应用程序中。在一个实施例中,提供协议身份,以及对于每个复制的状态机的持久性存储,允许持久地记录一系列协议。保证每个提议至少一次地交付给特定资格的每个学习者。
分布式协调引擎(DConE)
根据一个实施例,DConE实现了Paxos算法的增强的企业版。在Paxos算法下,在分布式系统(在本申请中为分布式在线兑汇)中的每个节点上安装复制状态机。然后,复制的状态机充当对等方,以实现一种兑汇交易管理的协作的方法,该交易管理确保每个节点上的交易顺序相同——尽管不必同时进行。实施Paxos算法的服务器节点上的复制状态机可以充当三个角色之一:(1)提议者;(2)接受者;(3)学习者。在Paxos算法存在三个阶段,在达成共识的进程中可以重复执行这三个阶段:(1)挑选节点担任协调者或提议者;(2)将交易提议传播给其担任学习者的对等方,学习者接受或拒绝该提议;(3)接受,一旦大多数节点告知提议者收到并接受了它的提议,就可以达成共识。承担协调者角色的复制状态机然后传播交付的消息,以通知其所有对等方继续进行交易。
为了避免多个节点试图充当同一提议的协调者的情况,Paxos为连续的协调者节点分配顺序,并限制每个协调者在为提议编号选择待商定的值方面的选择。为了支持这一点,每个节点都保留它见到的最新的同意的提议序列号的踪迹。当节点发布提议(在这种情况下为出价或要价)时,它生成用于该提议的序列号,该序列号的值高于其知道的最后一个序列号,并将其广播到其他节点。如果其他节点的大多数答复指示出它们未见到更高的序列号,那么将允许该节点充当提议的协调者或领导者。在这一点上,直到在当前的提议上达成共识后,其他协调者才能继续进行。尝试同时充当协调者的其他节点不能使用该提议者的序列号,并且所有将来的提议必须使用更高的序列号,以达成对未来交易的共识。
用DConE达成共识
为了理解DConE的分布式交易处理方法,以下详细介绍了支持其主动-主动复制性能的每个DConE实例的核心组件:提议管理器、本地定序器、协议管理器和全局定序器。当向兑汇提交出价或要价交易以供在任何节点上的客户处理时,DConE本地实例的提议管理器组件为该交易生成提议,其中包括交易数据。这种交易数据可以至少包括购买者或销售者的ID、购买或出售的数量以及价格。然后,DConE实例将本地序列号(LSN)分配给该提议。LSN反映了在那个位置处提交的该交易相对于所有其他交易的顺序。LSN不必是连续的数字,而只需是唯一的。然后,本地定序器将具有分配的本地序列号的提议保存到其提议日志中。在下面描述的协议进程期间,如果在DConE的本地实例能够将提议提交给其对等方之前发生网络或服务器中断,则网络或服务器将在其恢复后重新提交该提议。
接下来,DConE的协议管理器确定协议编号,该协议编号表示用于其他节点的本地DConE实例将要提交给对等方的提议的提议全局序列号(GSN)。根据Paxos,协议编号只是所有节点都接受的最后提议的GSN的增量。然后,使用该协议编号来获得遍及所有节点的兑汇交易的顺序的共识,从而维持一次拷贝(one-copy)等效性。然后将带有协议编号的提议写入协议日志。无论已完成的协议源自哪个服务器节点,每个DConE实例的协议日志或复制分类账至少包括所有已完成的协议。在网络中断的情况下,协议日志将指示在节点与分布式系统中其他节点失去连接之前该节点断开的位置,使得其在DConE的自动恢复过程中是有用的。下文描述了协议日志和提议日志在恢复过程中扮演的角色。
然后,由本地DConE实例的协议管理器启动协议草案,并将提议提交给其对等方。一旦DConE实例的对等方的仲裁(quorum)对提议达成协议,则该协议编号由于已经实现了全局交易顺序而作为所有节点的GSN。仲裁概念使DConE可以达成协议,而无需所有节点都可用或同意。仲裁概念是DConE性能及其容错的关键要素。仲裁概念也在下面描述。
如果竞争性提议抢占了协议,则协议管理器会反复地尝试达成具有新的协议编号的协议。每次重新尝试协议时,都会在协议日志中创建具有新协议编号的条目。一旦通过仲裁达成协议,则本地应用程序节点便以其全局序列加入商定的提议的队列。在这点上,本地DConE实例按同意的全局序列号顺序将交易传递到其各自的锁定调度器进行处理。重要的是要注意,提议所发源的DConE实例不会等待任何其他节点完成交易的执行;它仅等待达成协议,允许用户体验LAN速度性能。
保留本地序列
出于性能的原因,DConE支持并发的协议,因此仲裁有可能次序颠倒地达成协议。也就是说,有可能在另一节点上在先提交但尚未达成商定的兑汇交易提议之后,就提交的兑汇交易提议达成协议。
回顾DConE,它从多个服务器节点获取兑汇交易提议,将它们整理为唯一的全局顺序,并使每个其他服务器节点都可以访问它。还考虑应用程序,例如在DConE上构建的AuX。有时,对于给定的服务器节点,在基于到达时间处理兑汇交易提议时希望实现“先到先服务”或“先进先出(FIFO)”的进程并确保它们以相同的顺序输出。可以强制进行这种排序,例如,通过公平性策略或因果排序约束,这是根据一个实施例,通过在由多个服务器节点发布的所有兑汇交易提议上捕获并达成共识而满足的两个要求。比如说,P0是客户C开立帐户的提议,并且Pt是客户C的贸易。当然,应按兑汇的执行顺序来约束兑汇,以使在执行客户C的贸易Pt之前,客户C的帐户是开放的,也就是说,应限制输出侧上的执行顺序以使P0出现在Pt之前。不幸的是,如果C将P0和Pt提交到两个不同的节点,则没有针对该策略的解决方案。然而,当将P0和Pt提交到同一节点时,一个实施例通过增加如下描述的预处理和后处理步骤来满足该约束。需要以全局有序序列保留交易提议的本地序列的另一个示例是银行部门。实际上,考虑有客户存入支票并以现金形式提取部分支票的银行业务场景。这些交易也必须按照那个顺序(即先存款P0,然后提款Pt)进行。如上面指出的,如果C将P0和Pt提交到两个不同的节点,则没有针对该策略的解决方案。预处理步骤仅给提议序列作注释,因此对正确性没有影响。另一方面,后处理会重新排列DConE的输出。然而,它是以确定性的方式进行的。由于源自DConE的输出在所有服务器节点上都是相同的,因此DConE的性质,来自后处理步骤的输出将导致所有服务器节点上的协议的序列是相同的。
下面阐述了一个实施例,该实施例使DConE能够确定全局交易顺序,同时保留提交的提议的本地序列。假设服务器节点将其前两个兑汇交易提议提交到DConE,并且提议管理器将LSN 1和LSN 2分配给各自的兑汇交易提议。还假定已经与GSN 1至25达成了总共25个兑汇交易提议,并且其他服务器节点未提交介入中间的兑汇交易提议。还假设仲裁在LSN 1上达成协议之前在LSN 2上达成协议。如果本地序列对应用程序无关紧要,则LSN 2将具有协议编号和GSN 26,而LSN 1将具有协议编号和GSN 27。然后将在所有服务器节点上按该顺序编写提议。如果要求是确保无论提议源于何处,都在所有节点上保留本地序列,则一个实施例使用LSN、协议编号和提议者ID的组合(协议编号在这种情况下可能是也可能不以GSN结束,而提议者ID代表提议所起源的DConE实例的全局唯一标识符),以构造保留本地序列顺序的全局序列。实际上,在提议者id内将全局序列以本地序列顺序分类,并将其传递到每个服务器节点上的锁定调度器(如下所述)。下文相对于图4公开了根据一个实施例的另一种保存本地序列的方法。
锁定调度器
在每个服务器节点上的锁定调度器是指DConE将商定的兑汇交易提议传递到在每个服务器节点上运行的交易应用程序。锁定调度器的行为类似于数据库调度程序,而不是分布式锁定管理器。术语“锁定调度器”来自以下事实:它依赖于由并发性控制的交易应用程序指定的锁定,因此可以并行处理大量无冲突的交易。锁定调度器对全局顺序是不可知的。锁定调度器向每个站点上的底层的交易应用程序提交交易的顺序,由从该服务器节点上相应的DConE实例传递给全局排序事件的本地队列(GSN队列)驱动。这允许在每个服务器节点上完全本地的锁定调度器在不了解全局状态的情况下实现一次拷贝等效性。与底层的AuX应用程序交流的是锁定调度器,而不直接是DConE。
实现性能和可伸缩性
DConE显著扩展了Paxos算法的功能,从而能够大规模地增强性能。这种扩展的功能包括仲裁、并发协议处理、避免退避和冲突、动态组演化、分布式垃圾回收、提议的显着且公平的回合编号和弱保留,以仅识别这种扩展的功能所涵盖的几个领域。
仲裁
DConE使用的仲裁概念,允许基于服务器节点的兑汇和贸易活动的客户分布来优化性能且最小化网络和服务器中断的影响。可用的仲裁配置选项包括多数、单例(singleton)和一致。可以预期的是,兑汇将通过多数仲裁达成共识而进行,尽管单例和一致的共识也是可能的。在多数仲裁中,需要服务器节点中的大多数响应于任何兑汇交易提议。DConE还支持特异节点的概念,当分布式系统中有偶数个服务器节点时,该特异节点可以作用为事件中的平局。对于单例仲裁,只有一个节点必须响应于兑汇交易提议。在此配置下选择为单例仲裁的服务器节点可以是具有最大数量的客户和贸易活动级别最高的服务器节点。好处是,在具有最大交易体量的服务器节点上,在协议进程中不会生成广域网(WAN)传输。协议完全由仲裁节点上的本地DConE实例处理。其他服务器节点提交其兑汇交易提议以获得来自单例仲裁节点协议,但是通常会体验到快速的性能,因为在将兑汇交易提议交给各自的本地锁定调度器之前,它们只需要指定的单例服务器节点同意其兑汇交易提议,而无需将其完整执行。一致仲裁要求所有服务器节点做出响应,并且本质上是效率最低的配置和生成最多WAN流量的配置。
DConE还基于太阳追踪模型的仲裁支持从一个区域到另一个区域的循环。这允许在全局分布式系统中每个站点的正常工作时间的基础上优化性能。此外,仲裁方法与DConE的自动恢复特征结合使用,可最大程度地减少网络中断和服务器崩溃对分布式系统的影响。
并发协议
Paxos算法一次只允许达成一项提议的协议。在高交易量的环境中,这具有性能降低的明显效果。DConE允许来自多个兑汇交易提议者的多个兑汇交易提议同时进行,而不必等待所有服务器节点或仲裁服务器节点在提议基础之前的提议将要达成的协议。
退避和避免冲突
DConE提供了一种退避机制,用于避免对等方重复提议者的抢占。常规的复制状态机允许被抢占的提议者立即发起新的轮次,其协议编号高于先抢占者的协议编号。这种方法可能导致协议草案长时间崩溃,并严重降低性能。使用DConE,当先抢占轮次时,启动提议的DConE实例计算退避延迟的持续时间。然后在启动下一轮次之前,提议者在该持续时间内等待。DConE使用类似于用于非兑汇式以太网的载波侦听多路访问/冲突检测(CSMA/CD)草案。
自动备份和恢复
通过使每个服务器节点转变成每个其它服务器节点的镜像,DConE的主动-主动复制功能默认交付连续的热备份。当服务器节点由于网络或服务器故障而滞后时,可以通过WAN或LAN利用这点来提供自动恢复。无需手动干预。如果兑汇中的服务器节点与对等方失去联系,但在其位置处对于兑汇客户来说仍然可用,则这些兑汇客户将仍然读取兑汇,但不允许启动兑汇交易,因为协议进程无法继续。这样可以防止出现裂脑(split-brain)情况,该裂脑情况将导致服务器节点与其对等方不同步,从而违反在所有服务器节点上的一次拷贝等效性的要求。然而,只要仲裁仍然可用,则仍可以在其余服务器节点上提交兑汇交易提议。这样可以使网络中断和服务器故障对分布式系统的影响最小。一旦故障的服务器节点重新联机,其DConE实例将自动追赶其对等方在其脱机时同意的所有兑汇交易提议。这通过使用协议日志来完成。协议日志包含在发生中断之前在服务器节点上完成的最后一次兑汇交易。当恢复过程开始时,服务器节点的DConE实例请求在来自其对等方的协议日志中记录的最后一次兑汇交易之后的所有兑汇交易。此外,一旦追赶完成,本地DConE实例就自动地重新提交未完成协议进程的提议日志中剩下的任何兑汇交易提议。这意味着,无论中断发生在分布式系统中横跨服务器节点的任何兑汇交易提议达成协议之前或之后,都不会丢失数据。
此外,DConE的自动恢复特征消除了对磁盘镜像解决方案的需求,该解决方案仅通过LAN运行,而不通过WAN运行,并且需要管理员干预才能实现恢复。结果,这些解决方案可能会带来因人为错误而导致的停机时间延长和数据丢失的风险。最后,DConE的自动恢复特征还能够使服务器脱机进行维护而不会中断用户访问,因为在其脱机时可将兑汇客户重定向到另一个站点上的服务器节点。这样就能够在全局分布式环境中进行全天候的7天24小时运作。
出于说明的目的,本文描述了基于DConE的实施方式来实现区块链或分布式分类账的兑汇或市场的示例。区块链是对分布式信息存储库进行预期改变的分布式分类帐。如本文描述的涉及兑汇或市场的被许可的区块链或分布式分类帐,与公共区块链的区别在于,访问和启动交易可能需要特定许可。这种区块链的本质配置控制参与者的交易(在这种情况下为出价和要价)并定义其角色(购买者和销售者)。兑汇或市场还可以在用于安全、审计和税收的网络上保持每个兑汇客户的身份。许可的分布式区块链也可能与公共区块链区分开来,因为它可以使用算法共识来代替博弈论共识。本文公开的许可的基于区块链的分布式兑汇,利用DConE作为这种算法共识的平台。根据使用案例,可以使用各种加密方法来解决信任关系的性质。本文讨论的这种分布式兑汇的一个示例是在线黄金兑汇,本文称为AuX。然而应注意的是,本文所述的AuX金兑汇仅是本分布式、防错和容灾的在线兑汇或市场的说明性和示例性实施方式,并且如本领域技术人员将认识到的,其他实施方式将完全满足不同的需求和功能。
实际上,此处描述和示出的兑汇将证明,可以轻松地在DConE之上构建容错、安全和高性能的分布式应用程序,其中AuX只是一个典型的使用示例。一个实施例包括DConE实例,该DConE实例配置为接受来自不同的(可能在地理位置上分散的)服务器节点的兑汇交易提议(例如,出价或要价),获得共识,并将商定的兑汇交易提议整理为有序的全局序列,该全局序列然后可用于每个服务器节点。在一个实施例中,生成的有序全局序列遵循本地顺序,交易提议以该本地顺序显示在任何一个服务器节点上。在不同的分布式服务器节点上运行的相同应用程序软件将独立地处理兑汇交易提议的这个有序全局序列,从而维护了复制的状态机。这种使用DConE的这种兑汇或市场的一个重要特征是,只要包括大多数服务器节点的共识在任何给定时间处起作用,就可以继续生成这种有序全局交易提议序列。
图1是根据一个实施例使用分布式协调引擎(DConE)实现兑汇的分布式系统的图。根据一个实施例,通过计算机网络,可以由DConE 208提供并协调多个(优选为奇数,例如3、5、7……)服务器节点。如图1所示,仅出于阐述目的,一个实施例可包括三个服务器节点102、104、106,每个服务器节点耦合到DConE 108。根据一个实施例,DConE 108可以配置为在每个节点或节点集(其可以彼此广阔地分开)处的中介或实例,而中介或实例通过例如LAN或WAN(例如互联网)的网络而彼此协同工作。然而,为了便于参考和描述,将DConE 108在本文中示为分开的单个实体。根据一个实施例,由服务器节点102、104或106其中之一启动的对分布式分类帐的更新,由DConE 108以一致的方式传播到其他服务器节点。以这种方式,客户(例如,兑汇中的购买者和销售者)可以依靠耦合于兑汇的所有服务器节点上分布和/或复制分类帐。本文公开的用于分布式分类帐的复制方法为分布式系统提供了高可用性的主动-主动模型,并允许在兑汇的组成服务器节点之间的负载平衡。
DConE 108可以配置为决定对分布式分类帐的更新的全局顺序,该分布式分类帐记录在兑汇或市场中发生的所有交易。由于分布式分类帐的所有实例都以相同的状态开始,并且由于使得所有服务器节点以相同的确定性的顺序应用更新(但根据实施例,在相同时间,不是必要的),因此遍及节点的分布式分类帐的多个实例的状态将保持一致(或变得一致)。
根据一个实施例,并且如图1所示,可以如下地对多个服务器节点102、104、106上的兑汇交易的分布式分类帐执行一致的更新。如在(1)处所示,服务器节点中的一个(在这种情况下为服务器节点102)接收来自客户的出价或要价3,其实际上是分别关于购买或出售特定数量的商品或服务的提议(在本文所述的AuX情况下为黄金),这将最终导致对分布式分类帐的更新。类似地,在此示例中,服务器节点104接收来自兑汇客户的出价或要价1,服务器节点106接收来自兑汇客户的出价或要价2。根据一个实施例,服务器节点104立即用封装在收到的出价/要价1中的事件来更新其状态,服务器节点106立即用封装在收到的出价/要求2中的事件来更新其状态,而服务器节点102不会立即用封装在出价/要价3中的事件(例如,买或卖请求)来更新其分类帐,然后将这些更新传播到服务器节点102、104、106中的其他节点,这些分开的提议兑汇交易将作为提议传递到DConE 108,如本文所述,在大多数接受者节点已在其上(无论通过什么共识协议达成协议的正确位置)达成协议之后,DConE 108将提议兑汇交易作为相应的协议发送回服务器节点102、104、106。
也就是说,如图1所示,响应于收到出价/要价3,服务器节点102可以向DConE108发布提议Prop3,如在(2)处所示。类似地,响应于收到出价/要价1,服务器节点104可以向DConE 108发布提议Prop1,如在(2)处所示,并且响应于收到出价/要价2,服务器节点106可以向DConE 108发布提议Prop2,也如在(2)处所示。根据一个实施例,DConE 108然后通过大多数接受者节点的共识获得协议,使商定的兑汇交易提议序列化并对其接收的提议进行排序,如在(3)处所示,并将已商定的这些提议作为有序的协议流(在这种情况下,按AGR3,AGR1和AGR2进行排序)反馈回服务器节点102、104、106,如在(4)处所示。在收到协议AGR3、AGR1和AGR2的有序序列后,服务器节点102、104和106以该确定性的顺序实施这些协议,并相应地更新分布式或复制分类帐,使得其在服务器节点102、104、106上保持一致(和/或变成一致)。以这种方式,可以异步更新详细说明了兑汇上的交易的分布式或复制分类帐的状态,如在(5)处建议的,而不会失去服务器节点之间的一致性。然后可以(但不必要)将这些更新储存为各自的本地持久性存储110、112、114中的日记交易,存储110、112、114可以(但不必要,如110、112和114处的虚线所示)耦合或通向服务器节点102、104、106。然后,可以适当地将通知返回给已经提交出价或要价兑汇交易的客户。
因此,根据一个实施例,服务器节点102、104、106不会直接在它们的复制或分布式分类帐的副本中记录客户的出价或要求,而是为了通过共识、序列化和排序的协议将它们作为提议重定向到DConE 108。然后,将从DConE 108发布以及由DConE108发布的存储在这些服务器节点上的分布式和/或复制分类帐的更新当作一组有序的协议。这保证了当兑汇客户(例如,购买者或销售者)发布最终实现的出价或要价订单时,每个服务器节点102、104、106都会更新,使得更新将透明且一致地应用于集中的所有服务器节点。以这种方式,遍及分布式系统中的多个服务器节点中的每个服务器节点可以维护所有交易的有序和复制分类帐。
因此,根据一个实施例,DConE 108的重要作用是处理从兑汇的服务器节点接收的兑汇交易提议,并将它们转换成协议的全局有序序列。然后,服务器节点(可能在地理位置和时区上广泛分离)可以实现来自该有序序列的协议的底层的交易,并相应地将有序的更新应用于记录兑汇的所有交易的分布式或复制分类账。根据一个实施例,可以根据全局序列号(GSN)对协议进行排序,根据一个实施例,全局序列号可配置为唯一的单调递增的数字。如本领域技术人员可以认识到的,可以以其他方式来配置GSN。然后,在服务器节点上更新分布式分类帐并保持该分类帐的状态方面,GSN可用于比较不同服务器节点中的进度。例如,如果服务器节点102刚刚处理了编号为GSN1的协议,而GSN1小于服务器节点104刚刚处理的GSN2,则结果是服务器节点102存储的分类帐的实例处于比服务器节点104存储的分类帐的实例更早的状态。
根据一个实施例,客户对服务器节点复制状态机的读取操作(例如,回顾过往交易的请求、各种报告请求)不需要DConE达成共识,仅需写入即可。应当注意的是,根据一个实施例,DConE 108无法保证所有服务器节点102、104、106上的分类帐的实例始终在所有服务器节点上相同。而是,DConE 108保证每个服务器节点102、104、106将如所有其他服务器节点一样以相同的顺序一致地了解每个兑汇交易,并且兑汇客户将能够看到该信息。以这种方式,DConE 108配置为生成事件(该事件相同地提供给所有服务器节点102、104、106)的全局有序序列,以引起对分布式和/或复制分类账的依次排序的、可预测的更新。进而,这确保了每个服务器节点以相同顺序来占据(consume)兑汇事件,使分布式和/或复制分类帐的每个实例以可预测、防篡改和确定性的方式发展。
根据一个实施例,可以对存储在本地持久性存储110、112、114中的日记执行更新。然而,服务器节点102、104、106存储的分类帐的一致性不取决于这种日记更新,根据一个实施例,每个持久性存储(如果存在)对于服务器节点是本地的,并且不通过网络与其他服务器节点共享。类似地,维持服务器节点102、104、106之间的分布式和/或复制分类帐的一致性不依赖于共享其他资源,例如存储或处理器资源。
根据实施例,在兑汇的分布式系统中不存在优选的(主要的或在其他方面区分的)服务器节点。实际上,如果一个或多个服务器节点故障,或出于维护目的(或出于任何其他原因)脱机,则其他有效的服务器节点可服务于客户的出价或要价请求,而不会中断访问。根据一个实施例,一旦先前关闭的服务器节点重新联机,它就会自动地与其他服务器节点服务器重新同步,如下所述。这种重新同步可以包括学习自服务器节点关闭或脱机以来由DConE 108发布的所有商定的兑汇交易提议。由于始终维护所有服务器节点上的分类帐或使其变为同步,所以消除了裂脑情况和数据丢失,从而默认地提供连续的热备份。故障切换和恢复都是立即的和自动的,这进一步消除了手动干预的需要和管理员失误的风险。此外,服务器节点102、104、106均未配置为被动的或备用的服务器节点。实际上,根据一个实施例,分布式系统中的所有服务器节点服务器配置为支持用于访问或在兑汇内的交易的同时的兑汇客户请求。因此,这使分布式系统能够容易地扩展以支持另外的服务器节点,而不会随着工作负载的增加而牺牲性能。根据一个实施例,当前的在线兑汇中没有被动的备用服务器,并且完全消除了单个主协同服务器节点的漏洞和瓶颈。此外,在多个服务器节点102、104、106(和/或其他,图1中未示出)之间分配客户交易请求固有地分配所有可用服务器节点上的负载处理和流量。也可以实现服务器节点102、104、106之间的主动负载平衡。
根据一个实施例,由客户端提交、DConE接收、商定、序列化出价/要价提议并将其以全局序列排序以供状态机占据,状态机然后将要价与出价进行匹配。状态机确保遍及客户节点的兑汇应用程序以幂等方式处理提议(如果执行一次或多次,提议将生成相同的结果),因为DConE 108可能会再度多次处理提议。在一个实施例中,DConE 108保证FIFO顺序,这样如果在服务器节点上在提议q之前提交提议p,则在全局序列中p出现在q之前。
因此,可以将这种贸易平台配置为接受要价或出价的贸易。在一种实施方式中,这种要价和出价请求可以首先优先考虑价格竞争力,其次当面对具有相同价格的多个贸易时优先考虑提交时间。其他实施方式可以优先考虑其他特征。兑汇的每个客户可以由唯一的ID标识。
根据一个实施例,兑汇应用程序可以进一步配置为执行一些常识性的商业规则,例如可实现防止对自己的购买和销售,或者超过客户当前账户余额的贸易。例如,在一种实施方式中,当接收的出价贸易Xb高于当前的最佳要价Xa时,那么与市场订单非常相似,在一种实施方式中,它可以以仅(Xa+Xb)/2的价格立即履行,从而有利地满足(beat)了购买者和销售者的期望。可以使用其他订单履行方法。根据一个实施例,一旦安置贸易,就不能取消。交易可能会征收少量交易费用,这可能会有利于兑汇平台提供商。同样,本实施方式假设没有做市商提供流动性。
根据一个实施例,DConE使高度期望的容错特性成为可能;也就是说,即使在节点或通信链路故障的情况下,在所有服务器节点上的所有兑汇交易的分布式和/或复制分类帐也保持一致。根据一个实施例,可以将履行的订单输入到复制/分布式分类帐中,该分类帐为每次交易存储至少唯一的交易ID、唯一的购买者ID、唯一的销售者ID、贸易价格和交易时间。根据一个实施例,可将分类账条目格式化为XML格式,尽管其他格式也是可能的。
如果已处理所有提交的出价和要价提议、没有新的出价和要价提议并且分布式系统的每个服务器节点都知道所有提交的提议,则认为本分布式系统的兑汇处于静止状态。一种确保静态状态下故障的所有节点上的数据是相同的方法,是使用浏览器查询和检查来自每个服务器节点的数据。为此,一个实施例可以利用例如代表性状态转移(REST)API,以使得能够使用浏览器检查来自不同节点的分类帐。REST是一种构架样式,它基于超文本传输协议(HTTP)限定了一组约束和性质。符合REST体系构架样式的Web服务或RESTful Web服务可在因特网上提供计算机系统之间的互操作性。符合REST的Web服务允许请求系统通过使用统一且预定确定的一系列无状态操作来访问和操纵Web资源的文本表示。REST API能够从浏览器检查来自不同节点的复制的且保持一致的分类帐。可以提供REST端点,浏览器可指向该REST端点以查看客户的贸易历史。在当前上下文中可以使用其他API。
兑汇的架构
图2示出了根据一个实施例的具有三个节点实例的兑汇的架构的方面。根据一个实施例,兑汇200可以配置为通过使事件(在这种情况下为出价和要价)从DConE生成和发送的全局有序的贸易中出队(dequeuing)来结算贸易,并且在结算应用进程中使用出队的贸易,仅出于说明性目的将该结算应用进程称为结算要价(p,q)。
在一个实施例中,兑汇200假设参与者均不是恶意的;也就是说,兑汇假设使用兑汇的各方是受信任的。因此,在一个实施例中,兑汇200可以配置为围绕所谓的非拜占庭(non-Byzantine)模型,DConE 108本身也可以如此配置。兑汇客户通过适当地提供适当的识别信息并向兑汇进行注册,并存入法定货币、加密货币、黄金或其他价值的数字标记,并适当地接收唯一的购买者和/或销售者ID。例如,提供黄金/现金所有权证明可能会根据处境、位置和管辖范围而不同。实际上,在物理世界和数字世界之间的接口需要客户注册、将黄金/现金存入新帐户等,在此不再赘述。
如图2所示,兑汇客户可以使用例如其在“良好隐私”(Pretty Good Privacy,PGP)加密协议中的公钥来进行安全的数字签名交易。交易可以源自网络上的服务器节点,如在202处参考的节点1、在204处参考的节点2和在206处参考的节点3所示。也就是说,兑汇客户可以向服务器节点其中之一发布出价或要价,该出价或要价可以与其他信息(购买者或销售者的身份、时间戳等)一起封装在提议中,并转发给DConE108。在图2所示的示例中,节点1202发布两个提议,每个提议可以是用于预定量的有价交易或服务的带时间戳的出价或要价。在本文描述的示例性AuX实现中,出价或要价将是为了指定量的黄金。在此示例中,节点2在202处向兑汇200发布四个这种提议,而节点3在206处向兑汇200发布三个提议。在功能上,兑汇客户可能已登录到兑汇应用程序,并且发布了购买(出价)或销售(要价)订单。可将该出价或要价订单进行加密(购买或销售酬载和通信信道两者)并且安全地发送到DConE108。DConE 108可以配置为从所有参与的服务器节点接收提议,对来自其接受者角色中大多数服务器节点的所有兑汇交易提议达成共识,并配置为在一个实施例中,根据其时间戳,序列化商定的兑汇交易提议并对其进行排序。在另一个实施例中,可以遵循在它们的服务器节点上接收它们的顺序,来对商定的兑汇交易提议进行排序;也就是说,同时遵循其本地序列号。序列化和有序的提议以这种方式变成有序的、全局序列的提议,如在208处所示。
如在图2中所示,可对提议208的全局序列(每个包含至少一些以相同顺序的相同提议)进行加密,并将它们安全地发送到分布式系统中的所有服务器节点,其中销售顺序可以匹配购买顺序,反之亦然。每个服务器节点至少存储所有注册的兑汇客户的所有购买和销售活动的完整记录,例如,复制/分布式分类帐的实例。实际上,根据一个实施例,可以维护分类账211、213、215,并将其分别存储在每个服务器节点210、212、214中。分类帐211、213、215至少包含完整的贸易历史,该贸易历史至少包括购买者的唯一标识符、销售者的唯一标识符、购买的金额、事物或服务以及交易的时间戳,仅列举其中存储的一些项目。可以将复制/分布式分类帐存储在每个服务器节点上的持久性存储中,或可供每个服务器节点访问。由于发送到服务器节点210、212、214的提议208的每个全局序列都是相同顺序的(尽管不一定包含相同数量的有序提议),并且多个服务器节点中的每个服务器节点处的兑汇应用程序占据这些提议中的出价/要价成分,以及由于出价与要价在每个服务器节点中以相同的方式相匹配,因此可以以一致的方式更新遍及服务器节点的分类账211、213、215,并且确保分类账211、213、215是相同的或者随着时间而变得相同。实际上,即使每个分类帐211、213、215在某个瞬时时间点可能都不相同,也可以确保它们随着时间的推移而变得相同,因为对其应用的变化的顺序和方式是相同的,以锁定步骤、可预测的方式更改状态。
如图2所示,服务器节点接收全局序列提议的提议,并将它们分为要价提议和出价提议。根据一个实施例,将要价提议馈送到要价最小堆,并将出价提议馈送到出价最大堆。本文中,将堆定义为满足堆性质的专用树基数据结构:如果P是C的父节点,则对于最小堆,P的键(值)小于或等于C的键;对于最大堆,P的键大于或等于C的键。将堆“顶部”处的节点(没有父节点的最小堆结构中的节点)称为根节点。出于说明的目的,让我们假设兑汇200是黄金兑汇,并且客户C安置贸易T以每单位p的价格出售q单位的黄金。(可以实施用于购买/出价的类似算法。)根据一个实施例,可以如下地配置用于结算以价格p要求q单位的黄金、或结算要价(p,q)的进程。幂等性的性质要求当DConE 108提交包含T的提议时,进行检查以确定贸易T是否先前已被处理过。如果是这样,则不重复贸易。如果之前未处理过贸易T,则贸易可以继续进行。可以采用适合的业务逻辑和/或常识来确保,例如进行兑汇108的C的帐户实际上至少具有C想要出售的黄金量——假设销售者没有汇总。可以应用其他业务逻辑和/或规则,例如确保兑汇客户C在兑汇中不会以大于p的价格进行未确认的(outstanding)出价。如果包含T的提议未通过任何这些阈值测试,则贸易T不应继续进行,或可能延迟,以待进一步的验证、担保或抵押。
为了履行贸易T,根据一个实施例,可以将贸易T插入到出价最小堆(Amin)中。然后尝试将两个堆的根相互匹配。请注意,在有效的市场中,在大多数情况下最佳要价和最佳出价尽管不相等,但可能彼此非常接近。实际上,如果如Amin的根节点所指示的最佳要价价格pask小于或等于如出价最大堆Bmax的根节点所指示的最佳出价pbid,则删除Amin和Bmax的根节点,这一对交易可以与当前时间和日期的时间和日期戳以及(pask+pbid)/2的结算价格一起写入到复制/分布式分类帐。如本领域技术人员可以认识到的,可以设计类似的结算出价(p,q)。在本发明的上下文中,可以开发使可找到的购买者与可找到的销售者匹配的其他方法。以这种方式,最小堆Amin和最大堆Bmax随时间变化,并且分类帐211、213和215随时间发展,每个都以相同的顺序记录交易。由于包含分类帐211、213和215的复制分类帐保持相同,因此恶意尝试更改复制分类帐的任何一个组成实例将不会成功,因为其他分类帐实例将不再在协议中,并且因为没有用于将变化传播到分类账的其他实例,或者用于更改分类账而不是通过在208处示出的全局序列(通过GSN)贸易的机制。
保留本地序列
有时,对于给定的服务器节点,在基于到达时间处理兑汇交易提议时实施“先到先服务”或FIFO的进程并确保它们以相同的顺序输出,有因果顺序的需求。如上所述,如果将相关提议提交到两个不同的节点,则没有用于这种策略的解决方案。当提交给同一节点时,一个实施例通过预处理和后处理步骤满足该FIFO约束。实际上,根据一个实施例,当将兑汇交易提议P0和Pt提交到同一节点时,示出为可以通过增加预处理和后处理步骤来满足保留约束的本地序列。根据一个实施例的预处理步骤可以包括在兑汇交易提议到达DConE 108之后分配本地序列号(LSN)。LSN仅需要是唯一的,它们不需要是连续、连贯的或单调的。实际上,LSN不需要是数字,即它们可以是数字或包含字符串。对LSN的唯一要求是唯一性。根据一个实施例,兑汇交易提议编号P应该配置为使得可以从其中得出两个值:
1.服务器节点N的标识,在服务器节点N处接收兑汇交易提议P,和
2.对于除第一个以外的所有兑汇提议,刚好在兑汇交易提议P到达之前到达服务器节点N的兑汇交易提议的LSN。此处的这个在先的兑汇交易提议称为P的前导(predecessor)。
在一个实施例中,服务器节点N处的LSN编号方案可以简单地为N1、N2、N3,…给定的Ni,它到达的服务器节点N可以源自Ni,并且对于所有i>1,在Ni(Pi的前导)之前在服务器节点N上接收的兑汇交易提议为N(i-1)
如果由于某种原因无法生成序列编号,但是可以访问单调递增编号来源,则LSN编号可以配置为两个元组:如果Nj紧接在Ni之后出现并且j≠(i+1),则LSN简化为<Nj,(j-i)>。从<Nj,(j-i)>中,我们可以再次确定兑汇交易提议到达了节点N,并且通过从下标j中减去第二个元组(j-i),可以得出结论Nj的前导是Ni。可以设计其他LSN编号方案。
根据一个实施例,可以执行后处理步骤以确保在由DConE生成的兑汇交易提议的全局排序序列中遵循本地序列。在一个实施例中,在兑汇交易提议经历共识进程之后,并且由于DConE生成来源于所有兑汇节点的兑汇交易提议的混合的输出序列,因此可以将从所有服务器节点接收的每个兑汇交易提议与初步的全局序列号(本文称为GSN')相关联。GSN'是与商定的兑汇交易提议(即,已通过DConE达成共识的兑汇交易提议)相关联的有序序列编号(或其他唯一标识符)。源自给定服务器节点的组成兑汇交易提议在GSN'中出现的顺序可能不(但可以)遵循来自该给定节点的LSN。当期望在GSN'中遵循每个服务器节点的LSN时(如同在例如当前兑汇或市场的履行中那样),可以执行根据一个实施例的后处理步骤,从而为每个服务器节点强制执行兑汇交易提议的本地顺序。
根据一个实施例,进行后处理修改GSN'以生成另一个全局序列号GSN,如下所示。这些后处理步骤确保GSN具有以下期望的性质:在节点N处到DConE的输入队列中,如果兑汇交易提议Pi出现在兑汇交易提议Pj之前,则在GSN中兑汇交易提议Pi将出现在兑汇交易提议Pj之前。
为了确保在GSN中每个节点遵循LSN,可以执行以下操作。如果有n个节点参与DConE,则可以创建n个最小堆H1、H2,...,Hn,一个最小堆对应于包括兑汇的分布式系统的每个服务器节点。根据一个实施例,后处理还可以包括创建n个变量,即处理提议Noi,其中1≤i≤n,每个服务器节点的一个这种变量保留输出的最新兑汇交易提议编号的踪迹。最初,这些变量是不确定的。
根据一个实施例,可以如下地处理来自初步全局序列号GSN'的兑汇提议P。实际上,服务器节点x提交的兑汇提议Pi可以按以下方式处理:
a.将兑汇提议Pi插入到用于服务器节点x的最小堆Hx中。Hx的根称为Proot
b.当(处理提议Nox==Proot的前导)
//布尔条件(未定义==P1)通过定义来评估成立(true)
i.从Hx中删除Proot
ii.将Proot附加到GSN,以及
iii.将Proot写入处理提议Nox
提议P(其前导未出现在GSN上)进入保留模式。这通过使P从GSN'中出队,然后将其入队到与提交P的节点相对应的最小堆(也称为优先队列)中来完成。通过查阅变量处理提议No来检查条件:我的前导是否在GSN上?此外,将检查此条件,并将提议重复地输出到GSN,直到该堆变空或条件不再成立为止。
图3示出了计算机实现方法300的各方面,该方法300处理由DConE生成的商定的兑汇交易提议的序列,以当兑汇交易提议被兑汇中的各自始发节点发送到DConE108时,遵循兑汇交易提议的本地排序。在某些应用中,致使GSN遵循本地顺序不是必要的。然而,在其他应用中,出于公平考虑,必须严格遵循兑汇交易提议的本地顺序。因此,一个实施例可以配置为利用DConE 108输出的GSN,而无需对本地序列进行任何重新排序。另一个实施例可以配置为使得对DConE 108的GSN输出在必要时重新排序,使得由DConE 108生成的协议的序列遵循每个节点中兑汇交易提议的本地排序。例如,可以提供命令行“开关”或其他功能,以选择性地能够或不能够对从DConE输出的协议序列进行重新排序,以遵循(例如,符合)每个节点中相应的兑汇交易提议的排序,该节点为DConE 108输出的协议的序列贡献了兑汇交易提议。
如所示出的,三个服务器节点;也就是说,节点1、节点2和节点3耦合到兑汇,并将兑汇交易提议发送到DConE 108。实际上,如节点302处所示,服务器节点1(节点1)发送兑汇交易提议X4、X3、X2和X1到DConE 108,如节点304处所示,服务器节点2(节点2)发送兑汇交易提议Y4、Y3、Y2和Y1到DConE 108,并且如节点306处所示,服务器节点3(节点3)将兑汇交易提议Z4、Z3、Z2和Z1发送到DConE108。较低的索引表明更早的到达时间。这些提议由DConE 108接收,DConE 108通过共识协议在接收的兑汇交易提议上达成协议,并输出包括商定的兑汇交易提议的有序序列(现在简称为协议)X1Z2Y3X3Y2X4Z1Y4Z4X2Z3Y1的(示例性)有序的初步全局序列GSN',该序列包括来自节点1、2和3中每个的商定的兑汇交易提议。
在图3中,因此DConE 108分别从节点1、2和3接收本地有序签名的兑汇交易提议(或如图3中示出的贸易)302、304、306。然而,初步GSN'可能不会(但可以想象到的是可以)遵循源自每个节点的提议的本地排序。例如,在GSN'(末尾)X1Z2Y3X3Y2X4Z1Y4Z4X2Z3Y1(开头)中,协议Z3出现在Z1之前,其没有遵循节点3将Z提议提交到DConE 108的顺序,即Z4,Z3,Z2和Z1。因此,根据一个实施例,然后可对GSN'的组成协议进行重新排序为310处示出的GSN。GSN310配置为使得其组成协议被排序以遵循每个节点中的相应的兑汇交易提议的本地顺序。在305处示出了用于完成在GSN'309和GSN 310之间的这种重新排序的后处理,相同的后处理在303和307处进行。
图3是采用初步GSN'309并输出重新排序的GSN 310的后处理步骤的时间快照(snapshot)。如示出的,将初步GSN'309相同地输出到所有三个节点1、2和3以进行后处理,尽管不一定要同时进行。由于重新排序进程是确定性的,因此相同的输入将始终产生相同的输出,从而确保将相同的GSN 310相同地输出到节点1、节点2和节点3,然后每个节点将执行底层的兑汇交易并以相同的顺序来更新复制分类帐。出于说明的目的,采用了图3所示的时间快照,使得节点1当前正在处理GSN'的Y2X4Z1Y4Z4X2Z3Y1部分,因此这在312处留下X1Z2Y3X3以等待后处理。类似地,节点2当前正在处理GSN'的X3Y2X4Z1Y4Z4X2Z3Y1部分,因此这在314处留下X1Z2Y3以等待后处理。最后,节点3当前正在处理GSN'的X4Z1Y4Z4X2Z3Y1部分,因此这在316处留下GSN'的较大部分X1Z2Y3X3Y2以等待后处理。重要的是,尽管节点1、节点2和节点3可能以不同的速率处理GSN'中的协议,并且可能不会都同时处理相同的协议,但是在节点中,节点都以相同的顺序从GSN'馈送相同的协议,并以相同的方式处理它们以生成相同的GSN。这确保了在每个节点上以相同的顺序执行底层的交易,并且确保每个节点以相同的顺序更新其分布式/复制分类帐的副本。这意味着,随着时间的流逝,遍及节点的已完成交易的分布式/复制分类帐是(或将变为)相同的。
图3示出了节点2处的后处理,并理解到节点1和3在初步GSN'309的组成协议上使用相同的后处理步骤。如示出的,为每个节点提供最小堆。在节点2中,因此提供了一个用于节点1的最小堆,提供了另一个用于节点2的最小堆,并在节点2中提供了用于节点3的另一个最小堆,用于每个节点的一个最小堆为DConE 108提供提议。来自与其原始节点相对应的GSN'309的协议分别地填充这些最小堆。如上所述,节点2当前正在处理GSN'的X3Y2X4Z1Y4Z4X2Z3Y1部分,因此,在314处留下X1Z2Y3以等待后处理。协议Y1是在节点2中进行后处理的第一个协议。由于Y1没有前导,因此其直接传递到GSN,如图3中GSN 310的前端所示。接着,处理Z3。由于没有处理Z2(Z3的前导),因此Z3被插入与节点3对应的堆中。注意,Z1存在于在节点2处当前正在进行后处理的GSN'的X3Y2X4Z1Y4Z4X2Z3Y1部分。因此,具有所有Z协议中最低索引值的协议Z1直接移动到GSN,到Y1(之后)的左侧。因此,Z1移动进入最后处理的提议#位置,并且协议Z3和Z4仍停留在最小堆中等待其前导的到达:Z3等待Z2且Z4给Z3让路。节点3的最小堆将如示出的,Z3在根位置。当前正在进行后处理的GSN'的部分中遇到的下一个是X2。由于节点2当前正在处理的GSN'的X3Y2X4Z1Y4Z4X2Z3Y1中不存在X1,因此,此时X协议中的任何一个都不能输出到GSN,因此,将用于节点1协议的最后处理的提议#设置为“未定义”。实际上,X1在图3中示出为等待后处理,如314处所示。因此,使用节点2当前正在处理的GSN'的X3Y2X4Z1Y4Z4X2Z3Y1部分中实际存在的X2、X3和X4,来填充用于节点1的节点2的最小堆,且X2在根位置。然后处理协议Y4。由于节点2当前正在处理的GSN'的X3Y2X4Z1Y4Z4X2Z3Y1部分中存在Y2,并且Y2具有Y协议的倒数第二低的索引,因此将Y2输出到GSN并记录为节点2的最后处理的提议#(在上面列出的进程中的处理提议No2)并且Y4移动到节点2最小堆的根。到目前为止,这种后处理已输出GSN 317的部分——Y2Z1Y1,它组成了310处示出的GSN的前端。以相同的方式处理GSN'的其他组成协议,以生成GSN 310。
实际上,然后将从在314处等待后处理的协议处理Y3。由于协议Y2(Y3的前导)是最后处理的提议#,因此可将Y3直接输出到GSN 310,到Y2的左侧,于是可以将Y3输入为最后处理的提议#,进而允许Y4接下来进入GSN 310。类似地,当对Z2进行后处理时,其确定为还没有进行处理的最低索引值,从而使Z2能够直接移动到GSN 310,随后是来自节点3最小堆中的Z3和Z4。最后,对X1进行后处理,确定其没有前导,并在Z4之后直接发送到GSN 310,随后是节点1最小堆中剩余的X个协议,从最小索引值到最大索引值。因此,将节点1最小堆的根(即X2)移动到GSN 310,X2被标识为节点1的最后处理提议#,因此协议X3处于根位置。然后,将X3输出到GSN 310,分配为最后处理的提议#,并且将X4移动到节点1最小堆的根位置并移动到GSN 310。该进程得到GSN 310,在其中协议X4X3X2X1Z4Z3Z2Y4Y3Y2Z1Y1的顺序遵循每个节点处生成的相应的兑汇交易提议的本地排序。实际上,请注意,与GSN'309不同,在GSN 310中,在序列中Z3不再出现在Z1之前,这遵循了提交给DConE 108的相应的兑汇交易提议的本地排序。
密码安全性
本文公开的兑汇的一个实施例假定没有一个参与者是恶意的。实际上,围绕所谓的非拜占庭模型建立了一个实施例,就像DConE 108一样。图4示出了包括多个计算节点的示例性兑汇,每个计算节点包括一个或多个服务器节点,并且示出了根据一个实施例的兑汇的安全性和保密性特征。图4的框图示出了可以采用密码学和其他安全协议来实现端-端安全性的各个地方。如示出的,每个节点,即节点1 402、节点2 404和节点3 406可包括多个服务器节点并且可以各自包括DConE的实例,如图1、2和3示出和描述的。节点402、404、406中的每个可以耦合到网络,该网络包括例如因特网。DConE的实例可以通过安全通信通道在计算节点之间安全地通信,以达成共识(兑汇交易提议上的协议)。在一个实施例中,节点间通信可以利用安全套接字链路(SSL)协议。根据一个实施例,在一种实施方式中,可以使用客户的良好隐私(PGP)密钥对出价和要价进行签名,并在DConE端用客户的PGP公钥进行验证。可以利用其他加密协议。传输到兑汇服务器并且响应,通过HTTP安全性(HTTPS或SSL上的HTTP),可将贸易确认和其他信息作为,例如XML信息传达回到客户计算设备。
如果实际上希望匿名,则客户匿名性的方面可能是兑汇操作所处的管控环境的功能。在一个实施例中,客户C可以通过在注册时生成公钥/私钥对来进行匿名交易,并使用该对中的公钥部分与C拥有的帐户相关联。通过要求客户使用与贸易来源的帐户相关联的私钥来签署每笔交易,兑汇可以实现不可否认性。在一个实施例中,可使用具有可配置数量的位(例如512位)的RSA算法来签署交易。
贸易的安全性
由于客户C从帐户进行的每笔交易都必须使用与该帐户相关联的客户私钥Cpriv进行数字签名,并且由于应该仅有C知道Cpriv,因此其他人不能伪装成客户C进行欺诈交易。根据一个实施例,相同的数字签名机制也可以将C绑定到交易,使得在以后的时间点C不能拒绝交易。一旦完成贸易,就将它们写入复制分类帐,其具有维护至少一个分类帐的副本的每个节点402、406、408。根据一个实施例,在涉及2f+1个节点的实现中,在最多f个节点同时发生故障时,兑汇可以继续取得进展(例如,匹配要价和出价、处理交易和更新分类账)。例如,在涉及十一个节点(f=5)的实现中,即使五个节点同时故障,兑汇也将继续取得进展。由于兑汇保留客户帐户和分类帐,并且由于模型是非拜占庭模型,因此帐户和复制分类帐将始终保持为防篡改。根据一个实施例,还可以根据拜占庭模型来配置兑汇,这种情况下在涉及3f+1个节点的实现中,在最多f个节点同时发生故障时,兑汇可以继续取得进展(例如,匹配要价和出价、处理交易和更新分类账)。例如,在涉及十六个节点(f=5)的拜占庭实现中,即使五个节点同时故障,兑汇也将继续取得进展。
根据一个实施例,兑汇数据库可以包括各种数据结构、客户历史以及复制分类账本身。为了能够改变大小,可以将兑汇数据库分成多个碎片。某些数据(例如分类帐),例如可能存在于多个碎片的每个碎片中。
本文描述和示出的分布式系统具有与区块链或基于分布式分类帐技术的分布式系统相关联的所有特征。这些包括共识、有效性、唯一性、不变性和不可否认性。通过本文描述和示出的分布式协调引擎108(DConE)可以达成共识。在本分布式兑汇系统中实现了有效性,因为本兑汇配置为例如通过确保进行兑汇的账户具有足够的可用资源(现金或黄金)来进行贸易,从而检查贸易的有效性。可以建立其他措施以确保客户及其贸易的有效性。通过允许的区块链的性质以及AuX中执行兑汇交易的有序性质,以获得唯一性特征。兑汇交易的这种确定性、有序执行,以及记录这些兑汇交易的分布式分类账组成的更改的确定性和有序的性质,导致创建一个并且仅一个分类账,即使单个分类帐可以在分布式系统上分发或复制。由于分类帐由分布式系统共同保存并且没有一个副本能够被更改,因此获得了不变性特征。此外,由于所有节点都是诚实的(非拜占庭),因此假定它们遵循兑汇规则,并且遍及所有节点的分类帐是相同的,且分类帐保持在该状态。通过上述用于贸易的私钥来获得不可否认特征,并且也可能用于其他目的,例如对帐户余额进行担保等。
图5是根据一个实施例的计算机实现的流程图。更特别地,图5是在分布式系统中实现在线兑汇并在这种在线兑汇中实现区块链分布式分类账的计算机实现的方法的流程图。如在B502处所示,该方法可以包括在多个服务器节点中通过计算机网络从在线兑汇的客户接收兑汇交易提议。多个服务器节点中的每个服务器节点可以配置为存储已完成兑汇交易的复制分类帐的副本。如在B504处所示,分布式协调引擎可以通过计算机网络耦合到多个服务器节点。如在B506处所示,分布式协调引擎可以从多个服务器节点接收多个本地排序的兑汇交易提议。框B508要求在分布式协调引擎中对来自多个服务器节点的多个本地排序的兑汇交易提议达成共识。然后,在B510中,该计算机实现的方法然后可以作为响应,导致生成商定的兑汇交易提议的顺序,该商定的兑汇交易提议包括已经达成共识的多个兑汇交易提议。如所示出的,商定的兑汇交易提议的顺序可以指定多个服务器节点在在线兑汇中将要执行兑汇交易并更新其复制分类账的副本的顺序。可选的块B512要求对商定的兑汇交易提议的顺序进行重新排序,以遵循在多个服务器节点中的每个服务器节点中接收发布的兑汇交易提议的顺序,要求在多个本地有序的兑汇交易提议中提供重新排序的商定的兑汇交易提议,并要求提供与多个服务器节点中的每个服务器节点相同的重新排序的商定的兑汇交易提议,以供执行。
1.在其他实施例中,在线兑汇的客户可以对多个服务器节点接收的每个兑汇交易提议进行数字签名。可以对多个服务器节点接收的每个兑汇交易提议进行加密。在一个实施例中,分布式协调引擎可以包括多个分布式协调引擎实例,该分布式协调引擎实例通过安全通信信道在它们自身之间进行通信。分布式协调引擎可以进一步配置为对商定的兑汇交易提议的顺序进行重新排序,以遵循在多个服务器节点中的每个服务器节点中发布的兑汇交易提议的顺序,并配置为提供与多个服务器节点中的每个服务器节点相同的重新排序的商定的兑汇交易提议,以供执行。分布式协调引擎可以进一步配置为向从多个服务器节点中的每个服务器节点接收的每个兑汇交易提议分配唯一的本地序列号(LSN)。LSN继而可以配置为两个元组<Nj,Ni>,其中N标识多个服务器节点中的唯一服务器节点,Ni和Nj各自标识唯一的兑汇交易提议,并且Nj正好在Ni之后到达。可以以其他方式配置LSN。例如,可对LSN依序编号。在一个实施例中,通过在各自最小堆中缓冲商定的兑汇交易提议,为多个服务器节点中的每个服务器节点缓冲一个,并且通过迭代地将各自最后处理的商定的提议编号标识为各自最小堆的各自的根,可将分布式协调引擎进一步配置为重新排序的商定的兑汇交易提议的顺序,以遵循多个兑汇交易提议中的每个兑汇交易提议的顺序。
其他实施例可以包括计算机实现的方法,该方法在分布式系统中实现在线兑汇,并且实现相对于权利要求5示出和描述的区块链分布式分类帐,以及其上存储有表示指令的序列的数据的非暂时性机器可读介质,相对于图6所示和描述的内容,当由计算设备执行指令时,将导致计算设备在分布式系统中实现在线兑汇并实现区块链分布式分类帐。
物理硬件
图6是可以用来实现实施例的计算设备的框图。图6的计算设备可以包括总线601或用于通信信息的其他通信机构,以及与总线601耦合用于处理信息的一个或多个处理器602。计算设备可以进一步包括随机存取存储器(RAM)或其他动态存储设备604(称为主存储器),将其耦合到总线601以存储信息和将由处理器602执行的指令。主存储器(有形的和非暂时性的,此处的术语不包括信号本身和波形)604还可用于存储在处理器602执行指令期间的临时变量或其他中间信息。图6的计算设备还可包括只读存储器(ROM)和/或其他静态存储设备606,将其耦合到总线601以存储静态信息和一个或多个处理器602的指令。可将数据存储设备607(例如磁盘和/或固态数据存储设备)耦合到总线601以存储信息和指令——例如需要执行相对于图1-5所示出和公开的功能。还可以通过总线601将计算设备耦合到显示设备621,以向计算机用户显示信息。可将包括字母数字和其他键的字母数字输入设备622耦合到总线601,以将信息和命令选择传达给一个或多个处理器602。用户输入设备的另一种类型是光标控件623,例如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传达给一个或多个处理器602,并用于控制显示器621上的光标移动。通过通信接口(例如,调制解调器、网络接口卡或NIC)608,可将图6的计算设备耦合到网络626。
如示出的,存储设备607可以包括直接访问数据存储设备,例如磁盘630、非易失性半导体存储器(EEPROM、闪存等)632、如631处所建议的包括磁盘和非易失性半导体存储器的混合数据存储设备。附图标记604、606和607是其上存储有表示指令的序列的数据的有形、非暂时性计算机可读介质的示例,当一个或多个计算设备执行这些指令的序列时,实现本文所述和所示的在线兑汇和方法的方面。这些指令中的一些指令可以本地存储在客户端计算设备中,而这些指令中的其他指令可以远程地存储(和/或执行),并通过网络626传达给客户端计算。在其他实施例中,所有这些指令都可以本地存储在客户端或其他独立计算设备中,而在其他实施例中,所有这些指令都可以远程存储和执行(例如,在一个或多个远程服务器中),并将结果传送到客户端计算设备。在又一个实施例中,可将指令(处理逻辑)存储在另一形式的有形、非暂时性的计算机可读介质上,例如在628处示出的。例如,附图标记628可实施为光盘(或其他存储技术盘),其可以构成合适的数据载体以将其上存储的指令加载到一个或多个计算设备上,从而将一个或多个计算设备重新配置为本文描述和示出的一个或多个实施例。在其他实施方式中,附图标记628可以呈现为加密的固态驱动器。其他实施方式也是可能的。
本发明的实施例涉及使用计算设备,使用分布式分类账技术(有时称为区块链技术)来实施在线兑汇。根据一个实施例,响应于一个或多个处理器602执行存储器604中包含指令的序列(指令体现了本文示出和描述的计算机实现的方法的方面),一个或多个计算设备可提供本文描述的方法、设备和系统。可以从另一计算机可读介质,例如数据存储设备607或在628处示出的类似的(光学、磁性等)数据载体,将这种指令读入存储器604。存储器604中包含的指令的序列的执行使一个或多个处理器602执行步骤并具有本文所述的功能。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令结合以实施所描述的实施例。因此,实施例不限于硬件电路和软件的任何特定组合。实际上,本领域技术人员应该理解,任何合适的计算机系统都可以实现本文所述的功能。该计算设备可以包括一个或多个微处理器,这些微处理器工作以执行期望的功能。在一个实施例中,由一个或多个微处理器执行的指令可操作以使一个或多个微处理器执行本文所述的步骤。指令可以存储在任何计算机可读介质中。在一个实施例中,它们可以存储在微处理器外部的非易失性半导体存储器中,或者与微处理器集成。在另一个实施例中,指令可以存储在磁盘上,并且在微处理器执行指令之前将指令读入易失性半导体存储器中。
上面详细描述的部分描述了计算设备的操作的进程和符号表示,该计算设备可以包括计算机组件,该计算机组件包括本地处理单元、用于本地处理单元的存储器存储设备、显示设备和输入设备。此外,这种进程和操作可以在异构(heterogeneous)分布式计算环境中利用计算机组件,该异构分布式计算环境包括例如远程文件服务器、计算机服务器和存储器存储设备。通过通信网络,这些分布式计算组件可以访问本地处理单元。
计算机执行的进程和操作包括通过本地处理单元和/或远程服务器操纵数据位,以及保留驻留在一个或多个本地或远程存储器存储设备中的数据结构内的这些位(bits)。这些数据结构在存储器存储设备内存储的数据位的集合上强加物理组织,并表示电磁频谱元素。
通常可将诸如本文描述和示出的计算机实现的数据扩充方法的进程定义为导致所需结果的一系列计算机执行步骤。这些步骤通常需要对物理量进行物理操作。通常,尽管不是必须的,这些量可以采取能够存储、传输、组合、比较或以其他方式操纵的电、磁或光信号的形式。本领域技术人员通常将这些信号称为位或字节(当它们具有二进制逻辑水平时)、像素值、作品、值、元素、符号、特征、术语、数字、点、记录、对象、图像、文件、目录和子目录等。但是应记住,这些和类似术语应与用于计算机操作的合适物理量相关联,并且这些术语仅仅是应用于计算机内部和计算机运行期间存在的物理量的常规标签。
还应该理解,通常用诸如增加、比较、移动、定位、放置、照明、移除、改变等术语来指代计算机内的操纵。本文描述的操作是与各种输入相结合而执行的机器操作,该输入由与计算机交互的人类或人工智能代理操作者或用户提供。用于执行本文描述的操作的机器包括本地或远程通用数字计算机或其他类似的计算设备。
另外,应当理解,本文描述的程序、进程、方法等既不涉及或限于任何特定的计算机或设备,也不涉及或限于任何特定的通信网络架构。准确地说,各种类型的通用硬件机器可以与根据本文描述的教导构造的程序模块一起使用。类似地,通过专用网络系统构造专用设备来执行本文中描述的方法步骤的方法可能具有优势,该专用计算机系统具有存储在非易失性存储器(例如只读存储器)中的硬连线逻辑或程序的特定网络体系结构。
尽管已经描述了某些示例实施例,但是这些实施例仅是通过示例的方式呈现的,并且不旨在限制本文公开的实施例的范围。因此,以上描述中的任何内容都不意味着任何特定的特征、特性、步骤、模块或块是必要的或必不可少的。实际上,本文描述的新颖的方法和系统可以以多种其他形式来体现;此外,在不脱离本文公开的实施例的精神的情况下,可以对本文所述的方法和系统的形式进行各种省略、替换和改变。

Claims (21)

1.一种实现在线兑汇并实现区块链分布式分类账的分布式系统,包括:
多个服务器节点,多个服务器节点的每个服务器节点配置为通过计算机网络从在线兑汇的客户接收兑汇交易提议,并且每个服务器节点配置为存储已完成兑汇交易的分布式分类帐的副本;和
分布式协调引擎,所述分布式协调引擎通过计算机网络耦合到多个服务器节点,并配置为从多个服务器节点接收多个兑汇交易提议,所述分布式协调引擎还配置为对来自多个服务器节点的多个兑汇交易提议达成共识,并作为响应,生成商定的兑汇交易提议的相同顺序,所述商定的兑汇交易提议包括已经达成共识的多个兑汇交易提议,商定的兑汇交易提议的相同顺序指定多个服务器节点在在线兑汇中将要执行兑汇交易并更新其分布式分类帐的副本的顺序,其中所述分布式协调引擎进一步配置为对商定的兑汇交易提议的顺序选择性地进行重新排序,以遵循在多个服务器节点中的每个服务器节点中发布兑汇交易提议的顺序,并配置为提供与多个服务器节点中的每个服务器节点相同的重新排序的商定的兑汇交易提议,以供执行。
2.根据权利要求1所述的分布式系统,其中在线兑汇的客户对多个服务器节点接收的每个兑汇交易提议进行数字签名。
3.根据权利要求1所述的分布式系统,其中对多个服务器节点接收的每个兑汇交易提议进行加密。
4.根据权利要求1所述的分布式系统,其中分布式协调引擎包括多个分布式协调引擎实例,所述分布式协调引擎实例通过安全通信信道在自身之间进行通信。
5.根据权利要求1所述的分布式系统,其中分布式协调引擎进一步配置为向从多个服务器节点中的每个服务器节点接收的每个兑汇交易提议分配唯一的本地序列号(LSN)。
6.根据权利要求5所述的分布式系统,其中LSN配置为两个元组<Nj,Ni>,其中N标识多个服务器节点中的唯一的服务器节点,Ni和Nj各自标识唯一的兑汇交易提议,并且Nj正好在Ni之后到达。
7.根据权利要求1所述的分布式系统,其中分布式协调引擎进一步配置为通过在各自最小堆中缓冲商定的兑汇交易提议,为多个服务器节点中的每个服务器节点缓冲一个,并且通过迭代地将各自最后处理的商定的提议编号标识为各自最小堆的各自的根,对商定的兑汇交易提议的顺序进行重新排序。
8.一种在分布式系统中实现在线兑汇并实现区块链分布式账本的计算机实现方法,该方法包括:
在多个服务器节点中通过计算机网络从在线兑汇的客户接收兑汇交易提议,多个服务器节点中的每个服务器节点配置为存储已完成兑汇交易的分布式分类帐的副本;
通过计算机网络将分布式协调引擎耦合到多个服务器节点;
在分布式协调引擎中从多个服务器节点接收多个兑汇交易提议;
在分布式协调引擎中对来自多个服务器节点的多个兑汇交易提议达成共识;
作为响应,生成商定的兑汇交易提议的顺序,所述商定的兑汇交易提议包括多个已经达成共识的兑汇交易提议,商定的兑汇交易提议的顺序指定多个服务器节点在在线兑汇中将要执行兑汇交易并更新其分布式分类帐的副本的顺序;
对商定的兑汇交易提议的顺序进行重新排序,以遵循在多个服务器节点中的每个服务器节点中发布兑汇交易提议的顺序;以及
提供与多个服务器节点中的每个服务器节点相同的重新排序的商定的兑汇交易提议,以供执行。
9.根据权利要求8所述的计算机实现方法,其中在线兑汇的客户对多个服务器节点接收的每个兑汇交易提议进行数字签名。
10.根据权利要求8所述的计算机实现方法,其中对多个服务器节点接收的每个兑汇交易提议进行加密。
11.根据权利要求8所述的计算机实现方法,其中分布式协调引擎包括多个分布式协调引擎实例,所述分布式协调引擎实例通过安全通信信道在自身之间进行通信。
12.根据权利要求8所述的计算机实现方法,进一步包括:
向从多个服务器节点中的每个服务器节点接收的每个兑汇交易提议分配唯一的本地序列号(LSN)。
13.根据权利要求12所述的计算机实现方法,其中LSN配置为两个元组<Nj,Ni>,其中N标识多个服务器节点中的唯一的服务器节点,Ni和Nj各自标识唯一的兑汇交易提议,并且Nj正好在Ni之后到达。
14.根据权利要求8所述的计算机实现方法,其中对商定的兑汇交易提议的顺序进行重新排序,以遵循多个本地排序的兑汇交易提议中的兑汇交易提议的顺序,包括:
在各自最小堆中缓冲商定的兑汇交易提议,为多个服务器节点中的每个服务器节点缓冲一个,以及
迭代地将各自最后处理的商定的提议编号标识为各自最小堆的各自的根。
15.一种非暂时性机器可读介质,其具有在其上存储表示指令的序列的数据,当计算设备执行指令时,所述指令使计算设备在分布式系统中实现在线兑汇,并通过以下方式实现区块链分布式分类帐:
在多个服务器节点中通过计算机网络从在线兑汇的客户接收兑汇交易提议,多个服务器节点中的每个服务器节点配置为存储已完成兑汇交易的分布式分类帐的副本;
通过计算机网络将分布式协调引擎耦合到多个服务器节点;
在分布式协调引擎中从多个服务器节点接收多个兑汇交易提议;
在分布式协调引擎中对来自多个服务器节点的多个兑汇交易提议达成共识;
作为响应,生成商定的兑汇交易提议的顺序,所述商定的兑汇交易提议包括多个已经达成共识的兑汇交易提议,商定的兑汇交易提议的顺序指定多个服务器节点在在线兑汇中将要执行兑汇交易并更新其分布式分类帐的副本的顺序;
对商定的兑汇交易提议的顺序进行重新排序,以遵循在多个服务器节点中的每个服务器节点中发布的兑汇交易提议的顺序;以及
提供与多个服务器节点中的每个服务器节点相同的重新排序的商定的兑汇交易提议,以供执行。
16.根据权利要求15所述的非暂时性机器可读介质,其中在线兑汇的客户对多个服务器节点接收的每个兑汇交易提议进行数字签名。
17.根据权利要求15所述的非暂时性机器可读介质,其中对多个服务器节点接收的每个兑汇交易提议进行加密。
18.根据权利要求15所述的非暂时性机器可读介质,其中分布式协调引擎包括多个分布式协调引擎实例,所述分布式协调引擎实例通过安全通信信道在自身之间进行通信。
19.根据权利要求15所述的非暂时性机器可读介质,进一步包括指令的序列,用于:
向从多个服务器节点中的每个服务器节点接收的每个兑汇交易提议分配唯一的本地序列号(LSN)。
20.根据权利要求19所述的非暂时性机器可读介质,其中LSN配置为两个元组<Nj,Ni>,其中N标识多个服务器节点中的唯一的服务器节点,Ni和Nj各自标识唯一的兑汇交易提议,并且Nj正好在Ni之后到达。
21.根据权利要求15所述的非暂时性机器可读介质,进一步包括指令的序列,用于对商定的兑汇交易提议的顺序进行重新排序,以遵循多个本地排序的兑汇交易提议中的兑汇交易提议的顺序,通过以下方式:
在各自最小堆中缓冲商定的兑汇交易提议,为多个服务器节点中的每个服务器节点缓冲一个,以及
迭代地将各自最后处理的商定的提议编号标识为各自最小堆的各自的根。
CN201980045167.0A 2018-07-03 2019-06-04 实现区块链分布式分类账的基于分布式协调引擎的兑汇的方法、设备和系统 Active CN112424810B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/026,876 US10855749B2 (en) 2018-07-03 2018-07-03 Methods, devices and systems for a distributed coordination engine-based exchange that implements a blockchain distributed ledger
US16/026,876 2018-07-03
PCT/US2019/035419 WO2020009771A1 (en) 2018-07-03 2019-06-04 Methods, devices and systems for a distributed coordination engine-based exchange that implements a blockchain distributed ledger

Publications (2)

Publication Number Publication Date
CN112424810A CN112424810A (zh) 2021-02-26
CN112424810B true CN112424810B (zh) 2024-03-12

Family

ID=69059369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980045167.0A Active CN112424810B (zh) 2018-07-03 2019-06-04 实现区块链分布式分类账的基于分布式协调引擎的兑汇的方法、设备和系统

Country Status (7)

Country Link
US (3) US10855749B2 (zh)
EP (1) EP3782102A4 (zh)
JP (1) JP7359790B2 (zh)
CN (1) CN112424810B (zh)
AU (1) AU2019298894A1 (zh)
CA (1) CA3105014A1 (zh)
WO (1) WO2020009771A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX337624B (es) * 2009-12-10 2016-03-11 Royal Bank Of Canada Procesamiento sincronizado de datos por recursos de computo conectados en red.
US9940670B2 (en) 2009-12-10 2018-04-10 Royal Bank Of Canada Synchronized processing of data by networked computing resources
US10949548B2 (en) * 2018-10-18 2021-03-16 Verizon Patent And Licensing Inc. Systems and methods for providing multi-node resiliency for blockchain peers
JP2020173812A (ja) * 2019-04-12 2020-10-22 ジェイピーモルガン・チェース・バンク,ナショナル・アソシエーション 分散型台帳技術を介して市場データハブを実施するためのシステムおよび方法
US11614769B2 (en) * 2019-07-15 2023-03-28 Ecole Polytechnique Federale De Lausanne (Epfl) Asynchronous distributed coordination and consensus with threshold logical clocks
US10771524B1 (en) * 2019-07-31 2020-09-08 Theta Labs, Inc. Methods and systems for a decentralized data streaming and delivery network
US11403281B2 (en) * 2020-01-09 2022-08-02 Eternal Paradise Limited Parallel blockchain processing
WO2021173852A1 (en) * 2020-02-25 2021-09-02 Jpmorgan Chase Bank, N.A. Systems and methods for space-based transactions
CN111510484B (zh) * 2020-04-10 2023-07-04 金蝶软件(中国)有限公司 区块链处理方法、系统、装置、计算机设备和存储介质
US11356424B2 (en) * 2020-06-22 2022-06-07 Paypal, Inc. Database synchronization system in high security zones using blockchain
US11875357B2 (en) * 2020-07-09 2024-01-16 Mastercard International Incorporated Method and system of using miner commitment to reward proofs
CN112751915B (zh) * 2020-12-23 2022-05-03 重庆邮电大学 基于分布式协调通信机制的区块链安全计算方法
CN114499874B (zh) * 2021-12-29 2023-10-31 重庆邮电大学 一种应用于工业互联网的拜占庭容错共识优化方法
CN114546970B (zh) * 2022-02-25 2024-04-05 山东大学 基于参与者联盟链激励的数据共享方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005339168A (ja) * 2004-05-26 2005-12-08 Canon Inc 情報処理装置とその方法及びリサイクル処理システム
CN106780033A (zh) * 2016-12-16 2017-05-31 杭州云象网络技术有限公司 一种基于联盟链的数字票据交易系统构建方法
US9774578B1 (en) * 2016-05-23 2017-09-26 Accenture Global Solutions Limited Distributed key secret for rewritable blockchain

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6917036B2 (en) 2002-02-08 2005-07-12 Ionalytics Corporation FAIMS with non-destructive detection of selectively transmitted ions
US7856502B2 (en) 2004-06-18 2010-12-21 Microsoft Corporation Cheap paxos
US9424272B2 (en) * 2005-01-12 2016-08-23 Wandisco, Inc. Distributed file system using consensus nodes
US7421616B2 (en) 2005-03-09 2008-09-02 International Business Machines Corporation Replicated state machine
US8135987B2 (en) 2010-06-03 2012-03-13 Microsoft Corporation Collection ordering for replicated state machines
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US20160085955A1 (en) 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
US9519925B2 (en) 2013-08-01 2016-12-13 Omnibazaar, Inc. Decentralized internet shopping marketplaces
AU2015241457B2 (en) * 2014-03-31 2019-10-10 Cirata, Inc. Geographically-distributed file system using coordinated namespace replication
SG11201700142PA (en) 2014-07-11 2017-02-27 Loyyal Corp Distributed ledger protocol to incentivize transactional and non-transactional commerce
US9794331B1 (en) 2014-09-29 2017-10-17 Amazon Technologies, Inc. Block allocation based on server utilization
AU2016266567B2 (en) 2015-02-09 2020-02-20 Tzero Ip, Llc Crypto integration platform
US11704733B2 (en) 2015-05-01 2023-07-18 Tzero Ip, Llc Crypto multiple security asset creation and redemption platform
WO2017069874A1 (en) 2015-10-21 2017-04-27 Manifold Technology, Inc. Event synchronization systems and methods
US20170140375A1 (en) 2015-11-15 2017-05-18 Michael Kunstel System and Method for Permissioned Distributed Block Chain
US20170140394A1 (en) 2015-11-18 2017-05-18 International Business Machines Corporation Consensus-based reputation tracking in online marketplaces
US9849364B2 (en) 2016-02-02 2017-12-26 Bao Tran Smart device
US20170236120A1 (en) 2016-02-11 2017-08-17 Oracle International Corporation Accountability and Trust in Distributed Ledger Systems
US20170243193A1 (en) 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
US10762504B2 (en) 2016-02-22 2020-09-01 Bank Of America Corporation System for external secure access to process data network
US10135870B2 (en) 2016-02-22 2018-11-20 Bank Of America Corporation System for external validation of secure process transactions
EP3437048B1 (en) 2016-04-01 2021-06-09 ConsenSys Software Inc. Systems and methods for providing data privacy in a private distributed ledger
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
US10282558B2 (en) 2016-09-02 2019-05-07 The Toronto-Dominion Bank System and method for maintaining a segregated database in a multiple distributed ledger system
US20180075532A1 (en) 2016-09-09 2018-03-15 MonetaGo Inc. Asset exchange system and method
US10419218B2 (en) 2016-09-20 2019-09-17 United States Postal Service Methods and systems for a digital trust architecture
US10747744B2 (en) 2016-10-10 2020-08-18 AlphaPoint Distributed ledger comprising snapshots
US10484178B2 (en) 2016-10-26 2019-11-19 Black Gold Coin, Inc. Systems and methods for providing a universal decentralized solution for verification of users with cross-verification features
US10657526B2 (en) 2016-10-28 2020-05-19 International Business Machines Corporation System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
US20180158034A1 (en) * 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US11451647B2 (en) * 2016-12-27 2022-09-20 Chicago Mercantile Exchange Inc. Message processing protocol which mitigates optimistic messaging behavior
US20180247376A1 (en) 2017-02-27 2018-08-30 HealthshareBlox, LLC Automated transaction validation with distributed ledger
AU2018230763A1 (en) 2017-03-08 2019-10-31 Ip Oversight Corporation System and method for creating commodity asset-secured tokens from reserves
US10783600B2 (en) 2017-05-25 2020-09-22 GM Global Technology Operations LLC Method and system using a blockchain database for data exchange between vehicles and entities
US10728019B2 (en) 2018-04-27 2020-07-28 Gulfstream Aerospace Corporation Communication nodes, distributed communication networks, and methods for monitoring communication in a communication network using blockchains
US10579424B2 (en) * 2018-05-15 2020-03-03 International Business Machines Corporation Prioritization in a permissioned blockchain
US11120006B2 (en) * 2018-06-21 2021-09-14 Amazon Technologies, Inc. Ordering transaction requests in a distributed database according to an independently assigned sequence

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005339168A (ja) * 2004-05-26 2005-12-08 Canon Inc 情報処理装置とその方法及びリサイクル処理システム
US9774578B1 (en) * 2016-05-23 2017-09-26 Accenture Global Solutions Limited Distributed key secret for rewritable blockchain
CN106780033A (zh) * 2016-12-16 2017-05-31 杭州云象网络技术有限公司 一种基于联盟链的数字票据交易系统构建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王菠等.数字货币.中国商业出版社,2016,第87页. *

Also Published As

Publication number Publication date
US11546419B2 (en) 2023-01-03
CA3105014A1 (en) 2020-01-09
JP2021529378A (ja) 2021-10-28
EP3782102A4 (en) 2022-01-26
AU2019298894A1 (en) 2020-12-03
WO2020009771A1 (en) 2020-01-09
EP3782102A1 (en) 2021-02-24
US20220337657A1 (en) 2022-10-20
JP7359790B2 (ja) 2023-10-11
US10855749B2 (en) 2020-12-01
US20200014745A1 (en) 2020-01-09
US20210144196A1 (en) 2021-05-13
US11336713B2 (en) 2022-05-17
CN112424810A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
CN112424810B (zh) 实现区块链分布式分类账的基于分布式协调引擎的兑汇的方法、设备和系统
US11935037B2 (en) Method and apparatus for automated committed settlement of digital assets
US20220391890A1 (en) Private networks and content requests in a resource transfer system
Baird et al. Hedera: A public hashgraph network & governing council
US11392955B2 (en) Temporary consensus networks in a resource transfer system
Baird et al. Hedera: A governing council & public hashgraph network
US20230040935A1 (en) One way functions in a resource transfer system
CN112020705A (zh) 区块链随机计时器事务同步
US8510204B2 (en) System, method, and apparatus for trading in a decentralized market
US20220351177A1 (en) Hold condition in a resource transfer system
JP7434480B2 (ja) 暗号学的に保護された分散データ管理のためのデータベース中心のコンピュータ・ネットワーク・システムおよびコンピュータ実装方法
US11995468B2 (en) Transfer costs in a resource transfer system
AU2022215275A1 (en) Temporary consensus networks in a resource transfer system
CN112689831B (zh) 分布式计算环境中用于对分布式协调引擎无破坏升级的方法、装置和系统
WO2017060816A1 (en) Private networks and content requests in a resource transfer system
CN114579585A (zh) 区块链选择性世界状态数据库
Fujimoto et al. ConnectionChain: the Secure Interworking of Blockchains
US11853316B1 (en) System and method for the creation and management of privacy-preserving audits
US20230097203A1 (en) System and method for generating blockchain token support from a set of declarations

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40038484

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Xilata Co.,Ltd.

Address before: California, USA

Applicant before: Wandisco Co.,Ltd.

GR01 Patent grant
GR01 Patent grant