WO2020151635A1 - 数据处理方法、装置、计算机设备及存储介质 - Google Patents

数据处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
WO2020151635A1
WO2020151635A1 PCT/CN2020/073127 CN2020073127W WO2020151635A1 WO 2020151635 A1 WO2020151635 A1 WO 2020151635A1 CN 2020073127 W CN2020073127 W CN 2020073127W WO 2020151635 A1 WO2020151635 A1 WO 2020151635A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
node
transaction record
reconciliation
transaction
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.)
Ceased
Application number
PCT/CN2020/073127
Other languages
English (en)
French (fr)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to JP2021537472A priority Critical patent/JP7090972B2/ja
Priority to KR1020217005410A priority patent/KR102455884B1/ko
Priority to EP20745941.3A priority patent/EP3917115B1/en
Priority to SG11202101120XA priority patent/SG11202101120XA/en
Publication of WO2020151635A1 publication Critical patent/WO2020151635A1/zh
Priority to US17/146,937 priority patent/US11574290B2/en
Anticipated expiration legal-status Critical
Priority to US18/093,313 priority patent/US11935015B2/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1089Hierarchical topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Definitions

  • This application relates to the field of computer technology, in particular to a data processing method, device, computer equipment and storage medium.
  • Blockchain technology is a very important technology in today's era and has been applied in many scenarios.
  • the blockchain is mainly used for accounting, that is, for storing transaction records.
  • the transaction records Once the transaction records are stored on the blockchain, they cannot be deleted or tampered with, which ensures that the stored transaction records are true and effective.
  • the traditional method cannot delete the transaction records that do not need to be retained, making these unnecessary data occupy a lot of space and waste a lot of storage resources.
  • this application provides a data processing method, device, computer equipment, and storage medium, which can save storage resources in the blockchain.
  • a data processing method is executed by a blockchain node, and the method includes:
  • the block header of the block and the node retention tree storing the transaction records are updated to the second block file; the block header of the block is adjacent to the previous block in the second block file Block header; and
  • the first block file is deleted.
  • a data processing device the device being used in a blockchain node, the device comprising:
  • the node retention module is used to detect the transaction records that need to be retained in the block for each block in the first block file; filter the transaction records used to prove the transaction from the hash tree of the block Nodes belonging to the block; construct a node retention tree according to the selected nodes;
  • Transaction storage module configured to store the transaction record in the corresponding leaf node of the node retention tree
  • the block update module is used to associate the block header of the block and the node retention tree storing the transaction records in the second block file; the block header of the block is in the second block file The block header adjacent to the previous block; and
  • the deleting module is configured to delete the first block file after the update processing for each block is completed.
  • a computer device includes a memory and a processor, and a computer program is stored in the memory.
  • the processor executes the following steps:
  • the block header of the block and the node retention tree storing the transaction records are updated to the second block file; the block header of the block is adjacent to the previous block in the second block file Block header; and
  • the first block file is deleted.
  • a computer-readable storage medium having a computer program stored on the computer-readable storage medium, and when the computer program is executed by a processor, the processor executes the following steps:
  • the block header of the block and the node retention tree storing the transaction records are updated to the second block file; the block header of the block is adjacent to the previous block in the second block file Block header; and
  • the first block file is deleted.
  • the above-mentioned data processing method, device, computer equipment and storage medium detect the transaction records that need to be kept in the block for each block in the first block file; from the hash tree of the block, filter for proof
  • the transaction record to be retained belongs to the node of the block; the node retention tree is constructed according to the selected nodes; the transaction record is stored in the corresponding leaf node of the node retention tree.
  • the block header of the block and the node retention tree storing the transaction records are updated in the second block file; the block header is adjacent to the block header of the previous block in the second block file. In the second block file, since the block header has not changed and the block headers are still adjacent to each other in sequence, the characteristic of connecting end to end by the hash value on the blockchain is maintained.
  • the transaction record of the leaf node and the node in the node retention tree can prove that the transaction record belongs to the original corresponding block, which is equivalent to still retaining the original hash tree verification data authenticity function.
  • the second block file The transaction records kept in the database still cannot be forged and tampered with. After the update processing for each block is completed, the first block file is deleted. Since the second block file does not store transaction records that do not need to be retained in the original block, but only saves the transaction records that need to be retained and the node retention tree used to verify the authenticity of the transaction records, so compared to The first block file greatly saves storage resources.
  • Figure 1 is an application scenario diagram of a data processing method in an embodiment
  • Figure 2 is a schematic flowchart of a data processing method in an embodiment
  • FIG. 3 is a schematic diagram of the principle of constructing a node retention tree in an embodiment
  • Figure 4 is a schematic flow diagram of the reconciliation step in an embodiment
  • Figure 5 is a schematic flowchart of a data processing method in another embodiment
  • Figure 6 is a block diagram of a data processing device in an embodiment
  • Figure 7 is a block diagram of a data processing device in another embodiment
  • Fig. 8 is a schematic diagram of the internal structure of a computer device in an embodiment.
  • Fig. 1 is an application scenario diagram of a data processing method in an embodiment.
  • the application scenario includes a first reconciliation device 110, a second reconciliation device 120, and a blockchain node 130 connected via a network.
  • the blockchain node 130 is used to store blocks in the blockchain.
  • the blockchain node 130 is composed of one or more servers. Multiple blockchain nodes 130 constitute a blockchain platform.
  • the blockchain platform can be a private blockchain platform or a developed blockchain platform.
  • the blockchain platform can be a cloud blockchain platform.
  • the cloud blockchain platform is a platform built on the foundation of the cloud, allowing users to quickly build the infrastructure and blockchain services they need on an open cloud platform.
  • the first account reconciliation device 110 and the second account reconciliation device 120 are devices used by both parties to perform account reconciliation.
  • the first reconciliation device 110 and the second reconciliation device 120 may be terminals or servers.
  • the terminal may be a smart TV, a desktop computer, or a mobile terminal.
  • the mobile terminal may include at least one of a mobile phone, a tablet computer, a notebook computer, a personal digital assistant, and a wearable device.
  • the server can be implemented as an independent server or a server cluster composed of multiple physical servers.
  • the first reconciliation device 110 and the second reconciliation device 120 can store the transaction records that need to be reconciled on the blockchain in the blockchain node 130.
  • Each block on the blockchain is stored in the first block file.
  • the blockchain node 130 can detect the transaction records that need to be kept in the block for each block in the first block file; from the hash tree of the block, filter to prove that the transaction record belongs to the zone
  • the node of the block construct a node retention tree according to the selected node; store the transaction record in the corresponding leaf node of the node retention tree; update the association between the block header of the block and the node retention tree that stores the transaction record to the first In the second block file; the block header of the block is adjacent to the block header of the previous block in the second block file; after the update processing for each block is completed, delete the first block file .
  • the second block file stores the transaction records that need to be retained after each block is updated, and removes the transaction records that do not need to be retained, thereby saving storage space.
  • the block header of each block in the second block file is still adjacent in the order in the first block file, that is, it still maintains the characteristic of connecting end to end by hash value on the block chain. Then, the second The transaction records kept in the block file still cannot be forged and tampered with.
  • Fig. 1 is only an application scenario of the data processing method in this application.
  • the data processing method in this application is not limited to reasonably clearing transaction records in the reconciliation scenario of FIG. 1, and may also be clearing transaction records stored in other scenarios.
  • FIG. 2 is a schematic flowchart of a data processing method in an embodiment.
  • the data processing method is mainly applied to the blockchain node 130 in FIG. 1 for illustration.
  • the method specifically includes the following steps:
  • the first block file is the original block chain file stored on the block chain node.
  • the first block file includes multiple blocks constituting the blockchain. Each block can include one or more transaction records. There can be one or more transaction records to be kept.
  • the transaction record may be a transaction record for reconciliation. In other embodiments, the transaction record may also be a transaction record purely for storing backups. It can be understood that the transaction records may also be transaction records that need to be used in other usage scenarios. There is no restriction on this.
  • the blockchain node can detect the transaction records directly specified in the block that need to be retained.
  • the blockchain node may also analyze the transaction records in each block to determine the transaction records to be retained.
  • the blockchain node can obtain the status of each transaction record in the block, and determine the transaction record in a valid state as the transaction record to be retained.
  • Blockchain nodes can also filter the transaction records in the unsuccessful processing set in the block to obtain transaction records that need to be retained.
  • the blockchain node can start from the first block in the first block file and execute steps S202 to S210 block by block.
  • the blockchain node can also concurrently execute steps S202 to S210 for each block in the first block file. There is no limitation here.
  • the blockchain node may detect transaction records that need to be retained from the block, or may detect that there are no transaction records that need to be retained. Then, in response to detecting the transaction record that needs to be retained in the block, steps S204 to S210 are executed.
  • the block header can only be adjacent to The block header of the previous block is updated to the second block file. For example, for a block where there is no transaction record that needs to be retained, the blockchain node can determine the block header of the previous block in the second block file, and place it in the previous block in the second block file. Afterwards, update the block header storing the block. That is, for blocks where there is no transaction record that needs to be retained, only the block header can be retained in the second block file without any transaction records.
  • the hash tree of the block is a hash tree generated according to each transaction record in the block.
  • the leaf nodes of the hash tree correspond to the hash value of each transaction record in the block.
  • the hash value of the root node of the hash tree is calculated according to the hash value of each leaf node.
  • the hash value of the root node of the hash tree uniquely corresponds to the block.
  • the node used to prove that the transaction record to be retained belongs to the block refers to the node corresponding to the hash value required when the hash value of the root node is calculated from the hash value of the leaf node corresponding to the transaction record to be retained. It can be understood that because the hash value of the root node is calculated from the hash value of the leaf node corresponding to the transaction record that needs to be retained, the selected nodes include the leaf node and the root node corresponding to the transaction record that needs to be retained.
  • the hash tree may be a double-layer hash tree.
  • a two-layer hash tree refers to a two-level hash tree including a root node and leaf nodes.
  • the hash value of the root node of the double-layer hash tree can be obtained by performing a hash operation after the hash value of each leaf node is combined in series. It can be understood that when the hash tree is a double-layer hash tree, the nodes selected to prove that the transaction record belongs to the block are all nodes of the hash tree.
  • the hash tree may also be a multi-layer hash tree.
  • Multi-layer hash tree refers to a hash tree with more than two layers.
  • the node used to prove that the transaction record belongs to the block is only a part of the node of the multi-layer hash tree.
  • the multi-layer hash tree may be a Merkel tree.
  • Merkle Tree is a multi-level tree data structure.
  • Each leaf node of the Merkel tree uses the hash value of each transaction record as the label, and the leaf node uses the hash value obtained by the hash operation after the serialization of the child node labels as the label. It can be understood that the root node of the Merkel tree uses the label of the node at the level closest to the root node in series to obtain the hash value obtained by the hash operation.
  • the selected nodes are the nodes that need to be retained in the original hash tree.
  • the node retention tree is a hash tree reconstructed according to the selected nodes to be retained.
  • the node retention tree can be constructed only based on the selected nodes for the transaction record.
  • the nodes selected for the multiple transaction records that need to be retained can be summarized and deduplicated, and then the node retention tree can be reconstructed according to the deduplicated nodes. It should be noted that the constructed node retention tree retains the hierarchical relationships that exist in the original hash tree of the filtered nodes.
  • the node retention tree is illustrated with reference to Figure 3.
  • the block header of the n-1th block includes the hash value of the previous block and the root hash of the n-1th block itself.
  • the root hash in Figure 3 refers to The root node of the Merkel tree
  • the block header of the nth block includes the hash value of the n-1th block and the root hash of the nth block itself, and the area of the n+1th block
  • the block header includes the hash value of the nth block and the root hash of the n+1th block itself.
  • the nth block includes 4 transaction records Tx(1) ⁇ Tx(4), and hash calculations on Tx(1) ⁇ Tx(4) respectively to obtain the corresponding The hash value H(1) ⁇ H(4).
  • a hash tree including leaf nodes H(1) to H(4), H(1+2), H(3+4), and the root node can be generated.
  • H(1+2) is the parent node of H(1) and H(2), and the corresponding hash value is obtained by hash calculation after H(1) and H(2) are connected in series.
  • H(3+4) is the parent node of H(3) and H(4), and the corresponding hash value is obtained by hash calculation after H(3) and H(4) are connected in series.
  • the root node is the parent node of H(1+2) and H(3+4), and the corresponding hash value is obtained by hash calculation after H(1+2) and H(3+4) are concatenated.
  • the selected nodes are the nodes that need to be filtered out except the root node, that is, in addition to the root node, the nodes H(1+2), H(3+4), H(3) need to be filtered And H(4) to build a node-preserving tree.
  • the nodes used to prove that Tx(2) and Tx(3) belong to the block can be selected.
  • the nodes selected for Tx(2) must also include H(1+2) and H(3+4), then the nodes selected for Tx(2) and Tx(3) need to be summarized and deduplicated , After deduplication, it is equivalent to filtering all nodes in the entire hash tree to construct a node retention tree. Then, only Tx(2) and Tx(3) are stored in the respective leaf nodes.
  • the blockchain node may store them in the data block corresponding to the corresponding leaf node in the node retention tree.
  • the blockchain node can store the transaction record Tx(3) in the data block corresponding to the corresponding leaf node H(3).
  • the block header of the block and the node retention tree storing the transaction records are associated and updated to the second block file; the block header is adjacent to the block header of the previous block in the second block file.
  • the second block file is different from the first block file and is a newly created block file on the blockchain node.
  • the blockchain node can serialize the block header and the node retention tree storing transaction records, and convert the block header and the node retention tree storing transaction records into a storable form .
  • the blockchain node can determine the block header of the previous block in the second block file. Update the block header of the serialized block adjacent to the block header of the previous block to the second block file, and in the second block file, store the serialized transactions that need to be retained
  • the recorded node retention tree is stored in association with the block header of the block.
  • the method further includes: obtaining a second storage location of the second block file; modifying the location index of the block from the first storage location pointing to the first block file to pointing to the The second storage location.
  • the location index of the block refers to an index used to find the storage location of the block.
  • the location index of the block initially points to the first storage location of the first block file.
  • the block chain node updates the block to the second block file according to steps S204-210, the block can be The location index of is modified to point to the second storage location of the second block. In this way, the block can be found from the second block file according to the location index pointing to the second storage location later.
  • each blockchain node will update the association between the block header and the node retention tree storing the transaction records to the second block file in.
  • the block header of the block can be adjacent to the block header of the previous block by performing steps S204 to S210, and the block header of the block may be The node retention tree association of the retained transaction records is updated to the second block file.
  • the block header storing the block can be updated after the block header of the previous block in the second block file.
  • the content of each block stored in the second block file is equivalent to the updated content of the block.
  • each blockchain node will delete the first block file.
  • the second block file does not store transaction records that do not need to be retained in the original block, but only saves the transaction records that need to be retained and the node retention tree used to verify the authenticity of the transaction records, so compared to The first block file greatly saves storage resources.
  • the transaction record is a transaction record for reconciliation.
  • Step S202 includes: for each block in the first block file, comparing the transaction records in the block with the transaction records in the set of unsuccessful reconciliations; in response to the transaction records in the block being included in the The set of successful reconciliations will determine the transaction record as the transaction record to be retained.
  • the set of unsuccessful reconciliation is a set formed by each transaction record that has not been successfully reconciled.
  • the set of unsuccessful reconciliation may be a set that includes both unreconciled transaction records and transaction records that have failed reconciliation.
  • the set of unsuccessful reconciliations may include an unreconciled set or a set of reconciliation errors.
  • the unsuccessful reconciliation set may include two sub-sets, the unreconciled set and the reconciliation error set.
  • the unreconciled set is a set formed by transaction records that have not yet been reconciled.
  • the set of reconciliation errors is a set of transaction records with inconsistent reconciliation (that is, errors in reconciliation).
  • the blockchain node can compare each transaction record in the block with the transaction record in the set of unsuccessful reconciliations to determine whether the block is included in the set of unsuccessful reconciliations Transaction records in.
  • the transaction record in the block is matched with the transaction record in the set of unsuccessful reconciliations, it means that the transaction record is included in the set of unsuccessful reconciliations, and the block in the unsuccessful reconciliation can be included
  • the transaction records of the collection of accounts are determined as transaction records that need to be retained.
  • the transaction record is a transaction that does not need to be retained recording.
  • a set of unsuccessful reconciliations is set on the blockchain, and the transaction records in the block are compared with the transaction records in the set of unsuccessful reconciliations, which can more quickly determine the transactions that need to be retained. recording.
  • the set of unsuccessful reconciliation includes an unreconciled set.
  • the method also includes a reconciliation step, which may include the following steps:
  • the unreconciled set is a set formed by transaction records that have not yet been reconciled.
  • the first reconciliation device is a device used by the party that initiates the reconciliation process.
  • the reconciliation call request is used to request to call the smart contract on the blockchain to realize the reconciliation process.
  • a smart contract is a piece of code set on the blockchain obtained by programming an agreement that is jointly formulated by various blockchain nodes and used to clarify rights and obligations.
  • the code contains conditions that trigger the automatic execution of the contract. It can be understood that when the trigger condition for an event is reached, the smart contract can automatically execute the event after each blockchain node reaches a consensus on the event.
  • the blockchain node has pre-established an unreconciled set for storing transaction records that have not yet been reconciled.
  • the initially created unreconciled set can be an empty set, which does not include transaction records.
  • both parties can send a reconciliation call request to the blockchain node through their respective reconciliation devices to request to call the smart contract set on the blockchain node.
  • the reconciliation call request can be parsed through the smart contract to obtain the first transaction record to be reconciled.
  • the blockchain node can store the first transaction record in the block of the first block file through the smart contract.
  • the blockchain node when receiving a reconciliation call request sent by the reconciliation device used by either party to the reconciliation, the blockchain node can store the transaction record carried in the reconciliation call request to the first area through the smart contract In the block of the block file.
  • the reconciliation association identifier is used to associate the transaction records that are sent by the reconciliation devices used by both parties to the account and represent the same transaction.
  • the reconciliation association identifier may include a transaction serial number. Then, the transaction records corresponding to the same transaction serial number sent by both parties need to be reconciled. It can be understood that, in other embodiments, the reconciliation association identifier may also be another identifier that can uniquely represent the same transaction.
  • the blockchain node can extract the reconciliation associated identifier from the first transaction record through the smart contract.
  • the blockchain node can also extract the reconciliation association identifier corresponding to the first transaction record from the reconciliation call request through the smart contract.
  • S406 Search for a second transaction record of the second reconciliation device corresponding to the reconciliation associated identifier from the unreconciled set created on the blockchain.
  • the second reconciliation device is a device used by the other party that initiates the reconciliation process.
  • the blockchain node can check whether there is a second transaction record corresponding to the reconciliation associated identifier in the transaction records of the unreconciled set through the smart contract.
  • the second transaction record is the transaction record carried when the second reconciliation device used by the other party that initiates the reconciliation process sends the reconciliation call request.
  • the reconciling parties are not exactly the same when calling the smart contract for reconciliation, there must be speed and slowness, and the order of selecting transaction records for reconciliation may also be different.
  • the other party may not have sent the transaction record corresponding to the same reconciliation associated identifier to the smart contract, so there may be a second reconciliation device that has not found the second reconciliation device corresponding to the reconciliation associated identifier.
  • the situation of transaction records Similarly, if the other party first sends the transaction record that needs to be reconciled to the smart contract, the transaction record sent first cannot find the transaction record corresponding to the same reconciliation associated identifier, and therefore cannot be reconciled. Therefore, the first sent The transaction record will be added to the unreconciled set.
  • the blockchain node may find the second transaction record of the second reconciliation device corresponding to the reconciliation associated identifier, or it may not find the second reconciliation corresponding to the reconciliation associated identifier.
  • the second transaction record of the device may be found.
  • the blockchain node may add the first transaction record to the unreconciled set.
  • the blockchain node in response to finding the second transaction record of the second reconciliation device corresponding to the reconciliation associated identifier, may delete the second transaction record from the unreconciled set, and The first transaction record is compared with the second transaction record. In response to the inconsistency in the comparison, the first transaction record and the second transaction record may be processed differently from the transaction record that is successfully reconciled. Distinguishing processing refers to processing that separates the first transaction record and the second transaction record from the transaction record that has been successfully reconciled.
  • the blockchain node may add a reconciliation failure mark to the first transaction record and the second transaction record that are not aligned. It can be understood that the blockchain node may also use other methods to distinguish between the first transaction record and the second transaction record that are inconsistent with the transaction record that is successfully reconciled.
  • the unreconciled set is set on the blockchain, and when the reconciliation call request is received, the unreconciled set is combined to realize real-time reconciliation processing, making the reconciliation more timely and convenient.
  • the set of unsuccessful reconciliations also includes a set of reconciliation errors.
  • the reconciliation step also includes the following steps:
  • S412 Compare the first transaction record with the second transaction record.
  • the blockchain node in response to finding the second transaction record in the unreconciled set, deletes the second transaction record from the unreconciled set, and compares the second transaction record with the first transaction record , To compare whether the two are consistent.
  • the reconciliation error collection is a collection of transaction records that are inconsistent in reconciliation.
  • the result of comparing the second transaction record with the first transaction record includes two cases of consistent comparison and inconsistent comparison.
  • the comparison being consistent, it is determined that the first transaction record and the second transaction record belong to the transaction records for which the reconciliation is successful.
  • the first transaction record and the second transaction record may be added to the reconciliation error set.
  • the blockchain node may receive the modification processing for the transaction records in the reconciliation error set, and perform the reconciliation processing on the modified transaction records again.
  • two types of unsuccessful reconciliation sets are set on the blockchain, namely, unreconciled sets and reconciliation error sets. It is very convenient to realize real-time reconciliation through these two sets. Manage the reconciliation results more accurately.
  • step S204 includes: determining the leaf node corresponding to the transaction record in the hash tree of the block; filtering the first ancestor node and sibling leaf nodes of the leaf node from the hash tree; The non-sibling leaf nodes of, filter the second ancestor node of the non-sibling leaf node closest to the root node; construct a node retention tree based on the leaf node, the first ancestor node, the sibling leaf node and the second ancestor node.
  • the leaf node corresponding to the transaction record refers to the leaf node that uses the hash value of the transaction record to be retained as the label.
  • An ancestor node refers to a node that has an ancestor relationship with a leaf node. It can be understood that parent nodes, grandparent nodes, great-grandparent nodes, etc., are all ancestor nodes of leaf nodes.
  • a sibling leaf node refers to a leaf node corresponding to the same parent node as the leaf node.
  • Non-sibling leaf nodes refer to leaf nodes that do not have the same parent node as the leaf node.
  • the blockchain node can filter the first ancestor node of the leaf node corresponding to the transaction record to be retained and the sibling leaf nodes of the leaf node from the hash tree.
  • the first ancestor node refers to all ancestor nodes of the leaf node. Because the root node must be the ancestor node of the leaf node corresponding to the transaction record to be retained, the first ancestor node includes the root node.
  • the blockchain node can determine the non-sibling leaf node of the leaf node corresponding to the transaction record from the hash tree, determine the ancestor node of the non-sibling leaf node closest to the root node, and obtain the second ancestor node.
  • each ancestor node closest to the root node will be filtered out.
  • the ancestor nodes of the leaf nodes closest to the root node are the same, only the ancestor node closest to the root node can be filtered out.
  • Blockchain nodes can construct a node retention tree based on leaf nodes, first ancestor nodes, sibling leaf nodes, and second ancestor nodes.
  • the transaction record to be retained is Tx(3)
  • the corresponding leaf node is H(3)
  • the sibling leaf node of H(3) is H(4)
  • the first ancestor node of H(3) is H(3+4) and the root node.
  • H(1) and H(2) are the non-sibling leaf nodes of H(3)
  • the second ancestor nodes of non-sibling leaf nodes H(1) and H(2) that are closest to the root node are both H(1+2) ). Therefore, the blockchain node can construct a node retention tree based on the leaf nodes H(3), H(4), H(3+4), H(1+2) and the root node corresponding to Tx(3).
  • a node retention tree is constructed, and the original hash tree verification data Under the premise of authenticity function, unnecessary node and transaction record data can be eliminated, saving storage resources to a certain extent.
  • a data processing method is provided, and the data processing method specifically includes the following steps:
  • S502 Create an unreconciled set and a reconciled error set on the blockchain.
  • the initially created unreconciled set and reconciliation error set can be empty sets, which do not include transaction records, and then add corresponding transaction records based on the actual reconciliation situation.
  • S504 in response to receiving the reconciliation call request sent by the first reconciliation device for the smart contract, store the first transaction record to be reconciled carried in the reconciliation call request into a block of the first block file through the smart contract .
  • step S506 Obtain the reconciliation associated identifier corresponding to the first transaction record through the smart contract; search for the second transaction record of the second reconciliation device corresponding to the reconciliation associated identifier from the unreconciled set created on the blockchain.
  • step S508 is executed, and in response to the second transaction record being found, step S510 is executed.
  • the reconciliation association identifier is used to associate the transaction records that are sent by the reconciliation devices used by both parties to the account and represent the same transaction.
  • the transaction records included in the unreconciled set in S506 are the first transaction records.
  • the block there is no transaction record for reconciliation.
  • the first 4 blocks in the first block file are already full, so the first transaction record R1 is stored to the fifth block, then the unreconciled set includes the fifth block Up to now there is no transaction record for reconciliation.
  • the blockchain node can find from the current unreconciled set whether there is a second transaction record R2 corresponding to the same reconciliation associated identifier as the first transaction record R1. If it does not exist, the first transaction record R1 can also be Add to the unreconciled collection.
  • S510 Remove the second transaction record from the unreconciled set; compare the first transaction record with the second transaction record; in response to the inconsistency in the comparison, add the first transaction record and the second transaction record to the set of reconciliation errors.
  • the blockchain starts from the first block and sequentially generates blocks to store transaction records
  • the transaction records included in the set of reconciliation errors after the first transaction record and the second transaction record are added , That is, the transaction records that have errors in reconciliation until the first transaction record is stored to the block.
  • steps S504 to S510 describe a real-time reconciliation process, that is, the blockchain node can store the first transaction record carried in the reconciliation call request of the first reconciliation device in the block, and check The first transaction record is subjected to reconciliation processing, so as to realize real-time reconciliation processing while storing and reconciling.
  • first reconciliation device and “second reconciliation device” here are only used for distinction and do not need to be other restrictions. It can be understood that after the smart contract receives a reconciliation call request from either party, it can store the transaction records carried in it in the block.
  • the reconciliation parties are not exactly the same when calling the smart contract for reconciliation, there will necessarily be faster and slower, and the order of selecting the transaction records for reconciliation may also be different.
  • a reconciling party uses the reconciliation device
  • the transaction record that needs to be reconciled is sent to the smart contract, and another reconciling party has not sent the reconciliation data, the transaction record that needs to be reconciled can be added to the unreconciled set.
  • step S512 For each block in the first block file, compare the transaction records in the block with the transaction records in the reconciliation error set and the unreconciled set. In response to the transaction records in the block being included in the reconciliation error set or the unreconciled set, steps S514 to S516 are executed, and in response to the transaction records in the block not being included in the reconciliation error set and the unreconciled set, then the steps are executed S518.
  • the blockchain node can perform step S512 according to a preset period (equivalent to regularly cleaning data in the blockchain).
  • the blockchain node may also trigger the execution of step S512 when the number of blocks in the first block file reaches the preset number threshold (equivalent to, when there are too many blocks in the blockchain, When the occupied storage space is too large, clean up the data in the blockchain).
  • S514 In the hash tree of the block, determine the leaf node corresponding to the transaction record; from the hash tree, filter the first ancestor node and sibling leaf nodes of the leaf node; for non-sibling leaf nodes of the leaf node, filter non-sibling leaf nodes The second ancestor node of the sibling leaf node closest to the root node; construct a node retention tree according to the leaf node, sibling leaf node, first ancestor node and second ancestor node.
  • S518 Update the block header of the block adjacent to the block header of the previous block to the second block file.
  • S520 Modify the location index of the block from the first storage location pointing to the first block file to the second storage location pointing to the second block file.
  • the characteristic that the block chain is connected end to end by the hash value is maintained. Retaining the transaction records of the leaf nodes of the tree at the node and the nodes in the tree can prove that the transaction record belongs to the original corresponding block, which is equivalent to still retaining the original hash tree verification data authenticity function.
  • the transaction records kept in the second block file still cannot be forged and tampered with. After the update processing for each block is completed, the first block file is deleted.
  • the second block file does not store transaction records that do not need to be retained in the original block, but only saves the transaction records that need to be retained and the node retention tree used to verify the authenticity of the transaction records, so compared to The first block file greatly saves storage resources.
  • a data processing apparatus 600 is provided.
  • the apparatus can be implemented as all or part of a computer device through hardware or a combination of software and hardware.
  • the computer device may be The blockchain node in Figure 1.
  • the device 600 includes: a node reservation module 602, a transaction storage module 604, a block update module 606, and a deletion module 608, wherein:
  • the node retention module 602 is used to detect the transaction records that need to be retained in the block for each block in the first block file; from the hash tree of the block, filter the nodes used to prove that the transaction record belongs to the block ; Construct a node retention tree based on the selected nodes.
  • the transaction storage module 604 is used to store transaction records in the corresponding leaf nodes of the node retention tree.
  • the block update module 606 is used to associate the block header of the block and the node retention tree storing the transaction records in the second block file; the block header of the block is adjacent to the previous one in the second block file The block header of a block.
  • the deleting module 608 is used to delete the first block file after the update processing for each block is completed.
  • the node retention module 602 is configured to, in response to detecting the transaction records that need to be retained in the block, perform the step of screening the nodes used to prove that the transaction records belong to the block from the hash tree of the block;
  • the node reservation module 620 is also used for notifying the block update module 606 to update the block header of the block adjacent to the block header of the previous block to the second block in response to detecting that there is no transaction record to be retained in the block. Block file.
  • the transaction record is a transaction record used for reconciliation; the node retention module 602 is also used to compare the transaction record in the block with the transaction record in the set of unsuccessful reconciliation; in response to the block The transaction record in is included in the set of unsuccessful reconciliations, and the transaction record is determined to be a transaction record that needs to be retained.
  • the unsuccessful reconciliation set includes the unreconciled set.
  • the device 600 also includes:
  • the real-time reconciliation module 601 is configured to store the first transaction record to be reconciled in the block of the first block file through the smart contract in response to receiving the reconciliation call request sent by the first reconciliation device; A transaction record is carried in the reconciliation call request; the reconciliation associated identifier corresponding to the first transaction record is obtained through the smart contract; the second pair corresponding to the reconciliation associated identifier is found from the unreconciled set created on the blockchain The second transaction record of the accounting device; in response to the second transaction record not being found, the first transaction record is added to the unreconciled set.
  • the set of unsuccessful reconciliations also includes a set of reconciliation errors.
  • the real-time reconciliation module 601 is also configured to remove the second transaction record from the unreconciled set in response to finding the second transaction record; compare the first transaction record with the second transaction record; The transaction record and the second transaction record are added to the set of reconciliation errors.
  • the node retention module 602 is also used to determine the leaf node corresponding to the transaction record in the hash tree of the block; from the hash tree, filter the first ancestor node and sibling leaf nodes of the leaf node; For the non-sibling leaf nodes of the leaf node, the second ancestor node of the non-sibling leaf node closest to the root node is selected; according to the leaf node, the first ancestor node, the sibling leaf node and the second ancestor node, a node retention tree is constructed.
  • the hash tree is a double-layer hash tree, and the hash value of the root node of the double-layer hash tree is obtained by performing a hash operation after the hash value of each leaf node is concatenated and combined; the filtered node That is, all nodes of the hash tree.
  • the block update module 606 is also used to obtain the second storage location of the second block file; modify the location index of the block from pointing to the first storage location of the first block file to point to the second storage position.
  • Fig. 8 is a schematic diagram of the internal structure of a computer device in an embodiment.
  • the computer device may be each server in the blockchain node 130 shown in FIG. 1.
  • the computer equipment includes a processor, a memory, and a network interface connected through a system bus.
  • the memory includes a non-volatile storage medium and an internal memory.
  • the non-volatile storage medium of the computer device can store an operating system and a computer program. When the computer program is executed, it can cause the processor to execute all or part of the steps of the data processing method shown in the foregoing method embodiments.
  • the processor of the computer equipment is used to provide calculation and control capabilities, and supports the operation of the entire computer equipment.
  • a computer program may be stored in the internal memory, and when the computer program is executed by the processor, the processor may execute all or part of the steps of the data processing method shown in the foregoing method embodiments.
  • the network interface of the computer equipment is used for network communication.
  • FIG. 8 is only a block diagram of part of the structure related to the solution of the present application, and does not constitute a limitation on the computer equipment to which the solution of the present application is applied.
  • the specific computer equipment may Including more or less parts than shown in the figure, or combining some parts, or having a different part arrangement.
  • the data processing device provided in the present application can be implemented in the form of a computer program.
  • the computer program can run on the computer device as shown in FIG. 8, and the non-volatile storage medium of the computer device can store components.
  • the various program modules of the data processing device for example, the node reservation module 602, the transaction storage module 604, the block update module 606, and the deletion module 608 shown in FIG.
  • the computer program composed of each program module is used to make the computer device execute the steps in the data processing method of each embodiment of the present application described in this specification.
  • the computer device can pass through the data processing device 600 shown in FIG.
  • the node retention module 602 For each block in the first block file, the node retention module 602 detects the transaction records that need to be retained in the block; from the hash tree of the block, filters the nodes used to prove that the transaction records belong to the block; The filtered nodes construct a node retention tree.
  • the computer device can store the transaction record in the corresponding leaf node of the node retention tree through the transaction storage module 604.
  • the computer device can update the block header of the block and the node retention tree storing the transaction records to the second block file through the block update module 606; the block header of the block is adjacent to the second block file in the second block file.
  • the block header of the previous block The computer device can delete the first block file after the update processing for each block is completed through the deletion module 608.
  • a computer device including a memory and a processor, the memory stores a computer program, and when the computer program is executed by the processor, the processor executes the steps of the above data processing method.
  • the steps of the data processing method may be the steps in the data processing method of each of the foregoing embodiments.
  • a computer-readable storage medium which stores a computer program, and when the computer program is executed by a processor, the processor executes the steps of the above-mentioned data processing method.
  • the steps of the data processing method may be the steps in the data processing method of each of the foregoing embodiments.
  • steps in the embodiments of the present application are not necessarily executed in sequence in the order indicated by the step numbers. Unless explicitly stated in this article, the execution of these steps is not strictly limited in order, and these steps can be executed in other orders. Moreover, at least part of the steps in each embodiment may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but may be executed at different times. The execution of these sub-steps or stages The sequence is not necessarily performed sequentially, but may be performed alternately or alternately with other steps or at least a part of sub-steps or stages of other steps.
  • Non-volatile memory may include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
  • Volatile memory may include random access memory (RAM) or external cache memory.
  • RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous chain Channel (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
  • SRAM static RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDRSDRAM double data rate SDRAM
  • ESDRAM enhanced SDRAM
  • SLDRAM synchronous chain Channel
  • memory bus Radbus direct RAM
  • RDRAM direct memory bus dynamic RAM
  • RDRAM memory bus dynamic RAM

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据处理方法、装置、计算机设备及存储介质,该方法包括:针对第一区块文件中的每个区块,检测所述区块中需保留的交易记录;从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点;根据筛选出的所述节点构建节点保留树;存储所述交易记录至所述节点保留树的相应叶节点中;将所述区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;所述区块头在所述第二区块文件中相邻于前一区块的区块头;在对每个所述区块更新处理完毕后,删除所述第一区块文件。该方法能够节省存储资源。

Description

数据处理方法、装置、计算机设备及存储介质
本申请要求于2019年01月23日提交的申请号为201910063326.1、发明名称为“数据处理方法、装置、计算机设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据处理方法、装置、计算机设备及存储介质。
背景技术
随着科学技术的飞速发展,各种技术突飞猛进,大量先进技术不断涌现,区块链技术即属于当今时代一个非常重要的技术,在非常多的场景中都得到了应用。
传统方法中,区块链主要用于记账,即用于存储交易记录。交易记录在区块链上一经存储,则无法删除和篡改,保证了所存储的交易记录真实有效。然而,有些情况下不需要一直对区块链中的所有交易记录都保留,只需要保留一部分交易记录,比如,对账完毕后的交易记录则可以不再保留,仅保留没有对账的交易记录即可。但是,基于区块链上的数据无法删除和篡改的特性,传统方法并不能将不需保留的交易记录删除,使得这些不必要的数据占据大量空间,从而浪费大量存储资源。
发明内容
基于此,本申请提供了一种数据处理方法、装置、计算机设备及存储介质,可以节约区块链中的存储资源。
一种数据处理方法,所述方法由区块链节点执行,所述方法包括:
针对第一区块文件中的每个区块,检测所述区块中需保留的交易记录;
从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点;
根据筛选出的所述节点构建节点保留树;
存储所述交易记录至所述节点保留树的相应叶节点中;
将所述区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;所述区块的区块头在所述第二区块文件中相邻于前一区块的区块头;及
在对每个所述区块更新处理完毕后,删除所述第一区块文件。
一种数据处理装置,所述装置用于区块链节点中,所述装置包括:
节点保留模块,用于针对第一区块文件中的每个区块,检测所述区块中需保留的交易记录;从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点;根据筛选出的所述节点构建节点保留树;
交易存储模块,用于存储所述交易记录至所述节点保留树的相应叶节点中;
区块更新模块,用于将所述区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;所述区块的区块头在所述第二区块文件中相邻于前一区块的区块头;及
删除模块,用于在针对每个所述区块的更新处理完毕后,删除所述第一区块文件。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
针对第一区块文件中的每个区块,检测所述区块中需保留的交易记录;
从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点;
根据筛选出的所述节点构建节点保留树;
存储所述交易记录至所述节点保留树的相应叶节点中;
将所述区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;所述区块的区块头在所述第二区块文件中相邻于前一区块的区块头;及
在对每个所述区块更新处理完毕后,删除所述第一区块文件。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
针对第一区块文件中的每个区块,检测所述区块中需保留的交易记录;
从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点;
根据筛选出的所述节点构建节点保留树;
存储所述交易记录至所述节点保留树的相应叶节点中;
将所述区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;所述区块的区块头在所述第二区块文件中相邻于前一区块的区块头;及
在对每个所述区块更新处理完毕后,删除所述第一区块文件。
上述数据处理方法、装置、计算机设备及存储介质,针对第一区块文件中的每个区块,检测区块中需保留的交易记录;从该区块的哈希树中,筛选用于证明该需保留的交易记录属于该区块的节点;根据筛选出的节点构建节点保留树;存储交易记录至节点保留树的相应叶节点中。将区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;区块头在第二区块文件中相邻于前一区块的区块头。在第二区块文件中,由于区块头并未发生改变而且区块头仍然依次相邻,所以维持了区块链上通过哈希值首尾相连的特性,这样一来,根据保存在节点保留树的叶节点的交易记录,以及节点保留树中的节点,就可以证明该交易记录属于原来所对应的区块,相当于仍然保留了原始哈希树校验数据真实性的功能,第二区块文件中保留的交易记录也就仍然无法伪造和篡改。在针对每个区块的更新处理完毕后,删除第一区块文件。由于第二区块文件中并未存储原有区块中不需要保留的交易记录,而仅保存了需保留的交易记录和用于校验该交易记录真实性的节点保留树,所以相较于第一区块文件大大节省了存储资源。
附图说明
图1为一个实施例中数据处理方法的应用场景图;
图2为一个实施例中数据处理方法的流程示意图;
图3为一个实施例中构建节点保留树的原理示意图;
图4为一个实施例中对账步骤的流程示意图;
图5为另一个实施例中数据处理方法的流程示意图;
图6为一个实施例中数据处理装置的框图;
图7为另一个实施例中数据处理装置的框图;
图8为一个实施例中计算机设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中数据处理方法的应用场景图。参照图1,该应用场景中包括通过网络连接的第一对账设备110、第二对账设备120和区块链节点130。区块链节点130,用于存放区块链中的区块。区块链节点130由一台或多台服务器构成。多个区块链节点130构成区块链平台。区块链平台可以是私有区块链平台也可以是开发的区块链平台。区块链平台可以是云区块链平台。云区块链平台,是构建于云基础之上,让用户在开放的云平台上能够快速构建自身所需的基础设施和区块链服务的平台。
第一对账设备110和第二对账设备120,是对账双方用于实现对账的设备。第一对账设备110和第二对账设备120可以是终端或服务器。终端可以是智能电视机、台式计算机或移动终端,移动终端可以包括手机、平板电脑、笔记本电脑、个人数字助理和穿戴式设备等中的至少一种。服务器可以用独立的服务器或者是多个物理服务器组成的服务器集群来实现。
第一对账设备110和第二对账设备120可以将需要对账的交易记录存储至区块链节点130中的区块链上。区块链上的各区块存储于第一区块文件中。区块链节点130可以针对第一区块文件中的每个区块,检测该区块中需保留的交易记录;从该区块的哈希树中,筛选用于证明该交易记录属于该区块的节点;根据筛选出的该节点构建节点保留树;存储该交易记录至该节点保留树的相应叶节点中;将该区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;该区块的区块头在该第二区块文件中相邻于前一区块的区块头;在对每个该区块更新处理完毕后,删除该第一区块文件。第二区块文件中存储了每个区块更新后的需要保留的交易记录而去掉了不需要保留的交易记录,从而节省了存储空间。此外,第二区块文件中每个区块的区块头依然按照在第一区块文件中的顺序相邻,即仍然维持了区块链上通过哈希值首尾相连的特性,那么,第二区块文件中保留的交易记录也就仍然无法伪造和篡改。
需要说明的是,图1只是本申请中数据处理方法的一个应用场景。本申请中的数据处理方法并不限定于对图1的对账场景中的交易记录进行合理清除, 还可以是对其他场景中所存储的交易记录进行清除。
图2为一个实施例中数据处理方法的流程示意图。本实施例主要以该数据处理方法应用于图1中的区块链节点130进行举例说明。参照图2,该方法具体包括如下步骤:
S202,针对第一区块文件中的每个区块,检测区块中需保留的交易记录。
其中,需保留的交易记录,是不需要清除的交易记录。第一区块文件是存储于区块链节点上的原始区块链的文件。第一区块文件中包括构成区块链的多个区块。每个区块中可以包括一条或多条交易记录。需保留的交易记录可以为一条或多条。
在一个实施例中,交易记录可以是用于对账的交易记录。在其他实施例中,交易记录还可以是纯粹用于存储备份的交易记录。可以理解,交易记录还可以是其他使用场景下需要使用到的交易记录。对此不作限定。
在一个实施例中,针对第一区块文件中的每个区块,区块链节点可以检测该区块中直接指定的需保留的交易记录。
在一个实施例中,区块链节点也可以对各区块中的交易记录进行分析,从中确定出需保留的交易记录。可选地,区块链节点可以获取区块中各交易记录的状态,将处于有效状态的交易记录确定为需保留的交易记录。区块链节点也可以筛选区块中位于未成功处理集合中的交易记录,得到需保留的交易记录。
可以理解,区块链节点可以从第一区块文件中的首个区块开始,逐个区块执行步骤S202~S210。区块链节点也可以针对第一区块文件中的各个区块并发地执行步骤S202~S210。这里不做限定。
需要说明的是,区块链节点从区块中可能检测出需要保留的交易记录,也可能检测得到不存在需保留的交易记录。那么,响应于检测出区块中需保留的交易记录,则执行步骤S204~S210,响应于检测到区块中不存在需保留的交易记录,则可以只将该区块的区块头相邻于前一区块的区块头更新至第二区块文件中。比如,针对不存在需保留的交易记录的区块,区块链节点可以在第二区块文件中确定其前一区块的区块头,并于第二区块文件中在该前一区块的区块头之后更新存储该区块的区块头。即针对不存在需保留的交易记录的区块,在第二区块文件中可以仅保留区块头而不需要保留任何交易记录。
S204,从区块的哈希树中,筛选用于证明需保留的交易记录属于区块的节点。
其中,区块的哈希树,是根据该区块中的各交易记录生成的哈希树。哈希树的叶节点与区块中各交易记录的哈希值一一对应。哈希树的根节点的哈希值,根据各叶节点的哈希值计算得到。哈希树的根节点的哈希值与该区块唯一对应。
用于证明需保留的交易记录属于区块的节点,是指从该需保留的交易记录所对应叶节点的哈希值计算得到根节点的哈希值时所需要的哈希值对应的节点。可以理解,因为要从该需保留的交易记录所对应叶节点的哈希值计算得到根节点的哈希值,所以筛选的节点中包括该需保留的交易记录所对应叶节点和根节点。
在一个实施例中,哈希树可以为双层哈希树。双层哈希树,是指包括根节点和叶节点的两层级的哈希树。双层哈希树的根节点的哈希值,可以由每个叶节点的哈希值串联合并后进行哈希运算得到。可以理解,当哈希树为双层哈希树时,筛选的用于证明交易记录属于区块的节点,即为哈希树的全部节点。
在另一个实施例中,哈希树也可以是多层哈希树。多层哈希树,是指层级大于两层的哈希树。这种情况下,用于证明所述交易记录属于所述区块的节点,就仅为多层哈希树的一部分节点。在一个实施例中,多层哈希树可以为默克尔树。其中,默克尔树(Merkle Tree),是一种多层级的树形数据结构。默克尔树的各叶节点以各交易记录的哈希值作为标签,而叶节点以其子节点标签串联后进行哈希运算得到的哈希值作为标签。可以理解,默克尔树的根节点以最接近该根节点的这一层级的节点的标签串联后进行哈希运行得到的哈希值为标签。
需要说明的是,当需保留的交易记录为多条时,则针对每个需保留的交易记录,从区块的哈希树中,筛选用于证明该需保留的交易记录属于这个区块的节点。可以理解,针对多条需保留的交易记录筛选的节点可能存在重复情况。
S206,根据筛选出的节点构建节点保留树。
筛选出的节点,即为原始的哈希树中需保留的节点。节点保留树,是根据筛选出的需保留的节点重新构建的哈希树。
当只有一条需保留的交易记录时,则可以仅根据针对该条交易记录筛选出的节点构建节点保留树。当有多条需保留的交易记录时,则可以将针对多条需保留的交易记录筛选出的节点进行汇总并去重,然后根据去重后的节点重新构建节点保留树。需要说明的是,构建的节点保留树中保留了筛选出的各节点在原始的哈希树中所存在的层级关系。
为了便于理解,现结合图3对节点保留树进行举例说明。参照图3,第n-1 个区块的区块头中包括前一区块的哈希值和第n-1个区块自身的根哈希,其中,图3中的根哈希,即指默克尔树的根节点,第n个区块的区块头中包括第n-1个区块的哈希值和第n个区块自身的根哈希,第n+1个区块的区块头中包括第n个区块的哈希值和第n+1个区块自身的根哈希。以第n个区块为例,假设该第n个区块中包括4条交易记录Tx(1)~Tx(4),分别对Tx(1)~Tx(4)进行哈希计算,得到相应的哈希值H(1)~H(4)。那么,以这4条交易记录,即可生成包括叶节点H(1)~H(4)、H(1+2)、H(3+4)、以及根节点的哈希树。其中,H(1+2)为H(1)和H(2)的父节点,其所对应的哈希值是根据H(1)和H(2)串联后进行哈希计算得到。H(3+4)为H(3)和H(4)的父节点,其所对应的哈希值是根据H(3)和H(4)串联后进行哈希计算得到。根节点为H(1+2)和H(3+4)的父节点,其所对应的哈希值是根据H(1+2)和H(3+4)串联后进行哈希计算得到。
针对第n个区块,假设检测出交易记录Tx(3)为需保留的交易记录,其余的交易记录为不需要保留的交易记录,则可以选取用于证明Tx(3)属于该区块的节点。如图3所示,框选的节点即为除根节点以外的需筛选出的节点,即除了根节点以外,还需要筛选节点H(1+2)、H(3+4)、H(3)和H(4),来构建节点保留树。又比如,假设检测出交易记录Tx(2)和Tx(3)为需保留的交易记录,那么就可以选取分别用于证明Tx(2)和Tx(3)属于该区块的节点。可以理解,针对Tx(2)选取的节点必然也包括H(1+2)和H(3+4),那么,就需要将针对Tx(2)和Tx(3)选取的节点进行汇总去重,去重后相当于筛选整个哈希树中所有节点构建节点保留树。然后,仅将Tx(2)和Tx(3)存储于各自相应的叶节点中。
S208,存储需保留的交易记录至节点保留树的相应叶节点中。
可选的,针对需保留的交易记录,区块链节点可以将其存储于节点保留树中相应的叶节点所对应的数据块中。
同样以图3为例,在节点保留树中,区块链节点可以将交易记录Tx(3)存储于相应叶节点H(3)所对应的数据块中。
S210,将区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;区块头在第二区块文件中相邻于前一区块的区块头。
可以理解,第二区块文件不同于第一区块文件,是在区块链节点上新建的区块文件。
可选的,区块链节点可以对区块的区块头和存储了交易记录的节点保留树 进行序列化处理,将区块的区块头和存储了交易记录的节点保留树转化为可存储的形式。区块链节点可以在第二区块文件中,确定该区块的前一区块的区块头。将序列化后的该区块的区块头相邻于前一区块的区块头更新至第二区块文件中,并在第二区块文件中,将序列化后的存储有需保留的交易记录的节点保留树与该区块的区块头关联存储。
在一个实施例中,该方法还包括:获取第二区块文件的第二存储位置;将所述区块的位置索引由指向所述第一区块文件的第一存储位置修改为指向所述第二存储位置。
其中,区块的位置索引,是指用于查找该区块的存储位置的索引。
可以理解,区块的位置索引初始是指向第一区块文件的第一存储位置,区块链节点在将区块按照步骤S204~210更新至第二区块文件后,则可以将该区块的位置索引修改为指向第二区块的第二存储位置。这样一来,后续就可以根据该指向第二存储位置的位置索引,从第二区块文件中查找到该区块。
需要说明的是,由于区块链节点之间具有共识机制,所以在达成共识后,各区块链节点都会将区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中。
S212,在对每个区块更新处理完毕后,删除第一区块文件。
可以理解,针对第一区块文件中存在需保留的交易记录的区块,可以通过执行步骤S204~S210,将该区块的区块头相邻于前一区块的区块头,与存储有需保留的交易记录的节点保留树关联更新至第二区块文件中。针对不存在需保留的交易记录的区块,可以于第二区块文件中在该前一区块的区块头之后更新存储该区块的区块头。第二区块文件中存储的每个区块的内容,即相当于该区块更新处理后的内容,那么,在针对第一区块文件中的每个区块都执行更新处理完毕之后,则可以得到包括更新后的区块的第二区块文件,然后就可以删除第一区块文件。
需要说明的是,由于区块链节点之间具有共识机制,所以在达成共识后,各区块链节点都会删除第一区块文件。
上述实施例中,由于区块头并未发生改变而且区块头仍然依次相邻,所以维持了区块链上通过哈希值首尾相连的特性,这样一来,根据保存在节点保留树的叶节点的交易记录,以及节点保留树中的节点,就可以证明该交易记录属于原来所对应的区块,相当于仍然保留了原始哈希树校验数据真实性的功能, 第二区块文件中保留的交易记录也就仍然无法伪造和篡改。在针对每个区块的更新处理完毕后,删除第一区块文件。由于第二区块文件中并未存储原有区块中不需要保留的交易记录,而仅保存了需保留的交易记录和用于校验该交易记录真实性的节点保留树,所以相较于第一区块文件大大节省了存储资源。
在一个实施例中,交易记录是用于对账的交易记录。步骤S202包括:针对第一区块文件中的每个区块,将区块中的交易记录与未成功对账的集合中的交易记录进行比对;响应于区块中的交易记录包括于未成功对账的集合,则判定交易记录为需保留的交易记录。
其中,未成功对账的集合,是由没有对账成功的各个交易记录形成的集合。
在一个实施例中,未成功对账的集合,可以是一个既包括未对账的交易记录又包括对账失败的交易记录的集合。
在一个实施例中,未成功对账的集合可以包括未对账集合或对账差错集合。
在一个实施例中,未成功对账集合可以包括未对账集合和对账差错集合这两个子集合。
其中,未对账集合,是尚未进行对账处理的交易记录所形成的集合。对账差错集合,是对账不一致(即对账出现错误)的交易记录所形成的集合。
可选的,区块链节点可以将区块中的每条交易记录,分别与未成功对账的集合中的交易记录进行比对,以判断在未成功对账的集合中是否包括该区块中的交易记录。响应于区块中的交易记录与未成功对账的集合中的交易记录比对一致时,说明该交易记录包括于未成功对账的集合,则可以将该区块中的包括于未成功对账的集合的交易记录判定为需保留的交易记录。响应于区块中的交易记录与未成功对账的集合中的交易记录比对不一致时,说明该交易记录不存在于未成功对账的集合,则可以判定该交易记录为不需保留的交易记录。
上述实施例中,在区块链上设置了未成功对账的集合,将区块中的交易记录与未成功对账的集合中交易记录进行比对,能够更加快速地确定出需保留的交易记录。
在一个实施例中,未成功对账的集合包括未对账集合。该方法还包括对账步骤,该对账步骤可以包括以下步骤:
S402,响应于接收到第一对账设备发送的对账调用请求,通过智能合约将 对账调用请求中携带的待对账的第一交易记录存储至第一区块文件的区块中。
其中,未对账集合,是尚未进行对账处理的交易记录所形成的集合。第一对账设备,是发起对账处理的一方所使用的设备。对账调用请求,是用于请求调用区块链上的智能合约,以实现对账处理。
智能合约,是对由各区块链节点共同参与制定的、且用于明确权利和义务的协议进行编程得到的一段设置于区块链上的代码。该代码中包含会触发合约自动执行的条件。可以理解,在达到对某一事件的触发条件时,等各区块链节点对该事件达成共识后,智能合约可以自动地执行该事件。
可以理解,区块链节点预先建立了未对账集合,用于保存还未对账的交易记录。初始创建的未对账集合可以是空集合,里面并不包括交易记录。
可选的,对账双方在进行对账时,可以通过各自的对账设备向区块链节点发送对账调用请求,以请求调用区块链节点上设置的智能合约。响应于区块链节点接收到第一对账设备发送的对账调用请求,则可以通过智能合约解析该对账调用请求,从中获取待对账的第一交易记录。区块链节点可以通过智能合约将该第一交易记录存储至第一区块文件的区块中。
可以理解,在接收到对账双方任一方所使用的对账设备发送的对账调用请求时,区块链节点都可以通过智能合约将该对账调用请求中携带的交易记录存储至第一区块文件的区块中。
S404,通过智能合约获取第一交易记录对应的对账关联标识。
其中,对账关联标识,用于将由对账双方所使用的对账设备分别发送的、且表示同一笔交易的交易记录进行关联标示。
在一个实施例中,对账关联标识可以包括交易流水号。那么,对账双方发送的对应于同一交易流水号的交易记录之间即需要进行对账处理。可以理解,在其他实施例中,对账关联标识也可以是其他能够唯一表示同一笔交易的标识。
可以理解,区块链节点可以通过智能合约从第一交易记录中提取对账关联标识。区块链节点也可以通过智能合约从对账调用请求中提取第一交易记录对应的对账关联标识。
S406,从区块链上创建的未对账集合中,查找与对账关联标识对应的第二对账设备的第二交易记录。
其中,第二对账设备,是发起对账处理的另一方所使用的设备。
具体地,区块链节点可以通过智能合约,从未对账集合的交易记录中,查 找是否存在与该对账关联标识对应的第二交易记录。该第二交易记录即为由发起对账处理的另一方所使用的第二对账设备发送对账调用请求时携带的交易记录。
S408,响应于未找到第二交易记录,将第一交易记录添加至未对账集合中。
可以理解,由于对账双方在调用智能合约进行对账时,并非完全一致,必然会有快有慢,而且选取对账的交易记录的顺序也可能会有不同,当一个对账方发送需要对账的交易记录至智能合约时,另一方可能尚未发送对应于同一对账关联标识的交易记录至智能合约,所以就可能存在未查找到与对账关联标识对应的第二对账设备的第二交易记录的情况。同样地,如果另一方先发送需要对账的交易记录至智能合约,该先发送的交易记录也无法查找到对应于同一对账关联标识的交易记录,因而也无法对账,因此,先发送的交易记录就会被添加至未对账集合。
因此,从未对账集合中,区块链节点可能查找到与对账关联标识对应的第二对账设备的第二交易记录,也可能未查找到与对账关联标识对应的第二对账设备的第二交易记录。
响应于未找到第二交易记录,区块链节点可以将第一交易记录添加至未对账集合中。
在一个实施例中,响应于查找到与对账关联标识对应的第二对账设备的第二交易记录,区块链节点则可以将该第二交易记录从未对账集合中删除,并将第一交易记录和第二交易记录进行比对。响应于比对不一致时,则可以将第一交易记录和第二交易记录与对账成功的交易记录进行区别处理。区别处理,是指将第一交易记录和第二交易记录与对账成功的交易记录区分开的处理。
在一个实施例中,区块链节点可以将比对不一致的第一交易记录和第二交易记录添加对账失败标记。可以理解,区块链节点也可以采用其他方式将比对不一致的第一交易记录和第二交易记录与对账成功的交易记录进行区别处理。
上述实施例中,在区块链上设置了未对账集合,在接收到对账调用请求时,结合未对账集合来实现实时对账处理,使得对账更加的及时、便捷。
如图4所示,在一个实施例中,未成功对账的集合还包括对账差错集合。该对账步骤除了上述步骤S402~408以外,还包括以下步骤:
S410,响应于找到第二交易记录时,从未对账集合中移除第二交易记录。
S412,比对第一交易记录和第二交易记录。
可选的,区块链节点响应于在未对账集合中查找到第二交易记录,则从未对账集合中删除第二交易记录,并将第二交易记录和第一交易记录进行比对,以比对二者是否一致。
S414,响应于比对不一致,将第一交易记录和第二交易记录添加至对账差错集合。
其中,对账差错集合,是对账不一致的交易记录所形成的集合。
可以理解,将第二交易记录和第一交易记录进行比对的结果,包括比对一致和比对不一致两种情况。响应于比对一致,则判定第一交易记录和第二交易记录属于对账成功的交易记录。响应于比对不一致,说明第一交易记录和第二交易记录属于对账失败的交易记录,则可以将第一交易记录和第二交易记录添加至对账差错集合中。
在一个实施例中,区块链节点可以接收针对对账差错集合中的交易记录的修改处理,并将修改后的交易记录再次进行对账比对处理。
上述实施例中,在区块链上设置两种类型的未成功对账的集合,即未对账集合和对账差错集合,通过这两种集合来实现实时对账非常的便捷,而且,能够更加准确地管理对账结果。
在一个实施例中,步骤S204包括:在区块的哈希树中,确定与交易记录相应的叶节点;从哈希树中,筛选叶节点的第一祖先节点和兄弟叶节点;针对叶节点的非兄弟叶节点,筛选非兄弟叶节点的最接近根节点的第二祖先节点;根据叶节点、第一祖先节点、兄弟叶节点和第二祖先节点,构建节点保留树。
其中,与交易记录相应的叶节点,是指以需保留的交易记录的哈希值作为标签的叶子节点。祖先节点,是指与叶子节点具有祖先关系的节点。可以理解,父节点、祖父节点、曾祖父节点等这些都属于叶节点的祖先节点。兄弟叶节点,是指与叶节点对应相同父节点的叶子节点。非兄弟叶节点,是指与叶节点没有相同父节点的叶子节点。
可选的,区块链节点可以从哈希树中,筛选需保留的交易记录所对应叶节点的第一祖先节点和该叶节点的兄弟叶节点。可以理解,第一祖先节点,是指叶节点的全部祖先节点。因为根节点必然是需保留的交易记录所对应叶节点的祖先节点,所以,第一祖先节点中包括根节点。区块链节点可以从哈希树中确 定交易记录所对应叶节点的非兄弟叶节点,确定该非兄弟叶节点最接近根节点的那个祖先节点,得到第二祖先节点。可以理解,非兄弟叶节点可以为一个或多个,当多个非兄弟叶节点的最接近根节点的祖先节点不同时,则筛选出每个最接近根节点的祖先节点,当多个非兄弟叶节点的最接近根节点的祖先节点相同时,则可以仅筛选出最接近根节点的那个祖先节点。
区块链节点可以根据叶节点、第一祖先节点、兄弟叶节点和第二祖先节点,构建节点保留树。
现结合图3进行解释说明。比如,需保留的交易记录为Tx(3),其所对应的叶节点即为H(3),H(3)的兄弟叶节点为H(4),H(3)的第一祖先节点为H(3+4)和根节点。H(1)和H(2)是H(3)的非兄弟叶节点,非兄弟叶节点H(1)和H(2)的最接近根节点的第二祖先节点都为H(1+2)。所以,区块链节点可以根据Tx(3)所对应的叶节点H(3)、H(4)、H(3+4)、H(1+2)以及根节点,构建节点保留树。
上述实施例中,根据该需保留的交易记录在原始哈希树对应的叶节点、第一祖先节点、兄弟叶节点和第二祖先节点,构建节点保留树,在保留原始哈希树校验数据真实性的功能的前提下,能够剔除不必要的节点和交易记录数据,一定程度上节省了存储资源。
如图5所示,在一个实施例中,提供了一种数据处理方法,该数据处理方法具体包括以下步骤:
S502,在区块链上分别创建一个未对账集合和对账差错集合。
需要说明的是,初始创建的未对账集合和对账差错集合可以是空集合,里面并不包括交易记录,后续根据实际的对账情况再加入相应交易记录。
可以理解,未对账集合和对账差错集合相当于区块链的状态数据。
S504,响应于接收第一对账设备针对智能合约发送的对账调用请求,通过智能合约将对账调用请求中携带的待对账的第一交易记录存储至第一区块文件的区块中。
S506,通过智能合约获取第一交易记录对应的对账关联标识;从区块链上创建的未对账集合中,查找与对账关联标识对应的第二对账设备的第二交易记录。响应于未查找到第二交易记录,执行步骤S508,响应于查找到第二交易记录,执行步骤S510。
S508,将第一交易记录添加至未对账集合中。
其中,对账关联标识,用于将由对账双方所使用的对账设备分别发送的、且表示同一笔交易的交易记录进行关联标示。
可以理解,由于区块链是从第一区块开始,依次往后生成区块以存储交易记录,所以,S506中的未对账集合中所包含的交易记录,即为截止到第一交易记录存储至区块为止,未进行对账的交易记录。比如,第一区块文件中前4个区块已经存满了,所以将第一交易记录R1存储至第5个区块,那么,未对账集合中包含的就是截止到第5个区块为止当前尚未进行对账的交易记录。区块链节点可以将从当前的未对账集合中查找是否存在与第一交易记录R1对应于同一对账关联标识的第二交易记录R2,如果不存在,则可以将第一交易记录R1也添加至未对账集合中。
S510,从未对账集合中移除第二交易记录;比对第一交易记录和第二交易记录;响应于比对不一致,将第一交易记录和第二交易记录添加至对账差错集合。
同样地,由于区块链是从第一区块开始,依次往后生成区块以存储交易记录,所以,添加第一交易记录和第二交易记录后的对账差错集合中所包含的交易记录,即为截止到第一交易记录存储至区块为止,对账出现错误的交易记录。
可以理解,步骤S504~S510描述的是一个实时对账的过程,即,区块链节点可以一边将第一对账设备的对账调用请求中携带的第一交易记录存储至区块,一边对该第一交易记录进行对账处理,从而实现边存储边对账的实时对账处理。
需要说明的是,这里的“第一对账设备”和“第二对账设备”仅用于区分,并不用做其他限定。可以理解,智能合约在接收到任一方的对账调用请求后,都可以将其中携带的交易记录存储至区块中。
此外,由于对账双方在调用智能合约进行对账时,并非完全一致,必然会有快有慢,而且选取对账的交易记录的顺序也可能会有不同,当一个对账方通过对账设备发送需要对账的交易记录至智能合约,而另一个对账方尚未发送对账数据过来时,则可以将该需要对账的交易记录添加至未对账集合中。
可以理解,当一个对账方发送需要对账的交易记录至智能合约,另一个对账方也已经发送过来对应于同一笔交易的交易记录时,则可以将对应于同一笔交易的不同交易记录进行比对,如果不一致,则说明对账出错,则可以将比对 不一致的这些交易记录添加至对账差错集合。
S512,针对第一区块文件中的每个区块,将区块中的交易记录与对账差错集合和未对账集合中的交易记录进行比对。响应于区块中的交易记录包括于对账差错集合或未对账集合,执行步骤S514~S516,响应于区块中的交易记录不包括于对账差错集合和未对账集合,则执行步骤S518。
可以理解,针对第一区块文件中的每个区块,区块链节点可以按照预设预设周期执行步骤S512(相当于,定期清理区块链中的数据)。在其他实施例中,区块链节点也可以在第一区块文件中的区块数量达到预设数量阈值时,触发执行步骤S512(相当于,当区块链中的区块数量过多、占用的存储空间过大时,再清理区块链中的数据)。
S514,在区块的哈希树中,确定与交易记录相应的叶节点;从哈希树中,筛选叶节点的第一祖先节点和兄弟叶节点;针对叶节点的非兄弟叶节点,筛选非兄弟叶节点的最接近根节点的第二祖先节点;根据叶节点、兄弟叶节点、第一祖先节点和第二祖先节点,构建节点保留树。
S516,存储交易记录至节点保留树的相应叶节点中;将区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;区块头在第二区块文件中相邻于前一区块的区块头。
S518,将区块的区块头相邻于前一区块的区块头更新至第二区块文件中。
S520,将区块的位置索引由指向第一区块文件的第一存储位置修改为指向第二区块文件的第二存储位置。
S522,在针对每个区块的更新处理完毕后,删除第一区块文件。
上述实施例中,在第二区块文件中,由于区块头并未发生改变而且区块头仍然依次相邻,所以维持了区块链上通过哈希值首尾相连的特性,这样一来,根据保存在节点保留树的叶节点的交易记录,以及节点保留树中的节点,就可以证明该交易记录属于原来所对应的区块,相当于仍然保留了原始哈希树校验数据真实性的功能,第二区块文件中保留的交易记录也就仍然无法伪造和篡改。在针对每个区块的更新处理完毕后,删除第一区块文件。由于第二区块文件中并未存储原有区块中不需要保留的交易记录,而仅保存了需保留的交易记录和用于校验该交易记录真实性的节点保留树,所以相较于第一区块文件大大节省了存储资源。
如图6所示,在一个实施例中,提供了一种数据处理装置600,该装置可以通过硬件或者软硬结合的方式实现为计算机设备的全部或者部分,可选的,该计算机设备可以是图1中的区块链节点。该装置600包括:节点保留模块602、交易存储模块604、区块更新模块606以及删除模块608,其中:
节点保留模块602,用于针对第一区块文件中的每个区块,检测区块中需保留的交易记录;从区块的哈希树中,筛选用于证明交易记录属于区块的节点;根据筛选出的节点构建节点保留树。
交易存储模块604,用于存储交易记录至节点保留树的相应叶节点中。
区块更新模块606,用于将区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;该区块的区块头在第二区块文件中相邻于前一区块的区块头。
删除模块608,用于在针对每个区块的更新处理完毕后,删除第一区块文件。
在一个实施例中,节点保留模块602,用于响应于检测出区块中需保留的交易记录,执行从区块的哈希树中,筛选用于证明交易记录属于区块的节点的步骤;节点保留模块620,还用于响应于检测到区块中不存在需保留的交易记录,则通知区块更新模块606将区块的区块头相邻于前一区块的区块头更新至第二区块文件中。
在一个实施例中,交易记录是用于对账的交易记录;节点保留模块602还用于将区块中的交易记录与未成功对账的集合中的交易记录进行比对;响应于区块中的交易记录包括于未成功对账的集合,判定交易记录为需保留的交易记录。
如图7所示,在一个实施例中,未成功对账的集合包括未对账集合。该装置600还包括:
实时对账模块601,用于响应于接收到第一对账设备发送的对账调用请求,通过智能合约将待对账的第一交易记录存储至第一区块文件的区块中;该第一交易记录携带于对账调用请求中;通过智能合约获取第一交易记录对应的对账关联标识;从区块链上创建的未对账集合中,查找与对账关联标识对应的第二对账设备的第二交易记录;响应于未找到第二交易记录,将第一交易记录添加至未对账集合中。
在一个实施例中,未成功对账的集合还包括对账差错集合。实时对账模块601还用于响应于找到第二交易记录,从未对账集合中移除第二交易记录;比对 第一交易记录和第二交易记录;响应于比对不一致,将第一交易记录和第二交易记录添加至对账差错集合。
在一个实施例中,节点保留模块602还用于在区块的哈希树中,确定与交易记录相应的叶节点;从哈希树中,筛选叶节点的第一祖先节点和兄弟叶节点;针对叶节点的非兄弟叶节点,筛选非兄弟叶节点的最接近根节点的第二祖先节点;根据叶节点、第一祖先节点、兄弟叶节点和第二祖先节点,构建节点保留树。
在一个实施例中,哈希树为双层哈希树,双层哈希树的根节点的哈希值,由每个叶节点的哈希值串联合并后进行哈希运算得到;筛选的节点即为哈希树的全部节点。
在一个实施例中,区块更新模块606还用于获取第二区块文件的第二存储位置;将区块的位置索引由指向第一区块文件的第一存储位置修改为指向第二存储位置。
图8为一个实施例中计算机设备的内部结构示意图。参照图8,该计算机设备可以是图1中所示的区块链节点130中的各个服务器。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质可存储操作系统和计算机程序。该计算机程序被执行时,可使得处理器执行上述各个方法实施例所示的数据处理方法的全部或者部分步骤。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该内存储器中可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行上述各个方法实施例所示的数据处理方法的全部或者部分步骤。计算机设备的网络接口用于进行网络通信。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的数据处理装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行,计算机设备的非易失性存储介质可存储组成该数据处理装置的各个程序模块,比如,图6所示的节点保留模块602、交易存储模块604、区块更新模块606以及删除模块608。 各个程序模块所组成的计算机程序用于使该计算机设备执行本说明书中描述的本申请各个实施例的数据处理方法中的步骤,例如,计算机设备可以通过如图6所示的数据处理装置600中的节点保留模块602针对第一区块文件中的每个区块,检测区块中需保留的交易记录;从区块的哈希树中,筛选用于证明交易记录属于区块的节点;根据筛选出的节点构建节点保留树。计算机设备可以通过交易存储模块604存储交易记录至节点保留树的相应叶节点中。计算机设备可以通过区块更新模块606将区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;该区块的区块头在第二区块文件中相邻于前一区块的区块头。计算机设备可以通过删除模块608在针对每个区块的更新处理完毕后,删除第一区块文件。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据处理方法的步骤。此处数据处理方法的步骤可以是上述各个实施例的数据处理方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据处理方法的步骤。此处数据处理方法的步骤可以是上述各个实施例的数据处理方法中的步骤。
需要说明的是,本申请各实施例中的“第一”和“第二”仅用作区分,而并不用于大小、先后、从属等方面的限定。
应该理解的是,虽然本申请各实施例中的各个步骤并不是必然按照步骤标号指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据 库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (18)

  1. 一种数据处理方法,所述方法由区块链节点执行,所述方法包括:
    针对第一区块文件中的每个区块,检测所述区块中需保留的交易记录;
    从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点;
    根据筛选出的所述节点构建节点保留树;
    存储所述交易记录至所述节点保留树的相应叶节点中;
    将所述区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;所述区块的区块头在所述第二区块文件中相邻于前一区块的区块头;
    在对每个所述区块更新处理完毕后,删除所述第一区块文件。
  2. 根据权利要求1所述的方法,其特征在于,所述从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点,包括:
    响应于检测出所述区块中需保留的交易记录,执行所述从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点的步骤;
    所述方法还包括:
    响应于检测到所述区块中不存在需保留的交易记录,将所述区块的区块头相邻于前一区块的区块头更新至第二区块文件中。
  3. 根据权利要求1所述的方法,其特征在于,所述交易记录是用于对账的交易记录;所述检测所述区块中需保留的交易记录包括:
    将所述区块中的交易记录与未成功对账的集合中的交易记录进行比对;
    响应于所述区块中的交易记录包括于所述未成功对账的集合,判定所述交易记录为需保留的交易记录。
  4. 根据权利要求3所述的方法,其特征在于,未成功对账的集合包括未对账集合;所述方法还包括:
    响应于接收到第一对账设备发送的对账调用请求,通过智能合约将待对账的第一交易记录存储至第一区块文件的区块中;所述第一交易记录携带于所述对账调用请求中;
    通过智能合约获取所述第一交易记录对应的对账关联标识;
    从区块链上创建的未对账集合中,查找与所述对账关联标识对应的第二对账设备的第二交易记录;
    响应于未找到所述第二交易记录,将所述第一交易记录添加至未对账集合 中。
  5. 根据权利要求4所述的方法,其特征在于,所述未成功对账的集合还包括对账差错集合;所述方法还包括:
    响应于找到所述第二交易记录,从所述未对账集合中移除所述第二交易记录;
    比对所述第一交易记录和所述第二交易记录;
    响应于比对不一致,将所述第一交易记录和所述第二交易记录添加至对账差错集合。
  6. 根据权利要求1所述的方法,其特征在于,所述从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点包括:
    在所述区块的哈希树中,确定与所述交易记录相应的叶节点;
    从所述哈希树中,筛选所述叶节点的第一祖先节点和兄弟叶节点;
    针对所述叶节点的非兄弟叶节点,筛选所述非兄弟叶节点的最接近根节点的第二祖先节点;
    所述根据筛选出的所述节点构建节点保留树,包括:
    根据所述叶节点、所述第一祖先节点、所述兄弟叶节点和所述第二祖先节点,构建节点保留树。
  7. 根据权利要求1所述的方法,其特征在于,所述哈希树为双层哈希树,所述双层哈希树的根节点的哈希值,由每个叶节点的哈希值串联合并后进行哈希运算得到;筛选的所述节点为所述哈希树的全部节点。
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
    获取所述第二区块文件的第二存储位置;
    将所述区块的位置索引由指向所述第一区块文件的第一存储位置修改为指向所述第二存储位置。
  9. 一种数据处理装置,其特征在于,所述装置用于区块链节点中,所述装置包括:
    节点保留模块,用于针对第一区块文件中的每个区块,检测所述区块中需保留的交易记录;从所述区块的哈希树中,筛选用于证明所述交易记录属于所 述区块的节点;根据筛选出的所述节点构建节点保留树;
    交易存储模块,用于存储所述交易记录至所述节点保留树的相应叶节点中;
    区块更新模块,用于将所述区块的区块头和存储了交易记录的节点保留树关联更新至第二区块文件中;所述区块的区块头在所述第二区块文件中相邻于前一区块的区块头;
    删除模块,用于在针对每个所述区块的更新处理完毕后,删除所述第一区块文件。
  10. 根据权利要求9所述的装置,其特征在于,
    所述节点保留模块,用于响应于检测出所述区块中需保留的交易记录,执行所述从所述区块的哈希树中,筛选用于证明所述交易记录属于所述区块的节点的步骤;
    所述节点保留模块,还用于响应于检测到所述区块中不存在需保留的交易记录,通知所述区块更新模块将所述区块的区块头相邻于前一区块的区块头更新至第二区块文件中。
  11. 根据权利要求9所述的装置,其特征在于,所述交易记录是用于对账的交易记录;所述节点保留模块还用于将所述区块中的交易记录与未成功对账的集合中的交易记录进行比对;响应于所述区块中的交易记录包括于所述未成功对账的集合,判定所述交易记录为需保留的交易记录。
  12. 根据权利要求11所述的装置,其特征在于,未成功对账的集合包括未对账集合;所述装置还包括:
    实时对账模块,用于响应于接收到第一对账设备发送的对账调用请求,通过智能合约将待对账的第一交易记录存储至第一区块文件的区块中;所述第一交易记录携带于所述对账调用请求中;通过智能合约获取所述第一交易记录对应的对账关联标识;从区块链上创建的未对账集合中,查找与所述对账关联标识对应的第二对账设备的第二交易记录;响应于未找到所述第二交易记录,将所述第一交易记录添加至未对账集合中。
  13. 根据权利要求12所述的装置,其特征在于,所述未成功对账的集合还包括对账差错集合;所述实时对账模块还用于响应于找到所述第二交易记录,从所述未对账集合中移除所述第二交易记录;比对所述第一交易记录和所述第二交易记录;响应于比对不一致,将所述第一交易记录和所述第二交易记录添 加至对账差错集合。
  14. 根据权利要求9所述的装置,其特征在于,所述节点保留模块还用于在所述区块的哈希树中,确定与所述交易记录相应的叶节点;从所述哈希树中,筛选所述叶节点的第一祖先节点和兄弟叶节点;针对所述叶节点的非兄弟叶节点,筛选所述非兄弟叶节点的最接近根节点的第二祖先节点;根据所述叶节点、所述第一祖先节点、所述兄弟叶节点和所述第二祖先节点,构建节点保留树。
  15. 根据权利要求9所述的装置,其特征在于,所述哈希树为双层哈希树,所述双层哈希树的根节点的哈希值,由每个叶节点的哈希值串联合并后进行哈希运算得到;筛选的所述节点为所述哈希树的全部节点。
  16. 根据权利要求15所述的装置,其特征在于,所述区块更新模块还用于获取第二区块文件的第二存储位置;将区块的位置索引由指向第一区块文件的第一存储位置修改为指向第二存储位置。
  17. 一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1至8中任一项所述方法的步骤。
  18. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至8中任一项所述方法的步骤。
PCT/CN2020/073127 2019-01-23 2020-01-20 数据处理方法、装置、计算机设备及存储介质 Ceased WO2020151635A1 (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2021537472A JP7090972B2 (ja) 2019-01-23 2020-01-20 データ処理方法、装置、コンピュータ機器、及びコンピュータプログラム
KR1020217005410A KR102455884B1 (ko) 2019-01-23 2020-01-20 데이터 처리 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체
EP20745941.3A EP3917115B1 (en) 2019-01-23 2020-01-20 Data processing method and apparatus, computer device, and storage medium
SG11202101120XA SG11202101120XA (en) 2019-01-23 2020-01-20 Data processing method and apparatus, computer device, and storage medium
US17/146,937 US11574290B2 (en) 2019-01-23 2021-01-12 Data processing method and apparatus, computer device, and storage medium
US18/093,313 US11935015B2 (en) 2019-01-23 2023-01-04 Data processing method and apparatus, computer device, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910063326.1A CN110264187B (zh) 2019-01-23 2019-01-23 数据处理方法、装置、计算机设备及存储介质
CN201910063326.1 2019-01-23

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/146,937 Continuation US11574290B2 (en) 2019-01-23 2021-01-12 Data processing method and apparatus, computer device, and storage medium

Publications (1)

Publication Number Publication Date
WO2020151635A1 true WO2020151635A1 (zh) 2020-07-30

Family

ID=67911755

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/073127 Ceased WO2020151635A1 (zh) 2019-01-23 2020-01-20 数据处理方法、装置、计算机设备及存储介质

Country Status (7)

Country Link
US (2) US11574290B2 (zh)
EP (1) EP3917115B1 (zh)
JP (1) JP7090972B2 (zh)
KR (1) KR102455884B1 (zh)
CN (1) CN110264187B (zh)
SG (1) SG11202101120XA (zh)
WO (1) WO2020151635A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114266578A (zh) * 2021-11-23 2022-04-01 航天信息股份有限公司 一种基于默克尔树的交易对账方法和系统
KR20220052117A (ko) * 2020-10-20 2022-04-27 주식회사 커먼컴퓨터 트리 구조의 상태 데이터베이스를 포함하는 블록체인에 대한 상태 관리 방법 및 시스템
CN117421254A (zh) * 2023-12-19 2024-01-19 杭银消费金融股份有限公司 一种用于对账业务的自动化测试方法与系统
CN120125369A (zh) * 2025-03-04 2025-06-10 平安国际融资租赁有限公司 数据对账的方法、装置、计算机设备及存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110264187B (zh) 2019-01-23 2021-06-04 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备及存储介质
CN110659907B (zh) * 2019-09-24 2021-11-12 北京海益同展信息科技有限公司 用于执行智能合约的方法和装置
CN110879687B (zh) * 2019-10-18 2021-03-16 蚂蚁区块链科技(上海)有限公司 一种基于磁盘存储的数据读取方法、装置及设备
US11483131B2 (en) * 2020-01-09 2022-10-25 Eternal Paradise Limited Ability to forget in blockchain
CN111444197B (zh) * 2020-06-12 2020-12-11 支付宝(杭州)信息技术有限公司 一种块链式账本中数据记录的验证方法、装置及设备
CN111459948B (zh) * 2020-06-15 2020-12-29 支付宝(杭州)信息技术有限公司 一种基于中心化块链式账本的交易完整性验证方法
CN113297235B (zh) * 2020-11-03 2023-12-19 阿里巴巴集团控股有限公司 分布式数据库集群的数据一致性检验方法及装置
CN113254397B (zh) * 2021-06-15 2021-10-15 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN116151813B (zh) * 2021-11-23 2026-03-31 中国人民银行数字货币研究所 一种基于数字货币的交易校验方法和装置
US11941589B2 (en) * 2022-04-01 2024-03-26 Shopify Inc. System and method for associating a successful second transaction with a first failed transaction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106686087A (zh) * 2016-12-30 2017-05-17 先锋支付有限公司 一种区块链截断方法及分布式节点
CN107728941A (zh) * 2017-09-28 2018-02-23 中国银行股份有限公司 一种区块链数据压缩方法及系统
US20180139278A1 (en) * 2016-11-14 2018-05-17 International Business Machines Corporation Decentralized immutable storage blockchain configuration
CN108270836A (zh) * 2017-01-03 2018-07-10 华为技术有限公司 基于区块链的数据处理方法、设备和系统
CN110264187A (zh) * 2019-01-23 2019-09-20 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备及存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903881A (en) * 1997-06-05 1999-05-11 Intuit, Inc. Personal online banking with integrated online statement and checkbook user interface
JP4111529B2 (ja) 2005-07-01 2008-07-02 インターナショナル・ビジネス・マシーンズ・コーポレーション トレーサビリティ署名システム、署名方法、プログラム
ES2836139T3 (es) * 2013-11-19 2021-06-24 Circle Line International Ltd Procedimientos y aparatos de minería de bloques
WO2017127564A1 (en) * 2016-01-19 2017-07-27 Priv8Pay, Inc. Network node authentication
JP6586046B2 (ja) 2016-06-13 2019-10-02 日本電信電話株式会社 処理システムおよび処理方法
US10157295B2 (en) * 2016-10-07 2018-12-18 Acronis International Gmbh System and method for file authenticity certification using blockchain network
US11139957B2 (en) * 2016-12-08 2021-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for creating a finite blockchain
US10447480B2 (en) * 2016-12-30 2019-10-15 Guardtime Sa Event verification receipt system and methods
JP6495346B2 (ja) 2017-01-10 2019-04-03 日本電信電話株式会社 情報処理システム
CN108696356B (zh) * 2017-04-05 2020-08-18 中国移动通信有限公司研究院 一种基于区块链的数字证书删除方法、装置及系统
JP6814094B2 (ja) 2017-05-22 2021-01-13 Kddi株式会社 合意形成システム、プログラム、及び生成方法
WO2018223042A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
CN107423426B (zh) * 2017-08-02 2020-06-02 众安信息技术服务有限公司 一种区块链块数据的数据归档方法及电子设备
CN107807608A (zh) 2017-11-02 2018-03-16 腾讯科技(深圳)有限公司 数据处理方法、数据处理系统及存储介质
US20210182849A1 (en) * 2017-11-06 2021-06-17 Velo Holdings Limited Limited scope blockchain system
KR101924026B1 (ko) * 2017-11-10 2018-11-30 부산대학교 산학협력단 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법
US12198149B2 (en) * 2017-12-27 2025-01-14 Emtruth, Inc. System and method for product authentication
US10261711B1 (en) * 2018-01-25 2019-04-16 Merck Sharp & Dohme Corp. Proof of non-tampering for stored data
US10630463B2 (en) * 2018-02-26 2020-04-21 Ca, Inc. Meta block chain
CN108615156A (zh) * 2018-05-09 2018-10-02 上海魅联信息技术有限公司 一种基于区块链的数据结构
US11036395B2 (en) * 2018-10-18 2021-06-15 Nec Corporation Secure and transparent pruning for blockchains

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180139278A1 (en) * 2016-11-14 2018-05-17 International Business Machines Corporation Decentralized immutable storage blockchain configuration
CN106686087A (zh) * 2016-12-30 2017-05-17 先锋支付有限公司 一种区块链截断方法及分布式节点
CN108270836A (zh) * 2017-01-03 2018-07-10 华为技术有限公司 基于区块链的数据处理方法、设备和系统
CN107728941A (zh) * 2017-09-28 2018-02-23 中国银行股份有限公司 一种区块链数据压缩方法及系统
CN110264187A (zh) * 2019-01-23 2019-09-20 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3917115A4

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220052117A (ko) * 2020-10-20 2022-04-27 주식회사 커먼컴퓨터 트리 구조의 상태 데이터베이스를 포함하는 블록체인에 대한 상태 관리 방법 및 시스템
KR102473672B1 (ko) * 2020-10-20 2022-12-02 주식회사 커먼컴퓨터 트리 구조의 상태 데이터베이스를 포함하는 블록체인에 대한 상태 관리 방법 및 시스템
CN114266578A (zh) * 2021-11-23 2022-04-01 航天信息股份有限公司 一种基于默克尔树的交易对账方法和系统
CN117421254A (zh) * 2023-12-19 2024-01-19 杭银消费金融股份有限公司 一种用于对账业务的自动化测试方法与系统
CN117421254B (zh) * 2023-12-19 2024-03-22 杭银消费金融股份有限公司 一种用于对账业务的自动化测试方法与系统
CN120125369A (zh) * 2025-03-04 2025-06-10 平安国际融资租赁有限公司 数据对账的方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
US11574290B2 (en) 2023-02-07
JP7090972B2 (ja) 2022-06-27
US20230144811A1 (en) 2023-05-11
SG11202101120XA (en) 2021-03-30
KR20210034072A (ko) 2021-03-29
CN110264187A (zh) 2019-09-20
CN110264187B (zh) 2021-06-04
US11935015B2 (en) 2024-03-19
EP3917115A4 (en) 2022-02-16
JP2021536085A (ja) 2021-12-23
EP3917115B1 (en) 2024-07-24
EP3917115A1 (en) 2021-12-01
US20210133702A1 (en) 2021-05-06
KR102455884B1 (ko) 2022-10-19

Similar Documents

Publication Publication Date Title
WO2020151635A1 (zh) 数据处理方法、装置、计算机设备及存储介质
CN108319602A (zh) 数据库管理方法及数据库系统
CN115599295B (zh) 一种存储系统的节点扩容方法和装置
CN114461659B (zh) 查杀方法、装置、计算机设备和存储介质
CN113326165A (zh) 基于区块链的数据处理方法、设备及计算机可读存储介质
CN109783274B (zh) 一种磁盘快照的管理方法、装置以及可读存储介质
CN104899249A (zh) 一种海量数据下可靠索引更新系统及方法
CN118349578A (zh) 数据查询方法、装置、电子设备及存储介质
US11604805B2 (en) Terminal, storage medium, and database synchronization method thereof
WO2018059239A1 (zh) 一种文件存储方法及装置
CN115730933B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN118779285A (zh) 档案电子文件处理方法、装置、设备、存储介质和程序产品
CN119376638A (zh) 键值存储系统的数据处理方法和键值存储系统
CN111966635A (zh) 一种分布式存储文件系统提升文件探知速度的方法、装置
CN119149530A (zh) 一种检索结果数据组织方法、装置、设备及介质
CN115543196A (zh) 一种监控废旧塑料重复利用信息的云数据管理方法及系统
HK40009423B (zh) 数据处理方法、装置、计算机设备及存储介质
HK40009423A (zh) 数据处理方法、装置、计算机设备及存储介质
CN108989245B (zh) 用户数据存储方法及装置
CN117130994B (zh) 数据库日志处理的方法、装置、电子设备及介质
CN112487065A (zh) 一种数据检索方法和装置
CN119415045B (zh) 垃圾数据回收方法、装置、电子设备及存储介质
CN118585526A (zh) 基于区块链的追溯数据的处理方法、装置、介质及设备
US20180225318A1 (en) Data storing method using multi-version based data structure
CN116909480A (zh) 一种优化列举用户量的方法、系统、设备和存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20745941

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20217005410

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2021537472

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020745941

Country of ref document: EP

Effective date: 20210823