Runtime self-correction for blockchain ledgers

US10754989B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10754989-B2
Application numberUS-201815937375-A
CountryUS
Kind codeB2
Filing dateMar 27, 2018
Priority dateMar 27, 2018
Publication dateAug 25, 2020
Grant dateAug 25, 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.

An example operation may include one or more of identifying, via a ledger validation thread, a corrupted data block that is stored within a chain of blocks on a distributed ledger, selecting a blockchain peer from among a plurality of blockchain peers that have access to the distributed ledger, and retrieving a replacement data block from the selected peer, determining whether the replacement data block is valid based on one or more of a previously stored validation block associated with the chain of blocks, and, in response to determining the replacement data block is valid, replacing the corrupted data block with the replacement data block on the distributed ledger.

First claim

Opening claim text (preview).

What is claimed is: 1. A computing system comprising: a memory storing a distributed ledger; and a processor configured to identify, via a ledger validation thread, a corrupted data block that is stored within a chain of blocks on the distributed ledger, select a blockchain peer from among a plurality of blockchain peers that have access to the distributed ledger, retrieve a replacement data block from the selected peer, determine whether the replacement data block is valid based on a hash value stored within a following data block, with respect to the corrupted data block, within the chain of blocks, and in response to the determination that the replacement data block is valid, replace the corrupted data block with the replacement data block on the distributed ledger. 2. The computing system of claim 1 , wherein the ledger validation thread comprises a program that runs in the memory and that has compiled code which is stored separately from files that make up the distributed ledger. 3. The computing system of claim 1 , wherein the processor is further configured to retrieve a replacement data block for a following data block in the chain of blocks when it is determined that the corrupted data block has changed a block size of its original data block. 4. The computing system of claim 1 , wherein the previously stored validation block comprises a correct block stored in a backup copy of the distributed ledger of a blockchain node that executes the ledger validation thread. 5. The computing system of claim 1 , wherein the processor is configured to sequentially scan data blocks of the distributed ledger and validate the sequentially scanned data blocks based on respective hash values of the sequentially scanned data blocks generated at runtime to identify the corrupted data block. 6. The computing system of claim 1 , wherein the processor is configured to perform a bit-by-bit comparison of the distributed ledger with a backup copy of the distributed ledger to identify the corrupted data block based on the bit-by-bit comparison. 7. The computing system of claim 1 , wherein the processor is configured to pre-fetch data blocks from the distributed ledger based on a block access pattern associated with a data block currently selected from the distributed ledger, and validate the pre-fetched data blocks based on respective hashes of the pre-fetched data blocks to identify the corrupted data block from the pre-fetched data blocks. 8. The computing system of claim 1 , wherein the processor is configured to sequentially validate data blocks of the distributed ledger based on previously generated checksum values of the respective data blocks to identify the corrupted data block based on the checksum values. 9. The computing system of claim 1 , wherein the processor is configured to randomly select data blocks from the distributed ledger and validate the randomly selected data blocks based on respective hashes of the randomly selected data blocks to identify the corrupted data block from the randomly selected data blocks. 10. A method comprising: identifying, via a ledger validation thread, a corrupted data block that is stored within a chain of blocks on a distributed ledger; selecting a blockchain peer from among a plurality of blockchain peers that have access to the distributed ledger, and retrieving a replacement data block from the selected peer; determining whether the replacement data block is valid based on a hash value stored within a following data block, with respect to the corrupted data block, within the chain of blocks; and in response to determining the replacement data block is valid, replacing the corrupted data block with the replacement data block on the distributed ledger. 11. The method of claim 10 , wherein the ledger validation thread comprises a program running in memory having compiled code which is stored separately from files that make up the distributed ledger. 12. The method of claim 10 , wherein the retrieving further comprises retrieving a replacement data block for a following data block in the chain of blocks when it is determined that the corrupted data block has changed a block size of its original data block. 13. The method of claim 10 , wherein the previously stored validation block comprises a correct block stored in a backup copy of the distributed ledger of a blockchain node executing the ledger validation thread. 14. The method of claim 10 , wherein the identifying the corrupted data block, via the ledger validation thread, comprises sequentially scanning data blocks of the distributed ledger and validating the sequentially scanned data blocks based on respective hash values of the sequentially scanned data blocks generated at runtime to identify the corrupted data block. 15. The method of claim 10 , wherein the identifying the corrupted data block, via the ledger validation thread, comprises performing a bit-by-bit comparison of the distributed ledger with a backup copy of the distributed ledger to identify the corrupted data block based on the bit-by-bit comparison. 16. The method of claim 10 , wherein the identifying the corrupted data block, via the ledger validation thread, comprises pre-fetching data blocks from the distributed ledger based on a block access pattern associated with a data block currently selected from the distributed ledger, and validating the pre-fetched data blocks based on respective hashes of the pre-fetched data blocks to identify the corrupted data block from the pre-fetched data blocks. 17. The method of claim 10 , wherein the identifying the corrupted data block, via the ledger validation thread, comprises sequentially validating data blocks of the distributed ledger based on previously generated checksum values of the respective data blocks to identify the corrupted data block based on the checksum values. 18. The method of claim 10 , wherein the identifying the corrupted data block, via the ledger validation thread, comprises randomly selecting data blocks from the distributed ledger and validating the randomly selected data blocks based on respective hashes of the randomly selected data blocks to identify the corrupted data block from the randomly selected data blocks. 19. A non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform a method comprising: identifying, via a ledger validation thread, a corrupted data block that is stored within a chain of blocks on a distributed ledger; selecting a blockchain peer from among a plurality of blockchain peers that have access to the distributed ledger, and retrieving a replacement data block from the selected peer; determining whether the replacement data block is valid based on a hash value stored within a following data block, with respect to the corrupted data block, within the chain of blocks; and in response to determining the replacement data block is valid, replacing the corrupted data block with the replacement data block on the distributed ledger. 20. The non-transitory computer readable medium of claim 19 , wherein the ledger validation thread comprises a program running in memory having compiled code which is stored separately from files that make up the distributed ledger.

Assignees

Inventors

Classifications

  • Use of message hashing · CPC title

  • received data contents, e.g. message integrity · CPC title

  • G06Q20/223Primary

    based on the use of peer-to-peer networks · CPC title

  • G06F21/64Primary

    Protecting data integrity, e.g. using checksums, certificates or signatures · CPC title

  • the resynchronized component or unit being a persistent storage device (re-synchronization of failed mirror storage G06F11/2082; rebuild or reconstruction of parity RAID storage G06F11/1008) · 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 US10754989B2 cover?
An example operation may include one or more of identifying, via a ledger validation thread, a corrupted data block that is stored within a chain of blocks on a distributed ledger, selecting a blockchain peer from among a plurality of blockchain peers that have access to the distributed ledger, and retrieving a replacement data block from the selected peer, determining whether the replacement d…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06Q20/223. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 25 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).