CN109165224A - A kind of indexing means being directed to keyword key on block chain database - Google Patents
A kind of indexing means being directed to keyword key on block chain database Download PDFInfo
- Publication number
- CN109165224A CN109165224A CN201810971875.4A CN201810971875A CN109165224A CN 109165224 A CN109165224 A CN 109165224A CN 201810971875 A CN201810971875 A CN 201810971875A CN 109165224 A CN109165224 A CN 109165224A
- Authority
- CN
- China
- Prior art keywords
- transaction
- key
- hash
- node
- data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Accounting & Taxation (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The present invention provides a kind of indexing means that keyword key is directed on block chain database, is related to block chain data query technique field.The Raw Data Generation transaction record with keyword key that this method ordinary node first is inputted according to user;Transaction is bundled in block by memory node;By the additional write-in disk file of block data;Transaction data is inquired according to key value, exports query result;Ordinary user carries out Trusting eBusiness to result.The present invention is directly indexed according to data key words, realizes the inquiry property of data;Structure of deal in traditional block chain is expanded into the mode configuration that can be stored similar to traditional database, improves applicability;Data permission is managed according to digital signature technology, improves Information Security;Whether according to MerkleRBTree, whether self perception index is tampered, be tampered according to transaction Hash perception transaction, to guarantee that data can not tamper;The data verification function for realizing lightweight node simultaneously enables inquiry end effectively detection data credible.
Description
Technical field
The present invention relates to block chain data query technique fields, more particularly to one kind, and key is directed on block chain database
The indexing means of word key.
Background technique
With bit coin, a series of rise of encryption currency such as ether coin, the block chain technology of bottom is also received more
Carry out more extensive concern.Bit coin it is most crucial be intended to realize decentralization, i.e., no third party's trust authority join
The digital cash transaction of two peer-entities is realized in the case where.However, inevitably existing much certainly in real world
Right center, such as the bank to offer a loan provide the telecom operators etc. of telecommunications service.Although these central authorities can be worked as
Work is peer-entities, goes to hand over telephone expenses by its transaction record to block chain with user, such as with bit coin, but this way
It is unpractical, because this is unfavorable for organization management user data (credit grade etc. including user).In fact, existing
Central authority is all its database for storing user related information to be managed by oneself, but there are many defects for this mode: 1)
Different databases may store identical user's basic identity information, lead to data redudancy height;2) different center machine
The data of each Self management of structure oneself, the data sharing being unfavorable between mechanism;3) each database is mostly by single institution center
Change management, so that user must unconditionally trust the mechanism, there are problems that centralization;4) user can not individual authentication data
Correctness, if data are maliciously tampered, user and mechanism can not all discover.
And block chain technology has decentralization, anti-tamper and open and clear characteristic, to solve above-mentioned these problems
Provide possibility.For this reason it would be desirable to have efficient common recognition algorithm to improve the throughput of system, and there is efficient search algorithm to realize
Data are retrieved on block chain.Currently, there are many researchs, such as POW, POS, PBFT on common recognition algorithm.However it is directed to
The research of block chain query is relatively fewer, is mostly using simultaneous techniques by transaction data synchronization to traditional database, according to each
Data item establishes index, thus realize quick search, but this way does not ensure that can not distorting for index, and so loss
The characteristic that block chain can not be distorted.
Summary of the invention
The technical problem to be solved by the present invention is in view of the above shortcomings of the prior art, provide one kind in block chain database
The upper indexing means for keyword key, solve the problems, such as the inquiry of block chain, realize a kind of index that can not be distorted.
In order to solve the above technical problems, the technical solution used in the present invention is:
A kind of indexing means being directed to keyword key on block chain database, comprising the following steps:
Step 1: the Raw Data Generation transaction record with keyword key that ordinary node is inputted according to user, it is specific to wrap
It includes:
Step 1-1: transaction default information, the timestamp including block chain version number information and data creation moment are generated
Information;
Step 1-2: specifying the forerunner PreHash of the transaction, if keyword key is that occur for the first time, forerunner
PreHash is set to Null, and otherwise forerunner is the cryptographic Hash of newest transaction corresponding to keyword key;
Step 1-3: data permission information and data signature are generated;By ScriptPubk be assigned a value of it is next can be to the pass
The public key that key word key data are modified signs to transaction data according to the private key of oneself using ECDSA algorithm;
Step 2: transaction is bundled in block by memory node, is specifically included:
Step 2-1: whether verifying transaction format meets specification, filters unrecognized transaction;
Step 2-2: whether verifying trading signature is effective;Its transaction index is retrieved into k-v database according to PreHash value
TxIndex retrieves forerunner transaction PreTx according to TxIndex, takes its next specified public key information
PreTx.ScriptPubk;Signature verification is carried out according to the verify () function of ECDSA algorithm, if verify
(PreTx.ScriptPubk, Tx.ScriptSig, Tx)=True, then effectively, otherwise signature is invalid for signature, abandons the transaction;
Step 2-3: detection honeysuckle;The PreHash field of transaction is read, if it is not sky, according to PreHash value to k-
Forerunner transaction index TxIndex is retrieved in v database, if the index indicates that the subsequent transaction of forerunner's transaction is not empty, table
Bright transaction to be verified is that honeysuckle is traded, and determines that it is invalid;If its subsequent transaction is sky, subsequent transaction is assigned a value of to be verified
The cryptographic Hash of transaction, transaction to be verified are effective;If the PreHash field of transaction is sky, that is, before the founder to trade thinks
There is no transaction identical with this transaction keyword key, whether can retrieve the friendship that keyword is key in lookup system at this time
Easily, transaction invalid if retrieving, the transaction is effective if not retrieving;
Step 2-4: after transaction is verified effectively, transaction is inserted into the orderly transaction array vTx of key in block body
In [], MerkleRBTree index is updated;
The rule for updating MerkleRBTree is as follows: initialization present node is Merkleroot, ingress more to be inserted
Keyword key and present node keyword NodeKey is inserted into the left subtree of present node if key <=NodeKey,
Then the left child that present node is present node is updated, right subtree is otherwise inserted into, then updating present node is its right child
Son, successively recurrence, to the last one layer of branch node;After insertion transaction, carrying out rotation to the tree makes it guarantee black balance,
And it is Hash (lefthash, rigthhash, key) that recurrence updates branch node cryptographic Hash upwards;In the last layer branch node
The node is inserted into according to following 4 kinds of situations:
Situation 1: if the branch node is sky, which only occurs when Merkleroot is empty, then carries out to transaction
The bis- hashing operations of Sha256 obtain its cryptographic Hash Hash (Tx), then create a branch node, and define its key value and be
Key, left Hash are leaf node cryptographic Hash, and right Hash is 0, shaped like (Hash (Tx), 0, key);
Situation 2: if being inserted into data key value less than node NodeKey value, which should be inserted into a node left side
Side;The bis- hashing operations of Sha256 are carried out to transaction first, obtain its cryptographic Hash Hash (Tx), then create a red branch
Node, keyword are ingress key to be inserted, and left Hash is Hash (Tx), and right Hash is the left Hash of original branch node, i.e.,
(Hash (Tx), Oldlefthash, key);Remember hash=Hash (Hash (Tx), Oldlefthash, key), then updates father's section
Point is (hash, Oldrighthash, oldkey);
Situation 3: if being inserted into data key value greater than node NodeKey value, and the right Hash of the node is 0, then right
Transaction carries out the bis- hashing operations of Sha256, obtains its cryptographic Hash Hash (Tx), then updating the branch node is
(Oldlefthash, Hash (Tx), Oldkey);
Situation 4: if be inserted into, data key value is greater than node NodeKey value and the right Hash of the node is not 0,
The bis- hashing operations of Sha256 first are carried out to transaction, obtain its cryptographic Hash Hash (Tx), then create red branch node, branch's section
Point key value is the smaller being inserted into data key value and the right child key value of former branch node, and left child is to be inserted into data
With key value smaller in the right child of former branch node, right child is the greater;The right Hash of its father node of final updating is newly-built point
Zhi Jiedian Hash;
Step 3: the additional write-in disk file of block data specifically includes:
Step 3-1: the transaction array vTx [] that transaction initial data is saved in block head and block body is serialized, suitable
Sequence is written in disk file blk000x, and returns to position nFile of the block in disk, BlockPos;
Step 3-2: generating the metadata TxIndex (nFile, BlockPos, n) of each transaction, wherein nFile specified the
Several files, BlockPos specify the offset of the block hereof, and n given transaction corresponds to the subscript in subordinate ordered array,
And by the storage of the metadata information of each transaction into k-v database, format is k=Hash (Tx), v=(TxIndex);
Step 3-3: MerkleRBTree index entry is stored in k-v database, wherein k=Hash (lefthash,
Righthash, key), v=(lefthash, righthash, key);
Step 4: being inquired and traded according to keyword key, return to query result;Transaction is begun looking for from newest block, such as
The fruit block is not found, and inquires its previous block;
In the lookup method of single block are as follows: it is entered in MerkleRBTree from the MerkleRoot of block head, from
MerkleRoot starts to compare target keywords key and present node keyword Ckey, if key is less than or equal to Ckey, searches
Its left child, and right child and node key are pressed into verifying path stack, otherwise searches its right child, and by left child
It is pressed into verifying path stack, is successively executed until leaf node with node key;If leaf node key value key is equal to
Key word of the inquiry key, then query hit;According to the transaction cryptographic Hash Hash (Tx) finally inquired in leaf node, with Hash
(Tx) it is k, the corresponding index information TxIndex on disk of the transaction, last basis is inquired in k-v database
TxIndex reads Transaction Information Tx in disk file;Verifying path stack and transaction prime information are finally returned into common use
Family;
Step 5: ordinary user carries out Trusting eBusiness to query result;
After ordinary user receives verifying path stack and Transaction Information, the bis- hashing operations of Sha256 are carried out to transaction first and are obtained
To transaction cryptographic Hash Hash (Tx), the bis- hashing operations of Sha256, obtained Hash then are done with the value popped up in verifying path stack
Value continues to do Hash with the next value popped up in stack, until stack is sky;In the cryptographic Hash and this area build compared
Whether Merkleroot value is equal, and data are credible if equal, otherwise insincere.
The beneficial effects of adopting the technical scheme are that one kind provided by the invention is on block chain database
For the indexing means of keyword key, can be directly indexed according to data key words, rather than basis in existing block chain
Cryptographic Hash is indexed, and realizes the inquiry property of data;Structure of deal in traditional block chain, which is expanded to, can store class
It is similar to the mode configuration of traditional database, improves applicability;Data permission is managed according to digital signature technology, improves data
Safety;Can according to MerkleRBTree self perception index whether be tampered, according to transaction Hash perception transaction whether by
It distorts, so that ensure that data can not tamper;The data verification function of lightweight node is realized simultaneously, so that inquiry end
It being capable of effective detection data credibility.
Detailed description of the invention
Fig. 1 is structure of deal figure provided in an embodiment of the present invention;
Fig. 2 is block structure figure provided in an embodiment of the present invention;
Fig. 3 is MerkleRBTree structure chart provided in an embodiment of the present invention;
Fig. 4 is that data provided in an embodiment of the present invention are inserted into Sample Rules figure, wherein (a) is that the empty node of situation 1 is inserted into
As a result, (b) being the left side insertion of situation 2 as a result, (c) right side insertion when be the right child of situation 3 being sky is as a result, (d) be feelings
Result is inserted on right side when the right child of condition 4 is not sky.
Specific embodiment
With reference to the accompanying drawings and examples, specific embodiments of the present invention will be described in further detail.Implement below
Example is not intended to limit the scope of the invention for illustrating the present invention.
The block chain technical term that the present invention designs is explained as follows:
Hash pointer: the Hash pointer of a data item refers to being consolidated after the content of the data item is done hashing operation
The cryptographic Hash of measured length, while being key with the cryptographic Hash, the content of the data item is value, by this k-v to being stored in k-v number
According to library, then the key is the Hash pointer of the data item;
Transaction: as shown in Figure 1, being structure of deal figure, transaction is divided into transaction head (Transaction) and mode (Schema)
Two parts, transaction head includes: under version number (Version), father's transaction Hash (PreHash), exchange hour (nTime), transaction
One owner's public key (ScriptPubk) proves this transaction effectively signature (ScriptSig);Mode part is similar to traditional number
It include keyword key and each field (field) according to the table structure in library;
Block chain: block chain is exactly that block one by one joins end to end according to Hash pointer, each block is once being formed
Just immutable;As shown in Fig. 2, being block structure figure, block is divided into block head and block body two parts, and block head includes: version
This number, timestamp when being formed of previous block Hash pointer (being obtained by previous block head data Hash), block, hand in block body
The Merkle root that easily Hash obtains from bottom to top and random number and target Hash for proof of work;It is saved in block body
The All Activity record in block;
Block chain database: having a plurality of block chain in database, each block chain is equivalent to one in traditional database
Table is opened, all central authorities serve as the memory node of data, and all memory nodes generate block chain, institute according to common recognition algorithm
There is node (including user) memory block build information, record can be retrieved by block head information and verify record correctness;
MerkleRBTree: Merkle tree is combined with red black tree, for the transaction data in index area block;Such as
It is MerkleRBTree structure chart, each node has keyword message, and since root node, key value is less than shown in Fig. 3
Data equal to the node key are stored in left subtree, and the data greater than the node key are stored in right subtree;Leaf section
The Hash pointer of point store transaction data, by its left and right child nodes, Hash obtains non-leaf nodal value two-by-two.
For in existing block chain database can only to transaction cryptographic Hash inquiry, general data structure can not be stored not
Foot, the present invention provide a kind of indexing means that keyword key is directed on block chain database, and it is described that specific step is as follows.
Step 1 generates transaction record.User input data is analogous to the Schema data in traditional SQL database, this
The purpose of step is to generate additional information required for block chain mechanism is run.
Step 1-1, default information is generated.
Generate block chain version number information and the timestamp information at data creation moment.
Step 1-2, predecessor information is generated.
In the present invention, for possessing the data of same keyword key, think that only newest data are effective always
, and old data are considered as the forerunner of new data, so logically joining end to end life for the data of same keyword
At a chain structure.When the data that keyword is key are written, the forerunner of the data object is specified, if without forerunner,
Then forerunner is set to Null.
Step 1-3, data permission information and data signature are generated.
In the present invention, the data unsuppressible-suppression in database is written, data modification is identical by re-writing one
The data item of keyword is realized.The authority information of data refers to that the founder of this transaction data can specify to the data
The condition met required for modifying.ECDSA algorithm is introduced herein, it is specified to modify down to the data item
One public key, and it is assigned to ScriptPubk.Last notebook data founder signs to the transaction using its private key, is used for
Subsequent proof notebook data founder possesses the permission modified to the data.
Transaction is bundled in block by step 2.
Step 2-1, verifying transaction correctness.
The verification of correctness of transaction mainly verifies the format and data permission information of transaction.Format verification removal can not be known
Other transaction guarantees system safety.The Authority Verification of transaction introduces ECDSA algorithm, and the SicripPubk in transaction is next
Rights holder's public key, ScriptSig are the digital signature information that this transaction creation person generates.Authority Verification is to pass through verify
The ScriptPubk whether ScriptSig that () function verifies this transaction trades with its forerunner matches, and proves if matching
The founder of this transaction possesses the required private key of its forerunner transaction, can modify to the forerunner of this transaction, if not
With then without relevant permission, this transaction invalid.
Step 2-2, honeysuckle is detected.
Data permission verifying guarantees only to possess corresponding private key, just can be carried out the modification to transaction forerunner, but work as and hand over
Easy owner by permission be transferred to it is next it is subsequent after, still the permission of this transaction can be transferred to other successions,
And it modifies to this transaction, to cause data inconsistency, this phenomenon is referred to as honeysuckle.Memory node receives transaction
After record, the prehash field of transaction is read, retrieves forerunner's transaction index into k-v database according to prehash value
TxIndex shows that transaction to be verified is that honeysuckle is traded, sentences if the index indicates that the subsequent transaction of forerunner's transaction is not sky
It is invalid to determine it.If its subsequent transaction is sky, subsequent trade is assigned a value of the cryptographic Hash of transaction to be verified, transaction to be verified has
Effect.If the prehash field of transaction is sky, that is, the founder to trade is not present and this keyword key phase of trading before thinking
Same transaction, honeysuckle verifying at this time is then to look in system the transaction that keyword is key whether can be retrieved, if retrieval
To then transaction invalid to be verified, the transaction is effective if not retrieving.
Step 2-3, block index is updated.
When transaction be verified effectively after, by its initial data tx storage into key orderly array vTx [], to Tx into
The storage keyword is inserted by the double Sha256 hashing operations of row, the storage keyword KEY=Hash (Tx) to be traded
In MerkleRBTree.MerklrRBTree is the combination of red black tree and Merkle tree, each node is one k-v pairs,
Wherein k=hash (VAL), v=(hashleft, hashright, key).Data are initially inserted into from root node, compares and is inserted into
Node key key and Merkleroot node key NodeKey, is inserted into its left son if key <=NodeKey
Tree, is otherwise inserted into its right subtree, to the last one layer of branch node.After insertion transaction, carrying out rotation to the tree makes its guarantor
Black balance is demonstrate,proved, and it is Hash (1efthash, rigthhash, key) that recurrence updates branch node cryptographic Hash upwards.Last
One layer of branch node is inserted into the node according to following 4 kinds of situations:
Situation 1: if the branch node is empty (only occurring when Merkleroot is empty), it is bis- that Sha256 is carried out to transaction
Hashing operation obtains its cryptographic Hash Hash (Tx), then creates a branch node, and defining its key value is key, left Hash
For leaf node cryptographic Hash, right Hash is 0, shaped like (Hash (Tx), 0, key), is inserted into shown in result such as Fig. 4 (a).This also illustrates
As long as one tree is not sky, branch node is not centainly sky, and the key value of the last layer branch node centainly and its
Left child key value is identical.
Situation 2: if being inserted into data key value less than node NodeKey value, which should be inserted into this by us
It on the left of node, but by situation 1 it is found that the left child of the node is not centainly sky, and is leaf node.Transaction is carried out first
The bis- hashing operations of Sha256 obtain its cryptographic Hash Hash (Tx), then create a red branch node, keyword be to
It is inserted into node key, left Hash is Hash (Tx), and right Hash is the left Hash of original branch node, i.e., (Hash (Tx),
Oldlefthash, key).Remember hash=Hash (Hash (Tx), Oldlefthash, key), then update father node be (hash,
Oldrighthash, Oldkey), shown in insertion result such as Fig. 4 (b).
Situation 3: if being inserted into data key value greater than node NodeKey value, and the right Hash of the node is 0, then right
Transaction carries out the bis- hashing operations of Sha256, obtains its cryptographic Hash Hash (Tx), then updating the branch node is
(Oldlefthash, Hash (Tx), Oldkey), shown in insertion result such as Fig. 4 (c).
Situation 4: if be inserted into, data key value is greater than node NodeKey value and the right Hash of the node is not 0.Then
The bis- hashing operations of Sha256 first are carried out to transaction, obtain its cryptographic Hash Hash (Tx), then create red branch node, branch's section
Point key value is the smaller being inserted into data key value and the right child key value of former branch node, and left child is to be inserted into data
With key value smaller in the right child of former branch node, right child is the greater;The right Hash of its father node of final updating is newly-built point
Zhi Jiedian Hash, shown in insertion result such as Fig. 4 (d).
Block data is added write-in disk file by step 3.
Data write-in is carried out as unit of block, then will be in block when in block number of transaction reaches fixed threshold
Data be written on disk.It is first that the transaction array vTx [] that transaction initial data is saved in block head and block body is suitable
Sequence is written in disk file blk000x.The MerkleRBTree established in block body is then stored into k-v database.Simultaneously
The metadata of BlockIndex memory block is generated, for retrieving block;Generate the storage location that TxIndex saves transaction.
Step 4, data search.
Transaction is inquired according to data key words key, all blocks join end to end, the basis since newest block
Key is searched.In single block, enters in MerkleRBTree from the MerkleRoot of block head, opened from MerkleRoot
Beginning compares target keywords key and present node keyword Ckey, if key is less than or equal to Ckey, searches its left child, otherwise
Its right child is searched, successively executes until leaf node, is O (lgN) for query time complexity in the block of N number of node.
If transaction in this block, finally can inquire transaction cryptographic Hash Hash (Tx) in leaf node, with Hash (Tx) for k,
The corresponding index information TxIndex on disk of the transaction can be inquired in k-v database, finally existed according to TxIndex
Transaction Information Tx is read in disk file.If transaction is not in this block, according to Same Way in its forerunner's block
It searches.
In the present invention data can not tamper be embodied in the following aspects: (1) process of Hash (Tx) is obtained from key
In, it is retrieved downwards according to MerkleRBTree from root node, because the tree when generating is got by leaf node Hash,
Leaf node centainly can be finally retrieved, if on the way inquired less than a certain branch node, illustrates to be upper branch section
Point data is tampered or next node loss of data;(2) from Hash (Tx) obtain Tx during because Hash (Tx) is Tx
It is got via hash operation, it is possible to detect whether transaction Tx is tampered according to Hash (Tx).
Step 5, data verification.
Lightweight node memory block build information, memory node memory block build and block body.When lightweight node is looked into
When asking data, memory node returns to query result and verifying path.When lightweight node receives data, since query result
Up Hash two-by-two ultimately generates verifying MerkleRoot, by compare the MerkleRoot whether with the block that locally saves
Whether the MerkleRoot in head unanimously carrys out revene lookup result effective.
Block chain data index method provided by the invention is further illustrated below according to specific embodiment.Table 1 is user
Storage is wanted to the data in block chain database.
Table 1 will store the data in block chain database
Key | Name | Sex | Account |
1600005 | Bob | Male | 7000 |
1600004 | Alice | Female | 6000 |
1600007 | Tom | Male | 5000 |
1600006 | Jack | Male | 8000 |
Index process of the main demonstration data of the present embodiment in MerkleRBTree, thus be omitted transaction Prehash,
PubKey and ScriptSig etc. controls information.Assuming that current block is sky, four transaction in above-mentioned table 1 successively arrive, storage
Transaction is successively bundled in block by node.
When node receives the 1st article of transaction, MerkleRoot is sky at this time, according to 1 institute of situation in the present embodiment step 2-3
It states, the transaction is subjected to double Sha256 hashing operations first, the cryptographic Hash traded is 747d51d1007b4fb1be01ae
B633e78f66cbdeae393aaa200e73627498b2551df (to show its first 8 convenient for writing subsequent), then gives birth to
At branch node, with cryptographic Hash of trading for its left Hash, right Hash is 0, and node keyword key is 1600005, is generated
MerkleRBTree index entry is as shown in table 2, wherein k=Hash (v).
MerkleRBTree index entry is generated when the 1st article of transaction of table 2
When node is inserted into the 2nd article of transaction, MerkleRoot node key is 1600005 at this time, is inserted into transaction
Keyword is 1600004, is less than root node keyword, should be inserted into left subtree at this time, and because MerkleRoot is left side
(list item of k=747d51d1 is not present) in the last layer branch node in index entry table, at this time situation and situation 2 in step 2-3
It is consistent, then operating procedure are as follows: transaction 2 is first subjected to the bis- hashing operations of Sha256, obtaining transaction cryptographic Hash is dcaa0e32, newborn
At branch node, left Hash is dcaa0e32, and right Hash is the left Hash 747d51d1 of father node, keyword 1600004;It
Update father node upwards afterwards, the left Hash of father node is newly-generated branch node Hash, and father node k also accordingly changes, after update
MerkleRBTree index entry is as shown in table 3.
Table 3 is inserted into MerkleRBTree index entry after the 2nd article of transaction
When node is inserted into the 3rd article of transaction, MerkleRoot keyword is 1600005, and being inserted into node key is
1600007, be greater than MerkleRoot keyword, then should be inserted into its right subtree, and because at this time MerkleRoot sheet as
Right side the last layer branch node, situation is consistent with situation 3 in step 2-3 at this time, then subsequent step are as follows: carries out transaction
The bis- hashing operations of Sha256, obtaining transaction cryptographic Hash is b178577f, and the update right Hash of MerkleRoot is b178577f, then
The k of MerkleRoot accordingly changes, and last MerkleRBTree index entry is as shown in table 4.
Table 4 is inserted into MerkleRBTree index entry after the 3rd article of transaction
Although there is no the record of key=1600007 in concordance list after the transaction that insertion keyword is 1600007,
It is 1600007 > 1600005 in inquiry, so its right Hash b178577f is searched, and b178577f is exactly key=
Transaction Hash corresponding to 1600007, i.e., 1600005 right Hash have recorded the record (1600007) of key > 1600005.
When node is inserted into the 4th article of transaction, MerkleRoot keyword is 1600005, and being inserted into node key is
1600006, it is greater than MerkleRoot keyword, right subtree should be inserted into, and MerkleRoot is right side the last layer branch section
Point is consistent with step 2-3 situation 4, operates later are as follows: transaction is subjected to hashing operation, obtaining transaction cryptographic Hash is 228de82e,
Newly-generated branch node, the left Hash of node be 228de82e, right Hash be b178577f, node key 1600006, later
Updating the right Hash of father node upwards is the branch node Hash, the k value of final updating MerkleRoot.After update
MerkleRBTree index entry is as shown in table 5.
Table 5 is inserted into MerkleRBTree index entry after the 4th article of transaction
Assuming that block size reaches threshold value (actually each block there are thousands of transaction) at this time, deposit magnetic is begun preparing
Disk.The MerkleRoot value in block head corresponds to d90f7e2e at this time, and the transaction array in block body is that the transaction in table 1 is former
Beginning data, MerkleRBTree index entry write direct k-v database.First by the transaction array number in block head and block body
According to serializing, sequentially it is appended in disk file blk0001.dat, returning to block in disk offset is nFile=1,
BlockPos=8 subsequently generates the metadata TxIndex (nFile, BlockPos, n, NextHash) of each transaction, wherein
Which file nFile specifies, and BlockPos specifies the offset of the block hereof, and n given transaction correspondence is having ordinal number
Subscript in group, NextHash given transaction subsequent (omitting herein for detecting honeysuckle) finally believe the metadata of each transaction
Into k-v database, metadata is as shown in table 6 for breath storage.
The metadata information of each transaction of table 6
Txhash | nFile | BlockPos | n |
dcaa0e32 | 1 | 8 | 0 |
eaf1e7ec | 1 | 8 | 1 |
228de82e | 1 | 8 | 2 |
b178577f | 1 | 8 | 3 |
Problem for convenience of description is enumerated the cryptographic Hash of each transaction as follows:
The cryptographic Hash of each transaction of table 7
TxHash | Key | Name | Sex | Account |
dcaa0e32 | 1600004 | Alice | Female | 6000 |
eaf1e7ec | 1600005 | Bob | Male | 7000 |
228de82e | 1600006 | Jack | Male | 8000 |
b178577f | 1600007 | Tom | Male | 5000 |
When key word of the inquiry is 160006 transaction, first according to the MerkleRoot value d90f7e2e of block head, arrive
Retrieved in k-v database MerkleRoot value be (baa9d30a, be149016,1600005), 1600006 > 1600005,
Therefore retrieve k=be149016 in k-v database, obtain MerkleRBTree index value be (228de82e, b178577f,
1600006), 1600006=1600006, therefore retrieve k=228de82e in k-v database, obtain transaction metadata be (1,
8,3) it is (1600006, Jack, Male, 8000) that, finally unserializing, which obtains the transaction initial data, in disk file, together
When verifying path be inquiry when miss that side cryptographic Hash, be in the present embodiment ((baa9d30a, 1600005),
(b178577f, 1600006)), finally return to lightweight node result be ((baa9d30a, 1600005),
(b178577f, 1600006), (1600006, Jack, Male, 8000)), lightweight node by verifying Hash (baa9d30a,
Hash (Hash (1600006, Jack, Male, 8000), b178577f, 1600006), 1600005) value whether with it is local
MerkleRoot value it is equal come revene lookup result credibility.
Finally, it should be noted that the above embodiments are merely illustrative of the technical solutions of the present invention, rather than its limitations;Although
Present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that: it still may be used
To modify to technical solution documented by previous embodiment, or some or all of the technical features are equal
Replacement;And these are modified or replaceed, model defined by the claims in the present invention that it does not separate the essence of the corresponding technical solution
It encloses.
Claims (3)
1. a kind of indexing means for being directed to keyword key on block chain database, it is characterised in that: this method includes following step
It is rapid:
Step 1: the Raw Data Generation transaction record with keyword key that ordinary node is inputted according to user specifically includes:
Step 1-1: transaction default information is generated, is believed including the timestamp at block chain version number information and data creation moment
Breath;
Step 1-2: specifying the forerunner PreHash of the transaction, if keyword key is that occur for the first time, forerunner PreHash is set
For Null, otherwise forerunner is the cryptographic Hash of newest transaction corresponding to keyword key;
Step 1-3: data permission information and data signature are generated;By ScriptPubk be assigned a value of it is next can be to the keyword
The public key that key data are modified signs to transaction data according to the private key of oneself using ECDSA algorithm;
Step 2: transaction is bundled in block by memory node, is specifically included:
Step 2-1: whether verifying transaction format meets specification, filters unrecognized transaction;
Step 2-2: whether verifying trading signature is effective;Its transaction index is retrieved into k-v database according to PreHash value
TxIndex retrieves forerunner transaction PreTx according to TxIndex, takes its next specified public key information
PreTx.ScriptPubk;Signature verification is carried out according to the verify () function of ECDSA algorithm, if verify
(PreTx.ScriptPubk, Tx.ScriptSig, Tx)=True, then effectively, otherwise signature is invalid for signature, abandons the transaction;
Step 2-3: detection honeysuckle;The PreHash field of transaction is read, if it is not sky, according to PreHash value to k-v number
Trade index TxIndex according to forerunner is retrieved in library, if the index indicate forerunner's transaction subsequent transaction be not it is empty, show to
Verifying transaction is that honeysuckle is traded, and determines that it is invalid;If its subsequent transaction is sky, subsequent transaction is assigned a value of transaction to be verified
Cryptographic Hash, transaction to be verified is effective;If the PreHash field of transaction is sky, that is, the founder to trade does not deposit before thinking
In transaction identical with this transaction keyword key, the transaction that keyword is key whether can be retrieved in lookup system at this time,
The transaction invalid if retrieving, the transaction is effective if not retrieving;
Step 2-4: after transaction is verified effectively, transaction is inserted into the orderly transaction array vTx [] of key in block body
In, update MerkleRBTree index;
The rule for updating MerkleRBTree is as follows: initialization present node is Merkleroot, and ingress more to be inserted is crucial
Word key and present node keyword NodeKey is inserted into the left subtree of present node, then if key <=NodeKey
The left child that present node is present node is updated, right subtree is otherwise inserted into, then updating present node is its right child, according to
Secondary recurrence, to the last one layer of branch node;After insertion transaction, carrying out rotation to the tree makes it guarantee black balance, and passs
It is Hash (lefthash, rigthhash, key) that branch node cryptographic Hash is updated in inclination;
Step 3: the additional write-in disk file of block data specifically includes:
Step 3-1: the transaction array vTx [] that transaction initial data is saved in block head and block body is serialized, sequential write
Enter into disk file blk000x, and returns to position nFile of the block in disk, BlockPos;
Step 3-2: generating the metadata TxIndex (nFile, BlockPos, n) of each transaction, and wherein which nFile it is a to specify
File, BlockPos specify the offset of the block hereof, and n given transaction corresponds to the subscript in subordinate ordered array, and will
The metadata information of each transaction is stored into k-v database, and format is k=Hash (Tx), v=(TxIndex);
Step 3-3: MerkleRBTree index entry is stored in k-v database, wherein k=Hash (lefthash,
Righthash, key), v=(lefthash, righthash, key);
Step 4: being inquired and traded according to keyword key, return to query result;Transaction is begun looking for from newest block, if should
Block is not found, and inquires its previous block;
Step 5: ordinary user carries out Trusting eBusiness to query result;
After ordinary user receives verifying path stack and Transaction Information, the bis- hashing operations of Sha256 are carried out to transaction first and are handed over
Easy cryptographic Hash Hash (Tx), then does the bis- hashing operations of Sha256 with the value popped up in verifying path stack, obtained cryptographic Hash after
It is continuous to do Hash with next value that is popping up in stack, until stack is sky;In the cryptographic Hash and this area build compared
Whether Merkleroot value is equal, and data are credible if equal, otherwise insincere.
2. the indexing means according to claim 1 for being directed to keyword key on block chain database, it is characterised in that:
In the step 2-4, the node is inserted into according to following 4 kinds of situations in the last layer branch node:
Situation 1: if the branch node is sky, which only occurs when Merkleroot is empty, then carries out to transaction
The bis- hashing operations of Sha256 obtain its cryptographic Hash Hash (Tx), then create a branch node, and define its key value and be
Key, left Hash are leaf node cryptographic Hash, and right Hash is 0, shaped like (Hash (Tx), 0, key);
Situation 2: if being inserted into data key value less than node NodeKey value, which should be inserted on the left of the node;
The bis- hashing operations of Sha256 are carried out to transaction first, obtain its cryptographic Hash Hash (Tx), then create red branch's section
Point, keyword are ingress key to be inserted, and left Hash is Hash (Tx), and right Hash is the left Hash of original branch node, i.e.,
(Hash (Tx), Oldlefthash, key);Remember hash=Hash (Hash (Tx), Oldlefthash, key), then updates father's section
Point is (hash, Oldrighthash, oldkey);
Situation 3: if being inserted into data key value greater than node NodeKey value, and the right Hash of the node is 0, then to transaction
Carry out the bis- hashing operations of Sha256, obtain its cryptographic Hash Hash (Tx), then update the branch node for (Oldlefthash,
Hash (Tx), Oldkey);
Situation 4: if be inserted into, data key value is greater than node NodeKey value and the right Hash of the node is not 0, first right
Transaction carries out the bis- hashing operations of Sha256, obtains its cryptographic Hash Hash (Tx), then creates red branch node, and branch node closes
Key assignments is the smaller being inserted into data key value and the right child key value of former branch node, and left child is to be inserted into data and original
Key value smaller in the right child of branch node, right child are the greater;The right Hash of its father node of final updating is newly-built branch's section
Point Hash.
3. the indexing means according to claim 2 for being directed to keyword key on block chain database, it is characterised in that:
In the step 4, in the lookup method of single block are as follows: it is entered in MerkleRBTree from the MerkleRoot of block head,
Compare target keywords key and present node keyword Ckey since MerkleRoot, if key is less than or equal to Ckey, looks into
It looks for its left child, and right child and node key is pressed into verifying path stack, otherwise search its right child, and by left child
Son and node key are pressed into verifying path stack, are successively executed until leaf node;If leaf node key value key etc.
In key word of the inquiry key, then query hit;According to the transaction cryptographic Hash Hash (Tx) finally inquired in leaf node, with
Hash (Tx) is k, and the corresponding index information TxIndex on disk of the transaction, last basis are inquired in k-v database
TxIndex reads Transaction Information Tx in disk file;Verifying path stack and transaction prime information are finally returned into common use
Family.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810971875.4A CN109165224B (en) | 2018-08-24 | 2018-08-24 | Indexing method for key words on block chain database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810971875.4A CN109165224B (en) | 2018-08-24 | 2018-08-24 | Indexing method for key words on block chain database |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109165224A true CN109165224A (en) | 2019-01-08 |
CN109165224B CN109165224B (en) | 2021-02-19 |
Family
ID=64896704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810971875.4A Active CN109165224B (en) | 2018-08-24 | 2018-08-24 | Indexing method for key words on block chain database |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109165224B (en) |
Cited By (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766389A (en) * | 2019-01-09 | 2019-05-17 | 华东师范大学 | A kind of light client revene lookup method of block chain based on bitmap index |
CN109885615A (en) * | 2019-01-24 | 2019-06-14 | 华东师范大学 | A kind of range query towards the light client of block chain based on index can verify that querying method |
CN109918375A (en) * | 2019-02-26 | 2019-06-21 | 杭州云象网络技术有限公司 | It is a kind of based on block chain and the big text of distributed storage storage, index and search method |
CN110059089A (en) * | 2019-03-27 | 2019-07-26 | 深圳前海达闼云端智能科技有限公司 | Data synchronization method and device, storage medium and electronic equipment |
CN110059084A (en) * | 2019-01-31 | 2019-07-26 | 阿里巴巴集团控股有限公司 | A kind of date storage method, device and equipment |
CN110096522A (en) * | 2019-05-15 | 2019-08-06 | 西安电子科技大学 | A kind of block chain data processing method, device and equipment for supporting relationship type to retrieve |
CN110162662A (en) * | 2019-04-18 | 2019-08-23 | 阿里巴巴集团控股有限公司 | Verification method, device and the equipment of data record in a kind of piece of chain type account book |
CN110175840A (en) * | 2019-04-19 | 2019-08-27 | 华中科技大学 | Method, client, alliance's chain and the system of light wallet mechanism are realized in alliance's chain |
CN110175188A (en) * | 2019-05-31 | 2019-08-27 | 杭州复杂美科技有限公司 | A kind of block chain state data buffer storage and querying method, equipment and storage medium |
CN110209675A (en) * | 2019-06-18 | 2019-09-06 | 北京艾摩瑞策科技有限公司 | Credit data querying method and its device on block chain |
CN110263015A (en) * | 2019-05-07 | 2019-09-20 | 深圳壹账通智能科技有限公司 | Data source tracing method, device, equipment and readable storage medium storing program for executing based on block chain |
CN110334154A (en) * | 2019-06-28 | 2019-10-15 | 阿里巴巴集团控股有限公司 | Based on the classification storage method and device of block chain, electronic equipment |
CN110442577A (en) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | A kind of storage of status data, inquiry and management method, equipment and storage medium |
WO2019101229A3 (en) * | 2019-03-04 | 2019-12-26 | Alibaba Group Holding Limited | Updating blockchain world state merkle patricia trie subtree |
CN110688377A (en) * | 2019-08-30 | 2020-01-14 | 阿里巴巴集团控股有限公司 | Method and device for updating state Merck tree |
CN110704428A (en) * | 2019-09-06 | 2020-01-17 | 深圳壹账通智能科技有限公司 | Data indexing method and device for block chain, computer equipment and storage medium |
CN110837505A (en) * | 2019-11-06 | 2020-02-25 | 杭州复杂美科技有限公司 | State data storage method, state data synchronization device and storage medium |
CN110874365A (en) * | 2019-11-20 | 2020-03-10 | 深圳市网心科技有限公司 | Information query method and related equipment thereof |
CN110971393A (en) * | 2019-11-29 | 2020-04-07 | 中南大学 | Keyword query verification method and device based on block chain dynamic social outsourcing data |
CN111033489A (en) * | 2019-05-14 | 2020-04-17 | 阿里巴巴集团控股有限公司 | Method and apparatus for data traversal |
CN111080298A (en) * | 2019-12-26 | 2020-04-28 | 电子科技大学 | Block generation and transaction verification method suitable for energy source block chain |
CN111488358A (en) * | 2020-04-08 | 2020-08-04 | 北京瑞策科技有限公司 | Data query method and device based on service data block chain |
CN111581215A (en) * | 2020-05-07 | 2020-08-25 | 钟士平 | Array tree data storage method, fast search method and readable storage medium |
CN111596862A (en) * | 2020-05-20 | 2020-08-28 | 南京如般量子科技有限公司 | Independent optimization method and system for block chain historical transaction data |
CN111626680A (en) * | 2020-06-02 | 2020-09-04 | 重庆云创科技有限公司 | Transaction data chain storage method and block chain storage method for credit evaluation |
CN111639080A (en) * | 2020-06-01 | 2020-09-08 | 腾讯科技(深圳)有限公司 | Data processing method and device, node equipment and storage medium |
CN111680317A (en) * | 2020-04-27 | 2020-09-18 | 华东师范大学 | Block chain-oriented optimistic concurrency order-preserving coding method |
CN111695885A (en) * | 2019-03-14 | 2020-09-22 | 中国科学技术大学 | Digital certificate block chain compression method based on transaction input reduction |
US10789222B2 (en) | 2019-06-28 | 2020-09-29 | Alibaba Group Holding Limited | Blockchain-based hierarchical data storage |
WO2020211569A1 (en) * | 2019-04-18 | 2020-10-22 | 创新先进技术有限公司 | Method for constructing index of data record |
CN111898164A (en) * | 2020-07-02 | 2020-11-06 | 武汉纺织大学 | Data integrity auditing method supporting tag block chain storage and query |
WO2020224249A1 (en) * | 2019-05-07 | 2020-11-12 | 深圳壹账通智能科技有限公司 | Blockchain-based transaction processing method, device and apparatus, and storage medium |
CN112487027A (en) * | 2020-12-02 | 2021-03-12 | 济南浪潮高新科技投资发展有限公司 | Efficient data query implementation method based on block chain electronic transaction |
US10992459B2 (en) | 2019-08-30 | 2021-04-27 | Advanced New Technologies Co., Ltd. | Updating a state Merkle tree |
US10990705B2 (en) | 2019-04-18 | 2021-04-27 | Advanced New Technologies Co., Ltd. | Index creation for data records |
CN112765155A (en) * | 2020-12-14 | 2021-05-07 | 杭州趣链科技有限公司 | Block chain-based key value storage method and device, terminal equipment and medium |
CN112800065A (en) * | 2021-02-09 | 2021-05-14 | 北京工业大学 | Efficient data retrieval method based on improved block storage structure |
US11036720B2 (en) | 2019-06-28 | 2021-06-15 | Advanced New Technologies Co., Ltd. | Blockchain-based hierarchical data storage |
CN112966001A (en) * | 2021-02-26 | 2021-06-15 | 东北大学 | BCTkPQ query method based on block chain |
US20210234671A1 (en) * | 2020-01-29 | 2021-07-29 | EMC IP Holding Company LLC | Using sparse merkle trees for smart synchronization of s3 |
CN113468571A (en) * | 2021-07-15 | 2021-10-01 | 湖北央中巨石信息技术有限公司 | Tracing method based on block chain |
CN113901131A (en) * | 2021-09-02 | 2022-01-07 | 北京邮电大学 | Index-based on-chain data query method and device |
CN114020737A (en) * | 2021-10-20 | 2022-02-08 | 大连理工江苏研究院有限公司 | Efficient and reliable indexing method for block chain data |
CN114153827A (en) * | 2021-10-11 | 2022-03-08 | 北京天德科技有限公司 | Transaction data removing method based on block chain system |
CN114519078A (en) * | 2022-04-19 | 2022-05-20 | 北京理工大学 | Cross-chain credible query method and system based on block chain |
CN115037755A (en) * | 2022-04-27 | 2022-09-09 | 东北大学 | Block chain lightweight storage method based on data redistribution and dynamic node strategy |
CN115052008A (en) * | 2022-05-26 | 2022-09-13 | 南京邮电大学 | Block chain data link down-link storage method based on cloud storage |
CN115065458A (en) * | 2022-08-08 | 2022-09-16 | 北京邮电大学 | Electronic commerce transaction system with data encryption transmission |
CN115081031A (en) * | 2022-07-26 | 2022-09-20 | 成都云智数安科技有限公司 | Tamper-proof block chain data storage method and system |
US11455319B2 (en) * | 2020-01-29 | 2022-09-27 | EMC IP Holding Company LLC | Merkle tree forest for synchronizing data buckets of unlimited size in object storage systems |
US11461362B2 (en) * | 2020-01-29 | 2022-10-04 | EMC IP Holding Company LLC | Merkle super tree for synchronizing data buckets of unlimited size in object storage systems |
CN113901131B (en) * | 2021-09-02 | 2024-06-07 | 北京邮电大学 | Index-based on-chain data query method and device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227833A (en) * | 2016-07-26 | 2016-12-14 | 宁圣金融信息服务(上海)有限公司 | Block chaining search engine method, system and device |
CN107729371A (en) * | 2017-09-12 | 2018-02-23 | 深圳先进技术研究院 | The data directory and querying method of block chain, device, equipment and storage medium |
US20180137196A1 (en) * | 2016-11-11 | 2018-05-17 | International Business Machines Corporation | Trustable web searching verification in a blockchain |
-
2018
- 2018-08-24 CN CN201810971875.4A patent/CN109165224B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227833A (en) * | 2016-07-26 | 2016-12-14 | 宁圣金融信息服务(上海)有限公司 | Block chaining search engine method, system and device |
US20180137196A1 (en) * | 2016-11-11 | 2018-05-17 | International Business Machines Corporation | Trustable web searching verification in a blockchain |
CN107729371A (en) * | 2017-09-12 | 2018-02-23 | 深圳先进技术研究院 | The data directory and querying method of block chain, device, equipment and storage medium |
Non-Patent Citations (2)
Title |
---|
ZHANGBO DUAN等: "Formal Modeling and Verification of Blockchain System", 《2018 ASSOCIATION FOR COMPUTING MACHINERY》 * |
邵奇峰等: "区块链技术:架构及进展", 《计算机学报》 * |
Cited By (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766389A (en) * | 2019-01-09 | 2019-05-17 | 华东师范大学 | A kind of light client revene lookup method of block chain based on bitmap index |
CN109885615B (en) * | 2019-01-24 | 2020-09-22 | 华东师范大学 | Index-based block chain light client-oriented range query verifiable query method |
CN109885615A (en) * | 2019-01-24 | 2019-06-14 | 华东师范大学 | A kind of range query towards the light client of block chain based on index can verify that querying method |
CN110059084B (en) * | 2019-01-31 | 2023-08-01 | 创新先进技术有限公司 | Data storage method, device and equipment |
CN110059084A (en) * | 2019-01-31 | 2019-07-26 | 阿里巴巴集团控股有限公司 | A kind of date storage method, device and equipment |
CN109918375A (en) * | 2019-02-26 | 2019-06-21 | 杭州云象网络技术有限公司 | It is a kind of based on block chain and the big text of distributed storage storage, index and search method |
KR20200107772A (en) * | 2019-03-04 | 2020-09-16 | 알리바바 그룹 홀딩 리미티드 | Blockchain World State Merkle Patricia Tri Subtree Update |
KR102322729B1 (en) | 2019-03-04 | 2021-11-05 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | Blockchain World State Merkle Patricia Trie Subtree Update |
US10691676B1 (en) | 2019-03-04 | 2020-06-23 | Alibaba Group Holding Limited | Updating blockchain world state Merkle Patricia Trie subtree |
WO2019101229A3 (en) * | 2019-03-04 | 2019-12-26 | Alibaba Group Holding Limited | Updating blockchain world state merkle patricia trie subtree |
CN111695885A (en) * | 2019-03-14 | 2020-09-22 | 中国科学技术大学 | Digital certificate block chain compression method based on transaction input reduction |
CN111695885B (en) * | 2019-03-14 | 2023-08-29 | 中国科学技术大学 | Digital voucher block chain compression method based on reduced transaction input |
CN110059089B (en) * | 2019-03-27 | 2021-01-22 | 深圳前海达闼云端智能科技有限公司 | Data synchronization method and device, storage medium and electronic equipment |
CN110059089A (en) * | 2019-03-27 | 2019-07-26 | 深圳前海达闼云端智能科技有限公司 | Data synchronization method and device, storage medium and electronic equipment |
US11126751B2 (en) | 2019-04-18 | 2021-09-21 | Advanced New Technologies Co., Ltd. | Index creation for data records |
WO2020211569A1 (en) * | 2019-04-18 | 2020-10-22 | 创新先进技术有限公司 | Method for constructing index of data record |
US10990705B2 (en) | 2019-04-18 | 2021-04-27 | Advanced New Technologies Co., Ltd. | Index creation for data records |
CN110162662A (en) * | 2019-04-18 | 2019-08-23 | 阿里巴巴集团控股有限公司 | Verification method, device and the equipment of data record in a kind of piece of chain type account book |
CN110162662B (en) * | 2019-04-18 | 2023-02-28 | 创新先进技术有限公司 | Verification method, device and equipment for data records in block chain type account book |
CN110175840A (en) * | 2019-04-19 | 2019-08-27 | 华中科技大学 | Method, client, alliance's chain and the system of light wallet mechanism are realized in alliance's chain |
CN110263015A (en) * | 2019-05-07 | 2019-09-20 | 深圳壹账通智能科技有限公司 | Data source tracing method, device, equipment and readable storage medium storing program for executing based on block chain |
WO2020224249A1 (en) * | 2019-05-07 | 2020-11-12 | 深圳壹账通智能科技有限公司 | Blockchain-based transaction processing method, device and apparatus, and storage medium |
CN111033489A (en) * | 2019-05-14 | 2020-04-17 | 阿里巴巴集团控股有限公司 | Method and apparatus for data traversal |
CN111033489B (en) * | 2019-05-14 | 2023-11-17 | 创新先进技术有限公司 | Method and apparatus for data traversal |
CN110096522B (en) * | 2019-05-15 | 2023-07-28 | 西安电子科技大学 | Block chain data processing method, device and equipment supporting relational retrieval |
CN110096522A (en) * | 2019-05-15 | 2019-08-06 | 西安电子科技大学 | A kind of block chain data processing method, device and equipment for supporting relationship type to retrieve |
CN110175188A (en) * | 2019-05-31 | 2019-08-27 | 杭州复杂美科技有限公司 | A kind of block chain state data buffer storage and querying method, equipment and storage medium |
CN110209675A (en) * | 2019-06-18 | 2019-09-06 | 北京艾摩瑞策科技有限公司 | Credit data querying method and its device on block chain |
US11386054B2 (en) | 2019-06-28 | 2022-07-12 | Advanced New Technologies Co., Ltd. | Blockchain-based hierarchical data storage |
US11036720B2 (en) | 2019-06-28 | 2021-06-15 | Advanced New Technologies Co., Ltd. | Blockchain-based hierarchical data storage |
US11042518B2 (en) | 2019-06-28 | 2021-06-22 | Advanced New Technologies Co., Ltd. | Blockchain-based hierarchical data storage |
CN110334154B (en) * | 2019-06-28 | 2020-07-21 | 阿里巴巴集团控股有限公司 | Block chain based hierarchical storage method and device and electronic equipment |
US10789222B2 (en) | 2019-06-28 | 2020-09-29 | Alibaba Group Holding Limited | Blockchain-based hierarchical data storage |
CN110334154A (en) * | 2019-06-28 | 2019-10-15 | 阿里巴巴集团控股有限公司 | Based on the classification storage method and device of block chain, electronic equipment |
CN110442577A (en) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | A kind of storage of status data, inquiry and management method, equipment and storage medium |
US10992459B2 (en) | 2019-08-30 | 2021-04-27 | Advanced New Technologies Co., Ltd. | Updating a state Merkle tree |
CN110688377A (en) * | 2019-08-30 | 2020-01-14 | 阿里巴巴集团控股有限公司 | Method and device for updating state Merck tree |
CN110704428A (en) * | 2019-09-06 | 2020-01-17 | 深圳壹账通智能科技有限公司 | Data indexing method and device for block chain, computer equipment and storage medium |
CN110837505A (en) * | 2019-11-06 | 2020-02-25 | 杭州复杂美科技有限公司 | State data storage method, state data synchronization device and storage medium |
CN110837505B (en) * | 2019-11-06 | 2022-07-19 | 杭州复杂美科技有限公司 | State data storage method, state data synchronization device and storage medium |
CN110874365B (en) * | 2019-11-20 | 2023-11-17 | 深圳市迅雷网络技术有限公司 | Information query method and related equipment thereof |
CN110874365A (en) * | 2019-11-20 | 2020-03-10 | 深圳市网心科技有限公司 | Information query method and related equipment thereof |
CN110971393B (en) * | 2019-11-29 | 2020-11-06 | 中南大学 | Keyword query verification method and device based on block chain dynamic social outsourcing data |
CN110971393A (en) * | 2019-11-29 | 2020-04-07 | 中南大学 | Keyword query verification method and device based on block chain dynamic social outsourcing data |
CN111080298B (en) * | 2019-12-26 | 2023-12-29 | 电子科技大学 | Block generation and transaction verification method suitable for energy block chain |
CN111080298A (en) * | 2019-12-26 | 2020-04-28 | 电子科技大学 | Block generation and transaction verification method suitable for energy source block chain |
US11455319B2 (en) * | 2020-01-29 | 2022-09-27 | EMC IP Holding Company LLC | Merkle tree forest for synchronizing data buckets of unlimited size in object storage systems |
US11461362B2 (en) * | 2020-01-29 | 2022-10-04 | EMC IP Holding Company LLC | Merkle super tree for synchronizing data buckets of unlimited size in object storage systems |
US11711204B2 (en) * | 2020-01-29 | 2023-07-25 | EMC IP Holding Company LLC | Using sparse merkle trees for smart synchronization of S3 |
US20210234671A1 (en) * | 2020-01-29 | 2021-07-29 | EMC IP Holding Company LLC | Using sparse merkle trees for smart synchronization of s3 |
CN111488358A (en) * | 2020-04-08 | 2020-08-04 | 北京瑞策科技有限公司 | Data query method and device based on service data block chain |
CN111680317A (en) * | 2020-04-27 | 2020-09-18 | 华东师范大学 | Block chain-oriented optimistic concurrency order-preserving coding method |
CN111680317B (en) * | 2020-04-27 | 2021-05-25 | 华东师范大学 | Block chain-oriented optimistic concurrency order-preserving coding method |
CN111581215A (en) * | 2020-05-07 | 2020-08-25 | 钟士平 | Array tree data storage method, fast search method and readable storage medium |
CN111581215B (en) * | 2020-05-07 | 2020-12-15 | 钟士平 | Array tree data storage method, fast search method and readable storage medium |
CN111596862A (en) * | 2020-05-20 | 2020-08-28 | 南京如般量子科技有限公司 | Independent optimization method and system for block chain historical transaction data |
CN111596862B (en) * | 2020-05-20 | 2022-11-01 | 南京如般量子科技有限公司 | Independent optimization method and system for block chain historical transaction data |
CN111639080A (en) * | 2020-06-01 | 2020-09-08 | 腾讯科技(深圳)有限公司 | Data processing method and device, node equipment and storage medium |
CN111639080B (en) * | 2020-06-01 | 2021-07-27 | 腾讯科技(深圳)有限公司 | Data processing method and device, node equipment and storage medium |
CN111626680A (en) * | 2020-06-02 | 2020-09-04 | 重庆云创科技有限公司 | Transaction data chain storage method and block chain storage method for credit evaluation |
CN111898164A (en) * | 2020-07-02 | 2020-11-06 | 武汉纺织大学 | Data integrity auditing method supporting tag block chain storage and query |
CN111898164B (en) * | 2020-07-02 | 2024-03-29 | 武汉纺织大学 | Data integrity auditing method supporting label block chain storage and query |
CN112487027B (en) * | 2020-12-02 | 2022-08-23 | 山东浪潮科学研究院有限公司 | Efficient data query implementation method based on block chain electronic transaction |
CN112487027A (en) * | 2020-12-02 | 2021-03-12 | 济南浪潮高新科技投资发展有限公司 | Efficient data query implementation method based on block chain electronic transaction |
CN112765155B (en) * | 2020-12-14 | 2022-05-31 | 杭州趣链科技有限公司 | Block chain-based key value storage method and device, terminal equipment and medium |
CN112765155A (en) * | 2020-12-14 | 2021-05-07 | 杭州趣链科技有限公司 | Block chain-based key value storage method and device, terminal equipment and medium |
CN112800065A (en) * | 2021-02-09 | 2021-05-14 | 北京工业大学 | Efficient data retrieval method based on improved block storage structure |
CN112966001B (en) * | 2021-02-26 | 2023-08-04 | 东北大学 | BCTkPQ query method based on blockchain |
CN112966001A (en) * | 2021-02-26 | 2021-06-15 | 东北大学 | BCTkPQ query method based on block chain |
CN113468571A (en) * | 2021-07-15 | 2021-10-01 | 湖北央中巨石信息技术有限公司 | Tracing method based on block chain |
CN113901131A (en) * | 2021-09-02 | 2022-01-07 | 北京邮电大学 | Index-based on-chain data query method and device |
CN113901131B (en) * | 2021-09-02 | 2024-06-07 | 北京邮电大学 | Index-based on-chain data query method and device |
CN114153827B (en) * | 2021-10-11 | 2023-01-10 | 北京天德科技有限公司 | Transaction data removing method based on block chain system |
CN114153827A (en) * | 2021-10-11 | 2022-03-08 | 北京天德科技有限公司 | Transaction data removing method based on block chain system |
CN114020737A (en) * | 2021-10-20 | 2022-02-08 | 大连理工江苏研究院有限公司 | Efficient and reliable indexing method for block chain data |
CN114519078A (en) * | 2022-04-19 | 2022-05-20 | 北京理工大学 | Cross-chain credible query method and system based on block chain |
CN115037755A (en) * | 2022-04-27 | 2022-09-09 | 东北大学 | Block chain lightweight storage method based on data redistribution and dynamic node strategy |
CN115037755B (en) * | 2022-04-27 | 2023-04-07 | 东北大学 | Block chain lightweight storage method based on data redistribution and dynamic node strategy |
CN115052008A (en) * | 2022-05-26 | 2022-09-13 | 南京邮电大学 | Block chain data link down-link storage method based on cloud storage |
CN115052008B (en) * | 2022-05-26 | 2023-07-25 | 南京邮电大学 | Block chain data under-chain storage method based on cloud storage |
CN115081031A (en) * | 2022-07-26 | 2022-09-20 | 成都云智数安科技有限公司 | Tamper-proof block chain data storage method and system |
CN115065458B (en) * | 2022-08-08 | 2022-11-15 | 山东鼎信数字科技有限公司 | Electronic commerce transaction system with data encryption transmission |
CN115065458A (en) * | 2022-08-08 | 2022-09-16 | 北京邮电大学 | Electronic commerce transaction system with data encryption transmission |
Also Published As
Publication number | Publication date |
---|---|
CN109165224B (en) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109165224A (en) | A kind of indexing means being directed to keyword key on block chain database | |
US11876910B2 (en) | Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT) | |
JP7407912B2 (en) | How to index and store blockchain data | |
CN106503574B (en) | Block chain safe storage method | |
US11483622B2 (en) | Hybrid blockchains and streamchains using non-crypto hashes for securing audio-, video-, image-, and speech-based transactions and contracts | |
US11283616B2 (en) | Method for index-based and integrity-assured search in a blockchain | |
US11720688B2 (en) | Secure initiation and transfer of a cryptographic database and/or a cryptographic unit | |
EP2064637B1 (en) | Method for dynamic secure management of an authenticated relational table in a database | |
US11610018B2 (en) | Systems and methods for the incremental and reversible deployment of a biometric identity management system | |
CN109033841A (en) | It is a kind of to write the weak center's trusted data storage system and management method for testing separation | |
CN103455589B (en) | Product data moving method under product factory mode, Apparatus and system | |
CN102890678A (en) | Gray-code-based distributed data layout method and query method | |
CN110930152B (en) | Data processing method based on block chain and related equipment | |
Karakasidis et al. | Scalable blocking for privacy preserving record linkage | |
CN111651779A (en) | Privacy protection method for encrypted image retrieval in block chain | |
US20230129227A1 (en) | System and method for generating a table-driven mutable blockchain | |
CN116303437A (en) | Medical data hierarchical storage and sharing method based on block chain | |
CN113810185B (en) | Anti-trapdoor leakage on-chain data restoration system and method | |
Qian | Improved authenticated data structures for blockchain synchronization | |
US11907186B2 (en) | System and method for electronic data archival in a distributed data network | |
CN117493646B (en) | Intelligent library borrowing tracking system based on blockchain technology | |
CN116662329A (en) | Index research for multi-dimensional data capable of inquiring and verifying | |
Sohrabi et al. | $\pi $ QLB: A Privacy-preserving with Integrity-assuring Query Language for Blockchain | |
Vijayalakshmi et al. | Revamp Perception of Bitcoin Using Cognizant Merkle SkS kkS | |
CN118134487A (en) | Online payment identity intelligent authentication method based on digital signature |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |