CN111695137A - Travel data storage method and system based on business data block chain - Google Patents

Travel data storage method and system based on business data block chain Download PDF

Info

Publication number
CN111695137A
CN111695137A CN202010270817.6A CN202010270817A CN111695137A CN 111695137 A CN111695137 A CN 111695137A CN 202010270817 A CN202010270817 A CN 202010270817A CN 111695137 A CN111695137 A CN 111695137A
Authority
CN
China
Prior art keywords
user
data
tree
tourism
information
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.)
Pending
Application number
CN202010270817.6A
Other languages
Chinese (zh)
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 CN202010270817.6A priority Critical patent/CN111695137A/en
Publication of CN111695137A publication Critical patent/CN111695137A/en
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/14Travel agencies
    • 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

Abstract

The application discloses a business data block chain-based tourism data storage method and a business data block chain-based tourism data storage system, wherein the method is applied to the tourism data storage system of the business data block chain, and the tourism data storage system of the business data block chain comprises a plurality of tourism block chain nodes; the method comprises the following steps: the tourism block chain node stores tourism data through a chain type storage structure and a tree structure, wherein the chain type structure is used for storing user tourism operation data, and the tree structure is used for storing state data of user tourism operation; the tree structure comprises a state tree and a relation tree; the state tree is used for storing the global state of the user tourism operation data, the global state is the global state after the user tourism operation, and the relation tree is used for storing the incidence relation of the user tourism operation. This application is through saving user's tourism operation data on business data block chain, realizes the cochain of user's tourism operation data, and adopts the mode of chain storage and tree-form storage, has promoted tourism operation data's inquiry efficiency.

Description

