CN111488396B - Data synchronization method and device for service data block chain - Google Patents

Data synchronization method and device for service data block chain Download PDF

Info

Publication number
CN111488396B
CN111488396B CN202010270318.7A CN202010270318A CN111488396B CN 111488396 B CN111488396 B CN 111488396B CN 202010270318 A CN202010270318 A CN 202010270318A CN 111488396 B CN111488396 B CN 111488396B
Authority
CN
China
Prior art keywords
tree
block
data
state
root
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010270318.7A
Other languages
Chinese (zh)
Other versions
CN111488396A (en
Inventor
吉建勋
杨慧
胡壮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruice Technology Co Ltd
Original Assignee
Beijing Ruice Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ruice Technology Co Ltd filed Critical Beijing Ruice Technology Co Ltd
Priority to CN202010270318.7A priority Critical patent/CN111488396B/en
Publication of CN111488396A publication Critical patent/CN111488396A/en
Application granted granted Critical
Publication of CN111488396B publication Critical patent/CN111488396B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention provides a data synchronization method and a data synchronization device for a service data block chain, which relate to the technical field of block chains and comprise the following steps: the block chain node receives a block to be synchronized, the block to be synchronized comprises a block head and a block body, the block head comprises a tree root of the first state tree, and the block body comprises block data; constructing a third state tree according to the block data and the second state tree of the local current block; calculating the tree root of the third state tree through a preset rule; and comparing the tree root of the first state tree with the tree root of the third state tree, if the tree roots are the same, updating the second state tree into the third state tree by the block chain node, and linking the block to be synchronized behind the local current block. Therefore, the completeness, the tampering and the like of the synchronized data can be verified based on the generation logic of the state tree. The efficiency of data synchronization is improved, the cost of tampering data is increased, and the safety of the data is guaranteed.

Description

Data synchronization method and device for service data block chain
Technical Field
The present invention relates to the field of block chain technologies, and in particular, to a data synchronization method and apparatus for a service data block chain.
Background
Currently, the blockchain technology is a distributed stored ledger that uses technologies such as encryption algorithm and consensus mechanism. With the use of blockchain technology, more and more internet data is stored on the blockchain.
In the existing block chain, only transaction data can be stored, wherein the transaction data comprises a transfer party address, a receiving party address and a transfer amount; for various service data (such as evidence storage data, traceability data, financial data, travel data, search data, self-media data, research data, advertisement data, e-commerce data, community data, knowledge question and answer data, knowledge payment data, shared bicycle data, recruitment data, living service data, renting data, voting data, OTO data (also called online to offline data), social data, praise data, evaluation data, internet appointment data and other internet related data), not only the data per se but also the association relationship between the data on the block chain need to be expressed.
Therefore, how to store the service data on the block chain, in other words, how to implement the service data block chain, becomes a problem to be solved urgently.
Disclosure of Invention
The invention aims to provide a data synchronization method and a data synchronization device for a service data block chain, which are used for solving the technical problem of low data synchronization efficiency in the block chain in the prior art.
In a first aspect, an embodiment provides a data synchronization method for a service data blockchain, which is applied to a service data blockchain system, where the blockchain system includes a plurality of blockchain nodes, and the method includes:
a block chain node receives a block to be synchronized, wherein the block to be synchronized comprises a block head and a block body, the block head comprises a tree root of a first state tree, and the block body comprises block data;
constructing a third state tree according to the block data and the second state tree of the local current block;
calculating the tree root of the third state tree according to a preset rule;
and comparing the tree root of the first state tree with the tree root of the third state tree, if the tree roots are the same, updating the second state tree into the third state tree by the block link node, and linking the block to be synchronized behind the local current block.
In an alternative embodiment, the method further comprises:
a block chain node receives a block to be synchronized, wherein a block head of the block to be synchronized comprises a tree root of a first relation tree;
constructing a third relation tree according to the block data and the second relation tree of the local current block;
calculating the tree root of the third relational tree according to a preset rule;
and comparing the tree root of the first relation tree with the tree root of the third relation tree, if the tree roots are the same, updating the second relation tree into the third relation tree by the block chain node, and linking the block to be synchronized behind the local current block.
In an optional embodiment, the first state tree is a global state after a user operation, and the global state includes one or more of integral information, user information, and entity information; the user operation is the operation of the user on the service data.
In an optional embodiment, the first relationship tree is a relationship between global states after a user operation, and the relationship between global states after the user operation includes one or more of user information-integral information, entity information-integral information, and entity information-user information; the user operation is the operation of the user on the service data.
In an optional embodiment, the value of the leaf node in the relation tree stores user information-integral information, entity information-integral information and entity information-user information in a hash table or array manner; or the value of the leaf node of the relation tree is used for storing the root of a relation subtree, the relation subtree stores user information-point information, entity information-point information and entity information-user information, and the relation subtree is a Mercker tree or an MPT tree.
In a second aspect, an embodiment provides a data synchronization apparatus for a service data blockchain, which is applied to a service data blockchain system, where the blockchain system includes a plurality of blockchain nodes, and the apparatus includes:
a receiving module, configured to receive a block to be synchronized, where the block to be synchronized includes a block header and a block body, the block header includes a tree root of a first state tree, and the block body includes block data;
the building module is used for building a third state tree according to the block data and the second state tree of the local current block;
the calculation module is used for calculating the tree root of the third state tree through a preset rule;
and the updating module is used for comparing the tree root of the first state tree with the tree root of the third state tree, if the tree roots are the same, the block link node updates the second state tree into the third state tree, and links the block to be synchronized behind the local current block.
In an alternative embodiment, the apparatus further comprises:
the receiving module is further configured to receive a block to be synchronized, where a block header of the block to be synchronized includes a tree root of a first relation tree;
the building module is further used for building a third relation tree according to the block data and the second relation tree of the local current block;
the calculation module is further used for calculating the tree root of the third relational tree through a preset rule;
the updating module is further configured to compare the root of the first relational tree with the root of the third relational tree, if the two are the same, update the second relational tree to the third relational tree by the block link point, and link the block to be synchronized behind the local current block.
In a third aspect, an embodiment provides a block link point, including a memory, a processor, and a computer program stored on the memory and executable on the processor, where the processor executes the program to implement the method of any one of the foregoing embodiments.
In a fourth aspect, embodiments provide a blockchain system comprising a plurality of blockchain nodes and a plurality of user equipments, wherein the blockchain nodes are configured to implement the method according to any one of the foregoing embodiments.
In a fifth aspect, embodiments provide a computer-readable storage medium, on which a computer program is stored, and the computer program, when executed by a processor, implements the method of any one of the foregoing embodiments.
The invention provides a data synchronization method and a data synchronization device for a service data block chain. The block chain node receives a block to be synchronized, the block to be synchronized comprises a block head and a block body, the block head comprises a tree root of the first state tree, and the block body comprises block data; constructing a third state tree according to the block data and the second state tree of the local current block; calculating the tree root of the third state tree through a preset rule; and comparing the tree root of the first state tree with the tree root of the third state tree, if the tree roots are the same, updating the second state tree into the third state tree by the block chain node, and linking the block to be synchronized behind the local current block. The user operation data is stored in the blocks, the state tree stores the state after the user operation, and the conditions of completeness, tampering and the like of the synchronized data can be verified based on the generation logic of the state tree. The efficiency of data synchronization is improved, the cost of tampering data is increased, and the safety of the data is guaranteed.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, and it is obvious that the drawings in the following description are some embodiments of the present invention, and other drawings can be obtained by those skilled in the art without creative efforts.
FIG. 1 is a schematic diagram of an application scenario disclosed in the present application;
FIG. 2 is a diagram illustrating an existing method for organizing account state data of a blockchain into an MPT state tree;
fig. 3 is a schematic diagram of node multiplexing on an existing MPT state tree;
fig. 4 is a schematic flow chart illustrating a data synchronization method for a service data block chain according to the present disclosure;
fig. 5 is a schematic block head structure diagram of a service data block chain according to the present application;
fig. 6 is a schematic structural diagram of a data synchronization apparatus for a service data block chain according to the present disclosure;
fig. 7 is a schematic diagram of a block link point structure disclosed in the present application.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. The components of embodiments of the present invention generally described and illustrated in the figures herein may be arranged and designed in a wide variety of different configurations.
Thus, the following detailed description of the embodiments of the present invention, presented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
It should be noted that: like reference numbers and letters refer to like items in the following figures, and thus, once an item is defined in one figure, it need not be further defined and explained in subsequent figures.
The embodiment of the application provides a data synchronization method and device for a service data block chain. Fig. 1 shows an exemplary architecture of a blockchain network provided for the present application.
As shown in fig. 1, the exemplary architecture may include one or more user equipments 101 and one or more blockchain nodes 102, and when there are a plurality of blockchain nodes 102 and user equipments 101, a blockchain network is formed, where the blockchain nodes in the blockchain network may include storage nodes and out-blocking nodes. User equipment 101 may be configured to interact with blockchain nodes 102, e.g., user equipment 101 sends a user action to a blockchain node; the block chain link point stores the user operation in a block chain; user equipment 101 may also send a query request to the blockchain node, the query request being used to query data in the blockchain.
It should be noted that the architecture of this embodiment is not limited to implement other functions, for example, the user equipment 101 may also be used as a block link node.
For the purpose of facilitating understanding of the embodiments of the present application, the following description will be further explained with reference to specific embodiments, which are not to be construed as limiting the embodiments of the present application.
Blockchains are generally divided into three types: public chain (Public Blockchain), private chain (PrivateBlockchain) and alliance chain (Consortium Blockchain). In addition, there are various types of combinations, such as private chain + federation chain, federation chain + public chain, and other different combinations. The most decentralized of these is the public chain. The public chain is represented by bitcoin and ether house, and the participators joining the public chain can read the data record on the chain, participate in transaction, compete for accounting right of new blocks, and the like.
Furthermore, each participant (i.e., node) is free to join and leave the network and perform related operations. Private chains are the opposite, with the network's write rights controlled by an organization or organization and the data read rights specified by the organization. Briefly, a private chain can be a weakly centralized system with strictly limited and few participating nodes. This type of blockchain is more suitable for use within a particular establishment.
Based on the basic characteristics of a blockchain, a blockchain is usually composed of several blocks. The time stamps corresponding to the creation time of the block are recorded in the blocks respectively, and all the blocks form a time-ordered data chain according to the time stamps recorded in the blocks strictly.
The real data generated by the physical world can be constructed into a standard transaction (transaction) format supported by a block chain, then is issued to the block chain, is identified by node equipment in the block chain, and is packed into a block by the node equipment serving as an accounting node in the block chain after the identification is achieved, and is subjected to persistent evidence storage in the block chain.
In the field of blockchain, an important concept is Account (Account); taking an ether house as an example, the ether house generally divides an account into an external account and a contract account; the external account is an account directly controlled by the user; and the contract account is created by the user through an external account, the account containing the contract code (i.e. the smart contract).
Of course, for some blockchain items derived based on the ethernet framework, the account types supported by the blockchain may be further expanded, and are not particularly limited in this specification.
For accounts in a blockchain, the account status of the account is usually maintained through a structure. When a transaction in a block is executed, the status of the account associated with the transaction in the block chain is also typically changed.
Taking etherhouses as an example, the structure of an account usually includes fields such as Balance, Nonce, Code, and storage. Wherein:
a Balance field for maintaining the current account Balance of the account;
a Nonce field for the number of transactions for the account; the counter is used for guaranteeing that each transaction can be processed only once, and replay attack is effectively avoided.
A code field for maintaining a contract code for the account; in practical applications, only the hash value of the contract code is typically maintained in the code field; thus, the code field is also commonly referred to as a codehash field. For external accounts, this field is null.
storage field to maintain the storage of the account (default to empty). In practical application, the storage field only maintains the root node of an MPT (Merkle Patricia Trie) tree constructed based on the storage content of the account; thus, the storage field is also commonly referred to as the storageRoot field.
Wherein, for the external account, the code field and storage field shown above are null values.
Most blockchain items typically use Merkle trees; alternatively, the data is stored and maintained based on the data structure of the Merkle tree. Taking etherhouses as an example, the etherhouses use MPT tree (a Merkle tree variation) as a data organization form for organizing and managing important data such as account status, transaction information, and the like.
The Etherhouse designs three MPT trees, namely an MPT state tree, an MPT transaction tree and an MPT receipt tree, aiming at data needing to be stored and maintained in a block chain.
The MPT state tree is an MPT tree organized by account state data (state) of all accounts in the block chain; the MPT transaction tree is transaction data (transaction) in a block and is organized into the MPT tree; the MPT receipt tree is an MPT tree organized by transaction receipts (receipts) corresponding to each transaction generated after the transaction in the block is completed. The hash values of the root nodes of the MPT state tree, MPT transaction tree, and MPT receipt tree shown above are all added to the block header.
Wherein the MPT transaction tree and the MPT receipt tree correspond to tiles, each tile having its own MPT transaction tree and MPT receipt tree. The MPT state tree is a global MPT tree, which does not correspond to a specific tile, but covers account state data of all accounts in the tile chain.
For the MPT transaction tree, the MPT receipt tree and the MPT state tree which are organized, the MPT transaction tree, the MPT receipt tree and the MPT state tree are finally stored in a Key-Value type database (such as a levelDB) which adopts a multi-level data storage structure.
The database adopting a multi-level storage structure can be generally divided into n-level data storage; for example, each level of data storage may be set to L0, L1, L2, L3.. L (n-1) in sequence; for each level of data storage in the database, the smaller the level number is, the higher the level is generally; for example, L0 stores the latest data of several blocks, L1 stores the next latest data of several blocks, and so on.
Wherein, the read-write performance of the storage medium corresponding to each level of data storage may also have performance difference in general; the read/write performance of the storage medium corresponding to the data storage with a higher rank (i.e., with a smaller rank number) may be higher than the read/write performance of the storage medium corresponding to the data storage with a lower rank.
For example, in practical applications, a storage medium with higher read-write performance can be used for data storage with a higher level; and the storage medium with low unit cost and large capacity can be used for storing the data with low level.
In practical applications, as the block height increases, the data stored in the database may contain a lot of historical data; also, the longer the data in a block with a smaller block number is, the less important it is. Therefore, in order to reduce the overall storage cost, data of different block heights generally needs to be "treated differently";
for example, the data in the block with the smaller block number can be stored on a storage medium with lower cost; and the data in the block with larger block number is stored on the storage medium with higher cost.
When data such as an MPT transaction tree, an MPT receipt tree and an MPT state tree stored in a database are hierarchically stored, the data are actually irrelevant between blocks due to the fact that the MPT transaction tree and the MPT receipt tree correspond to each block; thus, hierarchical storage is easy for the MPT transaction tree and the MPT receipt tree; for example, the hierarchical storage can be completed by directly performing data migration according to the block numbers to which the nodes on the MPT transaction tree and the MPT receipt tree belong.
Based on this, the present specification will not specifically explain the hierarchical storage of the MPT transaction tree and the MPT receipt tree, but rather the hierarchical storage of the MPT status tree.
Referring to fig. 2, fig. 2 is a schematic diagram illustrating organization of account status data of a blockchain into an MPT status tree according to the present disclosure.
The MPT tree is an improved Merkle tree variety which combines the advantages of two tree structures, namely a Merkle tree and a Trie dictionary tree (also called as a prefix tree).
Three data nodes, a leaf node (leaf node), an extension node (extension node), and a branch node (branch node), are typically included in the MPT tree.
Leaf node, one key-value pair denoted [ key, value ], where key is a special hexadecimal code.
An extension node is also a key-value pair of [ key, value ], but here value is the hash value (hash pointer) of other nodes. I.e. linked to other nodes by hash pointers.
The branch node, because the key in the MPT tree is encoded into a special 16-ary representation, plus the last value, is a list of length 17, the first 16 elements corresponding to the 16 possible hexadecimal characters in the key (one character corresponding to a nibble). If there is a [ key, value ] pair terminating at this branch node, the last element represents a value, i.e., the branch node can be either the termination of the search path or the intermediate node of the path.
Assume that account state data that needs to be organized into an MPT state tree is shown in table 1 below:
Figure BDA0002442921900000101
TABLE 1
In table 1, the account address is a character string composed of several 16-ary characters. The account status state is a structure composed of fields such as Balance, Nonce, Code, and storage.
The MPT state tree is finally organized according to the account state data in the table 1, which is shown in the figure 2; as shown in fig. 2, the MPT state tree organized according to the account state data in table 1 is composed of 4 leaf nodes, 2 branch nodes, and 2 extension nodes.
In fig. 2, the prefix field is a prefix field that the extension node and the leaf node have in common. The value of the prefix field can be used to indicate the node type in practical applications.
The value of the prefix field is 0, which represents an expansion node containing an even number of nibbles; as previously mentioned, a nibble represents a nibble, consisting of a 4-bit binary, and one nibble may correspond to one character that makes up an account address.
The value of the prefix field is 1, and the prefix field represents an expansion node containing odd number of nibbles(s);
the value of the prefix field is 2, which represents a leaf node containing an even number of nibbles;
the value of the prefix field is 3, which indicates that the leaf node contains an odd number of nibbles(s).
And the branch node does not have the prefix field because the branch node is a prefix node of the parallel single neighbor.
A Shared neighbor field in the extension node, corresponding to a key value of a key-value pair contained in the extension node, represents a common character prefix between account addresses; for example, all account addresses in the table above have a common character prefix a 7. The Next Node field is filled with the hash value (hash pointer) of the Next Node.
The fields of the 16-system characters 0-f in the branch nodes correspond to the key values of the key value pairs contained in the branch nodes; if the branch node is an intermediate node of the account address on the search path on the MPT tree, the Value field of the branch node may be null. And the hash value used for filling the next node is in the fields 0-f.
The Key-end in a leaf node corresponds to the Key value of the Key-value pair contained in the leaf node and represents the last characters of the account address. The key values of the nodes on the search path from the root node to the leaf nodes form a complete account address. Filling account state data corresponding to the account address in a Value field of the leaf node; for example, the structure composed of the fields such as Balance, Nonce, Code, and storage may be numbered and filled in the Value field of the leaf node.
Further, the node on the MPT state tree shown in fig. 2 is finally stored in the database in the form of Key-Value Key Value pair;
when a node on the MPT state tree is stored in a database, a key in a key value pair of the node on the MPT state tree is a hash value of data content contained in the node; value in the key Value pair of the node on the MPT state tree is the data content contained in the node.
That is, when a node in the MPT state tree is stored in the database, a hash Value of data content contained in the node may be calculated (that is, the whole node is subjected to hash calculation), the calculated hash Value is used as a Key, the data content contained in the node is used as a Value, and a Key-Value Key Value pair is generated; and then storing the generated Key-Value Key Value pair into a database.
Because the node in the MPT state tree takes the hash value of the data content contained in the node as Key and the data content contained in the node as value for storage; therefore, when a node on the MPT state tree needs to be queried, content addressing can be performed as a key based on the hash value of the data content contained in the node. By adopting the content addressing, for some nodes with repeated content, the node can be generally multiplexed to save the storage space of data storage.
As shown in fig. 3, fig. 3 is a schematic diagram of node multiplexing on an MPT state tree shown in this specification.
In practical applications, each time a block chain generates a latest block, the account status of the accounts in the block chain related to the executed transactions will generally change after the transaction in the latest block is executed;
for example, when a "transfer transaction" in a block is completed, the balances of the transferring party account and the transferring party account related to the "transfer transaction" (i.e., the value of the Balance field of these accounts) will usually change accordingly.
After the transaction in the latest block generated by the blockchain is completed, the node device needs to construct an MPT tree according to the current account status data of all accounts in the blockchain because the account status in the current blockchain changes, so as to maintain the latest status of all accounts in the blockchain.
That is, each time a latest block is generated in the block chain and the account status in the block chain changes after the transaction in the latest block is completed, the node device needs to reconstruct an MPT tree based on the latest account status data of all accounts in the block chain.
In other words, each block in the block chain has a corresponding MPT state tree; the MPT status tree maintains the latest account status of all accounts in the blockchain after the transaction in the block is completed.
It should be noted that, after the transaction in the latest block is completed, the account status of only part of the accounts may be changed; therefore, when updating the MPT state tree, it is not necessary to reconstruct a complete MPT state tree based on the current state data of all accounts in the block chain, but only to update the node corresponding to the account whose partial account state changes on the basis of the MPT state tree corresponding to the block before the latest block. For the nodes corresponding to the accounts whose account statuses in the MPT status tree have not changed, since the nodes are updated, the nodes corresponding to the blocks before the latest block can be directly multiplexed.
As shown in fig. 3, it is assumed that the account status data in table 1 is the latest account status of all accounts on the Block chain after the transaction in Block N is completed; the MPT state tree, organized based on the account state data in table 1, is also shown in fig. 2.
Suppose that when the transaction in Block N +1 is completed, the account status that results in the account address "a 7f 9365" in table 1 above is updated to "state 5" from "state 3"; at this time, when Block N +1 updates the MPT state tree, it is not necessary to reconstruct an MPT state tree based on the current state data of all accounts in the Block chain after the transaction in Block N +1 is completed.
Referring to fig. 3, in this case, it is possible to update the Value in the leaf node with "key-end" of "9365" to "state 5" from "state 3" only on the MPT tree corresponding to Block N (i.e., the MPT state tree shown in fig. 2), and continue to update the hash pointers of all nodes on the path from the root node to the leaf node; that is, when a leaf node on the MPT state tree is updated, the hash value of the whole leaf node is updated, and then the hash pointers of all nodes on the path from the root node to the leaf node are also updated accordingly. For example, with continued reference to fig. 3, in addition to the Value in the leaf Node whose "key-end" is "9365", the hash pointer pointing to the leaf Node filled in the f field of the last Branch Node (Branch Node) of the leaf Node needs to be updated; furthermore, the Root Node can be traced back continuously, and the hash pointer pointing to the branch Node and filled in the field "Next Node" of the last Root Node (Root Extension Node) of the branch Node can be updated continuously.
Except the nodes which are updated, other nodes which are not updated can directly multiplex the corresponding nodes on the MPT state tree of the Block N;
the MPT tree corresponding to the Block N is finally reserved as historical data; therefore, when Block N +1 updates the MPT state tree, these updated nodes are not modified and updated directly on the basis of the original nodes in the MPT state tree corresponding to Block N, but are newly created in the MPT tree corresponding to Block N + 1.
That is, for the MPT state tree corresponding to Block N +1, only a small number of nodes that are updated need to be created again, and for other nodes that are not updated, the corresponding nodes on the MPT state tree corresponding to Block N may be directly multiplexed.
For example, as shown in fig. 3, for an MPT state tree corresponding to Block N +1, only a few nodes that are updated need to be created again; for example, only one extension node, one branch node and one leaf node as a root node need to be created again in fig. 3; for nodes which are not updated, the nodes can be multiplexed by adding hash pointers pointing to corresponding nodes on the MPT state tree corresponding to Block N in the nodes which are re-created on the MPT state tree. The nodes before updating on the MPT state tree corresponding to Block N are used as historical account state data to be stored; for example, the leaf node shown in fig. 3, in which "key-end" is "9365" and Value is "state 3", is to be retained as the history data. In the above example, the content update is performed on a small number of nodes in the MPT state tree of Block N +1, and most of the nodes in the previous Block N can be "multiplexed". In practical applications, a node may be added to the MPT state tree of Block N +1 more than the previous Block N.
In this case, although the newly added node cannot be directly multiplexed from the MPT tree of the previous Block N, it may be "multiplexed" from the MPT state tree of the earlier Block;
for example, a node newly added to the MPT state tree of Block N +1, although appearing in the MPT state tree of Block N, appears in the MPT state tree of an earlier Block; for example, appear on the MPT state tree of Block N-1; therefore, the newly added node on the MPT state tree of Block N +1 can directly multiplex the corresponding node on the MPT state tree of Block N-1.
The above is a description of a storage structure in a conventional block chain, and the following is a description of a storage structure of a service data block chain in the present application.
Fig. 4 is a schematic flow chart of a data synchronization method for a service data block chain according to the present application. As shown in fig. 4, the method applied to a service data blockchain system, the blockchain system including a plurality of blockchain nodes, such as the blockchain node 102 in fig. 1, may specifically include the following steps:
s410, a block link point receives a block to be synchronized, wherein the block to be synchronized comprises a block head and a block body, the block head comprises a tree root of a first state tree, and the block body comprises block data;
in one example, the user operational data is operational data of the user on the internet, and the user operational data includes one or more of evidence storage data, traceability data, financial data, travel data, search data, self-media data, research data, advertisement data, e-commerce data, community data, question and answer data, pay for knowledge data, shared bicycle data, recruitment data, life service data, renting data, voting data, online-to-offline data, social data, praise data, evaluation data, and online-appointment data.
In one example, the user operation data comprises one or more of a timestamp, an operation user address, an operated address, an operation type, a value of a transfer, a credit address, a signature of the user on the user operation data, and a hash value of the user operation data; the operation type comprises an operation and a transfer operation of a user on an entity, and the operated address comprises an operation address on the entity and addresses of other users.
In one example, the first state tree is a global state after user operation, and the global state comprises one or more of integral information, user information and entity information; the user operation is the operation of the user on the service data.
For example, the entity is a commodity of an internet e-commerce platform, and a user can initiate an operation of purchasing the commodity, namely a transfer operation aiming at the commodity entity; the user can also initiate a comment or a praise operation for the commodity, namely a user operation for the commodity entity.
The attribute type of the integral information comprises an associated attribute and a non-associated attribute; wherein the attribute value of the associated attribute is automatically increased or decreased according to the user operation data.
In this case, the point is a point issued by the user, for example: after a user can pass the notarization and securitize the house, a point is issued on the block chain, and the point uniquely represents the house property on the block chain; alternatively, the house may be securitized, a predetermined number of points issued, possession of the point will have ownership of the house, and will have equal ownership of the house lease or change. In addition, the block chain is provided with native scores which can be used for restricting the operation of the user on the block chain, so that the user is prevented from using the resources of the block chain system without limit; for example: after the users on the blockchain are registered, the users are operated on the blockchain, and the native credits are required to be collated so as to uplink the user operation data.
As an example, any one of the state information (e.g., Account field), credit information (e.g., Asset field), and entity information (e.g., Object field) may be implemented by using an MPT state tree, and the tree root of each MPT state tree is stored in the block header. As shown in FIG. 5, the user Action of the tile store (e.g., the Action field), and the root of the MPT state tree of the Receipt information stored by the on-chain database (e.g., the Recept field) are also stored in the tile header.
It should be noted that the block in the blockchain system includes a block header and a block body, the block header stores summary information, and the block body stores transfer information (also called transaction information). In this specification, the user operation is stored in a block of the block, and a digest value (also referred to as a hash value) of the user operation is stored in a block header; the on-chain state database in this specification is also part of the storage of the blockchain system, and each blockchain node has the on-chain state database and the block to store the service data in this specification.
In addition, the blocks to be synchronized can come from other blockchain nodes. For example, the local blockchain node may actively request synchronization from other blockchain nodes, or actively synchronize with the local blockchain node after the other blockchain nodes determine that there is an update.
S420, a third state tree is constructed according to the block data and the second state tree of the local current block.
The second state tree is a state tree of a service data block chain before local synchronization.
And the third state tree generated based on the second state tree and the synchronized block data is a locally synchronized state tree.
The structural manner of the state tree may include multiple manners, and specifically, refer to the descriptions in fig. 2 to fig. 3.
S430, calculating the tree root of the third state tree through a preset rule;
the preset rules adopted for the calculation of the tree root may include multiple types, and may be determined specifically according to actual needs, and the specific preset rules may be described in the foregoing descriptions in fig. 2 to fig. 3.
S440, compare the tree root of the first state tree with the tree root of the third state tree, if they are the same, the block node updates the second state tree to the third state tree, and links the block to be synchronized behind the local current block.
If the root of the first state tree is the same as the root of the third state tree, it can be said that the blocks in the service data block chain corresponding to the third state tree are all the same as the blocks in the service data block chain corresponding to the first state tree, in other words, if the root of the first state tree is the same as the root of the third state tree, it is proved that the data of the blocks to be synchronized are correct. At this time, the data of the block to be synchronized can be used as the block data of the local newest block.
And if the tree root of the first state tree is not the same as the tree root of the third state tree, determining that the data to be synchronized is incorrect. At this time, retransmission may be requested from other block link points, or the synchronization procedure may be ended.
The user operation data is stored in the blocks, the state tree stores the state after the user operation, and the conditions of completeness, tampering and the like of the synchronized data can be verified based on the generation logic of the state tree. The efficiency of data synchronization is improved, the cost of tampering data is increased, and the safety of the data is guaranteed.
In some embodiments, the information recorded in the block link point may include not only the status but also the relationship. Based on this, the method may further comprise the steps of:
step a), a block link point receives a block to be synchronized, and the block head of the block to be synchronized comprises a tree root of a first relation tree;
step b), constructing a third relation tree according to the block data and the second relation tree of the local current block;
step c), calculating the tree root of the third relational tree through a preset rule;
and d), comparing the tree root of the first relation tree with the tree root of the third relation tree, if the tree roots are the same, updating the second relation tree into the third relation tree by the block chain node, and linking the block to be synchronized behind the local current block.
For the step a), the first relation tree is a relation between the global states after the user operation, and the relation between the global states after the user operation comprises one or more of user information-integral information, entity information-integral information and entity information-user information; the user operation is the operation of the user on the service data.
The value of the leaf node in the relational tree stores user information-integral information, entity information-integral information and entity information-user information in a hash table or array mode; or the value of the leaf node of the relation tree is used for storing the root of a relation subtree, the relation subtree stores user information-point information, entity information-point information and entity information-user information, and the relation subtree is a Mercker tree or an MPT tree.
As an example, any one of the association relationship of entity information-user information (e.g., Object-Account field), user information-score information (e.g., Account-Asset field), and entity information-score information (e.g., Object-Asset field) may be implemented by using an MPT relationship tree, and the tree root of each MPT relationship tree is stored in the block header. As shown in FIG. 5, the user Action of the tile store (e.g., Action field), and the root of the MPT relationship tree for Receipt information stored by the on-chain database (e.g., the Recept field) are also stored in the tile header.
In one example, the incidence relation stored by the relation tree comprises an incidence relation of entity information and user information; wherein, one entity information corresponds to one or more user information.
For example: on an electronic commerce platform (such as Taobao, Tianmao and Jingdong shopping mall) of the Internet, a commodity is purchased by a plurality of different users; on a self-media platform (such as WeChat and microblog) on the Internet, one piece of self-media data is praised or commented by a plurality of users; the one-to-many relationship between such entities and users can be expressed by using the association relationship between the entity information and the user information. The method and the device facilitate chaining of the service data and query of the service data by the user.
In another example, the association relationship of the relationship tree includes an association relationship of user information and point information; wherein one user information corresponds to one or more point information.
At this time, a user may have multiple points; for example: a user has both native credits on the blockchain and other types of credits. The incidence relation can describe the one-to-many relation between the user and the score, and meanwhile, the user can conveniently inquire. It should be noted that a user in the blockchain system at least has the native scores of the blockchain system; it is possible to have credits issued by other users or by themselves.
In another example, the incidence relation stored in the relation tree comprises the incidence relation of entity information and integral information; wherein one entity information corresponds to one or more integral information.
At this time, equivalently, on the block chain, the securitization of the entity is realized; for example: the ownership of a commodity corresponds to an integral, and the transfer of the integral corresponds to the transfer of the ownership of the commodity; the ownership of a set of houses corresponds to a predetermined number of points, the number of owned points corresponds to the ownership proportion of the houses, and namely, the houses are owned to sell or rent the prices in the same proportion.
For the step b), the second relation tree is a relation tree of the service data block chain before local synchronization.
And the third relation tree generated based on the second relation tree and the synchronized block data is a locally synchronized relation tree.
The structural manner of the relationship tree may include multiple manners, and specifically, refer to the descriptions in fig. 2 to fig. 3.
For the step c), the preset rules adopted for the calculation of the tree root may include multiple types, and may be specifically determined according to actual needs, and the specific preset rules may be as described in the foregoing fig. 2 to fig. 3.
For the step d), if the root of the first relation tree is the same as the root of the third relation tree, it can be stated that all the blocks in the service data block chain corresponding to the third relation tree are the same as the blocks in the service data block chain corresponding to the first relation tree, in other words, if the root of the first relation tree is the same as the root of the third relation tree, it is proved that the block data to be synchronized is correct. At this time, the data of the block to be synchronized can be used as the block data of the local newest block.
And if the tree root of the first relation tree is not the same as the tree root of the third relation tree, determining that the data to be synchronized is incorrect. At this time, retransmission may be requested from other block link points, or the synchronization procedure may be ended.
Fig. 6 is a schematic structural diagram of a data synchronization apparatus for a service data block chain according to an embodiment of the present invention. As shown in fig. 6, the apparatus is applied to a service data blockchain system, the blockchain system including a plurality of blockchain nodes, and the apparatus may include:
a receiving module 601, configured to receive a block to be synchronized, where the block to be synchronized includes a block header and a block body, the block header includes a tree root of a first state tree, and the block body includes block data;
a building module 602, configured to build a third state tree according to the block data and the second state tree of the local current block;
a calculating module 603, configured to calculate a root of the third state tree according to a preset rule;
an updating module 604, configured to compare the root of the first state tree with the root of the third state tree, if the two are the same, the block node updates the second state tree to the third state tree, and links the block to be synchronized behind the local current block.
In some embodiments, the apparatus further comprises:
the receiving module is further configured to receive a block to be synchronized, where a block header of the block to be synchronized includes a tree root of the first relation tree;
the building module is also used for building a third relation tree according to the block data and the second relation tree of the local current block;
the calculation module is further used for calculating the tree root of the third relational tree through a preset rule;
the updating module is further used for comparing the tree root of the first relation tree with the tree root of the third relation tree, if the tree roots are the same, the block link point updates the second relation tree into the third relation tree, and links the block to be synchronized behind the local current block.
In some embodiments, the first state tree is a global state after a user operation, the global state including one or more of integral information, user information, and entity information; the user operation is the operation of the user on the service data.
In some embodiments, the first relationship tree is a relationship between global states after a user operation, the relationship between global states after the user operation includes one or more of user information-integral information, entity information-integral information, and entity information-user information; the user operation is the operation of the user on the service data.
In some embodiments, the value of the leaf node in the relation tree stores user information-point information, entity information-point information and entity information-user information in a hash table or array; or the value of the leaf node of the relation tree is used for storing the root of a relation subtree, the relation subtree stores user information-point information, entity information-point information and entity information-user information, and the relation subtree is a Mercker tree or an MPT tree.
It can be understood that the data synchronization apparatus of the service data block chain in this embodiment corresponds to the method embodiment shown in fig. 4, and therefore, the above description about the method embodiment shown in fig. 4 is also applicable to the apparatus in this embodiment, and is not repeated herein.
Fig. 7 shows a block link point structure diagram provided in an embodiment of the present application, and the computer apparatus may include: processor 710, memory 720, input/output interface 730, communication interface 740, and bus 750. Wherein processor 710, memory 720, input/output interface 730, and communication interface 740 are communicatively coupled to each other within the device via bus 750. Processor 710 is configured to execute executable modules stored in memory 720, such as computer programs corresponding to the method embodiments shown in fig. 4.
As for the above fig. 7, the processor may be implemented by a general-purpose CPU (Central Processing Unit), a microprocessor, an Application Specific Integrated Circuit (ASIC), or one or more Integrated circuits, and is configured to execute the relevant programs to implement the technical solutions provided in the embodiments of the present Application.
The Memory may be implemented in the form of a ROM (Read Only Memory), a RAM (Random Access Memory), a static storage device, a dynamic storage device, or the like. The memory can store an operating system and other application programs, and when the technical solution provided by the embodiments of the present application is implemented by software or firmware, the relevant program codes are stored in the memory and called by the processor to be executed.
The input/output interface is used for connecting the input/output module to realize information input and output. The i/o module may be configured as a component in a device (not shown) or may be external to the device to provide a corresponding function. The input devices may include a keyboard, a mouse, a touch screen, a microphone, various sensors, etc., and the output devices may include a display, a speaker, a vibrator, an indicator light, etc.
The communication interface is used for connecting a communication module (not shown in the figure) to realize the communication interaction of the equipment and other equipment. The communication module can realize communication in a wired mode (such as USB, network cable and the like) and also can realize communication in a wireless mode (such as mobile network, WIFI, Bluetooth and the like).
A bus includes a path that transfers information between the various components of the device, such as the processor, memory, input/output interfaces, and communication interfaces.
It should be noted that although the above-described device shows only a processor, a memory, an input/output interface, a communication interface and a bus, in a specific implementation, the device may also include other components necessary for normal operation. Furthermore, it will be understood by those skilled in the art that the above-described apparatus may also include only those components necessary to implement the embodiments of the present application, and not necessarily all of the components shown in the figures.
Those of skill would further appreciate that the various illustrative components and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both, and that the various illustrative components and steps have been described above generally in terms of their functionality in order to clearly illustrate this interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied in hardware, a software module executed by a processor, or a combination of the two. A software module may reside in Random Access Memory (RAM), memory, Read Only Memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
The above-mentioned embodiments are further described in detail for the purpose of illustrating the invention, and it should be understood that the above-mentioned embodiments are only illustrative and not intended to limit the scope of the invention, and any modifications, equivalent substitutions, improvements, etc. made within the scope of the invention should be included in the scope of the invention.

Claims (9)

1. A data synchronization method of a service data blockchain is applied to a service data blockchain system, the blockchain system comprises a plurality of blockchain nodes, and the method comprises the following steps:
a block chain node receives a block to be synchronized, wherein the block to be synchronized comprises a block head and a block body, the block head comprises a tree root of a first state tree, and the block body comprises block data;
constructing a third state tree according to the block data and the second state tree of the local current block;
calculating the tree root of the third state tree according to a preset rule;
comparing the tree root of the first state tree with the tree root of the third state tree, if the tree roots are the same, updating the second state tree into the third state tree by the block link node, and linking the block to be synchronized behind the local current block;
the first state tree is a global state after user operation, and the global state comprises one or more of integral information, user information and entity information; the user operation is the operation of the user on the service data.
2. The data synchronization method of claim 1, further comprising:
a block chain node receives a block to be synchronized, wherein a block head of the block to be synchronized comprises a tree root of a first relation tree;
constructing a third relation tree according to the block data and the second relation tree of the local current block;
calculating the tree root of the third relational tree according to a preset rule;
and comparing the tree root of the first relation tree with the tree root of the third relation tree, if the tree roots are the same, updating the second relation tree into the third relation tree by the block chain node, and linking the block to be synchronized behind the local current block.
3. The method of claim 2, wherein the first relationship tree is a relationship between user-operated global states, and wherein the relationship between user-operated global states comprises one or more of user information-score information, entity information-score information, and entity information-user information; the user operation is the operation of the user on the service data.
4. The data synchronization method according to claim 3, wherein values of leaf nodes in the relational tree store the user information-score information, the entity information-score information, and the entity information-user information in a hash table or array; or the like, or, alternatively,
the value of the leaf node of the relation tree is used for storing the root of a relation subtree, the relation subtree stores user information-point information, entity information-point information and entity information-user information, and the relation subtree is a Mercker tree or an MPT tree.
5. A data synchronization apparatus for a service data blockchain, applied to a service data blockchain system, where the blockchain system includes a plurality of blockchain nodes, the apparatus comprising:
a receiving module, configured to receive a block to be synchronized, where the block to be synchronized includes a block header and a block body, the block header includes a tree root of a first state tree, and the block body includes block data;
the building module is used for building a third state tree according to the block data and the second state tree of the local current block;
the calculation module is used for calculating the tree root of the third state tree through a preset rule;
an updating module, configured to compare a root of the first state tree with a root of the third state tree, if the two are the same, update the second state tree to the third state tree by the block link node, and link the block to be synchronized behind the local current block;
the first state tree is a global state after user operation, and the global state comprises one or more of integral information, user information and entity information; the user operation is the operation of the user on the service data.
6. The data synchronization apparatus of claim 5, wherein the apparatus further comprises:
the receiving module is further configured to receive a block to be synchronized, where a block header of the block to be synchronized includes a tree root of a first relation tree;
the building module is further used for building a third relation tree according to the block data and the second relation tree of the local current block;
the calculation module is further used for calculating the tree root of the third relational tree through a preset rule;
the updating module is further configured to compare the root of the first relational tree with the root of the third relational tree, if the two are the same, update the second relational tree to the third relational tree by the block link point, and link the block to be synchronized behind the local current block.
7. A block link point comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the method of any one of claims 1 to 4 when executing the program.
8. A blockchain system comprising a plurality of blockchain nodes and a plurality of user equipments, the blockchain nodes being configured to implement the method of any one of claims 1 to 4.
9. A computer-readable storage medium, having stored thereon a computer program which, when executed by a processor, implements the method of any of claims 1-4.
CN202010270318.7A 2020-04-08 2020-04-08 Data synchronization method and device for service data block chain Active CN111488396B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010270318.7A CN111488396B (en) 2020-04-08 2020-04-08 Data synchronization method and device for service data block chain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010270318.7A CN111488396B (en) 2020-04-08 2020-04-08 Data synchronization method and device for service data block chain

