IP Library Granted Patent US 10,897,349
Granted Patent B1
US 10,897,349 · App. 16/713,332 · Granted Jan 19, 2021

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

Inventor: Haizhen Zhuo (Hangzhou, CN)
Assignee: Advanced New Technologies Co., Ltd.
H04L9/0643G06F11/1076G06F16/2255G06F16/2379H03M13/154H04L2209/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,897,349
App. No.
16/713,332
Granted
Jan 19, 2021
Kind
B1
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 (74)

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.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053754/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053743/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2020
From: ZHUO, HAIZHEN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 052275/0367 →