# US 11,122,110 B2 · Blockchain-based file processing method, apparatus, and device, and storage medium

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,122,110 B2
- Document ID: US11122110B2
- Status: Granted
- Kind: B2
- Application number: 16/887,578
- Filed: 2020-05-29
- Published: 2020-09-17
- Granted: 2021-09-14
- Earliest claimed: 2019-06-11
- Assignees: Advanced New Technologies Co., Ltd.
- Applicants: Advanced New Technologies Co., Ltd.
- Inventors: Dan Liu
- Web page: https://patentgrep.com/patent/US11122110B2

## CPC

- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- G06F 16/1744: {using compression, e.g. sparse files}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- H04L 63/123: {received data contents, e.g. message integrity}
- H04L 67/1036: Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for blockchain-based file processing are provided. One of the methods includes: receiving, from a client, a request for downloading a target file stored in a blockchain, the request comprising a network address of the client and a file address of the target file; identifying, based on the network address information of the client, a target blockchain node associated with the blockchain for downloading the target file, the target blockchain node having a network address that is the closest to the network address of the client among a set of candidate blockchain nodes; downloading the target file from the determined target blockchain node based on the file address information; and returning the downloaded target file to the client.

## Claims

### Claim 1

A method for blockchain-based file processing, comprising:
receiving, from a client, a request for downloading a target file stored in a blockchain, the request comprising a network address of the client and a file address of the target file, wherein the blockchain comprises a plurality of nodes and each node having stored the target file and network addresses of one or more other nodes of the plurality of nodes;
determining, based on the network address information of the client, a set of candidate blockchain nodes in the blockchain from which the client has downloaded one or more files a number of times greater than a predetermined threshold number;
determining a target blockchain node having a network address that is the closest to the network address of the client among the set of candidate blockchain nodes;
downloading the target file from the determined target blockchain node based on the file address information; and
returning the downloaded target file to the client.

### Claim 2 (depends on 1)

The method of claim 1, wherein the determining the target blockchain node comprises:
identifying a first blockchain node having a network address that is the closest to the network address of the client among the set of candidate blockchain nodes;
determining whether a load of the target blockchain node is less than a threshold;
if the load is less than the threshold, using the first blockchain node as the target blockchain node; and
if the load is greater than or equal to the threshold, determining the target blockchain node through load balancing based on the network address information.

### Claim 3 (depends on 1)

The method of claim 1, wherein the downloading the target file from the determined target blockchain node based on the file address information comprises:
forwarding the request for downloading the target file to the determined target blockchain node; and
extracting the file address of the target file from the request for downloading the target file.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
performing a hash operation on the target file to obtain a hash value of the target file; and
generating the file address of the target file based on the hash value and a predetermined character string.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving a request for uploading the target file to the blockchain; and
broadcasting the target file to a plurality of blockchain nodes associated with the blockchain for storing based on consensus processing.

### Claim 6 (depends on 1)

The method of claim 1, wherein the returning the downloaded target file to the client comprises:
extracting identification information of the client from the request for downloading the target file;
determining, based on the extracted identification information, that the client is a mobile client;
compressing the target file; and
returning the compressed target file to the client.

### Claim 7

A system for blockchain-based file processing, comprising a processor and a non-transitory computer-readable storage medium storing instructions executable by the processor to cause the system to perform operations comprising:
receiving, from a client, a request for downloading a target file stored in a blockchain, the request comprising a network address of the client and a file address of the target file, wherein the blockchain comprises a plurality of nodes and each node having stored the target file and network addresses of one or more other nodes of the plurality of nodes;
determining, based on the network address information of the client, a set of candidate blockchain nodes in the blockchain from which the client has downloaded one or more files a number of times greater than a predetermined threshold number;
determining a target blockchain node having a network address that is the closest to the network address of the client among the set of candidate blockchain nodes;
downloading the target file from the determined target blockchain node based on the file address information; and
returning the downloaded target file to the client.

### Claim 8 (depends on 7)

The system of claim 7, wherein the determining the target blockchain node comprises:
identifying a first blockchain node having a network address that is the closest to the network address of the client among the set of candidate blockchain nodes;
determining whether a load of the target blockchain node is less than a threshold;
if the load is less than the threshold, using the first blockchain node as the target blockchain node; and
if the load is greater than or equal to the threshold, determining the target blockchain node through load balancing based on the network address information.

### Claim 9 (depends on 7)

The system of claim 7, wherein the downloading the target file from the determined target blockchain node based on the file address information comprises:
forwarding the request for downloading the target file to the determined target blockchain node; and
extracting the file address of the target file from the request for downloading the target file.

### Claim 10 (depends on 7)

The system of claim 7, wherein the operations further comprise:
performing a hash operation on the target file to obtain a hash value of the target file; and
generating the file address of the target file based on the hash value and a predetermined character string.

### Claim 11 (depends on 7)

The system of claim 7, wherein the operations further comprise:
receiving a request for uploading the target file to the blockchain; and
broadcasting the target file to a plurality of blockchain nodes associated with the blockchain for storing based on consensus processing.

### Claim 12 (depends on 7)

The system of claim 7, wherein the returning the downloaded target file to the client comprises:
extracting identification information of the client from the request for downloading the target file;
determining, based on the extracted identification information, that the client is a mobile client;
compressing the target file; and
returning the compressed target file to the client.

### Claim 13

A non-transitory computer-readable storage medium for blockchain-based file processing, configured with instructions executable by one or more processors to cause the one or more processors to perform operations comprising:
receiving, from a client, a request for downloading a target file stored in a blockchain, the request comprising a network address of the client and a file address of the target file, wherein the blockchain comprises a plurality of nodes and each node having stored the target file and network addresses of one or more other nodes of the plurality of nodes;
determining, based on the network address information of the client, a set of candidate blockchain nodes in the blockchain from which the client has downloaded one or more files a number of times greater than a predetermined threshold number;
determining a target blockchain node having a network address that is the closest to the network address of the client among the set of candidate blockchain nodes;
downloading the target file from the determined target blockchain node based on the file address information; and
returning the downloaded target file to the client.

### Claim 14 (depends on 13)

The medium of claim 13, wherein the determining the target blockchain node comprises:
identifying a first blockchain node having a network address that is the closest to the network address of the client among the set of candidate blockchain nodes;
determining whether a load of the target blockchain node is less than a threshold;
if the load is less than the threshold, using the first blockchain node as the target blockchain node; and
if the load is greater than or equal to the threshold, determining the target blockchain node through load balancing based on the network address information.

### Claim 15 (depends on 13)

The medium of claim 13, wherein the downloading the target file from the determined target blockchain node based on the file address information comprises:
forwarding the request for downloading the target file to the determined target blockchain node; and
extracting the file address of the target file from the request for downloading the target file.

### Claim 16 (depends on 13)

The medium of claim 13, wherein the operations further comprise:
receiving a request for uploading the target file to the blockchain; and
broadcasting the target file to a plurality of blockchain nodes associated with the blockchain for storing based on consensus processing.

### Claim 17 (depends on 13)

The medium of claim 13, wherein the returning the downloaded target file to the client comprises:
extracting identification information of the client from the request for downloading the target file;
determining, based on the extracted identification information, that the client is a mobile client;
compressing the target file; and
returning the compressed target file to the client.

### Claim 18 (depends on 13)

The medium of claim 13, wherein the operations further comprise:
performing a hash operation on the target file to obtain a hash value of the target file; and
generating the file address of the target file based on the hash value and a predetermined character string.

### Claim 19 (depends on 1)

The method of claim 1, wherein the predetermined threshold number is determined according to a total number of times the client downloads files from the blockchain.

### Claim 20 (depends on 7)

The system of claim 7, wherein the predetermined threshold number is determined according to a total number of times the client downloads files from the blockchain.
