CN111418183B - 区块链区块的异步处理 - Google Patents
区块链区块的异步处理 Download PDFInfo
- Publication number
- CN111418183B CN111418183B CN201980005780.XA CN201980005780A CN111418183B CN 111418183 B CN111418183 B CN 111418183B CN 201980005780 A CN201980005780 A CN 201980005780A CN 111418183 B CN111418183 B CN 111418183B
- Authority
- CN
- China
- Prior art keywords
- blockchain
- height value
- network node
- blockchain network
- bridge device
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2071—Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
- G06F11/2074—Asynchronous techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本文公开了用于实现基于区块链的容错系统的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。方法之一包括:使用桥接设备的第一线程集从区块链网络节点检索第一区块链区块集。桥接设备将第一区块链区块集存储在桥接设备中。桥接设备使用桥接设备的第二线程集来验证存储在桥接设备中的第二区块链区块集。第一线程集与第二线程集不同。检索第一区块链区块集以及验证第二区块链区块集是使用第一线程集和第二线程集异步地执行的。
Description
技术领域
本文涉及区块链区块的异步处理,这可以被用于例如实现基于区块链的容错系统。
背景技术
分布式账本(DLS),还可被称为共识网络和/或区块链网络,使参与的实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的类型的示例可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并且联盟区块链网络包括访问控制层。
在一些用例中,区块链系统需要与第三方系统交互。期望一种桥接或桥接设备以允许第三方系统与区块链系统之间的通信。在这样的交互系统中,还期望处理用于第三方系统与区块链系统之间通信的区块链区块的吞吐量和处理效率较高,以及具有容错性以确保有序通信。
发明内容
所描述的主题的实施例可以单独或组合地包括一个或多个特征。例如,在一个实施例中,一种由桥接设备执行的方法,其中,桥接设备通信地链接到区块链网络中的区块链网络节点,所述方法包括:使用所述桥接设备的第一线程集从所述区块链网络节点检索第一区块链区块集;将所述第一区块链区块集存储在所述桥接设备中;以及使用所述桥接设备的第二线程集来验证存储在所述桥接设备中的第二区块链区块集;其中,所述第一线程集不同于所述第二线程集;并且检索所述第一区块链区块集以及验证所述第二区块链区块集是使用所述第一线程集和所述第二线程集异步地执行的。在一些实施例中,验证操作可以与检索操作异步地执行,例如通过发起或以其他方式执行验证操作,而无需等待检索操作完成。在一些实施例中,验证操作与检索操作异步地执行包括:在执行检索操作之前、之后执行验证操作,或二者并行执行。
在一些实施例中,可以使用设备、系统、方法或计算机可读介质或设备、系统、方法和计算机可读介质的任何组合来实现这些一般和特定实施例中的一个或多个。前述和其他描述的实施例可以各自可选地包括或不包括以下实施例中的一些或全部。
在一些实施例中,所述第一区块链区块集包括第一区块链区块和第二区块链区块,所述第一线程集包括第一线程和第二线程。使用所述桥接设备的所述第一线程集从所述区块链网络节点检索所述第一区块链区块集包括并行地:使用所述桥接设备的所述第一线程从所述区块链网络节点检索所述第一区块链区块,使用所述桥接设备的所述第二线程从所述区块链网络节点检索所述第二区块链区块。
在一些实施例中,所述第二区块链区块集包括第三区块链区块和第四区块链区块,所述第二线程集包括第三线程和第四线程。使用所述桥接设备的所述第二线程集来验证存储在所述桥接设备中的所述第二区块链区块集并行地包括:使用所述桥接设备的所述第三线程来验证所述第三区块链区块,使用所述桥接设备的所述第四线程来验证所述第四区块链区块。
在一些实施例中,所述方法还包括在所述桥接设备的数据存储中维护远程高度值和本地高度值。所述远程高度值指示存储在所述区块链网络节点上的区块链区块的数量;并且所述本地高度值指示已经从所述区块链网络节点获得并存储在所述桥接设备上的区块链区块的数量。使用所述桥接设备的所述第一线程集从所述区块链网络节点检索所述第一区块链区块集包括:所述桥接设备确定所述本地高度值是否小于所述远程高度值;以及响应于确定所述本地高度值小于所述远程高度值,从所述区块链网络节点获得未存储在所述桥接设备上的至少一个区块链区块。
在一些实施例中,所述方法还包括:响应于从所述区块链网络节点获得所述至少一个区块链区块,将所述至少一个区块链区块存储在所述桥接设备上;以及所述桥接设备更新所述本地高度值。
在一些实施例中,所述方法还包括:响应于确定所述本地高度值不小于所述远程高度值,限制从所述区块链网络节点获得区块链区块。
在一些实施例中,所述方法还包括:所述桥接设备从所述区块链网络节点接收通知,所述通知指示所述远程高度值;所述桥接设备从客户端设备接收交易请求,所述交易请求用于请求在区块链网络上执行交易;所述桥接设备将所述交易请求发送至所述区块链网络节点;以及所述桥接设备从所述区块链网络节点接收第二通知,所述第二通知指示更新的远程高度值,其中,所述更新的远程高度值指示至少部分地基于所述交易存储在所述区块链网络节点上的区块链区块的数量的增加。
在一些实施例中,所述通知包括指示新区块已经被添加到所述区块链网络的区块链中的新区块通知,并且所述新区块通知指示所述远程高度值增加。
在一些实施例中,所述桥接设备从所述区块链网络节点接收所述通知包括以下中的至少一个:接收所述区块链网络节点推送至所述桥接设备的所述通知;或所述桥接设备从所述区块链网络节点提取所述通知。
在一些实施例中,所述方法还包括:在所述桥接设备的数据存储中维护本地高度值和校验高度值。所述本地高度值指示已经从所述区块链网络节点获得并存储在所述桥接设备上的区块链区块的数量;并且所述校验高度值指示已经由所述桥接设备验证的区块链区块的数量。使用所述桥接设备的所述第二线程集来验证存储在所述桥接设备中的所述第二区块链区块集包括:确定所述校验高度值是否小于所述本地高度值;以及响应于确定所述校验高度值小于所述本地高度值,验证存储在所述桥接设备中并且尚未由所述桥接设备验证的区块链区块。
在一些实施例中,验证存储在所述桥接设备中并且尚未由所述桥接设备验证的所述区块链区块包括:确定所述区块链区块中的一个或多个区块链交易与交易请求之间的一致性。
在一些实施例中,所述方法还包括:响应于验证了存储在所述桥接设备上并且尚未由所述桥接设备验证的所述区块链区块,确定所述区块链区块是可信的;以及所述桥接设备更新所述校验高度值。
在一些实施例中,所述方法还包括:响应于确定所述校验高度值不小于所述本地高度值,限制验证存储在所述桥接设备中的区块链区块。
在一些实施例中,所述方法还包括:所述桥接设备检测包括所述桥接设备和所述区块链网络节点的系统中的系统错误;以及响应于检测到所述系统错误,基于所述校验高度值执行恢复处理。执行所述恢复处理包括:将所述本地高度值设置为等于所述校验高度值;以及响应于确定所述本地高度值小于指示存储在所述区块链网络节点上的区块链区块的数量的远程高度值,从所述区块链网络节点获得未存储在所述桥接设备上的至少一个区块链区块。
应当理解的是,根据本文的方法可包括本文描述的实施例和特征的任何组合。也就是说,根据本文的方法不限于本文具体描述的实施例和特征的组合,还包括所提供的实施例和特征的任何组合。
在附图和以下描述中阐述了本文的一个或多个实施例的细节。根据说明书和附图以及权利要求,本文的其他特征和优点将显现。
附图说明
图1是示出可用于执行本文实施例的环境的示例的示图。
图2是示出根据本文实施例的架构的示例的示图。
图3是示出根据本文实施例的基于区块链的容错系统的示例的示图。
图4是示出根据本文实施例的存储在图3的基于区块链的容错系统中的游标值的示例的示图。
图5是示出可根据本文实施例执行的处理的示例的信号流。
图6A是示出可根据本文实施例执行的用于异步处理区块链区块的处理的流程图。
图6B是示出可根据本文实施例执行的用于异步处理区块链区块的处理的流程图,该处理可用于例如实现基于区块链的容错系统。
图7是示出根据本文实施例的装置的模块的示例的示图。
各附图中的相同附图标记和名称表示相同的元件。
具体实施方式
本文描述了用于异步处理区块链区块以例如实现基于区块链的容错系统的技术。这些技术通常涉及使用桥接设备连接区块链系统和第三方系统,例如,以实现协调处理和控制功能。
本文中描述的技术产生若干技术效果。在一些实施例中,桥接设备被通信地链接到(例如,通过一个或多个有线或无线信道)客户端设备和区块链网络中的区块链网络节点。在一些实施例中,桥接设备可以帮助客户端设备从区块链网络节点检索区块链区块。这样,客户端设备可以在本地存储、验证以及以其他方式处理检索到的区块链区块,并与存储在区块链网络的区块链中的区块链区块同步。
在一些实施例中,桥接设备可以提供提高的吞吐量和处理效率,同时实现客户端设备、桥接设备和区块链网络的协调处理。例如,桥接设备可以被设计为使得能够利用异步处理来执行桥接设备的功能,所述功能例如为桥接客户端设备和区块链网络之间的通信,从区块链网络获得区块链区块,以及验证桥接设备获得的区块链区块等。例如,桥接设备可以通过引入和维护与由系统处理的区块链区块相关联的游标值(cursor value)来减少验证操作和检索操作之间的处理依赖性。结果,桥接设备可以解耦这些操作并异步地执行这些操作,而不会有继续等待检索操作完成的延迟。
在一些实施例中,桥接设备可以利用多线程处理能力来使用不同的线程异步地执行其功能。使用桥接设备的一个或多个独立线程异步地执行桥接设备的功能可以提高桥接设备的处理速度和灵活性,并提高客户端设备与区块链网络节点之间的通信吞吐量,同时维护与区块相关的处理的有序执行,以增强由桥接设备存储并在客户端设备和区块链网络节点之间通信的数据的数据安全性和可信度。
在一些实施例中,桥接设备通过减轻由于系统故障或错误引起的基于区块链的容错系统中的异常影响,可以为整个系统提供容错性。在一些情况下,由于系统故障或错误(例如,区块链系统的设备之间的通信连接可能丢失),存储在区块链系统(例如客户端设备和桥接设备)中的区块链数据(例如,区块链区块)容易出错或丢失。桥接设备可以通过根据与由系统处理的区块链区块相关联的游标值执行其功能,帮助按顺序恢复区块链区块。因此,桥接设备可以提供容错性,以确保由桥接设备存储并在客户端设备与区块链网络节点之间通信的区块链区块的可信度。
为本文的实施例提供进一步的背景,如上所述,分布式账本系统(DLS),其也可以称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地且不可篡改地进行交易和存储数据。尽管术语“区块链”通常与特定网络和/或用例相关联,但是在不参考任何特定用例的情况下,本文使用“区块链”来一般地指代DLS。
区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值在该分支的根处级联(concatenated)。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。可通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。
区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。本文参考联盟区块链网络更详细地描述了本文的实施例。然而,可以预期,本文的实施例可以在任何适当类型的区块链网络中实现。
通常,联盟区块链网络在参与实体间是私有的。在联盟区块链网络中,共识处理由可被称为共识节点的授权的节点集控制,一个或多个共识节点由相应的实体(例如,金融机构、保险公司)操作。例如,由10个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。
在一些示例中,在联盟区块链网络内,全局区块链被提供为跨所有节点复制的区块链。也就是说,对于全局区块链,所有共识节点处于完全共识状态。为了实现共识(例如,同意将区块添加到区块链),在联盟区块链网络内实现共识协议。例如,联盟区块链网络可以实现实用拜占庭容错(PBFT)共识,下面将进一步详细描述。
图1是示出了可用于执行本文实施例的环境100的示例的示图。在一些示例中,环境100使得实体能够参与至联盟区块链网络102中。环境100包括计算系统106、108和网络110。在一些示例中,网络120包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路访问网络120。在一些示例中,网络110使得能够与联盟区块链网络102通信或在联盟区块链网络102内通信。通常,网络110表示一个或多个通信网络。在一些情况下,计算系统106、108可以是云计算系统(未示出)的节点,或者每个计算系统106、108可以是单独的云计算系统,其包括通过网络互连的并且用作分布式处理系统的多个计算机。
在所描绘的示例中,计算设备106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算设备120。示例计算设备包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备以及智能电话。在一些示例中,计算设备106、108承载一个或多个由计算机实施的服务,用于与联盟区块链网络102进行交互。例如,计算系统106可以承载第一实体(例如,用户A)的计算机实施的、例如交易管理系统的服务,例如第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。计算系统108可以承载第二实体(例如,用户B)的由计算机实施的、例如交易管理系统的服务,例如,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。在图1的示例中,联盟区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),并且计算系统106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
图2是示出根据本文的实施例的架构200的示例的示图。示例性概念架构200包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如图中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的个体系统(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应系统内存储的区块链数据。在图2的示例中,参与者系统202、204、206存储区块链216的相应的完整副本216'、216''和216'''。
区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。数据的示例包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可以包括但不限于交换有价值的东西(例如,资产、产品、服务、货币)。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度的哈希值(也作为字符串数据提供)的处理。不可能对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理可确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。示例性哈希函数包括但不限于输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此过程,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并执行将区块添加到区块链中的工作。这样的节点被称为共识节点。上文介绍的PBFT用作共识协议的非限制性示例。共识节点执行共识协议以将交易添加到区块链,并更新区块链网络的整体状态。
更详细地,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将所得的哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。将此哈希值添加到区块头中。共识节点还确定区块链中最新的区块(即添加到区块链中的最后一个区块)的哈希值。共识节点还向区块头添加随机数(nonce)值和时间戳。
通常,PBFT提供容忍拜占庭错误(例如,故障节点、恶意节点)的实用拜占庭机器状态复制。这通过假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的经操纵的消息)在PBFT中实现。在PBFT中,在包括主共识节点和备共识节点的序列中提供共识节点。主共识节点周期性地改变,通过区块链网络内的所有共识节点就区块链网络的全局状态达成一致,将交易添加到区块链中。在该处理中,消息在共识节点之间传输,并且每个共识节点证明消息是从指定的对等节点接收的,并验证在交易期间消息未篡改。
在PBFT中,共识协议是在所有共识节点始于相同的状态的情况下分多个阶段提供的。首先,客户端向主共识节点发送请求以调用服务操作(例如,在区块链网络内执行交易)。响应于接收到该请求,主共识节点将该请求组播到备共识节点。备份共识节点执行请求,并且每个节点都向客户端发送回复。客户端等待直到收到阈值数量的恢复。在一些示例中,客户端等待接收f+1个回复,其中f是区块链网络内可以容忍的错误共识节点的最大数量。最终结果是,足够数量的共识节点就将记录添加到区块链的顺序达成一致,该记录被接受或者被拒绝。
在一些区块链网络中,用密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密处理的示例包括(但不限于)对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密过程。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来加密数据,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来加密数据,并将加密数据发送给参与者B。参与者B可以使用其私钥来解密该加密数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。
非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与者A的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥加密该哈希值以提供作为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥解密该数字签名,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者B可以确认该消息确实来自参与者A,且未被篡改。
图3是示出根据本文实施例的系统300的示例的示图。系统300实现了基于区块链的容错系统。如图所示,系统300包括客户端设备302、桥接设备304a-b和区块链网络节点306。
客户端设备302可以包括例如被编程以执行本文所述方法的任何合适的计算机、模块、服务器或计算元件。在一些实施例中,客户端设备302可以是包括允许个人通过计算机网络进行电子交易的电子设备或在线服务的数字钱包设备或系统。例如,个人的银行账户可以链接到数字钱包设备。其他身份信息,例如驾照、医疗卡和加密密钥,也可以存储在数字钱包设备上。
在一些实施例中,客户端设备302可以包括允许桥接设备(例如,桥接设备304a)与客户端设备302通信的接口。在一些实施例中,客户端设备302的接口可以是可以由客户端设备302实现和/或扩展并且可以允许桥接设备(例如,桥接设备304a)向客户端设备302发送数据的服务提供商接口(SPI)。在一些实施例中,SPI可以包括桥接设备定义的一组公共接口和抽象类。在一些实施例中,SPI可以指定客户端设备302为了实现目标需要遵循的标准或协议。在一些实施例中,客户端设备302可以向桥接设备发送交易请求(例如,资金转移的请求),并且经由客户端设备302的SPI从桥接设备接收请求结果。
桥接设备304a-b可以包括例如被编程以执行本文所述方法的任何合适的计算机、模块、服务器或计算元件。通常,桥接设备304a-b提供桥接功能以实现第三方系统(例如,客户端设备302)和区块链系统(例如,区块链网络节点306)之间的通信。在一些示例中,桥接设备304a-b可以是代理服务器,其充当用于处理来自客户端设备302的从区块链网络节点306寻求资源(例如,区块链数据)的请求的中介。如图所示,桥接设备304a被通信地链接(例如,通过一个或多个有线或无线信道)到客户端设备302和区块链网络节点306。在一些实施例中,桥接设备可以被实现为客户端设备302的组件或模块。
在一些实施例中,桥接设备(例如,桥接设备304a)可以包括允许客户端设备302与桥接设备通信并进一步访问区块链网络的接口。在一些实施例中,桥接设备304a的接口可以包括暴露于客户端设备302并且可以被客户端设备302用来与桥接设备304a通信并经由区块链网络节点306进一步访问区块链网络的应用编程接口(API)。桥接设备的API可以包括客户端设备302可以访问的子例程集、通信协议和方法。在一些实施例中,桥接设备(例如,桥接设备304a)可以经由桥接设备的API从客户端设备302接收交易请求,并且经由客户端设备302的SPI向客户端设备302提供请求响应。
在一些实施例中,系统300包括多个桥接设备304a-b,并且桥接设备304a-b可以通过遵循预定的通信协议来彼此通信。在一些实施例中,每个桥接设备304a-b可以通信地链接到相应的区块链网络节点。如图所示,桥接设备304a通信地链接到区块链网络节点306。
在一些实施例中,区块链网络节点306可以是区块链网络的共识节点或非共识节点。在一些实施例中,桥接设备304b可以链接到区块链网络的另一区块链网络节点(未示出)。在一些实施例中,每个桥接设备304a-b可以将来自客户端设备302的交易请求转换成区块链交易,并且将区块链交易提交给通信地链接的区块链网络节点。例如,桥接设备(例如,桥接设备304a)可以对要在区块链网络节点306上执行的智能合约进行合约调用,以基于来自客户端设备302的交易请求来生成区块链交易。
在一些实施例中,每个桥接设备304a-b可以从链接的区块链网络节点检索区块链区块。在一些实施例中,桥接设备(例如,桥接设备304a)可以接收由区块链网络节点(例如,区块链网络节点306)推送到桥接设备的区块链区块。例如,区块链网络节点306可以基于桥接设备304a的订阅来周期性地将区块链区块推送到桥接设备304a。在一些实施例中,桥接设备(例如,桥接设备304a)可以例如根据需要从区块链网络节点(例如,区块链网络节点306)提取区块链区块。例如,桥接设备304a可以周期性地或不时地向区块链网络节点306请求区块链区块。
在一些实施例中,桥接设备304a-b可以验证从区块链网络节点检索到的区块链区块,以确定区块链区块是否可信。在一些实施例中,桥接设备可以通过将记录在区块链区块中的交易数据与包括在由客户端设备发送给桥接设备的交易请求中的数据进行比较来验证区块链区块。在一些实施例中,桥接设备可以基于区块链区块中的区块链交易的哈希值来验证区块链区块。例如,区块链区块可以包括区块链交易和区块链交易的第一哈希值。桥接设备可以从区块链区块获得区块链交易,并计算该区块链交易的第二哈希值。桥接设备可以将第二哈希值与第一哈希值进行比较。如果确定两个哈希值匹配,则桥接设备可以确定区块链区块中的区块链交易未被篡改,并且区块链区块是可信区块。
在一些实施例中,桥接设备可以维护与由系统处理的区块链区块相关联的三个游标值。在一些实施例中,这些游标值被实现为三个计数器,并且被存储在桥接设备的数据存储(例如,存储器)中。在一些实施例中,三个游标值包括指示存储在区块链网络节点(例如,区块链网络节点306)上的区块链区块的数量的第一值、指示存储在桥接设备(例如,桥接设备304a)上的区块链区块的数量的第二值,以及指示已经由桥接设备验证的区块链区块的数量的第三值。
图4是示出根据本文实施例的存储在图3的基于区块链的容错系统中的游标值的示例的示图。如图所示,桥接设备(例如,桥接设备304a)可以维护指示存储在通信地链接的区块链网络节点上的区块链区块(例如,区块链区块408a-d)的数量的远程高度值402、指示存储在桥接设备上的区块链区块(例如,区块链区块408a-c)的数量的本地高度值,以及指示已经由桥接设备验证的区块链区块(例如,区块链区块408a)的数量的校验高度值406。
在一些实施例中,桥接设备可以从区块链网络节点接收指示远程高度值402的通知。在一些实施例中,通知可以包括指示存储在区块链网络节点上的区块链区块的总数的远程高度值402。在一些实施例中,该通知可以包括指示新区块已经被添加到区块链网络节点的区块链中的新区块通知。例如,新区块通知可以指示远程高度值402已经增加1。
在一些实施例中,桥接设备可以确定本地高度值404是否小于远程高度值402。在一些实施例中,如果确定本地高度值404小于远程高度值402,则桥接设备可以从区块链网络节点检索区块链区块。在一些实施例中,桥接设备可以从区块链网络节点检索尚未存储在桥接设备304a上的一个或多个区块链区块。例如,参考图4,桥接设备可以确定区块链区块408a-c被存储在桥接设备上并且本地高度值404比远程高度值402小1。响应于该确定,桥接设备可以从区块链网络节点检索区块链区块408d。在一些实施例中,桥接设备可以例如以如前所述的提取或推送模式(pull or push mode)从区块链网络节点检索区块链区块。在一些实施例中,在从区块链网络节点检索到区块链区块之后,桥接设备可更新本地高度值404。例如,如果桥接设备从区块链网络节点获得一个区块链区块,则桥接设备可以通过将本地高度值404增加1来更新本地高度值404。在一些实施例中,桥接设备可以继续从区块链网络节点检索区块链区块并更新本地高度值404,直到本地高度值404等于远程高度值402为止。
在一些实施例中,如果确定本地高度值404不小于远程高度值402,则桥接设备可以停止或限制从区块链网络节点检索区块链区块。例如,如果本地高度值404等于远程高度值402,则桥接设备可以限制从区块链网络节点检索区块链区块。
在一些实施例中,桥接设备可以确定校验高度值406是否小于本地高度值404。如果确定校验高度值406小于本地高度值404,则桥接设备可以验证存储在桥接设备上并且尚未由桥接设备验证的区块链区块。例如,参考图4,桥接设备可以确定区块链区块408a已经被验证并且校验高度值406比本地高度值404小2。响应于该确定,桥接设备可以继续验证区块链区块408b-c。
在一些实施例中,桥接设备验证区块链区块以确定区块链区块是否可信。在一些实施例中,桥接设备通过将记录在区块链区块中的交易数据与包括在由客户端发送给桥接设备的交易请求中的数据进行比较来验证区块链区块。例如,客户端设备(例如,图3的客户端设备302)可以将交易请求发送到桥接设备(例如,图3的桥接设备304a),其中交易请求识别从一个账户到另一账户的特定金额的资金转移。桥接设备可以识别存储在桥接设备上并且包括与资金转移相关的区块链交易的区块链区块。桥接设备可以将区块链区块中与资金转移相关的区块链交易与交易请求中包括的数据进行比较。桥接设备可以确定与区块链交易中的资金转移金额和账户信息有关的数据是否与交易请求中的数据匹配。如果确定存在数据匹配,则桥接设备可以确定被验证的区块链区块是可信区块。
在一些实施例中,桥接设备可以基于区块链区块中的区块链交易的哈希值来验证区块链区块。例如,区块链区块可以记录区块链交易和该区块链交易的第一哈希值。桥接设备可以获得区块链交易并计算区块链交易的第二哈希值。桥接设备可以将第二哈希值与第一哈希值进行比较。如果确定两个哈希值匹配,则桥接设备可以确定区块链区块中的区块链交易未被篡改,并且区块链区块是可信区块。
在一些实施例中,在验证区块链区块之后,桥接设备可以更新校验高度值406。例如,在桥接设备验证区块链区块408b是可信区块之后,桥接设备可以将校验高度值406增加1。在一些实施例中,桥接设备可以继续验证存储在桥接设备上的区块链区块,并更新校验高度值406,直到校验高度值406等于本地高度值404为止。
在一些实施例中,如果确定校验高度值406不小于本地高度值404,则桥接设备可以停止或限制验证区块链区块。例如,如果校验高度值406等于本地高度值404,则桥接设备可以限制验证存储在桥接设备上的区块链区块。
在一些实施例中,可能发生系统报错、异常、故障或错误。例如,桥接设备和区块链网络节点之间的通信连接可能会丢失。在一些示例中,存储在桥接设备上的区块链区块可能会因系统故障或错误而丢失。在一些实施例中,响应于检测到系统故障或错误,桥接设备可以执行恢复处理。在一些实施例中,桥接设备可以基于校验高度值406执行恢复处理。例如,桥接设备可以将本地高度值404设置为校验高度值406。因为校验高度值406指示已经由桥接设备验证的区块链区块的总数量,所以即使这些区块链区块丢失,也不一定需要由桥接设备重新获得。 然而,在校验高度值406之后编号并且在本地高度值404之前编号的任何区块链区块已经被获得但尚未被验证。这些区块链区块容易出现错误或丢失,例如由于系统故障或错误。因此,本地高度值404被设置(或减小)为校验高度值406,以便桥接设备从区块链网络节点重新获得未验证的区块链区块以进行验证。例如,在将本地高度值404设置为校验高度值406之后,桥接设备可以将本地高度值404与远程高度值402进行比较,并确定本地高度值404是否小于远程高度值402。如果确定本地高度值404小于远程高度值402,则桥接设备可以从区块链网络节点重新获得未验证的区块链区块。
在一些实施例中,桥接设备可以执行异步处理以提高整个系统的效率和吞吐量。异步处理是执行两个或更多个操作而不在这两个或更多个操作之间施加处理依赖性或时间顺序的方式。在异步处理中,可以在运行的任务完成之前允许待处理任务开始。换句话说,当两个操作异步执行时,一个操作的执行不会阻塞或暂停另一操作的执行。一个操作可以开始,而无需等待其他操作完成,并且两个操作可以同时执行。 因此,当两个操作被异步处理时,对何时开始执行一个操作的确定独立于(即不依赖于)另一操作的当前执行状态。
在一些实施例中,异步处理使各种工作流处理能够同时运行。例如,在异步处理中,诸如请求和回复之类的操作是在不同的会话上发送的。在请求和回复之间不存在任何处理依赖性,并且不对回复的时间进行任何假设。与阻塞或暂停处理直到操作完成的同步操作不同,异步操作是非阻塞的并且在不阻塞或暂停处理的情况下发起操作。与在运行任务完成之后发起待处理任务的同步处理相比,在异步处理中,可以允许在运行任务完成之前发起待处理任务。
在一些实施例中,桥接设备可以在从区块链网络节点检索区块链区块以及验证存储在桥接设备中的区块链区块时执行异步处理。在一些实施例中,通过引入和监视三个游标值来调节或以其他方式控制桥接设备的处理,验证操作可以与检索操作异步执行,从而使桥接设备无需等待检索操作完成。例如,只要满足游标值的相应条件,就可以相对于检索操作相对独立地执行验证操作。例如,如果校验高度值小于本地高度值,则可以执行验证操作,如果本地高度值小于远程高度值,则可以执行检索操作。通过去除两个操作之间的处理依赖性,桥接设备可以将两个操作解耦,并以提高的效率执行两个操作,从而提高系统吞吐量。
在一些实施例中,桥接设备可以利用多线程处理能力来使用一个或多个独立线程执行桥接设备的功能。线程通常是包括处理器执行指令流所需的信息的执行上下文(execution context)。例如,线程可以包括编程的指令序列,并且被设计为由处理器独立于父进程来调度和执行。在允许多个线程存在于一个进程的上下文中的同时,多线程还可以允许线程共享进程的资源并独立执行。例如,多个线程可以存在于一个进程中、并发执行并且共享例如存储器的资源。进程的线程在任何给定时间共享其可执行代码以及其动态分配的变量和非线程本地全局变量的值。多线程是实现异步处理和并行执行的示例性方式。
在一些实施例中,桥接设备可以使用不同的线程集来执行异步操作和并行执行,以分别执行对区块链区块的检索和验证,这可以提高整个系统的效率和吞吐量。作为实施方式的示例,桥接设备可以使用桥接设备的第一线程集从区块链网络节点检索第一区块链区块集。第一线程集可以包括多个线程,每个线程可以用于从区块链网络节点独立地检索第一区块链区块集中的一个区块链区块。桥接设备可以使用桥接设备的第二线程集来验证存储在桥接设备中的第二区块链区块集。第二线程集可以包括多个线程,每个线程可用于独立地验证存储在桥接设备中的第二区块链区块集中的一个区块链区块。
作为另一示例,桥接设备可以使用第一线程来桥接客户端设备和区块链网络之间的通信。作为具体示例,桥接设备(例如,图3的桥接设备304a)可以使用第一线程来从客户端设备(例如,图3的客户端设备302)接收交易请求,将交易请求提交给区块链网络节点(例如,图3的区块链网络节点306),并从可能执行交易的区块链网络节点接收执行结果的通知。在一些实施例中,桥接设备可以使用第二线程来从区块链网络获得一个或多个区块链区块。在一些实施例中,桥接设备可以使用第三线程验证桥接设备所获得的区块链区块。在一些实施例中,桥接设备可以使用附加或不同的线程,并将不同的任务分配给多个线程。在一些实施例中,一个或多个独立线程可以由桥接设备的一个或多个处理器独立地或并行地执行。
在一些实施例中,一个或多个独立线程可以访问和/或更新三个游标值来调节或以其他方式控制桥接设备的处理以及客户端设备与区块链网络之间的通信。在一些实施例中,一些线程可以被授权访问三个游标值中的每个但不能更新三个游标值中的每个。
例如,在一些实施例中,例如基于从区块链网络节点接收到的通知(例如,新区块通知),第一线程可以用于更新远程高度值402。其他线程可以被授权访问远程高度值402但不能更新远程高度值402。例如,在从区块链网络获得一个或多个区块链区块之前,第二线程可以获得远程高度值402,将本地高度值404与远程高度值402进行比较,并确定本地高度值404是否小于远程高度值402。如果本地高度值404小于远程高度值402,则第二线程可以从区块链网络获得一个或多个区块链区块。在一些实施例中,第二线程可用于更新本地高度值404,而其他线程可被授权访问本地高度值404但不能更新本地高度值404。例如,在一些实施例中,验证桥接设备所获得的区块链区块之前,桥接设备可以使用第三线程来访问本地高度值404,将校验高度值406与本地高度值404进行比较,并且确定校验高度值406是否小于本地高度值404。如果校验高度值406小于本地高度值404,则第三线程将继续验证桥接设备所获得的区块链区块。在一些实施例中,第三线程可以用于更新校验高度值406,而其他线程可以被授权访问校验高度值406但不能更新校验高度值406。
图5是示出可根据本文实施例执行的处理500的示例的信号流。信号流表示用于区块链区块的异步处理的处理500,其可以用于例如实现基于区块链的容错系统。为方便起见,该处理将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当编程的区块链数据处理系统(例如,图3的系统300)可以执行该处理。
在510,桥接设备504(例如,图3的桥接设备304a)在桥接设备504的数据存储(例如,存储器)中维护三个游标值。例如,桥接设备504可以将三个游标值维护为三个计数器。在一些实施例中,维护三个游标值可以包括存储和更新三个游标值。在一些实施例中,三个游标值可以包括指示存储在区块链网络节点506(例如,图3的区块链网络节点306)上的区块链区块的数量的远程高度值(例如,图4的远程高度值402),指示存储在桥接设备504上的区块链区块的数量的本地高度值(例如,图4的本地高度值404)以及指示已经由桥接设备504验证的区块链区块的数量的校验高度值(例如,图4的校验高度值406)。
在512,客户端设备502(例如,图3的客户端设备302)向桥接设备504发送交易请求。例如,客户端设备502可以使用桥接设备504的API将资金转移请求发送到桥接设备504。资金转移请求可以识别将从第一账户(例如,与客户端设备502相关联的区块链账户)转移到第二账户(例如,与另一客户端设备相关联的区块链账户)的资金金额。
在514,桥接设备504将交易请求转发到区块链网络节点506。例如,桥接设备504可以对执行于区块链网络节点506上的智能合约进行合约调用,以将交易请求作为区块链交易提交给区块链网络节点506。在一些实施例中,桥接设备504可以确定客户端设备502是否被授权访问区块链网络节点506。例如,桥接设备504可以使用公钥来验证交易请求中包括的客户端设备502的数字签名。
在516,在从桥接设备504接收到区块链交易之后,区块链网络节点506可以基于区块链交易生成新的区块链区块。例如,区块链网络节点506可以在区块链网络的多个共识节点之间发起关于区块链交易的共识过程(例如,PBFT共识)。在一些实施例中,在确定共识节点之间达成共识和/或执行区块链交易之后,可以生成新的区块链区块并将其添加到存储在区块链网络节点506上的区块链中。
在518,区块链网络节点506向桥接设备504发送通知。在一些实施例中,该通知可以指示远程高度值,该远程高度值指示已经存储在区块链网络节点506上的区块链区块的数量。例如,通知可以包括远程高度值。作为另一示例,该通知可以包括新区块通知,该新区块通知指示新区块已经被添加到区块链网络节点506的区块链中。
在一些实施例中,桥接设备504可以以推送或提取模式从区块链网络节点506接收通知。例如,桥接设备504或客户端设备502可以订阅区块链网络节点506的区块链区块,并且在新区块被添加到区块链网络节点506的区块链中之后,区块链网络节点506可以基于订阅周期性地或者动态地将通知推送到桥接设备504。在一些实施例中,桥接设备504可以例如通过向区块链网络节点发送针对通知的请求来从区块链网络节点506提取区块链的信息。
在520,在从区块链网络节点506接收到通知之后,桥接设备504将本地高度值与远程高度值进行比较。在一些实施例中,如果通知包括远程高度值,则桥接设备504可以更新存储在桥接设备504的数据存储中的远程高度值。在一些实施例中,如果通知包括指示新区块已经被添加到区块链网络节点506的区块链中的新区块通知,则桥接设备504可以例如通过将远程高度值增加1或其他单位来更新存储的远程高度值。
在一些实施例中,桥接设备504确定本地高度值是否小于远程高度值。如果确定本地高度值小于远程高度值,则桥接设备504可以从区块链网络节点506检索区块链区块。如果确定本地高度值不小于远程高度值,则桥接设备504可以限制从区块链网络节点506检索区块链区块。
在522,在确定本地高度值小于远程高度值之后,桥接设备504从区块链网络节点506检索一个或多个区块链区块。在一些实施例中,桥接设备504可以从区块链网络节点506检索尚未存储在桥接设备504上的一个或多个区块链区块。例如,桥接设备504可以从区块链网络节点506检索一个或多个区块链区块,其中,一个或多个区块链区块是存储在区块链网络节点506上并且位于已经由桥接设备504获得的最新区块链区块之后的区块。例如,一个或多个区块链区块是位于由本地高度值指示的数量的区块链区块中的最新区块链区块之后的区块。在一些实施例中,桥接设备504可以以推送或提取模式从区块链网络节点检索区块链区块。在一些实施例中,在从区块链网络节点506检索到区块链区块之后,桥接设备504可以更新本地高度值。 在一些实施例中,桥接设备504可以继续从区块链网络节点506检索区块链区块并更新本地高度值,直到本地高度值等于远程高度值为止。在一些实施例中,当本地高度值等于远程高度值时,桥接设备504可以停止或限制从区块链网络节点506检索区块链区块。
在524处,桥接设备504将校验高度值与本地高度值进行比较。在一些实施例中,桥接设备504可以确定校验高度值是否小于本地高度值。如果确定校验高度值小于本地高度值,则桥接设备504可以验证存储在桥接设备上并且尚未由桥接设备504验证的区块链区块。如果确定校验高度值不小于本地高度值,则桥接设备504可以限制验证存储在桥接设备504上的区块链区块。
在526,在确定校验高度值小于本地高度值之后,桥接设备504验证存储在桥接设备504上的区块链区块,以确定区块链区块是否可信。在一些实施例中,桥接设备504验证存储在桥接设备504上并且尚未由桥接设备504验证的区块链区块。例如,桥接设备504可以验证位于在已经由桥接设备504验证并且由校验高度值指示的数量的区块链区块之后的区块链区块。在一些实施例中,桥接设备504可以通过将记录在区块链区块中的交易数据与包括在由客户端设备502发送给桥接设备504的交易请求中的数据进行比较来验证区块链区块。例如,交易请求可以识别将从一个区块链账户转移到另一区块链账户的特定数量的资金。桥接设备504可以识别存储在桥接设备504上并且包括与资金转移有关的区块链交易的区块链区块。桥接设备504可以将与资金转移有关的区块链交易数据与交易请求中包括的数据进行比较。桥接设备可以确定与转移资金的金额和区块链区块中的账户信息有关的数据是否与交易请求中的数据匹配或以其他方式是一致的。如果确定它们是一致的,则桥接设备可以确定被验证的区块链区块是可信区块链区块。
在一些实施例中,桥接设备504可以基于区块链区块中的区块链交易的哈希值来验证区块链区块。例如,区块链区块可以包括区块链交易和区块链交易的第一哈希值。桥接设备504可以从区块链区块获得区块链交易,并计算区块链交易的第二哈希值。桥接设备504可以将第二哈希值与第一哈希值进行比较。如果确定两个哈希值匹配,则桥接设备504可以确定区块链区块中的区块链交易数据未被篡改,并且区块链区块是可信区块链区块。
在一些实施例中,在验证区块链区块之后,桥接设备504可以更新校验高度值。例如,在桥接设备504验证区块链区块是可信区块之后,桥接设备504可以将校验高度值例如增加1或另一单位。在一些实施例中,桥接设备可以继续验证存储在桥接设备上的区块链区块并更新校验高度值,直到校验高度值等于本地高度值为止。在一些实施例中,当校验高度值等于本地高度值时,桥接设备504可以限制验证存储在桥接设备504上的区块链区块。
在528,桥接设备504检测系统错误。在一些实施例中,系统错误可以包括软件漏洞和报错、硬盘故障、输入或输出设备故障或者其他临时或永久故障。在一些实施例中,系统错误导致桥接设备504与区块链网络节点506之间的通信连接丢失或中断。在一些示例中,存储在桥接设备504上的区块链区块可能由于系统错误而被破坏或丢失。在一些实施例中,远程高度值、本地高度值和校验高度值被存储在桥接设备504的非易失性存储介质中,使得即使系统错误也可以保留这些游标值。
在530,在检测到系统错误之后,桥接设备504执行恢复处理。在一些实施例中,桥接设备504可以基于校验高度值来执行恢复处理。在一些实施例中,桥接设备504可以将本地高度值设置为校验高度值。因为校验高度值指示已经由桥接设备504验证的区块链区块的数量,所以即使丢失了这些区块链区块,也不一定需要由桥接设备504重新获得。 然而,位于由校验高度值406指示的最新区块链区块之后并且位于由本地高度值404指示的最新区块链区块之前的区块链区块已经由桥接设备504获得但尚未验证。这些区块链区块容易出错或丢失,例如,由于系统错误。这样,可以将本地高度值设置(或减小)为校验高度值,以便从区块链网络节点506重新获得未验证的区块链区块以进行验证。例如,在将本地高度值设置为校验高度值之后,桥接设备504可以将本地高度值与远程高度值进行比较,并且确定本地高度值是否小于远程高度值。如果确定本地高度值小于远程高度值,则桥接设备504可以从区块链网络节点506重新获得未验证的区块链区块。桥接设备504可以继续验证重新获得的未验证的区块链区块,直到校验高度值达到本地高度值为止。
在一些实施例中,如上所述,桥接设备504在访问和更新三个游标值、获得区块链区块、验证所获得的区块链区块等操作时可以使用多个独立线程。在一些实施例中,处理500的一些操作(例如,操作522、526和528)可以按其他顺序执行或并行执行。例如,只要满足游标值的相应条件,就可以相对于522处的检索操作相对独立地执行526处的验证操作。例如,在特定时间实例处,如果确定校验高度值小于本地高度值,则526处的验证操作可以在522处的检索操作之前开始。可以执行526处的验证操作而无需等待522处的检索操作完成。类似地,只要确定本地高度值小于远程高度值,522处的检索操作就可以开始而无需等待526处的验证操作完成。处理500可以继续并且进一步包括附加或不同的操作。例如,桥接设备504可以将交易请求的执行结果返回给例如SPI的客户端设备502。在一些实施例中,处理500可以包括上述处理的附加或不同的迭代。
如上所述,桥接设备504通过从区块链网络节点506接收到的新区块通知来更新远程高度值,以保持远程高度值与区块链网络的同步。在一些实施例中,桥接设备504通过从区块链网络节点506检索区块链区块来不断地更新本地高度值。在一些实施例中,桥接设备504验证区块链区块并更新校验高度值。在一些实施例中,三个游标值满足以下关系:校验高度值≤本地高度值≤远程高度值。
在一些实施例中,远程高度值的更新与桥接设备504从区块链网络节点506接收到的通知有关。在一些实施例中,通知包括新区块通知,新区块通知指示新区块已被添加到存储在区块链网络节点506上的区块链中。远程高度值的更新和区块链网络节点506的操作保持同步,使得桥接设备504处的远程高度值基于新区块通知不断增加。在一些实施例中,桥接设备504通过基于本地高度值和远程高度值之间的比较从区块链网络节点检索区块链区块,来同步区块链区块与区块链网络节点506。在一些实施例中,已经由桥接设备504同步并且存储在桥接设备504上的区块链区块由本地高度值指示。在一些实施例中,桥接设备504在区块同步处理期间获得的区块链区块中的区块链交易数据触发桥接设备504的验证处理。在桥接设备504验证了区块链区块中的区块链交易数据之后,区块链区块可以被认为是可信区块。已经由桥接设备504验证的区块链区块由校验高度值指示。
在一些实施例中,校验高度值不断增加(例如,每次增加1),这确保了小于(或低于)校验高度值的区块链区块中的区块链交易已经由桥接设备504完全处理。在一些实施例中,当发生系统错误或故障时,桥接设备504的恢复处理可以根据校验高度值来开始。在一些实施例中,即使桥接设备504中的区块数据丢失或被破坏,也可以通过将本地高度值重置为校验高度值并监视来自区块链网络节点506的区块通知来恢复丢失或被破坏的区块数据,从而更新远程高度值。
图6A是示出可根据本文实施例执行的用于实现基于区块链的容错系统的处理600的流程图。处理600可以是结合图5的处理500的上下文由基于区块链的容错系统执行的处理。为方便起见,处理600将被描述为由位于一个或多个位置的、并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当地编程的区块链数据处理系统(例如,图3的系统300)可以执行处理600。
在602,桥接设备(例如,图3的桥接设备304a或图5的桥接设备504),例如使用桥接设备的第一线程集,从区块链网络节点(例如,图3的区块链网络节点306)检索第一区块链区块集。例如,第一区块链区块集可以包括不止一个区块链区块(例如,第一区块链区块和第二区块链区块),并且第一线程集可以包括不止一个线程(例如,第一线程和第二线程)。桥接设备可以使用第一线程和第二线程分别且并行地检索第一区块链区块和第二区块链区块。
在604,桥接设备将第一区块链区块集存储在桥接设备中。例如,桥接设备可以将第一区块链区块和第二区块链区块存储在桥接设备的存储器中。在一些实施例中,除了第一区块链区块集之外,桥接设备还可以存储第二区块链区块集。例如,第二区块链区块集可以早于第一区块链区块集由桥接设备从区块链网络节点检索。
在606,桥接设备例如使用桥接设备的第二线程集来验证存储在桥接设备中的第二区块链区块集。在一些实施例中,第二区块链区块集可以包括不止一个区块链区块(例如,第三区块链区块和第四区块链区块),并且第二线程集可以包括不止一个线程(例如,第三线程和第四线程)。桥接设备可以使用第三线程和第四线程分别且并行地验证第三区块链区块和第四区块链区块。
在一些实施例中,桥接设备使用第一线程集和第二线程集异步地执行对第一区块链区块集的检索以及对第二区块链区块集的验证。如前所述,当两个操作异步执行时,一个操作的执行不会阻塞或暂停另一操作的执行。一个操作可以开始而无需等待另一操作完成,并且两个操作可以同时执行。例如,桥接设备可以以并行方式检索第一区块链区块集以及验证第二区块链区块集。在使用第一线程集检索第一区块链区块集时,桥接设备可以使用第二线程集来验证第二区块链区块集。
图6B是示出可根据本文实施例执行的用于异步处理区块链区块的处理650的流程图,该处理可用于例如实现基于区块链的容错系统。处理650可以是处理600的实施方式的示例。
在608,桥接设备(例如,图3的桥接设备304a或图5的桥接设备504)在桥接设备的数据存储(例如,非易失性存储介质)中维护远程高度值(例如,图4的远程高度值402)、本地高度值(例如,图4的本地高度值404)以及校验高度值(例如,校验高度值406)。在一些实施例中,远程高度值指示存储在通信地链接到桥接设备的区块链网络节点(例如,图3的区块链网络节点306或图5的区块链网络节点506)上的区块链区块的数量。本地高度值指示存储在桥接设备上的区块链区块的数量。校验高度值指示已经由桥接设备验证的区块链区块的数量。在一些实施例中,区块链网络节点是区块链网络的共识节点。
在610,桥接设备从区块链网络节点接收通知。在一些实施例中,通知指示远程高度值。在一些实施例中,通知包括新区块通知,新区块通知指示新区块已被添加到区块链网络的区块链中。在一些实施例中,新区块通知指示远程高度值增加了特定值(例如,增加了1)。
在一些实施例中,桥接设备可以以推送或提取模式从区块链网络节点接收通知。例如,响应于新区块链区块的生成,区块链网络节点可以基于桥接设备和/或客户端设备的订阅,周期性地或动态地将通知推送至桥接设备。作为另一示例,桥接设备可以通过向区块链网络节点发送针对通知的请求来从区块链网络节点提取通知。
在一些实施例中,桥接设备可以从客户端设备(例如,图3的客户端设备302或图5的客户端设备502)接收请求在区块链网络上执行交易的交易请求。桥接设备可以将交易请求转发到区块链网络节点。区块链网络节点可以向桥接设备发送第二通知。第二通知可以指示更新的远程高度值,并且更新的远程高度值可以指示基于交易被存储在区块链网络节点上的区块链区块的数量的增加。
在612,桥接设备确定本地高度值是否小于远程高度值。在一些实施例中,如果确定本地高度值小于远程高度值,则桥接设备可以从区块链网络节点检索区块链区块。如果确定本地高度值不小于远程高度值,则桥接设备504可以限制从区块链网络节点检索区块链区块。
在614,响应于确定本地高度值小于远程高度值,桥接设备从区块链网络节点获得未存储在桥接设备上的至少一个区块链区块。例如,桥接设备可以从区块链网络节点检索区块链区块,其中区块链区块位于存储在桥接设备上并由本地高度值指示的数量的区块链区块中的最新区块链区块之后。在一些实施例中,响应于从区块链网络节点获得至少一个区块链区块,桥接设备可以将至少一个区块链区块存储在桥接设备上并更新本地高度值。在一些实施例中,桥接设备可以继续从区块链网络节点检索区块链区块并更新本地高度值,直到本地高度值等于远程高度值为止。
在616,响应于确定本地高度值不小于远程高度值,桥接设备限制从区块链网络节点获得区块链区块。例如,如果本地高度值等于远程高度值,则桥接设备可以停止或限制从区块链网络节点检索区块链区块。
在618,桥接设备确定校验高度值是否小于本地高度值。在一些实施例中,如果确定校验高度值小于本地高度值,则桥接设备可以验证存储在桥接设备上并且尚未由桥接设备验证的区块链区块。如果确定校验高度值不小于本地高度值,则桥接设备可以限制验证存储在桥接设备上的区块链区块。
在620处,响应于确定校验高度值小于本地高度值,桥接设备验证存储在桥接设备上并且尚未由桥接设备验证的区块链区块。在一些实施例中,验证可以包括确定区块链区块中的一个或多个区块链交易与交易请求之间的一致性。在一些实施例中,桥接设备可以通过将记录在区块链区块中的交易数据与包括在由客户端设备发送给桥接设备的交易请求中的数据进行比较来验证区块链区块。
在一些实施例中,桥接设备可以进一步基于区块链区块中的区块链交易的哈希值来验证区块链区块。例如,区块链区块可以包括区块链交易和区块链交易的第一哈希值。桥接设备可以从区块链区块获得区块链交易,并计算该区块链交易的第二哈希值。桥接设备可以将第二哈希值与第一哈希值进行比较。如果确定两个哈希值匹配,则桥接设备可以确定区块链区块中的区块链交易未被篡改,并且区块链区块是可信区块。
在一些实施例中,响应于验证了区块链区块,桥接设备可以确定区块链区块是可信的并且更新校验高度值。 在一些实施例中,桥接设备可以继续验证存储在桥接设备上的区块链区块并更新校验高度值,直到校验高度值等于本地高度值为止。
在616,响应于确定校验高度值不小于本地高度值,桥接设备限制验证存储在桥接设备上的区块链区块。例如。如果校验高度值等于本地高度值,则桥接设备504可以限制验证存储在桥接设备504上的区块链区块。
在618处,检测到系统错误。在一些实施例中,系统错误可以包括软件漏洞和报错、硬盘故障、输入或输出设备故障或者其他临时或永久故障。在一些实施例中,系统错误可以导致桥接设备和区块链网络节点之间的通信连接丢失。在一些示例中,存储在桥接设备上的区块链区块可能会因系统错误而被破坏或丢失。
在620,桥接设备响应于检测到系统错误而执行恢复处理。在一些实施例中,桥接设备可以将本地高度值设置为校验高度值。响应于确定本地高度值小于远程高度值,桥接设备可以获得位于已经由桥接设备验证并且由校验高度值指示的数量的区块链区块中的最新区块链区块之后的至少一个区块链区块。
在一些实施例中,在恢复处理期间和/或之后,桥接设备可以返回到602以维护三个游标值并继续处理650。在一些实施例中,如关于图4至图5所描述的,处理650可以由桥接设备的一个或多个独立线程执行,这可以提高桥接设备的处理速度和灵活性,并且在增加客户端设备与区块链网络节点之间的通信吞吐量的同时,提供容错以及维护与区块相关的处理的有序执行,以增强由桥接设备存储并在客户端设备与区块链网络节点之间通信的数据的安全性和可信性。
图7是根据本文实施例的装置700的模块的示例的示图。装置700可以是桥接设备(例如,图3的桥接设备304a或图5的桥接设备504)的实施例的示例。装置700可以对应于上述实施例,装置700包括以下:检索模块702,用于使用桥接设备的第一线程集从区块链网络节点检索第一区块链区块集;存储模块704,用于将第一区块链区块集存储在桥接设备中;验证模块706,用于使用桥接设备的第二线程集来验证存储在桥接设备中的第二区块链区块集,其中,第一线程集与第二线程集不同,并且检索第一区块链区块集以及验证第二区块链区块集是使用第一线程集和第二线程集异步地执行的。
在一些实施例中,第一区块链区块集包括第一区块链区块和第二区块链区块,其中,第一线程集包括第一线程和第二线程,并且使用桥接设备的第一线程集从区块链网络节点检索第一区块链区块集包括并行地:使用桥接设备的第一线程从区块链网络节点检索第一区块链区块,使用桥接设备的第二线程从区块链网络节点检索第二区块链区块。
在一些实施例中,第二区块链区块集包括第三区块链区块和第四区块链区块,其中,第二线程集包括第三线程和第四线程,并且使用桥接设备的第二线程集来验证存储在桥接设备中的第二区块链区块集包括并行地:使用桥接设备的第三线程验证第三区块链区块,使用桥接设备的第四线程来验证第四区块链区块。
在一些实施例中,装置700还包括维护子模块,用于在桥接设备的数据存储中维护远程高度值和本地高度值,其中:远程高度值指示存储在区块链网络节点上的区块链区块的数量;本地高度值指示已经从区块链网络节点获得并存储在桥接设备上的区块链区块的数量。使用桥接设备的第一线程集从区块链网络节点检索第一区块链区块集包括:桥接设备确定本地高度值是否小于远程高度值;以及响应于确定本地高度值小于远程高度值,从区块链网络节点获得未存储在桥接设备上的至少一个区块链区块。
在一些实施例中,装置700还包括:存储子模块,用于响应于从区块链网络节点获得至少一个区块链区块,将至少一个区块链区块存储在桥接设备上;以及更新子模块,用于由桥接设备更新本地高度值。
在一些实施例中,装置700还包括限制子模块,用于响应于确定本地高度值不小于远程高度值,限制从区块链网络节点获得区块链区块。
在一些实施例中,装置700还包括:第一接收子模块,用于由桥接设备从区块链网络节点接收通知,该通知指示远程高度值;第二接收子模块,用于由桥接设备从客户端设备接收交易请求,该交易请求用于请求在区块链网络上执行交易;发送子模块,用于由桥接设备将交易请求发送至区块链网络节点;第三接收子模块,用于由桥接设备从区块链网络节点接收第二通知,该第二通知指示更新的远程高度值,其中,更新的远程高度值指示至少部分地基于交易被存储在区块链网络节点上的区块链区块的数量的增加。
在一些实施例中,该通知包括指示新区块已被添加到区块链网络的区块链中的新区块通知,并且新区块通知指示远程高度值增加了例如1。
在一些实施例中,由桥接设备从区块链网络节点接收通知包括以下中的至少一个:接收区块链网络节点推送至桥接设备的通知;或由桥接设备从区块链网络节点提取通知。
在一些实施例中,装置700还包括维护子模块,用于在桥接设备的数据存储中维护本地高度值和校验高度值,其中:本地高度值指示已经从区块链网络节点获得并存储在桥接设备上的区块链区块的数量;校验高度值指示已经由桥接设备验证的区块链区块的数量。使用桥接设备的第二线程集来验证存储在桥接设备中的第二区块链区块集包括:确定校验高度值是否小于本地高度值;以及响应于确定校验高度值小于本地高度值,验证存储在桥接设备中且尚未由桥接设备验证的区块链区块。
在一些实施例中,验证存储在桥接设备中并且尚未由桥接设备验证的区块链区块包括:确定区块链区块中的一个或多个区块链交易与交易请求之间的一致性。
在一些实施例中,装置700还包括:确定子模块,用于响应于验证了存储在桥接设备上并且尚未由桥接设备验证的区块链区块,确定该区块链区块是可信的;更新子模块,用于由桥接设备更新校验高度值。
在一些实施例中,装置700还包括限制子模块,用于响应于确定校验高度值不小于本地高度值,限制验证存储在桥接设备中的区块链区块。
在一些实施例中,装置700还包括:检测子模块,用于由桥设备检测包括桥接设备和区块链网络节点的系统中的系统错误;以及执行子模块,用于基于校验高度值执行恢复处理。执行恢复处理包括:将本地高度值设置为等于校验高度值;以及响应于确定本地高度值小于指示存储在区块链网络节点上的区块链区块的数量的远程高度值,从区块链网络节点获得未存储在桥接设备上的至少一个区块链区块。
前述实施例中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实施,或者可以通过使用具有特定功能的产品来实施。典型的实施例设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。
对于装置中每个模块的功能和作用的实施例处理,可以参考前一方法中相应步骤的实施例处理。为简单起见,这里省略了细节。
由于装置实施基本上对应于方法实施,对于相关部件,可以参考方法实施中的相关描述。先前描述的装置实施仅是示例。被描述为单独部分的模块可以或不是物理上分离的,并且显示为模块的部分可以是或不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域的普通技术人员无需付出创造性劳动就能理解和实现本申请的实施例。
再次参见图7,它可以被解释为示出了容错区块链数据处理装置的内部功能模块和结构。容错区块链数据处理装置可以是被配置为连接客户端设备和区块链网络的区块链网络节点的桥接设备(例如,图3的桥接设备304a或图5的桥接设备504)的示例。执行主体本质上可以是电子设备,并且该电子设备包括以下:一个或多个处理器;以及被配置为存储一个或多个处理器的可执行指令的一个或多个计算机可读存储器。在一些实施例中,一个或多个计算机可读存储器耦接至一个或多个处理器且其上存储有编程指令,所述编程指令能够由所述一个或多个处理器执行以执行如本文中所述的算法、方法、函数、处理、流程和程序。本文还提供了一个或多个非暂态计算机可读存储介质,其耦接到一个或多个处理器并且具有存储在其上的指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器根据这里提供的方法的实施例执行操作。
本文还提供了用于实现本文提供的方法的系统。该系统包括一个或多个处理器,以及耦接到一个或多个处理器的计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器根据这里提供的方法的实施例执行操作。
本文中描述的主题、动作和操作的实施可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实施,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施可以实现为一个或多个计算机程序,例如,编码在计算机程序载体上的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。例如,计算机程序载体可以包括一个或多个计算机可读存储介质,其上编码或存储有指令。载体可以是有形的非暂态计算机可读介质,诸如磁盘、磁光盘或光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或其他类型的介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或可以部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
计算机程序,也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释性语言、或声明或程序性语言;它可以配置为任何形式,包括作为独立程序,或作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由数据通信网络互连的一个或多个位置上的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件中;或者多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的多个文件。
用于执行计算机程序的处理器包括:例如,通用和专用微处理器两者,和任意种类的数字计算机的任意一个或多个处理器。通常,处理器将接收用于执行的计算机程序的指令以及来自耦接至处理器的非暂态计算机可读介质的数据。
术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。数据处理设备可以包括例如FPGA(现场可编程门阵列),ASIC(专用集成电路)或GPU(图形处理单元)的专用逻辑电路。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中一个或多个的组合的代码。
本文中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一台或多台计算机或处理器执行,以通过对输入数据进行操作并生成输出来执行操作。处理和逻辑流程也可以由例如FPGA、ASIC或GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个存储设备,以从一个或多个存储设备接收数据或向一个或多个存储设备传送数据。大容量存储设备可以是例如,磁盘、磁光盘或光盘、固态驱动器或任何其他类型的非暂态计算机可读介质。但是,计算机不必需这样的设备。因此,计算机可以耦接到例如一个或多个存储器的本地和/或远程的一个或多个大容量存储设备。例如,计算机可以包括作为计算机的组成部件的一个或多个本地存储器,或者计算机可以耦接到云网络中的一个或多个远程存储器。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,这里仅举几例。
组件可以通过直接或经由一个或多个中间件例如电连接或光连接地彼此连接通信而彼此“耦接”。如果部件中的一个部件被集成到另一个中,则部件也可以被彼此“耦接”。例如,集成到处理器中的大容量存储组件(例如,L2高速缓存组件)被“耦接到”处理器。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户任何形式的输入,包括声音、语音输入或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息收发应用程序的智能手机)轮流发送文本消息或其他形式的消息来并且从用户接收响应消息来与用户交互。
本文使用与系统,装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包含许多具体实施细节,但是这些细节不应被解释为由权利要求书本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文中单个实施例的上下文中描述的多个特征也可以在单个实施例中组合实现。相反,在单个实施方式的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从要求保护的组合中删除该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求书中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为在所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包成多个软件产品。
已经描述了主题的特定实施方式。其他实施方式在以下权利要求书的范围内。例如,权利要求书中记载的动作可以以不同的顺序执行并且仍然实现所期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务并行处理可能是有利的。
Claims (16)
1.一种计算机实现的由桥接设备执行的方法,其中,所述桥接设备通信地链接到区块链网络中的区块链网络节点,所述方法包括:
使用所述桥接设备的第一线程集从所述区块链网络节点检索第一区块链区块集;
将所述第一区块链区块集存储在所述桥接设备中;以及
使用所述桥接设备的第二线程集来验证存储在所述桥接设备中的第二区块链区块集;
其中,检索所述第一区块链区块集以及验证所述第二区块链区块集是使用所述第一线程集和所述第二线程集异步地执行的。
2.如权利要求1所述的方法,其中,
所述第一区块链区块集包括第一区块链区块和第二区块链区块,
所述第一线程集包括第一线程和第二线程,
使用所述桥接设备的所述第一线程集从所述区块链网络节点检索所述第一区块链区块集包括并行地:
使用所述桥接设备的所述第一线程从所述区块链网络节点检索所述第一区块链区块,
使用所述桥接设备的所述第二线程从所述区块链网络节点检索所述第二区块链区块。
3.如权利要求1-2中任一项权利要求所述的方法,其中,
所述第二区块链区块集包括第三区块链区块和第四区块链区块,
所述第二线程集包括第三线程和第四线程,
使用所述桥接设备的所述第二线程集来验证存储在所述桥接设备中的所述第二区块链区块集包括并行地:
使用所述桥接设备的所述第三线程来验证所述第三区块链区块,
使用所述桥接设备的所述第四线程来验证所述第四区块链区块。
4.如权利要求1-2中任一项权利要求所述的方法,还包括:
在所述桥接设备的数据存储中维护远程高度值和本地高度值,其中:
所述远程高度值指示存储在所述区块链网络节点上的区块链区块的数量;以及
所述本地高度值指示已经从所述区块链网络节点获得并且存储在所述桥接设备上的区块链区块的数量,
其中,使用所述桥接设备的所述第一线程集从所述区块链网络节点检索所述第一区块链区块集包括:
所述桥接设备确定所述本地高度值是否小于所述远程高度值;以及
响应于确定所述本地高度值小于所述远程高度值,从所述区块链网络节点获得未存储在所述桥接设备上的至少一个区块链区块。
5.如权利要求4所述的方法,还包括:
响应于从所述区块链网络节点获得所述至少一个区块链区块,将所述至少一个区块链区块存储在所述桥接设备上;以及
所述桥接设备更新所述本地高度值。
6.如权利要求4所述的方法,还包括:
响应于确定所述本地高度值不小于所述远程高度值,限制从所述区块链网络节点获得区块链区块。
7.如权利要求4所述的方法,还包括:
所述桥接设备从所述区块链网络节点接收通知,所述通知指示所述远程高度值;
所述桥接设备从客户端设备接收交易请求,所述交易请求用于请求在区块链网络上执行交易;
所述桥接设备将所述交易请求发送至所述区块链网络节点;以及
所述桥接设备从所述区块链网络节点接收第二通知,所述第二通知指示更新的远程高度值,其中,所述更新的远程高度值指示至少部分基于所述交易被存储在所述区块链网络节点上的区块链区块的数量的增加。
8.如权利要求7所述的方法,其中,
所述通知包括指示新区块已经被添加到所述区块链网络的区块链中的新区块通知,并且
所述新区块通知指示所述远程高度值增加。
9.如权利要求7所述的方法,其中,所述桥接设备从所述区块链网络节点接收所述通知包括以下中的至少一个:
接收所述区块链网络节点推送至所述桥接设备的所述通知;或
所述桥接设备从所述区块链网络节点提取所述通知。
10.如权利要求1至2中任一项所述的方法,还包括:
在所述桥接设备的数据存储中维护本地高度值和校验高度值,其中:
所述本地高度值指示已经从所述区块链网络节点获得并存储在所述桥接设备上的区块链区块的数量;以及
所述校验高度值指示已经由所述桥接设备验证的区块链区块的数量;
其中,使用所述桥接设备的所述第二线程集来验证存储在所述桥接设备中的所述第二区块链区块集包括:
确定所述校验高度值是否小于所述本地高度值;以及
响应于确定所述校验高度值小于所述本地高度值,验证存储在所述桥接设备中并且尚未由所述桥接设备验证的区块链区块。
11.如权利要求10所述的方法,其中,验证存储在所述桥接设备中并且尚未由所述桥接设备验证的所述区块链区块包括:
确定所述区块链区块中的一个或多个区块链交易与交易请求之间的一致性。
12.如权利要求10所述的方法,还包括:
响应于验证了存储在所述桥接设备上并且尚未由所述桥接设备验证的所述区块链区块,确定所述区块链区块是可信的;以及
所述桥接设备更新所述校验高度值。
13.如权利要求10所述的方法,还包括:
响应于确定所述校验高度值不小于所述本地高度值,限制验证存储在所述桥接设备中的区块链区块。
14.如权利要求10所述的方法,还包括:
所述桥接设备检测包括所述桥接设备和所述区块链网络节点的系统中的系统错误;以及
响应于检测到所述系统错误,基于所述校验高度值执行恢复处理,其中,执行所述恢复处理包括:
将所述本地高度值设置为等于所述校验高度值;以及
响应于确定所述本地高度值小于指示存储在所述区块链网络节点上的区块链区块的数量的远程高度值,从所述区块链网络节点获得未存储在所述桥接设备上的至少一个区块链区块。
15.一种用于实现基于区块链的容错系统的装置,所述装置包括用于执行权利要求1至14中任一项所述的方法的多个模块。
16.一种基于区块链的容错系统,包括:
一个或多个处理器;以及
耦接至所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能由所述一个或多个处理器执行以执行如权利要求1至14中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/121346 WO2020035095A2 (en) | 2019-11-27 | 2019-11-27 | Asynchronous processing of blockchain blocks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111418183A CN111418183A (zh) | 2020-07-14 |
CN111418183B true CN111418183B (zh) | 2022-09-16 |
Family
ID=69525960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005780.XA Active CN111418183B (zh) | 2019-11-27 | 2019-11-27 | 区块链区块的异步处理 |
Country Status (11)
Country | Link |
---|---|
US (2) | US11088875B2 (zh) |
EP (1) | EP3777030B1 (zh) |
JP (1) | JP6980131B2 (zh) |
KR (1) | KR102283744B1 (zh) |
CN (1) | CN111418183B (zh) |
AU (1) | AU2019321923B2 (zh) |
CA (1) | CA3098769C (zh) |
PH (1) | PH12020551810A1 (zh) |
SG (1) | SG11202010678VA (zh) |
TW (1) | TWI759793B (zh) |
WO (1) | WO2020035095A2 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3098769C (en) | 2019-11-27 | 2021-08-17 | Alipay (Hangzhou) Information Technology Co., Ltd. | Asynchronous processing of blockchain blocks |
CN111581214B (zh) * | 2020-05-07 | 2023-07-18 | 成都汉为科技有限公司 | 适用于能源区块链的并行merkle树构建与验证方法 |
EP3977390B1 (en) * | 2020-08-03 | 2023-12-06 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain transaction processing systems and methods |
WO2022027173A1 (en) * | 2020-08-03 | 2022-02-10 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain transaction processing systems and methods |
CN112968967B (zh) * | 2020-09-25 | 2023-05-19 | 支付宝(杭州)信息技术有限公司 | 区块同步方法及装置 |
WO2022061878A1 (en) | 2020-09-28 | 2022-03-31 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain transaction processing systems and methods |
CN113689296B (zh) * | 2021-08-30 | 2023-11-17 | 北京泛融科技有限公司 | 一种异步可信计算的合约调度方法、装置和电子设备 |
CN113505000B (zh) * | 2021-09-08 | 2021-12-21 | 广东卓启云链科技有限公司 | 区块链中的多线程处理方法、装置、系统和存储介质 |
CN114066637A (zh) * | 2021-11-15 | 2022-02-18 | 深圳前海鸿泰源兴科技发展有限公司 | 一种基于物联网的金融分析系统与操作方法 |
CN114363336A (zh) * | 2021-12-31 | 2022-04-15 | 支付宝(杭州)信息技术有限公司 | 一种启动/关闭区块链节点服务的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2260719A1 (en) * | 1998-02-04 | 1999-08-04 | Timestep Corporation | System and method for ciphering data |
CN108681900A (zh) * | 2018-07-18 | 2018-10-19 | 众安信息技术服务有限公司 | 轻节点验证交易的方法 |
CN109347941A (zh) * | 2018-10-10 | 2019-02-15 | 南京简诺特智能科技有限公司 | 一种基于区块链的数据共享平台及其实现方法 |
CA2995214A1 (en) * | 2018-02-14 | 2019-08-14 | Beijing Tiande Technologies Limited | A method of block building via pipeline parallelization |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0969053A (ja) * | 1995-08-31 | 1997-03-11 | Toshiba Corp | メッセージ受信機構に於けるマルチスレッド制御方式及びキューイング方式 |
EP3375243B1 (en) * | 2015-11-09 | 2021-08-11 | Telefonaktiebolaget LM Ericsson (publ) | First network node, wireless device, and methods therein, for handling a request for access in a wireless communications network |
US10523526B2 (en) * | 2016-12-28 | 2019-12-31 | Acronis International Gmbh | System and method for managing services and licenses using a blockchain network |
US10158479B2 (en) * | 2017-02-06 | 2018-12-18 | Northern Trust Corporation | Systems and methods for generating, uploading and executing code blocks within distributed network nodes |
CN107103054B (zh) * | 2017-04-12 | 2019-03-26 | 北京航空航天大学 | 一种私有区块链的智能合约异步执行存储系统与实现方法 |
US20180349896A1 (en) * | 2017-06-05 | 2018-12-06 | Mastercard International Incorporated | Method and system for anonymization of electronic transactions via blockchain |
CN107301114A (zh) * | 2017-06-21 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种云海os监控资源及其信息添加方法和装置 |
CN107453896B (zh) | 2017-06-27 | 2020-08-04 | 创新先进技术有限公司 | 多重区块链网络数据处理方法、装置及服务器 |
US11281644B2 (en) * | 2017-07-28 | 2022-03-22 | Hitachi, Ltd. | Blockchain logging of data from multiple systems |
GB201720946D0 (en) * | 2017-12-15 | 2018-01-31 | Nchain Holdings Ltd | Computer-implemented system and method |
CN108259594B (zh) * | 2018-01-11 | 2020-02-18 | 杭州秘猿科技有限公司 | 一种基于区块链的数据交互系统以及中继服务器 |
US20190238316A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing intelligent consensus, smart consensus, and weighted consensus models for distributed ledger technologies in a cloud based computing environment |
US10754989B2 (en) * | 2018-03-27 | 2020-08-25 | International Business Machines Corporation | Runtime self-correction for blockchain ledgers |
CN108848119B (zh) | 2018-04-03 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 跨区块链的交互方法及装置、系统、电子设备 |
CN108600353B (zh) * | 2018-04-12 | 2021-01-12 | 北京天德科技有限公司 | 一种区块链节点的并行块同步方法 |
CN108734453B (zh) * | 2018-05-21 | 2023-04-14 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、计算机设备和存储介质 |
US10671315B2 (en) * | 2018-08-17 | 2020-06-02 | Bank Of America Corporation | Blockchain architecture for selective data restore and migration |
US10901957B2 (en) * | 2018-08-29 | 2021-01-26 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
CN109347917A (zh) * | 2018-09-14 | 2019-02-15 | 北京沃杰知识产权有限公司 | 区块链数据共识处理方法、系统、存储介质和电子设备 |
CA3098769C (en) | 2019-11-27 | 2021-08-17 | Alipay (Hangzhou) Information Technology Co., Ltd. | Asynchronous processing of blockchain blocks |
-
2019
- 2019-11-27 CA CA3098769A patent/CA3098769C/en active Active
- 2019-11-27 EP EP19849486.6A patent/EP3777030B1/en active Active
- 2019-11-27 KR KR1020207031170A patent/KR102283744B1/ko active IP Right Grant
- 2019-11-27 JP JP2020561069A patent/JP6980131B2/ja active Active
- 2019-11-27 AU AU2019321923A patent/AU2019321923B2/en active Active
- 2019-11-27 SG SG11202010678VA patent/SG11202010678VA/en unknown
- 2019-11-27 WO PCT/CN2019/121346 patent/WO2020035095A2/en unknown
- 2019-11-27 CN CN201980005780.XA patent/CN111418183B/zh active Active
-
2020
- 2020-07-14 TW TW109123722A patent/TWI759793B/zh active
- 2020-10-29 PH PH12020551810A patent/PH12020551810A1/en unknown
- 2020-10-30 US US17/085,018 patent/US11088875B2/en active Active
-
2021
- 2021-07-22 US US17/382,642 patent/US11394584B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2260719A1 (en) * | 1998-02-04 | 1999-08-04 | Timestep Corporation | System and method for ciphering data |
CA2995214A1 (en) * | 2018-02-14 | 2019-08-14 | Beijing Tiande Technologies Limited | A method of block building via pipeline parallelization |
CN108681900A (zh) * | 2018-07-18 | 2018-10-19 | 众安信息技术服务有限公司 | 轻节点验证交易的方法 |
CN109347941A (zh) * | 2018-10-10 | 2019-02-15 | 南京简诺特智能科技有限公司 | 一种基于区块链的数据共享平台及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CA3098769C (en) | 2021-08-17 |
EP3777030B1 (en) | 2022-08-24 |
US11394584B2 (en) | 2022-07-19 |
WO2020035095A2 (en) | 2020-02-20 |
WO2020035095A3 (en) | 2020-10-08 |
SG11202010678VA (en) | 2020-11-27 |
US20210351958A1 (en) | 2021-11-11 |
JP6980131B2 (ja) | 2021-12-15 |
CN111418183A (zh) | 2020-07-14 |
EP3777030A2 (en) | 2021-02-17 |
US20210160102A1 (en) | 2021-05-27 |
EP3777030A4 (en) | 2021-04-14 |
KR20210067981A (ko) | 2021-06-08 |
TW202121226A (zh) | 2021-06-01 |
JP2021518962A (ja) | 2021-08-05 |
AU2019321923A1 (en) | 2021-06-10 |
TWI759793B (zh) | 2022-04-01 |
AU2019321923B2 (en) | 2021-09-02 |
KR102283744B1 (ko) | 2021-08-02 |
PH12020551810A1 (en) | 2021-07-26 |
CA3098769A1 (en) | 2020-02-20 |
US11088875B2 (en) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111418183B (zh) | 区块链区块的异步处理 | |
KR102134549B1 (ko) | 분산 시스템에서 프라이머리 노드의 체인지 수행 | |
CN110945550B (zh) | 在可信执行环境下处理和存储区块链数据 | |
CN111095326B (zh) | 用于在区块链网络中执行多个交易的方法、系统和装置 | |
CN110612700B (zh) | 基于恢复的公钥进行认证 | |
TWI737392B (zh) | 電腦實現的用於由區塊鏈網路的區塊鏈節點在可信賴執行環境tee中處理區塊鏈資料的方法、通信共享區塊鏈資料的系統及用於通信共享區塊鏈資料的裝置 | |
CN111095324B (zh) | 在分布式账本系统中执行交易的并行执行 | |
CN111108478A (zh) | 共享的区块链数据存储 | |
KR20200074911A (ko) | 분산 시스템 내의 네트워크 노드를 위한 복구 프로세스의 수행 | |
CN111837115A (zh) | 共享的区块链数据存储 | |
US10917249B2 (en) | Processing data elements stored in blockchain networks | |
CN110998633A (zh) | 在基于读写集模型的区块链技术中避免双花问题的方法和设备 | |
CN111108526A (zh) | 管理基于区块链的中心化账本系统 | |
CN111033491A (zh) | 基于纠错编码存储共享的区块链数据 | |
CN110852887B (zh) | 获取去中心化应用集群中的交易处理状态的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40034153 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |