IP Library › Granted Patent US 11,233,654
Granted Patent B2
US 11,233,654 · App. 17/082,600 · Granted Jan 25, 2022

Blockchain data storage based on error correction code for permissioned blockchain network

Inventors: Haizhen Zhuo (Hangzhou, CN); Zhonghao Lu (Hangzhou, CN)
Assignee: Alipay (Hangzhou) Information Technology Co., Ltd.
H04L9/3242G06F11/1044G06F16/137H04L9/3247H04L2209/38H04L2209/56
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 11,233,654
App. No.
17/082,600
Granted
Jan 25, 2022
Kind
B2
Abstract

Disclosed herein are methods, systems and apparatus, including computer programs encoded on computer storage media, for storing blockchain data. One of the methods includes receiving transactions issued by a client node communicably coupled to a permissioned blockchain network, sending the transactions to a plurality of validating nodes for validating the transactions and running consensus, receiving one or more blocks generated based on consensus of at least a portion of the transactions by the plurality of validating nodes, encoding the one or more blocks using ECC to generate one or more encoded blocks, and for each encoded block of the one or more encoded blocks: dividing the encoded block into a plurality of datasets based on a data storage scheme associated with the one or more blocks.

Claims (67)

1. A computer-implemented method for processing blockchain data by a non-validating node (NVN) of a permissioned blockchain network, the method comprising:

receiving, by the NVN, transactions issued by a client node communicably coupled to the permissioned blockchain network;

sending, by the NVN, the transactions to a plurality of validating nodes (VNs) for validating the transactions and running consensus;

receiving, by the NVN, one or more blocks generated based on consensus of at least a portion of the transactions by the plurality of validating nodes;

storing, by the NVN, the one or more blocks in a buffer;

in response to determining that stored data in the buffer has met a predetermined storage threshold, encoding, by the NVN, the one or more blocks using error correction coding (ECC) and generating one or more encoded blocks from the one or more blocks;

for each encoded block of the one or more encoded blocks:

dividing, by the NVN, an encoded block into a plurality of datasets by using a data storage scheme, wherein the data storage scheme provides assignments of the plurality of datasets to a plurality of non-validating nodes (NVNs) of the permissioned blockchain network; and

storing, by the NVN, at least one of the plurality of datasets using a tiered storage based on how frequent the at least one of the plurality of datasets is accessed relative to other datasets stored at the NVN;

saving, by the NVN and for the plurality of VNs, storage space by sending a notification to the plurality of VNs to delete the one or more blocks; and

retrieving, by the NVN and based on an index, one or more dataset associated with the one or more blocks from a remainder of the plurality of NVNs in response to receiving a request for data in the one or more blocks.

2. The method of claim 1 , prior to saving, by the NVN and for the plurality of VNs, storage space, further comprising:

receiving confirmations from a remainder of the plurality of NVNs other than the NVN that at least one of the plurality of datasets are stored by a corresponding NVN based on the assignments provided in the data storage scheme.

3. The method of claim 1 , wherein the NVN stores blockchain data in the tiered storage that a newer block is stored in a same or faster tier of the tiered storage than an older block.

4. The method of claim 1 , further comprising:

before retrieving, by the NVN and based on the index, the datasets associated with the one or more blocks, receiving the request from the client node for verifying a transaction included in the one or more blocks;

after retrieving, by the NVN and based on the index, the datasets associated with the one or more blocks, decoding the one or more blocks based on the datasets; and verifying that the transaction exists if the transaction is included in the one or more blocks.

5. The method of claim 1 , further comprising:

before retrieving, by the NVN and based on the index, the datasets associated with the one or more blocks, receiving the request from a validating node for retrieving a transaction included in the one or more blocks; and

after retrieving, by the NVN and based on the index, the datasets associated with the one or more blocks, decoding the one of the one or more blocks based on the datasets; and sending the transaction to the validating node.

6. The method of claim 1 , further comprising, for each encoded block of the one or more encoded blocks:

hashing a remainder of the plurality of datasets other than the at least one of the plurality of datasets to generate hash values;

storing the hash values; and

discard the one or more blocks and the remainder of the plurality of datasets.

7. The method of claim 1 , wherein the ECC is performed when usage of storage space of the NVN is greater than or equal to a predetermined percentage.

8. The method of claim 1 , wherein the ECC is erasure coding performed by adding redundant bits to the one or more encoded blocks.

9. A system for processing blockchain data, comprising:

one or more processors; and

one or more computer-readable devices coupled to the one or more processors and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more processors, perform operations comprising:

receiving, by a non-validating node (NVN), transactions issued by a client node communicably coupled to a permissioned blockchain network;

sending, by the NVN, the transactions to a plurality of validating nodes (VNs) for validating the transactions and running consensus;

receiving, by the NVN, one or more blocks generated based on consensus of at least a portion of the transactions by the plurality of validating nodes;

