@libp2p/kad-dht 13.1.2 → 14.0.0-0d326d102

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. package/dist/index.min.js +2 -2
  2. package/dist/src/constants.d.ts +1 -0
  3. package/dist/src/constants.d.ts.map +1 -1
  4. package/dist/src/constants.js +3 -0
  5. package/dist/src/constants.js.map +1 -1
  6. package/dist/src/index.d.ts +28 -6
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/kad-dht.d.ts.map +1 -1
  10. package/dist/src/kad-dht.js +25 -11
  11. package/dist/src/kad-dht.js.map +1 -1
  12. package/dist/src/network.d.ts +1 -1
  13. package/dist/src/network.d.ts.map +1 -1
  14. package/dist/src/network.js +1 -3
  15. package/dist/src/network.js.map +1 -1
  16. package/dist/src/peer-distance-list.d.ts.map +1 -0
  17. package/dist/src/{peer-list/peer-distance-list.js → peer-distance-list.js} +1 -1
  18. package/dist/src/peer-distance-list.js.map +1 -0
  19. package/dist/src/peer-routing/index.js +1 -1
  20. package/dist/src/peer-routing/index.js.map +1 -1
  21. package/dist/src/query-self.d.ts.map +1 -1
  22. package/dist/src/query-self.js +13 -6
  23. package/dist/src/query-self.js.map +1 -1
  24. package/dist/src/routing-table/closest-peers.d.ts +43 -0
  25. package/dist/src/routing-table/closest-peers.d.ts.map +1 -0
  26. package/dist/src/routing-table/closest-peers.js +86 -0
  27. package/dist/src/routing-table/closest-peers.js.map +1 -0
  28. package/dist/src/routing-table/index.d.ts +55 -32
  29. package/dist/src/routing-table/index.d.ts.map +1 -1
  30. package/dist/src/routing-table/index.js +259 -161
  31. package/dist/src/routing-table/index.js.map +1 -1
  32. package/dist/src/routing-table/k-bucket.d.ts +65 -21
  33. package/dist/src/routing-table/k-bucket.d.ts.map +1 -1
  34. package/dist/src/routing-table/k-bucket.js +122 -66
  35. package/dist/src/routing-table/k-bucket.js.map +1 -1
  36. package/dist/src/routing-table/refresh.d.ts.map +1 -1
  37. package/dist/src/routing-table/refresh.js +4 -1
  38. package/dist/src/routing-table/refresh.js.map +1 -1
  39. package/dist/src/rpc/index.d.ts.map +1 -1
  40. package/dist/src/rpc/index.js +3 -7
  41. package/dist/src/rpc/index.js.map +1 -1
  42. package/package.json +11 -12
  43. package/src/constants.ts +5 -0
  44. package/src/index.ts +32 -6
  45. package/src/kad-dht.ts +29 -13
  46. package/src/network.ts +1 -4
  47. package/src/{peer-list/peer-distance-list.ts → peer-distance-list.ts} +1 -1
  48. package/src/peer-routing/index.ts +1 -1
  49. package/src/query-self.ts +14 -6
  50. package/src/routing-table/closest-peers.ts +113 -0
  51. package/src/routing-table/index.ts +300 -194
  52. package/src/routing-table/k-bucket.ts +194 -81
  53. package/src/routing-table/refresh.ts +5 -1
  54. package/src/rpc/index.ts +4 -7
  55. package/dist/src/peer-list/index.d.ts +0 -29
  56. package/dist/src/peer-list/index.d.ts.map +0 -1
  57. package/dist/src/peer-list/index.js +0 -45
  58. package/dist/src/peer-list/index.js.map +0 -1
  59. package/dist/src/peer-list/peer-distance-list.d.ts.map +0 -1
  60. package/dist/src/peer-list/peer-distance-list.js.map +0 -1
  61. package/dist/typedoc-urls.json +0 -56
  62. package/src/peer-list/index.ts +0 -54
  63. /package/dist/src/{peer-list/peer-distance-list.d.ts → peer-distance-list.d.ts} +0 -0
