Data management method and system
By establishing a correspondence between accounts and blocks in the blockchain system, and using filtering components and index partitioning to manage data, the problems of wasted storage space and low query efficiency in the blockchain system are solved, enabling fast and effective data management and analysis.
Patent Information
- Application Number
- CN202310486105.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-04-28
- Publication Date
- 2026-08-25
- Estimated Expiration
- 2043-04-28
AI Technical Summary
Existing blockchain systems suffer from problems such as wasted storage space and low query efficiency in data management, making it difficult to quickly query transactions initiated by a specific account across several blocks.
By combining transaction data with account data from the blockchain system, establishing a correspondence between storage files and blocks, and utilizing filtering components and index partitioning to manage data, it is possible to quickly query transaction data for a specific account.
It effectively saves storage space and enables quick querying of transactions initiated by a specified account in the blockchain system, supporting more efficient data management and analysis.
Smart Images

Figure CN116431584B_ABST
Abstract
Description
Technical Field
[0001] The embodiments in this specification pertain to the field of blockchain, and in particular relate to a data management method and system. Background Technology
[0002] Blockchain is a novel application model of computer technologies such as distributed data storage, peer-to-peer transmission, consensus mechanisms, and cryptographic algorithms. In a blockchain system, data blocks are sequentially linked together to form a chain-like data structure, and a distributed ledger is cryptographically guaranteed to be immutable and unforgeable. Due to its decentralized, immutable, and autonomous characteristics, blockchain is receiving increasing attention and application. Summary of the Invention
[0003] The purpose of this invention is to provide a data management method and system.
[0004] Firstly, a data management method is provided, executed by a data management system. The data management system stores multiple storage files, where any i-th storage file corresponds to several first blocks in a blockchain system. The i-th storage file includes on-chain data of the multiple first accounts, each using multiple first accounts as keys. Multiple first transactions included in the multiple first blocks are initiated by the multiple first accounts. The on-chain data of any j-th first account is used to indicate several second transactions and the block number of their respective blocks. All of the several second transactions are initiated by the j-th first account and belong to the multiple first transactions. The method includes: obtaining a first query request, which at least indicates a third account to be queried and several second blocks; determining several first storage files corresponding to the several second blocks from the multiple storage files; querying the on-chain data of the third account from the multiple first storage files; and determining several first target transactions belonging to the several second blocks from the several third transactions indicated by the on-chain data of the third account and the block number of their respective blocks.
[0005] Secondly, a data management system is provided, which stores multiple storage files. Any i-th storage file corresponds to several first blocks in a blockchain system. The i-th storage file includes on-chain data of the multiple first accounts, each using a first account as a key. Multiple first transactions included in the multiple first blocks are initiated by the multiple first accounts. The on-chain data of any j-th first account is used to indicate several second transactions and the block number of their respective blocks. All of the several second transactions are initiated by the j-th first account and belong to the multiple first transactions. The data management system includes: a request acquisition unit for acquiring a first query request, which at least indicates a third account to be queried and several second blocks; a matching processing unit for determining several first storage files corresponding to the several second blocks from the multiple storage files; a query processing unit for querying the on-chain data of the third account from the multiple first storage files; and a transaction determination unit for determining several third target transactions belonging to the several second blocks from the several third transactions indicated by the on-chain data of the third account and the block number of their respective blocks.
[0006] Thirdly, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed in a computer, causes the computer to perform the method described in the first aspect.
[0007] Fourthly, a computing device is provided, including a memory and a processor, wherein the memory stores executable code, and the processor executes the executable code to implement the method described in the first aspect.
[0008] In the embodiments of this specification, the data management system stores multiple storage files. Any i-th storage file corresponds to several first blocks in the blockchain system. The i-th storage file includes on-chain data of multiple first accounts using multiple first accounts as keys. Multiple first transactions included in the several first blocks are initiated by multiple first accounts. The on-chain data of any j-th first account is used to indicate several second transactions initiated by the j-th first account within the multiple first transactions, as well as the block numbers of their respective belonging blocks. When it is necessary to query a first target transaction initiated by a certain third account within several second blocks, the data management system can determine several first storage files corresponding to the several second blocks from its stored multiple storage files. Then, it queries the on-chain data of the third account from the several first storage files. Based on the several third transactions indicated by the on-chain data of the third account and the block numbers of their respective belonging blocks, it determines several first target transactions belonging to the several second blocks from the several third transactions. In this way, by centrally managing the various transactions initiated by the same account in these blocks and their respective block numbers through storage files corresponding to several blocks, it is beneficial to save storage space and also enables the data management system to more quickly query all transactions initiated by a specified account in a specified block. Attached Figure Description
[0009] To more clearly illustrate the technical solutions of the embodiments in this specification, the drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this specification. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0010] Figure 1 This is an architecture diagram of a blockchain system provided in the embodiments of this specification;
[0011] Figure 2 This is one of the flowcharts for a data management method provided in the embodiments of this specification;
[0012] Figure 3 This is a schematic diagram illustrating the blockchain data storage provided as an example in the embodiments of this specification;
[0013] Figure 4 This is a schematic diagram of the structure of the filtering component provided as an example in the embodiments of this specification;
[0014] Figure 5 This is a second flowchart of a data management method provided in the embodiments of this specification;
[0015] Figure 6 This is the third flowchart of a data management method provided in the embodiments of this specification;
[0016] Figure 7 This is the fourth flowchart of a data management method provided in the embodiments of this specification;
[0017] Figure 8 This is a schematic diagram of the structure of a data management system provided in the embodiments of this specification. Detailed Implementation
[0018] To enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this specification, and not all embodiments. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this specification.
[0019] Figure 1 This is an exemplary architecture diagram of a blockchain system provided in the embodiments of this specification. The blockchain system may include N blockchain nodes, wherein... Figure 1 The example shows eight blockchain nodes, numbered 1 through 8. The connections between the nodes schematically represent P2P (Peer-to-Peer) connections, such as Transmission Control Protocol (TCP) connections, which are used to support the transfer of data between different nodes.
[0020] In a blockchain system, the system data that needs to be persistently stored can be divided into two parts: block data and state data.
[0021] Block data includes one or more blocks in ascending order of block height (or block number). A single block may include a block header and a block body. The block header may include the previous block's block hash (or parent hash), timestamp, block number (BlockNum), state root hash (State_Root), transaction root hash (Transaction_Root), and receipt root hash (Receipt_Root), etc. The block body may include a set of transactions and a set of receipts.
[0022] A transaction in a blockchain system refers to a unit of task executed and recorded within the blockchain system. A single transaction typically includes a From field, a To field, and a Data field. The From field includes the account that initiated the transaction, and the To field may include another account involved in the transaction.
[0023] For any k-th block, based on the state data with block height (or version) k-1, execute multiple transactions in the transaction set belonging to the k-th block, arranged in sequence, and obtain the execution results of these transactions. Then, update the state data with block height k-1 based on the execution results of these transactions to obtain the state data with block height k.
[0024] Blockchain technology has been widely adopted; however, it has also been accompanied by numerous illegal activities based on it, leading to a growing demand for regulatory oversight of data within blockchain systems. Furthermore, some data users may wish to utilize data from blockchain systems on an on-demand basis. Based on these needs, queries typically target accounts registered in the blockchain system, retrieving all transactions initiated by those accounts within a specific time interval or block. This allows for modeling and analysis (e.g., constructing knowledge graphs) or other processing based on the queried transactions.
[0025] This specification provides a data management method and system in its embodiments. The data management system stores multiple storage files, where any i-th storage file corresponds to several first blocks in a blockchain system. The i-th storage file includes on-chain data of multiple first accounts using multiple first accounts as keys. Multiple first transactions included in the several first blocks are initiated by multiple first accounts. The on-chain data of any j-th first account is used to indicate several second transactions initiated by the j-th first account within the multiple first transactions, as well as the block numbers of their respective belonging blocks. When it is necessary to query a first target transaction initiated by a certain third account within several second blocks, the data management system can determine several first storage files corresponding to the several second blocks from its stored multiple storage files, then query the on-chain data of the third account from the several first storage files, and further determine several first target transactions belonging to the several second blocks from the several third transactions based on the several third transactions indicated by the on-chain data of the third account and the block numbers of their respective belonging blocks. In this way, by centrally managing the various transactions initiated by the same account in these blocks and their respective block numbers through storage files corresponding to several blocks, it is beneficial to save storage space and also enables the data management system to more quickly query all transactions initiated by a specified account in a specified block.
[0026] Figure 2This is one of the flowcharts for a data management method provided in the embodiments of this specification. This method can be executed by a data management system. The method exemplarily describes the process by which the data management system, through any i-th storage file, stores multiple first transactions included in several first blocks corresponding to the i-th storage file in the blockchain system. It should be noted that the number of several first blocks can specifically be one or more; when the i-th storage file corresponds to multiple first blocks, the block numbers of these multiple first blocks are consecutive. Furthermore, it should be noted that different storage files correspond to different first blocks.
[0027] See Figure 2 As shown, the method may include, but is not limited to, some or all of the following steps S201 to S205.
[0028] Step S201: Obtain from the blockchain system a plurality of first transactions included in a plurality of first blocks corresponding to the i-th storage file.
[0029] A data management system can manage transactions in blocks generated by a blockchain system in chronological order. See also... Figure 3 As shown, for consecutive time intervals Epoch-1 and Epoch-2, the blockchain system may generate multiple blocks within a single time interval. For example, Epoch-1 may generate 6 blocks with block numbers from V1 to V6, and Epoch-2 may generate 6 blocks with block numbers from V7 to V12. The data management system can create corresponding storage files for one or more consecutive blocks, using these storage files to manage the multiple transactions included in one or more corresponding blocks. For example, storage files File-1 can be created corresponding to blocks V1 and V2, File-2 to blocks V3 and V4, File-3 to blocks V5 and V6, File-4 to blocks V7 and V8, File-5 to blocks V9 and V10, and File-6 to blocks V11 and V12.
[0030] The data management system can send a data synchronization request to the blockchain system containing the block numbers (block heights) of the first blocks, so that the blockchain system can return to the data management system the multiple first transactions included in the first blocks.
[0031] Step S203: Construct the file content to be stored in the i-th storage file based on multiple first transactions and their respective block numbers. The file content includes on-chain data of multiple first accounts with multiple first accounts as keys. These multiple first transactions are initiated by multiple first accounts. The on-chain data of any j-th first account is used to indicate several second transactions and their respective block numbers. These several second transactions are all initiated by the j-th first account and belong to the multiple first transactions.
[0032] The data management system can maintain a memory table corresponding to the i-th storage file in memory, and construct the file content of the i-th storage file in the memory table. The data management system can identify the account included in the From field of the first transaction as the first account, thereby obtaining multiple first accounts that initiated the multiple first transactions. Furthermore, for any j-th first account among the multiple first accounts, several second transactions initiated by the j-th first account can be determined from the multiple first transactions, and the on-chain data of the j-th first account can be constructed using these second transactions and the block numbers of their respective blocks.
[0033] Taking the i-th storage file as File-2, and its corresponding first blocks as blocks V3 and V4 as an example, please continue reading. Figure 3 Assume that block V3 includes transactions Tx31 and Tx32 initiated by account Node1, transaction Tx33 initiated by account Node2, and transaction Tx34 initiated by account Node3; block V4 includes transactions Tx41 initiated by account Node1, transaction Tx4 initiated by account Node2, and transactions Tx43 and Tx44 initiated by account Node4. Then, Node1, Node2, Node3, and Node4 constitute multiple first accounts, and the file content to be stored in File-2 includes the on-chain data (E-list) of each Node1, Node2, Node3, and Node4, using Node1, Node2, Node3, and Node4 as keys. Specifically, Node1's E-list can indicate transactions Tx31, Tx32, and Tx41, as well as the block numbers V3, V3, and V4 of their respective blocks; Node2's E-list can indicate transactions Tx33 and Tx42, as well as the block numbers V3 and V4 of their respective blocks; Node3's E-list can indicate transaction Tx34, as well as the block number V3 of its respective block; and Node4's E-list can indicate transactions Tx43 and Tx44, as well as the block numbers V4 and V4 of their respective blocks.
[0034] For any j-th first account among multiple first accounts, its on-chain data can completely include several second transactions initiated by the j-th first account and the block number of each of their respective blocks. Alternatively, to further save storage space, since the From field of several second transactions initiated by the j-th first account includes the same j-th first account, several fields corresponding one-to-one with several second transactions can be maintained in the E-list of the j-th first account. Each field includes / stores the remaining information of its corresponding second transaction other than the j-th first account included in the From field.
[0035] Step S205: Store the file content to the i-th storage file.
[0036] The i-th storage file may include a data partition and an index partition. The data partition stores the on-chain data of multiple first accounts, and the index partition stores the address offsets of the multiple first accounts and their corresponding on-chain data within the data partition. That is, after writing the file content / on-chain data of multiple first accounts into the data partition, the address offsets of the multiple first accounts and their corresponding on-chain data within the data partition can also be stored in the index partition of the i-th storage file. This facilitates quickly determining whether on-chain data for a particular account exists in the i-th storage file and the location of that on-chain data within the storage file. In some possible implementations, the i-th storage file may not need to be divided into data and index partitions; it is only necessary to ensure that the on-chain data of multiple first accounts is completely stored in the i-th storage file.
[0037] Based on the aforementioned steps S201 to S205, the system can support data requesters to quickly query all transactions initiated by a specific account in several second blocks using the account as the key. To further improve query efficiency and avoid querying a storage file using that account as the key even when the storage file does not contain on-chain data for that account, the data storage system can further execute the following step S207: configuring the filtering component corresponding to the i-th storage file based on the i-th storage file and multiple first accounts.
[0038] Data storage systems can maintain different filtering components for different sets of blocks / stored files. For example, please see [link to relevant documentation]. Figure 3The data storage system can maintain different filtering components RAMBO-1 and RAMBO-2 for Epoch-1 and Epoch-2. RAMBO-1 corresponds to blocks V1 to V6 generated in Epoch-1, and RAMBO-2 corresponds to blocks V7 to V12 generated in Epoch-2. That is, RAMBO-1 corresponds to storage files File-1, File-2, and File-3, and RAMBO-2 corresponds to storage files File-4, File-5, and File-6. The filtering components can be filters that support existence queries based on accounts, such as Bloom filters; or, to improve the accuracy of existence queries, a single filtering component can include multiple filter groups, and a single filter group can include multiple filters, such as multiple Bloom filters arranged in sequence.
[0039] In the case where a single filtering component includes multiple filter groups, and a single filter group includes multiple filters, for any p-th filter group in the filtering component corresponding to several first blocks, the corresponding target filter can first be determined from the p-th filter group based on the i-th storage file, and then the target filter can be configured based on multiple first accounts.
[0040] Taking the i-th stored file as File-2 as an example, this document describes the process of configuring the filtering component RAMBO-1 corresponding to File-2 based on File-2 and multiple first accounts such as Node1, Node2, Node3, and Node4. Please refer to [link to documentation]. Figure 4As shown, RAMBO-1, corresponding to File-1, File-2, and File-3, includes filter groups Table-1 and Table-2, for example. Table-1 includes, for example, three filters BF-11, BF-12, and BF-13 arranged in sequence, and Table-2 includes, for example, three filters BF-21, BF-22, and BF-23 arranged in sequence. For example, the hash value H1 of the identifier of the stored file File-2 (e.g., file name) and the identifier of Table-1 (e.g., the sequence number 1 of Table-1 in the two filter components included in RAMBO-1) can be calculated, and then the corresponding target filter (let's assume it's the second filter BF-12) can be determined from Table-1 based on the hash value H1. Next, for each of the multiple first accounts, BF-12 is configured based on that first account. For example, for Node1, Node1 can be used as an element allowed for existence queries to calculate its hash value H2. Based on Node1's hash value H2, the target position corresponding to Node1 (e.g., the fourth position from the left in the bit sequence) is determined from the element existence bitmap of BF-12 (which is usually represented as a bit sequence or binary vector consisting of single bit values 0 or 1), and the value of the target position is set to 1, completing the configuration of BF-12 based on Node1. Based on a similar process, the corresponding target filter BF-23 may also be determined from Table-2, and then BF-23 is configured based on Node1, Node2, Node3, and Node4.
[0041] pass Figure 2 The method shown allows the data storage system to obtain multiple filtering components and their corresponding multiple storage files. The filtering components are used to support querying whether there is on-chain data of a certain account in the corresponding storage file. Any i-th storage file includes on-chain data of multiple first accounts with multiple first accounts as keys. The multiple first transactions included in the multiple first blocks corresponding to the i-th storage file are initiated by the multiple first accounts. The on-chain data of any j-th first account indicates the multiple second transactions initiated by the j-th first account in the multiple first transactions and the block number of their respective blocks.
[0042] While the preceding text exemplifies the process by which a data storage system obtains multiple filtering components and their corresponding storage files, it is understood that the data management system can also obtain multiple filtering components and their corresponding storage files through other means. For example, multiple filtering components and their corresponding storage files can be created in a blockchain system, and the blockchain system can then send these multiple filtering components and their corresponding storage files to the data management system.
[0043] Figure 5This is a second flowchart of a data management method provided in the embodiments of this specification. The method can be executed by a data management system. The data storage system stores at least multiple storage files. Any i-th storage file corresponds to several first blocks in the blockchain system. The i-th storage file includes on-chain data of multiple first accounts using multiple first accounts as keys. Multiple first transactions included in the several first blocks are initiated by these multiple first accounts. The on-chain data of any j-th first account can indicate several second transactions initiated by the j-th first account within these multiple first transactions, as well as the block number of their respective blocks. Optionally, the data management system also stores multiple filtering components corresponding to the multiple storage files. The filtering components are used to support querying whether on-chain data of a certain account exists in their corresponding storage files.
[0044] See Figure 5 As shown, the method may include, but is not limited to, some or all of the following steps S501 to S513.
[0045] Step S501: Obtain a first query request, which indicates at least the third account to be queried and several second blocks.
[0046] The first query request is used to request a query for all transactions initiated by a third account included in the plurality of second blocks. Alternatively, a single transaction corresponds to an edge in the knowledge graph, with the two endpoints of the edge being the accounts included in the From and To fields of the transaction, and the direction of the edge pointing from the account included in the From field to the account included in the To field. The attributes of the edge may include, for example, the information included in the data field of the transaction and / or the block number of the block to which the transaction belongs; the first query request is used to request a query for: a directed graph / knowledge graph constructed using transactions in the plurality of second blocks and starting from a third account.
[0047] The following description primarily uses Node1 as the third account and several second blocks, including blocks V3 to V5, as an example.
[0048] Step S503: Determine a number of first storage files corresponding to a number of second blocks from a number of storage files.
[0049] See Figure 3 As shown, the first storage files corresponding to blocks V3 to V5 include, for example, storage files File-2 and File-3.
[0050] Step S505: Query the on-chain data of the third account from several first storage files.
[0051] In the case where multiple filtering components are stored in the data management system, see Figure 6As shown, the data management system can, for example, complete the query of on-chain data of a third account from several first storage files through some or all of the following steps S5051 to S5059. Otherwise, the data management system can complete the query of on-chain data of a third account from several first storage files through some or all of the following steps S5055 to S5059.
[0052] Step S5051: Determine the first filter component corresponding to any q-th first storage file from among multiple filter components.
[0053] Step S5053: Determine whether the q-th first storage file contains on-chain data of the third account based on the first filtering component. If so, the on-chain data of the third account can be queried from the q-th first storage file.
[0054] In the case of a single filter component, for example, the hash value H3 of the third account Node1 can be calculated, and then the corresponding target position can be determined from the element existence bitmap of the filter based on the hash value H3. If the value of the target position is 1, then the on-chain data E-list of Node1 in the qth first storage file can be directly determined.
[0055] The first filtering component includes multiple filter groups. When a single filter group contains multiple filters, for the first storage file, such as File-2, following the process of configuring the filtering component RAMBO-1 described earlier, for any p-th filter group in the first filtering component, the hash value H4 of the identifier of storage file File-2 and the identifier of the p-th filter group can be calculated. The corresponding target filter is then determined from the p-th filter group. Next, the hash value H5 of Node1 is calculated, and based on the hash value H5, the corresponding target position is determined from the element existence bitmap of the target filter. Then, it is checked whether the value at that target position is 1. If it is not 1, it is directly determined that storage file File-2 does not contain on-chain data of Node1. Conversely, if the target position in the existence bitmap of the target filter is found to be 1 through multiple target filters in the multiple filter groups included in the first filtering component, it indicates that storage file File-2 contains the on-chain data E-list of Node1.
[0056] Alternatively, the functions of steps S50513 and S5053 can be achieved in other ways. For example, for all filters in multiple filter groups in the first filtering component, the existence of the third account as the key is queried in a traversal manner. Through the pre-recorded correspondence between filters and storage files, a set of storage files that may contain the third account as the key can be obtained for a single filter group. Then, the intersection of the storage file sets corresponding to the multiple filter groups can be taken. Each storage file in the intersection may contain on-chain data with the third account as the key. Subsequently, the on-chain data with the third account as the key can be searched in each storage file in the intersection.
[0057] When the q-th storage file includes an index partition and a data partition, the data management system can complete the query of the on-chain data of the third account from the q-th first storage file through some or all of the following steps S5055 to S5059.
[0058] Step S5055: Query the third account in the index partition of the qth first storage file.
[0059] If the third account is successfully found in the index partition of the qth first storage file, then step S5057 is executed to obtain the address offset corresponding to the on-chain data of the third account from the index partition of the qth first storage file.
[0060] Step S5059: Based on the address offset corresponding to the on-chain data of the third account, obtain the on-chain data of the third account from the data partition of the qth first storage file.
[0061] The process described above for querying the on-chain data of a third account from several first storage files is exemplary and can also be implemented in other ways. For example, when the first storage files are not divided into index partitions and data partitions, the data management system can use the third account as the key to traverse and query the on-chain data of the third account in any q-th first storage file.
[0062] After retrieving the on-chain data of the third account from several first storage files, return to... Figure 5 In step S507, based on the third transactions indicated by the on-chain data of the third account and the block number of their respective blocks, a number of first target transactions belonging to a number of second blocks are determined from the number of third transactions.
[0063] For example, the first storage file File-3 may store on-chain data of a third account Node3. Among the several third transactions indicated by Node3's on-chain data, there may be transactions belonging not only to the second block v5, but also transactions from other blocks, such as block v6. Through step S507, based on the several third transactions indicated by the third account Node3's on-chain data and the block numbers v5 and v6 of their respective blocks, several first target transactions belonging to the second block v5 can be determined from these third transactions.
[0064] Referring to the preceding text, the first query request may be used to request a directed graph / knowledge graph constructed using transactions from several second blocks and originating from a third account. In this case, the data management system may also continue to execute some or all of the following steps S509 to S513 in response to the first query request it has obtained.
[0065] Step S509: Obtain several fifth accounts pointed to by several first target exchanges.
[0066] The fifth account pointed to by a single first target transaction refers to the account included in the To field of that first target transaction. Several fifth accounts pointed to by several first target transactions constitute the set of accounts to be queried.
[0067] Step S511: For any m-th fifth account, query the on-chain data of the m-th fifth account from several first storage files. That is, for any m-th account to be queried in the set of accounts to be queried, the on-chain data of the m-th account to be queried can be queried from several first storage files. It can be understood that the process of querying the on-chain data of the m-th account to be queried from several first storage files is basically similar to the process of querying the on-chain data of the third account from several first storage files as exemplarily described above, so it will not be repeated here.
[0068] Step S513: Based on the on-chain data of the m-th fifth account indicating several fourth transactions and the block number of their respective blocks, determine several second target transactions belonging to several second blocks from the several fourth transactions.
[0069] The data management system uses several first target transactions and various second target transactions to support the generation of a knowledge graph corresponding to the first query request. In one possible implementation, the data management system can also obtain several sixth accounts pointed to by the several second target transactions, and then clean the account set consisting of the several sixth accounts. The cleaning process includes, for example, deleting the sixth account from the account set if the data management system has already queried the on-chain data of the sixth account from several first storage files during the response to the first query request. The cleaned account set can be used as a new set of accounts to be queried, and the process similar to steps S511 to S513 can be continued until several executions of the process similar to steps S511 to S513 have been performed, or the new set of accounts to be queried is empty. At this point, the data management system can use all the target transactions it queried during the response to the first query request to construct a knowledge graph corresponding to the first query request.
[0070] In one possible implementation, the data management system may also store multiple versions of state data / world state data corresponding to multiple filtering components, for example, storing multiple versions of state data corresponding to multiple filtering components in a snapshot manner; for each corresponding filtering component and state data, the version of the state data may be, for example, the block height of any block corresponding to that filtering component. Please continue to see... Figure 3 For example, the data management system can also store the state data corresponding to RAMBO-1 and RAMBO-2 respectively. The state data corresponding to RAMBO-1 could be, for example, the state data corresponding to any block from V1 to V6, and the state data corresponding to RAMBO-1 could be, for example, the state data corresponding to any block from V7 to V12. More specifically, the state data corresponding to RAMBO-1 could be, for example, the state data obtained by the blockchain system after generating the block preceding block v1, and the state data corresponding to RAMBO-2 could be, for example, the state data obtained by the blockchain system after generating block v6. Based on this, when a data requester needs to query the account status of a specific account (the fourth account) after the blockchain system generates a specific block (the third block), the data management system can more efficiently complete the query of the fourth account's account status after the blockchain system generates the third block.
[0071] Figure 7 This is the fourth flowchart of a data management method provided in the embodiments of this specification. The method exemplarily describes the process by which a data management system queries the account status of a fourth account after the generation of a specific third block in the blockchain system. See also... Figure 7As shown, the method may include, but is not limited to, some or all of the following steps S701 to S711.
[0072] Step S701: Obtain a second query request, which at least indicates the fourth account and the third block to be queried.
[0073] The following text will primarily use Node1 as an example to illustrate the concept, with the fourth account being Node1 and the third block being v3.
[0074] Step S703: Determine the second filter component corresponding to the third block from among multiple filter components.
[0075] Please continue reading Figure 3 For example, it can be determined that the second filtering component corresponding to the third block v3 is RAMBO-1.
[0076] Step S705: Determine the target world state data corresponding to the second filtering component from multiple world state data.
[0077] Step S707: Based on the block height of the third block, determine at least one second storage file from the storage files corresponding to the second filtering component.
[0078] For each storage file corresponding to the second filtering component, if at least one block among the blocks corresponding to the storage file has a block number / block height that is not greater than the block height of the third block, then the storage file will be identified as the second storage file. For example, if the third block is block v3, among the storage files File-1, File-2, and File-3 corresponding to RAMBO-1, File-1 and File-2 will be identified as the second storage file, while File-3 will not be identified as the second storage file.
[0079] Step S709: Obtain each second target transaction involving the fourth account and the block number of the block to which each transaction belongs from at least one second storage file. For example, the data management system can, for instance, reconstruct multiple transactions included in the blocks corresponding to File-1 and File-2 based on the on-chain data of the multiple accounts included in File-1 and File-2, and then determine all second target transactions involving the fourth account and the block number of the block to which each transaction belongs from these multiple transactions. The second target transactions involving the fourth account refer to transactions whose From or To field values are for the fourth account.
[0080] Step S711: Determine the account status of the fourth account after the third block is generated in the blockchain system, based on the target world state, each second target transaction, and the block number of their respective blocks.
[0081] For all second target transactions whose block height is no greater than that of the third block, the data management system can, for example, replay these second target transactions to update the account status of the fourth account recorded in the target world state according to these second target transactions, thereby obtaining the account status of the fourth account after the third block is generated in the blockchain system.
[0082] Based on the same concept as the aforementioned method embodiments, this specification also provides a data management system 800. The data management system 800 stores multiple storage files, with any i-th storage file corresponding to several first blocks in a blockchain system. The i-th storage file includes on-chain data of the multiple first accounts, each using a multiple first account as a key. Multiple first transactions included in the multiple first blocks are initiated by the multiple first accounts. The on-chain data of any j-th first account is used to indicate several second transactions and the block number of their respective blocks. All of the second transactions are initiated by the j-th first account and belong to the multiple first transactions. Figure 8 As shown, the data management system 800 includes: a request acquisition unit 801, used to acquire a first query request, which at least indicates a third account to be queried and several second blocks; a matching processing unit 803, used to determine several first storage files corresponding to the several second blocks from the multiple storage files; a query processing unit 805, used to query the on-chain data of the third account from the several first storage files; and a transaction determination unit 807, used to determine several third target transactions belonging to the several second blocks from the several third transactions indicated by the on-chain data of the third account and the block number of their respective blocks.
[0083] In one possible implementation, the i-th storage file includes a data partition and an index partition. The data partition stores the on-chain data of the plurality of first accounts, and the index partition stores the address offsets of the plurality of first accounts and their on-chain data within the data partition. Specifically, the query processing unit 805 is configured to query the third account in the index partition of any q-th first storage file; if the third account is successfully found in the index partition of the q-th first storage file, the address offset corresponding to the on-chain data of the third account is obtained from the index partition of the q-th first storage file; and based on the address offset corresponding to the on-chain data of the third account, the on-chain data of the third account is obtained from the data partition of the q-th first storage file.
[0084] In one possible implementation, the data management system 800 further stores multiple filtering components. Specifically, the query processing unit 805 is configured to determine the first filtering component corresponding to the q-th first storage file from among the multiple filtering components; determine whether the q-th first storage file stores on-chain data of the third account based on the first filtering component; and if so, perform a query on the index partition of the q-th first storage file to find the third account.
[0085] In one possible implementation, the data management system 800 further stores multiple world state data of the blockchain system, which correspond one-to-one with the multiple filtering components; the data management system also includes a state management unit 809; wherein, the request acquisition unit 801 is further configured to acquire a second query request, indicating at least the fourth account and the third block to be queried; the matching processing unit 803 is further configured to determine the second filtering component corresponding to the third block from the multiple filtering components; the matching processing unit 803 is further configured to determine the component corresponding to the second filtering component from the multiple world state data. The target world state data; the matching processing unit 803 is further configured to determine at least one second storage file from each storage file corresponding to the second filtering component based on the block height of the third block; the query processing unit 805 is further configured to obtain each second target transaction involving the fourth account and the block number of its respective block from the at least one second storage file; the state management unit 809 is configured to determine the account state of the fourth account after the third block is generated in the blockchain system based on the target world state, each second target transaction and the block number of its respective block.
[0086] In one possible implementation, the on-chain data of the j-th first account includes several fields that correspond one-to-one with the several second transactions, and each field includes the remaining information in its corresponding second transaction other than the j-th first account.
[0087] In one possible implementation, the data management system 800 further includes a data synchronization unit 811, configured to obtain the plurality of first transactions from the blockchain system; construct file content to be stored in the i-th storage file based on the plurality of first transactions, the file content including on-chain data of the plurality of first accounts; and write the file content into the i-th storage file.
[0088] In one possible implementation, the data synchronization unit 811 is further configured to configure the filtering component corresponding to the i-th storage file based on the i-th storage file and the plurality of first accounts.
[0089] In one possible implementation, the filtering component includes multiple filter groups, each containing multiple filters; wherein, the data synchronization unit 811 is specifically configured to, for any p-th filter group in the filtering component corresponding to the i-th storage file, determine a target filter corresponding to the i-th storage file from the p-th filter group; and configure the target filter according to the multiple first accounts.
[0090] In one possible implementation, the blockchain system 800 further includes an account selection unit 813, used to obtain a plurality of fifth accounts pointed to by the plurality of first target transactions; the query processing unit 805 is further used to query the on-chain data of any m-th fifth account from the plurality of first storage files; the transaction determination unit 807 is further used to determine a plurality of third target transactions belonging to the plurality of second blocks from the plurality of fourth transactions indicated by the on-chain data of the m-th fifth account and the block number of their respective blocks; wherein the plurality of first target transactions and each of the third target transactions are used to support the data management system in generating a knowledge graph corresponding to the first query request.
[0091] This specification also provides a computer-readable storage medium storing a computer program / instruction, which, when executed in a computer, causes the computer to perform the various method steps executed by the data management system in any of the foregoing method embodiments.
[0092] This specification also provides a computing device in its embodiments, including a memory and a processor. The memory stores executable code / instructions, and when the processor executes the executable code / instructions, it implements the various method steps executed by the data management system in any of the foregoing method embodiments.
[0093] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using hardware physical modules. For example, a Programmable Logic Device (PLD) (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program and "integrate" a digital system onto a PLD themselves, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should understand that by simply performing some logic programming on the method flow using one of these hardware description languages and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.
[0094] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.
[0095] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or physical entities, or by products with certain functions. A typical implementation device is a server system. Of course, this application does not exclude the possibility that, with the future development of computer technology, the computer implementing the functions of the above embodiments can be, for example, a personal computer, a laptop computer, an in-vehicle human-machine interaction device, a cellular phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or any combination of these devices.
[0096] While one or more embodiments of this specification provide the operational steps of the methods described in the embodiments or flowcharts, more or fewer operational steps may be included based on conventional or non-inventive means. The order of steps listed in the embodiments is merely one possible order of execution among many steps and does not represent the only possible order. In actual device or end product execution, the methods shown in the embodiments or drawings may be executed sequentially or in parallel (e.g., in a parallel processor or multi-threaded processing environment, or even a distributed data processing environment). The terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, product, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, product, or apparatus. Without further limitations, the presence of other identical or equivalent elements in the process, method, product, or apparatus that includes the elements is not excluded. For example, the use of terms such as "first," "second," etc., is to denote names and does not indicate any particular order.
[0097] For ease of description, the above devices are described in terms of function, divided into various modules. Of course, when implementing one or more of these specifications, the functions of each module can be implemented in one or more software and / or hardware components, or a module that performs the same function can be implemented by a combination of multiple sub-modules or sub-units. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling or communication connection between devices or units, and may be electrical, mechanical, or other forms.
[0098] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0099] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0100] These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable apparatus for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0101] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0102] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0103] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information by any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic disk storage, graphene storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0104] Those skilled in the art will understand that one or more embodiments of this specification can be provided as a method, system, or computer program product. Therefore, one or more embodiments of this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, one or more embodiments of this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0105] One or more embodiments of this specification can be described in the general context of computer-executable instructions, such as program modules, that are executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a particular task or implement a particular abstract data type. One or more embodiments of this specification can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.
[0106] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, system embodiments are basically similar to method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. In the description of this specification, the terms "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics described in connection with that embodiment or example, which are included in at least one embodiment or example of this specification. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described can be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification and the features of different embodiments or examples.
[0107] The above description is merely an embodiment of one or more embodiments of this specification and is not intended to limit the scope of these embodiments. Various modifications and variations can be made to these embodiments by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this specification should be included within the scope of the claims.
Claims
1. A data management method, the method being executed by a data management system, the data management system storing multiple storage files, any i-th storage file corresponding to several first blocks in a blockchain system, the i-th storage file including on-chain data of the multiple first accounts using multiple first accounts as keys; multiple first transactions included in the multiple first blocks being initiated by the multiple first accounts, the on-chain data of any j-th first account being used to indicate several second transactions and the block number of their respective blocks, the multiple second transactions all being initiated by the j-th first account and belonging to the multiple first transactions; the method comprising: Obtain a first query request, which at least indicates the third account to be queried and several second blocks; Determine a plurality of first storage files corresponding to the plurality of second blocks from the plurality of storage files; Query the on-chain data of the third account from the plurality of first storage files; Based on the on-chain data of the third account indicating a number of third transactions and the block number of their respective blocks, a number of first target transactions belonging to the number of second blocks are determined from the number of third transactions.
2. The method according to claim 1, wherein the i-th storage file includes a data partition and an index partition, the data partition being used to store the on-chain data of the plurality of first accounts, and the index partition being used to store the address offsets of the plurality of first accounts and their on-chain data corresponding to the data partition in the data partition; in, The step of querying the on-chain data of the third account from the plurality of first storage files includes: For any q-th first storage file, query the third account in the index partition of the q-th first storage file; If the third account is successfully found in the index partition of the q-th first storage file, then the address offset corresponding to the on-chain data of the third account is obtained from the index partition of the q-th first storage file; Based on the address offset corresponding to the on-chain data of the third account, the on-chain data of the third account is obtained from the data partition of the qth first storage file.
3. The method according to claim 2, wherein the data management system further stores multiple filtering components; in, The step of querying the on-chain data of the third account from the plurality of first storage files further includes: The first filtering component corresponding to the qth first storage file is determined from the plurality of filtering components; The first filtering component determines whether the q-th first storage file contains on-chain data of the third account. If so, the third account is queried in the index partition of the q-th first storage file.
4. The method according to claim 3, wherein the data management system further stores multiple world state data of the blockchain system, which correspond one-to-one with the multiple filtering components; wherein, The method further includes: Obtain a second query request, which at least indicates the fourth account and the third block to be queried; A second filter component corresponding to the third block is determined from the plurality of filter components; The target world state data corresponding to the second filtering component is determined from the plurality of world state data; Based on the block height of the third block, at least one second storage file is determined from each storage file corresponding to the second filtering component; Obtain from the at least one second storage file each of the second target transactions involving the fourth account and the block number of the block to which each belongs; Based on the target world state, each second target transaction, and the block number of their respective blocks, the account state of the fourth account after the third block is generated in the blockchain system is determined.
5. The method according to claim 2, wherein the on-chain data of the j-th first account includes several fields corresponding one-to-one with the several second transactions, and each field includes the remaining information in its corresponding second transaction other than the j-th first account.
6. The method according to claim 1, further comprising: Obtain the plurality of first transactions from the blockchain system; The file content to be stored in the i-th storage file is constructed based on the plurality of first transactions, and the file content includes the on-chain data of the plurality of first accounts; Write the contents of the file into the i-th storage file.
7. The method according to claim 6, further comprising: Configure the filtering component corresponding to the i-th storage file based on the i-th storage file and the plurality of first accounts.
8. The method according to claim 7, wherein the filtering assembly comprises a plurality of filter groups, and the filter groups comprise a plurality of filters; wherein, The step of configuring the filtering component corresponding to the i-th storage file based on the i-th storage file and the plurality of first accounts includes: For any p-th filter group in the filtering components corresponding to the i-th storage file, determine the target filter corresponding to the i-th storage file from the p-th filter group; Configure the target filter according to the plurality of first accounts.
9. The method according to any one of claims 1-8, further comprising: Obtain the fifth accounts pointed to by the aforementioned first target exchanges; For any m-th fifth account, query the on-chain data of the m-th fifth account from the plurality of first storage files, and determine the plurality of second target transactions belonging to the plurality of second blocks from the plurality of fourth transactions indicated by the on-chain data of the m-th fifth account and the block number of their respective blocks. The plurality of first target transactions and each of the second target transactions are used to support the data management system in generating a knowledge graph corresponding to the first query request.
10. A data management system, wherein the data management system stores multiple storage files, any i-th storage file corresponds to several first blocks in a blockchain system, the i-th storage file includes on-chain data of the multiple first accounts with multiple first accounts as keys; multiple first transactions included in the multiple first blocks are initiated by the multiple first accounts, and the on-chain data of any j-th first account is used to indicate several second transactions and the block number of their respective blocks, the multiple second transactions are all initiated by the j-th first account and belong to the multiple first transactions; The data management system includes: The request retrieval unit is used to retrieve a first query request, which indicates at least a third account to be queried and several second blocks; A matching processing unit is used to determine, from the plurality of storage files, a plurality of first storage files corresponding to the plurality of second blocks; A query processing unit is used to query the on-chain data of the third account from the plurality of first storage files; The transaction determination unit is used to determine, from the plurality of third transactions indicated by the on-chain data of the third account and the block number of the block to which each of the third transactions belongs, a plurality of first target transactions belonging to the plurality of second blocks.
11. The data management system according to claim 10, wherein the i-th storage file includes a data partition and an index partition, the data partition being used to store the on-chain data of the plurality of first accounts, and the index partition being used to store the address offsets of the plurality of first accounts and their on-chain data corresponding to the data partition in the data partition; in, The query processing unit is specifically used to query the third account in the index partition of any q-th first storage file; if the third account is successfully found in the index partition of the q-th first storage file, the address offset corresponding to the on-chain data of the third account is obtained from the index partition of the q-th first storage file; and the on-chain data of the third account is obtained from the data partition of the q-th first storage file based on the address offset corresponding to the on-chain data of the third account.
12. The data management system according to claim 11, wherein the data management system further stores multiple filtering components; in, The query processing unit is specifically used to determine the first filtering component corresponding to the q-th first storage file from the plurality of filtering components; determine whether the on-chain data of the third account is stored in the q-th first storage file according to the first filtering component; if so, perform a query on the index partition of the q-th first storage file to find the third account.
13. The data management system according to claim 12, wherein the data management system further stores multiple world state data of the blockchain system, which correspond one-to-one with the multiple filtering components; the data management system further includes a state management unit; wherein, The request acquisition unit is also used to acquire a second query request, which at least indicates the fourth account and the third block to be queried; The matching processing unit is further configured to determine, from the plurality of filtering components, a second filtering component corresponding to the third block; The matching processing unit is further configured to determine the target world state data corresponding to the second filtering component from the plurality of world state data; The matching processing unit is further configured to determine at least one second storage file from each storage file corresponding to the second filtering component based on the block height of the third block; The query processing unit is further configured to obtain from the at least one second storage file each of the second target transactions involving the fourth account and the block number of the block to which each belongs; The state management unit is used to determine the account status of the fourth account after the third block is generated in the blockchain system, based on the target world state, each second target transaction, and the block number of their respective blocks.
14. The data management system according to claim 11, wherein the on-chain data of the j-th first account includes several fields corresponding one-to-one with the several second transactions, and each field includes the remaining information in its corresponding second transaction other than the j-th first account.
15. The data management system according to claim 10, further comprising a data synchronization unit, configured to obtain the plurality of first transactions from the blockchain system; construct file content to be stored in the i-th storage file based on the plurality of first transactions, the file content including on-chain data of the plurality of first accounts; and write the file content into the i-th storage file.
16. The data management system according to claim 15, wherein the data synchronization unit is further configured to configure a filtering component corresponding to the i-th storage file based on the i-th storage file and the plurality of first accounts.
17. The data management system according to claim 16, wherein the filtering component comprises a plurality of filter groups, and the filter groups comprise a plurality of filters; wherein, The data synchronization unit is specifically used to determine the target filter corresponding to the i-th storage file from any p-th filter group in the filtering component corresponding to the i-th storage file; and to configure the target filter according to the plurality of first accounts.
18. The data management system according to any one of claims 10-17, wherein the blockchain system further comprises an account selection unit for obtaining a plurality of fifth accounts pointed to by the plurality of first target exchanges; The query processing unit is also used to query the on-chain data of any m-th fifth account from the plurality of first storage files; The transaction determination unit is further configured to determine, from the plurality of fourth transactions indicated by the on-chain data of the m-th fifth account and the block number of their respective blocks, a plurality of second target transactions belonging to the plurality of second blocks. in, The plurality of first target transactions and each of the second target transactions are used to support the data management system in generating a knowledge graph corresponding to the first query request.
19. A computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to perform the method of any one of claims 1-9.
20. A computing device comprising a memory and a processor, wherein the memory stores executable code, and the processor, when executing the executable code, implements the method of any one of claims 1-9.
Citation Information
Patent Citations
Index construction method and device, equipment and storage medium
CN113051622A
Block chain-based data processing method and device, equipment and readable storage medium
CN113821536A