@libp2p/kad-dht 11.0.8 → 12.0.0-28587d24f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +78 -0
  2. package/dist/index.min.js +20 -20
  3. package/dist/src/constants.d.ts +2 -4
  4. package/dist/src/constants.d.ts.map +1 -1
  5. package/dist/src/constants.js +7 -9
  6. package/dist/src/constants.js.map +1 -1
  7. package/dist/src/content-fetching/index.d.ts +7 -7
  8. package/dist/src/content-fetching/index.d.ts.map +1 -1
  9. package/dist/src/content-fetching/index.js +13 -7
  10. package/dist/src/content-fetching/index.js.map +1 -1
  11. package/dist/src/content-routing/index.d.ts +5 -4
  12. package/dist/src/content-routing/index.d.ts.map +1 -1
  13. package/dist/src/content-routing/index.js +23 -13
  14. package/dist/src/content-routing/index.js.map +1 -1
  15. package/dist/src/index.d.ts +142 -28
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +87 -2
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/kad-dht.d.ts +20 -21
  20. package/dist/src/kad-dht.d.ts.map +1 -1
  21. package/dist/src/kad-dht.js +181 -35
  22. package/dist/src/kad-dht.js.map +1 -1
  23. package/dist/src/message/dht.d.ts +35 -35
  24. package/dist/src/message/dht.d.ts.map +1 -1
  25. package/dist/src/message/dht.js +150 -130
  26. package/dist/src/message/dht.js.map +1 -1
  27. package/dist/src/message/utils.d.ts +5 -0
  28. package/dist/src/message/utils.d.ts.map +1 -0
  29. package/dist/src/message/utils.js +20 -0
  30. package/dist/src/message/utils.js.map +1 -0
  31. package/dist/src/network.d.ts +8 -8
  32. package/dist/src/network.d.ts.map +1 -1
  33. package/dist/src/network.js +30 -18
  34. package/dist/src/network.js.map +1 -1
  35. package/dist/src/peer-routing/index.d.ts +6 -6
  36. package/dist/src/peer-routing/index.d.ts.map +1 -1
  37. package/dist/src/peer-routing/index.js +48 -35
  38. package/dist/src/peer-routing/index.js.map +1 -1
  39. package/dist/src/providers.d.ts +7 -0
  40. package/dist/src/providers.d.ts.map +1 -1
  41. package/dist/src/providers.js.map +1 -1
  42. package/dist/src/query/events.d.ts +13 -12
  43. package/dist/src/query/events.d.ts.map +1 -1
  44. package/dist/src/query/events.js +2 -2
  45. package/dist/src/query/events.js.map +1 -1
  46. package/dist/src/query/manager.d.ts +8 -5
  47. package/dist/src/query/manager.d.ts.map +1 -1
  48. package/dist/src/query/manager.js +6 -6
  49. package/dist/src/query/manager.js.map +1 -1
  50. package/dist/src/query/query-path.d.ts +3 -3
  51. package/dist/src/query/query-path.d.ts.map +1 -1
  52. package/dist/src/query-self.d.ts +1 -1
  53. package/dist/src/query-self.d.ts.map +1 -1
  54. package/dist/src/query-self.js +2 -2
  55. package/dist/src/query-self.js.map +1 -1
  56. package/dist/src/routing-table/index.d.ts +5 -6
  57. package/dist/src/routing-table/index.d.ts.map +1 -1
  58. package/dist/src/routing-table/index.js +72 -58
  59. package/dist/src/routing-table/index.js.map +1 -1
  60. package/dist/src/routing-table/refresh.d.ts +1 -1
  61. package/dist/src/routing-table/refresh.d.ts.map +1 -1
  62. package/dist/src/routing-table/refresh.js +2 -2
  63. package/dist/src/routing-table/refresh.js.map +1 -1
  64. package/dist/src/rpc/handlers/add-provider.d.ts +2 -1
  65. package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -1
  66. package/dist/src/rpc/handlers/add-provider.js +8 -6
  67. package/dist/src/rpc/handlers/add-provider.js.map +1 -1
  68. package/dist/src/rpc/handlers/find-node.d.ts +5 -3
  69. package/dist/src/rpc/handlers/find-node.d.ts.map +1 -1
  70. package/dist/src/rpc/handlers/find-node.js +22 -14
  71. package/dist/src/rpc/handlers/find-node.js.map +1 -1
  72. package/dist/src/rpc/handlers/get-providers.d.ts +5 -3
  73. package/dist/src/rpc/handlers/get-providers.d.ts.map +1 -1
  74. package/dist/src/rpc/handlers/get-providers.js +29 -16
  75. package/dist/src/rpc/handlers/get-providers.js.map +1 -1
  76. package/dist/src/rpc/handlers/get-value.d.ts +2 -1
  77. package/dist/src/rpc/handlers/get-value.d.ts.map +1 -1
  78. package/dist/src/rpc/handlers/get-value.js +16 -7
  79. package/dist/src/rpc/handlers/get-value.js.map +1 -1
  80. package/dist/src/rpc/handlers/ping.d.ts +5 -2
  81. package/dist/src/rpc/handlers/ping.d.ts.map +1 -1
  82. package/dist/src/rpc/handlers/ping.js +2 -2
  83. package/dist/src/rpc/handlers/ping.js.map +1 -1
  84. package/dist/src/rpc/handlers/put-value.d.ts +2 -1
  85. package/dist/src/rpc/handlers/put-value.d.ts.map +1 -1
  86. package/dist/src/rpc/handlers/put-value.js +8 -7
  87. package/dist/src/rpc/handlers/put-value.js.map +1 -1
  88. package/dist/src/rpc/index.d.ts +4 -3
  89. package/dist/src/rpc/index.d.ts.map +1 -1
  90. package/dist/src/rpc/index.js +11 -11
  91. package/dist/src/rpc/index.js.map +1 -1
  92. package/dist/src/topology-listener.d.ts +1 -1
  93. package/dist/src/topology-listener.d.ts.map +1 -1
  94. package/dist/src/topology-listener.js +2 -2
  95. package/dist/src/topology-listener.js.map +1 -1
  96. package/dist/src/utils.d.ts +5 -2
  97. package/dist/src/utils.d.ts.map +1 -1
  98. package/dist/src/utils.js +32 -2
  99. package/dist/src/utils.js.map +1 -1
  100. package/package.json +13 -11
  101. package/src/constants.ts +7 -11
  102. package/src/content-fetching/index.ts +21 -14
  103. package/src/content-routing/index.ts +29 -18
  104. package/src/index.ts +148 -32
  105. package/src/kad-dht.ts +225 -56
  106. package/src/message/dht.proto +32 -32
  107. package/src/message/dht.ts +155 -138
  108. package/src/message/utils.ts +25 -0
  109. package/src/network.ts +41 -25
  110. package/src/peer-routing/index.ts +57 -42
  111. package/src/providers.ts +7 -0
  112. package/src/query/events.ts +14 -14
  113. package/src/query/manager.ts +14 -10
  114. package/src/query/query-path.ts +3 -3
  115. package/src/query-self.ts +3 -3
  116. package/src/routing-table/index.ts +86 -64
  117. package/src/routing-table/refresh.ts +4 -4
  118. package/src/rpc/handlers/add-provider.ts +10 -7
  119. package/src/rpc/handlers/find-node.ts +27 -18
  120. package/src/rpc/handlers/get-providers.ts +33 -20
  121. package/src/rpc/handlers/get-value.ts +18 -7
  122. package/src/rpc/handlers/ping.ts +7 -3
  123. package/src/rpc/handlers/put-value.ts +11 -9
  124. package/src/rpc/index.ts +14 -13
  125. package/src/topology-listener.ts +3 -3
  126. package/src/utils.ts +41 -2
  127. package/dist/src/dual-kad-dht.d.ts +0 -69
  128. package/dist/src/dual-kad-dht.d.ts.map +0 -1
  129. package/dist/src/dual-kad-dht.js +0 -304
  130. package/dist/src/dual-kad-dht.js.map +0 -1
  131. package/dist/src/message/index.d.ts +0 -35
  132. package/dist/src/message/index.d.ts.map +0 -1
  133. package/dist/src/message/index.js +0 -92
  134. package/dist/src/message/index.js.map +0 -1
  135. package/dist/typedoc-urls.json +0 -55
  136. package/src/dual-kad-dht.ts +0 -384
  137. package/src/message/index.ts +0 -117
