Method and apparatus for storing blockchain state data and electronic device
AssigneeAdvanced New Technologies Co., Ltd.
InventorsHaizhen Zhuo, Zhonghao Lu, Benquan Yu
Life of this patent
Estimating the term…
Abstract
A method of storing blockchain state data, including: after execution of a transaction in a target block is completed, based on a latest account state of a target account related to the transaction in the target block after update, generating updated data nodes corresponding to the current Merkle state tree of the target block and, based on generated historical data nodes and data nodes other than the reused data nodes corresponding to the target account on the historical Merkle state tree of the previous block of the target block, creating the historical Merkle state tree for the target block.
Claims22
A computer-implemented method of storing blockchain state data, comprising:
- after execution of a transaction in a target block in a blockchain is completed, based on a latest account state of a target account related to the transaction after execution of the transaction, modifying and updating, by a blockchain node device, data nodes corresponding to the target account on a current Merkle state tree of a previous block adjacent to the target block, to obtain a current Merkle state tree of the target block,
- wherein the current Merkle state tree of the target block is formed by latest account states of blockchain accounts of the blockchain;
- based on a historical account state of the target account before execution of the transaction, generating, by the blockchain node device, historical data nodes corresponding to a historical Merkle state tree of the target block, wherein the historical Merkle state tree of the target block is formed by historical account states of blockchain accounts of the blockchain;
- and
- based on (i) the generated historical data nodes and (ii) data nodes other than data nodes corresponding to the target account on a historical Merkle state tree of the previous block adjacent to the target block, creating, by the blockchain node device, the historical Merkle state tree of the target block,
- wherein the current Merkle state tree of the target block and the historical Merkle state tree of the target block are distinct Merkle state trees and are stored in a database, wherein at least some data stored in the historical Merkle state tree of the target block is blockchain account data not stored in the current Merkle state tree of the target block, wherein the current Merkle state tree of the previous block adjacent to the target block and the historical Merkle state tree of the previous block adjacent to the target block are distinct Merkle state trees and are stored in the database, and wherein at least some data stored in the historical Merkle state tree of the previous block adjacent to the target block is blockchain account data not stored in the current Merkle state tree of the previous block to the target block.
A non-transitory, computer-readable medium storing one or more instructions that, when executed by a computer system of a blockchain node device, cause the blockchain node device to perform operations for storing blockchain data, the operations comprising:
- after execution of a transaction in a target block in a blockchain is completed, based on a latest account state of a target account related to the transaction after execution of the transaction, modifying and updating data nodes corresponding to the target account on a current Merkle state tree of a previous block adjacent to the target block, to obtain a current Merkle state tree of the target block,
- wherein the current Merkle state tree of the target block is formed by latest account states of blockchain accounts of the blockchain;
- based on a historical account state of the target account before execution of the transaction, generating historical data nodes corresponding to a historical Merkle state tree of the target block, wherein the historical Merkle state tree of the target block is formed by historical account states of blockchain accounts of the blockchain;
- and
- based on (i) the generated historical data nodes and (ii) data nodes other than data nodes corresponding to the target account on a historical Merkle state tree of the previous block adjacent to the target block, creating the historical Merkle state tree of the target block,
- wherein the current Merkle state tree of the target block and the historical Merkle state tree of the target block are distinct Merkle state trees and are stored in a database, wherein at least some data stored in the historical Merkle state tree of the target block is blockchain account data not stored in the current Merkle state tree of the target block, wherein the current Merkle state tree of the previous block adjacent to the target block and the historical Merkle state tree of the previous block adjacent to the target block are distinct Merkle state trees and are stored in the database, and wherein at least some data stored in the historical Merkle state tree of the previous block adjacent to the target block is blockchain account data not stored in the current Merkle state tree of the previous block to the target block.
A computer-implemented system, comprising:
- one or more computers of a blockchain node device;
- 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, cause the one or more computers to perform one or more operations for storing blockchain data, the operations comprising:
- after execution of a transaction in a target block in a blockchain is completed, based on a latest account state of a target account related to the transaction after execution of the transaction, modifying and updating data nodes corresponding to the target account on a current Merkle state tree of a previous block adjacent to the target block, to obtain a current Merkle state tree of the target block,
- wherein the current Merkle state tree of the target block is formed by latest account states of blockchain accounts of the blockchain;
- based on a historical account state of the target account before execution of the transaction, generating historical data nodes corresponding to a historical Merkle state tree of the target block, wherein the historical Merkle state tree of the target block is formed by historical account states of blockchain accounts of the blockchain;
- and
- based on (i) the generated historical data nodes and (ii) data nodes other than data nodes corresponding to the target account on a historical Merkle state tree of the previous block adjacent to the target block, creating the historical Merkle state tree of the target block,
- wherein the current Merkle state tree of the target block and the historical Merkle state tree of the target block are distinct Merkle state trees and are stored in a database, wherein at least some data stored in the historical Merkle state tree of the target block is blockchain account data not stored in the current Merkle state tree of the target block, wherein the current Merkle state tree of the previous block adjacent to the target block and the historical Merkle state tree of the previous block adjacent to the target block are distinct Merkle state trees and are stored in the database, and wherein at least some data stored in the historical Merkle state tree of the previous block adjacent to the target block is blockchain account data not stored in the current Merkle state tree of the previous block to the target block.
Dependencies are inferred from the claim text.