US11381573B2ActiveUtilityA1

Parallel execution of transactions in a blockchain network based on smart contract whitelists

88
Assignee: ADVANCED NEW TECHNOLOGIES CO LTDPriority: Dec 28, 2018Filed: Feb 1, 2021Granted: Jul 5, 2022
Est. expiryDec 28, 2038(~12.5 yrs left)· nominal 20-yr term from priority
H04L 9/50G06F 9/5038H04L 63/102H04L 9/3236G06F 9/4881H04L 63/101G06Q 20/3827G06F 2209/484G06Q 20/38G06F 9/466G06Q 20/389G06Q 20/3829H04L 2209/38
88
PatentIndex Score
2
Cited by
70
References
17
Claims

Abstract

Implementations of this specification include identifying a plurality of transactions to be executed in the blockchain, wherein the transactions are arranged in an execution order, wherein the transactions include one or more smart contract calls to smart contracts each having a whitelist identifying one or more accounts that are authorized to execute the smart contract, and wherein the execution order includes a smart contract call to a smart contract that does not have a whitelist arranged after the plurality of transactions; identifying groups of transactions within the plurality of transactions; instructing nodes of the blockchain network to execute each of the groups of transactions in parallel; determining that the nodes of the blockchain network have completed executing all of the groups of transactions; and in response, instructing the nodes of the blockchain network to execute the smart contract call that does not include a whitelist.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer-implemented method for parallel execution of blockchain transactions comprising:
 identifying, by one or more processors, a plurality of transactions to be executed in a blockchain maintained by a blockchain network, wherein transactions broadcast to the blockchain network are received, wherein the plurality of transactions are arranged in an execution order, wherein the plurality of transactions include one or more smart contract calls to one or more smart contracts, each of the one or more smart contract calls being associated with a whitelist identifying one or more accounts that are authorized to execute the respective smart contract called by the each of the one or more smart contract calls, and wherein the execution order includes a smart contract call to a whitelist-free smart contract following the plurality of transactions; 
 identifying, by the one or more processors, groups of transactions within the plurality of transactions, wherein the transactions in each group are associated with a particular set of accounts in the blockchain network, and wherein the particular set of accounts associated with each of the one or more smart contract calls is determined based on the whitelist associated with the each of the one or more smart contract calls; 
 instructing, by the one or more processors, nodes of the blockchain network to execute each of the groups of transactions in parallel, wherein instructing nodes of the blockchain network to execute each of the groups of transactions in parallel comprises sending a message to the nodes over a network and executing each group of transactions includes executing the transactions within the group serially and according to the execution order; 
 determining, by the one or more processors, that the nodes of the blockchain network have completed executing all of the groups of transactions within the plurality of transactions by determining that all transactions in the plurality of transactions have been included in one or more blocks stored in the blockchain; and 
 in response to determining that the nodes of the blockchain network have completed executing all of the groups of transactions within the plurality of transactions, instructing, by the one or more processors, the nodes of the blockchain network to execute the smart contract call that is associated with the whitelist-free smart contract, wherein the smart contract call to the whitelist-free smart contract representing a synchronization point where parallel execution converges for all of the groups of transactions within the plurality of transactions. 
 
     
     
       2. The method of  claim 1 , wherein instructing nodes of the blockchain network to execute each of the groups of transactions in parallel includes instructing a first set of nodes to execute a first group of transactions and instructing a first set of nodes to execute a second group of transactions. 
     
     
       3. The method of  claim 1 , wherein the whitelist is included within a set of executable instructions associated with each smart contract. 
     
     
       4. The method of  claim 1 , wherein the whitelist is separate from a set of executable instructions associated with each smart contract. 
     
     
       5. The method of  claim 1 , wherein the whitelist includes an identification of the one or more accounts that are authorized to access each smart contract. 
     
     
       6. The method of  claim 1 , wherein the whitelist comprises a reference to a location external to each smart contract that stores the one or more accounts that are authorized to access each smart contract. 
     
     
       7. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform one or more operations for parallel execution of blockchain transactions, wherein the one or more operations comprise:
 identifying a plurality of transactions to be executed in a blockchain maintained by a blockchain network, wherein transactions broadcast to the blockchain network are received, wherein the plurality of transactions are arranged in an execution order, wherein the plurality of transactions include one or more smart contract calls to one or more smart contracts, each of the one or more smart contract calls being associated with a whitelist identifying one or more accounts that are authorized to execute the respective smart contract called by the each of the one or more smart contract calls, and wherein the execution order includes a smart contract call to a or more smart contract calls, and wherein the execution order includes a smart contract call to a whitelist-free smart contract following the plurality of transactions; 
 identifying groups of transactions within the plurality of transactions, wherein the transactions in each group are associated with a particular set of accounts in the blockchain network, and wherein the particular set of accounts associated with each of the one or more smart contract calls is determined based on the whitelist associated with the each of the one or more smart contract calls; 
 instructing nodes of the blockchain network to execute each of the groups of transactions in parallel, wherein instructing nodes of the blockchain network to execute each of the groups of transactions in parallel comprises sending a message to the nodes over a network and executing each group of transactions includes executing the transactions within the group serially and according to the execution order; 
 determining that the nodes of the blockchain network have completed executing all of the groups of transactions within the plurality of transactions by determining that all transactions in the plurality of transactions have been included in one or more blocks stored in the blockchain; and 
 in response to determining that the nodes of the blockchain network have completed executing all of the groups of transactions within the plurality of transactions, instructing the nodes of the blockchain network to execute the smart contract call that is associated with the whitelist-free smart contract, wherein the smart contract call to the whitelist-free smart contract representing a synchronization point where parallel execution converges for all of the groups of transactions within the plurality of transactions. 
 
     
     
       8. The non-transitory, computer-readable medium of  claim 7 , wherein instructing nodes of the blockchain network to execute each of the groups of transactions in parallel includes instructing a first set of nodes to execute a first group of transactions and instructing a first set of nodes to execute a second group of transactions. 
     
     
       9. The non-transitory, computer-readable medium of  claim 7 , wherein the whitelist is included within a set of executable instructions associated with each smart contract. 
     
     
       10. The non-transitory, computer-readable medium of  claim 7 , wherein the whitelist is separate from a set of executable instructions associated with each smart contract. 
     
     
       11. The non-transitory, computer-readable medium of  claim 7 , wherein the whitelist includes an identification of the one or more accounts that are authorized to access each smart contract. 
     
     
       12. The non-transitory, computer-readable medium of  claim 7 , wherein the whitelist comprises a reference to a location external to each smart contract that stores the one or more accounts that are authorized to access each smart contract. 
     
     
       13. 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: 
 identifying a plurality of transactions to be executed in a blockchain maintained by a blockchain network, wherein transactions broadcast to the blockchain network are received, wherein the plurality of transactions are arranged in an execution order, wherein the plurality of transactions include one or more smart contract calls to one or more smart contracts, each of the one or more smart contract calls being associated with a whitelist identifying one or more accounts that are authorized to execute the respective smart contract called by the each of the one or more smart contract calls, and wherein the execution order includes a smart contract call to a whitelist-free smart contract following the plurality of transactions; 
 identifying groups of transactions within the plurality of transactions, wherein the transactions in each group are associated with a particular set of accounts in a blockchain network, and wherein the particular set of accounts associated with each of the one or more smart contract calls is determined based on the whitelist associated with the each of the one or more smart contract calls; 
 instructing nodes of the blockchain network to execute each of the groups of transactions in parallel, wherein instructing nodes of the blockchain network to execute each of the groups of transactions in parallel comprises sending a message to the nodes over a network and executing each group of transactions includes executing the transactions within the group serially and according to the execution order; 
 determining that the nodes of the blockchain network have completed executing all of the groups of transactions within the plurality of transactions by determining that all transactions in the plurality of transactions have been included in one or more blocks stored in the blockchain; and 
 in response to determining that the nodes of the blockchain network have completed executing all of the groups of transactions within the plurality of transactions, instructing the nodes of the blockchain network to execute the smart contract call that is associated with the whitelist-free smart contract, wherein the smart contract call to the whitelist-free smart contract representing a synchronization point where parallel execution converges for all of the groups of transactions within the plurality of transactions. 
 
     
     
       14. The computer-implemented system of  claim 13 , wherein instructing nodes of the blockchain network to execute each of the groups of transactions in parallel includes instructing a first set of nodes to execute a first group of transactions and instructing a first set of nodes to execute a second group of transactions. 
     
     
       15. The computer-implemented system of  claim 13 , wherein the whitelist is included within a set of executable instructions associated with each smart contract. 
     
     
       16. The computer-implemented system of  claim 13 , wherein the whitelist is separate from a set of executable instructions associated with each smart contract. 
     
     
       17. The computer-implemented system of  claim 13 , wherein the whitelist comprises a reference to a location external to each smart contract that stores the one or more accounts that are authorized to access each smart contract.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.