Publications (2)

Publication Number Publication Date
CN111488396A CN111488396A (en) 2020-08-04
CN111488396B true CN111488396B (en) 2021-01-01

Family

ID=71810990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010270318.7A Active CN111488396B (en) 2020-04-08 2020-04-08 Data synchronization method and device for service data block chain

Country Status (1)

Country Link
CN (1) CN111488396B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182105B (en) * 2020-09-28 2022-06-17 湖北大学 Block chain data modification method based on Merkle tree
CN112487484A (en) * 2020-12-15 2021-03-12 深圳壹账通智能科技有限公司 Dynamic configuration method and device for node permission in block chain network
CN113704272B (en) * 2021-10-25 2022-01-18 北京大学 Digital object state expression method and device under man-machine-object fusion environment
CN114996350A (en) * 2022-04-28 2022-09-02 蚂蚁区块链科技(上海)有限公司 Block state synchronization method in block chain and first node
CN115118437B (en) * 2022-08-25 2022-10-28 人民法院信息技术服务中心 Multi-signature verification method, device and equipment based on consistent hash and path certification

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018125989A2 (en) * 2016-12-30 2018-07-05 Intel Corporation The internet of things
CN110334154A (en) * 2019-06-28 2019-10-15 阿里巴巴集团控股有限公司 Based on the classification storage method and device of block chain, electronic equipment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10103893B2 (en) * 2015-02-27 2018-10-16 Guardtime IP Holdings, Ltd. Blockchain-supported, fail-safe synchronization in a data authentication infrastructure
CN110442577A (en) * 2019-07-15 2019-11-12 杭州复杂美科技有限公司 A kind of storage of status data, inquiry and management method, equipment and storage medium
CN112887421B (en) * 2019-07-31 2023-07-18 创新先进技术有限公司 Block chain state data synchronization method and device and electronic equipment
CN110442579B (en) * 2019-08-02 2022-06-28 杭州复杂美科技有限公司 State tree data storage method, synchronization method and equipment and storage medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018125989A2 (en) * 2016-12-30 2018-07-05 Intel Corporation The internet of things
CN110334154A (en) * 2019-06-28 2019-10-15 阿里巴巴集团控股有限公司 Based on the classification storage method and device of block chain, electronic equipment

