IP Library Granted Patent US 10,949,118
Granted Patent B2
US 10,949,118 · App. 16/810,691 · Granted Mar 16, 2021

Data storage method, apparatus, and device for multi-layer blockchain-type ledger

Inventors: Xinying Yang (Hangzhou, CN); Benquan Yu (Hangzhou, CN)
Assignee: Advanced New Technologies Co., Ltd.
G06F3/0655G06F3/062G06F3/0679G06Q20/401H04L9/32
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,949,118
App. No.
16/810,691
Granted
Mar 16, 2021
Kind
B2
Abstract

Computer-implemented methods, non-transitory, computer-readable media, and computer-implemented systems for data storage. One computer-implemented method includes: obtaining a data block from a previous blockchain-type ledger in multi-level blockchain-type ledgers, where in the multi-level blockchain-type ledgers comprise a bottom-layer blockchain-type ledger and at least one higher-layer blockchain-type ledger; determining a block height of the data block and a root hash of a Merkel tree constructed by data records in the data block; constructing updated data records comprising the root hash and the block height; and recording the updated data records in a data block in a current blockchain-type ledger in the multi-level blockchain-type ledgers a level higher than the previous blockchain-type ledger.

Claims (83)

1. A computer-implemented method for data storage, comprising:

obtaining a data block from a previous blockchain-type ledger in multi-layer blockchain-type ledgers, wherein the multi-layer blockchain-type ledgers comprise a bottom-layer blockchain-type ledger and at least one higher-layer blockchain-type ledger;

determining a block height of the data block and a root hash of a Merkle tree constructed by data records in the data block;

constructing updated data records comprising the root hash and the block height;

recording the updated data records in a data block in a current blockchain-type ledger in the multi-layer blockchain-type ledgers at a layer higher than the previous blockchain-type ledger, wherein each data block of each higher-layer blockchain-type ledger comprises, for each of multiple lower-layer data blocks of a respective previous blockchain-type ledger, a respective root hash and a respective block height for the lower-layer data block;

receiving, from a client device, one or more hash values for verifying one or more data records;

determining one or more Merkle paths of a particular Merkle tree associated with the one or more data records based on the one or more hash values, wherein each Merkle path corresponds to a respective blockchain-type ledger of the multi-layer blockchain-type ledgers and includes an identifier of the respective blockchain-type ledger; and

sending information of the one or more Merkle paths to the client device.

2. The computer-implemented method of claim 1 , wherein:

the multi-layer blockchain-type ledgers comprise one or more of distributed stored ledgers or centrally stored ledgers; and

each new data block in the multi-layer blockchain-type ledgers is generated by performing operations comprising:

receiving new data records to be stored;

determining that a predetermined condition for generating a new data block is satisfied; and

generating the new data block that includes at least a portion of the new data records.

3. The computer-implemented method of claim 2 , wherein the new data block is a first data block of a blockchain-type ledger of the multi-layer blockchain-type ledgers, the new data block further includes one or more predetermined hash values and has a predetermined block-height.

4. The computer-implemented method of claim 2 , wherein the new data block is not a first data block of a blockchain-type ledger of the multi-layer blockchain-type ledgers, the new data block further includes a block header and a block body, the at least a portion of the new data records are stored in the block body as a new Merkle tree, and a root hash of the new Merkle tree calculated based on hash values of the at least a portion of the new data records is stored in the block header.

5. The computer-implemented method of claim 2 , wherein the predetermined condition is one of a volume of the data records reaches a predetermined threshold and a last data block has been generated for a predetermined time.

6. The computer-implemented method of claim 1 , wherein determining a Merkle path of the one or more Merkle paths that corresponds to the bottom-layer blockchain-type ledger comprises:

identifying a particular data record corresponding to a hash value of the one or more hash values from the bottom-layer blockchain-type ledger; and

determining a block height of a particular data block that includes the particular data record corresponding to the hash value.

