IP Library Granted Patent US 10,339,014
Granted Patent B2
US 10,339,014 · App. 15/279,051 · Granted Jul 2, 2019

Query optimized distributed ledger system

Inventors: Ned M. Smith (Beaverton, OR); Vincent J. Zimmer (Tacoma, WA); Rajesh Poornachandran (Portland, OR); Cedric Cochin (Portland, OR); Igor G. Muttik (Berkhamsted, GB)
Assignee: McAfee, LLC
G06F11/1474G06F11/1451G06F11/1464G06F16/128G06F16/2228G06F16/2255G06F16/2365G06F16/2455G06Q2220/00
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,339,014
App. No.
15/279,051
Granted
Jul 2, 2019
Kind
B2
Abstract

Disclosed herein are distributed ledger systems and methods for efficiently creating and updating a query optimized distributed ledger. In particular, the present disclosure introduces methods and apparatuses for efficiently updating indexes when new blocks are added to the distributed ledger by using snapshots of data and appending new snapshot tables and indexes to previous snapshot tables and indexes.

Claims (98)

1. A method for indexing a distributed ledger, the method comprising:

receiving, with a hardware processor of a data node, a first snapshot of transaction data, wherein the first snapshot of transaction data is data added to the distributed ledger that has not been included in an original master table or an original index of the distributed ledger;

identifying, with a hardware processor of a data node, attributes of the transaction data of the first snapshot; verifying, with the hardware processor, the first snapshot;

copying, with a hardware processor of a data node, the attributes of the transaction data of the first snapshot to a first master table;

constructing, with a hardware processor of a data node, a first index for a first attribute of the transaction data of the first snapshot;

publishing, with a hardware processor of a data node, completion of the first index for the first attribute of the transaction data of the first snapshot;

concatenating the original master table and the first master table;

concatenating the original index and the first index;

receiving a request to query the distributed ledger transaction data; and

processing the query on the indexed attributes.

2. The method of claim 1 , further comprising:

constructing a first index for a second attribute of the transaction data of the first snapshot; and

publishing completion of the first index for the second attribute.

3. The method of claim 2 , further comprising:

repeating the operation of constructing a first index and publishing completion of the first index for each identified attribute of the first snapshot.

4. The method of claim 1 , further comprising:

receiving, with the hardware processor, a second snapshot of transaction data, wherein the second snapshot of transaction data is data added to the distributed ledger that has not been included in the original or first master tables or the original or first indexes of the distributed ledger;

identifying, with the hardware processor, attributes of the transaction data of the second snapshot;

verifying, with the hardware processor, the second snapshot;

copying, with the hardware processor, the attributes of the transaction data of the second snapshot to a second master table;

constructing, with the hardware processor, a second index for the first attribute of the transaction data of the second snapshot; and

publishing, with the hardware processor, completion of the second index for the first attribute of the transaction data of the second snapshot.

5. The method of claim 4 , further comprising:

concatenating the concatenated master table of claim 1 and the second master table; and

concatenating the concatenated index of claim 1 and the second index.

6. The method of claim 5 , further comprising:

receiving, with the hardware processor, a third snapshot of transaction data, wherein the third snapshot of transaction data is data added to the distributed ledger that has not been included in the original, first, or second master tables or the original, first, or second indexes of the distributed ledger;

identifying, with the hardware processor, attributes of the transaction data of the third snapshot;

verifying, with the hardware processor, the third snapshot;

copying, with the hardware processor, the attributes of the transaction data of the third snapshot to a third master table;

constructing, with the hardware processor, a third index for the first attribute of the transaction data of the third snapshot; and

publishing, with the hardware processor, completion of the third index for the first attribute of the transaction data of the third snapshot.

7. The method of claim 6 , further comprising:

concatenating the concatenated master table of claim 5 and the third master table; and

concatenating the concatenated index of claim 5 and the third index for the first attribute.

8. The method of claim 4 , further comprising:

repeating the operation of constructing a second index and publishing completion of the second index for each identified attribute of the second snapshot.

9. The method of claim 8 , further comprising:

concatenating the concatenated index of claim 5 and the second index for each indexed attribute.

10. The method of claim 4 , wherein verifying the transaction data is performed by calculating the delta between the Merkle root of the first snapshot and the Merkle root of the second snapshot.

11. The method of claim 1 , wherein executing the query on the indexed attributes is performed on a plurality of data nodes using distributed query processing.

12. The method of claim 1 , wherein verifying the transaction data is performed by calculating the Merkle root.

13. A system for indexing a distributed ledger, the system comprising:

a transaction node, the transaction node comprising:

memory; and

a hardware processor, wherein the hardware processor of the transaction node is configured to:

broadcast a block of transaction data; and

a data node, the data node comprising:

memory;

and a hardware processor, wherein the hardware processor of the data node is configured to:

receive a first snapshot of transaction data, wherein the first snapshot of transaction data is data added to the distributed ledger that has not been included in a master table or an index of the distributed ledger;

identify attributes of the transaction data of the first snapshot;

verify the first snapshot;

copy the attributes of the transaction data of the first snapshot to a first master table;

construct a first index for a first attribute of the transaction data of the first snapshot; and

publish completion of the first index for the first attribute of the transaction data of the first snapshot;

concatenate the original master table and the first master table;

concatenate the original index and the first index;

receive a request to query the distributed ledger transaction data; and

process the query on the indexed attributes.

14. The system of claim 13 , wherein the hardware processor is further configured to:

repeat the operation of constructing a first index and publishing completion of the first index for each identified attribute of the transaction data of the first snapshot.

15. The system of claim 13 , wherein the hardware processor is further configured to:

receive a second snapshot of transaction data;

identify attributes of the transaction data of the second snapshot;

verify the second snapshot;

copy the attributes of the transaction data of the second snapshot to a second master table;

construct a second index for the first attribute of the transaction data of the second snapshot; and

publish completion of the second index for the first attribute of the second snapshot.

16. The system of claim 15 , wherein the hardware processor is further configured to:

concatenate the first master table and the second master table; and

concatenate the first index and the second index.

17. The system of claim 15 , wherein the hardware processor is further configured to:

repeat the operation of constructing a second index and publishing completion of the second index for each identified attribute of the second snapshot.

18. The system of claim 15 , wherein the hardware processor is further configured to:

repeat the operation of constructing a second index and publishing completion of the second index for each identified attribute of the second snapshot, wherein each data node is assigned to start indexing at a different identified attribute of second snapshot.

19. The system of claim 13 , wherein the hardware processor is further configured to:

repeat the operation of constructing a first index and publishing completion of the first index for each identified attribute of the first snapshot, wherein each data node is assigned to start indexing at a different identified attribute of the first snapshot.

20. One or more machine-readable storage media comprising one or more instructions stored thereon that when executed by at least one processor, cause the at least one processor to:

receive, with a hardware processor of a data node, a first snapshot of transaction data, wherein the first snapshot of transaction data is data added to the distributed ledger that has not been included in an original master table or an original index of the distributed ledger;

identify, with a hardware processor of a data node, attributes of the transaction data of the first snapshot; verifying, with the hardware processor, the first snapshot;

copy, with a hardware processor of a data node, the attributes of the transaction data of the first snapshot to a first master table;

construct, with a hardware processor of a data node, a first index for a first attribute of the transaction data of the first snapshot;

publish, with a hardware processor of a data node, completion of the first index for the first attribute of the transaction data of the first snapshot;

concatenate the original master table and the first master table;

concatenate the original index and the first index;

receive a request to query the distributed ledger transaction data; and

process the query on the indexed attributes.

21. The at least one machine readable medium of claim 20 , further comprising one or more instructions that when executed by the at least one processor, cause the at least one processor to:

receive a second snapshot of transaction data from the distributed ledger;

identify attributes of the transaction data of the second snapshot;

verify the second snapshot;

copy the attributes of the transaction data of the second snapshot to a second master table;

construct a second index for the first attribute of the second snapshot; and

publish completion of the second index for the first attribute of the second snapshot.

22. The media of claim 21 , wherein the instructions are further adapted to cause the at least one processor to:

concatenate the first master table and the second master table; and

concatenate the first index and the second index.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Sep 15, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043969/0057 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: SMITH, NED M.; ZIMMER, VINCENT J.; POORNACHANDRAN, RAJESH; COCHIN, CEDRIC; MUTTIK, IGOR G.
To: MCAFEE, INC.
Reel/Frame 040539/0500 →
Continuity (1)
Related Publication 20180089041A1 · Mar 29, 2018