Parallel execution of blockchain transactions
First Claim
1. A computer-based method comprising:
- accessing, by a processor, a data file shared by all computing nodes participating in a system based on a blockchain protocol, the data file including transactions and blocks, where the transactions are data to be stored in the blockchain and the blocks are records that confirm when and in what sequence certain transaction became journaled as part of the blockchain;
receiving at least one request to include a plurality of transactions each with additional data as a new block on the blockchain;
using criteria that includes at least one of a settable period of time, a settable number of transactions received or a combination of both to determine a quantity of the plurality of transactions go into a new block;
accessing a directed acyclic graph (DAG) that is constructed based on inter-dependencies among inputs and outputs of the plurality of transactions;
dividing, up to the quantity which has been determined, the plurality of transactions for the new block into a set of two or more independent tasks that can be executed in parallel based on the DAG;
scheduling each of the independent tasks that can be managed independently by a scheduler;
executing each of the independent tasks; and
adding results from each of the independent tasks as the new block on the blockchain.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, method, and computer readable storage medium for accessing a data file shared by all computing nodes participating in a system based on a blockchain protocol. The data file includes transactions and blocks. The transactions are data to be stored in the blockchain and the blocks are records that confirm when and in what sequence certain transaction became journaled as part of the blockchain. A request is received to include a plurality of transactions each with additional data as a new block on the blockchain. Criteria that includes a settable period of time or a settable number of transactions received is used to determine how many transactions go into a new block. A directed acyclic graph (DAG) is accessed that is constructed based on inter-dependencies among the transactions. The transactions for the new block are divided into a set of two or more independent tasks that can be executed in parallel based on the DAG. The independent tasks that can be managed independently are executed.
27 Citations
20 Claims
-
1. A computer-based method comprising:
-
accessing, by a processor, a data file shared by all computing nodes participating in a system based on a blockchain protocol, the data file including transactions and blocks, where the transactions are data to be stored in the blockchain and the blocks are records that confirm when and in what sequence certain transaction became journaled as part of the blockchain; receiving at least one request to include a plurality of transactions each with additional data as a new block on the blockchain; using criteria that includes at least one of a settable period of time, a settable number of transactions received or a combination of both to determine a quantity of the plurality of transactions go into a new block; accessing a directed acyclic graph (DAG) that is constructed based on inter-dependencies among inputs and outputs of the plurality of transactions; dividing, up to the quantity which has been determined, the plurality of transactions for the new block into a set of two or more independent tasks that can be executed in parallel based on the DAG; scheduling each of the independent tasks that can be managed independently by a scheduler; executing each of the independent tasks; and adding results from each of the independent tasks as the new block on the blockchain. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
a memory; a processor communicatively coupled to the memory, where the processor is configured to perform accessing, by a processor, a data file shared by all computing nodes participating in a system based on a blockchain protocol, the data file including transactions and blocks, where the transactions are data to be stored in the blockchain and the blocks are records that confirm when and in what sequence certain transaction became journaled as part of the blockchain; receiving at least one request to include a plurality of transactions each with additional data as a new block on the blockchain; using criteria that includes at least one of a settable period of time, a settable number of transactions received or a combination of both to determine a quantity of the plurality of transactions go into a new block; accessing a directed acyclic graph (DAG) that is constructed based on inter-dependencies among inputs and outputs of the plurality of transactions; dividing, up to the quantity which has been determined, the plurality of transactions for the new block into a set of two or more independent tasks that can be executed in parallel based on the DAG; scheduling each of the independent tasks that can be managed independently by a scheduler; executing each of the independent tasks; and adding results from each of the independent tasks as the new block on the blockchain. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer program product comprising:
- a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing accessing, by a processor, a data file shared by all computing nodes participating in a system based on a blockchain protocol, the data file including transactions and blocks, where the transactions are data to be stored in the blockchain and the blocks are records that confirm when and in what sequence certain transaction became journaled as part of the blockchain;
receiving at least one request to include a plurality of transactions each with additional data as a new block on the blockchain;
using criteria that includes at least one of a settable period of time, a settable number of transactions received or a combination of both to determine a quantity of the plurality of transactions go into a new block;
accessing a directed acyclic graph (DAG) that is constructed based on inter-dependencies among inputs and outputs of the plurality of transactions;
dividing, up to the quantity which has been determined, the plurality of transactions for the new block into a set of two or more independent tasks that can be executed in parallel based on the DAG;
scheduling each of the independent tasks that can be managed independently by a scheduler;
executing each of the independent tasks; and
adding results from each of the independent tasks as the new block on the blockchain. - View Dependent Claims (19, 20)
- a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing accessing, by a processor, a data file shared by all computing nodes participating in a system based on a blockchain protocol, the data file including transactions and blocks, where the transactions are data to be stored in the blockchain and the blocks are records that confirm when and in what sequence certain transaction became journaled as part of the blockchain;
Specification