IP Library Granted Patent US 10,747,744
Granted Patent B2
US 10,747,744 · App. 15/728,991 · Granted Aug 18, 2020

Distributed ledger comprising snapshots

Inventors: Giuseppe Ventura (New York, NY); Jeffrey Tangowski (New York, NY)
Assignee: AlphaPoint
G06F16/235G06F3/065G06F3/067G06F3/0619G06F11/1448G06F11/1458G06F11/2025G06F16/178G06F16/27G06Q10/087G06Q20/3674G06Q20/3829H04L9/0841H04L9/3013G06F2201/84G06F2201/85
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,747,744
App. No.
15/728,991
Granted
Aug 18, 2020
Kind
B2
Abstract

A snapshot of a distributed ledger is generated, wherein the distributed ledger is stored by a plurality of node computing entities. A first node computing entity reads current states of one or more domain objects from a local cache stored by the node computing entity and corresponding to an application operating on the node computing entity. A snapshot record comprising the current states of the one or more domain objects is generated and written to a segment data file. The snapshot record is posted to the distributed ledger as part of a block.

Claims (38)

1. A method for generating a snapshot of a distributed ledger, the distributed ledger stored by a plurality of node computing entities, the method comprising:

reading, by a first node computing entity of the plurality of node computing entities and comprising at least one processor, a memory, and a communications interface configured to communicate via at least one network, current states of a plurality of domain objects from a local cache stored by the node computing entity and corresponding to an application operating on the node computing entity, wherein (a) a domain object is a physical or non-physical item associated with a state that is transformable by occurrence of an event corresponding to the distributed ledger and (b) the distributed ledger is a segmented distributed ledger;

creating, by the first node computing entity, a new segment root block, wherein the new segment root block (a) comprises the current states and (b) is a root block of a new segment of the distributed ledger;

closing, by the first node computing entity, a current segment data file stored in the memory and storing blocks of a current segment of the distributed ledger;

opening, by the first node computing entity, a new segment data file in the memory for storing blocks of the new segment of the distributed ledger;

writing, by the first node computing entity, the new segment root block to the new segment data file; and

posting, by the first node computing entity, the new segment root block to the distributed ledger.

2. The method of claim 1 , wherein responsive to receiving the new segment root block via the distributed ledger, a second node computing entity of the plurality of node computing entities (a) closes a second current segment data file stored by the second node computing entity, (b) opens a second new segment data file, and (c) writes the new segment root block to the second new segment data file.

3. The method of claim 2 , wherein upon restart, the second node computing entity reads the new segment root block to determine the state of one or more domain objects of the plurality of domain objects based on the new segment root block.

4. The method of claim 3 , wherein, after reading the new segment root block, the second node computing entity requests any blocks written to the distributed ledger since the second node computing entity started to restart.

5. The method of claim 1 , wherein the new segment root block is formatted according to a common block structure.

6. The method of claim 1 , wherein the snapshot corresponds to the state cache of an application operating on the first node computing entity at the time the snapshot is generated.

7. The method of claim 1 , wherein when a new node computing entity is added to the plurality of node computing entities, the new node computing entity receives and reads the new segment root block to determine the state of one or more domain objects of the plurality of domain objects in the distributed ledger.

8. An apparatus for generating a snapshot of a distributed ledger, the distributed ledger stored by a plurality of node computing entities, the apparatus being one of the plurality of node computing entities, the apparatus comprising at least one processor, a communications interface configured for communicating via at least one network, and at least one memory storing computer program code, the at least one memory and the computer program code configured to, with the processor, cause the apparatus to at least:

read current states of a plurality of domain objects from a local cache stored by the node computing entity and corresponding to an application operating on the node computing entity, wherein (a) a domain object is a physical or non-physical item associated with a state that is transformable by occurrence of an event corresponding to the distributed ledger and (b) the distributed ledger is a segmented distributed ledger;

