Faster view change for blockchain

US11775556B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11775556-B2
Application numberUS-202217574313-A
CountryUS
Kind codeB2
Filing dateJan 12, 2022
Priority dateApr 17, 2020
Publication dateOct 3, 2023
Grant dateOct 3, 2023

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.

An example operation includes one or more of receiving view change messages which request a view change from a previous primary peer of a blockchain to the primary peer, identifying that a change to a state of the blockchain is in process with the previous primary peer based on metadata of the received view change messages, verifying that the change to the state of the blockchain corresponds to a latest change to the blockchain based on a received view data message, and transmitting a new view message to following peers which includes the in-process change to the state of the blockchain.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus, comprising: a network interface configured to: receive view change messages, including signatures from a plurality of following peers, that request a view change from a current primary peer of a blockchain to a new primary peer; and a processor configured to: identify that a change to a state of the blockchain is in process with the current primary peer, wherein the in-process change is based on a next view number contained in metadata of each of the view change messages, verify that the change to the state of the blockchain corresponds to a latest change to the blockchain based on the signatures of peers, wherein the network interface is further configured to: transmit a new view message to the plurality of following peers. 2. The apparatus of claim 1 , wherein the network interface is configured to: transmit the new view message in response to receipt of only one view data message from one of the plurality of following peers. 3. The apparatus of claim 1 , wherein the in-process change to the state of the blockchain comprises a proposed data block. 4. The apparatus of claim 1 , wherein the processor is further configured to: verify that the view change messages have been received from a predetermined threshold of the plurality of following peers. 5. The apparatus of claim 1 , wherein the in-process change is further based on a hashed change to the blockchain in the metadata of each of the view change messages. 6. The apparatus of claim 1 , wherein the processor is further configured to: receive, from a following peer, a view data message comprising a plurality of signed prepare messages therein. 7. The apparatus of claim 6 , wherein the plurality of signed prepare messages are received by the plurality of following peers from other following peers among the plurality of following peers. 8. An apparatus, comprising: a processor configured to: determine that a current primary peer for a plurality of following peers of a blockchain has become a faulty peer, identify that a change to a state of the blockchain is in-process with the current primary peer based on a pre-prepare message received from the current primary peer, and generate a view change message that comprises a next view number, a hash of the in-process change to the state of the blockchain, and signatures of the plurality of following peers that agree on the in-process change; and a network interface configured to: transmit the view change message to other peers. 9. The apparatus of claim 8 , wherein the processor is further configured to: store, within the view change message, signatures of other following peers of the blockchain that agree on the in-process change to the state of the blockchain. 10. The apparatus of claim 8 , wherein the in-process change to the state of the blockchain and the signatures of the plurality of following peers are collected within a prepare phase of practical byzantine fault tolerant (pBFT) consensus. 11. A method of a primary peer, comprising: receiving view change messages including signatures from a plurality of following peers which request a view change from a current primary peer of a blockchain to a new primary peer; identifying that a change to a state of the blockchain is in process with a previous primary peer, wherein the in-process change is based on a next view number contained in metadata of each of the view change messages; verifying that the change to the state of the blockchain corresponds to a latest change to the blockchain based on the signatures of peers; and transmitting a new view message to following peers. 12. The method of claim 11 , wherein the transmitting comprises: transmitting the new view message in response to receiving only one view data message from one of the plurality of following peers. 13. The method of claim 11 , wherein the in-process change to the state of the blockchain comprises a proposed data block. 14. An apparatus, comprising: a network interface configured to: receive, from a primary peer, a pre-prepare message which comprises a proposed block to be added to a blockchain; and a processor configured to: generate a prepare message that comprises a hash of the proposed block to be added to the blockchain and a signature of a consensus peer over the hash of the proposed block, add a hash puzzle of the consensus peer to the prepare message, transmit the signed prepare message with the hash puzzle to a plurality of other consensus peers of the blockchain, and transmit, to the plurality of consensus peers, a commit message to commit the proposed block which includes a solution to the hash puzzle. 15. The apparatus of claim 14 , wherein the processor is further configured to: determine that a predetermined threshold of the other consensus peers agree on the proposed data to be added to the blockchain based on prepare messages received from the other consensus peers. 16. The apparatus of claim 14 , wherein the commit message does not include a signature of the consensus peer. 17. The apparatus of claim 14 , wherein the processor is further configured to: generate the hash puzzle via a hash of a predefined secret value. 18. The apparatus of claim 14 , wherein the processor is further configured to: receive prepare messages from the other consensus peers. 19. The apparatus of claim 18 , wherein the prepare messages include hash puzzles added by the other respective consensus peers. 20. An apparatus, comprising: a network interface configured to: receive view change messages from a plurality of following peers, each view change message including each include a next view value and a hash of an in-process change to the state of the blockchain, wherein each view change message includes signatures of following peers among the plurality of following peers, and wherein the view change messages request a view change from a current primary peer of a blockchain to a new primary peer; and a processor configured to: in response to receipt of a predetermined threshold of view change messages, generate a view data message that includes the signatures of the following peers, from among the plurality of following peers, as proof of the in-process change to the state of the blockchain, and transmit the view data message to the primary peer. 21. The apparatus of claim 20 , wherein the signatures of the following peers are collected in a prepare phase of byzantine fault tolerant (BFT) consensus. 22. The apparatus of claim 20 , wherein the signatures of the following peers are included in signed prepare messages that comprise a hash of the in-process change to the state of the blockchain and a view number of a new primary peer. 23. The apparatus of claim 22 , wherein the signed prepare messages further include hash puzzles added by the other following peers. 24. The apparatus of claim 20 , wherein the processor is further configured to: receive the in-process change to the state of the blockchain from the primary peer.

Assignees

Inventors

Classifications

  • Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM] · CPC title

  • G06F16/27Primary

    Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title

  • G06F16/23Primary

    Updating · CPC title

  • Graphs; Linked lists (G06F16/9027 takes precedence) · 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 US11775556B2 cover?
An example operation includes one or more of receiving view change messages which request a view change from a previous primary peer of a blockchain to the primary peer, identifying that a change to a state of the blockchain is in process with the previous primary peer based on metadata of the received view change messages, verifying that the change to the state of the blockchain corresponds to…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F16/27. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 03 2023 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).