storing, by the NVN, the one or more blocks in a buffer;

in response to determining that stored data in the buffer has met a predetermined storage threshold, encoding, by the NVN, the one or more blocks using error correction coding (ECC) and generating one or more encoded blocks from the one or more blocks;

for each encoded block of the one or more encoded blocks:

dividing, by the NVN, an encoded block into a plurality of datasets by using a data storage scheme, wherein the data storage scheme provides assignments of the plurality of datasets to a plurality of non-validating nodes (NVNs) of the permissioned blockchain network; and

storing, by the NVN, at least one of the plurality of datasets using a tiered storage based on how frequent the at least one of the plurality of datasets is accessed relative to other datasets stored at the NVN;

saving, by the NVN and for the plurality of VNs, storage space by sending a notification to the plurality of VNs to delete the one or more blocks; and

retrieving, by the NVN and based on an index, one or more dataset associated with the one or more blocks from a remainder of the plurality of NVNs in response to receiving a request for data in the one or more blocks.

10. The system of claim 9 , the operations, prior to saving, by the NVN and for the plurality of VNs, storage space, further comprising:

receiving confirmations from a remainder of the plurality of NVNs other than the NVN that at least one of the plurality of datasets are stored by a corresponding NVN based on the assignments provided in the data storage scheme.

11. The system of claim 9 , wherein the NVN stores blockchain data in the tiered storage that a newer block is stored in a same or faster tier of the tiered storage than an older block.

12. The system of claim 9 , the operations further comprising:

before retrieving, by the NVN and based on the index, the datasets associated with the one or more blocks, receiving the request from the client node for verifying a transaction included in the one or more blocks;

after retrieving, by the NVN and based on the index, the datasets associated with the one or more blocks, decoding the one or more blocks based on the datasets; and verifying that the transaction exists if the transaction is included in the one or more blocks.

13. The system of claim 9 , the operations further comprising:

before retrieving, by the NVN and based on the index, the datasets associated with the one or more blocks, receiving the request from a validating node for retrieving a transaction included in the one or more blocks; and

after retrieving, by the NVN and based on the index, the datasets associated with the one or more blocks, decoding the one of the one or more blocks based on the datasets; and sending the transaction to the validating node.

14. The system of claim 9 , the operations further comprising, for each encoded block of the one or more encoded blocks:

hashing a remainder of the plurality of datasets other than the at least one of the plurality of datasets to generate hash values;

storing the hash values; and

discard the one or more blocks and the remainder of the plurality of datasets.

15. The system of claim 9 , wherein the ECC is performed when usage of storage space of the NVN is greater than or equal to a predetermined percentage.

16. The system of claim 9 , wherein the ECC is erasure coding performed by adding redundant bits to the one or more encoded blocks.

17. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations comprising:

receiving, by a non-validating node (NVN), transactions issued by a client node communicably coupled to a permissioned blockchain network;

sending, by the NVN, the transactions to a plurality of validating nodes (VNs) for validating the transactions and running consensus;

receiving, by the NVN, one or more blocks generated based on consensus of at least a portion of the transactions by the plurality of validating nodes;

storing, by the NVN, the one or more blocks in a buffer;

in response to determining that stored data in the buffer has met a predetermined storage threshold, encoding, by the NVN, the one or more blocks using error correction coding (ECC) and generating one or more encoded blocks from the one or more blocks;

for each encoded block of the one or more encoded blocks:

dividing, by the NVN, an encoded block into a plurality of datasets based on by using a data storage scheme, wherein the data storage scheme provides assignments of the plurality of datasets to a plurality of non-validating nodes (NVNs) of the permissioned blockchain network; and

storing, by the NVN, at least one of the plurality of datasets using a tiered storage based on how frequent the at least one of the plurality of datasets is accessed relative to other datasets stored at the NVN;

saving, by the NVN and for the plurality of VNs, storage space by sending a notification to the plurality of VNs to delete the one or more blocks; and

retrieving, by the NVN and based on an index, one or more dataset associated with the one or more blocks from a remainder of the plurality of NVNs in response to receiving a request for data in the one or more blocks.

18. The non-transitory, computer-readable medium of claim 17 , the operations, prior to sending the notification to the plurality of VNs to delete the one or more blocks, further comprising:

receiving confirmations from a remainder of the plurality of NVNs other than the NVN that at least one of the plurality of datasets are stored by a corresponding NVN based on the assignments provided in the data storage scheme.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2021
From: ZHUO, HAIZHEN; LU, ZHONGHAO
To: ALIPAY (HANGZHOU) INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 055971/0677 →
Continuity (2)
Continuation PCTCN2019118175 · Nov 13, 2019
Related Publication 20210119805A1 · Apr 22, 2021
Cited By (2)
US 12,306,709 US 12,316,769