7. The computer-implemented method of claim 1 , wherein determining a Merkle path of the one or more Merkle paths that corresponds to a higher-layer blockchain-type ledger comprises:

identifying a first data record corresponding to a first hash value of the one or more hash values from a particular previous blockchain-type ledger;

determining a first root hash of a first Merkle tree that includes the first data record corresponding to the first hash value;

determining a first block height of a first data block that includes the first data record corresponding to the first hash value;

generating a second hash value based on the first root hash and the first block height;

identifying a second data record corresponding to the second hash value from the higher-layer blockchain-type ledger; and

determining the Merkle path based on a second data block that includes the second data record.

8. A computer-implemented system for data storage, comprising:

one or more computers; and

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

obtaining a data block from a previous blockchain-type ledger in multi-layer blockchain-type ledgers, wherein the multi-layer blockchain-type ledgers comprise a bottom-layer blockchain-type ledger and at least one higher-layer blockchain-type ledger;

determining a block height of the data block and a root hash of a Merkle tree constructed by data records in the data block;

constructing updated data records comprising the root hash and the block height;

recording the updated data records in a data block in a current blockchain-type ledger in the multi-layer blockchain-type ledgers at a layer higher than the previous blockchain-type ledger, wherein each data block of each higher-layer blockchain-type ledger comprises, for each of multiple lower-layer data blocks of a respective previous blockchain-type ledger, a respective root hash and a respective block height for the lower-layer data block;

receiving, from a client device, one or more hash values for verifying one or more data records;

determining one or more Merkle paths of a particular Merkle tree associated with the one or more data records based on the one or more hash values, wherein each Merkle path corresponds to a respective blockchain-type ledger of the multi-layer blockchain-type ledgers and includes an identifier of the respective blockchain-type ledger; and

sending information of the one or more Merkle paths to the client device.

9. The computer-implemented system of claim 8 , wherein:

the multi-layer blockchain-type ledgers comprise one or more of distributed stored ledgers or centrally stored ledgers; and

each new data block in the multi-layer blockchain-type ledgers is generated by performing operations comprising:

receiving new data records to be stored;

determining that a predetermined condition for generating a new data block is satisfied; and

generating the new data block that includes at least a portion of the new data records.

10. The computer-implemented system of claim 9 , wherein the new data block is a first data block of a blockchain-type ledger of the multi-layer blockchain-type ledgers, the new data block further includes one or more predetermined hash values and has a predetermined block-height.

11. The computer-implemented system of claim 9 , wherein the new data block is not a first data block of a blockchain-type ledger of the multi-layer blockchain-type ledgers, the new data block further includes a block header and a block body, the at least a portion of the new data records are stored in the block body as a new Merkle tree, and a root hash of the new Merkle tree calculated based on hash values of the at least a portion of the new data records is stored in the block header.

12. The computer-implemented system of claim 9 , wherein the predetermined condition is one of a volume of the data records reaches a predetermined threshold and a last data block has been generated for a predetermined time.

13. The computer-implemented system of claim 8 , wherein wherein determining a Merkle path of the one or more Merkle paths that corresponds to the bottom-layer blockchain-type ledger comprises:

identifying a particular data record corresponding to a hash value of the one or more hash values from the bottom-layer blockchain-type ledger; and

determining a block height of a particular data block that includes the particular data record corresponding to the hash value.

14. The computer-implemented system of claim 8 , wherein determining a Merkle path of the one or more Merkle paths that corresponds to a higher-layer blockchain-type ledger comprises:

identifying a first data record corresponding to a first hash value of the one or more hash values from a particular previous blockchain-type ledger;

determining a first root hash of a first Merkle tree that includes the first data record corresponding to the first hash value;

determining a first block height of a first data block that includes the first data record corresponding to the first hash value;

generating a second hash value based on the first root hash and the first block height;

identifying a second data record corresponding to the second hash value from the higher-layer blockchain-type ledger; and

