IP Library › Granted Patent US 11,048,693
Granted Patent B2
US 11,048,693 · App. 16/432,789 · Granted Jun 29, 2021

Resolution of ordering inversions

Inventor: Daniel Ford (Mount Kisco, NY)
Assignee: International Business Machines Corporation
G06F16/2379G06F16/9024
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,048,693
App. No.
16/432,789
Granted
Jun 29, 2021
Kind
B2
Abstract

An example operation may include one or more of monitoring, by a resolution node, transaction sequences on a blockchain network, constructing, by the resolution node, a directed acyclic graph (DAG) based on the transaction sequences, computing, by the resolution node, a total order of the transaction sequences from the DAG, maintaining, by the resolution node, local partial orders in final total orderings of blocks, and resolving, by the resolution node, transaction ordering inversions from the local partial orders.

Claims (34)

1. A system, comprising:

a processor;

a memory on which are stored machine readable instructions that when executed by the processor, cause the processor to:

monitor transaction sequences on a blockchain network;

construct a directed acyclic graph (DAG) based on the transaction sequences;

compute a total order of the transaction sequences from the DAG;

maintain local partial orders in final total orderings of blocks in Merkle DAG data structures; and

resolve transaction ordering inversions from the local partial orders.

2. The system of claim 1 , wherein the instructions further cause the processor to examine a creation order of two blocks with a same consensus timestamp from the Merkle DAG data structures.

3. The system of claim 2 , wherein the instructions further cause the processor to select a block from the two blocks that was created first as the block to be ordered before an other block with the same consensus timestamp to resolve the transaction ordering inversions.

4. The system of claim 3 , wherein the instructions further cause the processor to determine a creation order of the blocks based on creation timestamps of the blocks and based on an index of the blocks when both blocks are created by a same node.

5. The system of claim 3 , wherein the instructions further cause the processor to determine a creation order of the blocks by a path from one block to the other block.

6. The system of claim 1 , wherein the DAG reflects temporal transaction relationships.

7. A method, comprising:

monitoring, by a node, transaction sequences on a blockchain network;

constructing, by the node, a directed acyclic graph (DAG) based on the transaction sequences;

computing, by the node, a total order of the transaction sequences from the DAG;

maintaining, by the node, local partial orders in final total orderings of blocks in Merkle DAG data structures; and

resolving, by the node, transaction ordering inversions from the local partial orders.

8. The method of claim 7 , further comprising examining a creation order of two blocks with a same consensus timestamp from the Merkle DAG data structures.

9. The method of claim 8 , further comprising selecting a block from the two blocks that was created first as the block to be ordered before an other block with the same consensus timestamp to resolve the transaction ordering inversions.

10. The method of claim 9 , further comprising determining a creation order of the blocks based on creation timestamps of the blocks and based on an index of the blocks when both blocks are created by a same node.

11. The method of claim 9 , further comprising determining a creation order of the blocks by a path from one block to the other block.

12. The method of claim 11 , wherein the DAG reflects temporal transaction relationships.

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

monitoring transaction sequences on a blockchain network;

constructing a directed acyclic graph (DAG) based on the transaction sequences;

computing a total order of the transaction sequences from the DAG;

maintaining local partial orders in final total orderings of blocks in Merkle DAG data structures; and

resolving transaction ordering inversions from the local partial orders.

14. The non-transitory computer readable medium of claim 13 , further comprising instructions, that when read by the processor, cause the processor to examine a creation order of two blocks with a same consensus timestamp from the Merkle DAG data structures.

15. The non-transitory computer readable medium of claim 14 , further comprising instructions, that when read by the processor, cause the processor to select a block from the two blocks that was created first as the block to be ordered before an other block with the same consensus timestamp to resolve the transaction ordering inversions.

16. The non-transitory computer readable medium of claim 13 , further comprising instructions, that when read by the processor, cause the processor to determine a creation order of the blocks based on creation timestamps of the blocks and based on an index of the blocks when both blocks are created by a same node.

17. The non-transitory computer readable medium of claim 13 , further comprising instructions, that when read by the processor, cause the processor to determine a creation order of the blocks by a path from one block to the other block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2019
From: FORD, DANIEL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049384/0502 →
Continuity (1)
Related Publication 20200387501A1 · Dec 10, 2020