@@ -2,9 +2,7 @@ export declare const second = 1000;
2
2
  export declare const minute: number;
3
3
  export declare const hour: number;
4
4
  export declare const MAX_RECORD_AGE: number;
5
- export declare const LAN_PREFIX = "/lan";
6
- export declare const PROTOCOL_PREFIX = "/ipfs";
7
- export declare const PROTOCOL_DHT = "/kad/1.0.0";
5
+ export declare const PROTOCOL = "/ipfs/kad/1.0.0";
8
6
  export declare const RECORD_KEY_PREFIX = "/dht/record";
9
7
  export declare const PROVIDER_KEY_PREFIX = "/dht/provider";
10
8
  export declare const PROVIDERS_LRU_CACHE_SIZE = 256;
@@ -15,7 +13,7 @@ export declare const GET_MANY_RECORD_COUNT = 16;
15
13
  export declare const K = 20;
16
14
  export declare const ALPHA = 3;
17
15
  export declare const QUERY_SELF_INTERVAL: number;
18
- export declare const QUERY_SELF_INITIAL_INTERVAL: number;
16
+ export declare const QUERY_SELF_INITIAL_INTERVAL = 1000;
19
17
  export declare const QUERY_SELF_TIMEOUT: number;
20
18
  export declare const TABLE_REFRESH_INTERVAL: number;
