CN117874060A - Supply chain product traceability data multi-condition query method and device based on block chain - Google Patents

Supply chain product traceability data multi-condition query method and device based on block chain Download PDF

Info

Publication number
CN117874060A
CN117874060A CN202410278692.XA CN202410278692A CN117874060A CN 117874060 A CN117874060 A CN 117874060A CN 202410278692 A CN202410278692 A CN 202410278692A CN 117874060 A CN117874060 A CN 117874060A
Authority
CN
China
Prior art keywords
block
transaction
list
query
condition
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.)
Granted
Application number
CN202410278692.XA
Other languages
Chinese (zh)
Other versions
CN117874060B (en
Inventor
孙传恒
高官岳
罗娜
徐大明
邢斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Research Center of Information Technology of Beijing Academy of Agriculture and Forestry Sciences
Original Assignee
Research Center of Information Technology of Beijing Academy of Agriculture and Forestry Sciences
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 Research Center of Information Technology of Beijing Academy of Agriculture and Forestry Sciences filed Critical Research Center of Information Technology of Beijing Academy of Agriculture and Forestry Sciences
Priority to CN202410278692.XA priority Critical patent/CN117874060B/en
Priority claimed from CN202410278692.XA external-priority patent/CN117874060B/en
Publication of CN117874060A publication Critical patent/CN117874060A/en
Application granted granted Critical
Publication of CN117874060B publication Critical patent/CN117874060B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention provides a supply chain product traceability data multi-condition query method and device based on a block chain, and relates to the technical field of block chains, wherein the method comprises the following steps: the class light node sends the query condition information and the position index corresponding to each query condition to the whole node so that the whole node screens out a block list related to the query condition information in the block chain, and for each block in the block list, a first transaction ID list meeting the main query condition is searched, and a Trie tree generating binary group list of the position index corresponding to each auxiliary query condition is obtained and returned to the class light node; the class light node searches a second transaction ID list meeting each auxiliary query condition in the Trie by using the hash value of each auxiliary query condition, and takes intersection of the first transaction ID list and each second transaction ID list to screen out target transaction; and sending the transaction ID of the target transaction to the full node, receiving the serialized data returned by the full node, performing deserialization, and then returning a query result to the user.

Description

Supply chain product traceability data multi-condition query method and device based on block chain
Technical Field
The invention relates to the technical field of blockchains, in particular to a supply chain product traceability data multi-condition query method and device based on blockchains.
Background
As the supply chain expands, the amount of data increases dramatically, resulting in a gradual increase in the reliance on the polling function by participating Fang Duishu in the supply chain management process, thereby placing more stringent demands on the performance and results of data queries. The traditional native blockchain can only search through a transaction ID (identification) when inquiring transaction data, can only locate the transaction by traversing the block when inquiring certain information existing in the transaction, and then judges whether the transaction meets the condition by inquiring the content in the transaction. Further, although a storage mode in the form of key value pairs is provided to satisfy the query of structured data based on the blockchain items of the coalition chain, such as Hyperledger Fabric, when multi-condition query of complex structured data is faced, the query mode of a single key cannot sufficiently satisfy the query requirement, that is, because the complex data type field of the data in the transaction is unknown and is mostly serial data, the readability is generally not provided and the anti-serialization is difficult, which increases the query difficulty to a certain extent.
In the supply chain management process, how to meet the multi-condition query of the blockchain and accurately locate the query content becomes a problem which needs to be solved urgently.
Disclosure of Invention
Aiming at the problems existing in the prior art, the invention provides a supply chain product traceability data multi-condition query method and device based on a block chain.
In a first aspect, the present invention provides a multi-condition query method for supply chain product traceability data based on a blockchain, which is applied to a light-like node, and includes:
responding to a query request of a user, and sending query condition information and position indexes corresponding to each query condition to all nodes so that the all nodes execute the following operations: screening out a block list related to the query condition information in a block chain, traversing the block list, for each block in the block list, searching a first transaction ID list meeting the main query condition in the Trie tree of the position index corresponding to the main query condition by using the hash value of the main query condition, acquiring the Trie tree of the position index corresponding to each pair of query conditions to generate a binary group list, and returning the first transaction ID list and the binary group list to the light-weight node; the binary groups in the binary group list are position indexes and Trie trees;
after the first transaction ID list and the binary group list returned by the full node are received, searching a second transaction ID list meeting all the auxiliary query conditions in a corresponding Trie by using the hash value of all the auxiliary query conditions, and then taking intersection of the first transaction ID list and each second transaction ID list to screen out target transactions meeting all the query conditions;
Transmitting the transaction ID of the target transaction to the full node, and then receiving the serialized data of the target transaction returned by the full node;
and after the serialization data is deserialized, returning a query result to the user.
In some embodiments, the filtering out the block list related to the query condition information in the blockchain includes:
acquiring a block list related to a main query condition in a block chain based on the index heap structure of the whole node local;
based on bloom filters in each block head, screening blocks related to each auxiliary query condition from the block list related to the main query condition to obtain a block list related to the query condition information in the block chain;
the index heap structure is constructed based on identity information of supply chain participants as a main query condition, the index heap structure comprises block number indexes of blocks where related transactions corresponding to each supply chain participant are located, and each bloom filter is constructed based on attribute values in data fields of all transactions in one block.
In some embodiments, the index heap structure, the tile number indexes are ordered based on weights for tiles, the weights being determined based on tile generation time and the number of related transactions in a tile.
In some embodiments, the weight is calculated as:
in the method, in the process of the invention,representing the weight of block i corresponding to the target supply chain participant,/->Indicating the moment of generation of block i +.>Indicates the time of generation of the 1 st block, +.>Representing the number of transactions in block i related to said target supply chain participant,/for>Indicating the maximum number of transactions for the block.
In some embodiments, the length of the bloom filter is determined based on a maximum value of the number of attributes corresponding to the data field of each transaction in the block, and the maximum number of transactions for the block.
In some embodiments, each block in the blockchain corresponds to a Trie tree set, each Trie tree in the Trie tree set corresponds to an attribute field position, and the hash value is taken to construct based on the attribute values of all transactions in the block at the corresponding attribute field position, and a transaction ID list is stored in leaf nodes of each Trie tree.
In some embodiments, the hash value is calculated based on the SHA256 algorithm.
In a second aspect, the present invention further provides a supply chain product traceability data multi-condition query device based on a blockchain, which is applied to a light-like node, and includes:
the first sending module is used for responding to the query request of the user, sending the query condition information and the position index corresponding to each query condition to the full node, so that the full node executes the following operations: screening out a block list related to the query condition information in a block chain, traversing the block list, screening out candidate transactions meeting a main query condition in each block in the block list, generating a triplet list for each candidate transaction based on a position index corresponding to each query condition, and returning the triplet list of all candidate transactions to the light-weight node; the triples in the triples list are combinations of transaction IDs, position indexes and verification paths;
The transaction screening module is used for traversing the triplet list of each candidate transaction after receiving the triplet list of all candidate transactions returned by the full node, verifying the secondary query conditions of the corresponding position indexes by using the verification paths in the triples, and screening out target transactions meeting all the query conditions;
the second sending module is used for sending the transaction ID of the target transaction to the full node and then receiving the serialized data of the target transaction returned by the full node;
and the result return module is used for returning a query result to the user after deserializing the serialized data.
In a third aspect, the present invention further provides an electronic device, including a memory, a processor, and a computer program stored on the memory and running on the processor, where the processor implements the multi-condition query method for blockchain-based supply chain product traceability data as described in the first aspect.
In a fourth aspect, the present invention also provides a non-transitory computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements the blockchain-based supply chain product traceability data multi-condition query method of the first aspect as described above.
According to the multi-condition query method and device for the supply chain product traceability data based on the blockchain, firstly, block screening is conducted according to query condition information, then, the hash value of the main query condition is utilized to search the first transaction ID list meeting the main query condition in the corresponding Trie, the hash value of each auxiliary query condition is utilized to search the second transaction ID list meeting each auxiliary query condition in the corresponding Trie, the first transaction ID list and each second transaction ID list are intersected, and finally, target transactions meeting all query conditions are screened out, so that the requirement of multi-condition query of the blockchain can be met, storage consumption is reduced, a supply chain participant can be helped to accurately query data under multiple conditions, interference of unnecessary data caused by traversing all blocks is avoided, and the efficiency of a supply chain management system based on the blockchain and the use experience of users can be effectively improved.
Drawings
In order to more clearly illustrate the invention or the technical solutions in the related art, the following description will briefly explain the drawings used in the embodiments or the related art description, and it is obvious that the drawings in the following description are some embodiments of the invention, and other drawings can be obtained according to the drawings without inventive effort for those skilled in the art.
FIG. 1 is a flow chart of a multi-condition query method for supply chain product traceability data based on a blockchain in accordance with the present invention;
FIG. 2 is an exemplary diagram of a TWTN-Heap index structure provided by the present invention;
FIG. 3 is an exemplary diagram of an adaptive bloom filter provided by the present invention;
FIG. 4 is a diagram illustrating an exemplary transaction attribute structure using Trie blocks according to the present invention;
FIG. 5 is a timing diagram of a multi-condition query process provided by the present invention;
FIG. 6 is a schematic diagram of a block chain-based supply chain product traceability data multi-condition query device according to the present invention;
fig. 7 is a schematic structural diagram of an electronic device provided by the present invention.
Detailed Description
The term "and/or" in the present invention describes an association relationship of association objects, which means that three relationships may exist, for example, a and/or B may mean: a exists alone, A and B exist together, and B exists alone. The character "/" generally indicates that the context-dependent object is an "or" relationship.
The term "plurality" in the present invention means two or more, and other adjectives are similar thereto.
The terms "first," "second," and the like, herein, are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the invention are capable of operation in sequences other than those illustrated or otherwise described herein, and that the "first" and "second" distinguishing between objects generally are not limited in number to the extent that the first object may, for example, be one or more.
For the purpose of making the objects, technical solutions and advantages of the present invention more apparent, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings, and it is apparent that the described embodiments are some embodiments of the present invention, not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
Fig. 1 is a flow chart of a multi-condition query method for traceable data of supply chain products based on blockchain, which is applied to a light-like node, as shown in fig. 1, and includes the following steps:
step 100, responding to a query request of a user, and sending query condition information and position indexes corresponding to each query condition to all nodes so that all nodes execute the following operations: screening out a block list related to query condition information in a block chain, traversing the block list, for each block in the block list, searching a first transaction ID list meeting the main query condition in a Trie tree of a position index corresponding to the main query condition by using a hash value of the main query condition, acquiring the Trie tree of the position index corresponding to each auxiliary query condition to generate a binary group list, and returning the first transaction ID list and the binary group list to the light-weight node; the two-tuple in the two-tuple list is a position index and a Trie.
Step 101, after receiving the first transaction ID list and the binary group list returned by the full node, searching a second transaction ID list meeting all the sub-query conditions in the corresponding Trie by using the hash value of each sub-query condition, and then taking the intersection of the first transaction ID list and each second transaction ID list to screen out target transactions meeting all the query conditions.
Step 102, the transaction ID of the target transaction is sent to the full node, and then the serialized data of the target transaction returned by the full node is received.
Step 103, after deserializing the serialized data, returning a query result to the user.
Specifically, when a user needs to perform multi-condition query on traceable data of a supply chain product, query condition information (including information of a main query condition and information of a sub query condition) can be sent to a light-like node, and the light-like node sends the query condition information and a position index corresponding to each query condition to a full node.
In some embodiments, the primary query condition is identity information of the supply chain participant. For example, when a user needs to query product traceability data of a certain supply chain participant, identity information of the supply chain participant can be sent to the class light node as a main query condition.
After receiving query condition information and position indexes corresponding to all query conditions sent by the light-like nodes, the full node firstly screens out a block list related to the query condition information in a block chain through the query condition information, wherein the related to the query condition information refers to that whether transactions meeting the query conditions possibly exist in the block or not, and whether the transactions meeting all the query conditions necessarily exist or not is further verified.
After the block list related to the query condition information is screened out by the full node, the block list is traversed, for each block, a first transaction ID list meeting the primary query condition is searched in the Trie tree of the position index corresponding to the primary query condition by using the hash value of the primary query condition, and the Trie tree of each position index is obtained for the position index corresponding to each secondary query condition, so that a binary group list is generated, the binary groups in the binary group list are combinations of the position indexes and the Trie tree, namely, the position index corresponding to one secondary query condition corresponds to one Trie tree.
The Trie is also called a word search tree or a key tree, and is a tree-like structure, because the Trie only needs to be stored once for the same value, and the hash value list does not need to be stored for each field of each transaction, so that the use of the Trie in the invention can ensure smaller memory consumption.
Next, the full node returns the first transaction ID list and the two-tuple list to the class light node. After receiving the first transaction ID list and the binary group list, the class light node uses the binary group list to search a second transaction ID list meeting all the auxiliary query conditions in the corresponding Trie by using the hash value of all the auxiliary query conditions in sequence, and then takes the intersection of the first transaction ID list and the second transaction ID list, so that the target transaction meeting all the query conditions can be screened out.
After the target transaction is determined, the class light node can send the transaction ID of the target transaction to the full node, and the full node acquires the transaction data (serialization data) corresponding to the transaction ID through a KV (key value) database at the bottom layer of the full node and returns the transaction data (serialization data) to the class light node.
The light-like node then deserializes the serialized data, for example, decodes the data to obtain byte data of the original structured data, deserializes the byte data according to the structured transaction data type template reserved by the byte data to obtain the original structured data content. The light-weight node can return the data content obtained after the reverse serialization to the user as a query result, thereby completing the condition query process.
According to the multi-condition query method for the supply chain product traceable data based on the blockchain, firstly, block screening is conducted according to query condition information, then, a first transaction ID list meeting the main query condition is searched in a corresponding Trie by utilizing the hash value of the main query condition, then, a second transaction ID list meeting the auxiliary query condition is searched in the corresponding Trie by utilizing the hash value of each auxiliary query condition, the first transaction ID list and each second transaction ID list are intersected, and finally, target transactions meeting all query conditions are screened out, so that the requirement of multi-condition query of the blockchain can be met, the storage consumption is reduced, the supply chain participants can be helped to accurately query data under the multi-condition, interference of unnecessary data caused by traversing all blocks is avoided, and the efficiency of a supply chain management system based on the blockchain and the use experience of users can be effectively improved.
In some embodiments, filtering out a list of blocks in the blockchain that are related to query condition information includes:
acquiring a block list related to a main query condition in a block chain based on a full-node local index heap structure;
based on bloom filters in the block heads, blocks related to each auxiliary query condition are screened out from a block list related to the main query condition, and a block list related to query condition information in a block chain is obtained;
The index heap structure is constructed based on identity information of supply chain participants as a main query condition, the index heap structure comprises block number indexes of blocks where related transactions corresponding to each supply chain participant are located, and each bloom filter is constructed based on attribute values in data fields of all transactions in one block.
Specifically, in order to improve the block screening efficiency, the invention provides an index Heap (Heap) structure for rapidly locating blocks related to main query conditions, wherein the index Heap structure is constructed based on identity information of supply chain participants as main query conditions, and the index Heap structure comprises block number indexes of blocks corresponding to related transactions of each supply chain participant. The full node can add the block number index of the new block into the index pile constructed locally according to the related participants in the transaction in the new block when the new block is generated according to the identity information of each participant in the process of participating in consensus. In some embodiments, the blocks associated with each participant may be quickly screened out based on bloom filters in each block header, thereby quickly building an index heap structure.
In some embodiments, the block number indexes in the index heap structure are ordered based on weights for the blocks, the weights being determined based on the block generation time and the number of related transactions in the block.
Specifically, for fast querying a target block, the invention provides a large root Heap structure based on time weight and transaction number, which is called TWTN-Heap (Time Weight and Transaction Number based Heap), and the TWTN-Heap index structure sorts the block number indexes based on the weight of the block (for example, the larger the weight is, the more front the sorting is), so that the hit effect of the target block is improved, and meanwhile, the querying efficiency is further improved.
For example, considering the characteristics of the trace data query, if the generation time of a certain block is closer to the generation time of a first block, the weight of the block is smaller, otherwise, the weight is larger; if the number of related transactions in a block is larger, the weight of the block is larger, otherwise, the weight is smaller. Wherein the related transactions are relative to the participants, for example, for a certain participant, if the number of transactions related to the participant in a certain block is larger, the weight of the block corresponding to the participant is larger. It will be appreciated that the same tile may have different weights for different participants.
In some embodiments, the weight is calculated as:
in the method, in the process of the invention,representing the weight of block i corresponding to the target supply chain participant,/- >Indicating the moment of generation of block i +.>Indicates the time of generation of the 1 st block, +.>Representing the number of transactions in block i related to the target supply chain participant, < >>Indicating the maximum number of transactions for the block. i may be a block number index of a block.
In particular, although time has a certain meaning in the process of weight calculation, the weight calculation cannot be dominant in absolute dominance, because there are still most cases in which participants need to query longer and more distant data, and in order to avoid the weight increase caused by too fast a time period increase, the time interval is optimized in a logarithmic form.
For the maximum number of transactions for a chunk, it is typically the case that the number of transactions for the native blockchain is stable around a particular value in each chunk. As Hyperledger fabric, the number of transactions in a block is determined by a configuration file, the maximum number of transactions is 10 by default, the number of transactions is stabilized at 1 in the case of serial execution, and the number of transactions generated in parallel can be maintained between 7 and 10, as determined by the smart contract execution and consensus process. In order to make the weight calculation formula have universality, the transaction quantity characteristics of the Ethernet are analyzed. For example, by traversing 1000 blocks beginning with block 18381001 in the ethernet and recording the number of transactions for each block, an average transaction amount of 126 per block can be obtained.
In order to reduce the influence of the transaction amount on the weight in the process of processing the transaction amount, the transaction amount is defined in a ratio manner (the related transaction amount/block maximum transaction amount, for example Hyperledger Fabric, can be takenThe maximum value of the number of ethernet transactions can be defined as 2 times the average value of the transactions, so +.>). The calculation of the related transaction number needs to count the transaction in the new block through the identity information of the participant after the block consensus.
Fig. 2 is a diagram showing an exemplary TWTN-map index structure provided in the present invention, as shown in fig. 2, the block number indexes of all the blocks related to a certain supply chain participant are sequentially arranged in the order from big to small, each time a new block is generated, the weight of the new block corresponding to each participant is calculated, the block number indexes are added into an index Heap according to the weights, and the sorting of index values is achieved through the Heap sorting.
In addition, in order to improve the block screening capability, the invention constructs bloom filters according to different attribute field values in the transaction data fields and stores the bloom filters in the block heads, and the bloom filter in each block head can be used for quickly judging whether a certain query condition is in a certain transaction of the block.
In some embodiments, the length of the bloom filter is determined based on a maximum of the number of attributes corresponding to the data fields of each transaction in the block, and the maximum number of transactions for the block.
Specifically, the present invention proposes to dynamically allocate the length of a bloom filter, which may be referred to as an adaptive multi-conditional block bloom filter or simply an adaptive bloom filter, avoiding the waste of storage space. The self-adaptive bloom filter uses the self-adaptive optimized dynamic storage space to reduce the misjudgment rate of each attribute domain while meeting the requirement of rapidly judging the existence of elements, thereby ensuring that a more accurate judgment result is provided.
The maximum value of the attribute number corresponding to the data field of each transaction in the block refers to traversing all transactions in the block, and if the attribute number in the data field of a certain transaction is the maximum value, the attribute number in the data field of the transaction is the maximum value.
The maximum number of transactions for a block may be defined as 2 times the average number of transactions for a block (e.g., 126 as described above) with reference to the discussion above, such as for ethernet.
In some embodiments, the adaptive bloom filter length may be expressed as m=n×num max Wherein N represents the maximum value of the number of attributes corresponding to the data fields of each transaction in the block, num max The maximum transaction number of the block is represented, and the length can meet the condition that any attribute in each transaction is different.
In some embodiments, to fully utilize its space while providing a larger hash space for more different value attributes, thereby reducing the false positive rate, it is necessary to calculate the duty cycle of each attribute in the bloom filter. For example, the number m of non-repeated values in the corresponding attribute field is counted by using BitMap (BitMap) An (An represents An nth attribute field), the size of the BitMap is determined by the maximum transaction number of the block, and the number of non-repeated values of a plurality of attribute fields can be counted rapidly in a parallel execution mode. Calculating the ratio of the non-repeated value number of each attribute field to the total number of all non-repeated attribute values to obtain the duty ratio of each attribute field in the bloom filter so as to determine the length L of the occupied space of each attribute in the bloom filter n The method comprises the following steps:
in some embodiments, according to L n Setting hash functions of bloom filters with different numbers, and assuming that the number of the hash functions is k, the k satisfies the following conditions:
fig. 3 is a schematic diagram of AN adaptive bloom filter according to the present invention, in which, for simplicity of illustration, the number k=1 of hash functions is assumed, M, A, AN, etc. in the figure represent different attribute fields, tx1, tx2, tx3 represent different transaction heads, M 1 、M 2 、A 1 、A 2 、N 1 The values representing the different attribute values in the data fields are calculated as shown in FIG. 3, and a hash value H corresponding to each attribute value in each transaction data field is calculated An Which is then mapped to different attribute ranges of the bloom filter. To achieve a mapping of a particular range, L n Recorded in an N-dimensional Array Range Array and written to the block header.
The following exemplary description of the construction process of the adaptive bloom filter is provided: firstly, obtaining hash values of all leaf nodes of an n-Tree structure in each transaction in a traversing way by the transactions to be packaged in a memory pool, counting the number of non-repeated attributes in each domain through a BitMap, calculating the length of each domain in an adaptive bloom filter, and recording the offset of each domain in a Range Array structure. Then, each leaf node hash value pair is smaller than the attribute-domain length L n And distance L n And performing modular operation on the nearest prime numbers to obtain the positions of all the attributes in the attribute domain of the adaptive bloom filter, and mapping the attributes into the adaptive bloom filter. The bloom filter and Range Array structure is then written to the block header and the issue block is prepared. Finally, broadcasting the blocks through a consensus algorithm to make the blocks agree in a block chain network.
In the condition judging process, screening is firstly carried out through the main query condition, whether the block contains the transaction corresponding to the main query condition or not is judged, if not, the block is directly skipped, if yes, the block is related to the main query condition, and whether the related attribute exists or not can be checked by judging the auxiliary condition one by one.
In some embodiments, each block in the blockchain corresponds to a Trie tree set, each Trie tree in the Trie tree set corresponds to an attribute field position, and the hash value is obtained based on the attribute values of all transactions in the block at the corresponding attribute field position, and a transaction ID list is stored in leaf nodes of each Trie tree.
Specifically, transactions in a blockchain may be split into two parts, one part being the intrinsic field of the transaction and the other part being the data field. For example, in a conventional native blockchain, the inherent fields of a transaction include a transaction ID, version number, transaction size, timestamp, etc., and the data fields include an input script and an output script. In the alliance chain, hyperledger fabric is taken as an example, the intrinsic fields of the transaction include version number, timestamp, channel ID, transaction ID, endorsement identity, etc., and the data field mainly comprises a read-write set of blockchain data, i.e. the content stored in the KV database.
In practical application, the invention provides that a Trie set is constructed for each block, wherein the Trie set comprises a plurality of Trie trees, and each Trie tree corresponds to one attribute field position (namely, the position of each attribute field in the data field of the transaction). For example, for a certain attribute field position a, hash values are taken from attribute values of all transactions in the block at the position a, and a Trie corresponding to the position a is constructed based on the hash values, and each leaf node of the Trie stores a transaction ID list. It will be understood that each transaction in the transaction ID list stored in each leaf node, the hash value of the attribute value at the position a includes a string on the path from the root node to the leaf node, so that the transaction ID list meeting the query condition can be searched in the Trie tree at the corresponding position by using the hash value of the query condition (if a certain leaf node can be searched by using the hash value of the query condition, the transaction ID list stored in the leaf node is the transaction ID list meeting the query condition).
In some embodiments, the hash value is calculated based on a secure hash algorithm (Secure Hash Algorithm, SHA) 256 algorithm. The hash value generated by the SHA256 algorithm has a length of 32bytes and is converted into a corresponding 16-system representation method, namely 64 characters. The hash value generated by SHA256 algorithm is in the character form that the value range of each character is [ a-z ] and [0-9], so that the value number of each node of the Trie is 36 ([ a-z ] is 26, and 10 values of [0-9] are added).
FIG. 4 is a diagram showing an example of a transaction attribute structure using Trie tree building blocks according to the present invention, M 1 、A 1 、…、A N Iso-meterThe optimized design of the transaction structure provided by the invention can provide inquiry capability and efficient data verification capability for participants with limited storage space. In a specific application, when the blockchain node broadcasts a transaction, the attribute fields in the transaction need to be respectively taken as hash values and written into an array, and the hash values of the attribute fields are distributed to each participating node together with transaction contents, and are calculated by adopting an SHA256 algorithm.
Since the hash length is fixed, the leaf nodes of the Trie will hold a list of transaction IDs (or sequence numbers) indicating which transaction the current attribute hash value exists in. And the repeated data rate of each field of the traceable transaction in the field is higher by combining and analyzing the traceable data of the product and counting, so that the storage consumption of the Trie tree is not overlarge. Since the length of the string form corresponding to the hash value is fixed, the height of the Trie is 64, and the query complexity is O (64). Thus, the query verification process of attribute conditions can be kept at a constant complexity, so that query capabilities are guaranteed.
As shown in fig. 4, after the transaction initiator broadcasts the transaction, the blockchain participant stores two parts of the message in the memory pool, one part is the transaction to be packaged, and the other part is the attribute hash value list corresponding to each transaction. After receiving the transaction message, the participants respectively construct Trie trees at the corresponding attribute positions according to the corresponding attribute positions, and when the Trie tree at each attribute field position is constructed, the Trie tree set is the Trie tree set of the corresponding block. After the Trie is built, the content of the Trie is temporarily stored in the memory and is used for sending the Trie to the light node so as to verify the condition. And by setting the failure time, the Trie set of each block is persisted into the hard disk of each full node, and forward query work of the light node on the past data is supported.
FIG. 5 is a timing chart of a multi-condition query process according to the present invention, and the multi-condition query process is illustrated in the following in conjunction with FIG. 5 and the above embodiments:
1) In the process of participating in consensus, all nodes locally construct a TWTN-Heap index structure by using each newly generated block according to the main query condition, namely the identity information of each affiliated party.
2) And the user executing the query sends the query condition information to the class light node, then the class light node sends the query condition information and the position index of the corresponding query condition to the whole node, the whole node screens out the blocks related to the main query condition in the index structure through the query condition information, and screens out the blocks related to the auxiliary query condition from the blocks related to the main query condition through the bloom filter, so that a block list related to the query condition information is obtained. Traversing the block list, searching in the Trie tree by using the main query condition to obtain a first transaction ID list meeting the main query condition, acquiring the Trie tree of the position index corresponding to each auxiliary query condition according to the position index provided by the class light node, combining the Trie tree into a binary group (namely, index position, trie tree), and then returning the first transaction ID list and the binary group list to the class light node.
3) After receiving the first transaction ID list and the binary group list, the class light node sequentially traverses the binary group list, uses the auxiliary query condition to obtain a hash value, uses the hash value to search in the Trie at the corresponding position, and obtains the transaction ID list of the Trie search result at each position, namely the second transaction ID list. And acquiring intersection sets of the first transaction ID list and each first transaction ID list to obtain the finally selected target transaction.
4) The light-weight node sends the transaction ID of the target transaction to the full node, and the full node acquires the transaction data (serialization data) corresponding to the transaction ID through the KV database at the bottom layer of the full node and returns the transaction data (serialization data) to the light-weight node.
5) After the class light node obtains the serialized byte data or the coded data, the data is decoded to obtain the byte data of the original structured data, and the byte data is deserialized according to the reserved structured transaction data type template to obtain the original structured data content.
6) After all the screened blocks complete the above process, the condition query process is completed, and the light-like nodes return query results to the user in batches.
According to the technical scheme provided by the invention, the Trie tree is used for organizing the attribute value hash of each position in the transaction, so that each block is provided with a Trie tree set, and the Trie tree set is used for searching transaction conditions and acquiring related transaction sequence numbers and can ensure smaller storage consumption. And the block filter is constructed by using the self-adaptive block bloom filter, and the transaction attribute field is mapped into the bloom filter, so that the process of traversing the data in the block is skipped, and the lower storage consumption can be realized while the lower error judgment rate of the bloom filter is ensured. In addition, the TWTN-Heap index structure of the related block is built by taking the identity of the participant as a main condition, so that the condition query range can be further reduced, and a higher block hit effect is provided. The block weight is calculated by taking the time interval and the related transaction quantity as parameters, and the block index structure with high weight can be searched more quickly, so that the aim of quick response to transaction inquiry can be achieved.
The multi-condition query device for the supply chain product traceability data based on the block chain is described below, and the multi-condition query device for the supply chain product traceability data based on the block chain described below and the multi-condition query method for the supply chain product traceability data based on the block chain described above can be correspondingly referred to each other.
Fig. 6 is a schematic structural diagram of a multi-condition query device for traceability data of supply chain products based on blockchain according to the present invention, as shown in fig. 6, the device includes:
the first sending module 600 is configured to send, in response to a query request from a user, query condition information and a location index corresponding to each query condition to the full node, so that the full node performs the following operations: screening out a block list related to query condition information in a block chain, traversing the block list, for each block in the block list, searching a first transaction ID list meeting the main query condition in a Trie tree of a position index corresponding to the main query condition by using a hash value of the main query condition, acquiring the Trie tree of the position index corresponding to each auxiliary query condition to generate a binary group list, and returning the first transaction ID list and the binary group list to the light-weight node; the binary groups in the binary group list are position indexes and Trie trees;
The transaction screening module 610 is configured to, after receiving the first transaction ID list and the two-tuple list returned by the full node, search for a second transaction ID list meeting each of the sub-query conditions in the corresponding Trie tree using the hash value of each of the sub-query conditions, and then select an intersection between the first transaction ID list and each of the second transaction ID lists to screen out a target transaction meeting all of the query conditions;
a second sending module 620, configured to send the transaction ID of the target transaction to the full node, and then receive the serialized data of the target transaction returned by the full node;
the result returning module 630 is configured to return the query result to the user after deserializing the serialized data.
In some embodiments, filtering out a list of blocks in the blockchain that are related to query condition information includes:
acquiring a block list related to a main query condition in a block chain based on a full-node local index heap structure;
based on bloom filters in the block heads, blocks related to each auxiliary query condition are screened out from a block list related to the main query condition, and a block list related to query condition information in a block chain is obtained;
the index heap structure is constructed based on identity information of supply chain participants as a main query condition, the index heap structure comprises block number indexes of blocks where related transactions corresponding to each supply chain participant are located, and each bloom filter is constructed based on attribute values in data fields of all transactions in one block.
In some embodiments, the index heap structure, the block number indexes are ordered based on weights for the blocks, the weights being determined based on the block generation time and the number of related transactions in the block.
In some embodiments, the weight is calculated as:
in the method, in the process of the invention,representing the weight of block i corresponding to the target supply chain participant,/->Indicating the moment of generation of block i +.>Indicates the time of generation of the 1 st block, +.>Representing the number of transactions in block i related to the target supply chain participant, < >>Indicating the maximum number of transactions for the block.
In some embodiments, the length of the bloom filter is determined based on a maximum of the number of attributes corresponding to the data fields of each transaction in the block, and the maximum number of transactions for the block.
In some embodiments, each block in the blockchain corresponds to a Trie tree set, each Trie tree in the Trie tree set corresponds to an attribute field position, and the hash value is obtained based on the attribute values of all transactions in the block at the corresponding attribute field position, and a transaction ID list is stored in leaf nodes of each Trie tree.
In some embodiments, the hash value is calculated based on the SHA256 algorithm.
It should be noted that, the device provided by the present invention can implement all the method steps implemented by the method embodiment and achieve the same technical effects, and the parts and beneficial effects that are the same as those of the method embodiment in the present embodiment are not described in detail herein.
Fig. 7 is a schematic structural diagram of an electronic device according to the present invention, as shown in fig. 7, the electronic device may include: processor 710, communication interface (Communications Interface) 720, memory 730, and communication bus 740, wherein processor 710, communication interface 720, memory 730 communicate with each other via communication bus 740. Processor 710 may invoke logic instructions in memory 730 to perform any of the blockchain-based supply chain product traceability data multi-condition query methods provided by the embodiments described above, such as: responding to a query request of a user, and sending query condition information and position indexes corresponding to each query condition to the full node so that the full node executes the following operations: screening out a block list related to query condition information in a block chain, traversing the block list, for each block in the block list, searching a first transaction ID list meeting the main query condition in a Trie tree of a position index corresponding to the main query condition by using a hash value of the main query condition, acquiring the Trie tree of the position index corresponding to each auxiliary query condition to generate a binary group list, and returning the first transaction ID list and the binary group list to the light-weight node; the binary groups in the binary group list are position indexes and Trie trees; after receiving a first transaction ID list and a binary group list returned by the full node, searching a second transaction ID list meeting all the sub-query conditions in a corresponding Trie by using the hash value of all the sub-query conditions, and then taking intersection of the first transaction ID list and each second transaction ID list to screen out target transactions meeting all the query conditions; transmitting the transaction ID of the target transaction to the full node, and then receiving the serialized data of the target transaction returned by the full node; and after deserializing the serialized data, returning a query result to the user.
Further, the logic instructions in the memory 730 described above may be implemented in the form of software functional units and may be stored in a computer readable storage medium when sold or used as a stand alone product. Based on this understanding, the technical solution of the present invention may be embodied essentially or in a part contributing to the prior art or in a part of the technical solution, in the form of a software product stored in a storage medium, comprising several instructions for causing a computer device (which may be a personal computer, a server, a network device, etc.) to perform all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a random access Memory (RAM, random Access Memory), a magnetic disk, or an optical disk, or other various media capable of storing program codes.
It should be noted that, the electronic device provided by the present invention can implement all the method steps implemented by the method embodiments and achieve the same technical effects, and the details and beneficial effects of the same parts and advantages as those of the method embodiments in the present embodiment are not described in detail.
In another aspect, the present invention further provides a non-transitory computer readable storage medium, on which a computer program is stored, where the computer program when executed by a processor may implement any of the multi-condition query methods for supply chain product traceability data based on a blockchain as provided in the above embodiments, for example: responding to a query request of a user, and sending query condition information and position indexes corresponding to each query condition to the full node so that the full node executes the following operations: screening out a block list related to query condition information in a block chain, traversing the block list, for each block in the block list, searching a first transaction ID list meeting the main query condition in a Trie tree of a position index corresponding to the main query condition by using a hash value of the main query condition, acquiring the Trie tree of the position index corresponding to each auxiliary query condition to generate a binary group list, and returning the first transaction ID list and the binary group list to the light-weight node; the binary groups in the binary group list are position indexes and Trie trees; after receiving a first transaction ID list and a binary group list returned by the full node, searching a second transaction ID list meeting all the sub-query conditions in a corresponding Trie by using the hash value of all the sub-query conditions, and then taking intersection of the first transaction ID list and each second transaction ID list to screen out target transactions meeting all the query conditions; transmitting the transaction ID of the target transaction to the full node, and then receiving the serialized data of the target transaction returned by the full node; and after deserializing the serialized data, returning a query result to the user.
It should be noted that, the non-transitory computer readable storage medium provided by the present invention can implement all the method steps implemented by the method embodiments and achieve the same technical effects, and detailed descriptions of the same parts and beneficial effects as those of the method embodiments in this embodiment are omitted.
In yet another aspect, the present invention further provides a computer program product, where the computer program product includes a computer program, where the computer program is stored on a non-transitory computer readable storage medium, and when the computer program is executed by a processor, the computer is capable of executing any of the multi-condition query methods for blockchain-based supply chain product traceability data provided in the embodiments above, for example: responding to a query request of a user, and sending query condition information and position indexes corresponding to each query condition to the full node so that the full node executes the following operations: screening out a block list related to query condition information in a block chain, traversing the block list, for each block in the block list, searching a first transaction ID list meeting the main query condition in a Trie tree of a position index corresponding to the main query condition by using a hash value of the main query condition, acquiring the Trie tree of the position index corresponding to each auxiliary query condition to generate a binary group list, and returning the first transaction ID list and the binary group list to the light-weight node; the binary groups in the binary group list are position indexes and Trie trees; after receiving a first transaction ID list and a binary group list returned by the full node, searching a second transaction ID list meeting all the sub-query conditions in a corresponding Trie by using the hash value of all the sub-query conditions, and then taking intersection of the first transaction ID list and each second transaction ID list to screen out target transactions meeting all the query conditions; transmitting the transaction ID of the target transaction to the full node, and then receiving the serialized data of the target transaction returned by the full node; and after deserializing the serialized data, returning a query result to the user.
It should be noted that, the computer program product provided by the present invention can implement all the method steps implemented by the method embodiments and achieve the same technical effects, and the details of the same parts and the advantages as those of the method embodiments in the present embodiment are not described herein.
The apparatus embodiments described above are merely illustrative, wherein the modules illustrated as separate components may or may not be physically separate, and the components shown as modules may or may not be physical units, may be located in one place, or may be distributed over a plurality of network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art will understand and implement the present invention without undue burden.
From the above description of the embodiments, it will be apparent to those skilled in the art that the embodiments may be implemented by means of software plus necessary general hardware platforms, or of course may be implemented by means of hardware. Based on this understanding, the foregoing technical solution may be embodied essentially or in a part contributing to the prior art in the form of a software product, which may be stored in a computer readable storage medium, such as ROM/RAM, a magnetic disk, an optical disk, etc., including several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute the method described in the respective embodiments or some parts of the embodiments.
Finally, it should be noted that: the above embodiments are only for illustrating the technical solution of the present invention, and are not limiting; although the invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims (10)

1. A supply chain product traceability data multi-condition query method based on a block chain is characterized by being applied to a light-like node and comprising the following steps:
responding to a query request of a user, and sending query condition information and position indexes corresponding to each query condition to all nodes so that the all nodes execute the following operations: screening out a block list related to the query condition information in a block chain, traversing the block list, for each block in the block list, searching a first transaction ID list meeting the main query condition in the Trie tree of the position index corresponding to the main query condition by using the hash value of the main query condition, acquiring the Trie tree of the position index corresponding to each pair of query conditions to generate a binary group list, and returning the first transaction ID list and the binary group list to the light-weight node; the binary groups in the binary group list are position indexes and Trie trees;
After the first transaction ID list and the binary group list returned by the full node are received, searching a second transaction ID list meeting all the auxiliary query conditions in a corresponding Trie by using the hash value of all the auxiliary query conditions, and then taking intersection of the first transaction ID list and each second transaction ID list to screen out target transactions meeting all the query conditions;
transmitting the transaction ID of the target transaction to the full node, and then receiving the serialized data of the target transaction returned by the full node;
and after the serialization data is deserialized, returning a query result to the user.
2. The multi-condition query method for blockchain-based supply chain product traceability data of claim 1, wherein said filtering out a blocklist of blockchains associated with said query condition information comprises:
acquiring a block list related to a main query condition in a block chain based on the index heap structure of the whole node local;
based on bloom filters in each block head, screening blocks related to each auxiliary query condition from the block list related to the main query condition to obtain a block list related to the query condition information in the block chain;
The index heap structure is constructed based on identity information of supply chain participants as a main query condition, the index heap structure comprises block number indexes of blocks where related transactions corresponding to each supply chain participant are located, and each bloom filter is constructed based on attribute values in data fields of all transactions in one block.
3. The blockchain-based supply chain product traceability data multi-conditional query method of claim 2, wherein the block number indexes are ordered in the index heap structure based on weights for blocks, the weights being determined based on block generation time and the number of related transactions in a block.
4. The multi-condition query method for supply chain product traceability data based on blockchain of claim 3, wherein the weight calculation formula is:
in the method, in the process of the invention,representing the weight of block i corresponding to the target supply chain participant,/->Indicating the moment of generation of block i +.>Indicates the time of generation of the 1 st block, +.>Representing the number of transactions in block i related to said target supply chain participant,/for>Indicating the maximum number of transactions for the block.
5. The multi-condition query method of blockchain-based supply chain product traceability data of claim 2, wherein the length of the bloom filter is determined based on a maximum value of the number of attributes corresponding to the data fields of each transaction in the block and the maximum number of transactions in the block.
6. The multi-condition query method for traceable data of supply chain products based on blockchain according to any one of claims 1 to 5, wherein each block in the blockchain corresponds to a Trie tree set, each Trie tree in the Trie tree set corresponds to an attribute field position, and the hash value is taken based on the attribute values of all transactions in the block at the corresponding attribute field position, and each leaf node of the Trie tree stores a transaction ID list.
7. The multi-condition query method for blockchain-based supply chain product traceability data of claim 6, wherein the hash value is calculated based on SHA256 algorithm.
8. The utility model provides a supply chain product traceability data multi-condition inquiry unit based on blockchain which characterized in that is applied to class light node includes:
the first sending module is used for responding to the query request of the user, sending the query condition information and the position index corresponding to each query condition to the full node, so that the full node executes the following operations: screening out a block list related to the query condition information in a block chain, traversing the block list, for each block in the block list, searching a first transaction ID list meeting the main query condition in the Trie tree of the position index corresponding to the main query condition by using the hash value of the main query condition, acquiring the Trie tree of the position index corresponding to each pair of query conditions to generate a binary group list, and returning the first transaction ID list and the binary group list to the light-weight node; the binary groups in the binary group list are position indexes and Trie trees;
The transaction screening module is used for searching a second transaction ID list meeting all the auxiliary query conditions in the corresponding Trie by using the hash value of each auxiliary query condition after receiving the first transaction ID list and the binary group list returned by the full node, and then acquiring intersection of the first transaction ID list and each second transaction ID list to screen out target transactions meeting all the query conditions;
the second sending module is used for sending the transaction ID of the target transaction to the full node and then receiving the serialized data of the target transaction returned by the full node;
and the result return module is used for returning a query result to the user after deserializing the serialized data.
9. An electronic device comprising a memory, a processor, and a computer program stored on the memory and running on the processor, wherein the processor implements the blockchain-based supply chain product traceability data multi-conditional querying method of any of claims 1 to 7 when executing the program.
10. A non-transitory computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements the blockchain-based supply chain product traceability data multi-condition query method of any of claims 1 to 7.
CN202410278692.XA 2024-03-12 Supply chain product traceability data multi-condition query method and device based on block chain Active CN117874060B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410278692.XA CN117874060B (en) 2024-03-12 Supply chain product traceability data multi-condition query method and device based on block chain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410278692.XA CN117874060B (en) 2024-03-12 Supply chain product traceability data multi-condition query method and device based on block chain

Publications (2)

Publication Number Publication Date
CN117874060A true CN117874060A (en) 2024-04-12
CN117874060B CN117874060B (en) 2024-05-31

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109948003A (en) * 2019-03-20 2019-06-28 武汉大学 A kind of the block catenary system and its block production method of isomorphism bimodulus major-minor chain
CN111708840A (en) * 2020-06-05 2020-09-25 电子科技大学 Dynamic alliance chain consensus method based on main layer and auxiliary layer
CN112003858A (en) * 2020-08-21 2020-11-27 杭州云链趣链数字科技有限公司 Block chain-based platform docking method, electronic device and storage medium
US20210166187A1 (en) * 2019-12-03 2021-06-03 International Business Machines Corporation Computation of supply-chain metrics
WO2022134830A1 (en) * 2020-12-23 2022-06-30 深圳壹账通智能科技有限公司 Method and apparatus for processing block node data, computer device, and storage medium
CN115204909A (en) * 2022-06-16 2022-10-18 拢味(深圳)科技有限公司 Multi-dimensional food cold chain traceability system based on block chain

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109948003A (en) * 2019-03-20 2019-06-28 武汉大学 A kind of the block catenary system and its block production method of isomorphism bimodulus major-minor chain
US20210166187A1 (en) * 2019-12-03 2021-06-03 International Business Machines Corporation Computation of supply-chain metrics
CN111708840A (en) * 2020-06-05 2020-09-25 电子科技大学 Dynamic alliance chain consensus method based on main layer and auxiliary layer
CN112003858A (en) * 2020-08-21 2020-11-27 杭州云链趣链数字科技有限公司 Block chain-based platform docking method, electronic device and storage medium
WO2022134830A1 (en) * 2020-12-23 2022-06-30 深圳壹账通智能科技有限公司 Method and apparatus for processing block node data, computer device, and storage medium
CN115204909A (en) * 2022-06-16 2022-10-18 拢味(深圳)科技有限公司 Multi-dimensional food cold chain traceability system based on block chain

Similar Documents

Publication Publication Date Title
US20120317142A1 (en) Systmen and method for data management in large data networks
CN108664516A (en) Enquiring and optimizing method and relevant apparatus
US7698312B2 (en) Performing recursive database operations
CN109885576A (en) A kind of Hash table creation method and system calculate equipment and storage medium
KR101411321B1 (en) Method and apparatus for managing neighbor node having similar characteristic with active node and computer readable medium thereof
CN105515997B (en) The higher efficiency range matching process of zero scope expansion is realized based on BF_TCAM
WO2019228002A1 (en) Database access method and device
CN112667860A (en) Sub-graph matching method, device, equipment and storage medium
WO2023273218A1 (en) Json packet checking method and json packet checking apparatus
WO2021189195A1 (en) Data querying method and apparatus, server, and storage medium
CN112732756A (en) Data query method, device, equipment and storage medium
CN111666344A (en) Heterogeneous data synchronization method and device
CN108173899B (en) Information processing method and device of block chain
CN107203437A (en) The methods, devices and systems for preventing internal storage data from losing
US20230336368A1 (en) Block chain-based data processing method and related apparatus
CN117874060B (en) Supply chain product traceability data multi-condition query method and device based on block chain
CN106202456B (en) Send the method and device of picture
CN117874060A (en) Supply chain product traceability data multi-condition query method and device based on block chain
Yang et al. On characterizing and computing the diversity of hyperlinks for anti-spamming page ranking
WO2023165352A1 (en) Service object classification method and apparatus, device and storage medium
CN114745452B (en) Equipment management method and device and electronic equipment
CN115756598A (en) Component detection method, system and device applied to low-code platform
CN113377683B (en) Software test case generation method, system, device, terminal, medium and application
CN114997418A (en) Data processing method and device, electronic equipment and storage medium
WO2020020358A1 (en) Method and apparatus for determining residence time duration, device, and storage medium

Legal Events

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