Parallel transaction validation and block generation in a blockchain
US-2020052884-A1 · Feb 13, 2020 · US
US10700852B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10700852-B2 |
| Application number | US-202016735233-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 6, 2020 |
| Priority date | Mar 28, 2019 |
| Publication date | Jun 30, 2020 |
| Grant date | Jun 30, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for parallel-processing blockchain transactions are provided. One of the methods includes: obtaining a plurality of candidate transactions for adding to a blockchain; grouping the candidate transactions into one or more transaction groups; creating one or more copies of at least a portion of a data structure of a latest block of the blockchain; associating the one or more transaction groups respectively with the one or more copies of the data structure; executing the candidate transactions in each of the transaction groups and updating the associated copies of the data structure; and merging the updated copies of the data structure to obtain at least a portion of a new data structure of a new block to add to the blockchain.
Opening claim text (preview).
The invention claimed is: 1. A computer-implemented method for parallel-processing blockchain transactions, comprising: obtaining a plurality of candidate transactions for adding to a blockchain; grouping the candidate transactions into one or more transaction groups; creating one or more copies of at least a portion of a state tree data structure of a latest block of the blockchain; associating the one or more transaction groups respectively with the one or more copies of the state tree data structure of the latest block of the blockchain, wherein the one or more transaction groups have not been added to the blockchain; processing the one or more transaction groups in parallel by executing the candidate transactions in each of the transaction groups and by updating the associated copies of the state tree data structure of the latest block of the blockchain, wherein the updated associated copies of the state tree data structure have not been added to the blockchain; generating a new state root node by merging the updated associated copies of the state tree data structure; generating a new block comprising the new state root node; and transmitting the new block comprising the new state root node to one or more blockchain nodes for consensus verification, wherein the new block comprising the new state root node is added to the blockchain after consensus verification of the new block by a plurality of nodes of the blockchain. 2. The method of claim 1 , wherein: the one or more transaction groups are independent transaction groups. 3. The method of claim 1 , wherein grouping the candidate transactions into one or more transaction groups comprises: grouping two or more of the candidate transactions each involving at least one common transaction account under a same transaction group of the one or more transaction groups. 4. The method of claim 1 , wherein grouping the candidate transactions into one or more transaction groups comprises: grouping two or more of the candidate transactions that do not involve any common transaction account under different transaction groups of the one or more transaction groups. 5. The method of claim 1 , wherein: the state tree data structure comprises a Merkle Patricia tree comprising a single state root node stored in the latest block and a plurality of intermediate nodes and leaf nodes not stored in the latest block. 6. The method of claim 1 , wherein executing the candidate transactions in the corresponding transaction groups comprises: executing the candidate transactions in the corresponding transaction groups by a multi-core processor. 7. The method of claim 1 , wherein updating the associated copies of the state tree data structure comprises at least one of: updating a balance of a transaction account in one of the associated copies of the state tree data structure; removing the transaction account; or adding a new transaction account. 8. The method of claim 1 , wherein merging the updated associated copies of the state tree data structure comprises: updating at least the portion of the state tree data structure of the latest block of the blockchain by combining and incorporating updates made in the updated copies of the state tree data structure. 9. The method of claim 1 , wherein: after the new block is added to the blockchain, the new block comprising the new state root node is synchronized to a local copy of the blockchain at each node of the blockchain. 10. A system for parallel-processing blockchain transactions, comprising one or more processors and one or more non-transitory computer-readable memories coupled to the one or more processors and configured with instructions executable by the one or more processors to cause the system to perform operations comprising: obtaining a plurality of candidate transactions for adding to a blockchain; grouping the candidate transactions into one or more transaction groups; creating one or more copies of at least a portion of a state tree data structure of a latest block of the blockchain; associating the one or more transaction groups respectively with the one or more copies of the state tree data structure of the latest block of the blockchain, wherein the one or more transaction groups have not been added to the blockchain; processing the one or more transaction groups in parallel by executing the candidate transactions in each of the transaction groups and by updating the associated copies of the state tree data structure of the latest block of the blockchain, wherein the updated associated copies of the state tree data structure have not been added to the blockchain; generating a new state root node by merging the updated associated copies of the state tree data structure; generating a new block comprising the new state root node; and transmitting the new block comprising the new state root node to one or more blockchain nodes for consensus verification, wherein the new block comprising the new state root node is added to the blockchain after consensus verification of the new block by a plurality of nodes of the blockchain. 11. The system of claim 10 , wherein: the one or more transaction groups are independent transaction groups. 12. The system of claim 10 , wherein grouping the candidate transactions into one or more transaction groups comprises: grouping two or more of the candidate transactions each involving at least one common transaction account under a same transaction group of the one or more transaction groups. 13. The system of claim 10 , wherein grouping the candidate transactions into one or more transaction groups comprises: grouping two or more of the candidate transactions that do not involve any common transaction account under different transaction groups of the one or more transaction groups. 14. The system of claim 10 , wherein: the processor comprises a multi-core processor. 15. The system of claim 10 , wherein updating the associated copies of the state tree data structure comprises at least one of: updating a balance of a transaction account in one of the associated copies of the state tree data structure; removing the transaction account; or adding a new transaction account. 16. A non-transitory computer-readable storage medium configured with instructions executable by one or more processors to cause the one or more processors to perform operations comprising: obtaining a plurality of candidate transactions for adding to a blockchain; grouping the candidate transactions into one or more transaction groups; creating one or more copies of at least a portion of a state tree data structure of a latest block of the blockchain; associating the one or more transaction groups respectively with the one or more copies of the state tree data structure of the latest block of the blockchain, wherein the one or more transaction groups have not been added to the blockchain; processing the one or more transaction groups in parallel by executing the candidate transactions in each of the transaction groups and by updating the associated copies of the state tree data structure of the latest block of the blockchain, wherein the updated associated copies of the state tree data structure have not been added to the blockchain; generating a new state root node by merging the updated associated copies of the state tree data structure; generating a new block comprising the new state root node; and transmitting the new block comprising the new state root node to one or more blockchain nodes for consensus verification, wherein the new block comprising t
using hash chains, e.g. blockchains or hash trees · CPC title
Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor · CPC title
Financial cryptography, e.g. electronic payment or e-cash · CPC title
involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD · CPC title
Payment architectures, schemes or protocols (apparatus for performing or posting payment transactions G07F7/08, G07F19/00; electronic cash registers G07G1/12) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.