IP Library Granted Patent US 11,611,615
Granted Patent B1
US 11,611,615 · App. 17/988,088 · Granted Mar 21, 2023

Decentralized edge storage network with flexible file sharding

Inventors: Jieyi Long (Santa Clara, CA); Mitchell C. Liu (Los Altos, CA)
Assignee: Theta Labs, Inc.
H04L67/108G06F16/137H04L67/1065
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,611,615
App. No.
17/988,088
Granted
Mar 21, 2023
Kind
B1
Abstract

Methods and systems for decentralized storage are provided. To store a file in a decentralized network, a source node in the decentralized network first divides the file into a plurality of file portions. For each given file portion, a corresponding peer storage node is located in the decentralized network, where a distance between the corresponding peer storage node and the given file portion is below a given threshold, where the distance is computed based on an identifier of the corresponding peer storage node, and an identifier of the given file portion, and where the given threshold is associated with a storage capacity of the corresponding peer storage node. The source node then transmits each given file portion to the corresponding peer storage node, and generates a file identifier for the file, based on the identifiers of the plurality of file portions.

Claims (64)

1. A method for decentralized storage, comprising:

dividing, by a source node in a decentralized network, a file into a plurality of file portions;

for each given file portion in the plurality of file portions, locating a corresponding peer storage node in the decentralized network,

wherein a distance between the corresponding peer storage node and the given file portion is below a given threshold,

wherein the distance is computed based on an identifier of the corresponding peer storage node and an identifier of the given file portion, and

wherein the given threshold is associated with a storage capacity of the corresponding peer storage node;

transmitting, by the source node, each given file portion to the corresponding peer storage node; and

generating, by the source node, a file identifier for the file, based on the identifiers of the plurality of file portions.

2. The method of claim 1 , wherein for each given file portion in the plurality of file portions, the locating the corresponding peer storage node in the decentralized network comprises:

gossiping the identifier of the given file portion through the decentralized network; and

receiving a location notification from the corresponding peer storage node, wherein the location notification indicates that the distance between the corresponding peer storage node and the given file portion is below the given threshold associated with the storage capacity of the corresponding peer storage node.

3. The method of claim 1 , wherein for each given file portion in the plurality of file portions, the locating the corresponding peer storage node in the decentralized network comprises:

retrieving, by the source node, a list of registered peer storage nodes from a blockchain; and

selecting the corresponding peer storage node from the list of registered peer storage nodes.

4. The method of claim 1 , wherein the identifier of the corresponding peer storage node and the identifier of the given file portion are computed using a hash function.

5. The method of claim 1 , wherein the identifier of the corresponding peer storage node is computed based on a crypto wallet address associated with the corresponding peer storage node.

6. The method of claim 1 , wherein the generating of the file identifier comprises performing a vector commitment scheme on the identifiers of the plurality of file portions.

7. The method of claim 1 , further comprising:

submitting the file identifier to a smart contract.

8. The method of claim 1 , further comprising:

performing a distributed hash table (DHT) lookup using the file identifier, to determine the identifier of each of the plurality of file portions;

for each given file portion of the plurality of file portions,

performing a DHT lookup on the identifier of the given file portion to determine an address for a peer storage node storing the given file portion;

retrieving each given file portion from the peer storage node storing the given file portion, using the determined address; and

assembling the retrieved file portions into the file.

9. A source node system in a decentralized network for decentralized storage, comprising:

at least one processor; and

a non-transitory physical medium for storing program code accessible by the processor, the program code when executed by the processor causes the processor to:

divide a file into a plurality of file portions;

for each given file portion in the plurality of file portions, locate a corresponding peer storage node in the decentralized network,

wherein a distance between the corresponding peer storage node and the given file portion is below a given threshold,

wherein the distance is computed based on an identifier of the corresponding peer storage node and an identifier of the given file portion, and

wherein the given threshold is associated with a storage capacity of the corresponding peer storage node;

transmit each given file portion to the corresponding peer storage node; and

generate a file identifier for the file, based on the identifiers of the plurality of file portions.

10. The source node system of claim 9 , wherein for each given file portion in the plurality of file portions, the program code to locate the corresponding peer storage node, when executed by the processor, causes the processor to:

gossip the identifier of the given file portion through the decentralized network; and

receive a location notification from the corresponding peer storage node, wherein the location notification indicates that the distance between the corresponding peer storage node and the given file portion is below the given threshold associated with the storage capacity of the corresponding peer storage node.

11. The source node system of claim 9 , wherein for each given file portion in the plurality of file portions, the program code to locate the corresponding peer storage node, when executed by the processor, causes the processor to:

retrieve a list of registered peer storage nodes from a blockchain; and

select the corresponding peer storage node from the list of registered peer storage nodes.

12. The source node system of claim 9 , wherein the identifier of the corresponding peer storage node and the identifier of the given file portion is computed using a hash function.

13. The source node system of claim 9 , wherein the identifier of the corresponding peer storage node is computed based on a crypto wallet address associated with the corresponding peer storage node.

14. The source node system of claim 9 , wherein the program code to generate the file identifier, when executed by the processor, causes the processor to:

perform a vector commitment scheme on the identifiers of the plurality of file portions.

15. The source node system of claim 9 , wherein the program code when executed by the processor further causes the processor to:

submit the file identifier to a smart contract.

16. The source node system of claim 9 , wherein the program code when executed by the processor further causes the processor to:

perform a distributed hash table (DHT) lookup using the file identifier, to determine the identifier of each of the plurality of file portions;

for each given file portion of the plurality of file portions,

perform a DHT lookup on the identifier of the given file portion to determine an address for a peer storage node storing the given file portion;

retrieve each given file portion from the peer storage node storing the given file portion, using the determined address; and

assemble the retrieved file portions into the file.

17. A method for decentralized storage, comprising:

receiving, by a peer storage node, a file portion of a file, wherein the file is divided into a plurality of file portions by a source node;

computing, by the peer storage node, a distance based on an identifier of the received file portion, and an identifier of the peer storage node;

determining, by the peer storage node, whether the distance is below a threshold associated with a storage capacity of the peer storage node; and

storing the received file portion in the peer storage node in response to determining that the distance is below the threshold.

18. The method of claim 17 , wherein the identifier of the peer storage node and the identifier of the received file portion are computed using a hash function.

19. The method of claim 17 , wherein the identifier of the peer storage node is computed based on a crypto wallet address associated with the peer storage node.

20. The method of claim 17 , further comprising:

retrieving a random number from a blockchain;

computing a reward hash, based on the received file portion and the random number; and

submitting the reward hash to a smart contract on the blockchain.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2022
From: LONG, JIEYI; LIU, MITCHELL C.
To: THETA LABS, INC.
Reel/Frame 061803/0798 →
Continuity (2)
Provisional Application 63311065 · Feb 17, 2022
Provisional Application 63287072 · Dec 7, 2021
Cited By (4)
US 12,278,860 US 12,469,197 US 12,499,229 US 12,580,778