Travel data storage method and system based on business data block chain
Technical Field
The invention relates to the technical field of internet big data, and discloses a travel data storage method and system based on a business 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 travel data on the block chain becomes a problem to be solved urgently.
The foregoing description is merely for convenience in understanding and is not to be construed as limiting the prior art to the present application.
Disclosure of Invention
Based on the above problems, the present application provides a business data block chain-based tourism data storage method and system, and the method stores user tourism operation data on the business block chain to realize uplink of the user tourism operation data.
The first aspect of the application discloses a business data block chain-based tourism data storage method, which is applied to a tourism data storage system of a business data block chain, wherein the tourism data storage system of the business data block chain comprises a plurality of tourism block chain nodes; the method comprises the following steps:
the tourism block chain node stores tourism data through a chain type storage structure and a tree structure, the chain type structure is used for storing tourism operation data of a user, and the tree structure is used for storing state data of tourism operation of the user;
the tree structure comprises a state tree and a relation tree; the state tree is used for storing the global state of the user tourism operation data, the global state is the global state after the user tourism operation, and the relation tree is used for storing the incidence relation of the user tourism operation.
In one possible implementation, the user travel operation data includes one or more of a timestamp, an operation user address, an operated address, an operation type, an operation value, a point address, a user signature on the user travel operation data, and a hash value of the user travel operation data; wherein the content of the first and second substances,
the operation type of the travel data comprises the operation of the user on the travel data and the operation on the points, and the operated address comprises the operation address on the travel data and the address of the other operation user on the travel data.
In one possible implementation, the state tree stores user travel operation data global states including one or more of user information, travel data, and point data.
In a possible implementation manner, the association relationship stored in the relationship tree includes an association relationship between the user travel operation data information and the user information; wherein, one user tourism operation data information corresponds to one or more user information; and/or the incidence relation stored in the relation tree comprises the incidence relation between user information and point information; wherein, one user information corresponds to one or more integral information; and/or the incidence relation stored in the relation tree comprises the incidence relation between the user travel operation data information and the point information; wherein, one piece of user tourism operation data information corresponds to one or more pieces of point information.
In a possible implementation manner, the tree structure employs a database supporting attribute query or a KV database, where the database supporting attribute query includes a relational database and a memory database.
In one possible implementation, any one of the user information, the user travel operation data information, the point information, the user travel operation data information-user information, the user information-point information, and the user travel operation data information-point information is organized into an MPT state tree; wherein the content of the first and second substances,
the root of any MPT state Tree is stored in the block head, the MPT state Tree is a merkel Tree Merkle variant of a Tree structure fused with a prefix Tree Trie, and the merkel Tree Merkle is a Merkle Patricia Tree state Tree.
In one example, leaf nodes in the relational tree store a tree root of a relational sub-tree, values of leaf nodes of the relational sub-tree store one or more of user information-score information, entity information-user information, and entity information-score information; or
And the value of the leaf node in the relational tree stores one or more of user information-integral information, entity information-user information and entity information-integral information in an array or hash table mode.
In one example, any one of the user information, the entity information, the point information, the user information-point information, the entity information-user information and the entity information-point information is stored in a database supporting attribute query in a form of a data table, so that a user can query according to an attribute field in the data table; one kind of information corresponds to one kind of data table, any line in any kind of data table corresponds to one piece of information, and one kind of information comprises a plurality of lines of information.
The second aspect of the application discloses a business data block chain-based tourism data storage system, which is applied to the business data block chain-based tourism data storage system, wherein the business data block chain-based tourism data storage system comprises a plurality of tourism block chain nodes; the method comprises the following steps:
the tourism block chain node stores tourism data through a chain type storage structure and a tree structure, the chain type structure is used for storing tourism operation data of a user, and the tree structure is used for storing state data of tourism operation of the user;
the tree structure comprises a state tree and a relation tree; the state tree is used for storing the global state of the user tourism operation data, the global state is the global state after the user tourism operation, and the relation tree is used for storing the incidence relation of the user tourism operation.
In one possible implementation, the user travel operation data includes one or more of a timestamp, an operation user address, an operated address, an operation type, an operation value, a point address, a user signature on the user travel operation data, and a hash value of the user travel operation data; wherein the content of the first and second substances,
the operation type of the travel data comprises the operation of the user on the travel data and the operation on the points, and the operated address comprises the operation address on the travel data and the address of the other operation user on the travel data.
In one possible implementation, the state tree stores user travel operation data global states including one or more of user information, travel data, and point data.
In a possible implementation manner, the association relationship stored in the relationship tree includes an association relationship between the user travel operation data information and the user information; wherein, one user tourism operation data information corresponds to one or more user information; and/or
The incidence relation stored in the relation tree comprises the incidence relation between the user information and the integral information; wherein, one user information corresponds to one or more integral information; and/or
The incidence relation stored in the relation tree comprises the incidence relation between the user tourism operation data information and the point information; wherein, one piece of user tourism operation data information corresponds to one or more pieces of point information.
In a possible implementation manner, the tree structure employs a database supporting attribute query or a KV database, where the database supporting attribute query includes a relational database and a memory database.
In one possible implementation, any one of the user information, the user travel operation data information, the point information, the user travel operation data information-user information, the user information-point information, and the user travel operation data information-point information is organized into an MPT state tree; wherein the content of the first and second substances,
the root of any MPT state Tree is stored in the block head, the MPT state Tree is a merkel Tree Merkle variant of a Tree structure fused with a prefix Tree Trie, and the merkel Tree Merkle is a Merkle Patricia Tree state Tree.
A third aspect of the present application provides a computer-readable storage medium, which stores computer instructions, and when the computer instructions are executed by a processor, the computer instructions implement any one of the above-mentioned technical solutions.
A fourth aspect of the present application provides an electronic device, which includes a processor configured to execute any one of the above technical solutions.
The method comprises the steps that the user tourism operation data are stored in a business data block chain, so that the user tourism operation data can be linked up; meanwhile, the business data block chain adopts a chain storage mode and a tree storage mode, so that the inquiry of tourism operation data of a user is facilitated, and the inquiry efficiency is improved.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings needed to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
FIG. 1 is a schematic flow chart illustrating a method for storing travel data based on a business data block chain according to the present application;
FIG. 2 is a block diagram illustrating a business data block chaining system according to the present application;
FIG. 3 is a block chain based travel data storage architecture diagram of the present application;
FIG. 4 is a diagram illustrating an existing MPT state tree organization of account state data of a blockchain;
fig. 5 is a schematic diagram of node multiplexing on an existing MPT state tree;
fig. 6 is a block header structure diagram in a service data block chain system according to the present disclosure.
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. 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.
The terms "first" and "second" in this application are used for convenience of understanding only, and are not to be construed as sequential or limiting in any way.
For the purpose of facilitating understanding of the embodiments of the present invention, 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 invention.
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. 4, fig. 4 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 types of data nodes are typically included in the MPT tree, namely leaf nodes (leafnodes), extension nodes (extension nodes) and branch nodes (branch nodes).
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 BDA0002443091650000091
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 FIG. 4; as shown in fig. 4, 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. 4, 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. 4 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. 5, fig. 5 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. 5, it is assumed that the account status data in table 1 is the latest account status of all accounts on the blockchain after the transaction in blockakn is completed; the MPT state tree, organized based on the account state data in table 1, is also shown in fig. 4.
Assume that when the transaction in blockan +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 BlockN +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 blockchain after the transaction in BlockN +1 is completed.
Referring to fig. 5, 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. 4), 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. 5, 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 nodes corresponding to the MPT state tree corresponding to Block N may be directly multiplexed.
For example, as shown in fig. 5, 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. 5; 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 the Block N are used as historical account state data to be stored; for example, the leaf node shown in fig. 5, 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.
The present specification discloses a business data block chain-based tourism data storage method, as shown in fig. 1, which is applied to a business data block chain-based tourism data storage system, wherein the business data block chain-based tourism data storage system comprises a plurality of tourism block chain nodes; the method includes S101-S102.
The user information, the user tourism data and the point data in the specification all comprise associated attributes and non-associated attributes, and the associated attributes mean that attribute values can be increased or decreased; the user information refers to description information of a user, and the user information comprises a user address; the point information is point information issued by the user, and is point information other than the original points on the block chain, and the point information includes the name and the total amount of the point.
In addition, the service data block chain in this specification refers to a block chain including a chain storage structure and a tree storage structure and used for storing service data.
In addition, in this specification, no description is made on the processes of packaging the travel operation data of the user into blocks, completing the consensus verification, and the like, and a common data uplink mode may be adopted.
And S101, storing the tourism data by the tourism block chain node through a chain type storage structure and a tree structure, wherein the chain type structure is used for storing tourism operation data of the user, and the tree structure is used for storing state data of tourism operation of the user.
In one example, the user travel operation data includes one or more of a timestamp, an operating user address, an operated address, an operation type, a value of an operation, a loyalty point address, a user signature of the user travel operation data, and a hash value of the user travel operation data; wherein the operation type of the travel data comprises the operation of the user on the travel data and the operation on the points, and the operated address comprises the operation address on the travel data and the address of the user operating other travel data.
S102, the tree structure comprises a state tree and a relation tree; the state tree is used for storing the global state of the user tourism operation data, the global state is the global state after the user tourism operation, and the relation tree is used for storing the incidence relation of the user tourism operation.
In one example, the state tree stores user travel operation data global state including one or more of user information, travel data, and point data.
In one example, the relationship tree stores associations that include associations of user travel operation data information and user information; wherein, one user tourism operation data information corresponds to one or more user information.
For example, a ticket at a tourist attraction, a hotel at the tourist attraction, or a restaurant near the tourist attraction, may have a plurality of user purchasing or booking operations that are reserved for reference by the next user. And the data are stored on the block chain and cannot be tampered, so that the authenticity of the data is ensured, and the existing centralized database is more credible.
In one example, the relationship tree stores associations comprising associations of user information and point information; wherein one user information corresponds to one or more point information.
At this time, the score can be a tourist attraction ticket issued by the merchant user or a tourist attraction hotel accommodation volume, once the merchant user issues the score, the score can be stored in the block chain and cannot be tampered, and cheating of the merchant user is avoided. One user can have multiple points, which is convenient for the user to inquire.
In one example, the relationship tree stores associations that include associations of user travel operation data information and point information; wherein, one piece of user tourism operation data information corresponds to one or more pieces of point information.
At this time, one tourist attraction ticket can be one integral or a plurality of integrals; the user needs to participate in the activity of the merchant user to obtain points, and then the tourist attraction tickets are obtained according to the number of the points. Such as: when a user creates tourism operation data on a block chain, a tourist attraction ticket can be created into 5 points; after creation is complete, the 5 points identify a tourist attraction ticket on the blockchain. The corresponding relation is stored in the block chain, so that the query of a user can be facilitated, and the condition that a merchant tampers with the rule can be avoided.
In one example, the tree structure employs a database supporting attribute query or a KV database, wherein the database supporting attribute query includes a relational database and an in-memory database.
The relational database can be a MySql database, and the memory database can be a MongoDB database; when the database supporting attribute query is used for storing the user operation travel data, the user can conveniently query through the attribute fields, and the query efficiency of the user is improved.
When a KV database is adopted, for example, a Key-Value database is adopted, and the query needs to be carried out through an address; for example: the user information is inquired according to the user address, the user tourism operation data is inquired according to the user tourism operation address, and the user point data is inquired according to the point address; the user information-point information needs to be inquired according to the user address, the user tourism operation data information-point information needs to be inquired according to the user tourism operation data address, and the user tourism operation data information-user information needs to be inquired according to the user tourism operation data address.
It should be noted that the address of the user information can be obtained by performing multiple hash operations according to the user public key; the user tourism operation data address or the point address can be obtained by taking the preset first few characters of the operation result after the point operation is created by the user or the user tourism operation is initiated to carry out the Hash operation.
In one example, leaf nodes in the relational tree store a tree root of a relational sub-tree, values of leaf nodes of the relational sub-tree store one or more of user information-score information, entity information-user information, and entity information-score information; or
And the value of the leaf node in the relational tree stores one or more of user information-integral information, entity information-user information and entity information-integral information in an array or hash table mode.
In one example, any one of the user information, the entity information, the point information, the user information-point information, the entity information-user information and the entity information-point information is stored in a database supporting attribute query in a form of a data table, so that a user can query according to an attribute field in the data table; one kind of information corresponds to one kind of data table, any line in any kind of data table corresponds to one piece of information, and one kind of information comprises a plurality of lines of information.
In one example, any of the user information, the user travel operation data information, the point information, the user travel operation data information-user information, the user information-point information, and the user travel operation data information-point information is organized into an MPT status tree; the root of any one of the MPT state trees is stored in the block header (as shown in fig. 6), and the MPT state Tree is a Merkle Tree Merkle variant of a Tree structure fused with a prefix Tree Trie, and the Merkle Tree Merkle is a Merkle Patricia Tree state Tree.
In FIG. 6, Action represents user travel operation, Account represents user information, Asset represents points, Object represents user travel operation data, Object-Asset represents the association relationship between user travel operation data information and user information, Account-Asset represents the association relationship between user information and point information, and Object-Asset represents the association relationship between user travel operation data information and point information. Root denotes the tree Root. Briefly, a block includes a block header and a block body, and the root of the MPT state tree shown in fig. 6 is stored in the block header.
The method comprises the steps that the user tourism operation data are stored in a business data block chain, so that the user tourism operation data can be linked up; meanwhile, the business data block chain adopts a chain storage mode and a tree storage mode, so that the inquiry of tourism operation data of a user is facilitated, and the inquiry efficiency is improved.
The specification also discloses a business data block chain-based tourism data storage system, and the method is applied to the business data block chain-based tourism data storage system, and the business data block chain-based tourism data storage system comprises a plurality of tourism block chain nodes. As shown in fig. 2, fig. 2 shows 4 nodes, and the actual number of nodes is not limited thereto.
The tourism block chain node stores tourism data through a chain type storage structure and a tree structure, the chain type structure is used for storing tourism operation data of a user, and the tree structure is used for storing state data of tourism operation of the user;
the tree structure comprises a state tree and a relation tree; the state tree is used for storing the global state of the user tourism operation data, the global state is the global state after the user tourism operation, and the relation tree is used for storing the incidence relation of the user tourism operation.
In one example, the user travel operation data includes one or more of a timestamp, an operating user address, an operated address, an operation type, a value of an operation, a loyalty point address, a user signature of the user travel operation data, and a hash value of the user travel operation data; wherein the operation type of the travel data comprises the operation of the user on the travel data and the operation on the points, and the operated address comprises the operation address on the travel data and the address of the user operating other travel data.
In one example, the state tree stores user travel operation data global state including one or more of user information, travel data, and point data.
In one example, the relationship tree stores associations that include associations of user travel operation data information and user information; wherein, one user tourism operation data information corresponds to one or more user information; and/or the incidence relation stored in the relation tree comprises the incidence relation between user information and point information; wherein, one user information corresponds to one or more integral information; and/or the incidence relation stored in the relation tree comprises the incidence relation between the user travel operation data information and the point information; wherein, one piece of user tourism operation data information corresponds to one or more pieces of point information.
In one example, the tree structure employs a database supporting attribute query or a KV database, wherein the database supporting attribute query includes a relational database and an in-memory database.
In one example, any of the user information, the user travel operation data information, the point information, the user travel operation data information-user information, the user information-point information, and the user travel operation data information-point information is organized into an MPT status tree; the root of any MPT state Tree is stored in the block header, the MPT state Tree is a merkel Tree Merkle variant of a Tree structure fused with a prefix Tree Trie, and the merkel Tree Merkle is a Merkle Patricia Tree state Tree.
The same or similar parts in the above device embodiments and the above method embodiments can be referred to each other, and are not described herein again.
The present specification also discloses a computer readable storage medium storing computer instructions which, when executed by a processor, implement any one of the above-mentioned technical solutions.
The present specification also discloses an electronic device comprising a processor configured to perform any of the above-described technical solutions.
Meanwhile, the application also provides an embodiment of the entity device.
Fig. 3 shows a schematic diagram of a computer device, which may include: a processor 310, a memory 320, an input/output interface 330, a communication interface 340, and a bus 350. Wherein the processor 340, the memory 320, the input/output interface 330, and the communication interface 340 are communicatively coupled to each other within the device via a bus 350.
The processor 310 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 related programs to implement the technical solutions provided in the embodiments of the present specification.
The Memory 320 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 320 may store an operating system and other application programs, and when the technical solution provided by the embodiments of the present specification is implemented by software or firmware, the relevant program codes are stored in the memory 320 and called to be executed by the processor 310.
The input/output interface 330 is used for connecting an 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 340 is used for connecting a communication module (not shown in the figure) to implement communication interaction between the present device and other devices. 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).
Bus 350 includes a path that transfers information between the various components of the device, such as processor 310, memory 320, input/output interface 330, and communication interface 340.
It should be noted that although the above-mentioned device only shows the processor 310, the memory 320, the input/output interface 330, the communication interface 340 and the bus 350, in a specific implementation, the device may also include other components necessary for normal operation. In addition, those skilled in the art will appreciate that the above-described apparatus may also include only those components necessary to implement the embodiments of the present description, 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 invention.
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 intended to illustrate the objects, technical solutions and advantages of the present invention in further detail, and it should be understood that the above-mentioned embodiments are only illustrative of the present invention and are not intended to limit the scope of the present invention, and any modifications, equivalent substitutions, improvements and the like made within the scope of the present invention should be included in the scope of the present invention.

