IP Library Granted Patent US 10,911,461
Granted Patent B2
US 10,911,461 · App. 16/422,192 · Granted Feb 2, 2021

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

Inventors: Ning Xia (Hangzhou, CN); Guilu Xie (Hangzhou, CN); Fuxi Deng (Hangzhou, CN)
Assignee: Advanced New Technologies Co., Ltd.
H04L63/102G06F9/466G06Q20/389H04L9/3236H04L2209/38
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 10,911,461
App. No.
16/422,192
Granted
Feb 2, 2021
Kind
B2
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 (35)

1. A computer-implemented method for parallel execution of transactions in a blockchain network, comprising:

identifying, by one or more processors, a plurality of transactions to be executed in the blockchain network, wherein each of the plurality of transactions is digitally signed with a public encryption key and confirmed by decrypting using a private encryption key corresponding to the public encryption key;

arranging, by the one or more processors, the plurality of transactions in an execution order, wherein the plurality of transactions comprises one or more smart contract calls to one or more smart contracts;

identifying, by the one or more processors, one or more accounts to be affected by the plurality of transactions based upon a whitelist associated with each smart contract that comprises a list of accounts that are authorized to execute the smart contract;

determining, by the one or more processors, groups of transactions within the plurality of transactions based on an account dependency, wherein the account dependency is that transactions in a particular group do not affect any accounts in the blockchain network that are affected by transactions in a different group, and wherein a particular set of accounts associated with each of the one or more smart contract calls to be executed by the groups of transactions is determined based on the whitelists associated with the respective one or more smart contracts;

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 wherein executing the groups of transactions comprises executing the transactions within each 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, wherein determining that the nodes of the blockchain network have completed executing all of the groups of transactions comprises determining that all transactions in the plurality of transactions have been included in one or more blocks stored in a blockchain maintained by the blockchain network; and

in response to determining that the nodes of the blockchain network have completed executing all of the groups of transactions, instructing, by the one or more processors, the nodes of the blockchain network to execute a final smart contract call.

2. The method of claim 1 , wherein the whitelist is included within a set of executable instructions associated with each smart contract.

3. The method of claim 1 , wherein the whitelist is separate from a set of executable instructions associated with each smart contract.

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

5. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations comprising:

identifying a plurality of transactions to be executed in a blockchain network, wherein each of the plurality of transactions is digitally signed with a public encryption key and confirmed by decrypting using a private encryption key corresponding to the public encryption key;

arranging the plurality of transactions in an execution order, wherein the plurality of transactions comprises one or more smart contract calls to one or more smart contracts;

identifying one or more accounts to be affected by the plurality of transactions based upon a whitelist associated with each smart contract that comprises a list of accounts that are authorized to execute the smart contract;

determining groups of transactions within the plurality of transactions based on an account dependency, wherein the account dependency is that transactions in a particular group do not affect any accounts in the blockchain network that are affected by transactions in a different group, and wherein a particular set of accounts associated with each of the one or more smart contract calls to be executed by the groups of transactions is determined based on the whitelists associated with the respective one or more smart contracts;

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 wherein executing the groups of transactions comprises executing the transactions within each 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, wherein determining that the nodes of the blockchain network have completed executing all of the groups of transactions comprises determining that all transactions in the plurality of transactions have been included in one or more blocks stored in a blockchain maintained by the blockchain network; and

in response to determining that the nodes of the blockchain network have completed executing all of the groups of transactions, instructing the nodes of the blockchain network to execute a final smart contract call.

6. The non-transitory, computer-readable medium of claim 5 , wherein the whitelist is included within a set of executable instructions associated with each smart contract.

7. The non-transitory, computer-readable medium of claim 5 , wherein the whitelist is separate from a set of executable instructions associated with each smart contract.

8. The non-transitory, computer-readable medium of claim 5 , 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.

9. 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 network, wherein each of the plurality of transactions is digitally signed with a public encryption key and confirmed by decrypting using a private encryption key corresponding to the public encryption key;

arranging the plurality of transactions in an execution order, wherein the plurality of transactions comprises one or more smart contract calls to one or more smart contracts;

identifying one or more accounts to be affected by the plurality of transactions based upon a whitelist associated with each smart contract that comprises a list of accounts that are authorized to execute the smart contract;

determining groups of transactions within the plurality of transactions based on an account dependency, wherein the account dependency is that transactions in a particular group do not affect any accounts in the blockchain network that are affected by transactions in a different group, and wherein a particular set of accounts associated with each of the one or more smart contract calls to be executed by the groups of transactions is determined based on the whitelists associated with the respective one or more smart contracts;

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 wherein executing the groups of transactions comprises executing the transactions within each 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, wherein determining that the nodes of the blockchain network have completed executing all of the groups of transactions comprises determining that all transactions in the plurality of transactions have been included in one or more blocks stored in a blockchain maintained by the blockchain network; and

in response to determining that the nodes of the blockchain network have completed executing all of the groups of transactions, instructing the nodes of the blockchain network to execute a final smart contract call.

10. The computer-implemented system of claim 9 , wherein the whitelist is included within a set of executable instructions associated with each smart contract.

11. The computer-implemented system of claim 9 , wherein the whitelist is separate from a set of executable instructions associated with each smart contract.

12. The computer-implemented system of claim 9 , 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.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053754/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053743/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2020
From: XIA, NING; XIE, GUILU; DENG, FUXI
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 051423/0213 →