US11075745B1ActiveUtility

Shared blockchain data storage based on error correction coding in trusted execution environments

73
Assignee: ADVANCED NEW TECHNOLOGIES CO LTDPriority: Sep 11, 2019Filed: Dec 13, 2019Granted: Jul 27, 2021
Est. expirySep 11, 2039(~13.2 yrs left)· nominal 20-yr term from priority
Inventors:Haizhen Zhuo
H04L 9/50H04L 9/3271H04L 9/0643H03M 13/05G06F 16/2379H03M 13/154H04L 9/12G06F 11/1076H04L 2209/34H04L 9/0897H04L 9/3239G06F 16/2255H04L 9/0877H04L 2209/38
73
PatentIndex Score
1
Cited by
35
References
30
Claims

Abstract

Disclosed herein are methods, systems, and apparatus, including computer programs encoded on computer storage media, for storing blockchain data. One method includes receiving a request from an application component of a blockchain node to execute one or more software instructions in a trusted execution environment (TEE); determining one or more blockchain node blocks for executing the one or more software instructions; performing error correction coding of the one or more blocks in the TEE to generate one or more encoded blocks; dividing each of the one or more encoded blocks into a plurality of datasets; selecting one or more datasets from each of the one or more encoded blocks; and hashing the one or more datasets to generate one or more hash values corresponding to the one or more datasets for use in replacing the one or more datasets to save storage space of the blockchain node.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer-implemented method for processing blockchain data by a blockchain node of a blockchain network in a trusted execution environment (TEE), the computer-implemented method comprising:
 receiving a request from an application component of the blockchain node to execute one or more software instructions in the TEE; 
 determining one or more blocks stored on the blockchain node for executing the one or more software instructions, wherein the one or more blocks are stored on the blockchain node and appended to the blockchain network; 
 performing error correction coding of the one or more blocks in the TEE to generate one or more encoded blocks; 
 dividing each of the one or more encoded blocks into a plurality of datasets based on the one or more software instructions; 
 selecting one or more datasets from the plurality of datasets of each of the one or more encoded blocks based on the one or more software instructions; and 
 hashing the one or more datasets to generate one or more hash values corresponding to the one or more datasets, the one or more hash values being used for replacing the one or more datasets to save storage space of the blockchain node. 
 
     
     
       2. The computer-implemented method of  claim 1 , further comprising:
 storing the one or more hash values and a remainder of the plurality of datasets not selected from the plurality of datasets to the blockchain node; and 
 instructing the blockchain node to delete a block corresponding to the one or more hash values and the remainder of the plurality of datasets after the one or more hash values and the remainder of the plurality of datasets are stored. 
 
     
     
       3. The computer-implemented method of  claim 2 , the blockchain node is a first blockchain node and the one or more encoded blocks are first one or more encoded blocks, further comprising:
 receiving a data synchronization request from a second blockchain node for data synchronization, wherein the data synchronization request includes second one or more block IDs associated with second one or more encoded blocks, and the second blockchain node stores the one or more hash values and the one or more datasets corresponding to the second one or more encoded blocks; and 
 comparing the second one or more block IDs associated with the second one or more encoded blocks with first one or more block IDs associated with the first one or more encoded blocks to identify one or more block IDs included in only one of the first one or more block IDs and the second one or more block IDs. 
 
     
     
       4. The computer-implemented method of  claim 3 , wherein the TEE is a first TEE associated with the first blockchain node, and further comprising:
 in response to identifying that the one or more block IDs are included in the first one or more block IDs, sending the one or more encoded blocks corresponding to the one or more block IDs to the second blockchain node; and 
 in response to identifying that the one or more block IDs are included in the second one or more block IDs, instructing the first blockchain node to send an additional request to a second TEE associated with the second blockchain node to retrieve the one or more encoded blocks corresponding to the one or more block IDs. 
 
     
     
       5. The computer-implemented method of  claim 1 , further comprising:
 indexing each of the plurality of datasets with a block ID of a corresponding block of the one or more blocks. 
 
     
     
       6. The computer-implemented method of  claim 1 , further comprising:
 determining the one or more blocks as infrequently accessed blocks based on determining that the one or more blocks are appended to the blockchain network for a predetermined amount of time or no block data associated with the one or more blocks are retrieved to execute a smart contract for the predetermined amount of time. 
 
     
     
       7. The computer-implemented method of  claim 1 , wherein the error correction coding is performed when utilization rate of computational resource of the blockchain node is less than or equal to a predetermined value or usage of storage space of the blockchain node is greater than or equal to a predetermined percentage. 
     
     
       8. The computer-implemented method of  claim 1 , wherein the error correction coding is performed by adding redundant bits to the one or more blocks. 
     
     
       9. The computer-implemented method of  claim 1 , wherein the error correction coding is erasure coding. 
     
     
       10. The computer-implemented method of  claim 1 , wherein the request includes one or more input parameters and is received through an application programming interface associated with the TEE. 
     
     
       11. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations for processing blockchain data by a blockchain node of a blockchain network in a trusted execution environment (TEE), comprising:
 receiving a request from an application component of the blockchain node to execute one or more software instructions in the TEE; 
 determining one or more blocks stored on the blockchain node for executing the one or more software instructions, wherein the one or more blocks are stored on the blockchain node and appended to the blockchain network; 
 performing error correction coding of the one or more blocks in the TEE to generate one or more encoded blocks; 
 dividing each of the one or more encoded blocks into a plurality of datasets based on the one or more software instructions; 
 selecting one or more datasets from the plurality of datasets of each of the one or more encoded blocks based on the one or more software instructions; and 
 hashing the one or more datasets to generate one or more hash values corresponding to the one or more datasets, the one or more hash values being used for replacing the one or more datasets to save storage space of the blockchain node. 
 
     
     
       12. The non-transitory, computer-readable medium of  claim 11 , further comprising:
 storing the one or more hash values and a remainder of the plurality of datasets not selected from the plurality of datasets to the blockchain node; and 
 instructing the blockchain node to delete a block corresponding to the one or more hash values and the remainder of the plurality of datasets after the one or more hash values and the remainder of the plurality of datasets are stored. 
 
     
     
       13. The non-transitory, computer-readable medium of  claim 12 , the blockchain node is a first blockchain node and the one or more encoded blocks are first one or more encoded blocks, further comprising:
 receiving a data synchronization request from a second blockchain node for data synchronization, wherein the data synchronization request includes second one or more block IDs associated with second one or more encoded blocks, and the second blockchain node stores the one or more hash values and the one or more datasets corresponding to the second one or more encoded blocks; and 
 comparing the second one or more block IDs associated with the second one or more encoded blocks with first one or more block IDs associated with the first one or more encoded blocks to identify one or more block IDs included in only one of the first one or more block IDs and the second one or more block IDs. 
 
     
     
       14. The non-transitory, computer-readable medium of  claim 13 , wherein the TEE is a first TEE associated with the first blockchain node, and further comprising:
 in response to identifying that the one or more block IDs are included in the first one or more block IDs, sending the one or more encoded blocks corresponding to the one or more block IDs to the second blockchain node; and 
 in response to identifying that the one or more block IDs are included in the second one or more block IDs, instructing the first blockchain node to send an additional request to a second TEE associated with the second blockchain node to retrieve the one or more encoded blocks corresponding to the one or more block IDs. 
 
     
     
       15. The non-transitory, computer-readable medium of  claim 11 , further comprising:
 indexing each of the plurality of datasets with a block ID of a corresponding block of the one or more blocks. 
 
     
     
       16. The non-transitory, computer-readable medium of  claim 11 , further comprising:
 determining the one or more blocks as infrequently accessed blocks based on determining that the one or more blocks are appended to the blockchain network for a predetermined amount of time or no block data associated with the one or more blocks are retrieved to execute a smart contract for the predetermined amount of time. 
 
     
     
       17. The non-transitory, computer-readable medium of  claim 11 , wherein the error correction coding is performed when utilization rate of computational resource of the blockchain node is less than or equal to a predetermined value or usage of storage space of the blockchain node is greater than or equal to a predetermined percentage. 
     
     
       18. The non-transitory, computer-readable medium of  claim 11 , wherein the error correction coding is performed by adding redundant bits to the one or more blocks. 
     
     
       19. The non-transitory, computer-readable medium of  claim 11 , wherein the error correction coding is erasure coding. 
     
     
       20. The non-transitory, computer-readable medium of  claim 11 , wherein the request includes one or more input parameters and is received through an application programming interface associated with the TEE. 
     
     
       21. A computer-implemented system for processing blockchain data by a blockchain node of a blockchain network in a trusted execution environment (TEE), comprising:
 one or more processors; and 
 one or more computer-readable memories coupled to the one or more processors and having instructions stored thereon that are executable by the one or more processors to perform one or more operations for:
 receiving a request from an application component of the blockchain node to execute one or more software instructions in the TEE; 
 determining one or more blocks stored on the blockchain node for executing the one or more software instructions, wherein the one or more blocks are stored on the blockchain node and appended to the blockchain network; 
 performing error correction coding of the one or more blocks in the TEE to generate one or more encoded blocks; 
 dividing each of the one or more encoded blocks into a plurality of datasets based on the one or more software instructions; 
 selecting one or more datasets from the plurality of datasets of each of the one or more encoded blocks based on the one or more software instructions; and 
 hashing the one or more datasets to generate one or more hash values corresponding to the one or more datasets, the one or more hash values being used for replacing the one or more datasets to save storage space of the blockchain node. 
 
 
     
     
       22. The computer-implemented system of  claim 21 , further comprising:
 storing the one or more hash values and a remainder of the plurality of datasets not selected from the plurality of datasets to the blockchain node; and 
 instructing the blockchain node to delete a block corresponding to the one or more hash values and the remainder of the plurality of datasets after the one or more hash values and the remainder of the plurality of datasets are stored. 
 
     
     
       23. The computer-implemented system of  claim 22 , the blockchain node is a first blockchain node and the one or more encoded blocks are first one or more encoded blocks, further comprising:
 receiving a data synchronization request from a second blockchain node for data synchronization, wherein the data synchronization request includes second one or more block IDs associated with second one or more encoded blocks, and the second blockchain node stores the one or more hash values and the one or more datasets corresponding to the second one or more encoded blocks; and 
 comparing the second one or more block IDs associated with the second one or more encoded blocks with first one or more block IDs associated with the first one or more encoded blocks to identify one or more block IDs included in only one of the first one or more block IDs and the second one or more block IDs. 
 
     
     
       24. The computer-implemented system of  claim 23 , wherein the TEE is a first TEE associated with the first blockchain node, and further comprising:
 in response to identifying that the one or more block IDs are included in the first one or more block IDs, sending the one or more encoded blocks corresponding to the one or more block IDs to the second blockchain node; and 
 in response to identifying that the one or more block IDs are included in the second one or more block IDs, instructing the first blockchain node to send an additional request to a second TEE associated with the second blockchain node to retrieve the one or more encoded blocks corresponding to the one or more block IDs. 
 
     
     
       25. The computer-implemented system of  claim 21 , further comprising:
 indexing each of the plurality of datasets with a block ID of a corresponding block of the one or more blocks. 
 
     
     
       26. The computer-implemented system of  claim 21 , further comprising:
 determining the one or more blocks as infrequently accessed blocks based on determining that the one or more blocks are appended to the blockchain network for a predetermined amount of time or no block data associated with the one or more blocks are retrieved to execute a smart contract for the predetermined amount of time. 
 
     
     
       27. The computer-implemented system of  claim 21 , wherein the error correction coding is performed when utilization rate of computational resource of the blockchain node is less than or equal to a predetermined value or usage of storage space of the blockchain node is greater than or equal to a predetermined percentage. 
     
     
       28. The computer-implemented system of  claim 21 , wherein the error correction coding is performed by adding redundant bits to the one or more blocks. 
     
     
       29. The computer-implemented system of  claim 21 , wherein the error correction coding is erasure coding. 
     
     
       30. The computer-implemented system of  claim 21 , wherein the request includes one or more input parameters and is received through an application programming interface associated with the TEE.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.