Achieving consensus among network nodes in a distributed system

US10615985B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10615985-B2
Application numberUS-201916422333-A
CountryUS
Kind codeB2
Filing dateMay 24, 2019
Priority dateDec 13, 2018
Publication dateApr 7, 2020
Grant dateApr 7, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Implementations of the present specification include a computer-implemented method for achieving a consensus among a number of network nodes of a blockchain network. The blockchain network includes a primary node and one or more backup nodes. The method includes receiving a transaction request by the primary node, sending a number of first messages to the backup nodes by the primary node, receiving second messages from the backup nodes by the primary node, reconstructing the transaction request based on data in the second messages by the primary node, sending a third message to the backup nodes by the primary node, and executing the transaction request in response to receiving a predetermined number of third messages.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method for achieving a consensus among a plurality of network nodes of a blockchain network comprising at least a primary node and one or more backup nodes, the method comprising: receiving, by the primary node, a transaction request; generating, by the primary node, a plurality of erasure code (EC) blocks according to an EC code using the transaction request; sending, by the primary node, a plurality of first messages to the one or more backup nodes, respectively, wherein each of the plurality of first messages comprises a composite hash value associated with the plurality of EC blocks, the composite hash value of the plurality of EC block being generated using a hash tree that comprises a Merkle tree, and the composite hash value being a root hash value of the Merkle tree; receiving, by the primary node, at least one second message from at least one of the backup nodes, wherein the at least one second message comprises one of the plurality of first messages and a signature of the at least one of the backup nodes associated with the one of the plurality of first messages; in response to receiving the at least one second message from the at least one of the backup node, verifying, by the primary node, whether the at least one second message is valid; determining, by the primary node, whether a number of valid second messages exceeds a pre-determined threshold; in response to determining that the number of valid second messages exceeds the pre-determined threshold, reconstructing, by the primary node, the transaction request based on a subset of the number of valid second messages according to the EC code; in response to determining that the transaction request has been successfully reconstructed, sending, by the primary node, a third message, to the other network nodes, wherein the third message comprises a set of signatures that are in the valid second messages; receiving, by the primary node, at least one third message from at least one of the backup nodes; and in response to receiving a pre-determined number of third messages that are identical, executing, by the primary node, the transaction request. 2. The method of claim 1 , wherein the transaction request is associated with a sequence number. 3. The method of claim 1 , wherein the generating the plurality of EC blocks according to an EC code comprises: transforming the transaction request into an EC message using the EC code; and dividing the EC message into the plurality of EC block. 4. The method of claim 1 , wherein the signature of the at least one of the backup nodes associated with the one of the plurality of first messages comprises a private key signature of the at least one of the backup nodes associated with the one of the plurality of first messages. 5. The method of claim 1 , wherein the at least one second message further comprises at least one of the plurality of EC blocks. 6. The method of claim 5 , wherein the verifying, by the primary node, whether the at least one second message is valid comprises: generating, by the primary node, a reconstructed hash tree using the at least one of the plurality of EC blocks in the at least one second message; determining, by the primary node, a reconstructed composite hash value of the reconstructed hash tree; comparing, by the primary node, the reconstructed composite hash value to a composite hash value in the at least one second message; and determining, by the primary node, whether the reconstructed composite hash value matches the composite hash values in the at least one second message. 7. The method of claim 6 , wherein the method further comprises: in response to determining that the reconstructed composite hash value matches the composite hash values in the second messages, determining, by the primary node, that the at least one second message is valid. 8. The method of claim 1 , wherein the pre-determined number of third messages that are identical comprise the pre-determined number of the third messages having an identical set of signatures. 9. A non-transitory computer-readable storage medium storing one or more instructions executable by a computer system to perform operations comprising: receiving, by a primary node of a blockchain network, a transaction request, wherein the blockchain network further comprises one or more backup nodes; generating, by the primary node, a plurality of erasure code (EC) blocks according to an EC code using the transaction request; sending, by the primary node, a plurality of first messages to the one or more backup nodes, respectively, wherein each of the plurality of first messages comprises a composite hash value associated with the plurality of EC blocks, the composite hash value of the plurality of EC block being generated using a hash tree that comprises a Merkle tree, and the composite hash value being a root hash value of the Merkle tree; receiving, by the primary node, at least one second message from at least one of the backup nodes, wherein the at least one second message comprises one of the plurality of first messages and a signature of the at least one of the backup nodes associated with the one of the plurality of first messages; in response to receiving the at least one second message from the at least one of the backup node, verifying, by the primary node, whether the at least one second message is valid; determining, by the primary node, whether a number of valid second messages exceeds a pre-determined threshold; in response to determining that the number of valid second messages exceeds the pre-determined threshold, reconstructing, by the primary node, the transaction request based on a subset of the number of valid second messages according to the EC code; in response to determining that the transaction request has been successfully reconstructed, send, by the primary node, a third message, to the other network nodes, wherein the third message comprises a set of signatures that are in the valid second messages; receiving, by the primary node, at least one third message from at least one of the backup nodes; and in response to receiving a pre-determined number of third messages that are identical, executing, by the primary node, the transaction request. 10. The non-transitory computer-readable storage medium of claim 9 , wherein the transaction request is associated with a sequence number. 11. The non-transitory computer-readable storage medium of claim 9 , wherein the generating the plurality of EC blocks according to an EC code comprises: transforming the transaction request into an EC message using the EC code; and dividing the EC message into the plurality of EC block. 12. The non-transitory computer-readable storage medium of claim 9 , wherein the signature of the at least one of the backup nodes associated with the one of the plurality of first messages comprises a private key signature of the at least one of the backup nodes associated with the one of the plurality of first messages. 13. The non-transitory computer-readable storage medium of claim 9 , wherein the at least one second message further comprises at least one of the plurality of EC blocks. 14. The non-transitory computer-readable storage medium of claim 13 , wherein the verifying, by the primary node, whether the at least one second message is valid comprises: generating, by the primary node, a reconstructed hash tree using the at least one of the plurality of EC blocks in the at least one second message; determining, by the primary node, a reconstructed composite hash value of the reconstructed hash tree; c

Assignees

Inventors

Classifications

  • using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes · CPC title

  • with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes · CPC title

  • Network architectures or network communication protocols for network security (cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00; network architectures or network communication protocols for wireless network security H04W12/00; security arrangements for protecting computers or computer systems against unauthorised activity G06F21/00) · CPC title

  • Applying verification of the received information (cryptographic mechanisms or cryptographic arrangements for data integrity or data verification H04L9/32) · CPC title

  • Multiprogramming arrangements · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10615985B2 cover?
Implementations of the present specification include a computer-implemented method for achieving a consensus among a number of network nodes of a blockchain network. The blockchain network includes a primary node and one or more backup nodes. The method includes receiving a transaction request by the primary node, sending a number of first messages to the backup nodes by the primary node, recei…
Who is the assignee on this patent?
Alibaba Group Holding Ltd
What technology area does this patent fall under?
Primary CPC classification H04L9/3239. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Apr 07 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).