Claims (10)

1. The tourism data storage method based on the business data block chain is characterized in that the method is applied to a tourism data storage system of the business data block chain, and the tourism data storage system of the business data block chain comprises a plurality of tourism block chain nodes; the method comprises the following steps:
the tourism block chain node stores tourism data through a chain type storage structure and a tree structure, the chain type structure is used for storing tourism operation data of a user, and the tree structure is used for storing state data of tourism operation of the user;
the tree structure comprises a state tree and a relation tree; the state tree is used for storing the global state of the user tourism operation data, the global state is the global state after the user tourism operation, and the relation tree is used for storing the incidence relation of the user tourism operation.
2. The travel data storage method of claim 1, wherein the user travel operation data comprises one or more of a timestamp, an operating user address, an operated address, an operation type, an operation value, a point address, a user signature for the user travel operation data, and a hash of the user travel operation data; wherein the content of the first and second substances,
the operation type of the travel data comprises the operation of the user on the travel data and the operation on the points, and the operated address comprises the operation address on the travel data and the address of the other operation user on the travel data.
3. The travel data storage method of claim 1, wherein the state tree stores user travel operation data global state comprising one or more of user information, travel data, and point data.
4. The travel data storage method of claim 3, wherein the relationship tree stores associations that include associations of user travel operation data information and user information; wherein, one user tourism operation data information corresponds to one or more user information; and/or
The incidence relation stored in the relation tree comprises the incidence relation between the user information and the integral information; wherein, one user information corresponds to one or more integral information; and/or
The incidence relation stored in the relation tree comprises the incidence relation between the user tourism operation data information and the point information; wherein, one piece of user tourism operation data information corresponds to one or more pieces of point information.
5. The travel data storage method according to claim 1, wherein the tree structure employs a database supporting attribute query or a KV database, wherein the database supporting attribute query includes a relational database and an in-memory database.
6. The travel data storage method according to claim 4, wherein any one of the user information, the user travel operation data information, the point information, the user travel operation data information-user information, the user information-point information, and the user travel operation data information-point information is organized into an MPT tree or a Mercker tree; wherein the content of the first and second substances,
the root of any one tree is stored in the block header, the MPT tree is a Merck tree variation of a tree structure fused with a prefix tree Trie, and the Merck tree is a MerklePatricia tree.
7. The tourism data storage system based on the business data block chain is characterized in that the method is applied to the tourism data storage system of the business data block chain, and the tourism data storage system of the business data block chain comprises a plurality of tourism block chain nodes; the method comprises the following steps:
the tourism block chain node stores tourism data through a chain type storage structure and a tree structure, the chain type structure is used for storing tourism operation data of a user, and the tree structure is used for storing state data of tourism operation of the user;
the tree structure comprises a state tree and a relation tree; the state tree is used for storing the global state of the user tourism operation data, the global state is the global state after the user tourism operation, and the relation tree is used for storing the incidence relation of the user tourism operation.
8. The travel data storage system of claim 7, wherein the user travel operation data includes one or more of a timestamp, an operating user address, an operated address, an operation type, an operation value, a point address, a user signature for the user travel operation data, and a hash of the user travel operation data; wherein the content of the first and second substances,
the operation type of the travel data comprises the operation of the user on the travel data and the operation on the points, and the operated address comprises the operation address on the travel data and the address of the other operation user on the travel data.
9. The travel data storage system of claim 7, wherein the state tree stores user travel operation data global state including one or more of user information, travel data, and point data.
10. The travel data storage system of claim 9, wherein the relationship tree stores associations that include associations of user travel operation data information and user information; wherein, one user tourism operation data information corresponds to one or more user information; and/or
The incidence relation stored in the relation tree comprises the incidence relation between the user information and the integral information; wherein, one user information corresponds to one or more integral information; and/or
The incidence relation stored in the relation tree comprises the incidence relation between the user tourism operation data information and the point information; wherein, one piece of user tourism operation data information corresponds to one or more pieces of point information.
CN202010270817.6A 2020-04-08 2020-04-08 Travel data storage method and system based on business data block chain Pending CN111695137A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010270817.6A CN111695137A (en) 2020-04-08 2020-04-08 Travel data storage method and system based on business data block chain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010270817.6A CN111695137A (en) 2020-04-08 2020-04-08 Travel data storage method and system based on business data block chain

Publications (1)

Publication Number Publication Date
CN111695137A true CN111695137A (en) 2020-09-22

Family

ID=72476335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010270817.6A Pending CN111695137A (en) 2020-04-08 2020-04-08 Travel data storage method and system based on business data block chain

Country Status (1)

Country Link
CN (1) CN111695137A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113283842A (en) * 2021-06-11 2021-08-20 河南交通职业技术学院 Intelligent hotel management system based on block chain

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113283842A (en) * 2021-06-11 2021-08-20 河南交通职业技术学院 Intelligent hotel management system based on block chain

Similar Documents

Publication Publication Date Title
CN111488396B (en) Data synchronization 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
CN111488608A (en) Data verification method and device for service data block chain
CN111694837A (en) Shared data storage method and device based on service data block chain
CN111695136A (en) Method and system for realizing service data block chain
CN111488610A (en) State data query method and device based on service data block chain
CN111695137A (en) Travel data storage method and system based on business data block chain
CN111488344A (en) User operation data uplink method and system based on service data block chain
CN111488611B (en) Relation data storage method and device of business data block chain
CN111695139A (en) Knowledge question-answer data storage method and system based on service data block chain
CN111737728A (en) Self-media data storage method and system based on service data block chain
CN111488607A (en) Data processing method and device for service data block chain
CN111523137A (en) Data recommendation method and device based on service data block chain
CN111695132A (en) Voting data storage method and system based on service data block chain
CN111488606B (en) Data sharing method and device based on service data block chain
CN111737729A (en) Evaluation data storage method and system based on service data block chain
CN111488356A (en) Data storage method and device for service data block chain
CN111695134A (en) Search data storage method and system based on service data block chain
CN111695133A (en) Investigation data storage method and system based on business data block chain
CN111488352A (en) Point exchange method and device based on business data block chain
CN111737733A (en) Method and system for realizing service data block chain
CN111695143A (en) Community data storage method and system based on business data block chain
CN111488345A (en) Storage optimization method and device for service data block chain
CN111737730A (en) E-commerce data storage method and system based on service data block chain

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200922