CN112015558A - Data verification method, device and storage medium - Google Patents

Data verification method, device and storage medium Download PDF

Info

Publication number
CN112015558A
CN112015558A CN202010914376.9A CN202010914376A CN112015558A CN 112015558 A CN112015558 A CN 112015558A CN 202010914376 A CN202010914376 A CN 202010914376A CN 112015558 A CN112015558 A CN 112015558A
Authority
CN
China
Prior art keywords
block
verification
write
thread
mvcc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010914376.9A
Other languages
Chinese (zh)
Inventor
冯世伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OneConnect Smart Technology Co Ltd
OneConnect Financial Technology Co Ltd Shanghai
Original Assignee
OneConnect Financial Technology Co Ltd Shanghai
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 OneConnect Financial Technology Co Ltd Shanghai filed Critical OneConnect Financial Technology Co Ltd Shanghai
Priority to CN202010914376.9A priority Critical patent/CN112015558A/en
Publication of CN112015558A publication Critical patent/CN112015558A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Abstract

The application relates to the technical field of block chains, in particular to a data verification method, a data verification device and a storage medium, which are applied to a server, wherein the method comprises the following steps: the first instruction information is used for instructing the first thread to acquire a target block from a database, put the target block into a preset ordered queue and write a write set of the target block into a preset cache; sending first indication information to a first thread, and sending second indication information to a second thread at the same time, wherein the second indication information is used for indicating the second thread to read a first block set from a preset ordered queue, and performing MVCC verification on the first block set; after the MVCC verification is performed on the first block set, writing a write set corresponding to the first block set into a preset cache. By adopting the embodiment of the application, the data verification efficiency is favorably improved.

Description

Data verification method, device and storage medium
Technical Field
The present application relates to the field of block chaining technologies, and in particular, to a data verification method, an apparatus, and a storage medium.
Background
The blockchain is a novel application mode of computer technologies such as distributed data storage, point-to-point transmission, a consensus mechanism and an encryption algorithm. One node in the block chain can provide endorsement services for the client, wherein the endorsement services comprise services of repeated check of transaction ID, generation of transaction read-write set and final signature and the like; when each transaction in the block chain is verified and stored, the verification process generally includes procedures such as identity authentication, signature authentication, Multi-Version Concurrency Control (MVCC) verification and the like, wherein the Multi-Version Concurrency Control (MVCC) verification verifies whether the data Version in the verifiable transaction is correct, currently, single thread is mostly adopted to verify all transactions one by one, and thus the data verification efficiency in the block chain is low.
Disclosure of Invention
The embodiment of the application provides a data verification method, a data verification device and a storage medium, which are beneficial to improving the data verification efficiency.
A first aspect of the embodiments of the present application provides a data verification method, which is applied to a server, and includes:
sending first indication information to a first thread, wherein the first indication information is used for indicating the first thread to acquire a target block from a database, putting the target block into a preset ordered queue, and writing a write set of the target block into a preset cache;
and sending second indication information to a second thread while sending first indication information to the first thread, wherein the second indication information is used for indicating the second thread to read a first block set from the preset ordered queue and carry out MVCC verification on the first block set.
A second aspect of the embodiments of the present application provides a data verification apparatus, which is applied to a server, and the apparatus includes: a first sending unit, a second sending unit and a writing unit, wherein,
the first sending unit is configured to send first indication information to a first thread, where the first indication information is used to indicate the first thread to acquire a target block from a database, place the target block in a preset ordered queue, and write a write set of the target block into a preset cache;
the second sending unit is configured to send, while sending the first indication information to the first thread, second indication information to a second thread, where the second indication information is used to indicate the second thread to read a first block set from the preset ordered queue, and perform MVCC verification on the first block set;
the write unit is configured to write a write set corresponding to the first block set into the preset cache after the MVCC verification is completed on the first block set.
A third aspect of embodiments of the present application provides a server, which includes a processor, a communication interface, a memory, and one or more programs, where the processor, the communication interface, and the memory are connected to each other, where the memory is used to store a computer program, and the computer program includes program instructions, and the processor is configured to call the program instructions to execute the method according to the first aspect of embodiments of the present application.
A fourth aspect of embodiments of the present application provides a computer-readable storage medium, where the computer-readable storage medium stores a computer program for electronic data exchange, where the computer program makes a computer perform part or all of the steps as described in the first aspect of embodiments of the present application.
A fifth aspect of embodiments of the present application provides a computer program product, wherein the computer program product comprises a non-transitory computer readable storage medium storing a computer program operable to cause a computer to perform some or all of the steps as described in the first aspect of embodiments of the present application. The computer program product may be a software installation package.
The embodiment of the application has at least the following beneficial effects: the first instruction information is used for instructing the first thread to acquire a target block from a database, put the target block into a preset ordered queue and write a write set of the target block into a preset cache; sending first indication information to a first thread, and sending second indication information to a second thread at the same time, wherein the second indication information is used for indicating the second thread to read a first block set from a preset ordered queue, and performing MVCC verification on the first block set; after the MVCC verification is performed on the first block set, writing a write set corresponding to the first block set into a preset cache. Therefore, multi-thread MVCC verification of a plurality of blocks can be realized through parallel processing of the first thread and the second thread, and the MVCC verification efficiency is improved; the data verification efficiency is improved.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
Fig. 1A is a schematic diagram of a network architecture for data verification according to an embodiment of the present application;
fig. 1B is a schematic flowchart of a data verification method according to an embodiment of the present application;
fig. 2 is a schematic flowchart of a data verification method according to an embodiment of the present application;
fig. 3 is a schematic flowchart of a data verification method according to an embodiment of the present application;
fig. 4 is a schematic structural diagram of a server according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of a data verification apparatus according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
The terms "first," "second," and the like in the description and claims of the present application and in the above-described drawings are used for distinguishing between different objects and not for describing a particular order. Furthermore, the terms "include" and "have," as well as any variations thereof, are intended to cover non-exclusive inclusions. For example, a process, method, system, article, or apparatus that comprises a list of steps or elements is not limited to only those steps or elements listed, but may alternatively include other steps or elements not listed, or inherent to such process, method, article, or apparatus.
Reference in the specification to "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the specification. The appearances of the phrase in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. It is explicitly and implicitly understood by one skilled in the art that the embodiments described herein can be combined with other embodiments.
In order to better understand the embodiments of the present application, methods of applying the embodiments of the present application will be described below.
The servers mentioned in the embodiments of the present application may include, but are not limited to, a background server, a component server, a cloud server, a data verification system server, or a data verification software server, which are merely examples, and are not exhaustive, and include, but are not limited to, the above devices.
Referring to fig. 1A, fig. 1A is a schematic diagram of a network architecture for data verification according to an embodiment of the present disclosure.
The embodiment of the application is applied to a server, a blockchain network can be deployed in the server, and the blockchain is a novel application mode of computer technologies such as distributed data storage, point-to-point transmission, a consensus mechanism and an encryption algorithm. A block chain (Blockchain), which is essentially a decentralized database, is a series of data blocks associated by using a cryptographic method, and each data block contains information of a batch of network transactions, so as to verify the validity (anti-counterfeiting) of the information and generate a next block. The blockchain may include a blockchain underlying platform, a platform product services layer, and an application services layer.
The embodiments of the present application can be specifically applied to a wimax blockchain platform, where the wimax blockchain platform is a blockchain network composed of frames based on S3C, and S3C is a frame system composed of a blockchain solution module, a blockchain kernel module, a blockchain privacy protection module, and a blockchain network management module.
As shown in fig. 1A, the network architecture may include a read set database, a write set database, a first queue, a second queue, a write set buffer, and a Multi-Version Concurrency Control (MVCC) module.
The MVCC module is used for verifying the version of the transaction data corresponding to each transaction message in a block, the block can be a basic unit structure in a block chain network, and each block consists of a block head and a block body; the block head stores structured data, and the block body is generally of a tree structure and used for recording transaction information of the block; and the MVCC module is mainly used for verifying whether the corresponding data version in the transaction information is correct, and if the used reading set version of the current transaction is not equal to the reading set version in the current database, the transaction is considered to be outdated and marked as an error transaction.
In addition, as shown in fig. 1A, a first thread and a second thread may be further included, where the first thread may be configured to read data (e.g., a tile) from a database, a plurality of transactions may be packed in the tile, each transaction corresponding to transaction data, and the second thread may be configured to perform MVCC verification on the transaction data included in the tile.
The first queue may be used to store blocks after processing by the first thread, and the second queue may be used to store blocks after verification by the MVCC.
In the embodiment of the application, the read set database and the write set database in the database can be separated, the database is accessed through multiple threads (2 or more than 2 threads), the write set data in the database is stored in the cache, and when the MVCC version verification is realized, the write set in the cache can be directly accessed without waiting for the write cache of the database, so that the write performance of the database is improved, and the data blockage during write is avoided.
Referring to fig. 1B, fig. 1B is a schematic flowchart of a data verification method provided in an embodiment of the present application, and the method is applied to a server, and the method includes the following steps:
101. sending first indication information to a first thread, wherein the first indication information is used for indicating the first thread to acquire a target block from a database, putting the target block into a preset ordered queue, and writing a write set of the target block into a preset cache.
The preset ordered queue can be set by a user or defaulted by a system, and is not limited herein; the predetermined ordered queue may correspond to the first queue shown in FIG. 1A, and the database may be a read set database as shown in FIG. 1A.
The target block may be any block that needs transaction verification and storage, and the predetermined cache may be set by a user or default, and is not limited herein, and may correspond to the cache shown in fig. 1A.
The first indication information may be set by the user or default by the system, which is not limited herein; may be used to instruct the second thread to retrieve a new tile from the database.
The first thread may correspond to the first thread shown in fig. 1A, and the first thread may be configured to obtain a target block from a read set database corresponding to the database, so as to process the target block, write a write set corresponding to the target block into the preset cache, and when performing MVCC verification subsequently, may directly obtain relevant information in the write set of the target block from the preset cache, for example, at least one transaction packed in the block, and generally, thousands of pieces of transaction data may be packed in each block; therefore, the database does not need to be frequently accessed, so that the access pressure of the database is reduced; meanwhile, data are directly acquired from the preset cache, and the efficiency of data verification is improved.
In one possible example, after the instructing the first thread to obtain the target tile from the database, the method may further include: and judging whether the read set of the target block conflicts with a plurality of write sets in a preset cache or not, wherein the preset cache comprises a plurality of blocks, and each block corresponds to one write set.
In the embodiment of the present application, only the target block is taken as an example for description, which is not limited herein, and the acquisition and related processes of the block may be consistent with the target block.
The preset cache can store a plurality of write sets corresponding to a plurality of blocks acquired before the target block, and each block can correspond to one write set, so that the second thread can directly acquire the blocks from the preset ordered queue when MVCC verification is performed subsequently.
After the target block is acquired through the first thread, transaction data in the target block may be associated with transaction data packed in a write set database or a write set of other stored blocks in a preset cache, and if the transaction data is associated with the write set database or the write set of other stored blocks in the preset cache, the transaction data will have an influence on the MVCC verification; for example, when performing MVCC verification on a transaction data in the target block, it may be necessary to use the transaction data in other blocks in the predetermined ordered queue as reference data to verify the transaction status of the target block; thus, when the MVCC verification is performed, the block associated with the target block may conflict or affect the MVCC verification process; therefore, the target block and the rest of the blocks can be judged to be in conflict before the MVCC verification is carried out.
In one possible example, the placing the target block into a preset ordered queue and writing the write set of the target block into a preset buffer may include the following steps: if the read set does not conflict with any write set in the preset cache, adding the write set corresponding to the target block into the write set of the preset cache, and placing the target block into a preset ordered queue; if the read set conflicts with any write set in the preset cache, emptying the write sets in the preset cache, adding the write set corresponding to the target block into the preset cache, and placing the target block into the preset ordered queue.
When there is no conflict between the target block and all of the blocks in the predetermined ordered queue, the write set of the target block may be added to the write set corresponding to the predetermined cache, and in addition, none of the blocks included in the write set corresponding to the cache conflict.
Further, if the target block conflicts with any one block in the write set corresponding to the preset cache, all the write sets in the cache can be deleted, and the write set data corresponding to the target block is written into the write set in the preset cache; after the steps are completed, the target block can be placed in a preset ordered queue; the predetermined ordered queue may include a plurality of blocks.
In a possible example, after the determining whether the read set conflicts with the write set in the preset cache, the method may further include the following steps: if the read set does not conflict with any write set in the preset cache, acquiring a current BundleNum, and writing the current BundleNum into the target block; and if the read set conflicts with any write set in the preset cache, executing to enable the current BundleNum to add 1 to obtain a target BundleNum, and writing the target BundleNum into the target block.
The BundleNum can be understood as block coding, which can be used to mark blocks, and when two blocks respectively correspond to the same BundleNum, it indicates that the two blocks exist in the same bundley, and can also be understood as existing in the same block set, that is, the blocks of the same BundleNum exist in the same block set.
After the read set corresponding to the target block is compared with the write sets corresponding to the blocks in the preset cache for conflict, the BundleNum can be written into the target block to distinguish the target block, so that the classification of the blocks is realized. Thus, when the target block conflicts with the blocks, even if the write set of the blocks is deleted from the write set of the preset cache, each block still has its corresponding BundleNum, and when the MVCC verification is subsequently performed, each block can still be distinguished, and the blocks with the same BundleNum indicate that the blocks exist in the same block set.
The current BundleNum is the BundleNum of the block stored in the cached write set or obtained last time; if there is no conflict between the target block and the previous block, the BundleNum of the previous block can be written into the target block, that is, the two blocks exist in the same Bundle (set).
If the target block conflicts with the previous block, one bundle can be printed again, and 1 is added on the basis of the current bundle num corresponding to the previous block to obtain a target bundle num; writing the target BundleNum into the target block, indicating that the target block and the last block exist in different bundles; thus, the step 101 can be performed in a loop in the first thread, so that different blocks can be distinguished, and non-conflicting blocks can be placed in the same Bundle, which is beneficial to improving the efficiency of the subsequent MVCC verification.
In a possible example, the determining whether there is a conflict between the read set of the target block and a plurality of write sets in a predetermined cache may include: acquiring at least one corresponding target transaction in the target block; determining at least one first key-value pair in the read set, each first key-value pair corresponding to one of the target transactions; determining a plurality of second key-value pairs included in a plurality of write sets in the preset cache, wherein each key-value pair corresponds to one transaction; if at least one first key-value pair is equal to any one second key-value pair, determining that the read set conflicts with a plurality of write sets in a preset cache; and if any one of the first key-value pairs is not equal to any one of the second key-value pairs, determining that the read set corresponding to the target block does not conflict with the plurality of write sets in the preset cache.
The key-value pair is a mapping set of a key and a value, and the key-value pair may also be a hash value, which is not limited herein.
The key value pairs can all have data version numbers, and the versions of the key value pairs can be recorded in the read sets of the blocks; the latest value of the key value pair can be stored in a writing set, the current values of all the key value pairs in the book can be recorded in a database of the blockchain network, which is equivalent to indexing the transaction log of the current book, and when the transaction changes, the corresponding key value pair is correspondingly updated, and the data in the corresponding database is also updated; therefore, the server can judge whether the blocks conflict or not by comparing the first key-value pair in the read set of the target block with the latest value of the second key-value pair stored in the write set of each block in the preset cache.
In a specific implementation, a read set of a target block can be read from a database, the read set includes at least one target transaction, each target transaction can correspond to one first key-value pair, similarly, a second key-value pair corresponding to each block in a preset cache can be obtained, if there is a relationship between certain target transaction data in the target block and transaction data corresponding to any one block in the plurality of blocks, the key-value pairs corresponding to the two transactions are updated, and the two key-value pairs are equal, so that if any one first key-value pair is equal to at least one second key-value pair, it is indicated that there is a conflict between the transaction data corresponding to the target block and the at least one second key-value pair, that is, there is a data association between the two transactions; on the contrary, if there is no case that any one of the first key-value pair and the second key-value pair is equal, it indicates that there is no conflict, i.e. no association, between the target block and the plurality of blocks.
102. And sending second indication information to a second thread while sending first indication information to the first thread, wherein the second indication information is used for indicating the second thread to read a first block set from the preset ordered queue and carry out MVCC verification on the first block set.
The first thread and the second thread can be synchronously performed, when the first thread acquires a new block and processes the new block, the second thread can take out a batch of blocks processed by the first thread in the last period from the preset ordered queue and perform MVCC verification on the batch of blocks.
The second indication information can be set by the user or defaulted by the system, and is not limited herein; may be used to instruct the second thread to complete MVCC verification.
The first block set may include a plurality of first blocks, and if the plurality of first blocks exist in the same set, the first BundleNum corresponding to the plurality of first blocks is the same, indicating that the plurality of first blocks are not conflicted.
After the MVCC verification is completed, the verification result data corresponding to each block may be written into the write set database, so as to record the verification result of the transaction or check again to inform the database that the MVCC verification of the block is completed.
In one possible example, the MVCC verification of the first set of blocks may include: determining a first BundleNum corresponding to the first block set, wherein the first block set comprises a plurality of first blocks, and each first block corresponds to the same first BundleNum; acquiring a second BundleNum corresponding to a second block set currently carrying out the MVCC verification, wherein the second block set comprises a plurality of second blocks, and each second block corresponds to the second BundleNum; if the first BundleNum is equal to the second BundleNum, performing the MVCC verification on the second block set and the first block set in parallel; if the first BundleNum is not equal to the second BundleNum, performing the MVCC verification on the first block set after waiting for the MVCC verification of the second block set to be completed.
In the embodiment of the present application, only two block sets are taken as an example for illustration, and the MVCC module shown in fig. 1A can currently verify a plurality of block sets in parallel or in series.
In a specific implementation, each first block in the first block set corresponds to the same first BundleNum; after the second thread acquires a plurality of first blocks corresponding to the first block set from the preset ordered queue, the MVCC module corresponding to the second thread may be performing MVCC verification on the second block set, and each second block in the second block set may correspond to the same BundleNum; furthermore, by comparing the first BundleNum and the second BundleNum, if they are equal, it indicates that the first block in the first block set and the second block in the second block set do not conflict, i.e. there is no data association between them, and then MVCC verification can be performed in parallel on a plurality of first blocks corresponding to the first block set and a plurality of second blocks corresponding to the second block set.
Further, if the transaction data in the first block set is associated with the transaction data in the second block set, the MVCC verification cannot be performed in parallel, and the MVCC verification may be performed on the first blocks and the second blocks in series, that is, the MVCC verification may be performed on the first blocks after the verification of the second blocks in the second block set is completed.
The Bundle (set) is used for storing a plurality of blocks without conflict, and further, when the MVCC verification is carried out, the MVCC verification can be carried out on the blocks in the same Bundle at the same time, so that the subsequent MVCC verification efficiency is improved, and the database pressure brought by the verification at the same time is relieved.
In one possible example, the MVCC verification of the first set of blocks may include: determining at least one transaction data contained in each of the first blocks; according to the plurality of first blocks, performing the MVCC verification on at least one transaction data corresponding to each first block in parallel.
When the MVCC module in the second thread verifies the block, the basic unit may be transaction data corresponding to each transaction.
In specific implementation, the transaction data corresponding to each target transaction in at least one target transaction corresponding to each block can be determined to obtain at least one transaction data; acquiring a data version number corresponding to each transaction data to obtain at least one data version number; comparing each data version number with a preset version number, and if each data version number is the same as the preset version number, determining that the MVCC verification is successful on the target block; and if one data version number is different from the preset version number, determining that the MVCC verification of the target block fails.
The preset version number may be set by the user or default to the system, and is not limited herein. The preset version number may be set by a background worker, for example, the preset version number may be 100 or 200, and if the MVCC verification is successful for one transaction, it indicates that the transaction is valid, the block corresponding to the transaction may be stored in the local chain, and the corresponding result data that is successfully verified may be stored in the database.
As can be seen, in the embodiment of the present application, when the first thread acquires a block and classifies the blocks, the blocks in the block set corresponding to the same BundleNum are not conflicted with each other, so that the MVCC verification can be performed on the plurality of first blocks in the first block set in parallel, which is beneficial to improving the data verification efficiency.
103. After the MVCC verification is performed on the first block set, writing a write set corresponding to the first block set into the preset cache.
After the verification of the first block set is completed, the write sets corresponding to the first blocks in the first block set can be written into the preset cache, so that after a next new block is obtained and before the MVCC verification is performed, the new block and the first blocks in the preset cache are subjected to conflict comparison to determine whether a conflict exists between the new block and the first blocks, and the verification efficiency is improved.
It can be seen that the data verification method described in this embodiment of the present application is applied to a server, and may send first indication information to a first thread, where the first indication information is used to indicate the first thread to obtain a target block from a database, place the target block in a preset ordered queue, and write a write set of the target block into a preset cache; and sending second indication information to the second thread while sending the first indication information to the first thread, wherein the second indication information is used for indicating the second thread to read the first block set from the preset ordered queue, performing MVCC verification on the first block set, and writing a write set corresponding to the first block set into a preset cache after the MVCC verification on the first block set is completed. Therefore, multi-thread MVCC verification of a plurality of blocks can be realized through parallel processing of the first thread and the second thread, and the MVCC verification efficiency is improved; the data verification efficiency is improved.
In accordance with the above, please refer to fig. 2, fig. 2 is a flowchart illustrating a data verification method disclosed in an embodiment of the present application, applied to a server, where the data verification method may include the following steps:
201. and sending third indication information to a third thread, wherein the third indication information is used for indicating the third thread to respectively perform identity authentication and signature authentication on each target transaction.
The third indication information may be set by the user or default, and is not limited herein; the third indication information may be used to enable authentication and signature authentication for each target transaction in the target tile by the third thread prior to MVCC verification.
Each target transaction may include transaction data, and the transaction data may include at least one of the following: version number, block ID, data key value pair, certificate information, signature information, public and private keys, etc., which are not limited herein.
The identity (VACC) authentication is to Verify whether the initiator of the transaction has the right to initiate the transaction by using the corresponding certificate information in the transaction data in the target block.
The Signature (VSCC) authentication is to Verify whether the number of executors of the transaction meets the requirement and whether the Signature of the transaction executor included in the transaction data is correct.
The Multi-Version Concurrency Control (MVCC) verification is a Concurrency Control method, and is used for verifying whether the data Version of the transaction data included in the block is correct; that is, whether the read set of the transaction in the block is consistent with the version in the current database book (i.e. no change), if not, it indicates that the modification of the data in the transaction write set is valid, the transaction is marked as valid, and the write set of the transaction is updated to a specific database (e.g. the write set database of the status database).
202. If any target transaction identity authentication failure or signature authentication failure exists, terminating the data verification step of the target transaction, wherein the data verification comprises the following steps: signature authentication or MVCC verification.
Generally, identity authentication, signature authentication, MVCC verification and the like can be respectively performed on each transaction to verify whether the transaction data is correct, whether the initiator has the right and the like, and then the verified data can be stored in the corresponding database, so that the security of the transaction data is ensured.
In a specific implementation, the verification may be performed on the transaction data included in any one of the target transactions, and if any one of the signature authentication, the identity authentication, and the MVCC verification fails, the subsequent authentication is terminated.
203. Sending first indication information to a first thread, wherein the first indication information is used for indicating the first thread to acquire a target block from a database, putting the target block into a preset ordered queue, and writing a write set of the target block into a preset cache.
204. And sending second indication information to a second thread while sending first indication information to the first thread, wherein the second indication information is used for indicating the second thread to read a first block set from the preset ordered queue and carry out MVCC verification on the first block set.
205. After the MVCC verification is performed on the first block set, writing a write set corresponding to the first block set into a preset cache.
The detailed description of the step 203-204 can refer to the corresponding description of the data verification method described in fig. 1B, and is not repeated herein.
It can be seen that the data verification method described in the embodiment of the present application is applied to a server, and sends third indication information to a third thread, where the third indication information is used to indicate that the third thread performs identity authentication and signature authentication on each target transaction respectively; if any target transaction identity authentication failure or signature authentication failure exists, terminating the data verification step of the target transaction, wherein the data verification comprises the following steps: signature authentication or MVCC verification; sending first indication information to a first thread, wherein the first indication information is used for indicating the first thread to acquire a target block from a database, putting the target block into a preset ordered queue, and writing a write set of the target block into a preset cache; and sending second indication information to a second thread while sending first indication information to the first thread, wherein the second indication information is used for indicating the second thread to read a first block set from the preset ordered queue, performing MVCC verification on the first block set, and writing a write set corresponding to the first block set into a preset cache after the MVCC verification on the first block set is completed. Thus, identity authentication, signature authentication and MVCC verification can be respectively carried out on each transaction in the block, and if any one of the authentication or the verification fails, the verification step is stopped; if the identity authentication and the signature authentication are successful, the MVCC verification is continuously carried out on the block, so that the pressure in the database is favorably reduced, the invalid verification is avoided, and the performance of the block chain network is favorably improved.
In accordance with the above, please refer to fig. 3, fig. 3 is a flowchart illustrating a data verification method disclosed in an embodiment of the present application, applied to a server, where the data verification method may include the following steps:
301. sending first indication information to a first thread, where the first indication information is used to indicate the first thread to acquire a target block from a database, and determining whether a read set of the target block conflicts with a plurality of write sets in a preset cache, where the preset cache includes a plurality of blocks, and each block corresponds to one write set.
302. And if the read set does not conflict with any write set in the preset cache, adding the write set corresponding to the target block into the write set of the preset cache, and placing the target block into a preset ordered queue.
303. If the read set conflicts with any write set in the preset cache, emptying the write sets in the preset cache, adding the write set corresponding to the target block into the preset cache, and placing the target block into the preset ordered queue.
304. And sending second indication information to a second thread while sending first indication information to the first thread, wherein the second indication information is used for indicating the second thread to read a first block set from the preset ordered queue and determine a first BundleNum corresponding to the first block set, the first block set comprises a plurality of first blocks, and each first block corresponds to the same first BundleNum.
305. And acquiring a second BundleNum corresponding to a second block set currently carrying out the MVCC verification, wherein the second block set comprises a plurality of second blocks, and each second block corresponds to the second BundleNum.
306. Performing the MVCC verification in parallel for the second set of blocks and the first set of blocks if the first BundleNum is equal to the second BundleNum.
307. If the first BundleNum is not equal to the second BundleNum, performing the MVCC verification on the first block set after waiting for the MVCC verification of the second block set to be completed.
308. After MVCC verification is completed on the first block set, writing a write set corresponding to the first block set into a preset cache
The detailed description of the steps 301-308 can refer to the corresponding description of the data verification method described in fig. 1B, and will not be described herein again.
It can be seen that the data verification method described in this embodiment of the present application is applied to a server, and sends first indication information to a first thread, where the first indication information is used to indicate the first thread to obtain a target block from a database, and determine whether a read set of the target block conflicts with multiple write sets in a preset cache, where the preset cache includes multiple blocks, and each block corresponds to one write set; if the read set does not conflict with any write set in the preset cache, adding the write set corresponding to the target block into the write set of the preset cache, and placing the target block into a preset ordered queue; if the read set conflicts with any write set in the preset cache, emptying the write sets in the preset cache, adding the write set corresponding to the target block into the preset cache, and placing the target block into the preset ordered queue; sending first indication information to the first thread and second indication information to a second thread at the same time, wherein the second indication information is used for indicating the second thread to read a first block set from the preset ordered queue and determine a first BundleNum corresponding to the first block set, the first block set comprises a plurality of first blocks, and each first block corresponds to the same first BundleNum; acquiring a second BundleNum corresponding to a second block set currently carrying out the MVCC verification, wherein the second block set comprises a plurality of second blocks, and each second block corresponds to the second BundleNum; if the first BundleNum is equal to the second BundleNum, performing the MVCC verification on the second block set and the first block set in parallel; if the first BundleNum is not equal to the second BundleNum, performing MVCC verification on the first block set after waiting for the MVCC verification of the second block set, and writing a write set corresponding to the first block set into a preset cache after performing MVCC verification on the first block set. In this way, the non-conflicting blocks can be placed in the same set, and the conflicting blocks can be placed in different sets, so that the blocks can be classified conveniently; and when the MVCC verification is carried out subsequently, the two block sets which do not conflict with each other can be verified in parallel, otherwise, the two block sets which conflict with each other can be verified in series, and the data verification efficiency is improved.
In accordance with the above, please refer to fig. 4, fig. 4 is a schematic structural diagram of a server according to an embodiment of the present application, and as shown in fig. 4, the server includes a processor, a communication interface, a memory and one or more programs, where the processor, the communication interface and the memory are connected to each other, the memory is used for storing a computer program, the computer program includes program instructions, the processor is configured to call the program instructions, and the one or more program programs include instructions for performing the following steps:
sending first indication information to a first thread, wherein the first indication information is used for indicating the first thread to acquire a target block from a database, putting the target block into a preset ordered queue, and writing a write set of the target block into a preset cache;
and sending second indication information to a second thread while sending first indication information to the first thread, wherein the second indication information is used for indicating the second thread to read a first block set from the preset ordered queue and carry out MVCC verification on the first block set.
It can be seen that the server described in this embodiment of the present application may send first indication information to the first thread, where the first indication information is used to indicate the first thread to obtain a target block from a database, place the target block in a preset ordered queue, and write a write set of the target block into a preset cache; and sending second indication information to the second thread while sending the first indication information to the first thread, wherein the second indication information is used for indicating the second thread to read the first block set from the preset ordered queue, performing MVCC verification on the first block set, and writing a write set corresponding to the first block set into a preset cache after the MVCC verification on the first block set is completed. Therefore, multi-thread MVCC verification of a plurality of blocks can be realized through parallel processing of the first thread and the second thread, and the MVCC verification efficiency is improved; the data verification efficiency is improved.
In one possible example, after the instructing the first thread to fetch the target tile from the database, the program is operable to perform the instructions of:
and judging whether the read set of the target block conflicts with a plurality of write sets in a preset cache or not, wherein the preset cache comprises a plurality of blocks, and each block corresponds to one write set.
In one possible example, in the placing the target block into a predetermined ordered queue, writing the write set of the target block into a predetermined cache, the program is configured to execute the instructions of:
if the read set does not conflict with any write set in the preset cache, adding the write set corresponding to the target block into the write set of the preset cache, and placing the target block into a preset ordered queue;
if the read set conflicts with any write set in the preset cache, emptying the write sets in the preset cache, adding the write set corresponding to the target block into the preset cache, and placing the target block into the preset ordered queue.
In one possible example, after the determining whether the read set conflicts with a write set in a predetermined cache, the program is operable to execute the instructions of:
if the read set does not conflict with any write set in the preset cache, acquiring a current BundleNum, and writing the current BundleNum into the target block;
and if the read set conflicts with any write set in the preset cache, executing to enable the current BundleNum to add 1 to obtain a target BundleNum, and writing the target BundleNum into the target block.
In one possible example, in the determining whether the read set of the target block conflicts with a plurality of write sets in a predetermined cache, the program is configured to perform the following steps:
acquiring at least one corresponding target transaction in the target block;
determining at least one first key-value pair in the read set, each first key-value pair corresponding to one of the target transactions;
determining a plurality of second key-value pairs included in a plurality of write sets in the preset cache, wherein each key-value pair corresponds to one transaction;
if at least one first key-value pair is equal to any one second key-value pair, determining that the read set conflicts with a plurality of write sets in a preset cache;
and if any one of the first key-value pairs is not equal to any one of the second key-value pairs, determining that the read set corresponding to the target block does not conflict with the plurality of write sets in the preset cache.
In one possible example, prior to said instructing the first thread to fetch the target tile from the database, the program is operable to:
sending third indication information to a third thread, wherein the third indication information is used for indicating the third thread to respectively perform identity authentication and signature authentication on each target transaction;
if any target transaction identity authentication failure or signature authentication failure exists, terminating the data verification step of the target transaction, wherein the data verification comprises the following steps: signature authentication or MVCC verification.
In one possible example, in connection with the MVCC verification of the first set of blocks, the program is to perform the instructions of:
determining a first BundleNum corresponding to the first block set, wherein the first block set comprises a plurality of first blocks, and each first block corresponds to the same first BundleNum;
acquiring a second BundleNum corresponding to a second block set currently carrying out the MVCC verification, wherein the second block set comprises a plurality of second blocks, and each second block corresponds to the second BundleNum;
if the first BundleNum is equal to the second BundleNum, performing the MVCC verification on the second block set and the first block set in parallel;
if the first BundleNum is not equal to the second BundleNum, performing the MVCC verification on the first block set after waiting for the MVCC verification of the second block set to be completed.
In one possible example, in connection with the MVCC verification of the first set of blocks, the program is to perform the instructions of:
determining at least one transaction data contained in each of the first blocks;
according to the plurality of first blocks, performing the MVCC verification on at least one transaction data corresponding to each first block in parallel.
The above description has introduced the solution of the embodiment of the present application mainly from the perspective of the method-side implementation process. It is understood that the server includes hardware structures and/or software modules for performing the respective functions in order to implement the above-described functions. Those of skill in the art will readily appreciate that the present application is capable of hardware or a combination of hardware and computer software implementing the various illustrative elements and algorithm steps described in connection with the embodiments provided herein. Whether a function is performed as hardware or computer software drives hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the embodiment of the present application, the server may be divided into the functional units according to the above method example, for example, each functional unit may be divided corresponding to each function, or two or more functions may be integrated into one processing unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit. It should be noted that the division of the unit in the embodiment of the present application is schematic, and is only a logic function division, and there may be another division manner in actual implementation.
In accordance with the above, please refer to fig. 5, fig. 5 is a schematic structural diagram of a data verification apparatus disclosed in the embodiment of the present application, which is applied to a server, and the apparatus includes: a first sending unit 501, a second sending unit 502 and a writing unit 503, wherein,
the first sending unit 501 is configured to send first indication information to a first thread, where the first indication information is used to indicate the first thread to obtain a target block from a database, place the target block in a preset ordered queue, and write a write set of the target block into a preset cache;
the second sending unit 502 is configured to send, while sending the first indication information to the first thread, second indication information to a second thread, where the second indication information is used to instruct the second thread to read the first block set from the preset ordered queue, and perform MVCC verification on the first block set.
The writing unit 503 is configured to write the write set corresponding to the first block set into the preset cache after the MVCC verification is completed on the first block set.
It can be seen that the data verification apparatus described in this embodiment of the present application, which is applied to a server, may send first indication information to a first thread, where the first indication information is used to indicate the first thread to obtain a target block from a database, place the target block in a preset ordered queue, and write a write set of the target block into a preset cache; and sending second indication information to the second thread while sending the first indication information to the first thread, wherein the second indication information is used for indicating the second thread to read the first block set from the preset ordered queue, performing MVCC verification on the first block set, and writing a write set corresponding to the first block set into a preset cache after the MVCC verification on the first block set is completed. Therefore, multi-thread MVCC verification of a plurality of blocks can be realized through parallel processing of the first thread and the second thread, and the MVCC verification efficiency is improved; the data verification efficiency is improved.
In a possible example, in terms of placing the target block into a preset ordered queue and writing the write set of the target block into a preset buffer, the first sending unit 501 is specifically configured to:
if the read set does not conflict with any write set in the preset cache, adding the write set corresponding to the target block into the write set of the preset cache, and placing the target block into a preset ordered queue;
if the read set conflicts with any write set in the preset cache, emptying the write sets in the preset cache, adding the write set corresponding to the target block into the preset cache, and placing the target block into the preset ordered queue.
In one possible example, in terms of the MVCC verification on the first set of blocks, the second transmitting unit 502 is specifically configured to:
determining a first BundleNum corresponding to the first block set, wherein the first block set comprises a plurality of first blocks, and each first block corresponds to the same first BundleNum;
acquiring a second BundleNum corresponding to a second block set currently carrying out the MVCC verification, wherein the second block set comprises a plurality of second blocks, and each second block corresponds to the second BundleNum;
if the first BundleNum is equal to the second BundleNum, performing the MVCC verification on the second block set and the first block set in parallel;
if the first BundleNum is not equal to the second BundleNum, performing the MVCC verification on the first block set after waiting for the MVCC verification of the second block set to be completed.
In one possible example, in terms of the MVCC verification on the first set of blocks, the second transmitting unit 502 is further specifically configured to:
determining at least one transaction data contained in each of the first blocks;
according to the plurality of first blocks, performing the MVCC verification on at least one transaction data corresponding to each first block in parallel.
Embodiments of the present application also provide a computer-readable storage medium, wherein the computer storage medium stores a computer program for electronic data exchange, and the computer program enables a computer to execute part or all of the steps of any one of the data verification methods as described in the above method embodiments.
Embodiments of the present application also provide a computer program product comprising a non-transitory computer readable storage medium storing a computer program operable to cause a computer to perform some or all of the steps of any one of the data verification methods as described in the above method embodiments.
It should be noted that, for simplicity of description, the above-mentioned method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the present application is not limited by the order of acts described, as some steps may occur in other orders or concurrently depending on the application. Further, those skilled in the art should also appreciate that the embodiments described in the specification are preferred embodiments and that the acts and modules referred to are not necessarily required in this application.
In the foregoing embodiments, the descriptions of the respective embodiments have respective emphasis, and for parts that are not described in detail in a certain embodiment, reference may be made to related descriptions of other embodiments.
In the embodiments provided in the present application, it should be understood that the disclosed apparatus may be implemented in other manners. For example, the above-described embodiments of the apparatus are merely illustrative, and for example, the division of the units is only one type of division of logical functions, and there may be other divisions when actually implementing, for example, a plurality of units or components may be combined or may be integrated into another system, or some features may be omitted, or not implemented. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection of some interfaces, devices or units, and may be an electric or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit may be implemented in the form of hardware, or may be implemented in the form of a software program module.
The integrated units, if implemented in the form of software program modules and sold or used as stand-alone products, may be stored in a computer readable memory. Based on such understanding, the technical solution of the present application may be substantially implemented or a part of or all or part of the technical solution contributing to the prior art may be embodied in the form of a software product stored in a memory, and including several instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method described in the embodiments of the present application. And the aforementioned memory comprises: various media capable of storing program codes, such as a usb disk, a read-only memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic or optical disk, and the like.
Those skilled in the art will appreciate that all or part of the steps in the methods of the above embodiments may be implemented by associated hardware instructed by a program, which may be stored in a computer-readable memory, which may include: flash disk, ROM, RAM, magnetic or optical disk, and the like.
The foregoing detailed description of the embodiments of the present application has been presented to illustrate the principles and implementations of the present application, and the above description of the embodiments is only provided to help understand the method and the core concept of the present application; meanwhile, for a person skilled in the art, according to the idea of the present application, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present application.

