WO2018149345A1 - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
WO2018149345A1
WO2018149345A1 PCT/CN2018/075571 CN2018075571W WO2018149345A1 WO 2018149345 A1 WO2018149345 A1 WO 2018149345A1 CN 2018075571 W CN2018075571 W CN 2018075571W WO 2018149345 A1 WO2018149345 A1 WO 2018149345A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
check value
node
leaf node
leaf
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/CN2018/075571
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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
Priority to PL18753905T priority Critical patent/PL3554051T3/pl
Priority to AU2018221097A priority patent/AU2018221097B2/en
Priority to MYPI2019004022A priority patent/MY190059A/en
Priority to ES18753905T priority patent/ES2859560T3/es
Priority to SG11201906738SA priority patent/SG11201906738SA/en
Priority to JP2019544724A priority patent/JP6940615B2/ja
Priority to MX2019009291A priority patent/MX2019009291A/es
Priority to RU2019122450A priority patent/RU2724136C1/ru
Priority to CA3051065A priority patent/CA3051065C/en
Priority to KR1020197022496A priority patent/KR102284972B1/ko
Priority to BR112019016423-5A priority patent/BR112019016423B1/pt
Priority to EP18753905.1A priority patent/EP3554051B1/en
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of WO2018149345A1 publication Critical patent/WO2018149345A1/zh
Priority to US16/507,983 priority patent/US11392612B2/en
Priority to ZA2019/04735A priority patent/ZA201904735B/en
Priority to PH12019501852A priority patent/PH12019501852A1/en
Anticipated expiration legal-status Critical
Priority to AU2019101603A priority patent/AU2019101603A4/en
Priority to US16/774,929 priority patent/US10747780B2/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • the present application relates to the field of computer technologies, and in particular, to a data processing method and apparatus.
  • Blockchain is a new application mode of computer technology such as distributed data storage, point-to-point transmission, consensus mechanism, encryption algorithm, etc. It needs the state of each block chain node to be consistent (including the state of the database), so that when a certain area When a block chain node generates a new transaction (ie, generates new data), it needs to synchronize the new data to each blockchain node, and each blockchain node needs to verify the data.
  • the manner in which the block chain node verifies the data is usually determined by a bucket-tree based data check value (such as a hash hash value).
  • a bucket-tree based data check value such as a hash hash value.
  • fabric an implemented blockchain application
  • the data in the block chain node is stored in the structure of the merkle tree, and one or more leaf nodes (ie, buckets) are included in the merkle tree.
  • the blockchain node When the blockchain node obtains the check value (such as a hash value) of the above data, it is usually implemented by a single computing device (such as a terminal device or a server, etc.), specifically, the computing device traverses each leaf node and After the data of the node is sorted, it is spliced into a string, and the check value of the string is calculated as the check value of the data of the corresponding leaf node, and then the root of the merkle tree is calculated based on the check value of the data of each leaf node.
  • the check value (such as the root hash value) is the check value of the data in the block chain node, and the above data can be verified based on the check value.
  • the purpose of the embodiments of the present application is to provide a data processing method and apparatus, which can shorten the time consumed by the calculation process, improve the calculation efficiency, ensure the normal generation of the block, and the normal operation of the blockchain.
  • An embodiment of the present application provides a data processing method, where the method includes:
  • the obtaining, according to the check value of the leaf node calculated by the server in the server cluster, the root check value of the data in the blockchain node including:
  • the obtaining, according to the check value of the leaf node calculated by the server in the server cluster, the root check value of the data in the blockchain node including:
  • the root check value of the Merkle tree is determined as the root check value of the data in the block chain node.
  • the distributing the data of the leaf node pre-stored in the blockchain node to the server in the server cluster including:
  • the check value is a hash value.
  • the embodiment of the present application further provides a data processing method, where the method includes:
  • the method further includes:
  • the calculating a check value of the data of the distributed leaf node includes:
  • the data of the leaf node is allocated to a preset child leaf node according to the data volume of the leaf node, including:
  • Sorting data of the leaf node sequentially selecting a predetermined number of data from the sorted data, respectively, in the child leaf node, and setting a corresponding child node identifier for the child leaf node;
  • calculating, according to the check value of the data of each of the child leaf nodes, a check value of the data of the distributed leaf node including:
  • the calculating a check value of the data of the distributed leaf node, so as to obtain a root check value of the data in the block chain node includes:
  • the check value of the data calculates a root check value of the data in the block chain node
  • Calculating a check value of the data of the distributed leaf node acquiring a root check value of the data in the block chain node based on the check value of the data of the distributed leaf node, and the root check value Sent to the blockchain node.
  • An embodiment of the present application provides a data processing apparatus, where the apparatus includes:
  • a data distribution module configured to distribute data of a leaf node pre-stored in the blockchain node to a server in the server cluster, so that the server in the server cluster separately calculates a check value of the data of the allocated leaf node;
  • the root check value obtaining module is configured to further obtain a root check value of the data in the block chain node according to the check value of the data of the leaf node calculated by the server in the server cluster.
  • the root check value obtaining module is configured to receive a root check value of data in the blockchain node sent by a server in the server cluster.
  • the root check value obtaining module is configured to determine, according to the check value of the leaf node, a root check value of a Merkle tree corresponding to the leaf node, and a root check value of the Merkle tree Determined as the root check value of the data in the blockchain node.
  • the data distribution module is configured to separately send data of a predetermined number of leaf nodes to a server in the server cluster according to the number of leaf nodes pre-stored in the blockchain node.
  • the check value is a hash value.
  • the embodiment of the present application further provides a data processing apparatus, where the apparatus includes:
  • a data receiving module configured to receive data of a leaf node distributed by the blockchain node
  • a check value obtaining module configured to calculate a check value of the data of the distributed leaf node, for acquiring a root check value of the data in the block chain node.
  • the device further includes:
  • a data distribution module configured to allocate data of the leaf node to a preset child leaf node according to the data amount of the leaf node
  • a calculation module configured to calculate a check value of data of each child leaf node
  • the check value obtaining module is configured to calculate a check value of the data of the distributed leaf node according to the check value of the data of each of the child leaf nodes.
  • the data distribution module is configured to sort data of the leaf node, and sequentially select a predetermined number of data from the sorted data to be respectively set in the child leaf node, and be the child The leaf node sets the corresponding child node identifier;
  • the check value obtaining module is configured to calculate a check value of the data of the distributed leaf node according to the child node identifier of the child leaf node and the check value of each of the child leaf nodes.
  • the check value obtaining module is configured to calculate a check value of the data of the distributed leaf node, and send a check value of the data of the distributed leaf node to the block chain node, Or calculating, by the block chain node, a root check value of data in the block chain node according to a check value of data of the leaf node; or calculating a check value of data of the distributed leaf node Obtaining a root check value of the data in the block chain node based on a check value of the data of the distributed leaf node, and transmitting the root check value to the block chain node.
  • the data of the leaf nodes pre-stored in the blockchain node are distributed to the servers in the server cluster, so that the servers in the server cluster respectively calculate the allocated The check value of the data of the leaf node, and further, the root check value of the data in the block chain node is further obtained according to the check value of the data of the leaf node calculated by the server in the server cluster, so that the leaf node is obtained by The data is distributed to the server cluster, and then the check values of the data of the distributed leaf nodes are respectively calculated by each server in the server cluster, so that the data can be distributed to the server cluster to calculate the check value of the data of the leaf nodes in parallel.
  • the time consumed by the calculation process can be shortened, the calculation efficiency can be improved, the normal generation of the block and the normal operation of the blockchain can be ensured.
  • FIG. 3 is another embodiment of a data processing method according to the present application.
  • FIG. 5 is a schematic structural diagram of a data processing system according to the present application.
  • FIG. 6 is still another embodiment of a data processing method according to the present application.
  • FIG. 7 is still another embodiment of a data processing method according to the present application.
  • FIG. 8 is a schematic structural diagram of another data processing system according to the present application.
  • FIG. 10 is another embodiment of a data processing apparatus of the present application.
  • the embodiment of the present application provides a data processing method and device.
  • an embodiment of the present application provides a data processing method, where an execution body of the method may be a blockchain node.
  • the method can include the following steps:
  • step S101 the data of the leaf nodes pre-stored in the blockchain node is distributed to the servers in the server cluster, so that the servers in the server cluster respectively calculate the check values of the data of the allocated leaf nodes.
  • the leaf node may be a node having no child nodes, and the block chain node usually includes one or more leaf nodes (ie, buckets), and each leaf node stores a certain amount of data (specifically, transaction data).
  • the data amount of each piece of data stored in the leaf node may be set with a corresponding range of values. For example, the data amount of each piece of data is in the range of 100 KB to 5 MB, such as 1 MB.
  • a server cluster can be a group of multiple identical or different servers that can provide services for one or more services.
  • the check value may be a string (such as a numerical value or a code) for verifying a file or data.
  • the check value may be a value calculated based on a check algorithm such as a data digest, based on the data digest.
  • the verification algorithm may include a cyclic redundancy check algorithm, a message digest algorithm, a secure hash algorithm, and the like.
  • the blockchain can be a decentralized distributed database, also known as a distributed ledger.
  • a distributed network composed of a large number of information record storage devices (such as terminal devices or servers) is required, and the propagation of each new transaction can be adopted by the distributed network, according to P2P (Peer-to-peer). , peer-to-peer) network layer protocol, the relevant information of the transaction will be directly sent by the single blockchain node to all other blockchain nodes in the whole network to ensure the data stored in each blockchain node in the distributed network is consistent.
  • P2P Peer-to-peer
  • peer-to-peer peer-to-peer network layer protocol
  • the blockchain node includes one or more leaf nodes, and the data in the block chain node is distributed in the leaf node, wherein the data in the leaf node includes the received timestamp, and each transaction can be determined by the timestamp.
  • the blockchain node can first obtain its pre-stored leaf nodes.
  • a corresponding node identifier such as a node ID (IDentity)
  • IDentity node ID
  • the corresponding leaf node may be searched through the pre-recorded node identifier, and the data stored in each leaf node may be acquired.
  • the amount of data stored may be different due to factors such as different time periods and/or different regions, which may result in a larger amount of data accumulated in one or more leaf nodes, and a larger amount of data in other leaf nodes. Small, this causes the amount of data stored in the leaf nodes of the blockchain to be unbalanced.
  • the data in the leaf node may be distributed to multiple servers in the server cluster for processing, and the check value may be dispersed through the server cluster. Calculate the pressure to increase computational efficiency.
  • the blockchain node may distribute the data of the leaf node to the server in the server cluster in units of leaf nodes. For example, if the number of servers in the server cluster may be equal to the number of leaf nodes, Then the blockchain node can send data of one leaf node to each server in the server cluster, so that each server in the server cluster contains only data of one leaf node.
  • a plurality of distribution methods may be included, for example, the leaf node and its data are sent to the server in the server cluster by means of random distribution, so that the number of leaf nodes received by different servers may be the same.
  • the data of the leaf node may be distributed according to the data amount of the data of the leaf node.
  • the block chain node may separately count the data amount of each leaf node, and then uniformly distribute the data of the leaf node to the data.
  • the server in the server cluster if it includes 6 leaf nodes, the data volume is 50MB, 20MB, 30MB, 40MB, 10MB, and 10MB, respectively, and the data of the leaf node with the data volume of 50 MB can be sent to the first one in the server cluster.
  • the server can send the data of the leaf nodes with the data volume of 20MB and 30MB to the second server in the server cluster, and can send the data of the leaf nodes with the data volume of 40MB, 10MB and 10MB to the third in the server cluster. server.
  • the server may calculate the check value of the received data of each leaf node. For example, the server calculates the MD5 value of the received leaf node data by using a message digest algorithm (such as the MD5 algorithm). For example, if the data of two leaf nodes is received in a server, which is the data of the leaf node 1 and the data of the leaf node 2, the server can calculate the MD5 value of the data of the leaf node 1, and calculate the MD5 of the data of the leaf node 2. The value, thereby obtaining the check value of the data of each leaf node received.
  • a message digest algorithm such as the MD5 algorithm
  • step S102 the root check value of the data in the block chain node is further acquired according to the check value of the data of the leaf node calculated by the server in the server cluster.
  • each server may send the check value of the calculated data of the leaf node to the block chain node.
  • the root check value of the data (ie, state) in the block chain node may be calculated based on the check value of the data of each leaf node. .
  • multiple intermediate nodes may be set between the leaf node and the root node corresponding to the root check value, as shown in FIG. 2 .
  • A, B, C, and D are leaf nodes, A1, A2, A3...Ap, B1, B2, B3...Bq, C1, C2, C3...Cr and D1, D2, D3... Dk represents data respectively, and the check value is a hash value.
  • the hash value of leaf node A is hash (A1A2A3...Ap)
  • the hash value of leaf node B is hash (B1B2B3...Bq).
  • the hash value of leaf node C is hash (C1C2C3...Cr)
  • the hash value of leaf node D is hash (D1D2D3...Dk)
  • M and N are intermediate nodes. Therefore, the hash value of M is hash.
  • the block chain node can verify whether the new transaction data is valid by comparing the root check value of the data in the obtained block chain node with the root check value calculated by the blockchain node that sends the new transaction data. Then, the blockchain node can record the relevant data of the above transaction, and if it is invalid, it can refuse to record the related data of the above transaction.
  • the server cluster may be configured with a management server or a management server cluster, and the management server or the management server cluster may be other to the server cluster.
  • the server makes adjustments and controls.
  • the check value of the data of the leaf node may be sent to the management server or the management server cluster.
  • the management server or the management server cluster can calculate the root check value of the data in the blockchain node by the above calculation method.
  • the management server or the management server cluster may send the root check value of the data in the obtained blockchain node to the blockchain node, and the blockchain node receives the check value, and then the verification value may be verified by the check value.
  • the plurality of servers in the server cluster are calculated in parallel to obtain the check value of the data of the leaf nodes in the block chain node, so that the calculation of the root check value of the data of the block chain node is no longer dependent on the single machine processing, and the data is improved.
  • the calculation efficiency of the check value is the most efficient.
  • An embodiment of the present application provides a data processing method, by distributing data of leaf nodes pre-stored in a blockchain node to a server in a server cluster, so that servers in the server cluster respectively calculate data of the allocated leaf nodes. Checking the value, and further obtaining the root check value of the data in the block chain node according to the check value of the data of the leaf node calculated by the server in the server cluster, so that the data of the leaf node is distributed to the server Clustering, and then calculating the check value of the data of the distributed leaf node through each server in the server cluster, so that the data can be distributed to the server cluster to calculate the check value of the data of the leaf node in parallel, thereby shortening the calculation process
  • the embodiment of the present application provides a data processing method.
  • the execution entity of the method may be a server cluster.
  • the server cluster may include multiple servers, and each server may calculate a check value of the data.
  • the method can include the following steps:
  • step S301 the data of the leaf node distributed by the blockchain node is received.
  • the blockchain node when the data in the blockchain node needs to be verified, the blockchain node can obtain the data of the leaf node stored by the block, and can distribute the leaf node to the server in the server cluster in units of leaf nodes.
  • the specific distribution method, and the distribution process refer to the related content of the foregoing step S101, and details are not described herein again.
  • the server in the server cluster can receive the data of the leaf node distributed by the blockchain node.
  • details refer to the related content in step S101 above, and details are not described herein.
  • step S302 a check value of the data of the leaf node distributed as described above is calculated for acquiring a root check value of the data in the block chain node.
  • the servers in the server cluster can separately calculate the check values of the data of each leaf node received. After the calculation is completed, the calculated check value of the data of the leaf node can be sent to the blockchain node.
  • the block chain node may further calculate the root check value of the data in the block chain node based on the check value of the data of the leaf node returned by the server.
  • the root check value of the data in the blockchain node may also be calculated by the server cluster, that is, as described above, the management server or the management server cluster may be set in the server cluster.
  • the calculated value of the calculated data of each leaf node is aggregated to obtain a root check value of the data in the block chain node.
  • An embodiment of the present application provides a data processing method, by distributing data of leaf nodes pre-stored in a blockchain node to a server in a server cluster, so that servers in the server cluster respectively calculate data of the allocated leaf nodes. Checking the value, and further obtaining the root check value of the data in the block chain node according to the check value of the data of the leaf node calculated by the server in the server cluster, so that the data of the leaf node is distributed to the server Clustering, and then calculating the check value of the data of the distributed leaf node through each server in the server cluster, so that the data can be distributed to the server cluster to calculate the check value of the data of the leaf node in parallel, thereby shortening the calculation process
  • the embodiment of the present application provides a data processing method, which may be jointly performed by a blockchain node and a server cluster.
  • the embodiment of the present application is described in detail with reference to the hash value of the check value.
  • the method may specifically include the following steps:
  • step S401 the block chain node respectively transmits data of a predetermined number of leaf nodes to the server in the server cluster according to the number of pre-stored leaf nodes.
  • the predetermined number may be set according to the actual situation, such as 5 or 10, etc., which is not limited by the embodiment of the present application.
  • the data in the blockchain node in order to improve the verification efficiency and reduce the resource consumption, the data in the blockchain node usually adopts the design mechanism of the Merkle tree.
  • the blockchain in the embodiment of the present application in order to maximize the calculation efficiency of the check value of the data in the blockchain node based on the existing design mechanism of the blockchain data, the blockchain in the embodiment of the present application
  • the data of the node can still adopt the design mechanism of the Merkle tree.
  • the Merkle tree may include a plurality of leaf nodes (ie, buckets), and the node identifiers of the leaf nodes in the Merkle tree may be recorded in the block chain node. When the data of the transaction needs to be verified, the node identifier of each leaf node in the Merkle tree can be obtained.
  • the blockchain node may separately acquire data of each leaf node based on the node identifiers of the respective leaf nodes, and at the same time, obtain the number of leaf nodes stored in the blockchain node, and the servers in the server cluster. number.
  • the number of leaf nodes that need to be distributed in each server can be determined according to the number of servers and the number of leaf nodes. For example, if there are 10 leaf nodes and 10 servers in the server cluster, then one leaf can be sent to each server.
  • the data of the node it can also be sent to one of the server clusters in groups of two or five leaf nodes.
  • the blockchain node may also distribute the node identifier of the leaf node to the server in the server cluster, and the server may allocate the node identifier to the blockchain according to the distributed node identifier.
  • the node sends a data acquisition instruction including the foregoing node identifier, and after receiving the data acquisition instruction, the blockchain node may extract the node identifier in the data acquisition instruction, and may find the data of the corresponding leaf node by using the node identifier to send to the corresponding The server, in this way, the server cluster can pull the data of the corresponding leaf node from the blockchain node.
  • the data of the leaf nodes may be distributed to the servers in the server cluster according to the data volume of the leaf nodes, and the data of the leaf nodes may be distributed to the servers in the server cluster in a random manner, etc.
  • the data of the leaf nodes may be distributed to the servers in the server cluster in a random manner, etc.
  • step S402 the server cluster calculates a check value of the data of the leaf node distributed as described above.
  • step S403 the server cluster transmits the check value of the data of the leaf node distributed as described above to the block chain node.
  • step S404 the block chain node determines the root check value of the Merkle tree corresponding to the leaf node according to the check value of the leaf node.
  • the blockchain node may construct a corresponding Merkle tree through the leaf node, because the hash value of the leaf node in the Merkle tree has been determined, and only The hash value of the root node in the remaining Merkle tree (that is, the root check value of the Merkle tree) has not been obtained yet, and the hash value of the Merkle tree corresponding to the leaf node can be calculated upward based on the hash value of the leaf node, thereby obtaining the above leaf.
  • the root check value of the Merkle tree corresponding to the node is the hash value of the leaf node in the Merkle tree.
  • step S405 the block chain node determines the root check value of the Merkle tree as the root check value of the data in the block chain node.
  • the root check value may be calculated by the server cluster, where the specific processing may include: calculating a check value of the data of the leaf node that is distributed, and acquiring a blockchain based on the check value of the data of the distributed leaf node.
  • the root check value of the data in the node is sent to the block chain node.
  • An embodiment of the present application provides a data processing method, by distributing data of leaf nodes pre-stored in a blockchain node to a server in a server cluster, so that servers in the server cluster respectively calculate data of the allocated leaf nodes. Checking the value, and further obtaining the root check value of the data in the block chain node according to the check value of the data of the leaf node calculated by the server in the server cluster, so that the data of the leaf node is distributed to the server Clustering, and then calculating the check value of the data of the distributed leaf node through each server in the server cluster, so that the data can be distributed to the server cluster to calculate the check value of the data of the leaf node in parallel, thereby shortening the calculation process
  • the embodiment of the present application provides a data processing method, which may be jointly performed by a blockchain node and a server cluster.
  • the embodiment of the present application is described in detail with reference to the hash value of the check value.
  • the method may specifically include the following steps:
  • step S601 the blockchain node distributes the data of the pre-stored leaf nodes to the servers in the server cluster.
  • step S601 For the specific processing of the foregoing step S601, refer to the related content in the foregoing Embodiment 1 and Embodiment 2, and details are not described herein again.
  • step S602 the server cluster allocates the data of the leaf node to the pre-set child leaf node according to the data amount of the leaf node.
  • a child leaf node may be a data packet consisting of one or more pieces of data, and a leaf node may be a container in the Merkle tree for storing data.
  • the number of child leaf nodes may be greater than the number of leaf nodes. For example, if the number of leaf nodes is 5, the number of child leaf nodes may be 20 or the like.
  • the data volume of one or more leaf nodes in the leaf node pre-stored in the blockchain node may be larger (for example, including 1 million pieces of data, etc.), so that when the data of the leaf node is distributed to
  • a server in a server cluster calculates its hash value, the server needs to splicing a large amount of data in the leaf node to obtain a spliced string, and then calculating the hash value of the spliced string. It still consumes a lot of time, and the resource consumption of the server is still large.
  • multiple sub-leaf nodes can be set in advance, or the maximum amount of data that can be accommodated for each sub-leaf node, such as 1 GB or 500 MB, can be set according to actual needs. Wait.
  • the leaf node data may be allocated to a plurality of pre-set sub-leaf nodes in a random or evenly distributed manner.
  • the processing of the foregoing step S602 can be various.
  • the following provides an optional processing manner, which may include the following: sorting the data of the leaf node, and sequentially selecting the predetermined number of data from the sorted data. Set in the above child leaf node, and set the corresponding child node identifier for the child leaf node.
  • the server cluster can determine that the overall processing efficiency of the data is high (eg, higher than a certain setting efficiency) according to the data processing rate of each server, the rate of calculating the check value, and the number of servers included in the server cluster. Based on the threshold, etc., the amount of data that each server can process, and thus the amount of data or the number of data that each sub-leaf node can hold.
  • the server cluster can calculate the total data amount of the data of the leaf nodes distributed in each server, and then, the data of the distributed leaf nodes can be sorted according to the timestamps such as the time in which the data is stored in the blockchain node, and can be sorted.
  • Each of the plurality of data nodes sequentially allocates a predetermined number of data for each of the child leaf nodes, and sets corresponding child node identifiers for the child leaf nodes according to the order of the data, so as to represent data of the child leaf node data at all the child leaf nodes.
  • each piece of data is 5 MB
  • the amount of data is 250 MB.
  • the data volume of each sub-leaf node can be 25 MB, Use 250/25 to get 10, therefore, 10 sub-leaf nodes can be obtained, and the number of 1-10 can be set as the child node identifier for the child leaf nodes according to the order of the data.
  • the storage location of the above 50 data can be To: store 1 to 5 pieces of data in the order of 1 sub-leaf nodes, and store 6 to 10 pieces of data in the order of 2 sub-leaf nodes, and arrange 11 to 15 pieces in order.
  • the data is stored in the child leaf node numbered 3, and so on, to obtain the storage location of each piece of data. Since each piece of data is 5MB, each sub-leaf node can contain 5 pieces of data.
  • step S603 the server cluster calculates a check value of the data of each child leaf node.
  • the server in the server cluster obtains the corresponding sub-leaf node
  • the data stored in each sub-leaf node can be obtained, and then the check value of each sub-leaf node can be calculated according to a predetermined check algorithm, for example, Sort the data stored in a sub-leaf node, and then use the SHA256 (Secure Hash Algorithm 256) to calculate the SHA256 value (ie, the hash value) as the sub-leaf node for the sorted data.
  • Check value for example, Sort the data stored in a sub-leaf node, and then use the SHA256 (Secure Hash Algorithm 256) to calculate the SHA256 value (ie, the hash value) as the sub-leaf node for the sorted data.
  • step S604 the server cluster calculates a check value of the data of the leaf node to be distributed according to the check value of the data of each of the child leaf nodes.
  • the check values of the sub-leaf nodes may be sorted according to the order of the sub-node identifiers, and then may be predetermined based on the check values of the respective sub-leaf nodes.
  • the check algorithm performs a summary calculation to obtain a check value of the corresponding leaf node, thereby obtaining a check value of the data of the leaf node distributed by the block chain node.
  • the hash value of the data of the 10 sub-leaf nodes can be obtained by the processing of the above step S603, since the data of the 10 sub-leaf nodes is allocated by the data of one leaf node, therefore, The hash value of the data of the 10 sub-leaf nodes can be obtained separately, and the hash value of the corresponding leaf node can be obtained by performing the summary calculation as shown in FIG. 2 .
  • the method for obtaining the data of the sub-leaf node may be obtained by pulling the sub-node identifier of the sub-leaf node, and the processing of step S604 may be: according to the sub-leaf node.
  • the child node identifier and the check value of each child leaf node are used to calculate the check value of the data of the leaf node that is distributed. For details, refer to the related content, and details are not described herein.
  • step S605 the server cluster transmits the check value of the data of the leaf node distributed as described above to the block chain node.
  • step S606 the blockchain node determines the root check value of the Merkle tree corresponding to the leaf node according to the check value of the leaf node.
  • the root check value of the data of the block chain node may be calculated by using a predetermined check algorithm based on the check value of the leaf node.
  • a node distribution tree ie, a Merkle tree
  • leaf nodes such as A-B-C-F, A-B-E, and A-D
  • the root check value of the Merkle tree can be calculated based on the check value of the leaf node, and the blockchain can be obtained.
  • the root checksum of the node's data may be obtained by using a predetermined check algorithm based on the check value of the leaf node.
  • step S607 the block chain node determines the root check value of the Merkle tree as the root check value of the data in the block chain node.
  • the embodiment of the present application provides a data processing method, by distributing a node identifier of a leaf node to a server cluster, so that the server cluster obtains the data amount of the data stored by the leaf node in the target blockchain, and the number of each predetermined number of The data is allocated to the child leaf node, and then the check value of each child leaf node is calculated, and then the check value of the corresponding leaf node can be determined according to the check value of each child leaf node, and finally the check value of the leaf node is provided.
  • the block chain node is used to calculate the check value of the data in the block chain node, so that the data stored in the leaf node is reallocated through the server cluster, and the child leaf node is obtained and the check value is calculated, so that the data can be evenly distributed.
  • Parallel calculation of the check value in the computing server cluster can shorten the time consumed by the calculation process, improve the calculation efficiency, ensure the normal generation of the block, and the normal operation of the blockchain.
  • the embodiment of the present application provides a data processing method, which may be jointly performed by a blockchain node and a server cluster, where the server cluster may further include a first server cluster and a second server.
  • Cluster as shown in FIG. 8, FIG. 8 provides a data processing system, which may include two hierarchical server clusters, namely a first server cluster and a second server cluster, wherein the first server cluster is located in the blockchain. The next level of the node, the second server cluster is located at the next level of the first server cluster.
  • the embodiment of the present application is described in detail with reference to the hash value of the check value. For other types of check values, reference may be made to the related content in the embodiment of the present application, and details are not described herein again.
  • the method may specifically include the following steps:
  • step S701 the blockchain node acquires the node identifier of the leaf node stored in advance.
  • a leaf node is generated correspondingly in the block chain node, and the node identifier of the leaf node is generated, so that the block chain can include multiple leaf nodes.
  • Each leaf node stores a certain amount of data.
  • the node identifier may be stored, and the location of the leaf node corresponding to the node identifier in all leaf nodes of the blockchain node may be recorded.
  • the generated node identifier is F, and the location may be A-B-C-F.
  • step S702 the blockchain node distributes the node identifier to the server in the first server cluster.
  • the blockchain node may acquire data stored in the leaf node it contains, and may set the node identifier of the leaf node according to a certain allocation rule pre-defined or randomly. Divided into one or more groups, each group of node identifiers can be sent to one of the servers in the first server cluster.
  • step S703 the first server cluster acquires data of the leaf node corresponding to the node identifier from the blockchain node according to the distributed node identifier.
  • the server in the first server cluster may extract data of the leaf node corresponding to the node identifier from the blockchain node by sending the data acquisition instruction including the node identifier to the blockchain device.
  • step S704 the first server cluster generates one or more child leaf nodes according to the acquired data amount of the leaf nodes.
  • a child leaf node may be a data packet consisting of one or more pieces of data, and a leaf node is a container in the Merkle tree for storing data.
  • the amount of data or the number of data that the child leaf node can accommodate can be set in advance.
  • the total amount of data of the leaf nodes distributed by each server in the first server cluster may be calculated, and one or more child leaf nodes may be generated according to the amount of data or the number of data that each child leaf node can accommodate.
  • step S705 the first server cluster sorts the data of the leaf node, and sequentially selects a predetermined number of data from the sorted data to be respectively set in the corresponding child leaf node, and sets a corresponding child for the child leaf node. Node ID.
  • the length of time consumed by any one of the servers in the first server cluster to calculate the hash value of one or more data may be pre-tested by means of repeated testing, and the duration of the consumption may be selected from the short, and the processing pressure of the server
  • the number of pieces may be set to a predetermined number, such as 30 or 50. Since each piece of data is time-stamped during storage or blockchain transactions, the time of storage or transaction of each piece of data can be determined by timestamp.
  • the timestamp in each piece of data can be obtained, and the plurality of pieces of data are sorted by the timestamp sequence, and the predetermined number of pieces of data can be sequentially selected from the sorted pieces of data to be allocated to the corresponding child leaf nodes.
  • the child node identifiers may be set for the corresponding child leaf nodes based on the allocated data.
  • the number of the predetermined number is three
  • the data of a leaf node may include A, B, C, D, E, F, G, H, and K.
  • the order of the data may be HGFEDCBAK
  • the HGF three pieces of data can be allocated to one sub-leaf node
  • the EDC three pieces of data are allocated to one sub-leaf node
  • the BAK three pieces of data are allocated to one sub-leaf node, and in order to mark the order relationship of the data stored in the three sub-leaf nodes
  • the child node identifier of the child leaf node where the HGF is located may be set to the child node 1, the child node identifier of the child leaf node where the EDC is located is set to the child node 2, and the child node identifier of the child leaf node where the BAK is located is set as the child node. 3.
  • step S706 the first server cluster distributes the data of the child leaf node to the server in the second server cluster.
  • the metric data such as the current remaining bandwidth and/or the data transmission rate of each server in the second server cluster may be separately obtained, and the computing power of each server in the first server cluster may be performed based on the obtained indicator data.
  • the evaluation may send data of the corresponding child leaf node to each server in the second server cluster according to the size of the computing capability.
  • the number of child leaf nodes distributed to the servers in the second server cluster may also be adjusted. Specifically, the current remaining bandwidth of each server in the second server cluster may be separately obtained. / or data transmission rate and other indicator data, the computing power of each server may be evaluated based on the obtained indicator data, and the corresponding child leaf nodes may be allocated to each server in the second server cluster according to the computing power, for example,
  • the two server clusters include five servers, and each of the servers can be pre-allocated with two sub-leaf nodes.
  • 3 of the 10 sub-leaf nodes can be The data of the child leaf nodes is sent to the server. If it is determined by calculation that the computing power of a server in the second server cluster is the weakest, the data of one of the ten child leaf nodes may be sent to the server. In the above manner, the generated one or more child leaf nodes may be balanced and provided to each server in the second server cluster.
  • step S707 the second server cluster calculates the hash value of each child leaf node and feeds it back to the server in the corresponding first server cluster.
  • the server in the second server cluster receives the corresponding sub-leaf node
  • the data in each sub-leaf node can be extracted, and the data can be sequentially arranged according to the time stamp of each piece of data, and the order can be obtained.
  • a string consisting of data using a predetermined hash algorithm to calculate the hash value of the string, which is the hash value of the child leaf node.
  • the second server cluster can obtain the hash value of each child leaf node, and then can be sent to the server in the corresponding first server cluster through the corresponding server.
  • step S708 the first server cluster determines the hash value of the distributed leaf node according to the hash value of each child leaf node and the child node identifier of the child leaf node sent by the second server cluster.
  • the server in the first server cluster may separately obtain the child node identifier of each child leaf node, and then, according to the child of each child leaf node, The node identifier sorts the child leaf nodes, and hashes the sorted child leaf nodes to obtain a hash value of the child leaf nodes.
  • the order of the hash values of the child leaf nodes may be determined according to the order of the child leaf nodes, and the hash values of the sequenced columns may be formed into a string, and the hash value of the string is calculated by using a predetermined hash algorithm. Is the hash value of the corresponding leaf node.
  • the hash value of the leaf node may be determined by other hash value aggregation methods, for example, calculating an average value of hash values of one or more child leaf nodes as a hash value of the leaf node, or, based on each The weight of the child leaf node and the hash value of each child leaf node are calculated to obtain the hash value of the leaf node and the like.
  • step S709 the first server cluster transmits the hash value of the distributed leaf node to the blockchain node.
  • step S710 the block chain node determines the root check value of the Merkle tree corresponding to the leaf node according to the check value of the leaf node, and determines the root check value of the Merkle tree as the data in the block chain node. Root check value.
  • the embodiment of the present application provides a data processing method, which generates one or more child leaf nodes allocated with a predetermined number of pieces of data through data amount of leaf nodes in a block chain node, and then distributes the child leaf nodes.
  • the node calculates the root check value of the data in the block chain node, so that the data stored in the leaf node is reallocated through the first server cluster to obtain the child leaf node, and then distributed to the second server cluster to calculate the check value.
  • the data can be evenly distributed to the second server cluster to calculate the check value in parallel, thereby shortening the time consumed by the calculation process, improving the calculation efficiency, ensuring the normal generation of the block, and the normal operation of the blockchain.
  • the embodiment of the present application further provides a data processing apparatus, as shown in FIG. 9.
  • the data processing device may be the blockchain node provided by the foregoing embodiment, and may be a terminal device (such as a personal computer or the like) or a server.
  • the device may include a data distribution module 901 and a root check value obtaining module 902. :
  • the data distribution module 901 is configured to distribute data of the leaf nodes pre-stored in the blockchain node to the server in the server cluster, so that the server in the server cluster separately calculates the check value of the data of the allocated leaf node. ;
  • the root check value obtaining module 902 is configured to further obtain a root check value of the data in the block chain node according to the check value of the data of the leaf node calculated by the server in the server cluster.
  • the root check value obtaining module 902 is configured to receive a root check value of data in the blockchain node sent by a server in the server cluster.
  • the root check value obtaining module 902 is configured to determine, according to the check value of the leaf node, a root check value of the Merkle tree corresponding to the leaf node, and the root of the Merkle tree The check value is determined as the root check value of the data in the block chain node.
  • the data distribution module 901 is configured to separately send data of a predetermined number of leaf nodes to a server in the server cluster according to the number of leaf nodes pre-stored in the blockchain node.
  • the check value is a hash value.
  • An embodiment of the present application provides a data processing apparatus, by distributing data of leaf nodes pre-stored in a blockchain node to a server in a server cluster, so that servers in the server cluster respectively calculate data of the allocated leaf nodes. Checking the value, and further obtaining the root check value of the data in the block chain node according to the check value of the data of the leaf node calculated by the server in the server cluster, so that the data of the leaf node is distributed to the server Clustering, and then calculating the check value of the data of the distributed leaf node through each server in the server cluster, so that the data can be distributed to the server cluster to calculate the check value of the data of the leaf node in parallel, thereby shortening the calculation process
  • the embodiment of the present application further provides a data processing apparatus, as shown in FIG.
  • the data processing device may be the server cluster provided by the foregoing embodiment, and the device may include a data receiving module 1001 and a check value obtaining module 1002, where:
  • the data receiving module 1001 is configured to receive data of a leaf node distributed by the blockchain node;
  • the check value obtaining module 1002 is configured to calculate a check value of the data of the distributed leaf node, so as to obtain a root check value of the data in the block chain node.
  • the device further includes:
  • a data distribution module configured to allocate data of the leaf node to a preset child leaf node according to the data amount of the leaf node
  • a calculation module configured to calculate a check value of data of each child leaf node
  • the check value obtaining module 1002 is configured to calculate a check value of the data of the distributed leaf node according to the check value of the data of each of the child leaf nodes.
  • the data distribution module is configured to sort data of the leaf node, and sequentially select a predetermined number of data from the sorted data to be respectively set in the child leaf node, and The child leaf node sets the corresponding child node identifier;
  • the check value obtaining module 1002 is configured to calculate a check value of the data of the distributed leaf node according to the child node identifier of the child leaf node and the check value of each of the child leaf nodes. .
  • the check value obtaining module 1002 is configured to calculate a check value of the data of the distributed leaf node, and send a check value of the data of the distributed leaf node to the block.
  • a chain node so that the block chain node calculates a root check value of data in the block chain node according to a check value of data of the leaf node; or, calculating data of the distributed leaf node a check value; acquiring a root check value of the data in the block chain node based on a check value of the data of the distributed leaf node, and transmitting the root check value to the block chain node.
  • An embodiment of the present application provides a data processing apparatus, by distributing data of leaf nodes pre-stored in a blockchain node to a server in a server cluster, so that servers in the server cluster respectively calculate data of the allocated leaf nodes. Checking the value, and further obtaining the root check value of the data in the block chain node according to the check value of the data of the leaf node calculated by the server in the server cluster, so that the data of the leaf node is distributed to the server Clustering, and then calculating the check value of the data of the distributed leaf node through each server in the server cluster, so that the data can be distributed to the server cluster to calculate the check value of the data of the leaf node in parallel, thereby shortening the calculation process
  • PLD Programmable Logic Device
  • FPGA Field Programmable Gate Array
  • HDL Hardware Description Language
  • the controller can be implemented in any suitable manner, for example, the controller can take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (eg, software or firmware) executable by the (micro)processor.
  • computer readable program code eg, software or firmware
  • examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, The Microchip PIC18F26K20 and the Silicone Labs C8051F320, the memory controller can also be implemented as part of the memory's control logic.
  • the controller can be logically programmed by means of logic gates, switches, ASICs, programmable logic controllers, and embedding.
  • Such a controller can therefore be considered a hardware component, and the means for implementing various functions included therein can also be considered as a structure within the hardware component.
  • a device for implementing various functions can be considered as a software module that can be both a method of implementation and a structure within a hardware component.
  • the system, device, module or unit illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product having a certain function.
  • a typical implementation device is a computer.
  • the computer can be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or A combination of any of these devices.
  • embodiments of the present application can be provided as a method, system, or computer program product.
  • the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware.
  • the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
  • a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • processors CPUs
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • the memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium, such as read only memory (ROM) or flash memory.
  • RAM random access memory
  • ROM read only memory
  • Memory is an example of a computer readable medium.
  • Computer readable media includes both permanent and non-persistent, removable and non-removable media.
  • Information storage can be implemented by any method or technology.
  • the information can be computer readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory. (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disk read only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, Magnetic tape cartridges, magnetic tape storage or other magnetic storage devices or any other non-transportable media can be used to store information that can be accessed by a computing device.
  • computer readable media does not include temporary storage of computer readable media, such as modulated data signals and carrier waves.
  • embodiments of the present application can be provided as a method, system, or computer program product.
  • the application can take the form of an entirely hardware embodiment, an entirely software embodiment or a combination of software and hardware.
  • the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • the application can be described in the general context of computer-executable instructions executed by a computer, such as a program module.
  • program modules include routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types.
  • the present application can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are connected through a communication network.
  • program modules can be located in both local and remote computer storage media including storage devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本申请实施例公开了一种数据处理方法及装置,该方法包括:将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使所述服务器集群中的服务器分别计算分配的叶子节点的数据的校验值;根据所述服务器集群中的服务器计算得到的所述叶子节点的数据的校验值,进一步获取所述区块链节点中的数据的根校验值。利用本申请实施例,可以缩短计算数据校验值过程中消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。

Description

一种数据处理方法及装置 技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法及装置。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,它需要每个区块链节点的状态保持一致(包括数据库的状态),这样,当某个区块链节点产生一个新交易(即产生新数据)时,需要将该新数据同步给各个区块链节点,同时,各个区块链节点需要对该数据进行验证。
现有技术中,区块链节点对数据的验证方式,通常通过基于bucket-tree的数据校验值(如哈希hash值)来判定。具体地,例如fabric(一个已实现的区块链应用),区块链节点中的数据采用merkle树的结构存储,在merkle树中包括一个或多个叶子节点(即bucket)。区块链节点在获取上述数据的校验值(如哈希值)时,通常采用单一计算设备(如终端设备或服务器等)实现,具体地,该计算设备遍历每个叶子节点,并对叶子节点的数据排序后拼接成为一个字符串,计算该字符串的校验值,作为相应的叶子节点的数据的检验值,然后,基于每个叶子节点的数据的校验值计算出merkle树的根校验值(如根哈希值)即为区块链节点中的数据的校验值,基于该校验值可以对上述数据进行验证。
但是,由于采用单一计算设备计算区块链节点中的数据的根校验值,而且由于每次计算都是通过将叶子节点的数据进行拼接得到一个字符串来完成,当单个或多个叶子节点中累计的数据量很大(如有1000万条数据)时,通过单一计算设备执行上述计算过程会消耗较长时间,使得计算效率较低,甚至会使得产生区块的时间延长,阻碍区块链的正常运行。
发明内容
本申请实施例的目的是提供一种数据处理方法及装置,以缩短计算过程消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。
为解决上述技术问题,本申请实施例是这样实现的:
本申请实施例提供一种数据处理方法,所述方法包括:
将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使所述服务器集群中的服务器分别计算分配的叶子节点的数据的校验值;
根据所述服务器集群中的服务器计算得到的所述叶子节点的数据的校验值,进一步获取所述区块链节点中的数据的根校验值。
可选地,所述根据所述服务器集群中的服务器计算得到的所述叶子节点的校验值,进一步获取所述区块链节点中的数据的根校验值,包括:
接收所述服务器集群中的服务器发送的所述区块链节点中的数据的根校验值。
可选地,所述根据所述服务器集群中的服务器计算得到的所述叶子节点的校验值,进一步获取所述区块链节点中的数据的根校验值,包括:
根据所述叶子节点的校验值,确定所述叶子节点对应的Merkle树的根校验值;
将所述Merkle树的根校验值确定为所述区块链节点中的数据的根校验值。
可选地,所述将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,包括:
根据所述区块链节点中预先存储的叶子节点的数目,分别向所述服务器集群中的服务器发送预定数目的叶子节点的数据。
可选地,所述校验值为哈希值。
本申请实施例还提供一种数据处理方法,所述方法包括:
接收区块链节点分发的叶子节点的数据;
计算所述分发的叶子节点的数据的校验值,以用于获取所述区块链节点中的数据的根校验值。
可选地,所述接收区块链节点分发的叶子节点的数据之后,所述方法还包括:
根据所述叶子节点的数据量,将所述叶子节点的数据分配到预先设置的子叶子节点中;
计算每个子叶子节点的数据的校验值;
相应的,所述计算所述分发的叶子节点的数据的校验值,包括:
根据所述每个子叶子节点的数据的校验值,计算所述分发的叶子节点的数据的校验值。
可选地,所述根据所述叶子节点的数据量,将所述叶子节点的数据分配到预先设置的子叶子节点中,包括:
对所述叶子节点的数据进行排序,从排序后的数据中顺序选取预定条数的数据分别设置在所述子叶子节点中,并为所述子叶子节点设置相应的子节点标识;
相应地,所述根据所述每个子叶子节点的数据的校验值,计算所述分发的叶子节点的数据的校验值,包括:
根据所述子叶子节点的子节点标识和每个所述子叶子节点的校验值,计算所述分发的叶子节点的数据的校验值。
可选地,所述计算所述分发的叶子节点的数据的校验值,以用于获取所述区块链节点中的数据的根校验值,包括:
计算所述分发的叶子节点的数据的校验值,将所述分发的叶子节点的数据的校验值发送给所述区块链节点,以使所述区块链节点根据所述叶子节点的数据的校验值计算所述区块链节点中的数据的根校验值;或者,
计算所述分发的叶子节点的数据的校验值;基于所述分发的叶子节点的数据的校验值获取所述区块链节点中的数据的根校验值,将所述根校验值发送给所述区块链节点。
本申请实施例提供一种数据处理装置,所述装置包括:
数据分发模块,用于将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使所述服务器集群中的服务器分别计算分配的叶子节点的数据的校验值;
根校验值获取模块,用于根据所述服务器集群中的服务器计算得到的所述叶子节点的数据的校验值,进一步获取所述区块链节点中的数据的根校验值。
可选地,所述根校验值获取模块,用于接收所述服务器集群中的服务器发送的所述区块链节点中的数据的根校验值。
可选地,所述根校验值获取模块,用于根据所述叶子节点的校验值,确定所述叶子节点对应的Merkle树的根校验值;将所述Merkle树的根校验值确定为所述区块链节点中的数据的根校验值。
可选地,所述数据分发模块,用于根据所述区块链节点中预先存储的叶子节点的数目,分别向所述服务器集群中的服务器发送预定数目的叶子节点的数据。
可选地,所述校验值为哈希值。
本申请实施例还提供一种数据处理装置,所述装置包括:
数据接收模块,用于接收区块链节点分发的叶子节点的数据;
校验值获取模块,用于计算所述分发的叶子节点的数据的校验值,以用于获取所述区块链节点中的数据的根校验值。
可选地,所述装置还包括:
数据分配模块,用于根据所述叶子节点的数据量,将所述叶子节点的数据分配到预先设置的子叶子节点中;
计算模块,用于计算每个子叶子节点的数据的校验值;
相应的,所述校验值获取模块,用于根据所述每个子叶子节点的数据的校验值,计算所述分发的叶子节点的数据的校验值。
可选地,所述数据分配模块,用于对所述叶子节点的数据进行排序,从排序后的数据中顺序选取预定条数的数据分别设置在所述子叶子节点中,并为所述子叶子节点设置相应的子节点标识;
相应地,所述校验值获取模块,用于根据所述子叶子节点的子节点标识和每个所述子叶子节点的校验值,计算所述分发的叶子节点的数据的校验值。
可选地,所述校验值获取模块,用于计算所述分发的叶子节点的数据的校验值,将所述分发的叶子节点的数据的校验值发送给所述区块链节点,以使所述区块链节点根据所述叶子节点的数据的校验值计算所述区块链节点中的数据的根校验值;或者,计算所述分发的叶子节点的数据的校验值;基于所述分发的叶子节点的数据的校验值获取所述区块链节点中的数据的根校验值,将所述根校验值发送给所述区块链节点。
由以上本申请实施例提供的技术方案可见,本申请实施例通过将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使服务器集群中的服务器分别计算分配的叶子节点的数据的校验值,进而,根据服务器集群中的服务器计算得到的叶子节点的数据的校验值,进一步获取区块链节点中的数据的根校验值,这样,通过将叶子节点的数据分发给服务器集群,然后,再通过服务器集群中的各个服务器分别计算分发到的叶子节点的数据的校验值,使得数据可以分发到服务器集群中并行计算叶子节点的数据的校验值,从而可以缩短计算过程消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种数据处理方法实施例;
图2为本申请一种数据处理逻辑示意图;
图3为本申请另一种数据处理方法实施例;
图4为本申请再一种数据处理方法实施例;
图5为本申请一种数据处理系统的结构示意图;
图6为本申请又一种数据处理方法实施例;
图7为本申请又一种数据处理方法实施例;
图8为本申请另一种数据处理系统的结构示意图;
图9为本申请一种数据处理装置实施例;
图10为本申请另一种数据处理装置实施例。
具体实施方式
本申请实施例提供一种数据处理方法及装置。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
实施例一
如图1所示,本申请实施例提供一种数据处理方法,该方法的执行主体可以为区块链节点。该方法可以包括以下步骤:
在步骤S101中,将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使该服务器集群中的服务器分别计算分配的叶子节点的数据的校验值。
其中,叶子节点可以为没有子节点的节点,在区块链节点中通常包含有一 个或多个叶子节点(即bucket),每个叶子节点中存储有一定数据量的数据(具体可以为交易数据),叶子节点中存储的每一条数据的数据量可以设定有相应的数值范围,例如,每一条数据的数据量在100KB~5MB范围内,具体如1MB等。服务器集群可以是由多个相同或不同的服务器构成的能够为某一项或多项业务提供相应服务的群组。校验值可以是用于对文件或数据进行校验的字符串(如数值或代码等),在实际应用中,校验值可以是基于数据摘要等校验算法计算得到的数值,基于数据摘要的校验算法可以包括循环冗余校验算法、消息摘要算法、安全哈希算法等。
在实施中,区块链可以是一种去中心化的分布式数据库,也被称为分布式账簿。基于区块链技术,需要大量的信息记录储存器(如终端设备或服务器等)组成的分布式网络,每一笔新交易的传播都可以采用该分布式网络,根据P2P(Peer-to-peer,点对点)网络层协议,该交易的相关信息会由单个区块链节点被直接发送给全网其它所有的区块链节点中,以保证分布式网络中各个区块链节点中存储的数据一致。当某一个区块链节点记录一笔新交易时,需要将记录的新交易的数据同步给其它区块链节点,而其它区块链节点则需要对该数据进行验证,具体验证过程可以如下:
区块链节点中包含有一个或多个叶子节点,区块链节点中的数据分布在叶子节点中,其中叶子节点中的数据都包含有接收的时间戳,通过时间戳可以确定每笔交易的先后顺序。在进行验证时,区块链节点首先可以获取其预先存储的叶子节点。为了能够快速确定区块链节点中存储有哪些叶子节点和叶子节点的数目,可以在生成叶子节点时,为每个叶子节点设置相应的节点标识(如节点ID(IDentity,身份标识号码)),如5或A8等。在获取叶子节点时,可以通过预先记录的节点标识查找相应的叶子节点,并可以获取每个叶子节点中存储的数据。
由于不同时间段和/或不同地域等因素的影响存储的数据量可能不同,这样,可能会导致某一个或多个叶子节点中累积的数据量较大,而另一些叶子节点中的数据量较小,这样造成区块链的叶子节点中存储的数据量不均衡。为了不影响区块的生成、减小叶子节点中的数据的校验值的计算时间,可以将叶子节点中的数据分发给服务器集群中的多个服务器进行处理,通过服务器集群可以分散校验值的计算压力,从而提高计算效率。
区块链节点获取到各个叶子节点的数据后,可以以叶子节点为单位,将叶 子节点的数据分发给服务器集群中的服务器,例如,如果服务器集群中服务器的数目可以与叶子节点的数目相等,则区块链节点可以向服务器集群中的每个服务器发送一个叶子节点的数据,以使得服务器集群中的每个服务器中只包含有一个叶子节点的数据。除了上述分发方式外,还可以包括多种分发方式,例如,通过随机分发的方式将叶子节点及其数据发送给服务器集群中的服务器,这样,不同的服务器接收到的叶子节点的数目可能相同,也可能不同;再例如,可以根据叶子节点的数据的数据量来分发叶子节点的数据,具体地,区块链节点可以分别统计每个叶子节点的数据量,然后将叶子节点的数据均匀分发到服务器集群中的服务器,如包括6个叶子节点,数据量分别为50MB、20MB、30MB、40MB、10MB和10MB,则可以将数据量为50MB的叶子节点的数据发送给服务器集群中的第1个服务器,可以将数据量为20MB和30MB的叶子节点的数据发送给服务器集群中的第2个服务器,可以将数据量为40MB、10MB和10MB的叶子节点的数据发送给服务器集群中的第3个服务器。
服务器接收到发送的叶子节点的数据后,可以计算接收到的每个叶子节点的数据的校验值,例如,服务器通过消息摘要算法(如MD5算法)计算接收到的叶子节点的数据的MD5值,如某服务器中接收到两个叶子节点的数据,分别为叶子节点1的数据和叶子节点2的数据,该服务器可以计算叶子节点1的数据的MD5值,并计算叶子节点2的数据的MD5值,从而得到接收到的每个叶子节点的数据的校验值。
在步骤S102中,根据上述服务器集群中的服务器计算得到的上述叶子节点的数据的校验值,进一步获取区块链节点中的数据的根校验值。
在实施中,服务器集群中的服务器计算得到上述叶子节点的数据的校验值后,每个服务器可以将其计算得到的叶子节点的数据的校验值发送给区块链节点。区块链节点接收到其存储的每个叶子节点的数据的校验值后,可以基于每个叶子节点的数据的校验值计算区块链节点中的数据(即state)的根校验值。其中,在计算区块链节点中的数据的根校验值时,为了加快计算过程,可以在叶子节点与根校验值对应的根节点之间设置多个中间节点,如图2所示,其中A、B、C和D是叶子节点,A1、A2、A3...Ap,B1、B2、B3...Bq,C1、C2、C3...Cr和D1、D2、D3...Dk分别表示数据,以校验值为哈希值为例,叶子节点A的哈希值为hash(A1A2A3...Ap),叶子节点B的哈希值为hash(B1B2B3...Bq),叶子节点C的哈希值为hash(C1C2C3...Cr),叶子节点D的哈希值为hash (D1D2D3...Dk),M和N为中间节点,因此,M的哈希值为hash(AB),N的哈希值为hash(CD),则根节点的根校验值即为hash(MN)。区块链节点通过得到的区块链节点中的数据的根校验值与上述发送新交易数据的区块链节点计算得到的根校验值对比,即可验证新交易数据是否有效,如果有效,则区块链节点可以记载上述交易的相关数据,如果无效,则可以拒绝记载上述交易的相关数据。
需要说明的是,上述计算根校验值的处理过程还可以由服务器集群完成,具体地,服务器集群中可以设置有管理服务器或管理服务器集群,管理服务器或管理服务器集群可以对服务器集群中的其它服务器进行调整和控制。当服务器集群中的其它服务器计算得到上述叶子节点的数据的校验值后,可以将叶子节点的数据的校验值分别发送给管理服务器或管理服务器集群。管理服务器或管理服务器集群可以通过上述计算方式计算区块链节点中的数据的根校验值。管理服务器或管理服务器集群可以将得到的区块链节点中的数据的根校验值发送给区块链节点,区块链节点接收该校验值,进而,可以通过该校验值进行验证处理,具体可以参见上述相关内容,在此不再赘述。
这样,通过服务器集群中的多个服务器并行计算以得到区块链节点中叶子节点的数据的校验值,使得区块链节点的数据的根校验值的计算不再依赖单机处理,提高数据的校验值的计算效率。
本申请实施例提供一种数据处理方法,通过将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使服务器集群中的服务器分别计算分配的叶子节点的数据的校验值,进而,根据服务器集群中的服务器计算得到的叶子节点的数据的校验值,进一步获取区块链节点中的数据的根校验值,这样,通过将叶子节点的数据分发给服务器集群,然后,再通过服务器集群中的各个服务器分别计算分发到的叶子节点的数据的校验值,使得数据可以分发到服务器集群中并行计算叶子节点的数据的校验值,从而可以缩短计算过程消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。
如图3所示,本申请实施例提供一种数据处理方法,该方法的执行主体可以为服务器集群,该服务器集群可以包括多个服务器,每个服务器都可以计算数据的校验值。该方法可以包括以下步骤:
在步骤S301中,接收区块链节点分发的叶子节点的数据。
在实施中,当需要对区块链节点中的数据进行验证时,区块链节点可以获取其存储的叶子节点的数据,并可以以叶子节点为单位,向服务器集群中的服务器分发叶子节点的数据,具体分发方式和分发过程可以参见上述步骤S101的相关内容,在此不再赘述。服务器集群中的服务器可以分别接收区块链节点分发的叶子节点的数据,具体可以参见上述步骤S101的相关内容,在此不再赘述。
在步骤S302中,计算上述分发的叶子节点的数据的校验值,以用于获取上述区块链节点中的数据的根校验值。
在实施中,服务器集群中的服务器可以分别计算接收到的每个叶子节点的数据的校验值。计算完成后,可以将计算得到的叶子节点的数据的校验值分别发送给区块链节点。区块链节点可以基于服务器返回的叶子节点的数据的校验值进一步计算区块链节点中的数据的根校验值,具体可以参见上述步骤S102的相关内容,在此不再赘述。
在本申请的另一个实施例中,区块链节点中的数据的根校验值还可以由服务器集群计算得到,即如前所述,可以在服务器集群中设置管理服务器或者管理服务器集群,用于对计算得到的每个叶子节点的数据的校验值进行汇总计算,得到区块链节点中的数据的根校验值。具体可以参见上述步骤S102的相关内容,在此不再赘述。
本申请实施例提供一种数据处理方法,通过将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使服务器集群中的服务器分别计算分配的叶子节点的数据的校验值,进而,根据服务器集群中的服务器计算得到的叶子节点的数据的校验值,进一步获取区块链节点中的数据的根校验值,这样,通过将叶子节点的数据分发给服务器集群,然后,再通过服务器集群中的各个服务器分别计算分发到的叶子节点的数据的校验值,使得数据可以分发到服务器集群中并行计算叶子节点的数据的校验值,从而可以缩短计算过程消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。
实施例二
如图4所示,本申请实施例提供了一种数据处理方法,该数据处理方法可以由区块链节点和服务器集群共同执行。本申请实施例以校验值为哈希hash值为例进行详细说明,对于其它形式的校验值,可以参照本申请实施例中的相 关内容执行,在此不再赘述。该方法具体可以包括如下步骤:
在步骤S401中,区块链节点根据预先存储的叶子节点的数目,分别向服务器集群中的服务器发送预定数目的叶子节点的数据。
其中,预定数目可以根据实际情况设定,具体如5个或10个等,本申请实施例对此不做限定。
在实施中,在对交易的数据进行验证时,为了提高验证效率和降低资源耗费,区块链节点中的数据通常采用Merkle树的设计机制。本申请实施例为了在不改变区块链数据的现有设计机制的基础上,最大限度的提高对区块链节点中的数据的校验值的计算效率,本申请实施例中的区块链节点的数据可以依然采用Merkle树的设计机制。Merkle树中可以包括多个叶子节点(即bucket),区块链节点中可以记录有Merkle树中各个叶子节点的节点标识。当需要对交易的数据进行验证时,可以获取Merkle树中各个叶子节点的节点标识。
如图5所示,区块链节点可以基于各个叶子节点的节点标识分别获取各个叶子节点的数据,同时,还可以获取区块链节点中存储的叶子节点的数目,以及服务器集群中的服务器的数目。可以根据服务器的数目和叶子节点的数目确定每个服务器中需要分发的叶子节点的数目,例如,叶子节点共有10个,服务器集群中的服务器共有10台,则可以向每个服务器中发送一个叶子节点的数据;也可以以每两个或五个叶子节点为一组分别发送给服务器集群中的一个服务器。
在区块链节点向服务器集群分发叶子节点的数据的过程中,区块链节点还可以将叶子节点的节点标识分发给服务器集群中的服务器,服务器可以根据分发到的节点标识,向区块链节点发送包含有上述节点标识的数据获取指令,区块链节点接收到该数据获取指令后,可以提取该数据获取指令中的节点标识,可以通过该节点标识查找相应的叶子节点的数据发送给相应的服务器,这样,服务器集群可以从区块链节点中分别拉取相应的叶子节点的数据。
需要说明的是,在实际应用中,还可以根据叶子节点的数据量向服务器集群中的服务器分发叶子节点的数据,还可以通过随机的方式向服务器集群中的服务器分发叶子节点的数据等,具体可以参见上述实施例一中步骤S101的相关内容,在此不再赘述。
在步骤S402中,服务器集群计算上述分发的叶子节点的数据的校验值。
在步骤S403中,服务器集群将上述分发的叶子节点的数据的校验值发送 给区块链节点。
上述步骤S402和步骤S403的具体处理过程可以参见上述实施例一中的相关内容,在此不再赘述。
在步骤S404中,区块链节点根据上述叶子节点的校验值,确定上述叶子节点对应的Merkle树的根校验值。
在实施中,区块链节点接收到服务器集群中的服务器发送的叶子节点的校验值后,可以通过叶子节点构建相应的Merkle树,由于Merkle树中叶子节点的哈希值已经确定,而只剩Merkle树中根节点的哈希值(即Merkle树的根校验值)还未得到,可以基于叶子节点的哈希值向上计算出叶子节点对应的Merkle树的哈希值,从而可以得到上述叶子节点对应的Merkle树的根校验值。
在步骤S405中,区块链节点将上述Merkle树的根校验值确定为区块链节点中的数据的根校验值。
在实际应用中,还可以由服务器集群计算上述根校验值,具体处理可以包括:计算上述分发的叶子节点的数据的校验值;基于分发的叶子节点的数据的校验值获取区块链节点中的数据的根校验值,将该根校验值发送给区块链节点,具体处理过程可以参见上述实施例一中的相关内容,在此不再赘述。
本申请实施例提供一种数据处理方法,通过将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使服务器集群中的服务器分别计算分配的叶子节点的数据的校验值,进而,根据服务器集群中的服务器计算得到的叶子节点的数据的校验值,进一步获取区块链节点中的数据的根校验值,这样,通过将叶子节点的数据分发给服务器集群,然后,再通过服务器集群中的各个服务器分别计算分发到的叶子节点的数据的校验值,使得数据可以分发到服务器集群中并行计算叶子节点的数据的校验值,从而可以缩短计算过程消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。
实施例三
如图6所示,本申请实施例提供了一种数据处理方法,该数据处理方法可以由区块链节点和服务器集群共同执行。本申请实施例以校验值为哈希hash值为例进行详细说明,对于其它形式的校验值,可以参照本申请实施例中的相关内容执行,在此不再赘述。该方法具体可以包括如下步骤:
在步骤S601中,区块链节点将预先存储的叶子节点的数据,分发给服务 器集群中的服务器。
上述步骤S601的具体处理过程可以参见上述实施例一和实施例二中的相关内容,在此不再赘述。
在步骤S602中,服务器集群根据上述叶子节点的数据量,将该叶子节点的数据分配到预先设置的子叶子节点中。
其中,子叶子节点与叶子节点之间不存在如从属关系、上下级关系、父系关系或子系关系等关联关系。子叶子节点可以为由一条或多条数据组成的一个数据分组,叶子节点(bucket)可以是Merkle树中的用于存储数据的容器。子叶子节点的数目可以大于叶子节点的数目,如,若叶子节点的数目为5,则子叶子节点的数目可以为20等。
在实施中,区块链节点中预先存储的叶子节点中的某一个或多个叶子节点的数据量可能会较大(如包含100万条数据等),这样,当该叶子节点的数据分发给服务器集群中的某个服务器计算其哈希值时,该服务器需要将该叶子节点中的大量数据进行拼接,得到一个拼接的字符串,然后,再计算拼接的字符串的哈希值,这个过程仍然会消耗大量的时间,而且该服务器的资源消耗依然较大,为此,可以预先设置多个子叶子节点,也可以根据实际需求为每个子叶子节点设置能够容纳的最大数据量,如1GB或500MB等。可以通过随机或均匀分配的方式将该叶子节点的数据分配到预先设置的多个子叶子节点中。
上述步骤S602的处理方式可以多种多样,以下提供一种可选的处理方式,具体可以包括以下内容:对上述叶子节点的数据进行排序,从排序后的数据中顺序选取预定条数的数据分别设置在上述子叶子节点中,并为子叶子节点设置相应的子节点标识。
服务器集群可以根据其中的各个服务器的数据处理速率、计算校验值的速率,以及服务器集群中包含的服务器的数目,确定在保证数据的整体处理效率较高(如高于某一设定的效率阈值等)的基础上,每个服务器能够处理的数据的数据量,进而可以确定每一个子叶子节点能够容纳的数据量或数据条数。服务器集群可以计算各个服务器中分发的叶子节点的数据的总数据量,然后,可以对分发的叶子节点的数据根据数据存储到区块链节点中的时间等时间戳进行排序,可以从排序后的多条数据中分别为每个子叶子节点顺序地分配预定条数的数据,并根据数据的顺序分别为子叶子节点设置相应的子节点标识,以表示子叶子节点的数据在所有子叶子节点的数据中的位置。
例如,若服务器集群中的某服务器中分发的某叶子节点存储有50条数据,每条数据为5MB,则数据量为250MB,如果每个子叶子节点能够容纳的数据的数据量为25MB,则可以使用250/25得到10,因此,可以获取10个子叶子节点,并可以根据数据的顺序分别为子叶子节点设置1-10的编号作为子节点标识,通过上述处理,上述50条数据的存储位置可以为:将顺序排列的1~5条数据存储在编号为1的子叶子节点中,将顺序排列的6~10条数据存储在编号为2的子叶子节点中,将顺序排列的11~15条数据存储在编号为3的子叶子节点中,以此类推,即得到每条数据的存储位置。由于每条数据为5MB,因此,每个子叶子节点中可以包含5条数据。
在步骤S603中,服务器集群计算每个子叶子节点的数据的校验值。
在实施中,服务器集群中的服务器得到相应的子叶子节点后,可以获取各子叶子节点中存储的数据,然后,可以根据预定的校验算法计算每个子叶子节点的校验值,例如,可以将某一个子叶子节点中存储的数据进行排序,然后可以对排序后的数据,利用SHA256(Secure Hash Algorithm 256,安全哈希算法256)计算SHA256值(即哈希值)作为该子叶子节点的校验值。
在步骤S604中,服务器集群根据上述每个子叶子节点的数据的校验值,计算上述分发的叶子节点的数据的校验值。
在实施中,服务器集群得到每个子叶子节点的校验值后,可以按照子节点标识的顺序对子叶子节点的校验值进行排序,然后,可以基于各个子叶子节点的校验值,通过预定的校验算法进行汇总计算,得到相应的叶子节点的校验值,从而得到区块链节点分发的叶子节点的数据的校验值。
例如,基于上述步骤S602的示例,通过上述步骤S603的处理可以分别得到10个子叶子节点的数据的哈希值,由于10个子叶子节点的数据是由一个叶子节点的数据分配而成的,因此,可以分别得到10个子叶子节点的数据的哈希值进行如图2所示的汇总计算可以得到相应的叶子节点的哈希值。
需要说明的是,子叶子节点的数据的获取方式,也可以通过设置的子叶子节点的子节点标识通过拉取的方式获取,相应地,上述步骤S604的处理则可以为:根据上述子叶子节点的子节点标识和每个子叶子节点的校验值,计算上述分发的叶子节点的数据的校验值,具体处理可以参见上述相关内容,在此不再赘述。
在步骤S605中,服务器集群将上述分发的叶子节点的数据的校验值发送 给区块链节点。
在步骤S606中,区块链节点根据上述叶子节点的校验值,确定上述叶子节点对应的Merkle树的根校验值。
在实施中,可以基于叶子节点的校验值,利用预定的校验算法计算区块链节点的数据的根校验值。例如,可以根据记录的各节点标识对应的叶子节点在区块链节点中所有叶子节点中的位置,得到叶子节点构成的节点分布树(即Merkle树),如A-B-C-F、A-B-E和A-D。当得到叶子节点的校验值(即B+C+D+E+F的校验值)后,可以基于叶子节点的校验值计算上述Merkle树的根校验值,即可得到区块链节点的数据的根校验值。
在步骤S607中,区块链节点将上述Merkle树的根校验值确定为区块链节点中的数据的根校验值。
上述步骤S605和步骤S607的具体处理过程可以参见上述实施例一和实施例二中的相关内容,在此不再赘述。
本申请实施例提供一种数据处理方法,通过将叶子节点的节点标识分发给服务器集群,使得服务器集群通过获取的目标区块链中的叶子节点存储的数据的数据量,将每预定条数的数据分配给子叶子节点,然后,计算每个子叶子节点的校验值,进而可以根据每个子叶子节点的校验值,确定相应的叶子节点的校验值,最后将叶子节点的校验值提供给区块链节点以计算区块链节点中的数据的校验值,这样,通过服务器集群将叶子节点中存储的数据重新分配,得到子叶子节点再计算其校验值,使得数据可以均匀分发到计算服务器集群中并行计算校验值,从而可以缩短计算过程消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。
实施例四
如图7所示,本申请实施例提供了一种数据处理方法,该数据处理方法可以由区块链节点和服务器集群共同执行,其中,服务器集群中还可以包括第一服务器集群和第二服务器集群,如图8所示,图8提供一种数据处理系统,该系统中可以包括两个层级的服务器集群,即第一服务器集群和第二服务器集群,其中,第一服务器集群位于区块链节点的下一层级,第二服务器集群位于第一服务器集群的下一层级,通过上述分层结构可以实现数据的重新组合及数据的分发处理等目的,以加快数据的处理效率。本申请实施例以校验值为哈希hash 值为例进行详细说明,对于其它形式的校验值,可以参照本申请实施例中的相关内容执行,在此不再赘述。该方法具体可以包括如下步骤:
在步骤S701中,区块链节点获取预先存储的叶子节点的节点标识。
在实施中,每当在区块链节点中保存数据时,区块链节点中会相应的生成一个叶子节点,同时生成该叶子节点的节点标识,这样,区块链中可以包括多个叶子节点,每个叶子节点中存储有一定数据量的数据。每当生成节点标识时,可以存储该节点标识,并可以记录该节点标识对应的叶子节点在区块链节点的所有叶子节点中的位置,如生成的节点标识为F,其位置可以为A-B-C-F。
在步骤S702中,区块链节点将上述节点标识分发给第一服务器集群中的服务器。
在实施中,在实施中,基于上述如图8的系统结构,区块链节点可以获取其包含的叶子节点中存储的数据,可以根据预先制定的某种分配规则或者随机将叶子节点的节点标识划分成一组或多组,每一组节点标识可以发送给第一服务器集群中的一个服务器。
在步骤S703中,第一服务器集群根据分发的节点标识从区块链节点中获取该节点标识对应的叶子节点的数据。
在实施中,第一服务器集群中的服务器可以通过向区块链设备发送包含有节点标识的数据获取指令的方式,从区块链节点中捞取该节点标识对应的叶子节点的数据。
在步骤S704中,第一服务器集群根据获取的叶子节点的数据量,生成一个或多个子叶子节点。
其中,如前所述,本申请实施例中的子叶子节点与上述叶子节点之间不存在如从属关系、上下级关系、父系关系或子系关系等关联。子叶子节点可以为由一条或多条数据组成的一个数据分组,叶子节点(bucket)是Merkle树中的用于存储数据的容器。
在实施中,可以预先设置子叶子节点能够容纳的数据量或数据条数,如100MB或10条等。可以计算第一服务器集群中的各个服务器分发的叶子节点的数据的总数据量,可以根据每一个子叶子节点能够容纳的数据量或数据条数,生成一个或多个子叶子节点。
在步骤S705中,第一服务器集群对上述叶子节点的数据进行排序,从排序后的数据中顺序选取预定条数的数据分别设置在相应的子叶子节点中,并为 子叶子节点设置相应的子节点标识。
在实施中,可以通过反复测试的方式预先测试第一服务器集群中的任一服务器计算一条和多条数据的哈希值所消耗的时长,可以从中选取消耗的时长较短,而且服务器的处理压力相对较小时所对应的数据的条数,可以将该条数设置为预定条数,如30条或50条等。由于每一条数据在存储或区块链交易的过程中设置有时间戳,通过时间戳可以确定每一条数据的存储或交易的时间。这样,可以获取每条数据中的时间戳,通过时间戳的先后将多条数据进行排序,可以分别从排序后的多条数据中顺序选取预定条数的数据分配到相应的子叶子节点中。为了标记不同子叶子节点中分配的数据的顺序,可以基于分配的数据为相应的子叶子节点设置子节点标识。
例如,预定条数为3条,某叶子节点的数据可以包括A、B、C、D、E、F、G、H和K,通过时间戳进行排序后,上述数据的顺序可以为H-G-F-E-D-C-B-A-K,则可以将H-G-F三条数据分配到一个子叶子节点中,E-D-C三条数据分配到一个子叶子节点中,B-A-K三条数据分配到一个子叶子节点中,并且为了标记三个子叶子节点中存储的数据的顺序关系,可以将H-G-F所在的子叶子节点的子节点标识设置为子节点1,将E-D-C所在的子叶子节点的子节点标识设置为子节点2,将B-A-K所在的子叶子节点的子节点标识设置为子节点3。
在步骤S706中,第一服务器集群将子叶子节点的数据分发给第二服务器集群中的服务器。
在实施中,可以分别获取第二服务器集群中的每一个服务器当前的剩余带宽和/或数据传输速率等指标数据,可以基于获取的上述指标数据对第一服务器集群中的各个服务器的计算能力进行评估,可以根据计算能力的大小向第二服务器集群中的各服务器发送相应的子叶子节点的数据。
此外,为了尽可能的提高计算效率,还可以对分发给第二服务器集群中的服务器的子叶子节点的数目进行调整,具体地,可以分别获取第二服务器集群中每一个服务器当前的剩余带宽和/或数据传输速率等指标数据,可以基于获取的上述指标数据对各个服务器的计算能力进行评估,可以根据计算能力的大小为第二服务器集群中的各服务器分配相应的子叶子节点,例如,第二服务器集群中包括5个服务器,可以为每个服务器预分配2个子叶子节点,若通过计算确定第二服务器集群中的某服务器的计算能力最强,则可以将上述10个子叶 子节点中的3个子叶子节点的数据发送给该服务器,若通过计算确定第二服务器集群中的某服务器的计算能力最弱,则可以将上述10个子叶子节点中的1个子叶子节点的数据发送给该服务器。通过上述方式可以将生成的一个或多个子叶子节点均衡的提供给第二服务器集群中的各个服务器。
在步骤S707中,第二服务器集群计算每个子叶子节点的哈希值,并将其反馈给相应的第一服务器集群中的服务器。
在实施中,第二服务器集群中的服务器接收到相应的子叶子节点后,可以提取每个子叶子节点中的数据,并可以根据各条数据的时间戳的先后将其顺序排列,可以获取顺序排列的数据的组成的字符串,使用预定的哈希算法计算该字符串的哈希值,即为该子叶子节点的哈希值。通过上述方法,第二服务器集群可以得到每个子叶子节点的哈希值,然后,可以分别通过相应的服务器发送给对应的第一服务器集群中的服务器。
在步骤S708中,第一服务器集群根据第二服务器集群发送的每个子叶子节点的哈希值和子叶子节点的子节点标识,确定上述分发的叶子节点的哈希值。
在实施中,第一服务器集群中的服务器接收到第二服务器集群返回的子叶子节点的校验值后,可以分别获取每个子叶子节点的子节点标识,然后,可以根据每个子叶子节点的子节点标识对子叶子节点进行排序,可以对排序后的子叶子节点进行哈希值汇总,得到上述子叶子节点的哈希值。例如,可以根据子叶子节点的排列顺序,确定子叶子节点的哈希值的排列顺序,可以将顺序排列的哈希值组成为字符串,使用预定的哈希算法计算该字符串的哈希值,即为相应的叶子节点的哈希值。此外,还可以通过其它哈希值汇总的方式确定上述叶子节点的哈希值,例如,计算一个或多个子叶子节点的哈希值的平均值作为上述叶子节点的哈希值,或者,基于每个子叶子节点的权重和每个子叶子节点的哈希值计算得到上述叶子节点的哈希值等。
在步骤S709中,第一服务器集群将上述分发的叶子节点的哈希值发送给区块链节点。
在步骤S710中,区块链节点根据上述叶子节点的校验值,确定上述叶子节点对应的Merkle树的根校验值,将上述Merkle树的根校验值确定为区块链节点中的数据的根校验值。
本申请实施例提供一种数据处理方法,通过区块链节点中的叶子节点的数据的数据量,生成一个或多个分配有预定条数的数据的子叶子节点,然后,将 子叶子节点分发给第二服务器集群计算每个子叶子节点的校验值,进而可以根据每个子叶子节点的校验值,确定相应的叶子节点的校验值,最后将叶子节点的校验值提供给区块链节点以计算区块链节点中的数据的根校验值,这样,通过第一服务器集群将叶子节点中存储的数据重新分配,得到子叶子节点,再分发给第二服务器集群计算校验值,使得数据可以均匀分发到第二服务器集群中并行计算校验值,从而可以缩短计算过程消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。
实施例五
以上为本申请实施例提供的数据处理方法,基于同样的思路,本申请实施例还提供一种数据处理装置,如图9所示。
所述数据处理装置可以是上述实施例提供的区块链节点,具体可以为终端设备(如个人计算机等)或服务器等,该装置可包括数据分发模块901和根校验值获取模块902,其中:
数据分发模块901,用于将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使所述服务器集群中的服务器分别计算分配的叶子节点的数据的校验值;
根校验值获取模块902,用于根据所述服务器集群中的服务器计算得到的所述叶子节点的数据的校验值,进一步获取所述区块链节点中的数据的根校验值。
本申请实施例中,所述根校验值获取模块902,用于接收所述服务器集群中的服务器发送的所述区块链节点中的数据的根校验值。
本申请实施例中,所述根校验值获取模块902,用于根据所述叶子节点的校验值,确定所述叶子节点对应的Merkle树的根校验值;将所述Merkle树的根校验值确定为所述区块链节点中的数据的根校验值。
本申请实施例中,所述数据分发模块901,用于根据所述区块链节点中预先存储的叶子节点的数目,分别向所述服务器集群中的服务器发送预定数目的叶子节点的数据。
本申请实施例中,所述校验值为哈希值。
本申请实施例提供一种数据处理装置,通过将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使服务器集群中的服务器分 别计算分配的叶子节点的数据的校验值,进而,根据服务器集群中的服务器计算得到的叶子节点的数据的校验值,进一步获取区块链节点中的数据的根校验值,这样,通过将叶子节点的数据分发给服务器集群,然后,再通过服务器集群中的各个服务器分别计算分发到的叶子节点的数据的校验值,使得数据可以分发到服务器集群中并行计算叶子节点的数据的校验值,从而可以缩短计算过程消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。
实施例四
基于同样的思路,本申请实施例还提供一种数据处理装置,如图10所示。
所述数据处理装置可以是上述实施例提供的服务器集群,该装置可包括数据接收模块1001和校验值获取模块1002,其中:
数据接收模块1001,用于接收区块链节点分发的叶子节点的数据;
校验值获取模块1002,用于计算所述分发的叶子节点的数据的校验值,以用于获取所述区块链节点中的数据的根校验值。
本申请实施例中,所述装置还包括:
数据分配模块,用于根据所述叶子节点的数据量,将所述叶子节点的数据分配到预先设置的子叶子节点中;
计算模块,用于计算每个子叶子节点的数据的校验值;
相应的,所述校验值获取模块1002,用于根据所述每个子叶子节点的数据的校验值,计算所述分发的叶子节点的数据的校验值。
本申请实施例中,所述数据分配模块,用于对所述叶子节点的数据进行排序,从排序后的数据中顺序选取预定条数的数据分别设置在所述子叶子节点中,并为所述子叶子节点设置相应的子节点标识;
相应地,所述校验值获取模块1002,用于根据所述子叶子节点的子节点标识和每个所述子叶子节点的校验值,计算所述分发的叶子节点的数据的校验值。
本申请实施例中,所述校验值获取模块1002,用于计算所述分发的叶子节点的数据的校验值,将所述分发的叶子节点的数据的校验值发送给所述区块链节点,以使所述区块链节点根据所述叶子节点的数据的校验值计算所述区块链节点中的数据的根校验值;或者,计算所述分发的叶子节点的数据的校验值;基于所述分发的叶子节点的数据的校验值获取所述区块链节点中的数据的根校验值,将所述根校验值发送给所述区块链节点。
本申请实施例提供一种数据处理装置,通过将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使服务器集群中的服务器分别计算分配的叶子节点的数据的校验值,进而,根据服务器集群中的服务器计算得到的叶子节点的数据的校验值,进一步获取区块链节点中的数据的根校验值,这样,通过将叶子节点的数据分发给服务器集群,然后,再通过服务器集群中的各个服务器分别计算分发到的叶子节点的数据的校验值,使得数据可以分发到服务器集群中并行计算叶子节点的数据的校验值,从而可以缩短计算过程消耗的时间,提高计算效率,保证区块的正常生成,以及区块链的正常运行。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器 或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和 硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (18)

  1. 一种数据处理方法,其特征在于,所述方法包括:
    将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使所述服务器集群中的服务器分别计算分配的叶子节点的数据的校验值;
    根据所述服务器集群中的服务器计算得到的所述叶子节点的数据的校验值,进一步获取所述区块链节点中的数据的根校验值。
  2. 根据权利要求1所述的方法,其特征在于,所述根据所述服务器集群中的服务器计算得到的所述叶子节点的校验值,进一步获取所述区块链节点中的数据的根校验值,包括:
    接收所述服务器集群中的服务器发送的所述区块链节点中的数据的根校验值。
  3. 根据权利要求1所述的方法,其特征在于,所述根据所述服务器集群中的服务器计算得到的所述叶子节点的校验值,进一步获取所述区块链节点中的数据的根校验值,包括:
    根据所述叶子节点的校验值,确定所述叶子节点对应的Merkle树的根校验值;
    将所述Merkle树的根校验值确定为所述区块链节点中的数据的根校验值。
  4. 根据权利要求1所述的方法,其特征在于,所述将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,包括:
    根据所述区块链节点中预先存储的叶子节点的数目,分别向所述服务器集群中的服务器发送预定数目的叶子节点的数据。
  5. 根据权利要求1-4中任一项所述的方法,其特征在于,所述校验值为哈希值。
  6. 一种数据处理方法,其特征在于,所述方法包括:
    接收区块链节点分发的叶子节点的数据;
    计算所述分发的叶子节点的数据的校验值,以用于获取所述区块链节点中的数据的根校验值。
  7. 根据权利要求6所述的方法,其特征在于,所述接收区块链节点分发的叶子节点的数据之后,所述方法还包括:
    根据所述叶子节点的数据量,将所述叶子节点的数据分配到预先设置的子 叶子节点中;
    计算每个子叶子节点的数据的校验值;
    相应的,所述计算所述分发的叶子节点的数据的校验值,包括:
    根据所述每个子叶子节点的数据的校验值,计算所述分发的叶子节点的数据的校验值。
  8. 根据权利要求7所述的方法,其特征在于,所述根据所述叶子节点的数据量,将所述叶子节点的数据分配到预先设置的子叶子节点中,包括:
    对所述叶子节点的数据进行排序,从排序后的数据中顺序选取预定条数的数据分别设置在所述子叶子节点中,并为所述子叶子节点设置相应的子节点标识;
    相应地,所述根据所述每个子叶子节点的数据的校验值,计算所述分发的叶子节点的数据的校验值,包括:
    根据所述子叶子节点的子节点标识和每个所述子叶子节点的校验值,计算所述分发的叶子节点的数据的校验值。
  9. 根据权利要求6所述的方法,其特征在于,所述计算所述分发的叶子节点的数据的校验值,以用于获取所述区块链节点中的数据的根校验值,包括:
    计算所述分发的叶子节点的数据的校验值,将所述分发的叶子节点的数据的校验值发送给所述区块链节点,以使所述区块链节点根据所述叶子节点的数据的校验值计算所述区块链节点中的数据的根校验值;或者,
    计算所述分发的叶子节点的数据的校验值;基于所述分发的叶子节点的数据的校验值获取所述区块链节点中的数据的根校验值,将所述根校验值发送给所述区块链节点。
  10. 一种数据处理装置,其特征在于,所述装置包括:
    数据分发模块,用于将区块链节点中预先存储的叶子节点的数据,分发给服务器集群中的服务器,以使所述服务器集群中的服务器分别计算分配的叶子节点的数据的校验值;
    根校验值获取模块,用于根据所述服务器集群中的服务器计算得到的所述叶子节点的数据的校验值,进一步获取所述区块链节点中的数据的根校验值。
  11. 根据权利要求10所述的装置,其特征在于,所述根校验值获取模块,用于接收所述服务器集群中的服务器发送的所述区块链节点中的数据的根校验值。
  12. 根据权利要求10所述的装置,其特征在于,所述根校验值获取模块,用于根据所述叶子节点的校验值,确定所述叶子节点对应的Merkle树的根校验值;将所述Merkle树的根校验值确定为所述区块链节点中的数据的根校验值。
  13. 根据权利要求10所述的装置,其特征在于,所述数据分发模块,用于根据所述区块链节点中预先存储的叶子节点的数目,分别向所述服务器集群中的服务器发送预定数目的叶子节点的数据。
  14. 根据权利要求10-13中任一项所述的装置,其特征在于,所述校验值为哈希值。
  15. 一种数据处理装置,其特征在于,所述装置包括:
    数据接收模块,用于接收区块链节点分发的叶子节点的数据;
    校验值获取模块,用于计算所述分发的叶子节点的数据的校验值,以用于获取所述区块链节点中的数据的根校验值。
  16. 根据权利要求15所述的装置,其特征在于,所述装置还包括:
    数据分配模块,用于根据所述叶子节点的数据量,将所述叶子节点的数据分配到预先设置的子叶子节点中;
    计算模块,用于计算每个子叶子节点的数据的校验值;
    相应的,所述校验值获取模块,用于根据所述每个子叶子节点的数据的校验值,计算所述分发的叶子节点的数据的校验值。
  17. 根据权利要求16所述的装置,其特征在于,所述数据分配模块,用于对所述叶子节点的数据进行排序,从排序后的数据中顺序选取预定条数的数据分别设置在所述子叶子节点中,并为所述子叶子节点设置相应的子节点标识;
    相应地,所述校验值获取模块,用于根据所述子叶子节点的子节点标识和每个所述子叶子节点的校验值,计算所述分发的叶子节点的数据的校验值。
  18. 根据权利要求15所述的装置,其特征在于,所述校验值获取模块,用于计算所述分发的叶子节点的数据的校验值,将所述分发的叶子节点的数据的校验值发送给所述区块链节点,以使所述区块链节点根据所述叶子节点的数据的校验值计算所述区块链节点中的数据的根校验值;或者,计算所述分发的叶子节点的数据的校验值;基于所述分发的叶子节点的数据的校验值获取所述区块链节点中的数据的根校验值,将所述根校验值发送给所述区块链节点。
PCT/CN2018/075571 2017-02-17 2018-02-07 一种数据处理方法及装置 Ceased WO2018149345A1 (zh)

Priority Applications (17)

Application Number Priority Date Filing Date Title
BR112019016423-5A BR112019016423B1 (pt) 2017-02-17 2018-02-07 Dispositivos e métodos de processamento de dados
MYPI2019004022A MY190059A (en) 2017-02-17 2018-02-07 Data processing method and device
ES18753905T ES2859560T3 (es) 2017-02-17 2018-02-07 Método y dispositivo de procesamiento de datos
SG11201906738SA SG11201906738SA (en) 2017-02-17 2018-02-07 Data processing method and device
JP2019544724A JP6940615B2 (ja) 2017-02-17 2018-02-07 データ処理方法およびデバイス
MX2019009291A MX2019009291A (es) 2017-02-17 2018-02-07 Metodo y dispositivo de procesamiento de datos.
RU2019122450A RU2724136C1 (ru) 2017-02-17 2018-02-07 Способ и устройство обработки данных
CA3051065A CA3051065C (en) 2017-02-17 2018-02-07 Data processing method and device
KR1020197022496A KR102284972B1 (ko) 2017-02-17 2018-02-07 데이터 처리 방법 및 디바이스
PL18753905T PL3554051T3 (pl) 2017-02-17 2018-02-07 Sposób i urządzenie do przetwarzania danych
AU2018221097A AU2018221097B2 (en) 2017-02-17 2018-02-07 Data processing method and device
EP18753905.1A EP3554051B1 (en) 2017-02-17 2018-02-07 Data processing method and device
US16/507,983 US11392612B2 (en) 2017-02-17 2019-07-10 Data processing method and device
ZA2019/04735A ZA201904735B (en) 2017-02-17 2019-07-18 Data processing method and device
PH12019501852A PH12019501852A1 (en) 2017-02-17 2019-08-08 Data processing method and device
AU2019101603A AU2019101603A4 (en) 2017-02-17 2019-12-16 Data processing method and device
US16/774,929 US10747780B2 (en) 2017-02-17 2020-01-28 Blockchain-based data processing method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710085752.6A CN107040582B (zh) 2017-02-17 2017-02-17 一种数据处理方法及装置
CN201710085752.6 2017-02-17

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/507,983 Continuation US11392612B2 (en) 2017-02-17 2019-07-10 Data processing method and device

Publications (1)

Publication Number Publication Date
WO2018149345A1 true WO2018149345A1 (zh) 2018-08-23

Family

ID=59533525

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/075571 Ceased WO2018149345A1 (zh) 2017-02-17 2018-02-07 一种数据处理方法及装置

Country Status (18)

Country Link
US (2) US11392612B2 (zh)
EP (1) EP3554051B1 (zh)
JP (1) JP6940615B2 (zh)
KR (1) KR102284972B1 (zh)
CN (1) CN107040582B (zh)
AU (2) AU2018221097B2 (zh)
BR (1) BR112019016423B1 (zh)
CA (1) CA3051065C (zh)
ES (1) ES2859560T3 (zh)
MX (1) MX2019009291A (zh)
MY (1) MY190059A (zh)
PH (1) PH12019501852A1 (zh)
PL (1) PL3554051T3 (zh)
RU (1) RU2724136C1 (zh)
SG (1) SG11201906738SA (zh)
TW (1) TWI682652B (zh)
WO (1) WO2018149345A1 (zh)
ZA (1) ZA201904735B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020056570A1 (zh) * 2018-09-18 2020-03-26 柯宾汉数位金融科技有限公司 应用分片机制的区块网的区块产生方法及区块网系统
WO2020086123A1 (en) * 2018-10-26 2020-04-30 Alibaba Group Holding Linited Data processing method and apparatus
JP2021515311A (ja) * 2018-09-20 2021-06-17 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107040582B (zh) 2017-02-17 2020-08-14 创新先进技术有限公司 一种数据处理方法及装置
CN107612973B (zh) * 2017-08-18 2020-12-11 暨南大学 用于智能移动端的区块链结构、生成方法及交易验证方法
CN107705208A (zh) * 2017-10-12 2018-02-16 南京网数信息科技有限公司 一种基于哈希树的数字资产处理方法和系统
CN107992356B (zh) * 2017-12-13 2021-09-14 深圳壹账通智能科技有限公司 区块链事务区块处理方法、电子装置及可读存储介质
CN108521328B (zh) * 2018-03-26 2020-08-28 杭州秘猿科技有限公司 一种区块链共识方法、装置及电子设备
WO2019207503A1 (en) 2018-04-27 2019-10-31 nChain Holdings Limited Partitioning a blockchain network
CN109032803B (zh) 2018-08-01 2021-02-12 创新先进技术有限公司 数据处理方法和装置、客户端
CN109359222B (zh) * 2018-08-06 2021-07-06 杭州复杂美科技有限公司 数据存储方法及系统、设备和存储介质
CN109412600A (zh) * 2018-09-03 2019-03-01 何祥果 一种基于磁性特征的标识号编码方法
CN109360095A (zh) * 2018-09-27 2019-02-19 深圳技术大学(筹) 一种区块链交易数据的处理方法、装置及终端设备
CN109361661B (zh) * 2018-10-08 2020-07-10 莆田市烛火信息技术有限公司 一种依附相关链算力的区块链的共识装置
US11303442B2 (en) 2018-10-09 2022-04-12 International Business Machines Corporation Blockchain notification board storing blockchain resources
US11520773B2 (en) 2018-10-09 2022-12-06 International Business Machines Corporation Blockchain notification board storing blockchain resources
US10997159B2 (en) * 2018-10-09 2021-05-04 International Business Machines Corporation Blockchain notification board storing blockchain resources
CN109754251B (zh) * 2018-12-27 2022-02-01 石更箭数据科技(上海)有限公司 一种数据处理方法及其装置、介质、终端
EP3909194A4 (en) * 2019-01-10 2022-09-28 Bitnobi Inc. DISTRIBUTED CONTROL FOR BIG DATA SHARING
CN110009510A (zh) * 2019-01-22 2019-07-12 阿里巴巴集团控股有限公司 基于区块链的业务处理系统、方法、计算设备及存储介质
TWI708154B (zh) * 2019-04-24 2020-10-21 國際信任機器股份有限公司 適用於區塊鏈與鏈下間協作的驗證系統與方法
EP3791538B1 (en) * 2019-08-01 2023-04-12 Advanced New Technologies Co., Ltd. Shared blockchain data storage based on error correction code
CN110528600A (zh) * 2019-08-06 2019-12-03 福建工大岩土工程研究所有限公司 一种桩基检测系统及方法
CN110445684B (zh) * 2019-08-09 2021-04-02 中国信息通信研究院 一种区块链性能基准测试方法和装置
KR102163930B1 (ko) * 2019-09-30 2020-10-12 넷마블 주식회사 블록체인 보상을 통한 분산 컴파일 시스템
CN110753105B (zh) * 2019-10-17 2022-09-06 中国建设银行股份有限公司 数据传输方法、装置、系统、电子设备及存储介质
US11838400B2 (en) * 2019-11-19 2023-12-05 International Business Machines Corporation Image encoding for blockchain
TWI728571B (zh) * 2019-11-26 2021-05-21 中華電信股份有限公司 區塊鏈服務的資源管理方法及系統
CN111209336B (zh) * 2019-12-30 2020-09-15 广州博士信息技术研究院有限公司 基于区块链的数据分配方法、装置及服务器
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
CN111367916B (zh) * 2020-03-04 2023-03-31 浙江大华技术股份有限公司 一种数据存储方法及装置
CN111488343A (zh) * 2020-04-08 2020-08-04 北京瑞策科技有限公司 基于业务数据区块链的电商数据上链方法及装置
CN111708844B (zh) * 2020-08-24 2020-12-01 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置及设备
CN114153848B (zh) * 2021-05-07 2024-06-28 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112988912B (zh) * 2021-05-07 2021-11-02 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112905607B (zh) * 2021-05-07 2022-02-01 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112988761B (zh) * 2021-05-07 2022-04-08 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN113839989B (zh) * 2021-08-28 2022-08-05 西安交通大学 一种多节点数据处理方法
CN113765665B (zh) * 2021-11-10 2022-02-08 济南量子技术研究院 基于量子密钥的区块链网络及数据安全传输方法
CN114466004A (zh) * 2022-03-24 2022-05-10 成都新希望金融信息有限公司 一种文件传输方法、系统、电子设备及存储介质
CN114844911B (zh) * 2022-04-20 2024-07-09 网易(杭州)网络有限公司 数据存储方法、装置、电子设备及计算机可读存储介质
US12505231B2 (en) * 2023-02-08 2025-12-23 Delease, Llc Systems and methods for performing distributed computing
KR102708412B1 (ko) * 2023-02-28 2024-09-23 서울대학교산학협력단 상태 트라이 노드를 이용한 블록체인 상태 데이터베이스 성능 향상 시스템 및 이의 마이닝 방법
WO2025115360A1 (ja) * 2023-11-30 2025-06-05 富士フイルム株式会社 木構造生成方法、情報処理装置、情報処理システム、及び木構造生成プログラム
CN119105862B (zh) * 2024-07-31 2025-11-25 润建股份有限公司 一种融合区块链的数据分配和计算方法及系统
KR102909133B1 (ko) 2025-04-14 2026-01-07 주식회사 테리 전자상거래 운영자의 고객 응대를 위한 인공지능 챗봇 기반의 상담 서비스 제공 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651719A (zh) * 2009-09-11 2010-02-17 广东宇天信通通信科技有限公司 通信系统、均衡服务器及数据验证方法
CN102158559A (zh) * 2011-04-18 2011-08-17 浙江工业大学 一种基于p2p网络的负载均衡的方法
US20140108817A1 (en) * 2012-10-12 2014-04-17 Acer Incorporated Method for processing and verifying remote dynamic data, system using the same, and computer-readable medium
CN105719185A (zh) * 2016-01-22 2016-06-29 杭州复杂美科技有限公司 区块链的数据对比及共识方法
CN105868369A (zh) * 2016-03-30 2016-08-17 电子科技大学 一种基于Merkle树结构的数据模型验证系统与方法
CN106126722A (zh) * 2016-06-30 2016-11-16 中国科学院计算技术研究所 一种基于验证的前缀混合树及设计方法
CN107040582A (zh) * 2017-02-17 2017-08-11 阿里巴巴集团控股有限公司 一种数据处理方法及装置

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924094A (en) * 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
WO2005017783A2 (en) * 2003-08-14 2005-02-24 Oracle International Corporation Hierarchical management of the dynamic allocation of resourses in a multi-node system
US20070038572A1 (en) * 2005-08-09 2007-02-15 International Business Machines Corporation Method, system and computer program for metering software usage
JP2007257556A (ja) 2006-03-26 2007-10-04 Wiz Win Kk 文字入力装置
JP4767057B2 (ja) * 2006-03-27 2011-09-07 富士通株式会社 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置
US8204912B2 (en) * 2006-09-08 2012-06-19 Oracle International Corporation Insertion rate aware b-tree
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US9740727B2 (en) * 2008-10-10 2017-08-22 Abb Schweiz Ag Method and a system for replicating databases
US8345707B2 (en) 2009-06-03 2013-01-01 Voxer Ip Llc Method for synchronizing data maintained at a plurality of nodes
EP2614439A4 (en) 2010-09-09 2014-04-02 Nec Corp STORAGE SYSTEM
CN103902617B (zh) 2012-12-28 2017-06-09 华为技术有限公司 分布式数据库同步方法和系统
US20140245020A1 (en) 2013-02-22 2014-08-28 Guardtime Ip Holdings Limited Verification System and Method with Extra Security for Lower-Entropy Input Records
RU2609078C2 (ru) 2013-08-29 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Система управления индексацией партнерских объявлений
US9870591B2 (en) 2013-09-12 2018-01-16 Netspective Communications Llc Distributed electronic document review in a blockchain system and computerized scoring based on textual and visual feedback
ES2836139T3 (es) * 2013-11-19 2021-06-24 Circle Line International Ltd Procedimientos y aparatos de minería de bloques
US9256549B2 (en) 2014-01-17 2016-02-09 Netapp, Inc. Set-associative hash table organization for efficient storage and retrieval of data in a storage system
US10664530B2 (en) 2014-03-08 2020-05-26 Microsoft Technology Licensing, Llc Control of automated tasks executed over search engine results
US20160098723A1 (en) 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
RU2580425C1 (ru) * 2014-11-28 2016-04-10 Общество С Ограниченной Ответственностью "Яндекс" Способ структуризации хранящихся объектов в связи с пользователем на сервере и сервер
US9659047B2 (en) * 2014-12-03 2017-05-23 Netapp, Inc. Data deduplication utilizing extent ID database
US9547555B2 (en) * 2015-01-12 2017-01-17 Microsoft Technology Licensing, Llc Change tracking using redundancy in logical time
WO2016131559A1 (en) * 2015-02-20 2016-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Method of providing a hash value for a piece of data, electronic device and computer program
US9911007B2 (en) * 2015-02-27 2018-03-06 Guardtime IP Holdings, Ltd. Redundant fail-safe synchronization in a data authentication infrastructure
US10503445B2 (en) * 2015-03-23 2019-12-10 Netapp, Inc. Data structure store and data management
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
CN107615317A (zh) 2015-03-31 2018-01-19 纳斯达克公司 区块链交易记录的系统和方法
US10509684B2 (en) 2015-04-06 2019-12-17 EMC IP Holding Company LLC Blockchain integration for scalable distributed computations
EP3281145B1 (en) * 2015-04-10 2019-11-06 Telefonaktiebolaget LM Ericsson (publ) Verification paths of leaves of a tree
US20160306373A1 (en) 2015-04-16 2016-10-20 Fujitsu Limited Authenticated down-sampling of time-series data
JP6571375B2 (ja) * 2015-04-24 2019-09-04 国立大学法人 筑波大学 著作物保護支援装置
AU2016288644A1 (en) 2015-07-02 2018-02-22 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US9298806B1 (en) 2015-07-08 2016-03-29 Coinlab, Inc. System and method for analyzing transactions in a distributed ledger
US20170011460A1 (en) 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
US20170031676A1 (en) 2015-07-27 2017-02-02 Deja Vu Security, Llc Blockchain computer data distribution
US10303887B2 (en) * 2015-09-14 2019-05-28 T0.Com, Inc. Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree
US10643288B2 (en) 2015-10-13 2020-05-05 TransActive Grid Inc. Use of blockchain based distributed consensus control
US10713210B2 (en) * 2015-10-13 2020-07-14 Microsoft Technology Licensing, Llc Distributed self-directed lock-free RDMA-based B-tree key-value manager
WO2017134281A1 (en) 2016-02-04 2017-08-10 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computer systems
US20170243193A1 (en) * 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
KR101637868B1 (ko) 2016-02-22 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
US10475030B2 (en) 2016-02-22 2019-11-12 Bank Of America Corporation System for implementing a distributed ledger across multiple network nodes
US20170264428A1 (en) 2016-03-08 2017-09-14 Manifold Technology, Inc. Data storage system with blockchain technology
US9985964B2 (en) 2016-03-28 2018-05-29 Black Gold Coin, Inc. Systems and methods for providing block chain-based multifactor personal identity verification
US10204341B2 (en) 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US20170345011A1 (en) * 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
CN106330431A (zh) * 2016-08-29 2017-01-11 北京瑞卓喜投科技发展有限公司 基于区块链技术的数据处理方法、装置及系统
US10187203B2 (en) * 2016-08-30 2019-01-22 Workday, Inc. Secure storage encryption system
US10177908B2 (en) * 2016-08-30 2019-01-08 Workday, Inc. Secure storage decryption system
US10785022B2 (en) 2016-09-13 2020-09-22 Hiroshi Watanabe Network without abuse of a private key
US10565570B2 (en) * 2016-09-27 2020-02-18 The Toronto-Dominion Bank Processing network architecture with companion database
US10339014B2 (en) * 2016-09-28 2019-07-02 Mcafee, Llc Query optimized distributed ledger system
US20180114205A1 (en) 2016-10-21 2018-04-26 Bank Of America Corporation Distributed ledger system for providing aggregate tracking and threshold triggering
CN106341421B (zh) * 2016-10-31 2019-04-02 杭州云象网络技术有限公司 一种基于区块链技术的数据交换方法
US10169872B2 (en) * 2016-11-02 2019-01-01 International Business Machines Corporation Classification of severity of pathological condition using hybrid image representation
US10116450B1 (en) 2016-11-02 2018-10-30 ISARA Corporation Merkle signature scheme using subtrees
CN106603198A (zh) 2016-12-02 2017-04-26 深圳大学 具有网络编码的区块链分布式存储方法及系统
US10243939B2 (en) * 2016-12-23 2019-03-26 Amazon Technologies, Inc. Key distribution in a distributed computing environment
WO2018119585A1 (zh) 2016-12-26 2018-07-05 深圳前海达闼云端智能科技有限公司 区块链的权限控制方法、装置、系统及节点设备
US10523526B2 (en) * 2016-12-28 2019-12-31 Acronis International Gmbh System and method for managing services and licenses using a blockchain network
WO2018126076A1 (en) 2016-12-30 2018-07-05 Intel Corporation Data packaging protocols for communications between iot devices
CN106686087A (zh) 2016-12-30 2017-05-17 先锋支付有限公司 一种区块链截断方法及分布式节点
US10447480B2 (en) * 2016-12-30 2019-10-15 Guardtime Sa Event verification receipt system and methods
US10572872B2 (en) 2017-01-06 2020-02-25 FirstBlood Technologies, Inc. Decentralized competitive arbitration using digital ledgering

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651719A (zh) * 2009-09-11 2010-02-17 广东宇天信通通信科技有限公司 通信系统、均衡服务器及数据验证方法
CN102158559A (zh) * 2011-04-18 2011-08-17 浙江工业大学 一种基于p2p网络的负载均衡的方法
US20140108817A1 (en) * 2012-10-12 2014-04-17 Acer Incorporated Method for processing and verifying remote dynamic data, system using the same, and computer-readable medium
CN105719185A (zh) * 2016-01-22 2016-06-29 杭州复杂美科技有限公司 区块链的数据对比及共识方法
CN105868369A (zh) * 2016-03-30 2016-08-17 电子科技大学 一种基于Merkle树结构的数据模型验证系统与方法
CN106126722A (zh) * 2016-06-30 2016-11-16 中国科学院计算技术研究所 一种基于验证的前缀混合树及设计方法
CN107040582A (zh) * 2017-02-17 2017-08-11 阿里巴巴集团控股有限公司 一种数据处理方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020056570A1 (zh) * 2018-09-18 2020-03-26 柯宾汉数位金融科技有限公司 应用分片机制的区块网的区块产生方法及区块网系统
JP2021515311A (ja) * 2018-09-20 2021-06-17 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム
JP7018517B2 (ja) 2018-09-20 2022-02-10 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム
WO2020086123A1 (en) * 2018-10-26 2020-04-30 Alibaba Group Holding Linited Data processing method and apparatus
US10999060B2 (en) 2018-10-26 2021-05-04 Advanced New Technologies Co., Ltd. Data processing method and apparatus
TWI730309B (zh) * 2018-10-26 2021-06-11 香港商阿里巴巴集團服務有限公司 資料處理方法及裝置
US11626972B2 (en) 2018-10-26 2023-04-11 Advanced New Technologies Co., Ltd. Data processing method and apparatus

Also Published As

Publication number Publication date
MY190059A (en) 2022-03-24
RU2724136C1 (ru) 2020-06-22
EP3554051B1 (en) 2021-01-20
BR112019016423B1 (pt) 2021-08-31
ZA201904735B (en) 2020-08-26
MX2019009291A (es) 2019-10-30
ES2859560T3 (es) 2021-10-04
US20200167366A1 (en) 2020-05-28
BR112019016423A2 (pt) 2020-04-07
US10747780B2 (en) 2020-08-18
AU2018221097B2 (en) 2020-07-09
CA3051065C (en) 2020-08-18
KR20190098765A (ko) 2019-08-22
JP2020507866A (ja) 2020-03-12
AU2018221097A1 (en) 2019-08-01
JP6940615B2 (ja) 2021-09-29
CA3051065A1 (en) 2018-08-23
US11392612B2 (en) 2022-07-19
AU2019101603A4 (en) 2020-01-23
TW201832099A (zh) 2018-09-01
EP3554051A4 (en) 2020-01-01
CN107040582A (zh) 2017-08-11
CN107040582B (zh) 2020-08-14
US20190332608A1 (en) 2019-10-31
PH12019501852A1 (en) 2020-06-15
PL3554051T3 (pl) 2021-07-05
EP3554051A1 (en) 2019-10-16
SG11201906738SA (en) 2019-09-27
KR102284972B1 (ko) 2021-08-03
TWI682652B (zh) 2020-01-11

Similar Documents

Publication Publication Date Title
CN107040582B (zh) 一种数据处理方法及装置
CN107015882B (zh) 一种区块数据校验方法和装置
CN110347651B (zh) 基于云存储的数据同步方法、装置、设备及存储介质
CN104298687B (zh) 一种哈希分区管理方法及装置
CN106407207A (zh) 一种实时新增数据更新方法和装置
CN111355816B (zh) 服务器选取方法、装置、设备及分布式服务系统
CN110162523B (zh) 数据存储方法、系统、装置及设备
WO2015027731A1 (zh) 布隆过滤器生成方法和装置
CN109191287A (zh) 一种区块链智能合约的分片方法、装置及电子设备
CN105204920B (zh) 一种基于映射聚合的分布式计算作业的实现方法及装置
CN109388614A (zh) 一种目录文件个数配额的方法、系统及设备
CN109947667B (zh) 数据访问预测方法和装置
CN116610731B (zh) 一种大数据分布式存储方法、装置、电子设备及存储介质
CN115129728A (zh) 一种文件校验的方法及装置
US10387578B1 (en) Utilization limiting for nested object queries
CN119225898A (zh) 容量弹性伸缩方法及相关装置
US20140365681A1 (en) Data management method, data management system, and data management apparatus
TW202008153A (zh) 資料處理方法和裝置、伺服器
CN107566496A (zh) 一种hadoop数据存储方法和装置
CN116366667A (zh) 区块链网络的数据传输方法、装置、电子设备及存储介质
CN116170388A (zh) 一种区块链网络的转发表生成方法及其数据传输方法
CN115718725A (zh) 一种针对分布式数据库系统的数据处理方法、装置及系统
CN116112442A (zh) 请求响应方法、装置、计算机设备、存储介质和程序产品
CN105677892A (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: 18753905

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 3051065

Country of ref document: CA

ENP Entry into the national phase

Ref document number: 2018753905

Country of ref document: EP

Effective date: 20190712

ENP Entry into the national phase

Ref document number: 20197022496

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2018221097

Country of ref document: AU

Date of ref document: 20180207

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2019544724

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112019016423

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112019016423

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20190808