IP Library Granted Patent US 10,754,840
Granted Patent B2
US 10,754,840 · App. 16/807,237 · Granted Aug 25, 2020

Creating index in blockchain-type ledger

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,754,840
App. No.
16/807,237
Granted
Aug 25, 2020
Kind
B2
Abstract

A method and an apparatus for creating an index in a blockchain-type ledger, and a device are disclosed. According to solutions provided in implementations of the present specification, a service attribute of a data record written to a ledger and a storage location and a sequence number of the data record in the ledger are determined, a mapping relationship is established between the service attribute, the storage location, and the sequence number, and an inverted index with the service attribute as a primary key is created, facilitating subsequent query.

Claims (72)

1. A computer-implemented method comprising:

obtaining, by a centralized database server, a service attribute and a sequence number comprised in a data record, wherein the data record is stored in a blockchain-type ledger;

determining location information of the data record in the blockchain-type ledger, wherein the location information comprises a block height of a data block comprising the data record, and an offset of the data record in the data block;

establishing a mapping relationship between the service attribute, the location information, and the sequence number;

based on the sequence number, sequentially writing the mapping relationship to an index that uses the service attribute as a primary key, wherein

each data block other than an initial data block of the blockchain-type ledger comprises at least one data record and a hash value of the data block itself that is determined based on a hash value of a previous data block and a data record comprised in the data block itself, and wherein block heights of data blocks increase based on a sequence of block forming time;

receiving a query instruction, from a query instruction sender, wherein the query instruction comprises a specific value of the service attribute;

performing matching in an index table based on the specific value of the service attribute to determine location information and sequence numbers corresponding to the specific value of the service attribute in the index table; and

obtaining corresponding data records from the blockchain-type ledger based on the location information, and sequentially returning the obtained corresponding data records to the query instruction sender based on the sequence numbers.

2. The computer-implemented method of claim 1 , wherein obtaining a service attribute and a sequence number comprises:

responsive to receiving a data record sent by a user, obtaining the service attribute and the sequence number comprised in a specified identification filed in the data record; or

determining a data record comprised in a data block in the blockchain-type ledger, and obtaining the service attribute and the sequence number that are comprised in a specified identification field in any data record comprised in the data block.

3. The computer-implemented method of claim 1 , wherein sequentially writing the mapping relationship to an index that uses the service attribute as a primary key comprises:

creating an index record using the service attribute as a primary key in an index table when the primary key in the index does not comprise the service attribute; or

writing the location information and the sequence number to an index record comprising the service attribute when the primary key in the index comprises the service attribute.

4. The computer-implemented method of claim 1 further comprising:

receiving data to be stored, wherein the data to be stored is sent by a user;

generating a second data record comprising the data to be stored, and determining a hash value of the second data record, wherein the second data record further comprises a second service attribute and a second sequence number; and

after a predetermined block forming condition is satisfied, determining one or more data records to be written to a second data block, and generating an Nth data block that comprises a hash value of the second data block and the second data record, corresponding to conditions of N, wherein N indicates the second sequence number of the second data block and the conditions comprise:

when N is equal to one, giving a hash value and block height of the initial data block based on a predetermined method; or

when N is greater than one, determining the hash value of the Nth data block based on each data record to be written to the data block and a hash value of an (N−1)th data block, and generating the Nth data block that comprises the hash value of the Nth data block and the data record, wherein the block heights of the data blocks increase monotonically based on the sequence of block forming time.

5. The computer-implemented method of claim 4 , wherein the predetermined block forming condition comprises:

a quantity of data records to be stored reaches a quantity threshold; or

a time interval from a previous block forming time reaches a time threshold.

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

obtaining, by a centralized database server, a service attribute and a sequence number comprised in a data record, wherein the data record is stored in a blockchain-type ledger;

determining location information of the data record in the blockchain-type ledger, wherein the location information comprises a block height of a data block comprising the data record, and an offset of the data record in the data block;

establishing a mapping relationship between the service attribute, the location information, and the sequence number;

based on the sequence number, sequentially writing the mapping relationship to an index that uses the service attribute as a primary key, wherein

each data block other than an initial data block of the blockchain-type ledger comprises at least one data record and a hash value of the data block itself that is determined based on a hash value of a previous data block and a data record comprised in the data block itself, and wherein block heights of data blocks increase based on a sequence of block forming time;

receiving a query instruction, from a query instruction sender, wherein the query instruction comprises a specific value of the service attribute;

performing matching in an index table based on the specific value of the service attribute to determine location information and sequence numbers corresponding to the specific value of the service attribute in the index table; and

obtaining corresponding data records from the blockchain-type ledger based on the location information, and sequentially returning the obtained corresponding data records to the query instruction sender based on the sequence numbers.

7. The non-transitory, computer-readable medium of claim 6 , wherein obtaining a service attribute and a sequence number comprises:

responsive to receiving a data record sent by a user, obtaining the service attribute and the sequence number comprised in a specified identification filed in the data record; or

determining a data record comprised in a data block in the blockchain-type ledger, and obtaining the service attribute and the sequence number that are comprised in a specified identification field in any data record comprised in the data block.

8. The non-transitory, computer-readable medium of claim 6 , wherein sequentially writing the mapping relationship to an index that uses the service attribute as a primary key comprises:

creating an index record using the service attribute as a primary key in an index table when the primary key in the index does not comprise the service attribute; or

writing the location information and the sequence number to an index record comprising the service attribute when the primary key in the index comprises the service attribute.

9. The non-transitory, computer-readable medium of claim 6 further comprising: receiving data to be stored, wherein the data to be stored is sent by a user;

generating a second data record comprising the data to be stored, and determining a hash value of the second data record, wherein the second data record further comprises a second service attribute and a second sequence number; and

after a predetermined block forming condition is satisfied, determining one or more data records to be written to a second data block, and generating an Nth data block that comprises a hash value of the second data block and the second data record, corresponding to conditions of N, wherein N indicates the second sequence number of the second data block and the conditions comprise:

when N is equal to one, giving a hash value and block height of the initial data block based on a predetermined method; or

when N is greater than one, determining the hash value of the Nth data block based on each data record to be written to the data block and a hash value of an (N−1)th data block, and generating the Nth data block that comprises the hash value of the Nth data block and the data record, wherein the block heights of the data blocks increase monotonically based on the sequence of block forming time.

10. The non-transitory, computer-readable medium of claim 9 , wherein the predetermined block forming condition comprises:

a quantity of data records to be stored reaches a quantity threshold; or

a time interval from a previous block forming time reaches a time threshold.

11. A computer-implemented system, 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, by a centralized database server, a service attribute and a sequence number comprised in a data record, wherein the data record is stored in a blockchain-type ledger;

determining location information of the data record in the blockchain-type ledger, wherein the location information comprises a block height of a data block comprising the data record, and an offset of the data record in the data block;

establishing a mapping relationship between the service attribute, the location information, and the sequence number;

based on the sequence number, sequentially writing the mapping relationship to an index that uses the service attribute as a primary key, wherein

each data block other than an initial data block of the blockchain-type ledger comprises at least one data record and a hash value of the data block itself that is determined based on a hash value of a previous data block and a data record comprised in the data block itself, and wherein block heights of data blocks increase based on a sequence of block forming time;

receiving a query instruction, from a query instruction sender, wherein the query instruction comprises a specific value of the service attribute;

performing matching in an index table based on the specific value of the service attribute to determine location information and sequence numbers corresponding to the specific value of the service attribute in the index table; and

obtaining corresponding data records from the blockchain-type ledger based on the location information, and sequentially returning the obtained corresponding data records to the query instruction sender based on the sequence numbers.

12. The computer-implemented system of claim 11 , wherein obtaining a service attribute and a sequence number comprises:

responsive to receiving a data record sent by a user, obtaining the service attribute and the sequence number comprised in a specified identification filed in the data record; or

determining a data record comprised in a data block in the blockchain-type ledger, and obtaining the service attribute and the sequence number that are comprised in a specified identification field in any data record comprised in the data block.

13. The computer-implemented system of claim 11 , wherein sequentially writing the mapping relationship to an index that uses the service attribute as a primary key comprises:

creating an index record using the service attribute as a primary key in an index table when the primary key in the index does not comprise the service attribute; or

writing the location information and the sequence number to an index record comprising the service attribute when the primary key in the index comprises the service attribute.

14. The computer-implemented system of claim 11 further comprising:

receiving data to be stored, wherein the data to be stored is sent by a user;

generating a second data record comprising the data to be stored, and determining a hash value of the second data record, wherein the second data record further comprises a second service attribute and a second sequence number; and

after a predetermined block forming condition is satisfied, determining one or more data records to be written to a second data block, and generating an Nth data block that comprises a hash value of the second data block and the second data record, corresponding to conditions of N, wherein N indicates the second sequence number of the second data block and the conditions comprise:

when N is equal to one, giving a hash value and block height of the initial data block based on a predetermined method; or

when N is greater than one, determining the hash value of the Nth data block based on each data record to be written to the data block and a hash value of an (N−1)th data block, and generating the Nth data block that comprises the hash value of the Nth data block and the data record, wherein the block heights of the data blocks increase monotonically based on the sequence of block forming time.

15. The computer-implemented system of claim 14 , wherein the predetermined block forming condition comprises:

a quantity of data records to be stored reaches a quantity threshold; or

a time interval from a previous block forming time reaches a time threshold.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2025
From: ADVANCED NEW TECHNOLOGIES CO., LTD.
To: ANTCHAIN TECHNOLOGY PTE. LTD.
Reel/Frame 070253/0064 →
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 1, 2020
From: YANG, XINYING
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 052282/0651 →