Claims (10)

1. A data verification method is applied to a server and comprises the following steps:
sending first indication information to a first thread, wherein the first indication information is used for indicating the first thread to acquire a target block from a database, putting the target block into a preset ordered queue, and writing a write set of the target block into a preset cache;
sending first indication information to the first thread, and sending second indication information to a second thread, wherein the second indication information is used for indicating the second thread to read a first block set from the preset ordered queue, and performing MVCC verification on the first block set;
after the MVCC verification is performed on the first block set, writing a write set corresponding to the first block set into the preset cache.
2. The method of claim 1, wherein after said instructing the first thread to fetch a target tile from a database, the method further comprises:
judging whether the read set of the target block conflicts with a plurality of write sets in a preset cache or not, wherein the preset cache comprises a plurality of blocks, and each block corresponds to one write set;
the step of placing the target block into a preset ordered queue and writing the write set of the target block into a preset cache includes:
if the read set does not conflict with any write set in the preset cache, adding the write set corresponding to the target block into the write set of the preset cache, and placing the target block into a preset ordered queue;
if the read set conflicts with any write set in the preset cache, emptying the write sets in the preset cache, adding the write set corresponding to the target block into the preset cache, and placing the target block into the preset ordered queue.
3. The method according to any one of claims 1 or 2, wherein after said determining whether there is a conflict between said read set and a write set in a predetermined cache, the method further comprises:
if the read set does not conflict with any write set in the preset cache, acquiring a current BundleNum, and writing the current BundleNum into the target block;
and if the read set conflicts with any write set in the preset cache, executing to enable the current BundleNum to add 1 to obtain a target BundleNum, and writing the target BundleNum into the target block.
4. The method as claimed in claim 2 or 3, wherein the determining whether the read set of the target block conflicts with a plurality of write sets in a predetermined cache comprises:
acquiring at least one corresponding target transaction in the target block;
determining at least one first key-value pair in the read set, each first key-value pair corresponding to one of the target transactions;
determining a plurality of second key-value pairs included in a plurality of write sets in the preset cache, wherein each key-value pair corresponds to one transaction;
if at least one first key-value pair is equal to any one second key-value pair, determining that the read set conflicts with a plurality of write sets in a preset cache;
and if any one of the first key-value pairs is not equal to any one of the second key-value pairs, determining that the read set corresponding to the target block does not conflict with the plurality of write sets in the preset cache.
5. The method of claim 1, wherein prior to said instructing the first thread to fetch the target tile from the database, the method further comprises:
sending third indication information to a third thread, wherein the third indication information is used for indicating the third thread to respectively perform identity authentication and signature authentication on each target transaction;
if any target transaction identity authentication failure or signature authentication failure exists, terminating the data verification step of the target transaction, wherein the data verification comprises the following steps: signature authentication or MVCC verification.
6. The method of claim 1, wherein the performing MVCC verification on the first set of blocks comprises:
determining a first BundleNum corresponding to the first block set, wherein the first block set comprises a plurality of first blocks, and each first block corresponds to the same first BundleNum;
acquiring a second BundleNum corresponding to a second block set currently carrying out the MVCC verification, wherein the second block set comprises a plurality of second blocks, and each second block corresponds to the second BundleNum;
if the first BundleNum is equal to the second BundleNum, performing the MVCC verification on the second block set and the first block set in parallel;
if the first BundleNum is not equal to the second BundleNum, performing the MVCC verification on the first block set after waiting for the MVCC verification of the second block set to be completed.
7. The method of claim 6, wherein the performing the MVCC verification on the first set of blocks comprises:
determining at least one transaction data contained in each of the first blocks;
according to the plurality of first blocks, performing the MVCC verification on at least one transaction data corresponding to each first block in parallel.
8. A data verification apparatus, applied to a server, the apparatus comprising: a first sending unit, a second sending unit and a writing unit, wherein,
the first sending unit is configured to send first indication information to a first thread, where the first indication information is used to indicate the first thread to acquire a target block from a database, place the target block in a preset ordered queue, and write a write set of the target block into a preset cache;
the second sending unit is configured to send, while sending the first indication information to the first thread, second indication information to a second thread, where the second indication information is used to indicate the second thread to read a first block set from the preset ordered queue, and perform MVCC verification on the first block set;
the write unit is configured to write a write set corresponding to the first block set into the preset cache after the MVCC verification is completed on the first block set.
9. A server comprising a processor, a communication interface, a memory and one or more programs, the processor, the communication interface and the memory being interconnected, wherein the memory is configured to store a computer program comprising program instructions, the processor being configured to invoke the program instructions to perform the method of any of claims 1-7.
10. A computer-readable storage medium, characterized in that the computer-readable storage medium stores a computer program comprising program instructions that, when executed by a processor, cause the processor to carry out the method according to any one of claims 1-7.
CN202010914376.9A 2020-09-03 2020-09-03 Data verification method, device and storage medium Pending CN112015558A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010914376.9A CN112015558A (en) 2020-09-03 2020-09-03 Data verification method, device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010914376.9A CN112015558A (en) 2020-09-03 2020-09-03 Data verification method, device and storage medium

Publications (1)

Publication Number Publication Date
CN112015558A true CN112015558A (en) 2020-12-01

Family

ID=73516742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010914376.9A Pending CN112015558A (en) 2020-09-03 2020-09-03 Data verification method, device and storage medium

Country Status (1)

Country Link
CN (1) CN112015558A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505000A (en) * 2021-09-08 2021-10-15 广东卓启云链科技有限公司 Multithreading processing method, device, system and storage medium in block chain
CN115796874A (en) * 2023-01-09 2023-03-14 杭州安节科技有限公司 Operation-level block chain transaction concurrent execution method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505000A (en) * 2021-09-08 2021-10-15 广东卓启云链科技有限公司 Multithreading processing method, device, system and storage medium in block chain
CN113505000B (en) * 2021-09-08 2021-12-21 广东卓启云链科技有限公司 Multithreading processing method, device, system and storage medium in block chain
CN115796874A (en) * 2023-01-09 2023-03-14 杭州安节科技有限公司 Operation-level block chain transaction concurrent execution method

Similar Documents

Publication Publication Date Title
EP3678346B1 (en) Blockchain smart contract verification method and apparatus, and storage medium
EP3776208B1 (en) Runtime self-correction for blockchain ledgers
CN112153085B (en) Data processing method, node and block chain system
TWI734088B (en) Block chain-based transaction processing method and device, and electronic equipment
CN111984421B (en) Data processing method, device and storage medium
CN112037058B (en) Data verification method, device and storage medium
US20210049715A1 (en) Blockchain-based data procesing method, apparatus, and electronic device
KR101937220B1 (en) Method for generating and verifying a digital signature or message authentication code based on a block chain that does not require key management
CN109255056B (en) Data reference processing method, device, equipment and storage medium of block chain
CN112015558A (en) Data verification method, device and storage medium
US11003653B2 (en) Method and system for secure digital documentation of subjects using hash chains
WO2022206454A1 (en) Method and apparatus for providing cross-chain messages
CN109918226A (en) A kind of silence error-detecting method, device and storage medium
CN110880143A (en) System and method for processing transaction verification operations in decentralized applications
CN112015806A (en) Method and device for storing data by block chain
CN102866932A (en) Method and device for providing and collecting data related to abnormal terminal
CN110147354B (en) Batch data editing method, device, computer equipment and storage medium
CN110737920B (en) Digital certificate management and control method, device and registration and audit server
CN107967265A (en) Access method, data server and the file access system of file
CN110853216A (en) Information storage method, information storage device, information storage medium and computer equipment
CN106959819A (en) Date storage method, device and system and portable electric appts
CN111209602B (en) Block chain based data development method, system, server and storage medium
CN113886894A (en) Digital signature method and digital signature device
CN112860283B (en) SP upgrade package self-identification upgrade method and device and computer equipment
CN114462998A (en) Log tamper-proofing method, system and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information

Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant after: ONECONNECT FINANCIAL TECHNOLOGY Co.,Ltd. (SHANGHAI)

Address before: Room 201, Building A, No. 1 Qianwan Road, Qianhaisheng Cooperation Zone, Shenzhen City, Guangdong Province, 518000

Applicant before: ONECONNECT FINANCIAL TECHNOLOGY Co.,Ltd. (SHANGHAI)

CB02 Change of applicant information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination