Performing parallel execution of transactions in a distributed ledger system
AssigneeAlibaba Group Holding Limited
InventorsGuilu Xie, Ning Xia
Life of this patent
Estimating the term…
Abstract
Disclosed herein are methods, systems, and apparatus, including computer programs encoded on computer storage media, for performing parallel execution of transactions by a network node in a blockchain network. One of the methods includes receiving multiple transactions, grouping all first-type transactions in the multiple transactions into a group of first-type transactions, dividing the group of first-type transactions into one or more subgroups, and executing the group of first-type transactions by executing the one or more subgroups of the group of first-type transactions in parallel.
Claims24
A computer-implemented method for executing a plurality of transactions in a blockchain network, wherein the blockchain network comprises a plurality of network nodes, the method comprising:
- receiving, by a network node of the plurality of network nodes, a plurality of transactions, wherein the plurality of transactions comprise a plurality of first-type transactions and a plurality of second-type transactions;
- grouping, by the network node, all first-type transactions in the plurality of transactions into a group of first-type transactions and all second-type transactions in the plurality of transactions into a group of second-type transactions;
- dividing, by the network node, the group of first-type transactions into one or more subgroups, wherein:
- each subgroup of the group of first-type transactions comprises one or more first-type transactions that affect one or more common transaction entities by execution of the one or more first-type transactions, and
- any first-type transaction in any subgroup does not affect any common transaction entity of any first-type transaction in any other subgroup;
- executing, by the network node, the group of first-type transactions by executing the one or more subgroups of the group of first-type transactions in parallel on the network node, wherein the one or more first-type transactions within each of the one or more subgroups are executed in series;
- and
- executing, by the network node, the group of second-type transactions in series with the group of first-type transactions according to a protocol used by the plurality of network nodes of the blockchain network comprising:
- determining a serial order of executing the one or more first-type transactions within each of the one or more subgroups;
- determining a serial order of executing the second-type transactions within a group of second-type transactions;
- and
- determining whether to execute the group of first-type transactions before or after executing the group of second-type transactions.
A non-transitory, computer-readable storage medium storing one or more instructions executable by a computer system to perform operations for executing a plurality of transactions in a blockchain network, wherein the blockchain network comprises a plurality of network nodes, the operations comprising:
- receiving, by a network node of the plurality of network nodes, a plurality of transactions, wherein the plurality of transactions comprise a plurality of first-type transactions and a plurality of second-type transactions;
- grouping, by the network node, all first-type transactions in the plurality of transactions into a group of first-type transactions and all second-type transactions in the plurality of transactions into a group of second-type transactions;
- dividing, by the network node, the group of first-type transactions into one or more subgroups, wherein:
- each subgroup of the group of first-type transactions comprises one or more first-type transactions that affect one or more common transaction entities by execution of the one or more first-type transactions, and
- any first-type transaction in any subgroup does not affect any common transaction entity of any first-type transaction in any other subgroup;
- executing, by the network node, the group of first-type transactions by executing the one or more subgroups of the group of first-type transactions in parallel on the network node, wherein the one or more first-type transactions within each of the one or more subgroups are executed in series;
- and
- executing, by the network node, the group of second-type transactions in series with the group of first-type transactions according to a protocol used by the plurality of network nodes of the blockchain network comprising:
- determining a serial order of executing the one or more first-type transactions within each of the one or more subgroups;
- determining a serial order of executing the second-type transactions within a group of second-type transactions;
- and
- determining whether to execute the group of first-type transactions before or after executing the group of second-type transactions.
A computer-implemented system, comprising:
- one or more computers;
- and
- one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform one or more operations comprising:
- receiving, by a network node of a plurality of network nodes of a blockchain network, a plurality of transactions, wherein the plurality of transactions comprise a plurality of first-type transactions and a plurality of second-type transactions;
- grouping, by the network node, all first-type transactions in the plurality of transactions into a group of first-type transactions and all second-type transactions in the plurality of transactions into a group of second-type transactions;
- dividing, by the network node, the group of first-type transactions into one or more subgroups, wherein:
- each subgroup of the group of first-type transactions comprises one or more first-type transactions that affect one or more common transaction entities by execution of the one or more first-type transactions, and
- any first-type transaction in any subgroup does not affect any common transaction entity of any first-type transaction in any other subgroup;
- executing, by the network node, the group of first-type transactions by executing the one or more subgroups of the group of first-type transactions in parallel on the network node, wherein the one or more first-type transactions within each of the one or more subgroups are executed in series;
- and
- executing, by the network node, the group of second-type transactions in series with the group of first-type transactions according to a protocol used by the plurality of network nodes of the blockchain network comprising:
- determining a serial order of executing the one or more first-type transactions within each of the one or more subgroups;
- determining a serial order of executing the second-type transactions within a group of second-type transactions;
- and
- determining whether to execute the group of first-type transactions before or after executing the group of second-type transactions.
Dependencies are inferred from the claim text.