libp2p 0.44.0 → 0.45.0

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 (188) hide show
  1. package/dist/index.min.js +30 -30
  2. package/dist/src/address-manager/index.d.ts +8 -4
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +37 -6
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/address-manager/utils.d.ts +2 -0
  7. package/dist/src/address-manager/utils.d.ts.map +1 -0
  8. package/dist/src/address-manager/utils.js +12 -0
  9. package/dist/src/address-manager/utils.js.map +1 -0
  10. package/dist/src/autonat/constants.d.ts +16 -2
  11. package/dist/src/autonat/constants.d.ts.map +1 -1
  12. package/dist/src/autonat/constants.js +16 -2
  13. package/dist/src/autonat/constants.js.map +1 -1
  14. package/dist/src/autonat/index.d.ts +12 -33
  15. package/dist/src/autonat/index.d.ts.map +1 -1
  16. package/dist/src/autonat/index.js +36 -30
  17. package/dist/src/autonat/index.js.map +1 -1
  18. package/dist/src/circuit-relay/server/advert-service.d.ts.map +1 -1
  19. package/dist/src/circuit-relay/server/advert-service.js +2 -2
  20. package/dist/src/circuit-relay/server/advert-service.js.map +1 -1
  21. package/dist/src/circuit-relay/server/index.d.ts.map +1 -1
  22. package/dist/src/circuit-relay/server/index.js +10 -3
  23. package/dist/src/circuit-relay/server/index.js.map +1 -1
  24. package/dist/src/circuit-relay/transport/discovery.d.ts.map +1 -1
  25. package/dist/src/circuit-relay/transport/discovery.js +4 -2
  26. package/dist/src/circuit-relay/transport/discovery.js.map +1 -1
  27. package/dist/src/circuit-relay/transport/index.d.ts +3 -0
  28. package/dist/src/circuit-relay/transport/index.d.ts.map +1 -1
  29. package/dist/src/circuit-relay/transport/index.js +6 -4
  30. package/dist/src/circuit-relay/transport/index.js.map +1 -1
  31. package/dist/src/circuit-relay/transport/listener.d.ts.map +1 -1
  32. package/dist/src/circuit-relay/transport/listener.js +30 -26
  33. package/dist/src/circuit-relay/transport/listener.js.map +1 -1
  34. package/dist/src/circuit-relay/transport/reservation-store.d.ts +5 -4
  35. package/dist/src/circuit-relay/transport/reservation-store.d.ts.map +1 -1
  36. package/dist/src/circuit-relay/transport/reservation-store.js +37 -30
  37. package/dist/src/circuit-relay/transport/reservation-store.js.map +1 -1
  38. package/dist/src/components.d.ts +6 -63
  39. package/dist/src/components.d.ts.map +1 -1
  40. package/dist/src/components.js +60 -164
  41. package/dist/src/components.js.map +1 -1
  42. package/dist/src/config/connection-gater.browser.d.ts +8 -0
  43. package/dist/src/config/connection-gater.browser.d.ts.map +1 -0
  44. package/dist/src/config/connection-gater.browser.js +27 -0
  45. package/dist/src/config/connection-gater.browser.js.map +1 -0
  46. package/dist/src/config/connection-gater.d.ts +6 -0
  47. package/dist/src/config/connection-gater.d.ts.map +1 -0
  48. package/dist/src/config/connection-gater.js +18 -0
  49. package/dist/src/config/connection-gater.js.map +1 -0
  50. package/dist/src/config.d.ts +2 -1
  51. package/dist/src/config.d.ts.map +1 -1
  52. package/dist/src/config.js +0 -62
  53. package/dist/src/config.js.map +1 -1
  54. package/dist/src/connection-manager/auto-dial.d.ts +3 -0
  55. package/dist/src/connection-manager/auto-dial.d.ts.map +1 -1
  56. package/dist/src/connection-manager/auto-dial.js +36 -13
  57. package/dist/src/connection-manager/auto-dial.js.map +1 -1
  58. package/dist/src/connection-manager/connection-pruner.d.ts +4 -0
  59. package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -1
  60. package/dist/src/connection-manager/connection-pruner.js +23 -8
  61. package/dist/src/connection-manager/connection-pruner.js.map +1 -1
  62. package/dist/src/connection-manager/dial-queue.d.ts +2 -1
  63. package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
  64. package/dist/src/connection-manager/dial-queue.js +36 -14
  65. package/dist/src/connection-manager/dial-queue.js.map +1 -1
  66. package/dist/src/connection-manager/index.d.ts +8 -7
  67. package/dist/src/connection-manager/index.d.ts.map +1 -1
  68. package/dist/src/connection-manager/index.js +23 -34
  69. package/dist/src/connection-manager/index.js.map +1 -1
  70. package/dist/src/content-routing/index.d.ts +0 -10
  71. package/dist/src/content-routing/index.d.ts.map +1 -1
  72. package/dist/src/content-routing/index.js +7 -42
  73. package/dist/src/content-routing/index.js.map +1 -1
  74. package/dist/src/content-routing/utils.d.ts.map +1 -1
  75. package/dist/src/content-routing/utils.js +3 -1
  76. package/dist/src/content-routing/utils.js.map +1 -1
  77. package/dist/src/fetch/index.d.ts +13 -35
  78. package/dist/src/fetch/index.d.ts.map +1 -1
  79. package/dist/src/fetch/index.js +7 -9
  80. package/dist/src/fetch/index.js.map +1 -1
  81. package/dist/src/identify/identify.d.ts +53 -0
  82. package/dist/src/identify/identify.d.ts.map +1 -0
  83. package/dist/src/identify/identify.js +405 -0
  84. package/dist/src/identify/identify.js.map +1 -0
  85. package/dist/src/identify/index.d.ts +12 -58
  86. package/dist/src/identify/index.d.ts.map +1 -1
  87. package/dist/src/identify/index.js +5 -388
  88. package/dist/src/identify/index.js.map +1 -1
  89. package/dist/src/index.d.ts +13 -68
  90. package/dist/src/index.d.ts.map +1 -1
  91. package/dist/src/index.js +2 -1
  92. package/dist/src/index.js.map +1 -1
  93. package/dist/src/insecure/index.js.map +1 -1
  94. package/dist/src/libp2p.d.ts +11 -42
  95. package/dist/src/libp2p.d.ts.map +1 -1
  96. package/dist/src/libp2p.js +137 -196
  97. package/dist/src/libp2p.js.map +1 -1
  98. package/dist/src/peer-routing.d.ts +1 -38
  99. package/dist/src/peer-routing.d.ts.map +1 -1
  100. package/dist/src/peer-routing.js +0 -59
  101. package/dist/src/peer-routing.js.map +1 -1
  102. package/dist/src/ping/constants.d.ts +4 -0
  103. package/dist/src/ping/constants.d.ts.map +1 -1
  104. package/dist/src/ping/constants.js +10 -0
  105. package/dist/src/ping/constants.js.map +1 -1
  106. package/dist/src/ping/index.d.ts +10 -27
  107. package/dist/src/ping/index.d.ts.map +1 -1
  108. package/dist/src/ping/index.js +18 -21
  109. package/dist/src/ping/index.js.map +1 -1
  110. package/dist/src/registrar.d.ts +5 -2
  111. package/dist/src/registrar.d.ts.map +1 -1
  112. package/dist/src/registrar.js +27 -25
  113. package/dist/src/registrar.js.map +1 -1
  114. package/dist/src/transport-manager.d.ts +11 -4
  115. package/dist/src/transport-manager.d.ts.map +1 -1
  116. package/dist/src/transport-manager.js +19 -10
  117. package/dist/src/transport-manager.js.map +1 -1
  118. package/dist/src/upgrader.d.ts +15 -10
  119. package/dist/src/upgrader.d.ts.map +1 -1
  120. package/dist/src/upgrader.js +39 -48
  121. package/dist/src/upgrader.js.map +1 -1
  122. package/dist/src/upnp-nat/index.d.ts +42 -0
  123. package/dist/src/upnp-nat/index.d.ts.map +1 -0
  124. package/dist/src/{nat-manager.js → upnp-nat/index.js} +11 -7
  125. package/dist/src/upnp-nat/index.js.map +1 -0
  126. package/dist/src/version.d.ts +1 -1
  127. package/dist/src/version.d.ts.map +1 -1
  128. package/dist/src/version.js +1 -1
  129. package/dist/src/version.js.map +1 -1
  130. package/dist/typedoc-urls.json +25 -10
  131. package/package.json +61 -45
  132. package/src/address-manager/index.ts +50 -8
  133. package/src/address-manager/utils.ts +14 -0
  134. package/src/autonat/constants.ts +17 -2
  135. package/src/autonat/index.ts +53 -45
  136. package/src/circuit-relay/server/advert-service.ts +2 -2
  137. package/src/circuit-relay/server/index.ts +11 -3
  138. package/src/circuit-relay/transport/discovery.ts +5 -3
  139. package/src/circuit-relay/transport/index.ts +9 -4
  140. package/src/circuit-relay/transport/listener.ts +38 -28
  141. package/src/circuit-relay/transport/reservation-store.ts +34 -20
  142. package/src/components.ts +71 -234
  143. package/src/config/connection-gater.browser.ts +31 -0
  144. package/src/config/connection-gater.ts +19 -0
  145. package/src/config.ts +3 -64
  146. package/src/connection-manager/auto-dial.ts +44 -15
  147. package/src/connection-manager/connection-pruner.ts +28 -8
  148. package/src/connection-manager/dial-queue.ts +41 -21
  149. package/src/connection-manager/index.ts +31 -43
  150. package/src/content-routing/index.ts +7 -55
  151. package/src/content-routing/utils.ts +3 -1
  152. package/src/fetch/index.ts +51 -14
  153. package/src/identify/identify.ts +518 -0
  154. package/src/identify/index.ts +17 -507
  155. package/src/index.ts +14 -77
  156. package/src/insecure/index.ts +4 -4
  157. package/src/libp2p.ts +139 -260
  158. package/src/peer-routing.ts +1 -101
  159. package/src/ping/constants.ts +11 -0
  160. package/src/ping/index.ts +32 -28
  161. package/src/registrar.ts +31 -27
  162. package/src/transport-manager.ts +27 -13
  163. package/src/upgrader.ts +62 -58
  164. package/src/{nat-manager.ts → upnp-nat/index.ts} +16 -17
  165. package/src/version.ts +1 -1
  166. package/dist/src/dht/dht-content-routing.d.ts +0 -17
  167. package/dist/src/dht/dht-content-routing.d.ts.map +0 -1
  168. package/dist/src/dht/dht-content-routing.js +0 -32
  169. package/dist/src/dht/dht-content-routing.js.map +0 -1
  170. package/dist/src/dht/dht-peer-routing.d.ts +0 -15
  171. package/dist/src/dht/dht-peer-routing.d.ts.map +0 -1
  172. package/dist/src/dht/dht-peer-routing.js +0 -26
  173. package/dist/src/dht/dht-peer-routing.js.map +0 -1
  174. package/dist/src/dht/dummy-dht.d.ts +0 -20
  175. package/dist/src/dht/dummy-dht.d.ts.map +0 -1
  176. package/dist/src/dht/dummy-dht.js +0 -46
  177. package/dist/src/dht/dummy-dht.js.map +0 -1
  178. package/dist/src/nat-manager.d.ts +0 -74
  179. package/dist/src/nat-manager.d.ts.map +0 -1
  180. package/dist/src/nat-manager.js.map +0 -1
  181. package/dist/src/peer-record-updater.d.ts +0 -24
  182. package/dist/src/peer-record-updater.d.ts.map +0 -1
  183. package/dist/src/peer-record-updater.js +0 -44
  184. package/dist/src/peer-record-updater.js.map +0 -1
  185. package/src/dht/dht-content-routing.ts +0 -44
  186. package/src/dht/dht-peer-routing.ts +0 -36
  187. package/src/dht/dummy-dht.ts +0 -60
  188. package/src/peer-record-updater.ts +0 -65
@@ -1,74 +0,0 @@
1
- import { NatAPI } from '@achingbrain/nat-port-mapper';
2
- import type { Startable } from '@libp2p/interfaces/startable';
3
- import type { TransportManager } from '@libp2p/interface-transport';
4
- import type { PeerId } from '@libp2p/interface-peer-id';
5
- import type { AddressManager } from '@libp2p/interface-address-manager';
6
- export interface PMPOptions {
7
- /**
8
- * Whether to enable PMP as well as UPnP
9
- */
10
- enabled?: boolean;
11
- }
12
- export interface NatManagerInit {
13
- /**
14
- * Whether to enable the NAT manager
15
- */
16
- enabled: boolean;
17
- /**
18
- * Pass a value to use instead of auto-detection
19
- */
20
- externalAddress?: string;
21
- /**
22
- * Pass a value to use instead of auto-detection
23
- */
24
- localAddress?: string;
25
- /**
26
- * A string value to use for the port mapping description on the gateway
27
- */
28
- description?: string;
29
- /**
30
- * How long UPnP port mappings should last for in seconds (minimum 1200)
31
- */
32
- ttl?: number;
33
- /**
34
- * Whether to automatically refresh UPnP port mappings when their TTL is reached
35
- */
36
- keepAlive: boolean;
37
- /**
38
- * Pass a value to use instead of auto-detection
39
- */
40
- gateway?: string;
41
- }
42
- export interface NatManagerComponents {
43
- peerId: PeerId;
44
- transportManager: TransportManager;
45
- addressManager: AddressManager;
46
- }
47
- export declare class NatManager implements Startable {
48
- private readonly components;
49
- private readonly enabled;
50
- private readonly externalAddress?;
51
- private readonly localAddress?;
52
- private readonly description;
53
- private readonly ttl;
54
- private readonly keepAlive;
55
- private readonly gateway?;
56
- private started;
57
- private client?;
58
- constructor(components: NatManagerComponents, init: NatManagerInit);
59
- isStarted(): boolean;
60
- start(): void;
61
- /**
62
- * Attempt to use uPnP to configure port mapping using the current gateway.
63
- *
64
- * Run after start to ensure the transport manager has all addresses configured.
65
- */
66
- afterStart(): void;
67
- _start(): Promise<void>;
68
- _getClient(): Promise<NatAPI>;
69
- /**
70
- * Stops the NAT manager
71
- */
72
- stop(): Promise<void>;
73
- }
74
- //# sourceMappingURL=nat-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nat-manager.d.ts","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAS9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AASvE,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,qBAAa,UAAW,YAAW,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEV,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc;IAiBnE,SAAS,IAAK,OAAO;IAIrB,KAAK,IAAK,IAAI;IAId;;;;OAIG;IACH,UAAU,IAAK,IAAI;IAcb,MAAM,IAAK,OAAO,CAAC,IAAI,CAAC;IAuDxB,UAAU,IAAK,OAAO,CAAC,MAAM,CAAC;IAepC;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAY7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"nat-manager.js","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Startable } from '@libp2p/interfaces/startable';
2
- import type { TransportManager } from '@libp2p/interface-transport';
3
- import type { AddressManager } from '@libp2p/interface-address-manager';
4
- import type { PeerId } from '@libp2p/interface-peer-id';
5
- import type { PeerStore } from '@libp2p/interface-peer-store';
6
- export interface PeerRecordUpdaterComponents {
7
- peerId: PeerId;
8
- peerStore: PeerStore;
9
- transportManager: TransportManager;
10
- addressManager: AddressManager;
11
- }
12
- export declare class PeerRecordUpdater implements Startable {
13
- private readonly components;
14
- private started;
15
- constructor(components: PeerRecordUpdaterComponents);
16
- isStarted(): boolean;
17
- start(): Promise<void>;
18
- stop(): Promise<void>;
19
- /**
20
- * Create (or update if existing) self peer record and store it in the AddressBook.
21
- */
22
- update(): void;
23
- }
24
- //# sourceMappingURL=peer-record-updater.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"peer-record-updater.d.ts","sourceRoot":"","sources":["../../src/peer-record-updater.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAI7D,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,OAAO,CAAS;gBAEX,UAAU,EAAE,2BAA2B;IAMpD,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAOvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACH,MAAM,IAAK,IAAI;CAehB"}
@@ -1,44 +0,0 @@
1
- import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record';
2
- import { logger } from '@libp2p/logger';
3
- import { protocols } from '@multiformats/multiaddr';
4
- const log = logger('libp2p:peer-record-updater');
5
- export class PeerRecordUpdater {
6
- constructor(components) {
7
- this.components = components;
8
- this.started = false;
9
- this.update = this.update.bind(this);
10
- }
11
- isStarted() {
12
- return this.started;
13
- }
14
- async start() {
15
- this.started = true;
16
- this.components.transportManager.addEventListener('listener:listening', this.update);
17
- this.components.transportManager.addEventListener('listener:close', this.update);
18
- this.components.addressManager.addEventListener('change:addresses', this.update);
19
- }
20
- async stop() {
21
- this.started = false;
22
- this.components.transportManager.removeEventListener('listener:listening', this.update);
23
- this.components.transportManager.removeEventListener('listener:close', this.update);
24
- this.components.addressManager.removeEventListener('change:addresses', this.update);
25
- }
26
- /**
27
- * Create (or update if existing) self peer record and store it in the AddressBook.
28
- */
29
- update() {
30
- Promise.resolve()
31
- .then(async () => {
32
- const peerRecord = new PeerRecord({
33
- peerId: this.components.peerId,
34
- multiaddrs: this.components.addressManager.getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code))
35
- });
36
- const envelope = await RecordEnvelope.seal(peerRecord, this.components.peerId);
37
- await this.components.peerStore.addressBook.consumePeerRecord(envelope);
38
- })
39
- .catch(err => {
40
- log.error('Could not update self peer record: %o', err);
41
- });
42
- }
43
- }
44
- //# sourceMappingURL=peer-record-updater.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"peer-record-updater.js","sourceRoot":"","sources":["../../src/peer-record-updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMnD,MAAM,GAAG,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAA;AAShD,MAAM,OAAO,iBAAiB;IAI5B,YAAa,UAAuC;QAClD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACpF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAChF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACvF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACrF,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;aAC/G,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC9E,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QACzE,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACN,CAAC;CACF"}
@@ -1,44 +0,0 @@
1
- import drain from 'it-drain'
2
- import { CodeError } from '@libp2p/interfaces/errors'
3
- import type { DHT } from '@libp2p/interface-dht'
4
- import type { ContentRouting } from '@libp2p/interface-content-routing'
5
- import type { CID } from 'multiformats/cid'
6
- import type { AbortOptions } from '@libp2p/interfaces'
7
- import type { PeerInfo } from '@libp2p/interface-peer-info'
8
-
9
- /**
10
- * Wrapper class to convert events into returned values
11
- */
12
- export class DHTContentRouting implements ContentRouting {
13
- private readonly dht: DHT
14
-
15
- constructor (dht: DHT) {
16
- this.dht = dht
17
- }
18
-
19
- async provide (cid: CID): Promise<void> {
20
- await drain(this.dht.provide(cid))
21
- }
22
-
23
- async * findProviders (cid: CID, options: AbortOptions = {}): AsyncGenerator<PeerInfo, void, undefined> {
24
- for await (const event of this.dht.findProviders(cid, options)) {
25
- if (event.name === 'PROVIDER') {
26
- yield * event.providers
27
- }
28
- }
29
- }
30
-
31
- async put (key: Uint8Array, value: Uint8Array, options?: AbortOptions): Promise<void> {
32
- await drain(this.dht.put(key, value, options))
33
- }
34
-
35
- async get (key: Uint8Array, options?: AbortOptions): Promise<Uint8Array> {
36
- for await (const event of this.dht.get(key, options)) {
37
- if (event.name === 'VALUE') {
38
- return event.value
39
- }
40
- }
41
-
42
- throw new CodeError('Not found', 'ERR_NOT_FOUND')
43
- }
44
- }
@@ -1,36 +0,0 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
2
- import { messages, codes } from '../errors.js'
3
- import type { PeerRouting } from '@libp2p/interface-peer-routing'
4
- import type { DHT } from '@libp2p/interface-dht'
5
- import type { PeerId } from '@libp2p/interface-peer-id'
6
- import type { AbortOptions } from '@libp2p/interfaces'
7
- import type { PeerInfo } from '@libp2p/interface-peer-info'
8
-
9
- /**
10
- * Wrapper class to convert events into returned values
11
- */
12
- export class DHTPeerRouting implements PeerRouting {
13
- private readonly dht: DHT
14
-
15
- constructor (dht: DHT) {
16
- this.dht = dht
17
- }
18
-
19
- async findPeer (peerId: PeerId, options: AbortOptions = {}): Promise<PeerInfo> {
20
- for await (const event of this.dht.findPeer(peerId, options)) {
21
- if (event.name === 'FINAL_PEER') {
22
- return event.peer
23
- }
24
- }
25
-
26
- throw new CodeError(messages.NOT_FOUND, codes.ERR_NOT_FOUND)
27
- }
28
-
29
- async * getClosestPeers (key: Uint8Array, options: AbortOptions = {}): AsyncIterable<PeerInfo> {
30
- for await (const event of this.dht.getClosestPeers(key, options)) {
31
- if (event.name === 'FINAL_PEER') {
32
- yield event.peer
33
- }
34
- }
35
- }
36
- }
@@ -1,60 +0,0 @@
1
- import type { DualDHT, QueryEvent, SingleDHT } from '@libp2p/interface-dht'
2
- import type { PeerDiscoveryEvents } from '@libp2p/interface-peer-discovery'
3
- import { CodeError } from '@libp2p/interfaces/errors'
4
- import { messages, codes } from '../errors.js'
5
- import { EventEmitter } from '@libp2p/interfaces/events'
6
- import { symbol } from '@libp2p/interface-peer-discovery'
7
-
8
- export class DummyDHT extends EventEmitter<PeerDiscoveryEvents> implements DualDHT {
9
- get [symbol] (): true {
10
- return true
11
- }
12
-
13
- get [Symbol.toStringTag] (): '@libp2p/dummy-dht' {
14
- return '@libp2p/dummy-dht'
15
- }
16
-
17
- get wan (): SingleDHT {
18
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
19
- }
20
-
21
- get lan (): SingleDHT {
22
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
23
- }
24
-
25
- get (): AsyncIterable<QueryEvent> {
26
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
27
- }
28
-
29
- findProviders (): AsyncIterable<QueryEvent> {
30
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
31
- }
32
-
33
- findPeer (): AsyncIterable<QueryEvent> {
34
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
35
- }
36
-
37
- getClosestPeers (): AsyncIterable<QueryEvent> {
38
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
39
- }
40
-
41
- provide (): AsyncIterable<QueryEvent> {
42
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
43
- }
44
-
45
- put (): AsyncIterable<QueryEvent> {
46
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
47
- }
48
-
49
- async getMode (): Promise<'client' | 'server'> {
50
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
51
- }
52
-
53
- async setMode (): Promise<void> {
54
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
55
- }
56
-
57
- async refreshRoutingTable (): Promise<void> {
58
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
59
- }
60
- }
@@ -1,65 +0,0 @@
1
- import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record'
2
- import type { Startable } from '@libp2p/interfaces/startable'
3
- import { logger } from '@libp2p/logger'
4
- import { protocols } from '@multiformats/multiaddr'
5
- import type { TransportManager } from '@libp2p/interface-transport'
6
- import type { AddressManager } from '@libp2p/interface-address-manager'
7
- import type { PeerId } from '@libp2p/interface-peer-id'
8
- import type { PeerStore } from '@libp2p/interface-peer-store'
9
-
10
- const log = logger('libp2p:peer-record-updater')
11
-
12
- export interface PeerRecordUpdaterComponents {
13
- peerId: PeerId
14
- peerStore: PeerStore
15
- transportManager: TransportManager
16
- addressManager: AddressManager
17
- }
18
-
19
- export class PeerRecordUpdater implements Startable {
20
- private readonly components: PeerRecordUpdaterComponents
21
- private started: boolean
22
-
23
- constructor (components: PeerRecordUpdaterComponents) {
24
- this.components = components
25
- this.started = false
26
- this.update = this.update.bind(this)
27
- }
28
-
29
- isStarted (): boolean {
30
- return this.started
31
- }
32
-
33
- async start (): Promise<void> {
34
- this.started = true
35
- this.components.transportManager.addEventListener('listener:listening', this.update)
36
- this.components.transportManager.addEventListener('listener:close', this.update)
37
- this.components.addressManager.addEventListener('change:addresses', this.update)
38
- }
39
-
40
- async stop (): Promise<void> {
41
- this.started = false
42
- this.components.transportManager.removeEventListener('listener:listening', this.update)
43
- this.components.transportManager.removeEventListener('listener:close', this.update)
44
- this.components.addressManager.removeEventListener('change:addresses', this.update)
45
- }
46
-
47
- /**
48
- * Create (or update if existing) self peer record and store it in the AddressBook.
49
- */
50
- update (): void {
51
- Promise.resolve()
52
- .then(async () => {
53
- const peerRecord = new PeerRecord({
54
- peerId: this.components.peerId,
55
- multiaddrs: this.components.addressManager.getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code))
56
- })
57
-
58
- const envelope = await RecordEnvelope.seal(peerRecord, this.components.peerId)
59
- await this.components.peerStore.addressBook.consumePeerRecord(envelope)
60
- })
61
- .catch(err => {
62
- log.error('Could not update self peer record: %o', err)
63
- })
64
- }
65
- }