IP Library Granted Patent US 11,334,439
Granted Patent B2
US 11,334,439 · App. 16/116,239 · Granted May 17, 2022

Checkpointing for increasing efficiency of a blockchain

Inventors: Senthilnathan Natarajan (Bangalore, IN); Chander Govindarajan (Bangalore, IN); Manish Sethi (Cary, NC); Adarsh Saraf (Bangalore, IN)
Assignee: International Business Machines Corporation
G06F11/1451G06F11/1464G06F16/13G06F16/1805G06F16/1834G06F16/27H04L9/0643G06F2201/80H04L2209/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,334,439
App. No.
16/116,239
Granted
May 17, 2022
Kind
B2
Abstract

An example operation may include one or more of retrieving, into a new node to be instantiated in a blockchain network, a state database checkpoint of a state database created at a block number of a blockchain of the blockchain network, retrieving, into the new node, blocks of the blockchain from the checkpoint block number to a current block number, constructing an initial state database from the received state database checkpoint, and executing, at the new node, the transactions of the retrieved blocks on the initial state database to generate a current state database.

Claims (36)

1. A system, comprising:

a blockchain network comprising a plurality of peer nodes programmed to store a blockchain and a state database comprising a plurality of key/value pairs;

a new node to be instantiated on the network, the new node programmed to:

generate a state database checkpoint comprising a Merkle tree in which one or more key-value pairs of a state database are mapped to one or more leaf nodes of the Merkle tree, where the state database checkpoint is created at a block number of the blockchain;

determine that a plurality of peer nodes have reached a consensus on the state database checkpoint based on a root hash of the Merkle tree and respective root hashes broadcast by the plurality of peer nodes;

construct an initial state database from the state database checkpoint based on retrieved blocks of the blockchain; and

execute transactions of the retrieved blocks on the initial state database to generate a current state database;

wherein the new 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 and to isolate the one or more leaf nodes that contain one or more discrepancies in one or more of the plurality of key/value pairs.

2. The system of claim 1 wherein the new node is programmed to generate a Merkle tree for the initial state database, wherein one or more key/value pairs of the initial state database are stored in one or more leaf nodes of the Merkle tree for the initial state database.

3. The system of claim 2 wherein the new node is programmed to generate the Merkle tree in accordance with a defined Merkle tree schema.

4. The system of claim 2 wherein the new node is programmed to:

receive a consensus Merkle tree into the new node; and

compare hash values of one or more level nodes of the consensus Merkle tree and the Merkle tree generated by the new node to perform the isolation.

5. The system of claim 1 wherein the new node is programmed to request the state database checkpoint and the blocks of the blockchain from an existing node of the blockchain network.

6. The system of claim 1 wherein the new node is programmed to generate a second state database checkpoint at a next checkpoint interval number of blocks of the blockchain and determine the new node as correctly instantiated if the second state database checkpoint matches a consensus state database checkpoint.

7. A method comprising:

generating, via a new node to be instantiated in a blockchain network, a state database checkpoint comprising a Merkle tree in which one or more key-value pairs of a state database are mapped to one or more leaf nodes of the Merkle tree, where the state database checkpoint is created at a block number of a blockchain of the blockchain network;

determining that a plurality of peer nodes have reached a consensus on the state database checkpoint based on a root hash of the Merkle tree and respective root hashes broadcast by the plurality of peer nodes;

constructing an initial state database from the state database checkpoint based on retrieved blocks of the blockchain; and

executing, at the new node, transactions of the retrieved blocks on the initial state database to generate a current state database;

wherein the new 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 and to isolate the one or more leaf nodes that contain one or more discrepancies in one or more of the plurality of key/value pairs.

8. The method of claim 7 comprising generating a Merkle tree for the initial state database, wherein one or more key/value pairs of the initial state database are stored in one or more leaf nodes of the Merkle tree for the initial state database.

9. The method of claim 8 wherein the method further comprises generating the Merkle tree for the state database which comprises generating the Merkle tree in accordance with a defined Merkle tree schema.

10. The method of claim 8 comprising:

receiving a consensus Merkle tree into the new node; and

comparing hash values of one or more level nodes of the consensus Merkle tree and the Merkle tree generated by the new node to perform the isolation.

11. The method of claim 7 comprising requesting, by the new node, the state database checkpoint and the blocks of the blockchain from an existing node of the blockchain network.

12. The method of claim 7 comprising generating, by the new node, a second state database checkpoint at a next checkpoint interval number of blocks of the blockchain and determining the new node as correctly instantiated if the second state database checkpoint matches a consensus state database checkpoint.

13. A non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform:

generating, via a new node to be instantiated in a blockchain network, a state database checkpoint comprising a Merkle tree in which one or more key-value pairs of a state database are mapped to one or more leaf nodes of the Merkle tree, where the state database checkpoint is created at a block number of a blockchain of the blockchain network;

determining that a plurality of peer nodes have reached a consensus on the state database checkpoint based on a root hash of the Merkle tree and respective root hashes broadcast by the plurality of peer nodes;

constructing an initial state database from the state database checkpoint based on retrieved blocks of the blockchain; and

executing, at the new node, transactions of the retrieved blocks on the initial state database to generate a current state database;

wherein the new 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 and to isolate the one or more leaf nodes that contain one or more discrepancies in one or more of the plurality of key/value pairs.

14. The non-transitory computer readable medium of claim 13 comprising instructions that, when executed, cause the at least one processor to perform requesting, by the new node, the state database checkpoint and the blocks of the blockchain from an existing node of the blockchain network.

15. The non-transitory computer readable medium of claim 13 comprising instructions that, when executed, cause the at least one processor to perform generating, by the new node, a second state database checkpoint at a next checkpoint interval number of blocks of the blockchain and determining the new node as correctly instantiated if the second state database checkpoint matches a consensus state database checkpoint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2018
From: NATARAJAN, SENTHILNATHAN; GOVINDARAJAN, CHANDER; SETHI, MANISH; SARAF, ADARSH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046741/0686 →
Continuity (1)
Related Publication 20200073758A1 · Mar 5, 2020