determining the Merkle path based on a second data block that includes the second data record.

15. A non-transitory, computer-readable medium storing one or more instructions executable by a computer-implemented system to perform one or more operations for data storage comprising:

obtaining a data block from a previous blockchain-type ledger in multi-layer blockchain-type ledgers, wherein the multi-layer blockchain-type ledgers comprise a bottom-layer blockchain-type ledger and at least one higher-layer blockchain-type ledger;

determining a block height of the data block and a root hash of a Merkle tree constructed by data records in the data block;

constructing updated data records comprising the root hash and the block height;

recording the updated data records in a data block in a current blockchain-type ledger in the multi-layer blockchain-type ledgers a layer higher than the previous blockchain-type ledger, wherein each data block of each higher-layer blockchain-type ledger comprises, for each of multiple lower-layer data blocks of a respective previous blockchain-type ledger, a respective root hash and a respective block height for the lower-layer data block;

receiving, from a client device, one or more hash values for verifying one or more data records;

determining one or more Merkle paths of a particular Merkle tree associated with the one or more data records based on the one or more hash values, wherein each Merkle path corresponds to a respective blockchain-type ledger of the multi-layer blockchain-type ledgers and includes an identifier of the respective blockchain-type ledger; and

sending information of the one or more Merkle paths to the client device.

16. The non-transitory, computer-readable medium of claim 15 , wherein:

the multi-layer blockchain-type ledgers comprise one or more of distributed stored ledgers or centrally stored ledgers; and

each new data block in the multi-layer blockchain-type ledgers is generated by performing operations comprising:

receiving new data records to be stored;

determining that a predetermined condition for generating a new data block is satisfied; and

generating the new data block that includes at least a portion of the new data records.

17. The non-transitory, computer-readable medium of claim 16 , wherein the new data block is a first data block of a blockchain-type ledger of the multi-layer blockchain-type ledgers, the new data block further includes one or more predetermined hash values and has a predetermined block-height.

18. The non-transitory, computer-readable medium of claim 16 , wherein the new data block is not a first data block of a blockchain-type ledger of the multi-layer blockchain-type ledgers, the new data block further includes a block header and a block body, the at least a portion of the new data records are stored in the block body as a new Merkle tree, and a root hash of the new Merkle tree calculated based on hash values of the at least a portion of the new data records is stored in the block header.

19. The non-transitory, computer-readable medium of claim 16 , wherein the predetermined condition is one of a volume of the data records reaches a predetermined threshold and a last data block has been generated for a predetermined time.

20. The non-transitory, computer-readable medium of claim 15 , wherein determining a Merkle path of the one or more Merkle paths that corresponds to the bottom-layer blockchain-type ledger comprises:

identifying a particular data record corresponding to a hash value of the one or more hash values from the bottom-layer blockchain-type ledger; and

determining a block height of a particular data block that includes the particular data record corresponding to the hash value.

21. The non-transitory, computer-readable medium of claim 15 , wherein determining a Merkle path of the one or more Merkle paths that corresponds to a higher-layer blockchain-type ledger comprises:

identifying a first data record corresponding to a first hash value of the one or more hash values from a particular previous blockchain-type ledger;

determining a first root hash of a first Merkle tree that includes the first data record corresponding to the first hash value;

determining a first block height of a first data block that includes the first data record corresponding to the first hash value;

generating a second hash value based on the first root hash and the first block height;

identifying a second data record corresponding to the second hash value from the higher-layer blockchain-type ledger; and

determining the Merkle path based on a second data block that includes the second data record.

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 Apr 20, 2020
From: YANG, XINYING; YU, BENQUAN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 052442/0541 →
Priority Claims (1)
CN 201910475976.7 · Jun 3, 2019 · national
Continuity (2)
Continuation PCTCN2020071455 · Jan 10, 2020
Related Publication 20200201560A1 · Jun 25, 2020
Cited By (1)
US 12,549,376