@@ -0,0 +1,86 @@
1
+ import { PeerSet } from '@libp2p/peer-collections';
2
+ import { KEEP_ALIVE_TAG } from '../constants.js';
3
+ import { PeerDistanceList } from '../peer-distance-list.js';
4
+ import { convertPeerId } from '../utils.js';
5
+ export const PEER_SET_SIZE = 20;
6
+ export const REFRESH_INTERVAL = 5000;
7
+ export const KAD_CLOSE_TAG_NAME = 'kad-close';
8
+ export const KAD_CLOSE_TAG_VALUE = 50;
9
+ /**
10
+ * Contains a list of the kad-closest peers encountered on the network.
11
+ *
12
+ * Once every few seconds, if the list has changed, it tags the closest peers.
13
+ */
14
+ export class ClosestPeers {
15
+ routingTable;
16
+ components;
17
+ closestPeers;
18
+ newPeers;
19
+ refreshInterval;
20
+ peerSetSize;
21
+ timeout;
22
+ closeTagName;
23
+ closeTagValue;
24
+ log;
25
+ constructor(components, init) {
26
+ this.components = components;
27
+ this.log = components.logger.forComponent(`${init.logPrefix}:routing-table`);
28
+ this.routingTable = init.routingTable;
29
+ this.refreshInterval = init.refreshInterval ?? REFRESH_INTERVAL;
30
+ this.peerSetSize = init.peerSetSize ?? PEER_SET_SIZE;
31
+ this.closeTagName = init.closeTagName ?? KAD_CLOSE_TAG_NAME;
32
+ this.closeTagValue = init.closeTagValue ?? KAD_CLOSE_TAG_VALUE;
33
+ this.closestPeers = new PeerSet();
34
+ this.onPeerPing = this.onPeerPing.bind(this);
35
+ }
36
+ async start() {
37
+ const targetKadId = await convertPeerId(this.components.peerId);
38
+ this.newPeers = new PeerDistanceList(targetKadId, this.peerSetSize);
39
+ this.routingTable.addEventListener('peer:ping', this.onPeerPing);
40
+ this.timeout = setInterval(() => {
41
+ this.updatePeerTags()
42
+ .catch(err => {
43
+ this.log.error('error updating peer tags - %e', err);
44
+ });
45
+ }, this.refreshInterval);
46
+ }
47
+ stop() {
48
+ this.routingTable.removeEventListener('peer:ping', this.onPeerPing);
49
+ clearTimeout(this.timeout);
50
+ }
51
+ onPeerPing(event) {
52
+ this.newPeers?.add({ id: event.detail, multiaddrs: [] })
53
+ .catch(err => {
54
+ this.log.error('error adding peer to distance list - %e', err);
55
+ });
56
+ }
57
+ async updatePeerTags() {
58
+ const newClosest = new PeerSet(this.newPeers?.peers.map(peer => peer.id));
59
+ const added = newClosest.difference(this.closestPeers);
60
+ const removed = this.closestPeers.difference(newClosest);
61
+ this.closestPeers = newClosest;
62
+ await Promise.all([
63
+ ...[...added].map(async (peerId) => {
64
+ await this.components.peerStore.merge(peerId, {
65
+ tags: {
66
+ [this.closeTagName]: {
67
+ value: this.closeTagValue
68
+ },
69
+ [KEEP_ALIVE_TAG]: {
70
+ value: 1
71
+ }
72
+ }
73
+ });
74
+ }),
75
+ ...[...removed].map(async (peerId) => {
76
+ await this.components.peerStore.merge(peerId, {
77
+ tags: {
78
+ [this.closeTagName]: undefined,
79
+ [KEEP_ALIVE_TAG]: undefined
80
+ }
81
+ });
82
+ })
83
+ ]);
84
+ }
85
+ }
86
+ //# sourceMappingURL=closest-peers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closest-peers.js","sourceRoot":"","sources":["../../../src/routing-table/closest-peers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAI3C,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA;AAC/B,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAA;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAA;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAA;AAkBrC;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACN,YAAY,CAAc;IAC1B,UAAU,CAAwB;IAC3C,YAAY,CAAS;IACrB,QAAQ,CAAmB;IAClB,eAAe,CAAQ;IACvB,WAAW,CAAQ;IAC5B,OAAO,CAAgC;IAC9B,YAAY,CAAQ;IACpB,aAAa,CAAQ;IACrB,GAAG,CAAQ;IAE5B,YAAa,UAAkC,EAAE,IAAsB;QACrE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,gBAAgB,CAAC,CAAA;QAC5E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,gBAAgB,CAAA;QAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,aAAa,CAAA;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,kBAAkB,CAAA;QAC3D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,mBAAmB,CAAA;QAE9D,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAE,CAAA;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACnE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEhE,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;iBAClB,KAAK,CAAC,GAAG,CAAC,EAAE;gBACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;YACtD,CAAC,CAAC,CAAA;QACN,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACnE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,UAAU,CAAE,KAA0B;QACpC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;aACrD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACzE,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QACxD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAA;QAE9B,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;gBAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC5C,IAAI,EAAE;wBACJ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;4BACnB,KAAK,EAAE,IAAI,CAAC,aAAa;yBAC1B;wBACD,CAAC,cAAc,CAAC,EAAE;4BAChB,KAAK,EAAE,CAAC;yBACT;qBACF;iBACF,CAAC,CAAA;YACJ,CAAC,CAAC;YACF,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;gBACjC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC5C,IAAI,EAAE;wBACJ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS;wBAC9B,CAAC,cAAc,CAAC,EAAE,SAAS;qBAC5B;iBACF,CAAC,CAAA;YACJ,CAAC,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -1,65 +1,86 @@
1
1
  import { TypedEventEmitter } from '@libp2p/interface';
2
- import { PeerQueue } from '@libp2p/utils/peer-queue';
3
- import { KBucket, type PingEventDetails } from './k-bucket.js';
4
- import type { ComponentLogger, Metrics, PeerId, PeerStore, Startable } from '@libp2p/interface';
5
- import type { ConnectionManager } from '@libp2p/interface-internal';
6
- export declare const KAD_CLOSE_TAG_NAME = "kad-close";
7
- export declare const KAD_CLOSE_TAG_VALUE = 50;
2
+ import { KBucket } from './k-bucket.js';
3
+ import type { Peer } from './k-bucket.js';
4
+ import type { Network } from '../network.js';
5
+ import type { AbortOptions, ComponentLogger, Metrics, PeerId, PeerStore, Startable } from '@libp2p/interface';
6
+ import type { AdaptiveTimeoutInit } from '@libp2p/utils/adaptive-timeout';
8
7
  export declare const KBUCKET_SIZE = 20;
9
- export declare const PREFIX_LENGTH = 32;
10
- export declare const PING_TIMEOUT = 10000;
11
- export declare const PING_CONCURRENCY = 10;
8
+ export declare const PREFIX_LENGTH = 8;
9
+ export declare const PING_NEW_CONTACT_TIMEOUT = 2000;
10
+ export declare const PING_NEW_CONTACT_CONCURRENCY = 20;
11
+ export declare const PING_NEW_CONTACT_MAX_QUEUE_SIZE = 100;
12
+ export declare const PING_OLD_CONTACT_COUNT = 3;
13
+ export declare const PING_OLD_CONTACT_TIMEOUT = 2000;
14
+ export declare const PING_OLD_CONTACT_CONCURRENCY = 20;
15
+ export declare const PING_OLD_CONTACT_MAX_QUEUE_SIZE = 100;
16
+ export declare const KAD_PEER_TAG_NAME = "kad-peer";
17
+ export declare const KAD_PEER_TAG_VALUE = 1;
18
+ export declare const LAST_PING_THRESHOLD = 600000;
19
+ export declare const POPULATE_FROM_DATASTORE_ON_START = true;
20
+ export declare const POPULATE_FROM_DATASTORE_LIMIT = 1000;
12
21
  export interface RoutingTableInit {
13
22
  logPrefix: string;
14
23
  protocol: string;
15
24
  prefixLength?: number;
16
25
  splitThreshold?: number;
17
26
  kBucketSize?: number;
18
- pingTimeout?: number;
19
- pingConcurrency?: number;
20
- tagName?: string;
21
- tagValue?: number;
27
+ pingNewContactTimeout?: AdaptiveTimeoutInit;
28
+ pingNewContactConcurrency?: number;
29
+ pingNewContactMaxQueueSize?: number;
30
+ pingOldContactTimeout?: AdaptiveTimeoutInit;
31
+ pingOldContactConcurrency?: number;
32
+ pingOldContactMaxQueueSize?: number;
33
+ numberOfOldContactsToPing?: number;
34
+ peerTagName?: string;
35
+ peerTagValue?: number;
36
+ closeTagName?: string;
37
+ closeTagValue?: number;
38
+ network: Network;
39
+ populateFromDatastoreOnStart?: boolean;
40
+ populateFromDatastoreLimit?: number;
41
+ lastPingThreshold?: number;
42
+ closestPeerSetSize?: number;
43
+ closestPeerSetRefreshInterval?: number;
22
44
  }
23
45
  export interface RoutingTableComponents {
24
46
  peerId: PeerId;
25
47
  peerStore: PeerStore;
26
- connectionManager: ConnectionManager;
27
48
  metrics?: Metrics;
28
49
  logger: ComponentLogger;
29
50
  }
30
51
  export interface RoutingTableEvents {
31
52
  'peer:add': CustomEvent<PeerId>;
32
53
  'peer:remove': CustomEvent<PeerId>;
54
+ 'peer:ping': CustomEvent<PeerId>;
33
55
  }
34
56
  /**
35
- * A wrapper around `k-bucket`, to provide easy store and
36
- * retrieval for peers.
57
+ * A wrapper around `k-bucket`, to provide easy store and retrieval for peers.
37
58
  */
38
59
  export declare class RoutingTable extends TypedEventEmitter<RoutingTableEvents> implements Startable {
39
60
  kBucketSize: number;
40
- kb?: KBucket;
41
- pingQueue: PeerQueue<boolean>;
61
+ kb: KBucket;
62
+ network: Network;
63
+ private readonly closestPeerTagger;
42
64
  private readonly log;
43
65
  private readonly components;
44
- private readonly prefixLength;
45
- private readonly splitThreshold;
46
- private readonly pingTimeout;
47
- private readonly pingConcurrency;
48
66
  private running;
67
+ private readonly pingNewContactTimeout;
68
+ private readonly pingNewContactQueue;
69
+ private readonly pingOldContactTimeout;
70
+ private readonly pingOldContactQueue;
71
+ private readonly populateFromDatastoreOnStart;
72
+ private readonly populateFromDatastoreLimit;
49
73
  private readonly protocol;
50
- private readonly tagName;
51
- private readonly tagValue;
74
+ private readonly peerTagName;
75
+ private readonly peerTagValue;
52
76
  private readonly metrics?;
53
77
  constructor(components: RoutingTableComponents, init: RoutingTableInit);
54
78
  isStarted(): boolean;
55
79
  start(): Promise<void>;
80
+ afterStart(): Promise<void>;
56
81
  stop(): Promise<void>;
57
- /**
58
- * Keep track of our k-closest peers and tag them in the peer store as such
59
- * - this will lower the chances that connections to them get closed when
60
- * we reach connection limits
61
- */
62
- _tagPeers(kBuck: KBucket): void;
82
+ private peerAdded;
83
+ private peerRemoved;
63
84
  /**
64
85
  * Called on the `ping` event from `k-bucket` when a bucket is full
65
86
  * and cannot split.
@@ -70,7 +91,9 @@ export declare class RoutingTable extends TypedEventEmitter<RoutingTableEvents>
70
91
  * `oldContacts` will not be empty and is the list of contacts that
71
92
  * have not been contacted for the longest.
72
93
  */
73
- _onPing(evt: CustomEvent<PingEventDetails>): Promise<void>;
94
+ pingOldContacts(oldContacts: Peer[], options?: AbortOptions): AsyncGenerator<Peer>;
95
+ verifyNewContact(contact: Peer, options?: AbortOptions): Promise<boolean>;
96
+ pingContact(contact: Peer, options?: AbortOptions): Promise<boolean>;
74
97
  /**
75
98
  * Amount of currently stored peers
76
99
  */
@@ -90,7 +113,7 @@ export declare class RoutingTable extends TypedEventEmitter<RoutingTableEvents>
90
113
  /**
91
114
  * Add or update the routing table with the given peer
92
115
  */
93
- add(peerId: PeerId): Promise<void>;
116
+ add(peerId: PeerId, options?: AbortOptions): Promise<void>;
94
117
  /**
95
118
  * Remove a given peer from the table
96
119
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"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"}