IP Library Granted Patent US 12,177,356
Granted Patent B2
US 12,177,356 · App. 16/625,631 · Granted Dec 24, 2024

Methods and systems for a consistent distributed memory pool in a blockchain network

Inventors: Giuseppe Destefanis (London, GB); Simone Madeo (London, GB); Patrick Motylinski (London, GB); Stephane Vincent (Luxembourg, LU); Craig Steven Wright (London, GB)
Assignee: nChain Licensing AG
H04L9/3236G06F9/5016H04L9/0825H04L45/02H04L45/44H04L67/1097H04L9/50H04L2209/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 12,177,356
App. No.
16/625,631
Granted
Dec 24, 2024
Kind
B2
Abstract

Techniques and computer-implemented methods are presented to be implemented on a distributed mempool network (DMP) implementing a distributed hash table (DHT). The method includes: receiving, at a mempool node of a DMP, a request to update routing information of the mempool node; initializing a set of random walks within a key space of the DHT, the set of random walks used for generating a set of key-value records; selecting a particular iteration of a long-distance table of a set of long-distance tables; selecting, from the particular iteration of the long-distance table, a pointer within a range between identification information and a key; and transmitting a query to another mempool node associated with the pointer, wherein the other mempool node maintains a set of weight associated connections to a set of mempool nodes, wherein the weight is proportional to the level of trust in the connection.

Claims (34)

1. A computer-implemented method comprising:

receiving, at a mempool node of a distributed mempool network (DMP) implementing a distributed hash table (DHT), a request to update routing information of the mempool node, the update occurring in two phases:

at a first phase:

initializing a set of random walks within a key space of the DHT, the set of random walks used for generating a set of key-value records to be stored in a first table Tab_RND (Sx); and

at a second phase:

generating, for a number of iterations where each iteration being i less than value α, three other tables: second table Tab_ID (Sx), third table Tab_DIST (Sx, i), and fourth table Tab_CLOSE (Sx, i);

creating a second table record for second table Tab_ID (Sx) by selecting a random identification information from a record Sx (i−1)-th Tab_DIST table, wherein a first entry is a random key from the first table Tab_RND (Sx);

creating a third table record for third table Tab_DIST (Sx, i) by performing a random walk to the mempool node and collecting a resulting mempool node's address and i-th identification information from a table Tab_ID (Sy) corresponding to a portion of the third table Tab_DIST (Sx, i);

generating a fourth table Tab_CLOSE (Sx, i) based on information included in the first table Tab_RND (Sx) by at least requesting records of a table Tab_RND (Sy) corresponding to a portion of the first table Tab_RND (Sx), which are a lexicographically close relative to at least one other key following the identification information at a given iteration i;

receiving, at the mempool node, a request for a value associated with a key;

selecting, from a fifth table of a long-distance table type, third identification information relative to at least some other identification information included in the fifth table;

selecting a particular iteration of a long-distance table of a set of long-distance tables of which the third table is a member;

selecting, from the particular iteration of the long-distance table, a pointer within a range between the third identification information and the key; and

transmitting a query to a third mempool node associated with the pointer,

wherein the mempool node maintains a set of weight associated with a set of connections to a set of other mempool nodes, wherein the weight is proportional to the level of trust in the connection with the set of other mempool nodes.

2. The computer-implemented method claimed in claim 1 , wherein the request to update routing information is part of an update operation executed over a number of iterations.

3. The computer-implemented method claimed in claim 2 , wherein the update operation is terminated after the number of iterations is completed, the number of iterations being defined by a DHT protocol.

4. The computer-implemented method claimed in claim 1 , further comprising creating, the mempool node, a set of trusted connections with a set of other mempool nodes.

5. The computer-implemented method claimed in claim 4 , wherein the set of trusted connections is modified.

6. The computer-implemented method claimed in claim 4 , wherein the request to update routing information of the mempool node is a result of modifying the set of trusted connections.

7. The computer-implemented method claimed in claim 1 , wherein the second record in the second table is pseudorandomly selected.

8. The computer-implemented method claimed in claim 1 , wherein the first record in an ID table is selected from information generated during initializing the set of random walks.

9. The computer-implemented method claimed in claim 1 , wherein selecting, from the particular iteration of the long-distance table, the pointer within the range between the third identification information and the key is performed randomly.

10. The computer-implemented method claimed in claim 1 , wherein the request to update routing information of the mempool node is a result of instantiation of a new mempool node.

11. The computer-implemented method claimed in claim 1 , wherein the request to update routing information of the mempool node is a result of at least one other mempool node failing.

12. The computer-implemented method claimed in claim 1 , wherein the request to update routing information of the mempool node is a result of modifying a set of keys associated with the DMP.

13. The computer-implemented method claimed in claim 1 , wherein the DMP obtains a plurality of storage requests from a set of validator nodes.

14. The computer-implemented method claimed in claim 1 , wherein the mempool node updates a weight of the set of weights as a result of at least one other mempool node failing to provide a valid key-value record.

15. The computer-implemented method claimed in claim 1 , wherein the mempool node of the DMP implements a consensus protocol to provide consensus among a plurality of mempool nodes of the DMP on a set of values included in the fourth table.

16. The computer-implemented method claimed in claim 1 , wherein the mempool node stores a second value that is also stored by at least one other mempool node of the DMP.

17. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, cause the system to perform the computer-implemented method of claim 1 .

18. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to at least perform the computer-implemented method of claim 1 .

Assignments (3)
CHANGE OF NAME Recorded Dec 8, 2022
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 062098/0778 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2022
From: WRIGHT, CRAIG STEVEN
To: NCHAIN HOLDINGS LTD
Reel/Frame 058667/0742 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2020
From: MOTYLINSKI, PATRICK; VINCENT, STEPHANE; DESTEFANIS, GIUSEPPE; MADEO, SIMONE
To: NCHAIN HOLDINGS LTD
Reel/Frame 051858/0614 →
Priority Claims (1)
GB 1709845 · Jun 20, 2017 · national
Continuity (1)
Related Publication 20210160077A1 · May 27, 2021