IP Library › Granted Patent US 10,929,473
Granted Patent B2
US 10,929,473 · App. 16/144,861 · Granted Feb 23, 2021

Integrated index blocks and searching in blockchain systems

Inventors: Eric Allan Bier (Palo Alto, CA); Shantanu Rane (Menlo Park, CA)
Assignee: PALO ALTO RESEARCH CENTER INCORPORATED
G06F16/90335G06F16/13G06F16/1805G06F16/1865H04L9/0637H04L9/32
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 10,929,473
App. No.
16/144,861
Filed
Sep 27, 2018
Granted
Feb 23, 2021
Kind
B2
Art Unit
2154
USPC
707/715
Abstract

Systems and methods for indexing blockchain data in a blockchain system so that search may proceed more quickly, efficiently, and reliably in all of the blockchain peers. These systems and methods receive a set of transactions from one or more transaction blocks of a blockchain, wherein the transactions in the set have been validated by one or more peer systems of the blockchain. The systems and methods further generate an index to one or more fields of one or more transactions in the set of transactions of the transaction block generate an index representative of at least one field in the set of transactions of the transaction block and provide the generated index for validation by a peer system of the blockchain. After receiving verification from at least a threshold number of peer systems that the generated index has been validated by the peer system, these systems and methods store the generated index as an index block in the block chain.

Claims (61)

1. A method comprising:

receiving a set of transactions of a transaction block of a blockchain, wherein the set of transactions have been validated by one or more peer systems of the blockchain;

generating, by a processing device, an index to one or more fields of one or more transactions of the transaction block;

providing the generated index for validation by another peer system of the blockchain;

receiving verification from at least a threshold number of peer systems that the generated index has been validated by the another peer system;

receiving a reward based on validation of the generated index by the another peer system; and

storing, by the processing device, the generated index as an index block in the block chain.

2. The method of claim 1 , wherein the generated index is representative of a first subset of the set of transactions, wherein the method further comprises generating a second index representative of a second subset of the set of transactions.

3. The method of claim 1 , further comprising using a distributed consensus algorithm to add the index block to the blockchain and storing a hash of the index block in the blockchain to preserve its immutability.

4. The method of claim 1 , further comprising:

receiving a query based on a field that is present in one or more transactions stored in the blockchain, wherein the query specifies a value or values of the field; and

searching for transactions in which the field has the specified value or values, by searching in the index block of the blockchain.

5. The method of claim 4 , further comprising:

identifying a responsive transaction block associated with the index block that satisfies the query based on a field; and

searching the transactions within the responsive transaction block for transactions satisfying the query.

6. The method of claim 1 , further comprising:

receiving, from a second peer system, a proposed index block of a second set of transactions of a second block of the blockchain;

determining that the proposed index block is a complete and consistent index of the second set of transactions; and

providing an indication to the second peer system that the proposed index block has been validated.

7. The method of claim 6 , further comprising generating a hash of the proposed index block provided by the second peer system.

8. The method of claim 1 , wherein generating the index further comprises

generating an index for a first subset of fields in the transactions of the block; and

generating the index block without an index for a second subset of fields in the transactions of the block.

9. A blockchain system comprising:

a memory; and

a processing device, operatively coupled to the memory, to:

receive a set of transactions of a transaction block of a blockchain, wherein the set of transactions have been validated by one or more peer systems of the blockchain;

generate, an index to one or more fields of one or more transactions in the set of transactions of the transaction block, wherein to generate the index, the processor is further to:

generate an index for a first subset of fields in the transactions of the block: and

generate an index block without an index for a second subset of fields in the transactions of the block;

provide the generated index for validation by another peer system of the blockchain;

receive verification from at least a threshold number of peer systems that the generated index has been validated by the another peer system; and

store the generated index as the index block in the block chain.

10. The blockchain system of claim 9 , wherein the generated index is representative of a first subset of the set of transactions, wherein the method further comprises generating a second index representative of a second subset of the set of transactions.

11. The blockchain system of claim 9 , wherein the processor is further to use a distributed consensus algorithm to add the index block to the blockchain and storing a hash of the index block in the blockchain to preserve its immutability.

12. The blockchain system of claim 9 , wherein the processor is further to:

receive a query based on a field that is present in one or more transactions stored in the blockchain, wherein the query specifies a value or values of the field; and

search for transactions in which the field has the specified value or values, by searching in the index block of the blockchain.

13. The blockchain system of claim 12 , wherein the processor is further to:

identify a responsive transaction block associated with the index block that satisfies the query for the field; and

search the transactions within the responsive transaction block for transactions satisfying the query.

14. The blockchain system of claim 9 , wherein the processor is further to:

receive, from a second peer system, a proposed index block of a second set of transaction of a second block of the blockchain;

determine that the proposed index block is a complete and consistent index of the second set of transactions; and

provide an indication to the second peer system that the proposed index block has been validated.

15. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by a processing device, cause the processing device to:

receive a set of transactions of a transaction block of a blockchain, wherein the set of transactions have been validated by one or more peer systems of the blockchain;

generate, an index to one or more fields of one or more transactions in the set of transactions of the transaction block, wherein to generate the index, the processor is further to:

generate an index for a first subset of fields in the transactions of the block; and

generate an index block without an index for a second subset of fields in the transactions of the block;

provide the generated index for validation by another peer system of the blockchain;

receive verification from at least a threshold number of peer systems that the generated index has been validated by the another peer system; and

store, the generated index as the index block in the block chain.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the processing device is further to: receive a query based on a field that is present in one or more transactions stored in the blockchain, wherein the query specifies a value or values of the; and search for transactions in which the field has the specified value or values, by searching in the index block of the blockchain.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the processor is further to:

identify a responsive transaction block associated with the index block that satisfies the query for the field; and

search the transactions within the responsive transaction block for transactions satisfying the query.

18. The non-transitory computer-readable storage medium system of claim 15 , wherein the processor is further to:

receive, from a second peer system, a proposed index block of a second set of transaction of a second block of the blockchain;

determine that the proposed index block is a complete and consistent index of the second set of transactions; and

provide an indication to the second peer system that the proposed index block has been validated.

Assignments (9)
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760/0389 Recorded Feb 13, 2024
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: XEROX CORPORATION
Reel/Frame 068261/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
SECURITY INTEREST Recorded Jun 22, 2023
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064760/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2019
From: BIER, ERIC A.; RANE, SHANTANU
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 048728/0723 →
Continuity (1)
Related Publication 20200104428A1 · Apr 2, 2020