Also Published As

Publication number Publication date
CN111488396A (en) 2020-08-04

Similar Documents

Publication Publication Date Title
CN111488396B (en) Data synchronization method and device for service data block chain
CN111488608A (en) Data verification method and device for service data block chain
CN111488614A (en) Digital identity storage method and device based on service data block chain
CN111737726A (en) Relation data query method and device based on business data block chain
CN111694837A (en) Shared data storage method and device based on service data block chain
CN111488610A (en) State data query method and device based on service data block chain
CN111695136A (en) Method and system for realizing service data block chain
CN111488356A (en) Data storage method and device for service data block chain
CN111488611B (en) Relation data storage method and device of business data block chain
CN111523137A (en) Data recommendation method and device based on service data block chain
CN111488607A (en) Data processing method and device for service data block chain
CN111488606B (en) Data sharing method and device based on service data block chain
CN111737728A (en) Self-media data storage method and system based on service data block chain
CN111695137A (en) Travel data storage method and system based on business data block chain
CN111695139A (en) Knowledge question-answer data storage method and system based on service data block chain
CN111695132A (en) Voting data storage method and system based on service data block chain
CN111488345A (en) Storage optimization method and device for service data block chain
CN111737729A (en) Evaluation data storage method and system based on service data block chain
CN111488613A (en) Data efficient query method and device for service data block chain
CN111695135A (en) Relation data query method and device based on business data block chain
CN111488612A (en) State data query method and device based on service data block chain
CN111488605A (en) Data uplink method and device of service data block chain
CN111737732A (en) Contract data storage method and device based on business data block chain
CN111737733A (en) Method and system for realizing service data block chain
CN111737734A (en) Intellectual property data storage method and device based on service data block chain

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant