WO2020063786A1 - 数据备份方法、存储介质及计算设备 - Google Patents

数据备份方法、存储介质及计算设备 Download PDF

Info

Publication number
WO2020063786A1
WO2020063786A1 PCT/CN2019/108295 CN2019108295W WO2020063786A1 WO 2020063786 A1 WO2020063786 A1 WO 2020063786A1 CN 2019108295 W CN2019108295 W CN 2019108295W WO 2020063786 A1 WO2020063786 A1 WO 2020063786A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
blockchain
transaction
information
storage
Prior art date
Application number
PCT/CN2019/108295
Other languages
English (en)
French (fr)
Inventor
郭锐
李茂材
王宗友
屠海涛
孔利
周开班
杨常青
王楠
丁勇
时一防
Original Assignee
腾讯科技(深圳)有限公司
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 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Priority to KR1020207033321A priority Critical patent/KR102392944B1/ko
Priority to JP2020561794A priority patent/JP7001843B2/ja
Priority to SG11202011132PA priority patent/SG11202011132PA/en
Priority to EP19867203.2A priority patent/EP3779732A4/en
Publication of WO2020063786A1 publication Critical patent/WO2020063786A1/zh
Priority to US17/065,883 priority patent/US11494270B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06Q2220/00Business processing using cryptography
    • 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

  • the present application relates to the field of computer technology, and in particular, to a data backup method, a storage medium, and a computing device.
  • BT Blockchain Technology
  • distributed ledger technology It is an Internet database technology, which is characterized by decentralization, openness and transparency, so that everyone can participate in database records.
  • Blockchain technology was originally a basic technology for realizing Bitcoin transactions, and it is now beginning to be used in various fields such as finance. Since each node device in the blockchain will store all the data on the entire blockchain, it will take up a lot of storage space and affect the performance of the blockchain system.
  • the embodiments of the present application propose the following technical solutions to save the storage space of the blockchain nodes and improve the performance of the blockchain system.
  • the example of this application proposes a data backup method, including:
  • query unused transaction output information from the first block in the first block chain When the first condition is met, query unused transaction output information from the first block in the first block chain, and the first block includes all blocks in the first block chain; Generate transaction information according to the unused transaction output information obtained by the query, where the transaction information is used to describe a transaction operation that does not change the account address to which the unused transaction output information belongs; record the generated transaction information And publishing the second block in the second block, recording the second block that has been agreed upon on the second block chain; and backing up the first block chain to a storage system connected to itself , Delete the first blockchain.
  • the first condition includes: reaching a set time interval.
  • the first condition includes: a block height of the first blockchain meets a preset value.
  • the first condition includes: the remaining storage space is below a first threshold.
  • the first condition includes: receiving a set operation instruction.
  • the block height of the second block is continuous with the block height of the last block in the first block chain.
  • a block header feature value of a parent block included in the second block is a block header feature value of a last block in the first block chain.
  • the method further includes: when backing up the first blockchain to a storage system connected to the first blockchain, recording in a data backup table the identification information of each block in the first blockchain and its A storage address in the storage system; after deleting the first blockchain, when any block in the first blockchain is to be accessed, the query is obtained from the data backup table A storage address corresponding to the identification information of the block, and the block in the storage system is accessed according to the storage address.
  • the method further includes: after deleting the first blockchain, when accessing transaction information of any block in the first blockchain, querying from the data backup table The storage address corresponding to the identification information of the block, accesses the block in the storage system according to the storage address, and obtains the content of the transaction information from the block according to the identification information of the transaction information.
  • the example of the present application also proposes a data backup device, including: a query module, when the first condition is satisfied, querying the unused transaction output information from the first block in the first blockchain, the first The block includes all the blocks in the first blockchain; the transaction information module generates transaction information according to the unused transaction output information obtained by the query, and the transaction information is used to describe that the unused transaction information is not changed.
  • the transaction operation of the account address to which the used transaction output information belongs a block publishing module records the generated transaction information in a second block and publishes the second block, and the consensus second block Recorded on the second blockchain; and a backup module that backs up the first blockchain to a storage system connected to it, and deletes the first blockchain.
  • the backup module when the backup module backs up the first blockchain to its connected storage system, the backup module records the identification information of each block in the first blockchain and its location in the data backup table.
  • the storage address in the storage system; the device further includes: a data access module, after deleting the first blockchain, when accessing any block in the first blockchain, A storage address corresponding to the identification information of the block is obtained by querying the data backup table, and the block in the storage system is accessed according to the storage address.
  • the data access module queries the data backup table when the transaction information of any block in the first blockchain is to be accessed after the first blockchain is deleted. Obtain the storage address corresponding to the identification information of the block, access the block in the storage system according to the storage address, and query the content of the transaction information from the block according to the identification information of the transaction information .
  • the example of the present application also proposes a storage medium that stores machine-readable instructions.
  • the machine-readable instructions are executed by one or more processors, the one or more processors are loaded and executed to implement the following. step:
  • query unused transaction output information from the first block of the first blockchain, the first block including all the blocks in the first blockchain;
  • the example of the present application also proposes a computing device including one or more memories and one or more processors.
  • the memories store machine-readable instructions, and the machine-readable instructions are provided by the one or more processors. Load and execute to achieve the following steps:
  • query unused transaction output information from the first block of the first blockchain, the first block including all the blocks in the first blockchain;
  • FIG. 1 is a system architecture diagram involved in an example of the present application
  • Figure 2 is a block data structure diagram
  • FIG. 3 is a partial schematic diagram of a blockchain in an example of the present application.
  • FIG. 5 is an example diagram of transaction information generated in an example of this application.
  • FIG. 6 is a schematic diagram of creating a block in an example of the present application.
  • FIG. 7 is a schematic diagram of transaction information of a block record in the example of the present application.
  • FIG. 8 is a schematic structural diagram of a device in an example of the present application.
  • FIG. 9 is a schematic structural diagram of a computing device in an example of the present application.
  • the system 100 includes at least an application layer 101, a network layer 103, and a data layer 104, and may further include an extension layer 102 and the like.
  • the application layer 101 provides application clients 11 and 12 (such as a wallet client for digital asset transactions) and a trading platform 13 to a user.
  • the application clients 11 and 12 run on a terminal device, and the terminal device may include a PC, a mobile phone, a tablet computer, a palmtop computer, a superbook, a wearable device, and the like.
  • the trading platform 13 Users can log in to the trading platform 13 by operating the user interface (UI) provided by the application clients 11 and 12 to complete various trading operations, such as: digital asset transactions, checking of shared ledgers, etc .; the trading platform 13 may include a server or A server cluster can also include distributed systems.
  • the extension layer 102 provides some extended application business functions, including side-chain applications such as smart contracts, and can also include storage and sharing functions of user data files such as documents, pictures, and videos. By operating the UI provided by the application clients 11 and 12, users can implement functions such as smart contract signing, data file storage, and sharing through the extension layer 102.
  • the network layer 103 includes a plurality of blockchain nodes 14 distributed in various regions. These nodes 14 constitute a blockchain network.
  • Each node 14 may be a computing device with a point-to-point communication function, such as a desktop computer, a notebook computer, and a tablet. Computers, etc.
  • These blockchain nodes 14 constitute a peer-to-peer (P2P) network, and each node 14 stores a complete data of the blockchain 15.
  • the network layer 103 is used to implement communication between the nodes 14 and encapsulates a P2P networking mechanism, a data transmission mechanism, a verification mechanism, and the like between the nodes 14.
  • the blockchain network is essentially a P2P network.
  • Each node 14 receives and generates information.
  • Nodes 14 maintain a common blockchain to maintain communication. In a blockchain network, each node 14 can create a new block.
  • the data layer 104 encapsulates the data structure of the blockchain 15. As shown in FIG. 1, a block chain 15 is formed by linking multiple blocks (block 0 to block n). The first created block 0 is the "genesis block", and then the blocks with the same data structure created under certain rules are connected in sequence through a chain structure to form a main chain. As the running time is getting longer and longer, new blocks are continuously added to the main chain after verification, and the main chain will continue to extend.
  • FIG. 1 shows a part of the blockchain system 100.
  • the consensus layer encapsulates a consensus mechanism so that highly decentralized nodes 14 can efficiently reach a consensus on the validity of block data in a decentralized system, that is, how to reach consensus among all nodes 14 to identify a
  • the validity of the transaction record set is both a means of identification and a means of preventing tampering.
  • the more commonly used consensus mechanisms are: Proof of Work, Proof of Stake, Delegated Proof of Stake.
  • a block can contain a set of transaction records that occurred over a period of time, and the transaction record set is not recorded by the previous block. Each block records the events that occurred before it was created. The created blocks are linked in turn. Usually new blocks are added to the tail of the blockchain and linked to the previous block.
  • Transaction represents a user's operation in the trading system. Whenever a change in ledger status is caused, a record is added to the ledger; a block records transactions and status results that occur over a period of time.
  • a consensus on the current ledger status; a chain is a series of blocks created in chronological order and is a log record of changes in the status of the entire ledger.
  • a block is a data structure that records transactions. Each block consists of a block header and a block body. The block body is responsible for recording transaction information from a previous period of time. The block header records information used to link the parent block, mining competition, and transaction data verification.
  • Figure 2 shows the data structure of block 200A. As shown in FIG. 2, the block 200A includes a block header 21 and a block body 22.
  • Block 22 records the number of transactions and information about multiple transactions that occurred within a period of time, such as transaction information for transaction 1, transaction 2, ..., and transaction m.
  • Block header 21 records the following pieces of information:
  • the parent block hash value is the block header hash value of the parent block of block 200A. Through this value, each block can be connected end to end to form a blockchain, and this value plays a role in the security of the blockchain. critical use;
  • Merkle root This value is a value calculated from the hash value of all transaction information in block 22 and then hashed step by step. It is mainly used to verify whether a transaction exists in this block.
  • Timestamp record the time when the block 200A was created, which can be accurate to seconds
  • the difficulty value is the difficulty target value of the 200A related math problem in this block.
  • Random number which records the value of the answer to the 200A related math problem in the block.
  • the data of the block header of the block 200A that was recently added to the blockchain is generated by the SHA256 algorithm to fill a hash value into the parent block hash value of the current block;
  • the difficulty value field will be adjusted according to the average generation time of the block in the previous period to respond to the changing overall calculation amount of the entire network. If the calculation amount increases, the system will increase the difficulty value of the math problem, making it expected The time to complete the next block is still within a certain time.
  • the block header hash value can uniquely identify a block, and any node 14 can independently obtain the block header hash value by hashing the block header.
  • the block header hash value is not actually included in the data structure of the block.
  • the block header hash value is calculated by the node 14 when the block is received by the node 14 from the blockchain network.
  • Block header hash values may be stored in a separate database table as part of the block metadata to facilitate indexing and faster retrieval of blocks from disk.
  • the block also has a block height in the blockchain, which can be used to identify the position of the block in the blockchain.
  • the block height of the first block (the genesis block) is 0, the height of the block that references the genesis block is 1, and so on, each block that is subsequently stored in the blockchain Both are "higher" than the previous block by one position, and the block height value is equal to the block height value of the previous block plus one.
  • the block height is not the only identifier of the block. Two or more blocks may have the same block height and compete for the same position in the blockchain.
  • the block height is not part of the block data structure, it is not stored in the block.
  • Block height can also be stored as metadata in an index database table for quick retrieval.
  • FIG. 3 shows a partial schematic diagram of a blockchain in an example of the present application.
  • Figure 3 shows three blocks 23, 24, and 25 included in the local block chain 200B.
  • the block height and block header hash value of each block are not recorded inside the block, but determine the area Link relationship between blocks.
  • the block metadata table in the local database of node 14 can store the block height and block header hash value of each block.
  • FIG. 4 shows a method flowchart of an example of the present application. As shown in FIG. 4, the method 300 starts at step S301.
  • step S301 when the set first condition is met, the node 14 obtains unused transaction output information from the first block in the first blockchain.
  • the first block includes all the blocks in the first block chain, that is, the unused transaction output information is obtained from each block in the first block chain, and further, Get all unused transaction output information.
  • the above-mentioned first condition is equivalent to a starting condition of a data backup process provided in the embodiment of the present application.
  • the first condition may include: a set time interval is reached, the block height of the first blockchain meets a preset value, the remaining storage space is lower than a threshold, or a set operation instruction is received, etc. At least one of them.
  • the node 14 may start a data backup process at a certain time interval (such as: one day, one month, etc.), or at multiple set time points (such as : One month, three months, six months, etc. from the founding time of the first blockchain.
  • a certain time interval such as: one day, one month, etc.
  • multiple set time points such as : One month, three months, six months, etc. from the founding time of the first blockchain.
  • the application does not limit the specific setting method of the time interval.
  • the node 14 may start a data backup process when the block height of the first blockchain meets the preset value.
  • the application does not limit the specific setting method of the preset value.
  • the node 14 may start a data backup process when the remaining storage space is small.
  • the node 14 can start a data backup process in response to an externally input operation instruction. For example, when a user needs to do some data cleaning or backup, the node 14 can input an operation instruction to The node 14 is caused to start a data backup process.
  • node 14 will maintain account data locally as the number of blocks in the first blockchain increases.
  • This account data records unused transaction output information in the various transaction information currently recorded in each block.
  • the unspent transaction output (UTXO, Unspent transaction Output) table in Bitcoin transactions Each UTXO has a face value and an owner address (essentially defined by the address of a cryptographic public key).
  • a transaction consists of one or more inputs and one or more outputs. Each input contains a reference to an existing UTXO and a cryptographic signature created by a private key corresponding to the owner's address. Each output contains a new UTXO.
  • the node 14 may query the unused transaction output information recorded in each block according to the account data maintained locally.
  • each unused transaction output information in the account data includes: transaction number, block height, and block header hash value. Therefore, according to these information, each unused item can be queried from the block.
  • Transaction output information, an unused transaction output information can contain fields: the amount of unused assets, the owner's address, etc.
  • step S302 the node 14 generates one or more pieces of transaction information according to the query of the unused transaction output information.
  • the generated transaction information is used to describe a transaction operation that does not change the account address to which the unused transaction output information belongs. It can be said that it is a transaction operation (also known as transaction rolling operation or change operation) that transfers money to itself.
  • one piece of transaction information includes at least one piece of transaction input information and at least one piece of transaction output information.
  • the at least one piece of transaction input information respectively refers to at least one piece of unused transaction output information that is queried, and each piece of transaction input information corresponds to the transaction output information. It includes the unused transaction output information referenced by the query above to refer to the transaction operation of transferring funds to itself.
  • the node 14 may generate one transaction information according to a plurality of unused transaction output information, and may also generate more than one transaction information according to implementation needs. For example: if five pieces of unused transaction information are queried, a piece of transaction information can be generated, which contains five transaction operation records (five sets of transaction input information and transaction output information). These five transaction operation records respectively describe the five unused transaction information The transaction scroll operation of the used transaction information. Other quantities of transaction information can also be generated. Each transaction information contains one or several transaction operation records. These transaction information contains a total of five transaction operation records, which can describe the transaction rolling operations for the five unused transaction information.
  • the unused transaction output information that is queried includes UTXO1 to UTXO5, and three pieces of transaction information TX1 to TX3 can be generated.
  • TX1 includes two transaction input information Input11 and Input12 that respectively reference UTXO1 and UTXO2.
  • Input11 and Input12 correspond to transaction output information Output11 and Output12
  • Output11 includes UTXO1
  • Output12 includes UTXO2
  • TX2 includes transaction input information Input21 that references UTXO3
  • Input21 corresponds to transaction output information Output21.
  • Output21 includes UTXO3.
  • Output21 and UTXO3 are the same in number and address.
  • TX3 includes two transaction input information Input31 and Input32, which respectively reference UTXO4 and UTXO5.
  • Input31 and Input32 correspond to transaction output information Output31 and Output32, respectively.
  • Output31 is the same as UTXO4
  • Output32 is the same as UTXO5. In this way, the amount of unused assets represented by UTXO1 to UTXO5 is transferred to the owner himself, that is, this transaction operation will not change the ownership of the asset and will not bring substantial changes to the account data.
  • the node 14 when the node 14 generates one or more pieces of transaction information based on the queryed unused transaction output information, for each piece of transaction information, the node 14 may output the unused transaction output information included in the transaction information. Assign the value of the number of scrolling times.
  • the number of scrolling times refers to the number of times that the above-mentioned transaction scrolling operation is performed on any unused transaction output information.
  • the node 14 sets the number of scrolls of each unused transaction output information in each transaction information to the original value plus 1
  • the obtained value, and if any unused transaction output information is spent, the scroll number of the spent transaction output information is set to 0, thereby maintaining the scroll number of each unused transaction output information , which can vividly reflect the "activity" of each unused transaction output information.
  • step S303 the node 14 records one or more pieces of transaction information generated in step S302 in a new block (that is, a second block) and issues a new block.
  • the new block will be recorded on the second blockchain after consensus.
  • the specific consensus processing mechanism is not detailed in this article.
  • the node 14 backs up the first blockchain in which the one or more blocks (that is, the first block) queried in step S301 is stored in a storage system (such as a hard disk, a disk, a centralized or distributed disk) connected to the node Database system, etc.).
  • a storage system such as a hard disk, a disk, a centralized or distributed disk
  • step S303 after performing a rolling transaction operation on the unused transaction output information in the first block, the node 14 will delete the previous first block chain and then maintain a new block chain (second zone Block chain), and there is a certain correlation between the two blockchains.
  • the block height of the second block and the block height of the last block in the first block chain may be continuous.
  • the first blockchain has ten blocks (the block heights are 1 to 10). After querying these ten blocks for unused transaction output information and performing rolling transaction operations, the height can be generated. Is a new block of 11 (ie, the second block), then the height of the initial block of the second blockchain is 11, which is continuous with the block height of the last block in the first blockchain.
  • the block header feature value of the parent block included in the second block is the block header feature value of the last block in the first block chain.
  • the first blockchain has ten blocks. After querying the unused transaction output information from these ten blocks and performing a rolling transaction operation, a new block (ie, the second block) can be generated, then The parent block of the second block is the last block in the first blockchain, and the block header feature value (such as the block header hash value) of the parent block recorded in the block header of the second block is the first The block header feature value of the last block in the blockchain.
  • the node 14 when the node 14 backs up the first blockchain to the storage system, it records the identification information (block height, block header) of each block in the backed up first blockchain in a local backup data table. Hash value, etc.) and the storage address of each block in the backed up first blockchain in the above storage system. In this way, when the node 14 needs to access any block in the backed up first blockchain, the target block can be queried from the storage system through the information in the backup data table, and the target block can also be restored to the node 14. in.
  • the node 14 may query the data backup table to obtain the identification information corresponding to the block. Access the block in the storage system according to the storage address, and query from the block according to the identification information of the transaction information (transaction number, block height, block header hash value, etc.) Get the content of the transaction information (asset balance, account address, etc.).
  • the node 14 backs up each block in the first blockchain, and these blocks are backed up to the hard disk, server, or server cluster connected to the node 14, and the transaction information contained in these backed up blocks Rarely used, these blocks are rarely accessed, the access frequency is very low, can be called cold data, it can also be said that node 14 "cold standby" these blocks.
  • FIG. 6 shows a block diagram in an example of the present application.
  • node 14 queries blocks 1 and 2 in the old blockchain to obtain unused transaction output information TX14 and TX25, and performs transaction rolling operations on TX14 and TX25 to generate a transaction information TXN1.
  • the TXN1 contains two transaction records, which contain the transaction output information in TX14 and TX25, respectively.
  • node 14 will create a new blockchain, include TXN1 in the new block N in the new blockchain, cold standby the old blockchain to the storage system, and node 14 delete the old area containing blocks 1 and 2. Block chain.
  • FIG. 7 shows several examples of transaction information recorded in the block.
  • the transaction output 41 records that the account balance of the account “A” is 12.5, and in the transaction information with the transaction number “# 2001”, the transaction output 42 records the account The account balance of "A” is 10, the account balance of account “B” is 2.5, and the transaction information of transaction number "# 3001”, the transaction output 43 records that the account balance of account “A” is 7.5 and 2.5, and the account " The account balance of "D” is 2.5 and the transaction information of transaction number "# 4001", the transaction output 44 records that the account balance of account “C” is 2.5.
  • the transaction output information in transaction output 41 and 42 is used up, the transaction output information (1) and (3) in transaction output 43 are not used, and the transaction output information (1) in transaction output 44 are not used
  • the item transaction output information 441 is not used, then according to the transaction output information 431 and 433 and 441, the transaction information with the transaction number "# 5001" can be generated, and the transaction output 45 includes these three unused transaction output information 431 and 433 and 441.
  • the node 14 performs a transaction rolling operation on unused transaction output information in all blocks, so that it can generate new transaction information without changing the ownership of assets in the unused transaction output information.
  • all transaction output information in these blocks can be used, which is a useless block (that is, a block that does not need to be accessed in future transaction operations), so node 14 can back up these blocks and save the local
  • the deletion of the stored first blockchain saves the storage space of node 14, ensures the accuracy of the data, does not affect the execution of transaction operations, and does not affect the normal operation of the blockchain.
  • the technical implementation is not complicated and can significantly improve System performance.
  • the node 14 can meet the second condition (for example, the remaining storage space is lower than the target threshold) (H) further combine the transaction information in the generated second blockchain that has not been used for a long time in a new third block to generate a new third block, thereby generating a new third block Blockchain and back up this new third blockchain. Node 14 then deletes the block chain where the block is located from, which is the second blockchain, and backs up the second block accordingly.
  • the second condition for example, the remaining storage space is lower than the target threshold
  • the local backup data table When the node 14 backs up such a second block, the local backup data table records the identification information (block height, block header hash value, etc.) of the second block and the second block in the above storage system. Storage address in. In this way, when the node 14 needs to access the backed up second block, the target block can be queried from the storage system through the information in the backup data table, and the target block can be restored to the node 14.
  • the identification information of the block in which it is located can be queried from the account data, so that the storage address can be queried from the backup data table, so that the storage can be accessed
  • the unused transaction output information in the system can also be restored to the local storage of node 14 by the second blockchain to which the unused transaction output information belongs.
  • you can query the identification information of the block where it is located from the account data so you can query the storage address from the backup data table, so you can access the storage system Specific details in the unused transaction output information, such as account address, asset balance, etc., to generate new transaction information based on the queried information, and use the unused transaction output information.
  • the node 14 may perform an unscheduled number of scrolls in the second blockchain that is greater than the target Used transaction output information (that is, unused unused transaction output information), perform the above steps of merging into the third block, issue the third block, and agree on the third block based on the consensus mechanism
  • the third block is added to the third blockchain. In the above process, it is equivalent to outputting information about these unused unused transactions and performing another transaction rolling operation.
  • the target number of times may be any value greater than 0.
  • the target number of times may be three.
  • the transaction output information in the third block is still unused, that is, for the entire blockchain system, there is still a possibility of calling the transaction output information in the third block, but Since the number of times of scrolling has exceeded the target number of times, the possibility of invoking the transaction output information in the third block in the subsequent process is very low. Then backup the third block and delete the third block. While ensuring that the blockchain business is not affected, the storage space of node 14 is further saved.
  • the node 14 can obtain the query from the data backup table.
  • the storage address corresponding to the identification information of the block accesses the block in the storage system according to the storage address, and obtains the content of the transaction information from the block according to the identification information of the transaction information (such as Asset balance, account address, etc.).
  • the adoption of the above technical solution can save the storage space of blockchain nodes, significantly improve the utilization of storage resources, and can roll out unused transaction output information from existing blocks without changing assets. Ownership, so that each block composed of used transaction output information can be cold prepared, and the blockchain where this block is located is deleted from the blockchain node, so that the limited storage space can be fully used for preservation For the current blockchain operation, more valuable unused transaction output information improves the performance of the blockchain system.
  • the above technical solution is also very easy to apply to blockchain nodes and has strong implementability.
  • the example of the application also proposes a data backup device, which can be applied to the blockchain node 14.
  • the data backup device 500 includes:
  • the query module 501 obtains unused transaction output information from the first block in the first block chain when the first condition is satisfied, and the first block includes the first block in the first block chain. All blocks.
  • the transaction information module 502 generates transaction information according to the unused transaction output information obtained by the query, and the transaction information is used to describe a transaction operation that does not change an account address to which the unused transaction output information belongs.
  • the block publishing module 503 records the generated transaction information in a second block and publishes the second block, and records the second block that has passed the consensus on a second blockchain.
  • the backup module 504 backs up the first blockchain to a storage system connected to the first blockchain and deletes the first blockchain.
  • the backup module 504 when backing up the first blockchain to a storage system connected to the first blockchain, records in a data backup table the identification information of each block in the first blockchain and its identification in the data backup table.
  • the device 500 further includes a data access module 505. After deleting the first blockchain, when any block in the first blockchain is to be accessed, the area is obtained by querying from the data backup table. The storage address corresponding to the identification information of the block is accessed according to the storage address in the storage system.
  • the data access module 505 after deleting the first blockchain, queries the data backup table when it wants to access transaction information of any block in the first blockchain. Obtain the storage address corresponding to the identification information of the block, access the block in the storage system according to the storage address, and query the content of the transaction information from the block according to the identification information of the transaction information .
  • the above-mentioned data backup device 500 may be run in various computing devices and loaded in a memory of the computing device.
  • the computing device may include one or more memories and one or more processors.
  • the memories store machine-readable instructions.
  • the machine-readable instructions are loaded and executed by the one or more processors to implement the following steps. :
  • query unused transaction output information from the first block of the first blockchain, the first block including all the blocks in the first blockchain;
  • the first condition includes: a block height of the first blockchain conforms to a preset value.
  • the first condition includes: the remaining storage space is lower than a first threshold; or, a set time interval is reached; or a set operation instruction is received.
  • the block height of the second block is continuous with the block height of the last block in the first block chain.
  • the block header feature value of the parent block included in the second block is the block header feature value of the last block in the first block chain.
  • the one or more processors are configured to perform the following steps:
  • the data backup table records the identification information of each block in the first blockchain and the storage address of each block in the storage system.
  • the one or more processors are configured to perform the following steps:
  • the storage address corresponding to the identification information of the block is queried from the data backup table, and is accessed according to the storage address The block in the storage system; or,
  • FIG. 9 is a structural diagram of a computing device in which the data backup device 500 is located.
  • the computing device includes one or more processors (CPU) 602, a communication module 604, a memory 606, a user interface 610, and a communication bus 608 for interconnecting these components.
  • processors CPU
  • communication module 604
  • memory 606
  • user interface 610 a user interface 610
  • communication bus 608 for interconnecting these components.
  • the processor 602 may receive and send data through the communication module 604 to implement network communication and / or local communication.
  • the user interface 610 includes one or more output devices 612 including one or more speakers and / or one or more visual displays.
  • the user interface 610 also includes one or more input devices 614 including, for example, a keyboard, a mouse, a voice command input unit or microphone, a touch screen display, a touch-sensitive tablet, a gesture capture camera or other input buttons or controls, and the like.
  • the memory 606 may be a high-speed random access memory such as DRAM, SRAM, DDR RAM, or other random access solid-state storage devices; or a non-volatile memory such as one or more disk storage devices, optical disk storage devices, flash memory devices, Or other non-volatile solid-state storage devices.
  • a high-speed random access memory such as DRAM, SRAM, DDR RAM, or other random access solid-state storage devices
  • non-volatile memory such as one or more disk storage devices, optical disk storage devices, flash memory devices, Or other non-volatile solid-state storage devices.
  • the memory 606 stores an instruction set executable by the processor 602, including:
  • Operating system 616 including programs for handling various basic system services and for performing hardware-related tasks
  • the application 618 includes various application programs that can implement the processing flow in each of the foregoing examples, and for example, may include the apparatus 500 shown in FIG. 8.
  • the device 500 may include some or all of the modules 501-505 shown in FIG. 8, and each module 501-505 may store machine executable instructions.
  • the processor 602 can implement the functions of the foregoing modules 501 to 505 by executing machine-executable instructions in the modules 501 to 505 in the memory 606.
  • the hardware modules in the embodiments may be implemented in a hardware manner or a hardware platform plus software manner.
  • the software includes machine-readable instructions and is stored in a non-volatile storage medium. Therefore, the embodiments can also be embodied as software products.
  • the hardware may be implemented by specialized hardware or hardware that executes machine-readable instructions.
  • the hardware may be a specially designed permanent circuit or logic device (such as a special-purpose processor such as an FPGA or ASIC) to perform a specific operation.
  • the hardware may also include programmable logic devices or circuits temporarily configured by software (such as including general-purpose processors or other programmable processors) for performing specific operations.
  • each example of the present application can be realized by a data processing program executed by a data processing device such as a computer.
  • the data processing program constitutes the present application.
  • a data processing program usually stored in a storage medium is executed by directly reading the program out of the storage medium or by installing or copying the program to a storage device (such as a hard disk and or a memory) of the data processing device. Therefore, such a storage medium also constitutes the present application.
  • the present application also provides a non-volatile storage medium in which a data processing program is stored. This data processing program can be used to execute any one of the above-mentioned method examples in this application. Kind of examples.
  • the storage medium may store machine-readable instructions.
  • the machine-readable instructions are executed by one or more processors, the one or more processors are loaded and executed to implement the following steps:
  • query unused transaction output information from the first block of the first blockchain, the first block including all the blocks in the first blockchain;
  • the first condition includes: the block height of the first blockchain meets a preset value; or, the remaining storage space is lower than a first threshold; or, a set time interval is reached; or, a set is received Operation instructions.
  • the block height of the second block is continuous with the block height of the last block in the first block chain.
  • the block header feature value of the parent block included in the second block is the block header feature value of the last block in the first block chain.
  • the one or more processors are configured to perform the following steps:
  • the data backup table records the identification information of each block in the first blockchain and the storage address of each block in the storage system.
  • the one or more processors are configured to perform the following steps:
  • the storage address corresponding to the identification information of the block is queried from the data backup table, and is accessed according to the storage address The block in the storage system; or,
  • the machine-readable instructions corresponding to the modules in FIG. 8 may cause an operating system or the like operating on a computer to complete some or all of the operations described herein.
  • the non-volatile computer-readable storage medium may be a memory provided in an expansion board inserted into the computer or written in a memory provided in an expansion unit connected to the computer.
  • the CPU, etc. installed on the expansion board or expansion unit can perform part and all of the actual operations according to the instructions.
  • Non-volatile computer-readable storage media include floppy disks, hard disks, magneto-optical disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD + RW), magnetic tape , Non-volatile memory cards and ROM.
  • the program code may be downloaded from a server computer by a communication network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据备份方法,包括:在第一条件满足时,从第一区块链中的第一区块中查询得到未被使用的交易输出信息,所述第一区块包括所述第一区块链中的所有区块;根据查询得到的所述未被使用的交易输出信息生成交易信息,所述交易信息用于描述不改变所述未被使用的交易输出信息所属账户地址的交易操作;将生成的所述交易信息记录在第二区块中并发布所述第二区块,将经过共识的所述第二区块记录在第二区块链上;及将所述第一区块链备份到自身连接的存储系统中,删除所述第一区块链。还提出了相应的存储介质和计算设备。

Description

数据备份方法、存储介质及计算设备
本申请要求于2018年9月30日提交的申请号为201811160527.5、发明名称为“数据备份方法、装置、存储介质及计算设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别涉及数据备份方法、存储介质及计算设备。
背景技术
所谓区块链技术,简称BT(Blockchain Technology),也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。区块链技术最初是实现比特币交易的基础技术,目前开始应用于金融等各领域。由于区块链中的每一个节点设备都会存储整个区块链上的全部数据,导致会占用大量存储空间,影响了区块链系统的性能。
发明内容
本申请实施例提出了以下技术方案,以节省区块链节点的存储空间,改善区块链系统性能。
本申请实例提出了一种数据备份方法,包括:
在第一条件满足时,从第一区块链中的第一区块中查询得到未被使用的交易输出信息,所述第一区块包括所述第一区块链中的所有区块;根据查询得到的所述未被使用的交易输出信息生成交易信息,所述交易信息用于描述不改变所述未被使用的交易输出信息所属账户地址的交易操作;将生成的所述交易信息记录在第二区块中并发布所述第二区块,将经过共识的所述第二区块记录在第二区块链上;及将所述第一区块链备份到自身连接的存储系统中,删除所述第一区块链。
在一些实例中,所述第一条件包括:达到设定时间间隔。
在一些实例中,所述第一条件包括:所述第一区块链的区块高度符合预设 值。
在一些实例中,所述第一条件包括:剩余存储空间低于第一阈值。
在一些实例中,所述第一条件包括:收到设定的操作指令。
在一些实例中,所述第二区块的区块高度与所述第一区块链中最后一个区块的区块高度是连续的。
在一些实例中,所述第二区块包含的父区块的区块头特征值为所述第一区块链中最后一个区块的区块头特征值。
在一些实例中,上述方法进一步包括:当将所述第一区块链备份到自身连接的存储系统时,在数据备份表中记录所述第一区块链中各个区块的标识信息及其在所述存储系统中的存储地址;在删除所述第一区块链之后,当要访问所述第一区块链中的任一区块时,从所述数据备份表中查询得到所述该区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的该区块。
在一些实例中,上述方法进一步包括:在删除所述第一区块链之后,当要访问所述第一区块链中任一区块的交易信息时,从所述数据备份表中查询得到该区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的该区块,并根据所述交易信息的标识信息从该区块中查询得到所述交易信息的内容。
本申请实例还提出一种数据备份装置,包括:查询模块,在第一条件满足时,从第一区块链中的第一区块中查询得到未被使用的交易输出信息,所述第一区块包括所述第一区块链中的所有区块;交易信息模块,根据查询得到的所述未被使用的交易输出信息生成交易信息,所述交易信息用于描述不改变所述未被使用的交易输出信息所属账户地址的交易操作;区块发布模块,将生成的所述交易信息记录在第二区块中并发布所述第二区块,将经过共识的所述第二区块记录在第二区块链上;及备份模块,将所述第一区块链备份到自身连接的存储系统中,删除所述第一区块链。
在一些实例中,所述备份模块当将所述第一区块链备份到自身连接的存储系统时,在数据备份表中记录所述第一区块链中各区块的标识信息及其在所述存储系统中的存储地址;所述装置进一步包括:数据访问模块,在将所述第一区块链删除之后,当要访问所述第一区块链中任一区块时,从所述数据备份表中查询得到该区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的该区块。
在一些实例中,所述数据访问模块,在删除所述第一区块链之后,当要访问所述第一区块链中任一区块的交易信息时,从所述数据备份表中查询得到该区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的该区块,并根据所述交易信息的标识信息从该区块中查询得到所述交易信息的内容。
本申请实例还提出了一种存储介质,存储有机器可读指令,所述机器可读指令被一个或多个处理器执行时,使得所述一个或多个处理器加载并执行以实现下述步骤:
在第一条件满足时,从第一区块链的第一区块中查询未被使用的交易输出信息,所述第一区块包括所述第一区块链中的所有区块;
根据查询得到的所述未被使用的交易输出信息生成交易信息,所述交易信息用于描述不改变所述未被使用的交易输出信息所属账户地址的交易操作;
将所述交易信息记录在第二区块中并发布所述第二区块,将经过共识的所述第二区块记录在第二区块链上;及
将所述第一区块链备份到存储系统中,删除所述第一区块链。
本申请实例还提出了一种计算设备,包括一个或多个存储器和一个或多个处理器,所述存储器存储有机器可读指令,所述机器可读指令由所述一个或多个处理器加载并执行以实现下述步骤:
在第一条件满足时,从第一区块链的第一区块中查询未被使用的交易输出信息,所述第一区块包括所述第一区块链中的所有区块;
根据查询得到的所述未被使用的交易输出信息生成交易信息,所述交易信息用于描述不改变所述未被使用的交易输出信息所属账户地址的交易操作;
将所述交易信息记录在第二区块中并发布所述第二区块,将经过共识的所述第二区块记录在第二区块链上;及
将所述第一区块链备份到存储系统中,删除所述第一区块链。
附图说明
为了更清楚的说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。其中,
图1为本申请实例涉及的系统构架图;
图2为区块的数据结构图;
图3为本申请实例中区块链的局部示意图;
图4为本申请实例的方法流程图;
图5为本申请实例中生成的交易信息实例图;
图6为本申请实例中创建区块的示意图;
图7为本申请实例中区块记录的交易信息示意图;
图8为本申请实例中的装置结构示意图;
图9为本申请实例中的计算设备组成结构示意图。
具体实施方式
为了描述上的简洁和直观,下文通过描述若干代表性的实施例来对本发明的方案进行阐述。但本文并未示出所有实施方式。实施例中大量的细节仅用于帮助理解本发明的方案,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。说明书和权利要求书中的“包括”是指某种程度上至少包括,应当解释为除了包括之后提到的特征外,其它特征也可以存在。
本申请提出了一种数据备份方法,该方法可应用于图1所示的区块链系统100中。如图1所示,该系统100至少包括:应用层101、网络层103和数据层104,还可包括扩展层102等。应用层101面向用户提供应用客户端11和12(比如用于数字资产交易的钱包客户端等)和交易平台13。其中,应用客户端11和12运行在终端设备上,终端设备可以包括:PC机、手机、平板电脑、掌上电脑、超级本、可穿戴设备等。用户通过操作应用客户端11和12提供的用户界面(userinterface,UI)可以登录交易平台13完成各种交易操作,比如:数字资产交易、共享账本查阅等等;交易平台13可包括一台服务器或者一个服务器集群,也可以包括分布式系统。扩展层102提供了一些扩展应用业务功能,包括智能合约等侧链应用,也可包括诸如文档、图片、视频等用户数据文件的存储和分享功能。用户通过操作应用客户端11和12提供的UI可以通过扩展层102实现智能合约签署、数据文件存储和分享等功能。网络层103包括分布在各个地区的多个区块链节点14,这些节点14构成了区块链网络,每个节点14可以是一个具 有点对点通信功能的计算设备,如台式电脑、笔记本电脑、平板电脑等,这些区块链节点14构成了一个点对点(peer to peer,P2P)网络,每个节点14都存储了一条区块链15的完整数据。其中,网络层103用于实现各节点14之间的通信,封装了节点14之间的P2P组网机制、数据传播机制、验证机制等等。区块链网络本质上是一个P2P网络,每一个节点14既接收信息也产生信息,节点14之间维护一个共同的区块链来保持通信。在一个区块链网络中,每一个节点14都可以创造新的区块,在新区块被创造后会以广播的形式通知其他节点,其他节点会对这个区块进行验证,当节点验证通过后,这个新区块就可以被添加到区块链上了。数据层104则封装了区块链15的数据结构。如图1所示,一条区块链15由多个区块(区块0~区块n)链接而成。首先建立的区块0是“创世区块”,之后在一定规则下创建的数据结构相同的区块通过一个链式的结构依次相连组成一条主链条。随着运行时间越来越长,新的区块通过验证后不断被添加到主链上,主链也会不断地延长。
图1示出了区块链系统100中的一部分,在实际应用中,网络层103之上还有共识层、激励层等等。其中,共识层封装了共识机制,以便让高度分散的节点14在去中心化的系统中高效地针对区块数据的有效性达成共识,也就是约定所有节点14之间怎么达成共识,去认定一个交易记录集的有效性,这既是认定的手段,也是防止篡改的手段。比较常用的共识机制主要有:工作量证明(Proof of Work)、权益证明(Proof of Stake)、股份授权证明(Delegated Proof of Stake)。
在区块链系统中,数据会以文件的形式被永久记录,这些文件可被称为区块(Block)。一个区块可包含一段时间内发生的交易记录集,并且该交易记录集未被先前的区块记录,每个区块记录了它被创建之前发生的事件。所创建的区块依次链接,通常新的区块会被添加到区块链的尾部并链接到上一个区块。其中,交易(Transaction)代表用户在交易系统中的一次操作,每当导致了账本状态的一次改变,会在账本中添加一条记录;区块则记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;链(Chain)由一个个区块按照创建时间顺序串联而成,是整个账本状态变化的日志记录。
区块是一种记录交易的数据结构。每个区块由区块头和区块体组成,区块体负责记录前一段时间内的交易信息,区块头则记录了用于链接父区块、挖矿竞争、交易数据验证的信息。图2示出了区块200A的数据结构。如图2所示,区块200A包括区块头21和区块体22。区块体22记录了交易数量以及一段时 间内发生的多笔交易的信息,如交易1、交易2、……、交易m的交易信息。区块头21记录了以下信息段:
1、版本号,用于标识软件及协议的相关版本信息;
2、父区块哈希值,是区块200A的父区块的区块头哈希值,通过这个值各个区块才能首尾相连组成区块链,并且这个值对区块链的安全性起到了至关重要的作用;
3、Merkle根,这个值是由区块体22中所有交易信息的哈希值再逐级两两哈希计算出来的一个数值,主要用于验证一笔交易是否在这个区块中存在;
4、时间戳,记录该区块200A创建的时间,可精确到秒;
5、难度值,是该区块200A相关数学题的难度目标值;
6、随机数(Nonce),记录解密该区块200A相关数学题的答案的值。
在区块200A加入区块链后,所有矿工(即各个区块链节点14)就开始下一个区块的生成工作,包括:
1、把在本地内存中的交易信息记录到区块体中;
2、在区块体中生成此区块中所有交易信息的Merkle树,把Merkle树根的值(即Merkle根)保存在区块头中;
3、把最近加入区块链的区块200A的区块头的数据通过SHA256算法生成一个哈希值填入到当前区块的父区块哈希值中;
4、把当前时间保存在时间戳字段中;
5、难度值字段会根据之前一段时间区块的平均生成时间进行调整以应对整个网络不断变化的整体计算总量,如果计算总量增长了,则系统会调高数学题的难度值,使得预期完成下一个区块的时间依然在一定时间内。
对于一个区块而言,区块头哈希值可以唯一标识一个区块,并且任何节点14通过对区块头进行哈希计算都可以独立地获取该区块头哈希值。而区块头哈希值实际上并不包含在本区块的数据结构里,区块头哈希值是当该区块被某个节点14从区块链网络中接收时由该节点14计算出来的。区块头哈希值可能会作为区块元数据的一部分被存储在一个独立的数据库表中,以便于索引和更快地从磁盘检索区块。另外,区块在区块链中还具有区块高度(block height),可用来标识区块在区块链中的位置。第一个区块(即创世区块)的区块高度为0,引用该创世区块的区块的高度为1,以此类推,每一个随后被存储在区块链中的区块都比前一区块“高”出一个位置,区块高度值等于前一区块的区块高度值加 一。和区块头哈希值不同,区块高度并不是区块的唯一标识,两个或两个以上的区块可能有相同的区块高度,在区块链里争夺同一位置。区块高度也不是区块数据结构的一部分,它并不被存储在区块里。当节点14接收来自区块链网络的区块时,会动态地识别该区块在区块链里的位置(即区块高度)。区块高度也可作为元数据存储在一个索引数据库表中以便快速检索。
图3示出了本申请实例中区块链的局部示意图。图3中示出了局部区块链200B中所包括的三个区块23、24和25,各个区块的区块高度和区块头哈希值并不记录在区块内部,但是决定着区块之间的链接关系。在节点14本地数据库中的区块链元数据表中可以保存着各个区块的区块高度和区块头哈希值。
然而,随着区块链中区块的增加,单个节点14的存储压力也在增加,对运行节点14的单机设备也提出了很高的要求。
在本申请的实例中,提出了一种数据备份方法,该方法可应用于节点14中,可以自动的将一些区块备份出来,减轻节点14的存储压力。图4示出了本申请实例的方法流程图。如图4所示,该方法300始于步骤S301。
在步骤S301中,在设定的第一条件满足时,节点14从第一区块链中的第一区块中查询得到未被使用的交易输出信息。这里,所述第一区块包括所述第一区块链中的所有区块,也即是,分别从第一区块链中的各个区块中查询得到未被使用的交易输出信息,进而得到所有的未被使用的交易输出信息。
上述第一条件相当于是本申请实施例提出的数据备份流程的启动条件。在一些实例中,所述第一条件可以包括:达到设定时间间隔、所述第一区块链的区块高度符合预设值、剩余存储空间低于阈值或者收到设定的操作指令等等中的至少一者。
当第一条件包括达到设定时间间隔时,节点14可以每隔一定的时间间隔(比如:一天、一个月等等)就可以启动一次数据备份流程,或者在多个设定的时间点(比如:自第一区块链的创始时间起的一个月、三个月、六个月等等)分别启动一次数据备份流程。本申请对于时间间隔的具体设置方法不做限定。
当第一条件包括所述第一区块链的区块高度符合预设值时,节点14可以在第一区块链的区块高度符合预设值时启动一次数据备份流程。本申请对于预设值的具体设置方法不做限定。
当第一条件包括剩余存储空间低于阈值时,节点14可以在剩余存储空间较少的情况下启动数据备份流程。当第一条件包括收到设定的操作指令时,节点 14可以响应于外部输入的操作指令而启动数据备份流程,比如:用户需要做一些数据清理或备份时可以给节点14输入操作指令,以使节点14启动数据备份流程。
上述各种第一条件也可以根据实现需要任意组合。
在一些实例中,节点14随着第一区块链中区块的增加在本地会维护账户数据,此账户数据记录了当前各个区块中记录的各个交易信息中未被使用的交易输出信息,比如:比特币交易中的未花费的交易输出(UTXO,Unspent Transaction Output)表。每个UTXO都有一个面值和所有者地址(本质上是密码学公钥的地址所定义)。一笔交易包括一个或多个输入和一个或多个输出。每个输入包含一个对现有UTXO的引用和由与所有者地址相对应的私钥创建的密码学签名。每个输出包含一个新的UTXO。节点14可以根据本地维护的账户数据查询各个区块中记录的未被使用的交易输出信息。
具体的,账户数据中的每一条未被使用的交易输出信息包括:交易编号、区块高度和区块头哈希值等信息,因此,根据这些信息可以从区块中查询到各条未被使用的交易输出信息,一条未被使用的交易输出信息可包含字段:未被使用的资产数额、所有者地址等。
在步骤S302中,节点14根据查询到的未被使用的交易输出信息生成一条或多条交易信息,所生成的交易信息用于描述不改变上述未被使用的交易输出信息所属账户地址的交易操作,可以说是一种自己向自己转账的交易操作(也称为交易滚动操作或找零操作)。其中,一条交易信息包括至少一条交易输入信息和至少一条交易输出信息,所述至少一条交易输入信息分别引用至少一条查询到的未被使用的交易输出信息,每一个交易输入信息对应的交易输出信息包括其引用的上述查询到的未被使用的交易输出信息,以代表自己向自己转账的交易操作。这里,节点14可以根据多条未被使用的交易输出信息生成一条交易信息,根据实现需要还可生成一条以上的交易信息。比如:查询到五条未被使用的交易信息,那么可以生成一条交易信息,里边包含五个交易操作记录(五组交易输入信息和交易输出信息),这五个交易操作记录分别描述针对这五条未被使用的交易信息的交易滚动操作。也可以生成其它数量的交易信息,每条交易信息包含一个或若干个交易操作记录,这些交易信息总共包含五个交易操作记录,可描述针对这五条未被使用的交易信息的交易滚动操作。
如图5所示的例子中,查询到的未被使用的交易输出信息包括 UTXO1~UTXO5,可生成三条交易信息TX1~TX3。其中,TX1包括分别引用UTXO1和UTXO2的两个交易输入信息Input11和Input12,Input11和Input12分别对应交易输出信息Output11和Output12,Output11包括UTXO1,Output12包括UTXO2,也即是在数量与地址上,Output11与UTXO1相同,Output12与UTXO2相同。TX2包括引用UTXO3的交易输入信息Input21,Input21对应交易输出信息Output21,Output21包括UTXO3,Output21与UTXO3在数量与地址上相同。TX3包括分别引用UTXO4和UTXO5的两个交易输入信息Input31和Input32,Input31和Input32分别对应交易输出信息Output31和Output32,在数量与地址上,Output31与UTXO4相同,Output32与UTXO5相同。这样就把UTXO1~UTXO5分别代表的未被使用的资产数额转账给了所有者自己,也就是说,这种交易操作并不会改变资产的所有权,不会给账户数据带来实质性改变。
在一些实施例中,节点14在根据查询到的未被使用的交易输出信息生成一条或多条交易信息时,对每一条交易信息,可以为该交易信息内包括的未被使用的交易输出信息的滚动次数进行赋值,这里的滚动次数是指对任一未被使用的交易输出信息执行上述交易滚动操作的次数。
也即是说,每当完成一次交易滚动操作之后,随着一条或多个交易信息的产生,节点14将每一条交易信息内各个未被使用的交易输出信息的滚动次数置为原值加1所得的数值,而如果任一个未被使用的交易输出信息被花费时,则将这个被花费掉的交易输出信息的滚动次数置为0,从而通过维护各个未被使用的交易输出信息的滚动次数,能够形象地反映出各个未被使用的交易输出信息的“活跃度”,滚动次数越高,意味着这个未被使用的交易输出信息已经被连续执行交易滚动操作多次,但仍然未被花费出去,也就说明这个未被使用的交易输出信息的活跃度越低,因此也可以将滚动次数形象地称为未被使用的交易输出信息对应的“年龄”。
在步骤S303中,节点14将步骤S302中生成的一条或多条交易信息记录在新的区块(即第二区块)中并发布新的区块。新的区块在经过共识之后会被记录在第二区块链上。具体的共识处理机制本文不做详述。此外,节点14将步骤S301中查询过的一个或多个区块(即第一区块)所在的第一区块链备份到节点14连接的存储系统中(比如硬盘、磁盘、集中或分布式数据库系统等)。
在步骤S303中,节点14在对第一区块中未被使用的交易输出信息做滚动交易操作之后,会删除之前的第一区块链,之后会维护一条新的区块链(第二 区块链),而这两条区块链之间具有一定的关联性。
在一些实例中,上述第二区块的区块高度与第一区块链中最后一个区块的区块高度可以是连续的。比如:第一区块链有十个区块(区块高度分别为1~10),当从这十个区块中查询得到未被使用的交易输出信息并做滚动交易操作之后,可以生成高度为11的新区块(即第二区块),那么第二区块链的初始区块的高度为11,与第一区块链中最后一个区块的区块高度10是具有连续性的。
在一些实例中,上述第二区块包含的父区块的区块头特征值为所述第一区块链中最后一个区块的区块头特征值。比如:第一区块链有十个区块,当从这十个区块中查询得到未被使用的交易输出信息并做滚动交易操作之后,可以生成新区块(即第二区块),那么第二区块的父区块就为第一区块链中最后一个区块,第二区块的区块头中记录的父区块的区块头特征值(比如区块头哈希值)就是第一区块链中最后一个区块的区块头特征值。
在一些实例中,节点14在将第一区块链备份到存储系统中时,在本地的备份数据表中记录已备份的第一区块链中各区块的标识信息(区块高度、区块头哈希值等)和已备份的第一区块链中各区块在上述存储系统中的存储地址。这样,当节点14需要访问已备份的第一区块链中任一区块时,可以通过备份数据表中的信息从存储系统中查询到目标区块,也可以将目标区块恢复到节点14中。
在一些实例中,在将第一区块链删除之后,当要访问第一区块链中任一区块的交易信息时,节点14可从数据备份表中查询得到该区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的该区块,并根据所述交易信息的标识信息(交易编号、区块高度、区块头哈希值等)从该区块中查询得到所述交易信息的内容(资产余额、账户地址等)。
在上述实例中,节点14将上述第一区块链中各个区块备份起来,这些区块被备份到节点14连接的硬盘、服务器或服务器集群中,而这些被备份的区块包含的交易信息很少会被用到,这些区块很少会被访问,访问频率很低,可称为是冷数据,也可以说,节点14将这些区块“冷备”起来。
图6示出了本申请一实例中的区块示意图。图6中,节点14查询旧区块链中的区块1和2得到包含未被使用的交易输出信息TX14和TX25,对TX14和TX25分别做交易滚动操作以生成一条交易信息TXN1。该TXN1中包含两条交易记录,这两条交易记录分别包含TX14和TX25中的交易输出信息。之后,节点14将创建新的区块链,将TXN1包含在新区块链中的新区块N中,将旧区块 链冷备到存储系统中,节点14删除包含区块1和2的旧区块链。
图7示出了区块体中记录的若干条交易信息实例。在图7中,交易号为“#1001”的交易信息中,交易输出41记录了账户“A”的账户余额是12.5,交易号为“#2001”的交易信息中,交易输出42记录了账户“A”的账户余额是10,账户“B”的账户余额是2.5,交易号为“#3001”的交易信息中,交易输出43记录了账户“A”的账户余额是7.5和2.5,账户“D”的账户余额是2.5,交易号为“#4001”的交易信息中,交易输出44记录了账户“C”的账户余额是2.5。可以看出,交易输出41和42中的交易输出信息均被使用完,交易输出43中第(1)和(3)项交易输出信息431和433未被使用,交易输出44中第(1)项交易输出信息441未被使用,那么根据交易输出信息431和433及441可以生成交易号为“#5001”的交易信息,其中的交易输出45包含这三个未被使用的交易输出信息431和433及441。这样,交易号为“#1001”、“#2001”、“#3001”、“#4001”的交易信息中的交易输出信息均被使用过,后续交易操作不会再使用,它们所属的区块链可被删除,新生成的交易号为“#5001”的交易信息可以包含在新的区块链中。
在上述实例中,节点14对全部区块中未被使用的交易输出信息做交易滚动操作,从而能生成新的交易信息,并且不改变未被使用的交易输出信息中资产的所有权。这样,就可以使这些区块中所有交易输出信息都被使用了,属于无用的区块(即未来交易操作中不需要访问的区块),从而节点14可以将这些区块备份出来并将本地存储的第一区块链删除,节省了节点14的存储空间,保证了数据的准确性,不影响交易操作的执行,不会影响区块链的正常运行,技术实现并不复杂,能够显著提升系统性能。
在一些实例中,第二区块中可能存在很多未被使用的交易输出信息,上述处理并不能腾出很多存储空间,则节点14可在第二条件满足时(比如剩余存储空间低于目标阈值时)进一步将所述生成的第二区块链中的交易信息中长时间不被使用的交易信息合并在新的第三区块中生成新的第三区块,从而生成新的第三区块链并备份此新的第三区块链,节点14再将此区块所在的区块链即是第二区块链从本地删除,据此对第二区块进行备份。当节点14备份此种第二区块时,在本地的备份数据表中记录此第二区块的标识信息(区块高度、区块头哈希值等)和此第二区块在上述存储系统中的存储地址。这样,当节点14需要访问已备份的第二区块时,可以通过备份数据表中的信息从存储系统中查询到目标区块,也可以将目标区块恢复到节点14中。这样,当需要访问某个未被使用 的交易输出信息时,可以从账户数据中查询到其所在的区块的标识信息,从而可以从备份数据表中查询到存储地址,这样就可以访问到存储系统中的该未被使用的交易输出信息,也可将该未被使用的交易输出信息所属的第二区块链恢复到节点14的本地存储中。当需要使用某个未被使用的交易输出信息时,可以从账户数据中查询到其所在的区块的标识信息,从而可以从备份数据表中查询到存储地址,这样就可以访问到存储系统中的该未被使用的交易输出信息中的具体详情,如账户地址、资产余额等,从而根据查询到的信息生成新的交易信息,把该未被使用的交易输出信息使用掉。
可选地,在满足第二条件时,如果节点14为各个交易信息内未被使用的交易输出信息维护了滚动次数,那么节点14可以对第二区块链中滚动次数大于目标次数的未被使用的交易输出信息(也即是活跃度较低的未被使用的交易输出信息),执行上述合并至第三区块的步骤,发布第三区块,基于共识机制对第三区块进行共识,当共识通过时,将第三区块添加至第三区块链中,在上述过程中,相当于对这些活跃度较低的未被使用的交易输出信息,又执行了一次交易滚动操作,将这些活跃度较低的未被使用的交易输出信息从第二区块链迁移至第三区块链,便于将第三区块链整体备份至存储系统中,当备份完成时,即可删除第三区块链。其中,该目标次数可以任一大于0的数值,例如,该目标次数可以是3。
通过上述方式,虽然上述第三区块中的交易输出信息仍然未被使用,也即是说对于整个区块链系统来说,仍然有调用第三区块中的交易输出信息的可能性,但由于滚动次数已经超过了目标次数了,说明在后续过程中调用第三区块中的交易输出信息的可能性是很低的,那么对第三区块进行备份并删除第三区块,可以在保证不影响区块链业务的同时,进一步地节约节点14的存储空间。
在一些实例中,在将所述第二区块链删除之后,当要访问所述第二区块链中任一区块的交易信息时,节点14可从所述数据备份表中查询得到该区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的该区块,并根据所述交易信息的标识信息从该区块中查询得到所述交易信息的内容(比如资产余额、账户地址等)。
可以理解的是,采用上述技术方案,能够节省区块链节点的存储空间,显著提升存储资源的利用率,可以将未被使用的交易输出信息从已有区块中滚动 出来且不改变资产的所有权,这样就可以将已使用的交易输出信息组成的各个区块冷备起来,将这种区块所在的区块链从区块链节点删除,这样就能将有限的存储空间充分用于保存对于当前区块链运行更有价值的未被使用的交易输出信息,从而提升了区块链系统性能。上述技术方案也非常易于在区块链节点中应用,具有较强的可实施性。
基于上述本申请提供的方法实例,本申请实例还提出了一种数据备份装置,该装置可应用于区块链节点14中。如图8所示,该数据备份装置500包括:
查询模块501,在第一条件满足时,从第一区块链中的第一区块中查询得到未被使用的交易输出信息,所述第一区块包括所述第一区块链中的所有区块。
交易信息模块502,根据查询得到的所述未被使用的交易输出信息生成交易信息,所述交易信息用于描述不改变所述未被使用的交易输出信息所属账户地址的交易操作。
区块发布模块503,将生成的所述交易信息记录在第二区块中并发布所述第二区块,将经过共识的所述第二区块记录在第二区块链上。
备份模块504,将所述第一区块链备份到自身连接的存储系统中,删除所述第一区块链。
在一些实例中,备份模块504当将所述第一区块链备份到自身连接的存储系统时,在数据备份表中记录所述第一区块链中各区块的标识信息及其在所述存储系统中的存储地址。装置500进一步包括:数据访问模块505,在将所述第一区块链删除之后,当要访问所述第一区块链中任一区块时,从所述数据备份表中查询得到该区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的该区块。
在一些实例中,数据访问模块505,在将所述第一区块链删除之后,当要访问所述第一区块链中任一区块的交易信息时,从所述数据备份表中查询得到该区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的该区块,并根据所述交易信息的标识信息从该区块中查询得到所述交易信息的内容。
上述各模块功能的实现原理前文已有详述,这里不再赘述。
在一些实例中,上述数据备份装置500可运行在各种计算设备中,并加载在该计算设备的存储器中。其中,该计算设备可以包括一个或多个存储器和一个或多个处理器,该存储器存储有机器可读指令,该机器可读指令由该一个或 多个处理器加载并执行以实现下述步骤:
在第一条件满足时,从第一区块链的第一区块中查询未被使用的交易输出信息,该第一区块包括该第一区块链中的所有区块;
根据查询得到的该未被使用的交易输出信息生成交易信息,该交易信息用于描述不改变该未被使用的交易输出信息所属账户地址的交易操作;
将该交易信息记录在第二区块中并发布该第二区块,将经过共识的该第二区块记录在第二区块链上;及
将该第一区块链备份到存储系统中,删除该第一区块链。
可选地,该第一条件包括:该第一区块链的区块高度符合预设值。
可选地,该第一条件包括:剩余存储空间低于第一阈值;或,达到设定时间间隔;或,收到设定的操作指令。
可选地,该第二区块的区块高度与该第一区块链中最后一个区块的区块高度是连续的。
可选地,该第二区块包含的父区块的区块头特征值为该第一区块链中最后一个区块的区块头特征值。
可选地,该一个或多个处理器用于执行下述步骤:
在数据备份表中记录该第一区块链中各个区块的标识信息及各个区块在该存储系统中的存储地址。
可选地,该一个或多个处理器用于执行下述步骤:
在删除该第一区块链之后,当要访问该第一区块链中的任一区块时,从该数据备份表中查询该区块的标识信息对应的存储地址,根据该存储地址访问该存储系统中的该区块;或,
在删除该第一区块链之后,当要访问该第一区块链中任一区块的交易信息时,从该数据备份表中查询该区块的标识信息对应的存储地址,根据该存储地址访问该存储系统中的该区块,并根据该交易信息的标识信息从该区块中查询得到该交易信息的内容。
图9示出了上述数据备份装置500所在的计算设备的组成结构图。如图9所示,该计算设备包括一个或者多个处理器(CPU)602、通信模块604、存储器606、用户接口610,以及用于互联这些组件的通信总线608。
处理器602可通过通信模块604接收和发送数据以实现网络通信和/或本地 通信。
用户接口610包括一个或多个输出设备612,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口610也包括一个或多个输入设备614,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。
存储器606可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器606存储处理器602可执行的指令集,包括:
操作系统616,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
应用618,包括各种应用程序,其能够实现上述各实例中的处理流程,比如可以包括图8所示的装置500。在一些实例中,装置500可包括图8所示的各模块501~505中的部分或全部模块,各模块501~505可以存储有机器可执行指令。处理器602通过执行存储器606中各模块501~505中的机器可执行指令,进而能够实现上述各模块501~505的功能。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
各实施例中的硬件模块可以以硬件方式或硬件平台加软件的方式实现。上述软件包括机器可读指令,存储在非易失性存储介质中。因此,各实施例也可以体现为软件产品。
各例中,硬件可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。
另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装 或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,这种数据处理程序可用于执行本申请上述方法实例中的任何一种实例。
在上述过程中,该存储介质可以存储有机器可读指令,该机器可读指令被一个或多个处理器执行时,使得该一个或多个处理器加载并执行以实现下述步骤:
在第一条件满足时,从第一区块链的第一区块中查询未被使用的交易输出信息,该第一区块包括该第一区块链中的所有区块;
根据查询得到的该未被使用的交易输出信息生成交易信息,该交易信息用于描述不改变该未被使用的交易输出信息所属账户地址的交易操作;
将该交易信息记录在第二区块中并发布该第二区块,将经过共识的该第二区块记录在第二区块链上;及
将该第一区块链备份到存储系统中,删除该第一区块链。
可选地,该第一条件包括:该第一区块链的区块高度符合预设值;或,剩余存储空间低于第一阈值;或,达到设定时间间隔;或,收到设定的操作指令。
可选地,该第二区块的区块高度与该第一区块链中最后一个区块的区块高度是连续的。
可选地,该第二区块包含的父区块的区块头特征值为该第一区块链中最后一个区块的区块头特征值。
可选地,该一个或多个处理器用于执行下述步骤:
在数据备份表中记录该第一区块链中各个区块的标识信息及各个区块在该存储系统中的存储地址。
可选地,该一个或多个处理器用于执行下述步骤:
在删除该第一区块链之后,当要访问该第一区块链中的任一区块时,从该数据备份表中查询该区块的标识信息对应的存储地址,根据该存储地址访问该存储系统中的该区块;或,
在删除该第一区块链之后,当要访问该第一区块链中任一区块的交易信息时,从该数据备份表中查询该区块的标识信息对应的存储地址,根据该存储地址访问该存储系统中的该区块,并根据该交易信息的标识信息从该区块中查询得到该交易信息的内容。
图8中的模块对应的机器可读指令可以使计算机上操作的操作系统等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质可以是插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器。安装在扩展板或者扩展单元上的CPU等可以根据指令执行部分和全部实际操作。
非易失性计算机可读存储介质包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
综上所述,权利要求的范围不应局限于以上描述的例子中的实施方式,而应当将说明书作为一个整体并给予最宽泛的解释。

Claims (20)

  1. 一种数据备份方法,其特征在于,所述方法包括:
    在第一条件满足时,从第一区块链的第一区块中查询未被使用的交易输出信息,所述第一区块包括所述第一区块链中的所有区块;
    根据查询得到的所述未被使用的交易输出信息生成交易信息,所述交易信息用于描述不改变所述未被使用的交易输出信息所属账户地址的交易操作;
    将所述交易信息记录在第二区块中并发布所述第二区块,将经过共识的所述第二区块记录在第二区块链上;及
    将所述第一区块链备份到存储系统中,删除所述第一区块链。
  2. 根据权利要求1所述的方法,其特征在于,所述第一条件包括:所述第一区块链的区块高度符合预设值。
  3. 根据权利要求1所述的方法,其特征在于,所述第一条件包括:剩余存储空间低于第一阈值;或,达到设定时间间隔;或,收到设定的操作指令。
  4. 根据权利要求1所述的方法,其特征在于,所述第二区块的区块高度与所述第一区块链中最后一个区块的区块高度是连续的。
  5. 根据权利要求1所述的方法,其特征在于,所述第二区块包含的父区块的区块头特征值为所述第一区块链中最后一个区块的区块头特征值。
  6. 根据权利要求1所述的方法,其特征在于,所述将所述第一区块链备份到存储系统中包括:
    在数据备份表中记录所述第一区块链中各个区块的标识信息及各个区块在所述存储系统中的存储地址。
  7. 根据权利要求6所述的方法,其特征在于,所述在数据备份表中记录所述第一区块链中各个区块的标识信息及各个区块在所述存储系统中的存储地址之后,所述方法还包括:
    在删除所述第一区块链之后,当要访问所述第一区块链中的任一区块时,从所述数据备份表中查询所述区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的所述区块;或,
    在删除所述第一区块链之后,当要访问所述第一区块链中任一区块的交易信息时,从所述数据备份表中查询所述区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的所述区块,并根据所述交易信息的标识信息从所述区块中查询得到所述交易信息的内容。
  8. 一种存储介质,其特征在于,存储有机器可读指令,所述机器可读指令被一个或多个处理器执行时,使得所述一个或多个处理器加载并执行以实现下述步骤:
    在第一条件满足时,从第一区块链的第一区块中查询未被使用的交易输出信息,所述第一区块包括所述第一区块链中的所有区块;
    根据查询得到的所述未被使用的交易输出信息生成交易信息,所述交易信息用于描述不改变所述未被使用的交易输出信息所属账户地址的交易操作;
    将所述交易信息记录在第二区块中并发布所述第二区块,将经过共识的所述第二区块记录在第二区块链上;及
    将所述第一区块链备份到存储系统中,删除所述第一区块链。
  9. 根据权利要求8所述的存储介质,其特征在于,所述第一条件包括:所述第一区块链的区块高度符合预设值;或,剩余存储空间低于第一阈值;或,达到设定时间间隔;或,收到设定的操作指令。
  10. 根据权利要求8所述的存储介质,其特征在于,所述第二区块的区块高度与所述第一区块链中最后一个区块的区块高度是连续的。
  11. 根据权利要求8所述的存储介质,其特征在于,所述第二区块包含的父区块的区块头特征值为所述第一区块链中最后一个区块的区块头特征值。
  12. 根据权利要求8所述的存储介质,其特征在于,所述一个或多个处理 器用于执行下述步骤:
    在数据备份表中记录所述第一区块链中各个区块的标识信息及各个区块在所述存储系统中的存储地址。
  13. 根据权利要求12所述的存储介质,其特征在于,所述一个或多个处理器用于执行下述步骤:
    在删除所述第一区块链之后,当要访问所述第一区块链中的任一区块时,从所述数据备份表中查询所述区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的所述区块;或,
    在删除所述第一区块链之后,当要访问所述第一区块链中任一区块的交易信息时,从所述数据备份表中查询所述区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的所述区块,并根据所述交易信息的标识信息从所述区块中查询得到所述交易信息的内容。
  14. 一种计算设备,其特征在于,包括一个或多个存储器和一个或多个处理器,所述存储器存储有机器可读指令,所述机器可读指令由所述一个或多个处理器加载并执行以实现下述步骤:
    在第一条件满足时,从第一区块链的第一区块中查询未被使用的交易输出信息,所述第一区块包括所述第一区块链中的所有区块;
    根据查询得到的所述未被使用的交易输出信息生成交易信息,所述交易信息用于描述不改变所述未被使用的交易输出信息所属账户地址的交易操作;
    将所述交易信息记录在第二区块中并发布所述第二区块,将经过共识的所述第二区块记录在第二区块链上;及
    将所述第一区块链备份到存储系统中,删除所述第一区块链。
  15. 根据权利要求14所述的计算设备,其特征在于,所述第一条件包括:所述第一区块链的区块高度符合预设值。
  16. 根据权利要求14所述的计算设备,其特征在于,所述第一条件包括:剩余存储空间低于第一阈值;或,达到设定时间间隔;或,收到设定的操作指 令。
  17. 根据权利要求14所述的计算设备,其特征在于,所述第二区块的区块高度与所述第一区块链中最后一个区块的区块高度是连续的。
  18. 根据权利要求14所述的计算设备,其特征在于,所述第二区块包含的父区块的区块头特征值为所述第一区块链中最后一个区块的区块头特征值。
  19. 根据权利要求14所述的计算设备,其特征在于,所述一个或多个处理器用于执行下述步骤:
    在数据备份表中记录所述第一区块链中各个区块的标识信息及各个区块在所述存储系统中的存储地址。
  20. 根据权利要求19所述的计算设备,其特征在于,所述一个或多个处理器用于执行下述步骤:
    在删除所述第一区块链之后,当要访问所述第一区块链中的任一区块时,从所述数据备份表中查询所述区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的所述区块;或,
    在删除所述第一区块链之后,当要访问所述第一区块链中任一区块的交易信息时,从所述数据备份表中查询所述区块的标识信息对应的存储地址,根据所述存储地址访问所述存储系统中的所述区块,并根据所述交易信息的标识信息从所述区块中查询得到所述交易信息的内容。
PCT/CN2019/108295 2018-09-30 2019-09-26 数据备份方法、存储介质及计算设备 WO2020063786A1 (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020207033321A KR102392944B1 (ko) 2018-09-30 2019-09-26 데이터 백업 방법, 저장 매체 및 컴퓨팅 기기
JP2020561794A JP7001843B2 (ja) 2018-09-30 2019-09-26 データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス
SG11202011132PA SG11202011132PA (en) 2018-09-30 2019-09-26 Data backup method, storage medium, and computing device
EP19867203.2A EP3779732A4 (en) 2018-09-30 2019-09-26 DATA BACKUP PROCEDURE, STORAGE MEDIUM AND COMPUTING DEVICE
US17/065,883 US11494270B2 (en) 2018-09-30 2020-10-08 Data backup method, storage medium, and computing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811160527.5 2018-09-30
CN201811160527.5A CN109299336B (zh) 2018-09-30 2018-09-30 数据备份方法、装置、存储介质及计算设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/065,883 Continuation US11494270B2 (en) 2018-09-30 2020-10-08 Data backup method, storage medium, and computing device

Publications (1)

Publication Number Publication Date
WO2020063786A1 true WO2020063786A1 (zh) 2020-04-02

Family

ID=65161494

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/108295 WO2020063786A1 (zh) 2018-09-30 2019-09-26 数据备份方法、存储介质及计算设备

Country Status (7)

Country Link
US (1) US11494270B2 (zh)
EP (1) EP3779732A4 (zh)
JP (1) JP7001843B2 (zh)
KR (1) KR102392944B1 (zh)
CN (1) CN109299336B (zh)
SG (1) SG11202011132PA (zh)
WO (1) WO2020063786A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111836268A (zh) * 2020-07-10 2020-10-27 全链通有限公司 终端设备接入信息处理方法、设备及存储介质
CN112364209A (zh) * 2020-12-09 2021-02-12 杭州复杂美科技有限公司 分布式数据存储方法、数据查询方法、设备和存储介质

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299336B (zh) 2018-09-30 2022-07-01 腾讯科技(深圳)有限公司 数据备份方法、装置、存储介质及计算设备
EP3905636A1 (en) * 2018-12-28 2021-11-03 Hefei Dappworks Technology Co., Ltd. Data processing method and apparatus for blockchain, and blockchain system
US11010394B2 (en) * 2019-02-15 2021-05-18 Drfirst.Com, Inc. Efficient access of chainable records
US10990705B2 (en) 2019-04-18 2021-04-27 Advanced New Technologies Co., Ltd. Index creation for data records
CN110162662B (zh) * 2019-04-18 2023-02-28 创新先进技术有限公司 一种块链式账本中数据记录的验证方法、装置及设备
CN110162526B (zh) * 2019-04-18 2023-02-24 创新先进技术有限公司 一种块链式账本中数据记录的查询方法、装置及设备
CN110188096B (zh) * 2019-04-18 2021-08-17 创新先进技术有限公司 一种数据记录的索引创建方法、装置及设备
JP2022539283A (ja) * 2019-04-18 2022-09-08 ライン プラス コーポレーション ブロックチェーンとは異なる形式のストレージに格納されるブロックチェーンデータを検証する方法およびシステム
CN110275916B (zh) * 2019-05-23 2021-01-12 创新先进技术有限公司 数据操作记录的存储方法、系统、装置及设备
US11204933B2 (en) 2019-05-23 2021-12-21 Advanced New Technologies Co., Ltd. Data manipulation record storage method, system, apparatus, and device
CN110347744B (zh) * 2019-06-03 2020-07-24 阿里巴巴集团控股有限公司 多层块链式账本的数据存储方法、装置及设备
US10949118B2 (en) 2019-06-03 2021-03-16 Advanced New Technologies Co., Ltd. Data storage method, apparatus, and device for multi-layer blockchain-type ledger
CN112153085B (zh) * 2019-06-26 2022-05-17 华为技术有限公司 一种数据处理方法、节点及区块链系统
US11372724B2 (en) 2019-07-05 2022-06-28 Samsung Electronics Co., Ltd Method and system for handling blockchain network based file storage system
CN110413621B (zh) * 2019-07-31 2021-08-06 中国工商银行股份有限公司 基于区块链的离线归档系统及方法
CN110489234A (zh) * 2019-08-16 2019-11-22 中国银行股份有限公司 区块链层的报文处理方法、装置、设备及可读存储介质
CN110958300B (zh) * 2019-10-30 2022-06-07 京东科技信息技术有限公司 一种数据的上传方法、系统、装置、电子设备和计算机可读介质
KR102274656B1 (ko) * 2019-11-22 2021-07-09 주식회사 티맥스엔터프라이즈 블록체인 네트워크에서 데이터를 관리하기 위한 기법
CN110928950A (zh) * 2019-11-25 2020-03-27 深圳壹账通智能科技有限公司 区块链交易信息管理方法、装置、计算机设备及存储介质
KR20210075654A (ko) * 2019-12-13 2021-06-23 현대자동차주식회사 블록체인 생성 시스템 및 그 운용 방법
CN111177257A (zh) * 2019-12-13 2020-05-19 东软集团股份有限公司 一种区块链的数据存储及访问方法、装置以及设备
US11062280B1 (en) * 2020-01-14 2021-07-13 Hiro Systems Pbc Network consensus-based data processing
CN111447069B (zh) * 2020-03-23 2021-10-26 腾讯科技(深圳)有限公司 一种基于区块链的低频访问数据处理方法
CN111506557A (zh) * 2020-04-10 2020-08-07 上海七印信息科技有限公司 Utxo库建立方法、装置、计算机设备和存储介质
CN111340496B (zh) * 2020-05-20 2020-10-27 南京如般量子科技有限公司 一种自动优化历史交易数据的区块链系统及方法
CN113709197B (zh) * 2020-05-21 2024-02-23 顺丰科技有限公司 联盟区块链组织系统、区块链系统
CN111798317B (zh) * 2020-07-07 2024-05-07 Gotcex有限公司 多维空间区块链及基于该区块链的数据处理方法
CN112329942A (zh) * 2020-11-06 2021-02-05 联想(北京)有限公司 一种基于区块链的信息处理方法、装置及设备
US20220191005A1 (en) * 2020-12-14 2022-06-16 Brandon E. D'Amore Stranded blockchain
KR102389139B1 (ko) * 2021-02-17 2022-04-22 유비콘 주식회사 블록체인 기반 분산저장을 통한 공간향상 솔루션 시스템
CN113127562A (zh) * 2021-03-30 2021-07-16 河南九域腾龙信息工程有限公司 一种低冗余区块链数据存储和检索方法及系统
CN113157492A (zh) * 2021-04-07 2021-07-23 北京思特奇信息技术股份有限公司 一种分布式数据库的备份方法和恢复方法以及备份系统
CN113505024B (zh) * 2021-07-08 2024-02-23 网易(杭州)网络有限公司 联盟链的数据处理方法、装置、电子设备及存储介质
CN114089924A (zh) * 2021-12-02 2022-02-25 东软集团股份有限公司 区块链账本数据存储系统及方法
CN115357346B (zh) * 2022-10-13 2023-02-03 北京百度网讯科技有限公司 基于区块链的事务处理方法、装置、电子设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383754A (zh) * 2016-09-19 2017-02-08 北京众享比特科技有限公司 一种基于区块链技术的数据库备份、恢复方法和系统
CN106713412A (zh) * 2016-11-09 2017-05-24 弗洛格(武汉)信息科技有限公司 一种区块链系统及区块链系统的架构方法
CN106919476A (zh) * 2017-02-24 2017-07-04 中国科学院软件研究所 基于联盟链的数据安全备份方法、客户端及云服务端
CN109299336A (zh) * 2018-09-30 2019-02-01 腾讯科技(深圳)有限公司 数据备份方法、装置、存储介质及计算设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3317775B1 (en) * 2015-07-02 2022-02-16 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
GB201511964D0 (en) * 2015-07-08 2015-08-19 Barclays Bank Plc Secure digital data operations
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
KR101781583B1 (ko) 2016-08-31 2017-09-27 서강대학교산학협력단 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법
KR101727525B1 (ko) 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
CN106528346A (zh) 2016-11-14 2017-03-22 捷开通讯(深圳)有限公司 一种智能终端及其应急数据备份系统与数据备份方法
US10460126B2 (en) * 2016-11-21 2019-10-29 Adobe Inc. Providing user control of shared personal information
US10586210B2 (en) * 2016-11-30 2020-03-10 International Business Machines Corporation Blockchain checkpoints and certified checkpoints
US10523421B2 (en) * 2016-11-30 2019-12-31 International Business Machines Corporation Checkpoints for permissionless blockchains
US10445302B2 (en) 2017-01-03 2019-10-15 International Business Machines Corporation Limiting blockchain size to optimize performance
KR102026225B1 (ko) * 2017-01-19 2019-09-27 주식회사 케이티 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
CN107819749A (zh) * 2017-10-26 2018-03-20 平安科技(深圳)有限公司 基于以太坊的区块链系统和交易数据处理方法
JP2019109635A (ja) 2017-12-16 2019-07-04 株式会社bitFlyer ブロックチェーン・ネットワークにおいて過去のトランザクションにアクセス可能とするための方法及び当該ネットワークを構成するためのノード
CN108564469A (zh) * 2018-04-11 2018-09-21 北京奇虎科技有限公司 区块链节点的画像数据获取方法、装置及计算设备
US11323530B2 (en) * 2018-06-06 2022-05-03 International Business Machines Corporation Proxy agents and proxy ledgers on a blockchain
US20190378139A1 (en) * 2018-06-06 2019-12-12 The Bank Of New York Mellon Tracking and recovering transactions performed across multiple applications
US11070360B2 (en) * 2018-08-13 2021-07-20 International Business Machines Corporation Parallel transaction validation and block generation in a blockchain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383754A (zh) * 2016-09-19 2017-02-08 北京众享比特科技有限公司 一种基于区块链技术的数据库备份、恢复方法和系统
CN106713412A (zh) * 2016-11-09 2017-05-24 弗洛格(武汉)信息科技有限公司 一种区块链系统及区块链系统的架构方法
CN106919476A (zh) * 2017-02-24 2017-07-04 中国科学院软件研究所 基于联盟链的数据安全备份方法、客户端及云服务端
CN109299336A (zh) * 2018-09-30 2019-02-01 腾讯科技(深圳)有限公司 数据备份方法、装置、存储介质及计算设备

Non-Patent Citations (1)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111836268A (zh) * 2020-07-10 2020-10-27 全链通有限公司 终端设备接入信息处理方法、设备及存储介质
CN111836268B (zh) * 2020-07-10 2023-04-28 全链通有限公司 终端设备接入信息处理方法、设备及存储介质
CN112364209A (zh) * 2020-12-09 2021-02-12 杭州复杂美科技有限公司 分布式数据存储方法、数据查询方法、设备和存储介质
CN112364209B (zh) * 2020-12-09 2023-11-28 杭州复杂美科技有限公司 分布式数据存储方法、数据查询方法、设备和存储介质

Also Published As

Publication number Publication date
KR20210002574A (ko) 2021-01-08
US20210026740A1 (en) 2021-01-28
KR102392944B1 (ko) 2022-04-29
CN109299336B (zh) 2022-07-01
EP3779732A1 (en) 2021-02-17
CN109299336A (zh) 2019-02-01
JP7001843B2 (ja) 2022-01-20
SG11202011132PA (en) 2020-12-30
EP3779732A4 (en) 2021-08-25
US11494270B2 (en) 2022-11-08
JP2021521556A (ja) 2021-08-26

Similar Documents

Publication Publication Date Title
WO2020063786A1 (zh) 数据备份方法、存储介质及计算设备
CN108805570B (zh) 数据处理方法、装置及存储介质
EP3707613B1 (en) Efficient management of client synchronization updates
WO2020063820A1 (zh) 资产交易方法、存储介质及计算机设备
US10255108B2 (en) Parallel execution of blockchain transactions
CN110020542B (zh) 数据读写方法及装置、电子设备
TW202002587A (zh) 基於區塊鏈的資料處理方法和裝置
CN111597015B (zh) 事务处理方法、装置、计算机设备及存储介质
TW202004584A (zh) 基於區塊鏈的資料遷移方法和裝置
US20230074102A1 (en) Method and apparatus for processing data based on block chain, device and readable storage medium
WO2021103403A1 (zh) 区块链交易信息管理方法、装置、计算机设备及存储介质
US10275400B1 (en) Systems and methods for forming a fault-tolerant federated distributed database
JPWO2011108695A1 (ja) 並列データ処理システム、並列データ処理方法及びプログラム
WO2020125233A1 (zh) 字段更新方法及装置、电子设备
US10855637B2 (en) Architecture for large data management in communication applications through multiple mailboxes
US10873552B2 (en) Large data management in communication applications through multiple mailboxes
WO2021057482A1 (zh) 一种区块链中布隆过滤器的生成方法及装置
WO2023185059A1 (zh) 一种共识方法和区块链节点
WO2023011022A1 (zh) 基于区块链的数据处理方法、设备及计算机可读存储介质
CN112685499A (zh) 一种工作业务流的流程数据同步方法、装置及设备
CN109614271A (zh) 多个集群数据一致性的控制方法、装置、设备及存储介质
EP3349416B1 (en) Relationship chain processing method and system, and storage medium
CN116701452A (zh) 数据处理方法、相关设备、存储介质及程序产品
JP2023547439A (ja) 非同期動作のための意図トラッキング
CN116521695A (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: 19867203

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020561794

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2019867203

Country of ref document: EP

Effective date: 20201102

ENP Entry into the national phase

Ref document number: 20207033321

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE