Checkpointing for increasing efficiency of a blockchain

US10901957B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10901957-B2
Application numberUS-201816116191-A
CountryUS
Kind codeB2
Filing dateAug 29, 2018
Priority dateAug 29, 2018
Publication dateJan 26, 2021
Grant dateJan 26, 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.

An example operation may include one or more of retrieving, into a corrupted node in a blockchain network that is at least one corrupted or forked, a state database checkpoint of a state database created at a block number of a blockchain of the blockchain network, wherein the retrieved state database checkpoint comprises a last known non-corrupted or non-forked checkpoint state, retrieving, into the corrupted node, blocks of the blockchain from the checkpoint block number to a current block number, constructing an initial state database from the retrieved state database checkpoint, and executing, at the corrupted node, the transactions of the retrieved blocks on the initial state database to generate a current state database.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a blockchain network comprising a plurality of peer nodes programmed to store a blockchain and a state database, wherein a peer node, of the plurality of peer nodes, is programmed to: determine that the peer node is at least one of corrupted or forked; retrieve a state database checkpoint of a state database created at a block number of the blockchain, the state database checkpoint comprising a last known non-corrupted or non-forked checkpoint state; retrieve blocks of the blockchain from the block number, at which the state database checkpoint is created, to a current block number; construct an initial state database from the retrieved state database checkpoint; and execute transactions of the retrieved blocks on the initial state database to generate a current state database, wherein one or more key/value pairs of the initial state database are stored in one or more leaf nodes of a merkle tree representing the state database checkpoint. 2. The system of claim 1 , wherein the state database checkpoint is a merkle tree comprising: one or more key/value pairs in one or more leaf nodes of the merkle tree, wherein the peer node is programmed to extract and store the one or more key/value pairs from the one or more leaf nodes of the merkle tree to construct the initial state database. 3. The system of claim 1 , wherein the peer node is programmed to: compare a root hash of the merkle tree with a consensus root hash for the state database checkpoint. 4. The system of claim 1 , wherein the peer node is programmed to: generate the merkle tree representing the state database checkpoint in accordance with a defined merkle tree schema. 5. The system of claim 1 , wherein the peer node is programmed to: receive a consensus merkle tree into the peer node; and compare hash values of one or more level nodes of the consensus merkle tree and a merkle tree generated by the peer node to isolate one or more leaf nodes that contain one or more discrepancies in one or more key/value pairs. 6. The system of claim 1 , wherein the peer node is programmed to request the state database checkpoint and the blocks of the blockchain from an existing node of the blockchain network. 7. The system of claim 1 , wherein the peer node is programmed to generate a state database checkpoint at a next checkpoint interval of a number of blocks of the blockchain and determine the peer node as correctly instantiated if the state database checkpoint matches a consensus state database checkpoint. 8. A method comprising: retrieving, by a node in a blockchain network, the node being at least one of corrupted or forked, a state database checkpoint of a state database created at a block number of a blockchain of the blockchain network, the state database checkpoint comprising a last known non-corrupted or non-forked checkpoint state; retrieving, into the node, blocks of the blockchain from the block number, at which the state database checkpoint is created, to a current block number; constructing an initial state database from the retrieved state database checkpoint; and executing, at the node, transactions of the retrieved blocks on the initial state database to generate a current state database, wherein one or more key/value pairs of the initial state database are stored in one or more leaf nodes of a merkle tree representing the state database checkpoint. 9. The method of claim 8 , wherein the state database checkpoint is a merkle tree comprising: one or more key/value pairs in one or more leaf nodes of the merkle tree, wherein constructing the initial state database comprises extracting and storing the one or more key/value pairs from the one or more leaf nodes of the merkle tree. 10. The method of claim 8 , further comprising: comparing a root hash of the merkle tree with a consensus root hash for the state database checkpoint. 11. The method of claim 8 , further comprising: generating the merkle tree in accordance with a defined merkle tree schema. 12. The method of claim 8 , further comprising: receiving a consensus merkle tree into the node; and comparing hash values of one or more level nodes of the consensus merkle tree and a merkle tree generated by the node to isolate one or more leaf nodes containing one or more discrepancies in one or more key/value pairs. 13. The method of claim 8 , further comprising: requesting, by the node, the state database checkpoint and the blocks of the blockchain from another node of the blockchain network. 14. The method of claim 8 , further comprising: generating, by the node, a state database checkpoint at a next checkpoint interval of a number of blocks of the blockchain and determining the node as correctly restored if the state database checkpoint matches a consensus state database checkpoint. 15. A non-transitory computer readable medium storing one or more instructions that when executed by a processor cause the processor to perform: retrieving, into a node in a blockchain network, the node being at least one of corrupted or forked, a state database checkpoint of a state database created at a block number of a blockchain of the blockchain network, the state database checkpoint comprising a last known non-corrupted or non-forked checkpoint state; retrieving, into the node, blocks of the blockchain from the block number, at which the state database checkpoint is created, to a current block number; constructing an initial state database from the retrieved state database checkpoint; and executing, at the node, transactions of the retrieved blocks on the initial state database to generate a current state database, wherein one or more key/value pairs of the initial state database are stored in one or more leaf nodes of a merkle tree representing the state database checkpoint. 16. The non-transitory computer readable medium of claim 15 , wherein the one or more instructions further cause the processor to perform: constructing the initial state database by extracting and storing one or more key/value pairs from the one or more leaf nodes of a merkle tree representation of the state database checkpoint. 17. The non-transitory computer readable medium of claim 15 , wherein the one or more instructions further cause the processor to perform: requesting, by the node, the state database checkpoint and the blocks of the blockchain from another node of the blockchain network. 18. The non-transitory computer readable medium of claim 15 , wherein the one or more instructions further cause the processor to perform: generating, by the node, a state database checkpoint at a next checkpoint interval of a number of blocks of the blockchain and determining the node as correctly instantiated if the state database checkpoint matches a consensus state database checkpoint.

Assignees

Inventors

Classifications

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

  • for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06) · CPC title

  • Hash functions, e.g. MD5, SHA, HMAC or f9 MAC · CPC title

  • Append-only file systems, e.g. using logs or journals to store data · CPC title

  • received data contents, e.g. message integrity · 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 US10901957B2 cover?
An example operation may include one or more of retrieving, into a corrupted node in a blockchain network that is at least one corrupted or forked, a state database checkpoint of a state database created at a block number of a blockchain of the blockchain network, wherein the retrieved state database checkpoint comprises a last known non-corrupted or non-forked checkpoint state, retrieving, int…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F16/1834. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 26 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).