IP Library › Granted Patent US 12,141,125
Granted Patent B2
US 12,141,125 · App. 17/035,912 · Granted Nov 12, 2024

Transaction reordering in blockchain

Inventors: Yoav Tock (Haifa, IL); Hagar Meir (Tel Aviv, IL); Artem Barger (Haifa, IL); Yacov Manevich (Beer Sheva, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F16/2379G06F16/27H04L9/0637H04L9/50
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 12,141,125
App. No.
17/035,912
Granted
Nov 12, 2024
Kind
B2
Abstract

A processor may endorse the group of transactions received from one or more clients. The processor may provide a read-set and a write-set for each transaction of the group of transactions. The processor may order the group of transactions at an ordering service. The ordering service may have a group of orderers and may order the group of transactions. The order of the transactions may be based on the read-set and the write-set of each transaction. The processor may commit the group of transactions to the blockchain.

Claims (72)

1. A method for ordering a group of transactions on a blockchain, the method comprising:

endorsing, by a processor, the group of transactions received from one or more clients;

generating a read-set and a write-set for each transaction of the group of transactions;

ordering the group of transactions at an ordering service, wherein the ordering service utilizes a precedence graph to determine a precedence order using the read-set and write-set of each transaction, wherein the ordering service further includes a skeleton-key database configured to maintain an archive of keys and an archive of versions associated with the archive of keys, wherein the skeleton-key database is separate from a world-state database associated with the blockchain, and wherein a transaction schedule is based on the skeleton-key database and the read-set and write-set of each transaction of the group of transactions;

determining a sufficient order by associating each transaction with its precedence order using one or more directional arrows in the precedence graph, wherein the one or more directional arrows each depict an edge imbalance between each transaction;

removing one or more transactions with a backward edge using a vertex cover problem by repeatedly finding the one or more transactions with a largest number of edges pointing backwards and continuously removing a corresponding transaction and all edges incident to the corresponding transaction until there are no remaining edges pointing backwards;

identifying a conflict-free transaction set and a rejected transaction set from the group of transactions using the precedence graph in which all the backward edge are removed, wherein the ordered group of transactions minimizes the number of transactions removed by the rejected transaction set from the conflict-free transaction set; and

commit the conflict-free transaction set and a list of the rejected transaction set to the blockchain.

2. The method of claim 1 , wherein ordering the group of transactions at the ordering service comprises:

verifying each transaction of the group of transactions, wherein verifying each transaction includes inspecting each transaction for at least one necessary component.

3. The method of claim 1 , wherein ordering the group of transactions at the ordering service comprises:

identifying a precedence order within the group of transactions based on the read-set and the write-set of each transaction.

4. The method of claim 3 , wherein ordering the group of transactions at the ordering service further comprises:

determining the transaction schedule from the precedence order, wherein the conflict free transaction set and the rejected transaction set are associated with the transaction schedule.

5. The method of claim 4 , wherein each orderer of the group of orderers independently determines the transaction schedule from the precedence order.

6. The method of claim 5 , wherein determining the transaction schedule further includes:

analyzing each of the transaction schedules independently processed by each orderer of the group of orderers; and

identifying whether a consensus on the transaction schedule has been reached.

7. The method of claim 6 , wherein the consensus is a predetermined portion of orderers from the group of orderers agreeing on the conflict-free transaction set and the rejected transaction set.

8. The method of claim 4 , further comprising:

identifying a particular transaction is part of the rejected transaction set of the transaction schedule; and

providing a rejection message to the one or more clients associated with the particular transaction.

9. The method of claim 8 , wherein the rejection message includes a transaction identifier, a number of a reject transaction block where the rejected transaction set is recorded, and a hash of a new block.

10. The method of claim 8 , wherein one or more orderers from the group of orderers, automatically send the one or more clients associated with the particular transaction the rejection message.

11. The method of claim 8 , wherein a quorum of the group of orderers agree on rejecting the particular transaction as part of the rejected transaction set and the ordering service sends the one or more clients associated with the particular transaction the rejection message.

12. The method of claim 1 , wherein the ordering service is configured to determine if any transaction of the group of transactions at the ordering service conflicts with a previously committed transaction based on the skeleton-key database and the read-set and the write-set of each transaction of the group of transactions.

13. The method of claim 1 , wherein ordering the group of transactions at the ordering service further comprises:

cutting a valid transaction block having a transaction schedule, wherein the transaction schedule includes a conflict-free transaction set and a rejected transaction set;

broadcasting the valid transaction block to a group of peers;

generating a reject transaction block, wherein the reject transaction block includes the rejected transaction set; and

committing the reject transaction block to a reject chain in the ordering service.

14. The method of claim 13 , further comprising:

generating a Merkle-tree of the rejected transaction set;

identifying a block number of the valid transaction block; and

including the Merkle-tree of the rejected transaction set and the block number of the valid transaction block in the reject transaction block.

15. The method of claim 14 , further comprises:

exposing an API to fetch the reject transaction block.

16. The method of claim 13 , further comprising:

generating a Merkle-tree from the rejected transaction set of the transaction schedule;

organizing the Merkle-tree into a Merkle-root; and

including the Merkle-root in the transaction schedule of the valid transaction block.

17. A computer system for ordering a group of transactions on a blockchain, the computer system comprising:

one or more computer processors;

one or more computer readable storage media;

computer program instructions;

the computer program instructions being stored on the one or more computer readable storage media for execution by the one or more computer processors; and

the computer program instructions including instructions to:

endorse by a processor, the group of transactions received from one or more clients;

generate a read-set and a write-set for each transaction of the group of transactions;

order the group of transactions at an ordering service, wherein the ordering service utilizes a precedence graph to determine a precedence order using the read-set and write-set of each transaction, wherein the ordering service further includes a skeleton-key database configured to maintain an archive of keys and an archive of versions associated with the archive of keys, wherein the skeleton-key database is separate from a world-state database associated with the blockchain, and wherein a transaction schedule is based on the skeleton-key database and the read-set and write-set of each transaction of the group of transactions;

determine a sufficient order by associating each transaction with its precedence order using one or more directional arrows in the precedence graph, wherein the one or more directional arrows each depict an edge imbalance between each transaction;

remove one or more transactions with a backward edge using a vertex cover problem by repeatedly finding the one or more transactions with a largest number of edges pointing backwards and continuously removing a corresponding transaction and all edges incident to the corresponding transaction until there are no remaining edges pointing backwards;

identify a conflict-free transaction set and a rejected transaction set from the group of transactions using the precedence graph in which all the backward edge are removed, wherein the ordered group of transactions minimizes the number of transactions removed by the rejected transaction set from the conflict-free transaction set; and

commit the conflict-free transaction set and a list of the rejected transaction set to the blockchain.

18. The computer system of claim 17 , the computer instructions further including instructions to:

cut a valid transaction block having a transaction schedule, wherein the transaction schedule includes a conflict-free transaction set and a rejected transaction set;

broadcast the valid transaction block to a group of peers;

generate a reject transaction block, wherein the reject transaction block includes the rejected transaction set; and

commit the reject transaction block to a reject chain in the ordering service.

19. A computer program product for ordering a group of transactions on a blockchain, the computer program product comprising one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions including instructions to:

endorse by a processor, the group of transactions received from one or more clients;

generate a read-set and a write-set for each transaction of the group of transactions;

order the group of transactions at an ordering service, wherein the ordering service utilizes a precedence graph to determine a precedence order using the read-set and write-set of each transaction, wherein the ordering service further includes a skeleton-key database configured to maintain an archive of keys and an archive of versions associated with the archive of keys, wherein the skeleton-key database is separate from a world-state database associated with the blockchain, and wherein a transaction schedule is based on the skeleton-key database and the read-set and write-set of each transaction of the group of transactions;

determine a sufficient order by associating each transaction with its precedence order using one or more directional arrows in the precedence graph, wherein the one or more directional arrows each depict an edge imbalance between each transaction;

remove one or more transactions with a backward edge using a vertex cover problem by repeatedly finding the one or more transactions with a largest number of edges pointing backwards and continuously removing a corresponding transaction and all edges incident to the corresponding transaction until there are no remaining edges pointing backwards;

identify a conflict-free transaction set and a rejected transaction set from the group of transactions using the precedence graph in which all the backward edge are removed, wherein the ordered group of transactions minimizes the number of transactions removed by the rejected transaction set from the conflict-free transaction set; and

commit the conflict-free transaction set and a list of the rejected transaction set to the blockchain.

20. The computer program product of claim 19 , the program instructions further including instructions to:

cut a valid transaction block having a transaction schedule, wherein the transaction schedule includes a conflict-free transaction set and a rejected transaction set;

broadcast the valid transaction block to a group of peers;

generate a reject transaction block, wherein the reject transaction block includes the rejected transaction set; and

commit the reject transaction block to a reject chain in the ordering service.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2020
From: TOCK, YOAV; MEIR, HAGAR; BARGER, ARTEM; MANEVICH, YACOV
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 053912/0120 →
Continuity (1)
Related Publication 20220100733A1 · Mar 31, 2022