Facilitating practical byzantine fault tolerance blockchain consensus and node synchronization

US11036721B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11036721-B2
Application numberUS-202017068645-A
CountryUS
Kind codeB2
Filing dateOct 12, 2020
Priority dateNov 7, 2018
Publication dateJun 15, 2021
Grant dateJun 15, 2021

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 disclosure include setting, by a first consensus node, a timer that runs out before a timeout of a view change; sending, to a second consensus node, a request for one or more consensus messages missing by the first consensus node in response to the timer running out; receiving, from the second consensus node, the one or more consensus messages each digitally signed by a private key of a corresponding consensus node that generates the respective one or more consensus messages; and determining that a block of transactions is valid, if a quantity of commit messages included in the received one or more consensus messages is greater than or equal to 2f+1, where f is a maximum number of faulty nodes that is tolerable by the blockchain based on practical Byzantine fault tolerance.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for facilitating a consensus process in a blockchain network based on practical Byzantine fault tolerance (PBFT), comprising: setting, by a first consensus node, a first timer that initiates a view change upon expiration; setting, by the first consensus node, a second timer that expires before the first timer; in response to the second timer expiring, sending, to a second consensus node, a request for one or more missing consensus messages, wherein the one or more missing consensus messages were previously transmitted to the first consensus node, but not received by the first consensus node; receiving, from the second consensus node, the one or more missing consensus messages each digitally signed by a private key of a corresponding consensus node that generates the one or more missing consensus messages; combining the one or more missing consensus messages with one or more received consensus messages to create a set of consensus messages; and determining that a block of transactions is valid, if a quantity of commit messages included in the set of consensus messages is greater than or equal to 2f+1, where f is a maximum number of faulty nodes that is tolerable by the blockchain network based on PBFT, and wherein n is a total number of consensus nodes in the blockchain network and f is a largest integer less than or equal to (n−1)/3. 2. The computer-implemented method of claim 1 , wherein the request includes a sequence number that indicates a number of a consensus round. 3. The computer-implemented method of claim 1 , wherein the one or more missing consensus messages include one or more of pre-prepare messages, prepare messages, and commit messages missed by the first consensus node. 4. The computer-implemented method of claim 1 , wherein the one or more missing consensus messages are stored in one or more consensus nodes in which they are generated or stored, until a stable checkpoint is reached. 5. The computer-implemented method of claim 1 , further comprising receiving one or more sequence numbers corresponding to the one or more missing consensus messages, wherein each sequence number indicates a number of a consensus round associated with a corresponding consensus message. 6. The computer-implemented method of claim 1 , further comprising submitting the block of transactions to a blockchain and a status database, if the block of transactions is determined valid. 7. The computer-implemented method of claim 1 , further comprising: sending, to a third consensus node, a request for a second one or more missing consensus messages by the second consensus node in response to the second timer expiring and if the block of transactions is determined invalid; receiving, from the third consensus node, the second one or more missing consensus messages each digitally signed by a private key of a corresponding consensus node that generates the second one or more missing consensus messages; combining the second one or more missing consensus messages with the one or more missing consensus messages and one or more received consensus messages to create a second set of consensus messages; and determining that the block of transactions is valid, if a quantity of commit messages included in the second set of consensus messages is greater than or equal to 2f+1. 8. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations for facilitating a consensus process in a blockchain network based on practical Byzantine fault tolerance (PBFT), the operations comprising: setting, by a first consensus node, a first timer that initiates a view change upon expiration; setting, by the first consensus node, a second timer that expires before the first timer; in response to the second timer expiring, sending, to a second consensus node, a request for one or more missing consensus messages, wherein the one or more missing consensus messages were previously transmitted to the first consensus node, but not received by the first consensus node; receiving, from the second consensus node, the one or more missing consensus messages each digitally signed by a private key of a corresponding consensus node that generates the one or more missing consensus messages; combining the one or more missing consensus messages with one or more received consensus messages to create a set of consensus messages; and determining that a block of transactions is valid, if a quantity of commit messages included in the set of consensus messages is greater than or equal to 2f+1, where f is a maximum number of faulty nodes that is tolerable by the blockchain network based on PBFT, and wherein n is a total number of consensus nodes in the blockchain network and f is a largest integer less than or equal to (n−1)/3. 9. The non-transitory, computer-readable medium of claim 8 , wherein the request includes a sequence number that indicates a number of a consensus round. 10. The non-transitory, computer-readable medium of claim 8 , wherein the one or more missing consensus messages include one or more of pre-prepare messages, prepare messages, and commit messages missed by the first consensus node. 11. The non-transitory, computer-readable medium of claim 8 , wherein the one or more missing consensus messages are stored in one or more consensus nodes in which they are generated or stored, until a stable checkpoint is reached. 12. The non-transitory, computer-readable medium of claim 8 , the operations further comprising receiving one or more sequence numbers corresponding to the one or more missing consensus messages, wherein each sequence number indicates a number of a consensus round associated with a corresponding consensus message. 13. The non-transitory, computer-readable medium of claim 8 , the operations further comprising submitting the block of transactions to a blockchain and a status database, if the block of transactions is determined valid. 14. The non-transitory, computer-readable medium of claim 8 , the operations further comprising: sending, to a third consensus node, a request for a second one or more missing consensus messages by the second consensus node in response to the second timer expiring and if the block of transactions is determined invalid; receiving, from the third consensus node, the second one or more missing consensus messages each digitally signed by a private key of a corresponding consensus node that generates the second one or more missing consensus messages; combining the second one or more missing consensus messages with the one or more missing consensus messages and one or more received consensus messages to create a second set of consensus messages; and determining that the block of transactions is valid, if a quantity of commit messages included in the second set of consensus messages is greater than or equal to 2f+1. 15. A computer-implemented system for facilitating a consensus process in a blockchain network based on practical Byzantine fault tolerance (PBFT), comprising: one or more computers; and one or more computer-readable memories coupled to the one or more computers and having instructions stored thereon which are executable by the one or more computers to perform operations comprising: setting, by a first consensus node, a first timer that initiates a view change upon expiration; setting, by the first consensus node, a second timer that expires before the first timer; in response to the second timer expiring, sending, to a second consensus node, a request for one or more missing consensus mess

Assignees

Inventors

Classifications

  • using hash chains, e.g. blockchains or hash trees · CPC title

  • involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD · CPC title

  • by voting, the voting not being performed by the redundant components · CPC title

  • in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems · CPC title

  • Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · 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 US11036721B2 cover?
Implementations of the present disclosure include setting, by a first consensus node, a timer that runs out before a timeout of a view change; sending, to a second consensus node, a request for one or more consensus messages missing by the first consensus node in response to the timer running out; receiving, from the second consensus node, the one or more consensus messages each digitally signe…
Who is the assignee on this patent?
Advanced New Technologies Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F11/0709. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 15 2021 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).