create a new segment root block, wherein the new segment root block (a) comprises the current states and (b) is a root block of a new segment of the distributed ledger;

close a current segment data file stored in the memory and storing blocks of a current segment of the distributed ledger;

open a new segment data file in the memory for storing blocks of the new segment of the distributed ledger;

write the new segment root block to the new segment data file; and

post the new segment root block to the distributed ledger.

9. The apparatus of claim 8 , wherein responsive to receiving the new segment root block via the distributed ledger, a second node computing entity of the plurality of node computing entities (a) closes a second current segment data file stored by the second node computing entity, (b) opens a second new segment data file, and (c) writes the new segment root block to the second new segment data file.

10. The apparatus of claim 9 , wherein upon restart, the second node computing entity reads the new segment root block to determine the state of one or more domain objects of the plurality of domain objects based on the new segment root block.

11. The apparatus of claim 10 , wherein, after reading the new segment root block, the second node computing entity requests any blocks written to the distributed ledger since the second node computing entity started to restart.

12. The apparatus of claim 8 , wherein the new segment root block is formatted according to a common block structure.

13. The apparatus of claim 8 , wherein the snapshot corresponds to the state cache of an application operating on the first node computing entity at the time the snapshot is generated.

14. The apparatus of claim 8 , wherein when a new node computing entity is added to the plurality of node computing entities, the new node computing entity receives and reads the new segment root block to determine the state of one or more domain objects of the plurality of domain objects in the distributed ledger.

15. A computer program product for generating a snapshot of a distributed ledger, the distributed ledger stored by a plurality of node computing entities, the computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program code instructions stored therein, the computer-executable program code instructions comprising program code instructions configured to, when executed by a processor of a node computing entity of the plurality of node computing entities:

read current states of a plurality of domain objects from a local cache stored by the node computing entity and corresponding to an application operating on the node computing entity, wherein (a) a domain object is a physical or non-physical item associated with a state that is transformable by occurrence of an event corresponding to the distributed ledger and (b) the distributed ledger is a segmented distributed ledger;

create a new segment root block, wherein the new segment root block (a) comprises the current states and (b) is a root block of a new segment of the distributed ledger;

close a current segment data file stored in the memory and storing blocks of a current segment of the distributed ledger;

open a new segment data file in the memory for storing blocks of the new segment of the distributed ledger;

write the new segment root block to the new segment data file; and

post the new segment root block to the distributed ledger.

16. The computer program product of claim 15 , wherein responsive to receiving the new segment root block via the distributed ledger, a second node computing entity of the plurality of node computing entities (a) closes a second current segment data file stored by the second node computing entity, (b) opens a second new segment data file, and (c) writes the new segment root block to the second new segment data file.

17. The computer program product of claim 16 , wherein upon restart, the second node computing entity reads the new segment root block to determine the state of one or more domain objects of the plurality of domain objects based on the new segment root block.

18. The computer program product of claim 17 , wherein, after reading the new segment root block, the second node computing entity requests any blocks written to the distributed ledger since the second node computing entity started to restart.

19. The computer program product of claim 15 , wherein the new segment root block is formatted according to a common block structure.

20. The computer program product of claim 15 , wherein when a new node computing entity is added to the plurality of node computing entities, the new node computing entity receives and reads the new segment root block to determine the state of one or more domain objects of the plurality of domain objects in the distributed ledger.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2017
From: VENTURA, GIUSEPPE; TANGOWSKI, JEFFREY
To: ALPHAPOINT
Reel/Frame 043873/0034 →
Continuity (6)
Continuation 15728689 · Oct 10, 2017
Provisional Application 62406059 · Oct 10, 2016
Provisional Application 62408336 · Oct 14, 2016
Provisional Application 62408339 · Oct 14, 2016
Provisional Application 62408344 · Oct 14, 2016
Related Publication 20180101448A1 · Apr 12, 2018