Data storage method and device, data storage equipment and server
By selecting multiple nodes to store data volumes in the blockchain network based on the private storage space status of the server, and utilizing intelligent oracle distributors and volume-based encryption compression technology, the problems of poor data storage security and low resource utilization in existing technologies are solved, achieving secure and efficient distributed data storage.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHINA MOBILE SHANGHAI ICT CO LTD
- Filing Date
- 2021-04-06
- Publication Date
- 2026-05-19
AI Technical Summary
In existing blockchain data storage methods, data block storage is limited to nodes that share secrets, which leads to increased storage space consumption, makes it easy for attackers to determine the size of secret data, results in low resource utilization, and has poor security.
By receiving data storage requests, selecting multiple servers to store data volumes based on the private storage space status of the blockchain network server, generating data distribution and receiving commands, using a smart oracle distributor to monitor the storage space status and distribution strategy, generating a hash table, ensuring that data is distributed and stored on multiple nodes, and employing volume-based encryption and compression technology to improve security.
It enables secure distributed storage of data within the blockchain network, preventing attackers from determining the size of secret data and improving resource utilization and data security.
Smart Images

Figure CN115186029B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a data storage method, apparatus, data storage device and server. Background Technology
[0002] Currently, blockchain-based data storage methods include: receiving a request to store a data item in a blockchain network, and in response to the request, dividing the data item into multiple data blocks and assigning each data block to a different node in the blockchain network, wherein each node stores the assigned data block in a privately maintained hash table; and storing the storage location of each data block in the blockchain maintained by the blockchain network.
[0003] In the existing storage methods described above, data block storage is limited to nodes involving shared secrets. This means that each node must increase its storage space usage as the amount of secret data increases. This presents the following problems: attackers can easily determine the size of the secret data involved by simply checking the storage space of each node; and the storage space of all nodes in the network is not fully utilized, resulting in low resource utilization. Summary of the Invention
[0004] The purpose of this application is to provide a data storage method, apparatus, data storage device and server, thereby solving the problems of poor data storage security and low resource utilization on blockchain networks in the prior art.
[0005] To achieve the above objectives, this application provides a data storage method applied to a data storage device, the method comprising:
[0006] The system receives a data storage request sent by a first server. The data storage request carries multiple data volumes to be stored, wherein the multiple data volumes to be stored are at least one of the data volumes obtained by the first server through volume encryption and compression processing of the original data.
[0007] In response to the data storage request, multiple second servers for storing the data volume are determined based on the private storage space status of each server in the blockchain network.
[0008] A data distribution command is sent to the first server, and a data reception command is sent to the second server, instructing the second server to receive and store the data volume sent by the first server.
[0009] Optionally, in response to the data storage request, based on the private storage space status of each server in the blockchain network, a plurality of second servers for storing the data volume are determined, including:
[0010] By invoking the smart oracle distributor, the private storage space status of each server in the blockchain network is monitored, and the distribution strategies of multiple data volumes are read.
[0011] The second server is determined based on the private storage space status and the distribution strategy.
[0012] Optionally, before sending a data distribution command to the first server and a data reception command to the second server to instruct the second server to receive and store the data volume sent by the first server, the method further includes:
[0013] Generate a data storage path hash table based on the address of the first server, the address of the second server, and the data volume;
[0014] Based on the data storage path hash table, the data distribution command and the data receiving command are generated respectively.
[0015] Optionally, the method further includes:
[0016] The system receives confirmation information sent by the second server, wherein the confirmation information is sent by the second server when it determines that the received data volume matches the received hash set.
[0017] Optionally, the method further includes:
[0018] Receive the data storage contract call request sent by the first server;
[0019] In response to the data storage contract call request, a data storage contract is created;
[0020] According to the data storage contract, a data reconstruction body related to the first server is created, the data reconstruction body including a signature policy, a data integrity verification algorithm and a decompression key.
[0021] Optionally, the data storage path hash table may also include the hash value of the data reconstruction.
[0022] Optionally, the method further includes:
[0023] Receive a data reorganization contract call request sent by a third server;
[0024] In response to the data reconstruction contract call request, if it is determined that the third server satisfies the signature policy, the address of the second server in the data storage path hash table corresponding to the data reconstruction body is obtained;
[0025] Based on the address of the second server, a data volume access request is sent to the corresponding second server to instruct the second server to transfer the data volume to the third server.
[0026] Optionally, the method further includes:
[0027] If the third server satisfies the signature policy, the data integrity verification algorithm and the decompression key in the reconstructed data are sent to the third server.
[0028] To achieve the above objectives, this application also provides a data storage method applied to a first server, the method comprising:
[0029] Send a data storage request to the data storage device. The data storage request carries multiple data volumes to be stored. The multiple data volumes to be stored are at least one of the data volumes obtained by splitting, encrypting, and compressing the original data.
[0030] Receive the data distribution command sent by the data storage device;
[0031] In response to the data distribution command, the data volume is transferred to the second server.
[0032] Optionally, in response to the data distribution command, transmitting the data volume to the second server includes:
[0033] According to the data storage path hash table in the data distribution command, the corresponding data volume is sent to each of the second servers.
[0034] Optionally, the method further includes:
[0035] A data storage contract invocation request is sent to the data storage device, the data storage contract invocation request being used to request the data storage device to create a data reconstruction body related to the first server.
[0036] To achieve the above objectives, this application also provides a data storage method applied to a second server, wherein the second server is a server determined by the data storage device based on the private storage space status of each server in the blockchain network, and the method includes:
[0037] Receive the data receiving command sent by the data storage device;
[0038] Receive and store data volumes transmitted by a first server, wherein the data volume is at least one of the data volumes obtained by the first server through splitting, encrypting, and compressing the original data.
[0039] Optionally, the data receiving command includes a data storage path hash table, which is a hash table generated by the data storage device based on the address of the second server and the data volume.
[0040] Optionally, receiving and storing the data volume transmitted by the first server includes:
[0041] Receive the data volume;
[0042] The data volume is stored in a private storage space;
[0043] Generate an index table with the data volume as the key value and the storage path of the data volume as the attribute value.
[0044] Optionally, the method further includes: if it is determined that the received data volume matches the hash set of the data volume in the received data receiving command:
[0045] Send confirmation information to the data storage device;
[0046] Store the data storage path hash table.
[0047] Optionally, the method further includes:
[0048] Receive the data volume access request sent by the data storage device;
[0049] In response to the data volume access request, the data volume is transferred to the third server.
[0050] To achieve the above objectives, this application also provides a data storage method applied to a third server, the method comprising:
[0051] Send a data reassembly contract call request to the data storage device;
[0052] The system receives data volumes transmitted by each of the second servers, wherein the data volume is the data volume transmitted by the second server upon receiving a data retrieval request sent by the data storage device; the data retrieval request is sent by the data storage device after determining that the third server meets the signature policy; and the signature policy is the signature policy in the data reconstruction body created by the data storage device according to the data reconstruction contract.
[0053] Optionally, the method further includes:
[0054] Receive the data integrity verification algorithm and decompression key sent by the data storage device;
[0055] The integrity of the received data volume is verified according to the data integrity verification algorithm.
[0056] If the received data volume is confirmed to be intact, the original data is obtained according to the decompression key.
[0057] Optionally, the integrity of the received data volume is verified according to the data integrity verification algorithm, including:
[0058] For each data volume sent by the second server, the data integrity verification algorithm is used to verify the currently received data volume.
[0059] If the current verification result is incomplete and no data volume is received within the preset time period, then the received data volume is determined to be incomplete.
[0060] To achieve the above objectives, this application also provides a data storage device, applied to a data storage equipment, comprising:
[0061] The first receiving module is used to receive a data storage request sent by the first server. The data storage request carries multiple data volumes to be stored, wherein the multiple data volumes to be stored are at least one of the data volumes obtained by the first server through volume encryption and compression processing of the original data.
[0062] A determination module is used to determine, in response to the data storage request, multiple second servers for storing the data volume based on the private storage space status of each server in the blockchain network.
[0063] The first sending module is used to send a data distribution command to the first server and a data receiving command to the second server, instructing the second server to receive and store the data volume sent by the first server.
[0064] To achieve the above objectives, this application also provides a data storage device applied to a first server, the device comprising:
[0065] The first sending module is used to send a data storage request to the data storage device. The data storage request carries multiple data volumes to be stored. The multiple data volumes to be stored are at least one of the data volumes obtained by splitting, encrypting and compressing the original data.
[0066] The receiving module is used to receive data distribution commands sent by the data storage device;
[0067] A transmission module is used to transmit the data volume to a second server in response to the data distribution command.
[0068] To achieve the above objectives, this application also provides a data storage device applied to a second server, wherein the second server is a server determined by the data storage device based on the private storage space status of each server in the blockchain network, and the device includes:
[0069] The first receiving module is used to receive a data receiving command sent by the data storage device;
[0070] The second receiving module is used to receive and store the data volume transmitted by the first server, wherein the data volume is at least one of the data volumes obtained by the first server through splitting, encrypting and compressing the original data.
[0071] To achieve the above objectives, this application also provides a data storage device applied to a third server, the device comprising:
[0072] The sending module is used to send data reorganization contract call requests to the data storage device;
[0073] The first receiving module is used to receive data volumes transmitted by each of the second servers, wherein the data volume is the data volume transmitted by the second server upon receiving a data retrieval request sent by the data storage device; the data retrieval request is sent by the data storage device after determining that the third server meets the signature policy related to the data reorganization contract; the signature policy is the signature policy in the data reconstructed body created by the data storage device according to the data reorganization contract.
[0074] To achieve the above objectives, this application also provides a data storage device, including a transceiver, a memory, a processor, and a program stored in the memory and executable on the processor; when the processor executes the program, it implements the data storage method applied to the data storage device as described above.
[0075] To achieve the above objectives, embodiments of this application also provide a server, including a transceiver, a memory, a processor, and a program stored in the memory and executable on the processor; when the processor executes the program, it implements the data storage method applied to a first server as described above, or implements the data storage method applied to a second server as described above, or implements the data storage method applied to a third server as described above.
[0076] This application embodiment also provides a readable storage medium storing a program thereon, which, when executed by a processor, implements the data storage method applied to a data storage device as described above, or the data storage method applied to a first server as described above, or the data storage method applied to a second server as described above, or the data storage method applied to a third server as described above.
[0077] The above-mentioned technical solution of this application has at least the following beneficial effects:
[0078] The data storage method of this application embodiment firstly involves a data storage device receiving a data storage request from a first server. The data storage request carries multiple data volumes to be stored, wherein the multiple data volumes to be stored are at least one of the data volumes obtained by the first server through volume-based encryption and compression of the original data. Secondly, in response to the data storage request, the data storage device determines multiple second servers for storing the data volumes based on the private storage space status of each server in the blockchain network. Finally, the data storage device sends a data distribution command to the first server and a data receiving command to the second servers, instructing the second servers to receive and store the data volumes sent by the first server. Thus, by selecting servers to store data volumes based on the private storage space status of each node server in the blockchain network, firstly, it avoids storing all data volumes on a single node server, allowing attackers to determine the size of the secret data designed by that node server based on its private storage space; secondly, it improves data security; and thirdly, it ensures full utilization of the storage space of all node servers in the network, improving resource utilization. Attached Figure Description
[0079] Figure 1 This is one of the flowcharts illustrating the data storage method according to an embodiment of this application;
[0080] Figure 2 This is a second schematic flowchart of the data storage method according to an embodiment of this application;
[0081] Figure 3 This is the third flowchart illustrating the data storage method according to an embodiment of this application;
[0082] Figure 4 This is the fourth flowchart illustrating the data storage method according to an embodiment of this application;
[0083] Figure 5 This is one of the structural schematic diagrams of a data storage device according to an embodiment of this application;
[0084] Figure 6 This is a second schematic diagram of the data storage device according to an embodiment of this application;
[0085] Figure 7 This is the third schematic diagram of the data storage device according to an embodiment of this application;
[0086] Figure 8 This is the fourth schematic diagram of the data storage device according to an embodiment of this application;
[0087] Figure 9 This is a schematic diagram of the data storage device according to an embodiment of this application. Detailed Implementation
[0088] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0089] The terms "first," "second," etc., used in the specification and claims of this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such use of data can be interchanged where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein. Furthermore, in the specification and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.
[0090] The data storage method, apparatus, data storage device, and server provided in this application will be described in detail below with reference to the accompanying drawings and through specific embodiments and application scenarios.
[0091] like Figure 1 The diagram shown is a flowchart illustrating one embodiment of a data storage method according to this application. This method is applied to a data storage device and includes:
[0092] Step 101: Receive a data storage request sent by the first server. The data storage request carries multiple data volumes to be stored, wherein the multiple data volumes to be stored are at least one of the data volumes obtained by the first server through volume-based encryption and compression processing of the original data.
[0093] It should be noted here that in this step, the multiple data volumes to be stored can be at least a portion of the multiple data volumes obtained by the user after processing the original data through the first server. In other words, the user can choose to upload at least a portion of the data volumes corresponding to the original data to the blockchain network for storage as needed. This avoids attackers from decrypting the original data by obtaining the data volumes in the blockchain network, thus improving data security.
[0094] Step 102: In response to the data storage request, determine multiple second servers for storing the data volume based on the private storage space status of each server in the blockchain network;
[0095] In this step, during the process of determining multiple second servers for storing the data volume, the private storage space status of each server in the blockchain network was taken into account. This enabled the selection of multiple node servers with better private storage space status as the second servers for storing the data volume. In this way, the entire data volume was not stored on the same node. Firstly, this ensured full utilization of all node servers in the network, improving resource utilization. Secondly, it prevented attackers from judging the size of the secret data designed by each node simply by detecting the size of the storage space of each node server, thus improving data security.
[0096] Step 103: Send a data distribution command to the first server and a data reception command to the second server, instructing the second server to receive and store the data volume sent by the first server.
[0097] In this step, by sending a data distribution command to the first server and a data receiving command to the second server, the first server can learn the addresses of each second server used to store the data volume, as well as the data volume to be stored on each second server. The second server can learn the data volume that needs to be stored. In this way, the first server (sending node server) can transmit the corresponding data volume to each second server (receiving node server) through peer-to-peer (P2P) transmission, realizing the distributed storage of multiple data volumes on the blockchain.
[0098] It should be noted that in this embodiment of the application, the data storage device can be a separately configured server or a device integrated with the first server; the second server can be any server in the blockchain network, that is, the first server can also be a server for storing data volumes.
[0099] The data storage method of this application embodiment firstly involves a data storage device receiving a data storage request from a first server, which carries multiple data volumes to be stored. The first server is any node server in a blockchain network. Secondly, in response to the data storage request, the data storage device determines multiple second servers for storing the data volumes based on the private storage space status of each server in the blockchain network. Finally, the data storage device sends a data distribution command to the first server and a data receiving command to the second servers, instructing the second servers to receive and store the data volumes sent by the first server. Thus, by selecting servers to store data volumes based on the private storage space status of each node server in the blockchain network, firstly, it avoids storing all data volumes on a single node server, allowing attackers to determine the size of the secret data designed by that node server based on its private storage space; secondly, it improves data security; and thirdly, it ensures full utilization of the storage space of all node servers in the network, improving resource utilization.
[0100] As an optional implementation, step 102, in response to a data storage request, determines multiple second servers for storing the data volume based on the private storage space status of each server in the blockchain network, including:
[0101] By invoking the smart oracle distributor, the private storage space status of each server in the blockchain network is monitored, and the distribution strategies of multiple data volumes are read.
[0102] In this step, the distribution strategy can be a distribution algorithm that users can define for data volumes according to specific application scenario requirements. In this way, different data are distributed in different ways, avoiding data storage on the same node and improving data storage security.
[0103] The second server is determined based on the private storage space status and distribution strategy.
[0104] It is important to note that smart oracle distributors differ from existing oracle technologies. Existing oracles can only obtain external data for the blockchain network, but cannot process or interact with this data. In contrast, smart oracle distributors can not only obtain external data from the blockchain network, but also process this data and execute the transmission of distribution commands.
[0105] In this optional implementation, firstly, by calling the smart oracle distributor to monitor the private storage space of each server in the blockchain network, the second server for storing the data volume is determined by referring to the private storage space status (size) of each server, thus avoiding data distribution to node servers with operational problems and reducing packet loss during data distribution; secondly, by calling the smart oracle distributor to read the distribution strategy on the first server, the second server for storing the data volume is selected according to the distribution strategy, thus avoiding data flow prediction and improving data security.
[0106] As an optional implementation, before step 103, which involves sending a data distribution command to the first server and a data reception command to the second server to instruct the second server to receive and store the data volume sent by the first server, the method further includes:
[0107] Generate a data storage path hash table based on the address of the first server, the address of the second server, and the data volume;
[0108] In other words, the data storage path hash table is generated based on the address of the second server and the data volume. Specifically, the data storage path hash table includes: the address of the first server, the address of the second server, and the hash set of the data volume stored by each second server.
[0109] Based on the data storage path hash table, generate data distribution commands and data receiving commands respectively.
[0110] In other words, both the data distribution command and the data receiving command include a hash table of the data storage path.
[0111] In this optional implementation, a data distribution command is generated based on the data storage path hash table. The data distribution command carries the data storage path hash table, thereby enabling the first server (sending node server) to obtain the addresses of each second server used to store the data volume to be stored, as well as the contents of the data volume stored by each second server. This facilitates the first server to transmit the data volumes that each second server needs to store to each second server via P2P, realizing the distributed storage of data volumes.
[0112] By generating a data distribution command based on the data storage path hash table, the data receiving command carries the data storage path hash table. This allows the second server (receiving node server) to obtain the address of the first server (sending node server) to receive the data volume to be sent by the first server. It also allows the second server to verify whether the hash set of the data volume in the data storage path hash table matches the received data volume sent by the first server, thus ensuring the accuracy of the stored data volume.
[0113] Here, we specifically describe the process of transmitting commands for acquiring, processing, and distributing data outside the blockchain by calling the smart oracle distributor in this embodiment of the application: First, the private storage space status of each node server is monitored through the NRPE plugin and Simple Network Management Protocol (SNMP); second, the distribution strategy selected by the user on the first server according to the specific scenario is read; third, a data storage path hash table is generated while avoiding storing all data volumes on the same node; then, a Hypertext Transfer Protocol (HTTP) request is generated based on the data storage path hash table; finally, a data distribution command is sent to the first server and a data receiving command is distributed to each of the second servers, wherein both the data distribution command and the data receiving command carry the data storage path hash table.
[0114] Furthermore, as an optional implementation, this data storage method also includes:
[0115] Receive confirmation information sent by the second server, wherein the confirmation information is sent by the second server after determining that the received data volume matches the received hash set.
[0116] In this optional implementation, after each second server receives the data receiving command carrying the data storage path hash table sent by the data storage device and the data volume sent by the first server, the second server will obtain the hash set of the data volume related to itself in the data storage path hash table (the data storage device specifies the hash set of the data volume stored by the second server), and match the received data volume with the hash set. If it is determined that the two match, the second server sends an acknowledgment message to the data storage device.
[0117] Furthermore, as an optional implementation, this data storage method also includes:
[0118] Receive the data storage contract call request sent by the first server;
[0119] In this step, after processing the raw data and determining the multiple data volumes to be stored, the first server sends a data storage contract call request to the data storage device so that the data storage device can create a data reconstruction associated with the first server.
[0120] In response to a data storage contract call request, a data storage contract is created;
[0121] It's important to note that before creating a data storage contract, you need to set the signature strategy, data integrity verification algorithm, and decompression key for the data reassembly contract. The data integrity verification algorithm can be a Message-Digest Algorithm (MD5). In other words, before creating the data storage contract, you need to determine the permissions of the servers that can access the data volume that the first server needs to store.
[0122] According to the data storage contract, a data reconstruction body related to the first server is created. The data reconstruction body includes a signature policy, a data integrity verification algorithm, and a decompression key.
[0123] In this step, the signature policy, data integrity verification algorithm, and decompression key are information related to the first server. This information can determine the permissions of the server that calls the data volume stored by the first server, as well as the method by which the server that calls these data volumes obtains the original data.
[0124] In this optional implementation, by receiving a data storage contract call request sent by the first server and responding to the request, a data storage contract is created to create a data reconstruction body related to the first server based on the data storage contract. This realizes the setting of permissions for servers that call these data volumes and the way servers that call these data volumes obtain the original data, thereby improving data security.
[0125] As an optional implementation, by calling the smart oracle distributor, the data storage path hash table generated based on the address of the second server and the data volume also includes the hash value of the data reconstruction. In this way, when a server requests to access the data volume, the data storage device can determine whether the server has the right to access the data volume based on the hash value of the data reconstruction. This ensures that only servers with the right to access the data volume can access it, thus guaranteeing data security.
[0126] Furthermore, as an optional implementation, this data storage method also includes:
[0127] Receive a data reorganization contract call request sent by a third server;
[0128] In response to the data reconstruction contract call request, if it is determined that the third server meets the signature policy, the address of the second server in the data storage path hash table corresponding to the data reconstruction body is obtained;
[0129] Specifically, in response to the data reconstruction contract call request, firstly, it is determined whether the third server meets the signature policy in the data reconstruction body; secondly, if it is determined that the third server meets the signature policy, the address of the second server in the data storage path hash table corresponding to the data reconstruction body is obtained.
[0130] On the one hand, in this step, after receiving the data reconstruction contract call request sent by the third server, the data storage device loads the data reconstruction body through the data reconstruction contract. The data reconstruction body is a data reconstruction body created by the data storage contract corresponding to the data reconstruction contract, thereby parsing out the relevant parameters in the data reconstruction body, such as the aforementioned signature policy, data integrity verification algorithm and decompression key, so as to determine whether the third server has not met the signature policy.
[0131] On the other hand, in this step, determining that the third server meets the signature policy means that the third server has the right to access the data volume. Based on this, the data storage device will obtain the address of the second server that stores these data volumes. Specifically, it can traverse the relevant nodes according to the data storage path hash table to determine the address of each second server, so that the second server can transfer the stored data volume to the third server.
[0132] It should be noted here that the address of the second server in the data storage path hash table corresponding to the data reconstruction is specifically the address of the second server included in the data storage path hash table that stores the hash value of the data reconstruction.
[0133] Additionally, it should be noted that if it is determined that the third server does not meet the signature policy, the request to invoke the data reassembly contract initiated by the third server will be rejected.
[0134] Based on the address of the second server, a data volume access request is sent to the corresponding second server to instruct the second server to transfer the data volume to the third server.
[0135] In this step, the data volume access request includes at least the address of the third server, and may also include a data storage path hash table, so that the second server can determine the data volume to be transferred and the address of the third server receiving the data volume.
[0136] In this optional implementation, by instructing each second server to transmit data volumes to the third server when the third server meets the signature policy, the attacker is prevented from easily obtaining the data volumes stored on the blockchain network, thus improving the security of data volume access.
[0137] Furthermore, as an optional implementation, this data storage method also includes:
[0138] If the third server meets the signature policy, send the data integrity verification algorithm and decompression key from the data reconstruction to the third server.
[0139] In this optional implementation, by sending a data integrity verification algorithm and a decompression key to the third server, the third server can verify the integrity of the multiple data volumes received after receiving the data volumes transmitted by each of the second servers. If the integrity of the received data volumes is determined, the decompression key is used to decompress the data volumes to obtain the original data.
[0140] The data storage method of this application embodiment firstly involves a data storage device receiving a data storage request from a first server, which carries multiple data volumes to be stored. The first server is any node server in a blockchain network. Secondly, in response to the data storage request, the data storage device determines multiple second servers for storing the data volumes based on the private storage space status of each server in the blockchain network. Finally, the data storage device sends a data distribution command to the first server and a data receiving command to the second servers, instructing the second servers to receive and store the data volumes sent by the first server. Thus, by selecting servers to store data volumes based on the private storage space status of each node server in the blockchain network, firstly, it avoids storing all data volumes on a single node server, allowing attackers to determine the size of the secret data designed by that node server based on its private storage space; secondly, it improves data security; and thirdly, it ensures full utilization of the storage space of all node servers in the network, improving resource utilization.
[0141] like Figure 2 The diagram shown is a second flowchart illustrating a data storage method according to an embodiment of this application. This data storage method is applied to a first server, which is a data volume sending node server on a blockchain network. The method includes:
[0142] Step 201: Send a data storage request to the data storage device. The data storage request carries multiple data volumes to be stored. The multiple data volumes to be stored are at least one of the data volumes obtained by splitting, encrypting, and compressing the original data.
[0143] In other words, in this step, before sending a data storage request to the data storage device, the first server needs to first obtain the original data to be stored by the user, then process the obtained original data into multiple volumes through encryption and compression to obtain multiple data volumes, then the user selects the data volume to be stored on the blockchain as needed, and finally sends a data storage request carrying the data volume to be stored to the data storage device.
[0144] It should be noted that the multiple data volumes to be stored can be at least a portion of the data volumes obtained from the original data. In this way, the data retrieval server needs to access the data volumes on the blockchain and request the data volumes that are not on the blockchain from the first server off-chain in order to obtain the complete original data, thus improving data security.
[0145] Step 202: Receive the data distribution command sent by the data storage device;
[0146] In this step, the data distribution command is used to instruct the first server to transmit the various data volumes to be stored to each of the second servers (receiving node servers).
[0147] Step 203: In response to the data distribution command, transfer the data volume to the second server.
[0148] The data storage method of this application embodiment firstly involves a first server sending a data storage request to a data storage device. The data storage request carries multiple data volumes to be stored, and the multiple data volumes to be stored are at least one of the data volumes obtained by splitting, encrypting, and compressing the original data. Secondly, the first server receives a data distribution command sent by the data storage device. Finally, in response to the data distribution command, the first server transmits the data volumes to a second server. In this way, the first server performs splitting, encrypting, and compressing the original data off-chain, and only uploads a portion of the data volumes. This prevents the data access server, which does not have all the data volumes and compression passwords, from decrypting the original data, thereby improving data security.
[0149] It should be noted that volume compression technology refers to a technique that compresses data files and then splits them. The specific implementation is as follows: First, the original data is compressed using the existing Huffman coding method; second, the compressed data is encrypted using the national cryptographic algorithm to obtain encrypted compressed data; finally, the encrypted compressed data is split using the Fisher optimal splitting method to obtain several data volumes.
[0150] As an optional implementation, step 203, in response to the data distribution command, involves transferring the data volume to the second server, including:
[0151] According to the data storage path hash table in the data distribution command, the corresponding data volume is sent to each of the second servers.
[0152] It should be noted here that, as mentioned earlier, the data distribution command includes a data storage path hash table; wherein, the data storage path hash table is a hash table generated by the data storage device based on the address of the second server and the data volume, and the data storage path hash table includes the address of the first server, the address of the second server, and the hash set of the data volume stored by each second server.
[0153] In this optional implementation, the first server obtains the addresses of each second server used to store the data volume, as well as the hash set of the data volume stored by each second server, based on the data storage path hash table in the received data distribution command. This allows the first server to know the data volume that each second server needs to store, enabling the sending of the corresponding data volume to each second server via P2P transmission. This achieves distributed storage of data volumes on the blockchain network and improves data security.
[0154] Furthermore, as an optional implementation, this data storage method also includes:
[0155] A data storage contract call request is sent to the data storage device. The data storage contract call request is used to request the data storage device to create a data reconstruction body related to the first server.
[0156] It should be noted that the reconstructed data includes information such as the signature policy, data integrity verification algorithm, and decompression key related to the first server.
[0157] In this optional implementation, the first server sends a data storage contract call request to the data storage device to enable the data storage device to create a data reconstruction body related to the first server. In this way, the calling permissions of the server that calls the data volume requested by the first server are restricted, and a basis is provided for the calling server to obtain the original data based on the obtained data volume. This ensures that only the calling server with the right to access the data volume stored on the blockchain network, thereby improving the security of data storage.
[0158] The data storage method of this application embodiment firstly involves a first server sending a data storage request to a data storage device. The data storage request carries multiple data volumes to be stored, and the multiple data volumes to be stored are at least one of the data volumes obtained by splitting, encrypting, and compressing the original data. Secondly, the first server receives a data distribution command sent by the data storage device. Finally, in response to the data distribution command, the first server transmits the data volumes to a second server. In this way, the first server performs splitting, encrypting, and compressing the original data off-chain, and only uploads a portion of the data volumes. This prevents the data access server, which does not have all the data volumes and compression passwords, from decrypting the original data, thereby improving data security.
[0159] like Figure 3 As shown in the third flowchart of the data storage method of this application embodiment, it is applied to a second server. The second server is a server determined by the data storage device based on the private storage space status of each server in the blockchain network, and the second server is a node server used to store data volumes. The data storage method includes:
[0160] Step 301: Receive the data receiving command sent by the data storage device;
[0161] In this step, the data receiving command is used to instruct the second server to receive the data volume sent by the first server (sending node server).
[0162] Step 302: Receive and store the data volume transmitted by the first server, wherein the data volume is at least one of the data volumes obtained by the first server through splitting, encrypting and compressing the original data.
[0163] In this step, the received data volume can be stored in the private storage space of the second server.
[0164] The data storage method of this application embodiment determines the second server based on the private storage space status of each server in the blockchain network. This achieves the selection of multiple node servers with better private storage space status as the second server for storing the data volume. In this way, it avoids storing the entire data volume on the same node. Firstly, it makes full use of all node servers in the network and improves resource utilization. Secondly, it prevents attackers from judging the size of the secret data designed by each node simply by detecting the size of the storage space of each node server, thus improving data security.
[0165] As an optional implementation, the data receiving command includes a data storage path hash table, which is a hash table generated by the data storage device based on the address of the second server and the data volume.
[0166] It should be noted that the data storage path hash table also includes a hash set of the data volumes stored on each second server.
[0167] In this optional implementation, by carrying a data storage path hash table in the data receiving command, firstly, the second server (receiving node server) can obtain the address of the first server (sending node server) to receive the data volume to be sent by the first server; secondly, the second server can verify whether the hash set of the data volume in the data storage path hash table matches the received data volume sent by the first server, thereby ensuring the accuracy of the stored data volume.
[0168] As an optional implementation, step 302, receiving and storing the data volume transmitted by the first server, includes:
[0169] Receive data volume; specifically, this data volume is the data volume sent by the first server;
[0170] Store the data volume in a private storage space;
[0171] Generate an index table with the data volume as the key and the storage path of the data volume as the attribute value.
[0172] In this optional implementation, an index table is generated with the data volume as the key and the storage path of the data volume as the value. This facilitates the rapid retrieval of the data volume for transmission to the data retrieval server when the server requests the data volume. The storage path of the data volume refers to its location on the second server.
[0173] Furthermore, as an optional implementation, this data storage method also includes:
[0174] Receive data volume access requests sent by data storage devices;
[0175] It should be noted that the data volume call request includes at least the address of the third server, and may also include a data storage path hash table, so that the second server can determine the data volume to be transferred and the address of the third server receiving the data volume.
[0176] In response to a data volume access request, the data volume is transferred to a third server.
[0177] In this step, the second server can determine the address of the third server and the data volume to be transferred to the third server based on the data volume call request, and then transfer the data volume to the third server via P2P transmission, so that the third server can obtain the data volume to be called.
[0178] like Figure 4 The diagram shown is a fourth flowchart illustrating a data storage method according to an embodiment of this application. This data storage method is applied to a third server, which is a data retrieval server that accesses data volumes stored on a blockchain network. The third server can be any server on the blockchain network. The method includes:
[0179] Step 401: Send a data reorganization contract call request to the data storage device;
[0180] This step involves sending a data reconstruction contract call request to the data storage device, enabling the data storage device to load the data reconstruction body based on the data reconstruction contract call request. This allows the device to parse out the relevant parameters in the data reconstruction body, such as the aforementioned signature policy, data integrity verification algorithm, and decompression key, in order to determine whether the third server does not meet the signature policy. The data reconstruction body is a data reconstruction body created by the data storage contract corresponding to the data reconstruction contract.
[0181] Step 402: Receive data volumes transmitted by each of the second servers, wherein the data volume is the data volume transmitted by the second server upon receiving a data retrieval request sent by the data storage device; the data retrieval request is sent by the data storage device after determining that the third server meets the signature policy related to the data reorganization contract; the signature policy is the signature policy in the data reconstruction body created by the data storage device according to the data reorganization contract.
[0182] In this embodiment, firstly, the third server sends a data reorganization contract invocation request to the data storage device. Based on this request, the data storage device determines that the third server meets the corresponding signature policy and then sends data invocation requests to each of the second servers, instructing them to transfer the data volume to the third server. Secondly, the third server receives the data volumes transferred by the second servers, enabling it to obtain the original data and access the data. This ensures that only servers with authorized access rights can access the data volumes stored on the blockchain network, thus improving data security.
[0183] Furthermore, as an optional implementation, the method also includes:
[0184] Receive data integrity verification algorithm and decompression key sent by data storage device;
[0185] In this step, the data integrity verification algorithm and decompression key are information parsed by the data storage device through loading the data reconstruction body after determining that the third server meets the corresponding signature policy.
[0186] The integrity of the received data volume is verified according to the data integrity verification algorithm.
[0187] If the received data volume is confirmed to be intact, the original data is obtained according to the decompression key.
[0188] It's important to note that even if the first server only uploads a portion of the data volume, the third server still needs to obtain the un-uploaded data volume from the first server "offline." This ensures the third server has access to all data volumes corresponding to the original data, allowing it to decrypt the data using the decompression key and obtain the original data. "Offline" can be understood as the third server's users directly obtaining the un-uploaded data volume from the first server's users. This prevents attackers from directly obtaining the original data from blockchain network nodes, thus improving data storage security.
[0189] As an optional implementation, the integrity of the received data volume is verified according to a data integrity verification algorithm, including:
[0190] Each time a data volume sent by a second server is received, a data integrity verification algorithm is used to verify the currently received data volume;
[0191] In other words, in this step, after receiving each data volume sent by the second server, the third server will perform an integrity check on all the data volumes received so far to determine whether all data volumes have been received. In addition, after receiving each data volume sent by the second server, the third server will also reset the timer to determine whether it will receive more data volumes transmitted by the second server.
[0192] If the current verification result is incomplete and no data volume is received within the preset time period, then the received data volume is determined to be incomplete.
[0193] In this step, if the current verification result is incomplete and no data volume is received within the preset time period, the third server determines that the data volume call is incomplete and no new data volume is being transmitted. The third server will then output a call failure message, allowing the user on the third server to determine whether to re-call. It should be noted that call failure includes two scenarios: one is that part of the data volume sent by the second server was not received, indicating packet loss; the other is that the user on the first server only uploaded a partial data volume. The user on the third server needs to determine whether to re-call the data volume based on the reason for the call failure.
[0194] It should be noted that this application embodiment only provides one method for verifying data integrity, but there are other methods for verifying data integrity. It is also possible to perform data integrity verification when a third server does not receive the data volume within a preset time period. This application embodiment does not limit this.
[0195] It should be noted that the data storage method provided in this application embodiment can be executed by a data storage device or a control module within that data storage device for executing the data storage loading method. This application embodiment uses the execution of the data storage loading method by a data storage device as an example to illustrate the data storage method provided in this application embodiment.
[0196] like Figure 5 The diagram shown is a structural schematic of a data storage device according to an embodiment of this application. This data storage device is applied to a data storage equipment and includes:
[0197] The first receiving module 501 is used to receive a data storage request sent by the first server. The data storage request carries multiple data volumes to be stored, wherein the multiple data volumes to be stored are at least one of the data volumes obtained by the first server through volume encryption and compression processing of the original data.
[0198] The determination module 502 is used to determine multiple second servers for storing data volumes in response to data storage requests, based on the private storage space status of each server in the blockchain network.
[0199] The first sending module 503 is used to send a data distribution command to the first server and a data receiving command to the second server, instructing the second server to receive and store the data volume sent by the first server.
[0200] The data storage device of this application embodiment firstly receives a data storage request sent by a first server. The data storage request carries multiple data volumes to be stored, wherein the multiple data volumes to be stored are at least one of the data volumes obtained by the first server through volume-based encryption and compression processing of the original data. Secondly, in response to the data storage request, a determining module 502 determines multiple second servers for storing the data volumes based on the private storage space status of each server in the blockchain network. Finally, a first sending module 503 sends a data distribution command to the first server and a data receiving command to the second servers, instructing the second servers to receive and store the data volumes sent by the first server. In this way, by selecting servers for storing data volumes based on the private storage space status of each node server in the blockchain network, firstly, it avoids storing all data volumes on a single node server, allowing attackers to determine the size of the secret data designed by the node server based on the size of its private storage space; secondly, it improves data security; and thirdly, it makes full use of the storage space of all node servers in the network, improving resource utilization.
[0201] Optionally, module 502 includes:
[0202] The processing submodule is used to monitor the private storage space status of each server in the blockchain network by calling the smart oracle distributor and to read the distribution strategy of the data volume.
[0203] The determination submodule is used to determine the second server based on the private storage space status and distribution strategy.
[0204] Optionally, the first transmitting module 503 includes:
[0205] The first generation submodule is used to generate a data storage path hash table based on the address of the first server, the address of the second server, and the data volume;
[0206] The second generation submodule is used to generate data distribution commands and data receiving commands respectively based on the data storage path hash table.
[0207] Optionally, the data storage device further includes:
[0208] The second receiving module is used to receive confirmation information sent by the second server, wherein the confirmation information is sent by the second server when it determines that the received data volume matches the received hash set.
[0209] Optionally, the data storage device further includes:
[0210] The third receiving module is used to receive data storage contract call requests sent by the first server;
[0211] The first creation module is used to create a data storage contract in response to the data storage contract call request;
[0212] The second creation module is used to create a data reconstruction body related to the first server based on the data storage contract. The data reconstruction body includes a signature policy, a data integrity verification algorithm, and a decompression key.
[0213] Optionally, the data storage path hash table also includes the hash value of the data reconstruction.
[0214] Optionally, the data storage device further includes:
[0215] The fourth receiving module is used to receive data reassembly contract call requests sent by the third server;
[0216] The acquisition module is configured to respond to the data reconstruction contract call request and, if it is determined that the third server satisfies the signature policy, acquire the address of the second server in the data storage path hash table corresponding to the data reconstruction body;
[0217] The second sending module is used to send a data volume access request to the corresponding second server according to the address of the second server, so as to instruct the second server to transfer the data volume to the third server.
[0218] Optionally, the data storage device further includes:
[0219] The third sending module is used to send the data integrity verification algorithm and the decompression key in the data reconstruction to the third server when it is determined that the third server meets the signature policy.
[0220] like Figure 6 The diagram shown is a second structural schematic of a data storage device according to an embodiment of this application. This data storage device is applied to a first server and includes:
[0221] The first sending module 601 is used to send a data storage request to the data storage device. The data storage request carries multiple data volumes to be stored. The multiple data volumes to be stored are at least one of the data volumes obtained by splitting, encrypting and compressing the original data.
[0222] The receiving module 602 is used to receive data distribution commands sent by the data storage device;
[0223] The transmission module 603 is used to transmit a data volume to a second server in response to a data distribution command.
[0224] In this embodiment of the data storage device, firstly, a first sending module 601 sends a data storage request to a data storage device. The data storage request carries multiple data volumes to be stored, which are at least one of the data volumes obtained by splitting, encrypting, and compressing the original data. Secondly, a receiving module 602 receives a data distribution command sent by the data storage device. Finally, a transmission module 603 responds to the data distribution command and transmits the data volumes to a second server. In this way, the first server performs splitting, encrypting, and compressing the original data off-chain and only uploads a portion of the data volumes. This prevents the data retrieval server from decrypting the original data without obtaining all the data volumes and compression passwords, thereby improving data security.
[0225] Optionally, the transmission module 603 is specifically used to: send the corresponding data volume to each of the second servers according to the data storage path hash table in the data distribution command.
[0226] Optionally, the data storage device further includes:
[0227] The second sending module is used to send a data storage contract call request to the data storage device. The data storage contract call request is used to request the data storage device to create a data reconstruction body related to the first server.
[0228] like Figure 7 The diagram shown is a third structural schematic of a data storage device according to an embodiment of this application. This data storage device is applied to a second server, which is a server determined by the data storage device based on the private storage space status of each server in the blockchain network. The data storage device includes:
[0229] The first receiving module 701 is used to receive data receiving commands sent by the data storage device;
[0230] The second receiving module 702 is used to receive and store the data volume transmitted by the first server, wherein the data volume is at least one data volume obtained by the first server through splitting, encrypting and compressing the original data.
[0231] The data storage device of this application embodiment determines the second server based on the private storage space status of each server in the blockchain network. This achieves the selection of multiple node servers with better private storage space status as the second server for storing the data volume. In this way, it avoids storing the entire data volume on the same node. Firstly, it makes full use of all node servers in the network and improves resource utilization. Secondly, it prevents attackers from judging the size of the secret data designed by each node simply by detecting the size of the storage space of each node server, thus improving data security.
[0232] Optionally, the data receiving command includes a data storage path hash table, which is a hash table generated by the data storage device based on the address of the second server and the data volume.
[0233] Optionally, the second receiving module 702 includes:
[0234] The receiving submodule is used to receive data volumes;
[0235] A storage submodule is used to store the data volume in a private storage space;
[0236] The generation submodule is used to generate an index table with the data volume as the key value and the storage path of the data volume as the attribute value.
[0237] Optionally, the data storage device further includes:
[0238] The sending module is configured to, upon determining that the received data volume matches the hash set of the data volume in the received data receiving command, send confirmation information to the data storage device.
[0239] A storage module is configured to store the data storage path hash table if it is determined that the received data volume matches the hash set of the data volume in the received data receiving command.
[0240] Optionally, the data storage device further includes:
[0241] The third receiving module is used to receive data volume access requests sent by the data storage device;
[0242] The transmission module is used to transmit the data volume to a third server in response to a data volume access request.
[0243] like Figure 8 The diagram shown is a fourth structural schematic of a data storage device according to an embodiment of this application. This data storage structure is applied to a third server, and the data storage device includes:
[0244] The sending module 801 is used to send a data reorganization contract call request to the data storage device;
[0245] The first receiving module 802 is used to receive data volumes transmitted by each of the second servers, wherein the data volume is the data volume transmitted by the second server upon receiving a data retrieval request sent by the data storage device; the data retrieval request is sent by the data storage device after determining that the third server meets the signature policy related to the data reorganization contract; the signature policy is the signature policy in the data reconstructed body created by the data storage device according to the data reorganization contract.
[0246] In this embodiment, firstly, the sending module 801 sends a data reorganization contract invocation request to the data storage device. This allows the data storage device to determine, based on the data reorganization contract invocation request, that the third server meets the corresponding signature policy. Then, the data storage device sends data invocation requests to each of the second servers, instructing each second server to transmit the data volume to the third server. Secondly, the first receiving module 802 receives the data volumes transmitted by each second server, enabling the acquisition of the original data based on the received data volumes and facilitating data retrieval. This ensures that only servers with retrieval permissions can access the data volumes stored on the blockchain network, thus improving data security.
[0247] Optionally, the data storage device further includes:
[0248] The second receiving module is used to receive the data integrity verification algorithm and decompression key sent by the data storage device;
[0249] The verification module is used to verify the integrity of the received data volume according to the data integrity verification algorithm.
[0250] The acquisition module is used to obtain the original data based on the decompression key, provided that the received data volume is intact.
[0251] Optionally, the verification module includes:
[0252] The verification submodule is used to verify the currently received data volume using a data integrity verification algorithm each time a data volume is received from a second server.
[0253] The determination submodule is used to determine that the received data volume is incomplete if the current verification result is incomplete and no data volume has been received within a preset time period.
[0254] like Figure 9 The diagram shown is a schematic representation of the structure of a data storage device according to an embodiment of this application. It includes a transceiver 910, a memory 920, a processor 900, and a program stored in the memory 920 and executable on the processor 900. When the processor 900 executes the program, it implements the various processes of the data storage method embodiment applied to the data storage device as described above.
[0255] The transceiver 910 is used to receive and send data under the control of the processor 900.
[0256] Among them, Figure 9 In this context, the bus architecture can include any number of interconnected buses and bridges, specifically linking various circuits together, represented by one or more processors (processor 900) and memory (memory 920). The bus architecture can also link various other circuits such as peripherals, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. The bus interface provides an interface. The transceiver 910 can be multiple elements, including transmitters and receivers, providing a unit for communicating with various other devices over a transmission medium. For different servers, processor 900 is responsible for managing the bus architecture and general processing, while memory 920 can store data used by processor 900 during operation.
[0257] This application also provides a server, including a transceiver, a memory, a processor, and a program stored in the memory and executable on the processor; when the processor executes the program, it implements the various processes described above for data storage method embodiments applied to a first server, a second server, or a third server.
[0258] The transceiver is used to receive and send data under the control of the processor.
[0259] The server's structure is similar to that of data storage devices; therefore, the server's interface can be found in [reference needed]. Figure 9The structure of a data storage device. In a server, the bus architecture can include any number of interconnected buses and bridges, specifically linking various circuits together, represented by one or more processors (processors) and memory (memory). The bus architecture can also link various other circuits such as peripherals, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. The bus interface provides the interface. A transceiver can be multiple elements, including transmitters and receivers, providing a unit for communicating with various other devices over a transmission medium. The processor is responsible for managing the bus architecture and general processing, and the memory can store the data used by the processor during operation.
[0260] This application also provides a readable storage medium storing a program. When executed by a processor, this program implements the various processes described above for the data storage method embodiments applied to a data storage device, or the various processes described above for the data storage method embodiments applied to a first server, or the various processes described above for the data storage method embodiments applied to a second server, or the various processes described above for the data storage method embodiments applied to a third server, and achieves the same technical effect. To avoid repetition, these processes will not be described again here. The readable storage medium may be, for example, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0261] Finally, it should be noted that in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or terminal apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0262] The above description is the preferred embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principles described in this application, and these improvements and modifications should also be considered within the scope of protection of this application.
Claims
1. A data storage method, applied to a data storage device, characterized in that, include: The system receives a data storage request sent by a first server. The data storage request carries multiple data volumes to be stored, wherein the multiple data volumes to be stored are at least one of the data volumes obtained by the first server through volume encryption and compression processing of the original data. In response to the data storage request, based on the private storage space status of each server in the blockchain network, multiple second servers for storing the data volume are determined, including: by invoking a smart oracle distributor to monitor the private storage space status of each server in the blockchain network and read the distribution strategies of the multiple data volumes; and by determining the second servers based on the private storage space status and the distribution strategies. A data distribution command is sent to the first server, and a data reception command is sent to the second server, instructing the second server to receive and store the data volume sent by the first server.
2. The method according to claim 1, characterized in that, Before sending a data distribution command to the first server and a data reception command to the second server to instruct the second server to receive and store the data volume sent by the first server, the method further includes: Generate a data storage path hash table based on the address of the first server, the address of the second server, and the data volume; Based on the data storage path hash table, the data distribution command and the data receiving command are generated respectively.
3. The method according to claim 2, characterized in that, The method further includes: The system receives confirmation information sent by the second server, wherein the confirmation information is sent by the second server when it determines that the received data volume matches the received hash set.
4. The method according to claim 2, characterized in that, The method further includes: Receive the data storage contract call request sent by the first server; In response to the data storage contract call request, a data storage contract is created; According to the data storage contract, a data reconstruction body related to the first server is created, the data reconstruction body including a signature policy, a data integrity verification algorithm and a decompression key.
5. The method according to claim 4, characterized in that, The data storage path hash table also includes the hash value of the data reconstruction.
6. The method according to claim 5, characterized in that, The method further includes: Receive a data reorganization contract call request sent by a third server; In response to the data reconstruction contract call request, if it is determined that the third server satisfies the signature policy, the address of the second server in the data storage path hash table corresponding to the data reconstruction body is obtained; Based on the address of the second server, a data volume access request is sent to the corresponding second server to instruct the second server to transfer the data volume to the third server.
7. The method according to claim 6, characterized in that, The method further includes: If the third server satisfies the signature policy, the data integrity verification algorithm and the decompression key in the reconstructed data are sent to the third server.
8. A data storage method applied to a second server, characterized in that, The second server, a data storage device, monitors the private storage space status of various servers in the blockchain network by invoking a smart oracle distributor and reads the distribution strategies of multiple data volumes. Based on the private storage space status and the distribution strategies, a server is determined. The data storage device obtains the data volume from a data storage request sent by the first server. The method includes: Receive the data receiving command sent by the data storage device; Receive and store data volumes transmitted by a first server, wherein the data volume is at least one of the data volumes obtained by the first server through splitting, encrypting, and compressing the original data.
9. The method according to claim 8, characterized in that, The data receiving command includes a data storage path hash table, which is a hash table generated by the data storage device based on the address of the second server and the data volume.
10. The method according to claim 9, characterized in that, Receive and store the data volume transmitted by the first server, including: Receive the data volume; The data volume is stored in a private storage space; Generate an index table with the data volume as the key value and the storage path of the data volume as the attribute value.
11. The method according to claim 9, characterized in that, The method further includes: if it is determined that the received data volume matches the hash set of the data volume in the received data receiving command: Send confirmation information to the data storage device; Store the data storage path hash table.
12. The method according to claim 8, characterized in that, The method further includes: Receive the data volume access request sent by the data storage device; In response to the data volume access request, the data volume is transferred to the third server.
13. A data storage device, applied to a data storage equipment, characterized in that, include: The first receiving module is used to receive a data storage request sent by the first server. The data storage request carries multiple data volumes to be stored, wherein the multiple data volumes to be stored are at least one of the data volumes obtained by the first server through volume encryption and compression processing of the original data. A determination module is used to determine, in response to the data storage request, multiple second servers for storing the data volume based on the private storage space status of each server in the blockchain network. The first sending module is used to send a data distribution command to the first server and a data receiving command to the second server, so as to instruct the second server to receive and store the data volume sent by the first server; The determining module includes a processing submodule, which is used to monitor the private storage space status of each server in the blockchain network by calling the smart oracle distributor and to read the distribution strategy of the data volume. The determination submodule is used to determine the second server based on the private storage space status and distribution strategy.
14. A data storage device, applied to a second server, characterized in that, The second server is a data storage device that, by invoking a smart oracle distributor, monitors the private storage space status of each server in the blockchain network and reads the distribution strategies of multiple data volumes; based on the private storage space status and the distribution strategies, a server is determined, wherein the data storage device obtains the data volume from a data storage request sent by the first server, and the device includes: The first receiving module is used to receive a data receiving command sent by the data storage device; The second receiving module is used to receive and store the data volume transmitted by the first server, wherein the data volume is at least one of the data volumes obtained by the first server through splitting, encrypting and compressing the original data.
15. A data storage device, comprising a transceiver, a memory, a processor, and a program stored in the memory and executable on the processor; characterized in that, When the processor executes the program, it implements the data storage method as described in any one of claims 1 to 7.
16. A server, comprising a transceiver, a memory, a processor, and a program stored in the memory and executable on the processor; characterized in that, When the processor executes the program, it implements the data storage method as described in any one of claims 8 to 12.
17. A readable storage medium having a program stored thereon, characterized in that, When the program is executed by a processor, it implements the data storage method as described in any one of claims 1 to 7, or the data storage method as described in any one of claims 8 to 12.