@libp2p/kad-dht 12.0.15 → 12.0.16-1cd5aae11

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 (59) hide show
  1. package/dist/index.min.js +4 -4
  2. package/dist/src/constants.d.ts.map +1 -1
  3. package/dist/src/constants.js +1 -1
  4. package/dist/src/constants.js.map +1 -1
  5. package/dist/src/content-routing/index.d.ts.map +1 -1
  6. package/dist/src/content-routing/index.js +3 -2
  7. package/dist/src/content-routing/index.js.map +1 -1
  8. package/dist/src/index.d.ts +34 -1
  9. package/dist/src/index.d.ts.map +1 -1
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/network.d.ts +3 -0
  12. package/dist/src/network.d.ts.map +1 -1
  13. package/dist/src/network.js +33 -8
  14. package/dist/src/network.js.map +1 -1
  15. package/dist/src/peer-list/peer-distance-list.d.ts +13 -4
  16. package/dist/src/peer-list/peer-distance-list.d.ts.map +1 -1
  17. package/dist/src/peer-list/peer-distance-list.js +29 -21
  18. package/dist/src/peer-list/peer-distance-list.js.map +1 -1
  19. package/dist/src/peer-routing/index.d.ts +5 -5
  20. package/dist/src/peer-routing/index.d.ts.map +1 -1
  21. package/dist/src/peer-routing/index.js +15 -24
  22. package/dist/src/peer-routing/index.js.map +1 -1
  23. package/dist/src/query/manager.d.ts +3 -0
  24. package/dist/src/query/manager.d.ts.map +1 -1
  25. package/dist/src/query/manager.js +14 -5
  26. package/dist/src/query/manager.js.map +1 -1
  27. package/dist/src/query/query-path.d.ts +6 -6
  28. package/dist/src/query/query-path.d.ts.map +1 -1
  29. package/dist/src/query/query-path.js +32 -20
  30. package/dist/src/query/query-path.js.map +1 -1
  31. package/dist/src/routing-table/index.d.ts +11 -5
  32. package/dist/src/routing-table/index.d.ts.map +1 -1
  33. package/dist/src/routing-table/index.js +84 -42
  34. package/dist/src/routing-table/index.js.map +1 -1
  35. package/dist/src/routing-table/k-bucket.d.ts +80 -115
  36. package/dist/src/routing-table/k-bucket.d.ts.map +1 -1
  37. package/dist/src/routing-table/k-bucket.js +165 -311
  38. package/dist/src/routing-table/k-bucket.js.map +1 -1
  39. package/dist/src/routing-table/refresh.d.ts.map +1 -1
  40. package/dist/src/routing-table/refresh.js +9 -4
  41. package/dist/src/routing-table/refresh.js.map +1 -1
  42. package/package.json +14 -16
  43. package/src/constants.ts +1 -1
  44. package/src/content-routing/index.ts +3 -2
  45. package/src/index.ts +37 -1
  46. package/src/network.ts +38 -9
  47. package/src/peer-list/peer-distance-list.ts +36 -25
  48. package/src/peer-routing/index.ts +19 -28
  49. package/src/query/manager.ts +18 -5
  50. package/src/query/query-path.ts +46 -30
  51. package/src/routing-table/index.ts +100 -46
  52. package/src/routing-table/k-bucket.ts +214 -359
  53. package/src/routing-table/refresh.ts +10 -4
  54. package/dist/src/query/utils.d.ts +0 -6
  55. package/dist/src/query/utils.d.ts.map +0 -1
  56. package/dist/src/query/utils.js +0 -53
  57. package/dist/src/query/utils.js.map +0 -1
  58. package/dist/typedoc-urls.json +0 -55
  59. package/src/query/utils.ts +0 -64
@@ -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,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"}
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,QAAe,CAAA"}
@@ -32,5 +32,5 @@ export const TABLE_REFRESH_INTERVAL = 5 * minute;
32
32
  // How how long to look for new peers for
33
33
  export const TABLE_REFRESH_QUERY_TIMEOUT = 30 * second;
34
34
  // When a timeout is not specified, run a query for this long
35
- export const DEFAULT_QUERY_TIMEOUT = 30 * second;
35
+ export const DEFAULT_QUERY_TIMEOUT = 180 * second;
36
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,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
+ {"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,GAAG,GAAG,MAAM,CAAA"}
@@ -1 +1 @@
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;CAuF1H"}
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;IAoE9H;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,cAAc,CAAC,iBAAiB,GAAG,aAAa,GAAG,UAAU,CAAC;CAuF1H"}
@@ -30,11 +30,12 @@ export class ContentRouting {
30
30
  */
31
31
  async *provide(key, multiaddrs, options = {}) {
32
32
  this.log('provide %s', key);
33
+ const target = key.multihash.bytes;
33
34
  // Add peer as provider
34
35
  await this.providers.addProvider(key, this.components.peerId);
35
36
  const msg = {
36
37
  type: MessageType.ADD_PROVIDER,
37
- key: key.multihash.bytes,
38
+ key: target,
38
39
  providers: [
39
40
  toPbPeerInfo({
40
41
  id: this.components.peerId,
@@ -68,7 +69,7 @@ export class ContentRouting {
68
69
  };
69
70
  };
70
71
  // Notify closest peers
71
- yield* pipe(this.peerRouting.getClosestPeers(key.multihash.bytes, options), (source) => map(source, (event) => maybeNotifyPeer(event)), (source) => parallel(source, {
72
+ yield* pipe(this.peerRouting.getClosestPeers(target, options), (source) => map(source, (event) => maybeNotifyPeer(event)), (source) => parallel(source, {
72
73
  ordered: false,
73
74
  concurrency: ALPHA
74
75
  }), async function* (source) {
@@ -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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"}
@@ -84,6 +84,7 @@ import { removePrivateAddressesMapper, removePublicAddressesMapper, passthroughM
84
84
  import type { ProvidersInit } from './providers.js';
85
85
  import type { Libp2pEvents, ComponentLogger, TypedEventTarget, Metrics, PeerId, PeerInfo, PeerStore, RoutingOptions } from '@libp2p/interface';
86
86
  import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal';
87
+ import type { AdaptiveTimeoutInit } from '@libp2p/utils/src/adaptive-timeout.js';
87
88
  import type { Datastore } from 'interface-datastore';
88
89
  import type { CID } from 'multiformats/cid';
89
90
  import type { ProgressEvent } from 'progress-events';
@@ -262,11 +263,39 @@ export type Selectors = Record<string, SelectFn>;
262
263
  export type Validators = Record<string, ValidateFn>;
263
264
  export interface KadDHTInit {
264
265
  /**
265
- * How many peers to store in each kBucket
266
+ * How many peers to store in each kBucket. Once there are more than this
267
+ * number of peers for a given prefix in a kBucket, the node will start to
268
+ * ping existing peers to see if they are still online - if they are offline
269
+ * they will be evicted and the new peer added.
266
270
  *
267
271
  * @default 20
268
272
  */
269
273
  kBucketSize?: number;
274
+ /**
275
+ * The threshold at which a kBucket will be split into two smaller kBuckets.
276
+ *
277
+ * KBuckets will not be split once the maximum trie depth is reached
278
+ * (controlled by the `prefixLength` option) so one can replicate go-libp2p's
279
+ * accelerated DHT client by (for example) setting `kBucketSize` to `Infinity`
280
+ * and `kBucketSplitThreshold` to 20.
281
+ *
282
+ * @default kBucketSize
283
+ */
284
+ kBucketSplitThreshold?: number;
285
+ /**
286
+ * How many bits of the KAD-ID of peers to use when creating the routing
287
+ * table.
288
+ *
289
+ * The routing table is a binary trie with peers stored in the leaf nodes. The
290
+ * larger this number gets, the taller the trie can grow and the more peers
291
+ * can be stored.
292
+ *
293
+ * Storing more peers means fewer lookups (and network operations) are needed
294
+ * to locate a certain peer, but also that more memory is consumed.
295
+ *
296
+ * @default 32
297
+ */
298
+ prefixLength?: number;
270
299
  /**
271
300
  * If true, only ever be a DHT client. If false, be a DHT client until told
272
301
  * to be a DHT server via `setMode`.
@@ -353,6 +382,10 @@ export interface KadDHTInit {
353
382
  * with this filter.
354
383
  */
355
384
  peerInfoMapper?(peer: PeerInfo): PeerInfo;
385
+ /**
386
+ * Dynamic network timeout settings for sending messages to peers
387
+ */
388
+ networkDialTimeout?: Omit<AdaptiveTimeoutInit, 'metricsName' | 'metrics'>;
356
389
  }
357
390
  export interface KadDHTComponents {
358
391
  peerId: PeerId;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACzG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC9I,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,CAAA;AAEvF;;GAEG;AACH,oBAAY,UAAU;IACpB,UAAU,IAAI;IACd,aAAa,IAAA;IACb,UAAU,IAAA;IACV,WAAW,IAAA;IACX,QAAQ,IAAA;IACR,KAAK,IAAA;IACL,QAAQ,IAAA;IACR,SAAS,IAAA;CACV;AAED;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,WAAW,CAAA;AAElD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,UAAU,CAAA;IACf,KAAK,EAAE,UAAU,CAAA;IACjB,YAAY,CAAC,EAAE,IAAI,CAAA;CACpB;AAED,MAAM,MAAM,iBAAiB,GAC3B,aAAa,CAAC,0BAA0B,EAAE,cAAc,CAAC,GACzD,aAAa,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,GAC/D,aAAa,CAAC,0BAA0B,EAAE,cAAc,CAAC,GACzD,aAAa,CAAC,2BAA2B,EAAE,eAAe,CAAC,GAC3D,aAAa,CAAC,wBAAwB,EAAE,aAAa,CAAC,GACtD,aAAa,CAAC,qBAAqB,EAAE,UAAU,CAAC,GAChD,aAAa,CAAC,wBAAwB,EAAE,YAAY,CAAC,GACrD,aAAa,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAA;AAEzD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,UAAU,CAAC,UAAU,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,WAAW,EAAE,MAAM,OAAO,WAAW,CAAA;IACrC,WAAW,EAAE,WAAW,CAAA;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAC,aAAa,CAAA;IAC9B,IAAI,EAAE,eAAe,CAAA;IACrB,WAAW,EAAE,MAAM,OAAO,WAAW,CAAA;IACrC,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,UAAU,CAAC,UAAU,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAC,WAAW,CAAA;IAC5B,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAA;IACzB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAC,KAAK,CAAA;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAA;IACzB,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAA;AAE1J,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAEzE;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAE5E;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAEzE;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAErF;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAEtE;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAE5F;;OAEG;IACH,OAAO,IAAI,QAAQ,GAAG,QAAQ,CAAA;IAE9B;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjD;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IAAG,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;CAAE;AAE9E;;;GAGG;AACH,MAAM,WAAW,UAAU;IAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;AAEnF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAEhD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAEnD,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IAEvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;IAEjC;;;;;;;OAOG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,CAAA;IAEzB;;;OAGG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAE,IAAI,EAAE,UAAU,GAAG,CAAC,UAAU,EAAE,gBAAgB,KAAK,MAAM,CAElF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAEH,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQzG,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,CAAA;AAEvF;;GAEG;AACH,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACpB,uDAAc,CAAA;IACd,6DAAa,CAAA;IACb,uDAAU,CAAA;IACV,yDAAW,CAAA;IACX,mDAAQ,CAAA;IACR,6CAAK,CAAA;IACL,mDAAQ,CAAA;IACR,qDAAS,CAAA;AACX,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAED;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAA;AAqTtB;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAE,IAAgB;IACtC,OAAO,CAAC,UAA4B,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAC5E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAEH,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AASzG,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,CAAA;AAEvF;;GAEG;AACH,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACpB,uDAAc,CAAA;IACd,6DAAa,CAAA;IACb,uDAAU,CAAA;IACV,yDAAW,CAAA;IACX,mDAAQ,CAAA;IACR,6CAAK,CAAA;IACL,mDAAQ,CAAA;IACR,qDAAS,CAAA;AACX,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAED;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAA;AAwVtB;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAE,IAAgB;IACtC,OAAO,CAAC,UAA4B,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAC5E,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import { TypedEventEmitter } from '@libp2p/interface';
2
+ import { type AdaptiveTimeoutInit } from '@libp2p/utils/adaptive-timeout';
2
3
  import { Message } from './message/dht.js';
3
4
  import type { KadDHTComponents, QueryEvent } from './index.js';
4
5
  import type { AbortOptions, Stream, PeerId, PeerInfo, Startable, RoutingOptions } from '@libp2p/interface';
5
6
  export interface NetworkInit {
6
7
  protocol: string;
7
8
  logPrefix: string;
9
+ timeout?: Omit<AdaptiveTimeoutInit, 'metricsName' | 'metrics'>;
8
10
  }
9
11
  interface NetworkEvents {
10
12
  'peer': CustomEvent<PeerInfo>;
@@ -17,6 +19,7 @@ export declare class Network extends TypedEventEmitter<NetworkEvents> implements
17
19
  private readonly protocol;
18
20
  private running;
19
21
  private readonly components;
22
+ private readonly timeout;
20
23
  /**
21
24
  * Create a new network
22
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAIrD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAQ1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;CAC9B;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,iBAAiB,CAAC,aAAa,CAAE,YAAW,SAAS;IAChF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAE7C;;OAEG;gBACU,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW;IAU5D;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAQ7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAwCjH;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAiCjH;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjG;;;;OAIG;IACG,iBAAiB,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAuBzG"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAG1F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAQ1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,SAAS,CAAC,CAAA;CAC/D;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;CAC9B;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,iBAAiB,CAAC,aAAa,CAAE,YAAW,SAAS;IAChF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC;;OAEG;gBACU,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW;IAe5D;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAQ7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAkDjH;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IA4CjH;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjG;;;;OAIG;IACG,iBAAiB,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAuBzG"}
@@ -1,5 +1,6 @@
1
1
  import { TypedEventEmitter } from '@libp2p/interface';
2
2
  import { Libp2pRecord } from '@libp2p/record';
3
+ import { AdaptiveTimeout } from '@libp2p/utils/adaptive-timeout';
3
4
  import { pbStream } from 'it-protobuf-stream';
4
5
  import { CodeError } from 'protons-runtime';
5
6
  import { Message } from './message/dht.js';
@@ -13,6 +14,7 @@ export class Network extends TypedEventEmitter {
13
14
  protocol;
14
15
  running;
15
16
  components;
17
+ timeout;
16
18
  /**
17
19
  * Create a new network
18
20
  */
@@ -23,6 +25,11 @@ export class Network extends TypedEventEmitter {
23
25
  this.log = components.logger.forComponent(`${init.logPrefix}:network`);
24
26
  this.running = false;
25
27
  this.protocol = protocol;
28
+ this.timeout = new AdaptiveTimeout({
29
+ ...(init.timeout ?? {}),
30
+ metrics: components.metrics,
31
+ metricName: `${init.logPrefix.replaceAll(':', '_')}_network_message_send_times_milliseconds`
32
+ });
26
33
  }
27
34
  /**
28
35
  * Start the network
@@ -60,10 +67,20 @@ export class Network extends TypedEventEmitter {
60
67
  yield dialPeerEvent({ peer: to }, options);
61
68
  yield sendQueryEvent({ to, type }, options);
62
69
  let stream;
70
+ const signal = this.timeout.getTimeoutSignal(options);
71
+ options = {
72
+ ...options,
73
+ signal
74
+ };
63
75
  try {
64
76
  const connection = await this.components.connectionManager.openConnection(to, options);
65
- const stream = await connection.newStream(this.protocol, options);
77
+ stream = await connection.newStream(this.protocol, options);
66
78
  const response = await this._writeReadMessage(stream, msg, options);
79
+ stream.close(options)
80
+ .catch(err => {
81
+ this.log.error('error closing stream to %p', to, err);
82
+ stream?.abort(err);
83
+ });
67
84
  yield peerResponseEvent({
68
85
  from: to,
69
86
  messageType: response.type,
@@ -73,13 +90,12 @@ export class Network extends TypedEventEmitter {
73
90
  }, options);
74
91
  }
75
92
  catch (err) {
93
+ stream?.abort(err);
76
94
  this.log.error('could not send %s to %p', msg.type, to, err);
77
95
  yield queryErrorEvent({ from: to, error: err }, options);
78
96
  }
79
97
  finally {
80
- if (stream != null) {
81
- await stream.close();
82
- }
98
+ this.timeout.cleanUp(signal);
83
99
  }
84
100
  }
85
101
  /**
@@ -97,19 +113,28 @@ export class Network extends TypedEventEmitter {
97
113
  yield dialPeerEvent({ peer: to }, options);
98
114
  yield sendQueryEvent({ to, type }, options);
99
115
  let stream;
116
+ const signal = this.timeout.getTimeoutSignal(options);
117
+ options = {
118
+ ...options,
119
+ signal
120
+ };
100
121
  try {
101
122
  const connection = await this.components.connectionManager.openConnection(to, options);
102
- const stream = await connection.newStream(this.protocol, options);
123
+ stream = await connection.newStream(this.protocol, options);
103
124
  await this._writeMessage(stream, msg, options);
125
+ stream.close(options)
126
+ .catch(err => {
127
+ this.log.error('error closing stream to %p', to, err);
128
+ stream?.abort(err);
129
+ });
104
130
  yield peerResponseEvent({ from: to, messageType: type }, options);
105
131
  }
106
132
  catch (err) {
133
+ stream?.abort(err);
107
134
  yield queryErrorEvent({ from: to, error: err }, options);
108
135
  }
109
136
  finally {
110
- if (stream != null) {
111
- await stream.close();
112
- }
137
+ this.timeout.cleanUp(signal);
113
138
  }
114
139
  }
115
140
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { PeerId } from '@libp2p/interface';
1
+ import type { PeerId, PeerInfo } from '@libp2p/interface';
2
2
  /**
3
3
  * Maintains a list of peerIds sorted by distance from a DHT key.
4
4
  */
@@ -18,13 +18,22 @@ export declare class PeerDistanceList {
18
18
  */
19
19
  get length(): number;
20
20
  /**
21
- * The peerIds in the list, in order of distance from the origin key
21
+ * The peers in the list, in order of distance from the origin key
22
22
  */
23
- get peers(): PeerId[];
23
+ get peers(): PeerInfo[];
24
24
  /**
25
25
  * Add a peerId to the list.
26
26
  */
27
- add(peerId: PeerId): Promise<void>;
27
+ add(peer: PeerInfo): Promise<void>;
28
+ /**
29
+ * Add a peerId to the list.
30
+ */
31
+ addWitKadId(peer: PeerInfo, kadId: Uint8Array): void;
32
+ /**
33
+ * Indicates whether any of the peerIds passed as a parameter are closer
34
+ * to the origin key than the furthest peerId in the PeerDistanceList.
35
+ */
36
+ isCloser(peerId: PeerId): Promise<boolean>;
28
37
  /**
29
38
  * Indicates whether any of the peerIds passed as a parameter are closer
30
39
  * to the origin key than the furthest peerId in the PeerDistanceList.
@@ -1 +1 @@
1
- {"version":3,"file":"peer-distance-list.d.ts","sourceRoot":"","sources":["../../../src/peer-list/peer-distance-list.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAO/C;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IAEzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IAEjC,OAAO,CAAC,aAAa,CAAgB;gBAExB,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAMvD;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,KAAK,IAAK,MAAM,EAAE,CAErB;IAED;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzC;;;OAGG;IACG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAsBtD"}
1
+ {"version":3,"file":"peer-distance-list.d.ts","sourceRoot":"","sources":["../../../src/peer-list/peer-distance-list.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAOzD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IAEzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IAEjC,OAAO,CAAC,aAAa,CAAgB;gBAExB,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAMvD;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,KAAK,IAAK,QAAQ,EAAE,CAEvB;IAED;;OAEG;IACG,GAAG,CAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC;;OAEG;IACH,WAAW,CAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAerD;;;OAGG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYjD;;;OAGG;IACG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAStD"}
@@ -1,6 +1,6 @@
1
- import { compare as uint8ArrayCompare } from 'uint8arrays/compare';
2
1
  import { xor as uint8ArrayXor } from 'uint8arrays/xor';
3
- import * as utils from '../utils.js';
2
+ import { xorCompare as uint8ArrayXorCompare } from 'uint8arrays/xor-compare';
3
+ import { convertPeerId } from '../utils.js';
4
4
  /**
5
5
  * Maintains a list of peerIds sorted by distance from a DHT key.
6
6
  */
@@ -26,47 +26,55 @@ export class PeerDistanceList {
26
26
  return this.peerDistances.length;
27
27
  }
28
28
  /**
29
- * The peerIds in the list, in order of distance from the origin key
29
+ * The peers in the list, in order of distance from the origin key
30
30
  */
31
31
  get peers() {
32
- return this.peerDistances.map(pd => pd.peerId);
32
+ return this.peerDistances.map(pd => pd.peer);
33
33
  }
34
34
  /**
35
35
  * Add a peerId to the list.
36
36
  */
37
- async add(peerId) {
38
- if (this.peerDistances.find(pd => pd.peerId.equals(peerId)) != null) {
37
+ async add(peer) {
38
+ const dhtKey = await convertPeerId(peer.id);
39
+ this.addWitKadId(peer, dhtKey);
40
+ }
41
+ /**
42
+ * Add a peerId to the list.
43
+ */
44
+ addWitKadId(peer, kadId) {
45
+ if (this.peerDistances.find(pd => pd.peer.id.equals(peer.id)) != null) {
39
46
  return;
40
47
  }
41
- const dhtKey = await utils.convertPeerId(peerId);
42
48
  const el = {
43
- peerId,
44
- distance: uint8ArrayXor(this.originDhtKey, dhtKey)
49
+ peer,
50
+ distance: uint8ArrayXor(this.originDhtKey, kadId)
45
51
  };
46
52
  this.peerDistances.push(el);
47
- this.peerDistances.sort((a, b) => uint8ArrayCompare(a.distance, b.distance));
53
+ this.peerDistances.sort((a, b) => uint8ArrayXorCompare(a.distance, b.distance));
48
54
  this.peerDistances = this.peerDistances.slice(0, this.capacity);
49
55
  }
50
56
  /**
51
57
  * Indicates whether any of the peerIds passed as a parameter are closer
52
58
  * to the origin key than the furthest peerId in the PeerDistanceList.
53
59
  */
54
- async anyCloser(peerIds) {
55
- if (peerIds.length === 0) {
56
- return false;
57
- }
60
+ async isCloser(peerId) {
58
61
  if (this.length === 0) {
59
62
  return true;
60
63
  }
61
- const dhtKeys = await Promise.all(peerIds.map(utils.convertPeerId));
64
+ const dhtKey = await convertPeerId(peerId);
65
+ const dhtKeyXor = uint8ArrayXor(dhtKey, this.originDhtKey);
62
66
  const furthestDistance = this.peerDistances[this.peerDistances.length - 1].distance;
63
- for (const dhtKey of dhtKeys) {
64
- const keyDistance = uint8ArrayXor(this.originDhtKey, dhtKey);
65
- if (uint8ArrayCompare(keyDistance, furthestDistance) < 0) {
66
- return true;
67
- }
67
+ return uint8ArrayXorCompare(dhtKeyXor, furthestDistance) === -1;
68
+ }
69
+ /**
70
+ * Indicates whether any of the peerIds passed as a parameter are closer
71
+ * to the origin key than the furthest peerId in the PeerDistanceList.
72
+ */
73
+ async anyCloser(peerIds) {
74
+ if (peerIds.length === 0) {
75
+ return false;
68
76
  }
69
- return false;
77
+ return Promise.any(peerIds.map(async (peerId) => this.isCloser(peerId)));
70
78
  }
71
79
  }
72
80
  //# sourceMappingURL=peer-distance-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"peer-distance-list.js","sourceRoot":"","sources":["../../../src/peer-list/peer-distance-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAQpC;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;OAEG;IACc,YAAY,CAAY;IAEzC;;OAEG;IACc,QAAQ,CAAQ;IAEzB,aAAa,CAAgB;IAErC,YAAa,YAAwB,EAAE,QAAgB;QACrD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAA;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAE,MAAc;QACvB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACpE,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,EAAE,GAAG;YACT,MAAM;YACN,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;SACnD,CAAA;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAE,OAAiB;QAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAA;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEnF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;YAE5D,IAAI,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"peer-distance-list.js","sourceRoot":"","sources":["../../../src/peer-list/peer-distance-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAQ3C;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;OAEG;IACc,YAAY,CAAY;IAEzC;;OAEG;IACc,QAAQ,CAAQ;IAEzB,aAAa,CAAgB;IAErC,YAAa,YAAwB,EAAE,QAAgB;QACrD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAA;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAE,IAAc;QACvB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAE3C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,WAAW,CAAE,IAAc,EAAE,KAAiB;QAC5C,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACtE,OAAM;QACR,CAAC;QAED,MAAM,EAAE,GAAG;YACT,IAAI;YACJ,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;SAClD,CAAA;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC/E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAE,MAAc;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEnF,OAAO,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;IACjE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAE,OAAiB;QAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACnD,CAAA;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { KadDHTComponents, DHTRecord, DialPeerEvent, FinalPeerEvent, QueryEvent, Validators } from '../index.js';
1
+ import type { KadDHTComponents, DHTRecord, FinalPeerEvent, QueryEvent, Validators } from '../index.js';
2
2
  import type { Network } from '../network.js';
3
3
  import type { QueryManager, QueryOptions } from '../query/manager.js';
4
4
  import type { RoutingTable } from '../routing-table/index.js';
@@ -37,17 +37,17 @@ export declare class PeerRouting {
37
37
  */
38
38
  findPeer(id: PeerId, options?: RoutingOptions): AsyncGenerator<FinalPeerEvent | QueryEvent>;
39
39
  /**
40
- * Kademlia 'node lookup' operation on a key, which could be a the
41
- * bytes from a multihash or a peer ID
40
+ * Kademlia 'FIND_NODE' operation on a key, which could be the bytes from
41
+ * a multihash or a peer ID
42
42
  */
43
- getClosestPeers(key: Uint8Array, options?: QueryOptions): AsyncGenerator<DialPeerEvent | QueryEvent>;
43
+ getClosestPeers(key: Uint8Array, options?: QueryOptions): AsyncGenerator<QueryEvent>;
44
44
  /**
45
45
  * Query a particular peer for the value for the given key.
46
46
  * It will either return the value or a list of closer peers.
47
47
  *
48
48
  * Note: The peerStore is updated with new addresses found for the given peer.
49
49
  */
50
- getValueOrPeers(peer: PeerId, key: Uint8Array, options?: RoutingOptions): AsyncGenerator<DialPeerEvent | QueryEvent>;
50
+ getValueOrPeers(peer: PeerId, key: Uint8Array, options?: RoutingOptions): AsyncGenerator<QueryEvent>;
51
51
  /**
52
52
  * Verify a record, fetching missing public keys from the network.
53
53
  * Throws an error if the record is invalid.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAErH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAErE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAU,MAAM,EAAE,QAAQ,EAAa,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE5F,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAElB,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe;IAYhE;;;OAGG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAsCjE;;OAEG;IACK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IASjH;;OAEG;IACK,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAyBrG;;OAEG;IACK,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,cAAc,GAAG,UAAU,CAAC;IA4DxG;;;OAGG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,aAAa,GAAG,UAAU,CAAC;IAmDjH;;;;;OAKG;IACK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,aAAa,GAAG,UAAU,CAAC;IAqBjI;;;OAGG;IACG,mBAAmB,CAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D;;;OAGG;IACG,qBAAqB,CAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAgCvF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEtG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAErE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAU,MAAM,EAAE,QAAQ,EAAa,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE5F,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAElB,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe;IAYhE;;;OAGG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAsCjE;;OAEG;IACK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IASjH;;OAEG;IACK,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAyBrG;;OAEG;IACK,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,cAAc,GAAG,UAAU,CAAC;IA4DxG;;;OAGG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IA0CjG;;;;;OAKG;IACK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAqBjH;;;OAGG;IACG,mBAAmB,CAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D;;;OAGG;IACG,qBAAqB,CAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAgCvF"}
@@ -146,16 +146,16 @@ export class PeerRouting {
146
146
  }
147
147
  }
148
148
  /**
149
- * Kademlia 'node lookup' operation on a key, which could be a the
150
- * bytes from a multihash or a peer ID
149
+ * Kademlia 'FIND_NODE' operation on a key, which could be the bytes from
150
+ * a multihash or a peer ID
151
151
  */
152
152
  async *getClosestPeers(key, options = {}) {
153
153
  this.log('getClosestPeers to %b', key);
154
- const id = await utils.convertBuffer(key);
155
- const tablePeers = this.routingTable.closestPeers(id);
154
+ const kadId = await utils.convertBuffer(key);
155
+ const tablePeers = this.routingTable.closestPeers(kadId);
156
156
  const self = this; // eslint-disable-line @typescript-eslint/no-this-alias
157
- const peers = new PeerDistanceList(id, this.routingTable.kBucketSize);
158
- await Promise.all(tablePeers.map(async (peer) => { await peers.add(peer); }));
157
+ const peers = new PeerDistanceList(kadId, this.routingTable.kBucketSize);
158
+ await Promise.all(tablePeers.map(async (peer) => { await peers.add({ id: peer, multiaddrs: [] }); }));
159
159
  const getCloserPeersQuery = async function* ({ peer, signal }) {
160
160
  self.log('closerPeersSingle %s from %p', uint8ArrayToString(key, 'base32'), peer);
161
161
  const request = {
@@ -168,28 +168,19 @@ export class PeerRouting {
168
168
  });
169
169
  };
170
170
  for await (const event of this.queryManager.run(key, getCloserPeersQuery, options)) {
171
- yield event;
172
171
  if (event.name === 'PEER_RESPONSE') {
173
- await Promise.all(event.closer.map(async (peerData) => { await peers.add(peerData.id); }));
172
+ await Promise.all(event.closer.map(async (peerData) => {
173
+ await peers.add(peerData);
174
+ }));
174
175
  }
176
+ yield event;
175
177
  }
176
178
  this.log('found %d peers close to %b', peers.length, key);
177
- for (const peerId of peers.peers) {
178
- try {
179
- const peer = await this.peerStore.get(peerId);
180
- yield finalPeerEvent({
181
- from: this.peerId,
182
- peer: {
183
- id: peerId,
184
- multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
185
- }
186
- }, options);
187
- }
188
- catch (err) {
189
- if (err.code !== 'ERR_NOT_FOUND') {
190
- throw err;
191
- }
192
- }
179
+ for (const peer of peers.peers) {
180
+ yield finalPeerEvent({
181
+ from: this.peerId,
182
+ peer
183
+ }, options);
193
184
  }
194
185
  }
195
186
  /**