21
19
  export declare const TABLE_REFRESH_QUERY_TIMEOUT: number;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,MAAM,OAAO,CAAA;AAC1B,eAAO,MAAM,MAAM,QAAc,CAAA;AACjC,eAAO,MAAM,IAAI,QAAc,CAAA;AAE/B,eAAO,MAAM,cAAc,QAAY,CAAA;AAEvC,eAAO,MAAM,UAAU,SAAS,CAAA;AAEhC,eAAO,MAAM,eAAe,UAAU,CAAA;AAEtC,eAAO,MAAM,YAAY,eAAe,CAAA;AAExC,eAAO,MAAM,iBAAiB,gBAAgB,CAAA;AAE9C,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAElD,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAE3C,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAE3C,eAAO,MAAM,0BAA0B,QAAO,CAAA;AAE9C,eAAO,MAAM,oBAAoB,QAAc,CAAA;AAG/C,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAGvC,eAAO,MAAM,CAAC,KAAK,CAAA;AAGnB,eAAO,MAAM,KAAK,IAAI,CAAA;AAGtB,eAAO,MAAM,mBAAmB,QAAqB,CAAA;AAGrD,eAAO,MAAM,2BAA2B,QAAyB,CAAA;AAGjE,eAAO,MAAM,kBAAkB,QAAqB,CAAA;AAGpD,eAAO,MAAM,sBAAsB,QAAqB,CAAA;AAGxD,eAAO,MAAM,2BAA2B,QAAsB,CAAA;AAG9D,eAAO,MAAM,qBAAqB,QAAsB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,MAAM,OAAO,CAAA;AAC1B,eAAO,MAAM,MAAM,QAAc,CAAA;AACjC,eAAO,MAAM,IAAI,QAAc,CAAA;AAE/B,eAAO,MAAM,cAAc,QAAY,CAAA;AAEvC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AAEzC,eAAO,MAAM,iBAAiB,gBAAgB,CAAA;AAE9C,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAElD,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAE3C,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAE3C,eAAO,MAAM,0BAA0B,QAAO,CAAA;AAE9C,eAAO,MAAM,oBAAoB,QAAc,CAAA;AAG/C,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAGvC,eAAO,MAAM,CAAC,KAAK,CAAA;AAGnB,eAAO,MAAM,KAAK,IAAI,CAAA;AAGtB,eAAO,MAAM,mBAAmB,QAAa,CAAA;AAG7C,eAAO,MAAM,2BAA2B,OAAS,CAAA;AAGjD,eAAO,MAAM,kBAAkB,QAAa,CAAA;AAG5C,eAAO,MAAM,sBAAsB,QAAa,CAAA;AAGhD,eAAO,MAAM,2BAA2B,QAAc,CAAA;AAGtD,eAAO,MAAM,qBAAqB,QAAc,CAAA"}
@@ -8,9 +8,7 @@ export const second = 1000;
8
8
  export const minute = 60 * second;
9
9
  export const hour = 60 * minute;
10
10
  export const MAX_RECORD_AGE = 36 * hour;
11
- export const LAN_PREFIX = '/lan';
12
- export const PROTOCOL_PREFIX = '/ipfs';
13
- export const PROTOCOL_DHT = '/kad/1.0.0';
11
+ export const PROTOCOL = '/ipfs/kad/1.0.0';
14
12
  export const RECORD_KEY_PREFIX = '/dht/record';
15
13
  export const PROVIDER_KEY_PREFIX = '/dht/provider';
16
14
  export const PROVIDERS_LRU_CACHE_SIZE = 256;
@@ -24,15 +22,15 @@ export const K = 20;
24
22
  // Alpha is the concurrency for asynchronous requests
25
23
  export const ALPHA = 3;
26
24
  // How often we look for our closest DHT neighbours
27
- export const QUERY_SELF_INTERVAL = Number(5 * minute);
25
+ export const QUERY_SELF_INTERVAL = 5 * minute;
28
26
  // How often we look for the first set of our closest DHT neighbours
29
- export const QUERY_SELF_INITIAL_INTERVAL = Number(Number(second));
27
+ export const QUERY_SELF_INITIAL_INTERVAL = second;
30
28
  // How long to look for our closest DHT neighbours for
31
- export const QUERY_SELF_TIMEOUT = Number(5 * second);
29
+ export const QUERY_SELF_TIMEOUT = 5 * second;
32
30
  // How often we try to find new peers
33
- export const TABLE_REFRESH_INTERVAL = Number(5 * minute);
31
+ export const TABLE_REFRESH_INTERVAL = 5 * minute;
34
32
  // How how long to look for new peers for
35
- export const TABLE_REFRESH_QUERY_TIMEOUT = Number(30 * second);
33
+ export const TABLE_REFRESH_QUERY_TIMEOUT = 30 * second;
36
34
  // When a timeout is not specified, run a query for this long
37
- export const DEFAULT_QUERY_TIMEOUT = Number(30 * second);
35
+ export const DEFAULT_QUERY_TIMEOUT = 30 * second;
38
36
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,sFAAsF;AACtF,0BAA0B;AAC1B,+EAA+E;AAC/E,oFAAoF;AACpF,0EAA0E;AAE1E,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAA;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAA;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAA;AAE/B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAA;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAA;AAEhC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAA;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAA;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAA;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAElD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAA;AAE3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,MAAM,CAAA;AAE/C,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEvC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;AAEnB,qDAAqD;AACrD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;AAEtB,mDAAmD;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;AAErD,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AAEjE,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;AAEpD,qCAAqC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;AAExD,yCAAyC;AACzC,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;AAE9D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,sFAAsF;AACtF,0BAA0B;AAC1B,+EAA+E;AAC/E,oFAAoF;AACpF,0EAA0E;AAE1E,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAA;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAA;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAA;AAE/B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAA;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG,iBAAiB,CAAA;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAA;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAElD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAA;AAE3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,MAAM,CAAA;AAE/C,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEvC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;AAEnB,qDAAqD;AACrD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;AAEtB,mDAAmD;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAA;AAE7C,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAA;AAEjD,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAA;AAE5C,qCAAqC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,MAAM,CAAA;AAEhD,yCAAyC;AACzC,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,MAAM,CAAA;AAEtD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,MAAM,CAAA"}
@@ -1,16 +1,16 @@
1
1
  import { Libp2pRecord } from '../record/index.js';
2
- import type { KadDHTComponents, Validators, Selectors, ValueEvent, QueryOptions, QueryEvent } from '../index.js';
2
+ import type { KadDHTComponents, Validators, Selectors, ValueEvent, QueryEvent } from '../index.js';
3
3
  import type { Network } from '../network.js';
4
4
  import type { PeerRouting } from '../peer-routing/index.js';
5
5
  import type { QueryManager } from '../query/manager.js';
6
- import type { AbortOptions } from '@libp2p/interface';
6
+ import type { RoutingOptions } from '@libp2p/interface';
7
7
  export interface ContentFetchingInit {
8
8
  validators: Validators;
9
9
  selectors: Selectors;
10
10
  peerRouting: PeerRouting;
11
11
  queryManager: QueryManager;
12
12
  network: Network;
13
- lan: boolean;
13
+ logPrefix: string;
14
14
  }
15
15
  export declare class ContentFetching {
16
16
  private readonly log;
@@ -30,18 +30,18 @@ export declare class ContentFetching {
30
30
  /**
31
31
  * Send the best record found to any peers that have an out of date record
32
32
  */
33
- sendCorrectionRecord(key: Uint8Array, vals: ValueEvent[], best: Uint8Array, options?: AbortOptions): AsyncGenerator<QueryEvent>;
33
+ sendCorrectionRecord(key: Uint8Array, vals: ValueEvent[], best: Uint8Array, options?: RoutingOptions): AsyncGenerator<QueryEvent>;
34
34
  /**
35
35
  * Store the given key/value pair in the DHT
36
36
  */
37
- put(key: Uint8Array, value: Uint8Array, options?: AbortOptions): AsyncGenerator<unknown, void, undefined>;
37
+ put(key: Uint8Array, value: Uint8Array, options?: RoutingOptions): AsyncGenerator<unknown, void, undefined>;
38
38
  /**
39
39
  * Get the value to the given key
40
40
  */
41
- get(key: Uint8Array, options?: QueryOptions): AsyncGenerator<QueryEvent | ValueEvent>;
41
+ get(key: Uint8Array, options?: RoutingOptions): AsyncGenerator<QueryEvent | ValueEvent>;
42
42
  /**
43
43
  * Get the `n` values to the given key without sorting
44
44
  */
45
- getMany(key: Uint8Array, options?: QueryOptions): AsyncGenerator<QueryEvent>;
45
+ getMany(key: Uint8Array, options?: RoutingOptions): AsyncGenerator<QueryEvent>;
46
46
  }
47
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-fetching/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAIjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAChH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,mBAAmB,CAAA;AAE7D,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAEpB,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB;IAY9D,QAAQ,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE;;;OAGG;IACG,QAAQ,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBvD;;OAEG;IACK,oBAAoB,CAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IA6C5I;;OAEG;IACK,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC;IAqDtH;;OAEG;IACK,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;IAyClG;;OAEG;IACK,OAAO,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;CA6B1F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-fetching/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAIjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAElG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE/D,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAEpB,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB;IAY9D,QAAQ,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE;;;OAGG;IACG,QAAQ,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBvD;;OAEG;IACK,oBAAoB,CAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAgD9I;;OAEG;IACK,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC;IAwDxH;;OAEG;IACK,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;IAyCpG;;OAEG;IACK,OAAO,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;CA6B5F"}
@@ -4,7 +4,7 @@ import parallel from 'it-parallel';
4
4
  import { pipe } from 'it-pipe';
5
5
  import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
6
6
  import { ALPHA } from '../constants.js';
7
- import { Message, MESSAGE_TYPE } from '../message/index.js';
7
+ import { MessageType } from '../message/dht.js';
8
8
  import { valueEvent, queryErrorEvent } from '../query/events.js';
9
9
  import { Libp2pRecord } from '../record/index.js';
10
10
  import { bestRecord } from '../record/selectors.js';
@@ -19,9 +19,9 @@ export class ContentFetching {
19
19
  queryManager;
20
20
  network;
21
21
  constructor(components, init) {
22
- const { validators, selectors, peerRouting, queryManager, network, lan } = init;
22
+ const { validators, selectors, peerRouting, queryManager, network, logPrefix } = init;
23
23
  this.components = components;
24
- this.log = components.logger.forComponent(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:content-fetching`);
24
+ this.log = components.logger.forComponent(`${logPrefix}:content-fetching`);
25
25
  this.validators = validators;
26
26
  this.selectors = selectors;
27
27
  this.peerRouting = peerRouting;
@@ -72,8 +72,11 @@ export class ContentFetching {
72
72
  }
73
73
  // send correction
74
74
  let sentCorrection = false;
75
- const request = new Message(MESSAGE_TYPE.PUT_VALUE, key, 0);
76
- request.record = Libp2pRecord.deserialize(fixupRec);
75
+ const request = {
76
+ type: MessageType.PUT_VALUE,
77
+ key,
78
+ record: fixupRec
79
+ };
77
80
  for await (const event of this.network.sendRequest(from, request, options)) {
78
81
  if (event.name === 'PEER_RESPONSE' && (event.record != null) && uint8ArrayEquals(event.record.value, Libp2pRecord.deserialize(fixupRec).value)) {
79
82
  sentCorrection = true;
@@ -104,8 +107,11 @@ export class ContentFetching {
104
107
  return [event];
105
108
  }
106
109
  const events = [];
107
- const msg = new Message(MESSAGE_TYPE.PUT_VALUE, key, 0);
108
- msg.record = Libp2pRecord.deserialize(record);
110
+ const msg = {
111
+ type: MessageType.PUT_VALUE,
112
+ key,
113
+ record
114
+ };
109
115
  this.log('send put to %p', event.peer.id);
110
116
  for await (const putEvent of this.network.sendRequest(event.peer.id, msg, options)) {
111
117
  events.push(putEvent);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-fetching/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-fetching/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import type { KadDHTComponents, PeerResponseEvent, ProviderEvent, QueryEvent, QueryOptions } from '../index.js';
1
+ import type { KadDHTComponents, PeerResponseEvent, ProviderEvent, QueryEvent } from '../index.js';
2
2
  import type { Network } from '../network.js';
3
3
  import type { PeerRouting } from '../peer-routing/index.js';
4
4
  import type { Providers } from '../providers.js';
5
5
  import type { QueryManager } from '../query/manager.js';
6
6
  import type { RoutingTable } from '../routing-table/index.js';
7
+ import type { RoutingOptions } from '@libp2p/interface';
7
8
  import type { Multiaddr } from '@multiformats/multiaddr';
8
9
  import type { CID } from 'multiformats/cid';
9
10
  export interface ContentRoutingInit {
@@ -12,7 +13,7 @@ export interface ContentRoutingInit {
12
13
  queryManager: QueryManager;
13
14
  routingTable: RoutingTable;
14
15
  providers: Providers;
15
- lan: boolean;
16
+ logPrefix: string;
16
17
  }
17
18
  export declare class ContentRouting {
18
19
  private readonly log;
@@ -27,10 +28,10 @@ export declare class ContentRouting {
27
28
  * Announce to the network that we can provide the value for a given key and
28
29
  * are contactable on the given multiaddrs
29
30
  */
30
- provide(key: CID, multiaddrs: Multiaddr[], options?: QueryOptions): AsyncGenerator<QueryEvent, void, undefined>;
31
+ provide(key: CID, multiaddrs: Multiaddr[], options?: RoutingOptions): AsyncGenerator<QueryEvent, void, undefined>;
31
32
  /**
32
33
  * Search the dht for up to `K` providers of the given CID.
33
34
  */
34
- findProviders(key: CID, options: QueryOptions): AsyncGenerator<PeerResponseEvent | ProviderEvent | QueryEvent>;
35
+ findProviders(key: CID, options: RoutingOptions): AsyncGenerator<PeerResponseEvent | ProviderEvent | QueryEvent>;
35
36
  }
36
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;gBAExB,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB;IAYnE;;;OAGG;IACK,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IA8D5H;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,GAAG,cAAc,CAAC,iBAAiB,GAAG,aAAa,GAAG,UAAU,CAAC;CAgFxH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;gBAExB,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB;IAYnE;;;OAGG;IACK,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAmE9H;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,cAAc,CAAC,iBAAiB,GAAG,aAAa,GAAG,UAAU,CAAC;CAmF1H"}
@@ -1,8 +1,10 @@
1
+ import { PeerSet } from '@libp2p/peer-collections';
1
2
  import map from 'it-map';
2
3
  import parallel from 'it-parallel';
3
4
  import { pipe } from 'it-pipe';
4
5
  import { ALPHA } from '../constants.js';
5
- import { Message, MESSAGE_TYPE } from '../message/index.js';
6
+ import { MessageType } from '../message/dht.js';
7
+ import { toPbPeerInfo } from '../message/utils.js';
6
8
  import { queryErrorEvent, peerResponseEvent, providerEvent } from '../query/events.js';
7
9
  export class ContentRouting {
8
10
  log;
@@ -13,9 +15,9 @@ export class ContentRouting {
13
15
  routingTable;
14
16
  providers;
15
17
  constructor(components, init) {
16
- const { network, peerRouting, queryManager, routingTable, providers, lan } = init;
18
+ const { network, peerRouting, queryManager, routingTable, providers, logPrefix } = init;
17
19
  this.components = components;
18
- this.log = components.logger.forComponent(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:content-routing`);
20
+ this.log = components.logger.forComponent(`${logPrefix}:content-routing`);
19
21
  this.network = network;
20
22
  this.peerRouting = peerRouting;
21
23
  this.queryManager = queryManager;
@@ -30,11 +32,16 @@ export class ContentRouting {
30
32
  this.log('provide %s', key);
31
33
  // Add peer as provider
32
34
  await this.providers.addProvider(key, this.components.peerId);
33
- const msg = new Message(MESSAGE_TYPE.ADD_PROVIDER, key.multihash.bytes, 0);
34
- msg.providerPeers = [{
35
- id: this.components.peerId,
36
- multiaddrs
37
- }];
35
+ const msg = {
36
+ type: MessageType.ADD_PROVIDER,
37
+ key: key.multihash.bytes,
38
+ providers: [
39
+ toPbPeerInfo({
40
+ id: this.components.peerId,
41
+ multiaddrs
42
+ })
43
+ ]
44
+ };
38
45
  let sent = 0;
39
46
  const maybeNotifyPeer = (event) => {
40
47
  return async () => {
@@ -98,7 +105,7 @@ export class ContentRouting {
98
105
  this.log('no peer store entry for %p', peerId);
99
106
  }
100
107
  }
101
- yield peerResponseEvent({ from: this.components.peerId, messageType: MESSAGE_TYPE.GET_PROVIDERS, providers }, options);
108
+ yield peerResponseEvent({ from: this.components.peerId, messageType: MessageType.GET_PROVIDERS, providers }, options);
102
109
  yield providerEvent({ from: this.components.peerId, providers }, options);
103
110
  }
104
111
  // All done
@@ -109,23 +116,26 @@ export class ContentRouting {
109
116
  * The query function to use on this particular disjoint path
110
117
  */
111
118
  const findProvidersQuery = async function* ({ peer, signal }) {
112
- const request = new Message(MESSAGE_TYPE.GET_PROVIDERS, target, 0);
119
+ const request = {
120
+ type: MessageType.GET_PROVIDERS,
121
+ key: target
122
+ };
113
123
  yield* self.network.sendRequest(peer, request, {
114
124
  ...options,
115
125
  signal
116
126
  });
117
127
  };
118
- const providers = new Set(provs.map(p => p.toString()));
128
+ const providers = new PeerSet(provs);
119
129
  for await (const event of this.queryManager.run(target, findProvidersQuery, options)) {
120
130
  yield event;
121
131
  if (event.name === 'PEER_RESPONSE') {
122
132
  this.log('Found %d provider entries for %c and %d closer peers', event.providers.length, key, event.closer.length);
123
133
  const newProviders = [];
124
134
  for (const peer of event.providers) {
125
- if (providers.has(peer.id.toString())) {
135
+ if (providers.has(peer.id)) {
126
136
  continue;
127
137
  }
128
- providers.add(peer.id.toString());
138
+ providers.add(peer.id);
129
139
  newProviders.push(peer);
130
140
  }
131
141
  if (newProviders.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,91 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * This module implements the [libp2p Kademlia spec](https://github.com/libp2p/specs/blob/master/kad-dht/README.md) in TypeScript.
5
+ *
6
+ * The Kademlia DHT allow for several operations such as finding peers, searching for providers of DHT records, etc.
7
+ *
8
+ * @example Using with libp2p
9
+ *
10
+ * ```TypeScript
11
+ * import { kadDHT } from '@libp2p/kad-dht'
12
+ * import { createLibp2p } from 'libp2p'
13
+ * import { peerIdFromString } from '@libp2p/peer-id'
14
+ *
15
+ * const node = await createLibp2p({
16
+ * services: {
17
+ * dht: kadDHT()
18
+ * }
19
+ * })
20
+ *
21
+ * const peerId = peerIdFromString('QmFoo')
22
+ * const peerInfo = await libp2p.peerRouting.findPeer(peerId)
23
+ *
24
+ * console.info(peerInfo) // peer id, multiaddrs
25
+ * ```
26
+ *
27
+ * @example Connecting to the IPFS Amino DHT
28
+ *
29
+ * The [Amino DHT](https://blog.ipfs.tech/2023-09-amino-refactoring/) is a public-good DHT used by IPFS to fetch content, find peers, etc.
30
+ *
31
+ * If you are trying to access content on the public internet, this is the implementation you want.
32
+ *
33
+ * ```TypeScript
34
+ * import { kadDHT, removePrivateAddressesMapper } from '@libp2p/kad-dht'
35
+ * import { createLibp2p } from 'libp2p'
36
+ * import { peerIdFromString } from '@libp2p/peer-id'
37
+ *
38
+ * const node = await createLibp2p({
39
+ * services: {
40
+ * aminoDHT: kadDHT({
41
+ * protocol: '/ipfs/kad/1.0.0',
42
+ * addressFilter: removePrivateAddressesMapper
43
+ * })
44
+ * }
45
+ * })
46
+ *
47
+ * const peerId = peerIdFromString('QmFoo')
48
+ * const peerInfo = await libp2p.peerRouting.findPeer(peerId)
49
+ *
50
+ * console.info(peerInfo) // peer id, multiaddrs
51
+ * ```
52
+ *
53
+ * @example Connecting to a LAN-only DHT
54
+ *
55
+ * This DHT only works with privately dialable peers.
56
+ *
57
+ * This is for use when peers are on the local area network.
58
+ *
59
+ * ```TypeScript
60
+ * import { kadDHT, removePublicAddressesMapper } from '@libp2p/kad-dht'
61
+ * import { createLibp2p } from 'libp2p'
62
+ * import { peerIdFromString } from '@libp2p/peer-id'
63
+ *
64
+ * const node = await createLibp2p({
65
+ * services: {
66
+ * lanDHT: kadDHT({
67
+ * protocol: '/ipfs/lan/kad/1.0.0',
68
+ * addressFilter: removePublicAddressesMapper,
69
+ * clientMode: false
70
+ * })
71
+ * }
72
+ * })
73
+ *
74
+ * const peerId = peerIdFromString('QmFoo')
75
+ * const peerInfo = await libp2p.peerRouting.findPeer(peerId)
76
+ *
77
+ * console.info(peerInfo) // peer id, multiaddrs
78
+ * ```
79
+ */
80
+ import { removePrivateAddressesMapper, removePublicAddressesMapper, passthroughMapper } from './utils.js';
1
81
  import type { ProvidersInit } from './providers.js';
2
- import type { Libp2pEvents, AbortOptions, ComponentLogger, TypedEventTarget, Metrics, PeerId, PeerInfo, PeerStore } from '@libp2p/interface';
82
+ import type { Libp2pEvents, ComponentLogger, TypedEventTarget, Metrics, PeerId, PeerInfo, PeerStore, RoutingOptions } from '@libp2p/interface';
3
83
  import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal';
4
84
  import type { Datastore } from 'interface-datastore';
5
85
  import type { CID } from 'multiformats/cid';
6
- import type { ProgressOptions, ProgressEvent } from 'progress-events';
86
+ import type { ProgressEvent } from 'progress-events';
7
87
  export { Libp2pRecord as Record } from './record/index.js';
88
+ export { removePrivateAddressesMapper, removePublicAddressesMapper, passthroughMapper };
8
89
  /**
9
90
  * The types of events emitted during DHT queries
10
91
  */
@@ -36,9 +117,6 @@ export interface DHTRecord {
36
117
  timeReceived?: Date;
37
118
  }
38
119
  export type DHTProgressEvents = ProgressEvent<'kad-dht:query:send-query', SendQueryEvent> | ProgressEvent<'kad-dht:query:peer-response', PeerResponseEvent> | ProgressEvent<'kad-dht:query:final-peer', FinalPeerEvent> | ProgressEvent<'kad-dht:query:query-error', QueryErrorEvent> | ProgressEvent<'kad-dht:query:provider', ProviderEvent> | ProgressEvent<'kad-dht:query:value', ValueEvent> | ProgressEvent<'kad-dht:query:add-peer', AddPeerEvent> | ProgressEvent<'kad-dht:query:dial-peer', DialPeerEvent>;
39
- export interface QueryOptions extends AbortOptions, ProgressOptions {
40
- queryFuncTimeout?: number;
41
- }
42
120
  /**
43
121
  * Emitted when sending queries to remote peers
44
122
  */
@@ -119,37 +197,41 @@ export type QueryEvent = SendQueryEvent | PeerResponseEvent | FinalPeerEvent | Q
119
197
  export interface RoutingTable {
120
198
  size: number;
121
199
  }
200
+ export interface PeerInfoMapper {
201
+ (peer: PeerInfo): PeerInfo;
202
+ }
122
203
  export interface KadDHT {
123
204
  /**
124
205
  * Get a value from the DHT, the final ValueEvent will be the best value
125
206
  */
126
- get(key: Uint8Array, options?: QueryOptions): AsyncIterable<QueryEvent>;
207
+ get(key: Uint8Array, options?: RoutingOptions): AsyncIterable<QueryEvent>;
127
208
  /**
128
209
  * Find providers of a given CID
129
210
  */
130
- findProviders(key: CID, options?: QueryOptions): AsyncIterable<QueryEvent>;
211
+ findProviders(key: CID, options?: RoutingOptions): AsyncIterable<QueryEvent>;
131
212
  /**
132
213
  * Find a peer on the DHT
133
214
  */
134
- findPeer(id: PeerId, options?: QueryOptions): AsyncIterable<QueryEvent>;
215
+ findPeer(id: PeerId, options?: RoutingOptions): AsyncIterable<QueryEvent>;
135
216
  /**
136
217
  * Find the closest peers to the passed key
137
218
  */
138
- getClosestPeers(key: Uint8Array, options?: QueryOptions): AsyncIterable<QueryEvent>;
219
+ getClosestPeers(key: Uint8Array, options?: RoutingOptions): AsyncIterable<QueryEvent>;
139
220
  /**
140
221
  * Store provider records for the passed CID on the DHT pointing to us
141
222
  */
142
- provide(key: CID, options?: QueryOptions): AsyncIterable<QueryEvent>;
223
+ provide(key: CID, options?: RoutingOptions): AsyncIterable<QueryEvent>;
143
224
  /**
144
225
  * Store the passed value under the passed key on the DHT
145
226
  */
146
- put(key: Uint8Array, value: Uint8Array, options?: QueryOptions): AsyncIterable<QueryEvent>;
227
+ put(key: Uint8Array, value: Uint8Array, options?: RoutingOptions): AsyncIterable<QueryEvent>;
147
228
  /**
148
229
  * Returns the mode this node is in
149
230
  */
150
- getMode(): Promise<'client' | 'server'>;
231
+ getMode(): 'client' | 'server';
151
232
  /**
152
- * If 'server' this node will respond to DHT queries, if 'client' this node will not
233
+ * If 'server' this node will respond to DHT queries, if 'client' this node
234
+ * will not.
153
235
  */
154
236
  setMode(mode: 'client' | 'server'): Promise<void>;
155
237
  /**
@@ -160,10 +242,6 @@ export interface KadDHT {
160
242
  export interface SingleKadDHT extends KadDHT {
161
243
  routingTable: RoutingTable;
162
244
  }
163
- export interface DualKadDHT extends KadDHT {
164
- wan: SingleKadDHT;
165
- lan: SingleKadDHT;
166
- }
167
245
  /**
168
246
  * A selector function takes a DHT key and a list of records and returns the
169
247
  * index of the best record in the list
@@ -188,11 +266,16 @@ export type Selectors = Record<string, SelectFn>;
188
266
  export type Validators = Record<string, ValidateFn>;
189
267
  export interface KadDHTInit {
190
268
  /**
191
- * How many peers to store in each kBucket (default 20)
269
+ * How many peers to store in each kBucket
270
+ *
271
+ * @default 20
192
272
  */
193
273
  kBucketSize?: number;
194
274
  /**
195
- * Whether to start up as a DHT client or server
275
+ * If true, only ever be a DHT client. If false, be a DHT client until told
276
+ * to be a DHT server via `setMode`.
277
+ *
278
+ * @default false
196
279
  */
197
280
  clientMode?: boolean;
198
281
  /**
@@ -211,42 +294,69 @@ export interface KadDHTInit {
211
294
  /**
212
295
  * During startup we run the self-query at a shorter interval to ensure
213
296
  * the containing node can respond to queries quickly. Set this interval
214
- * here in ms (default: 1000)
297
+ * here in ms.
298
+ *
299
+ * @default 1000
215
300
  */
216
301
  initialQuerySelfInterval?: number;
217
302
  /**
218
303
  * After startup by default all queries will be paused until the initial
219
304
  * self-query has run and there are some peers in the routing table.
220
305
  *
221
- * Pass true here to disable this behaviour. (default: false)
306
+ * Pass true here to disable this behaviour.
307
+ *
308
+ * @default false
222
309
  */
223
310
  allowQueryWithZeroPeers?: boolean;
224
311
  /**
225
- * A custom protocol prefix to use (default: '/ipfs')
312
+ * The network protocol to use
313
+ *
314
+ * @default "/ipfs/kad/1.0.0"
226
315
  */
227
- protocolPrefix?: string;
316
+ protocol?: string;
317
+ /**
318
+ * The logging prefix to use
319
+ *
320
+ * @default "libp2p:kad-dht"
321
+ */
322
+ logPrefix?: string;
228
323
  /**
229
324
  * How long to wait in ms when pinging DHT peers to decide if they
230
- * should be evicted from the routing table or not (default 10000)
325
+ * should be evicted from the routing table or not.
326
+ *
327
+ * @default 10000
231
328
  */
232
329
  pingTimeout?: number;
233
330
  /**
234
331
  * How many peers to ping in parallel when deciding if they should
235
- * be evicted from the routing table or not (default 10)
332
+ * be evicted from the routing table or not
333
+ *
334
+ * @default 10
236
335
  */
237
336
  pingConcurrency?: number;
238
337
  /**
239
- * How many parallel incoming streams to allow on the DHT protocol per-connection
338
+ * How many parallel incoming streams to allow on the DHT protocol per
339
+ * connection
340
+ *
341
+ * @default 32
240
342
  */
241
343
  maxInboundStreams?: number;
242
344
  /**
243
- * How many parallel outgoing streams to allow on the DHT protocol per-connection
345
+ * How many parallel outgoing streams to allow on the DHT protocol per
346
+ * connection
347
+ *
348
+ * @default 64
244
349
  */
245
350
  maxOutboundStreams?: number;
246
351
  /**
247
352
  * Initialization options for the Providers component
248
353
  */
249
354
  providers?: ProvidersInit;
355
+ /**
356
+ * For every incoming and outgoing PeerInfo, override address configuration
357
+ * with this filter.
358
+ */
359
+ peerInfoMapper?(peer: PeerInfo): PeerInfo;
250
360
  }
251
361
  export interface KadDHTComponents {
252
362
  peerId: PeerId;
@@ -259,5 +369,9 @@ export interface KadDHTComponents {
259
369
  events: TypedEventTarget<Libp2pEvents>;
260
370
  logger: ComponentLogger;
261
371
  }
262
- export declare function kadDHT(init?: KadDHTInit): (components: KadDHTComponents) => DualKadDHT;
372
+ /**
373
+ * Creates a custom DHT implementation, please ensure you pass a `protocol`
374
+ * string as an option.
375
+ */
376
+ export declare function kadDHT(init: KadDHTInit): (components: KadDHTComponents) => KadDHT;
263
377
  //# sourceMappingURL=index.d.ts.map