| CPC G06F 16/2379 (2019.01) [G06F 16/27 (2019.01); H04L 9/0637 (2013.01); H04L 9/50 (2022.05)] | 20 Claims |

|
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.
|