libp2p 0.43.4 → 0.44.0-0d46c78f

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 (215) hide show
  1. package/dist/index.min.js +29 -29
  2. package/dist/src/address-manager/index.d.ts +4 -4
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +9 -6
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/autonat/index.d.ts +1 -2
  7. package/dist/src/autonat/index.d.ts.map +1 -1
  8. package/dist/src/autonat/index.js +19 -19
  9. package/dist/src/autonat/index.js.map +1 -1
  10. package/dist/src/circuit-relay/server/advert-service.d.ts.map +1 -1
  11. package/dist/src/circuit-relay/server/advert-service.js +2 -2
  12. package/dist/src/circuit-relay/server/advert-service.js.map +1 -1
  13. package/dist/src/circuit-relay/server/index.d.ts.map +1 -1
  14. package/dist/src/circuit-relay/server/index.js +7 -3
  15. package/dist/src/circuit-relay/server/index.js.map +1 -1
  16. package/dist/src/circuit-relay/transport/discovery.d.ts.map +1 -1
  17. package/dist/src/circuit-relay/transport/discovery.js +3 -1
  18. package/dist/src/circuit-relay/transport/discovery.js.map +1 -1
  19. package/dist/src/circuit-relay/transport/index.d.ts +3 -0
  20. package/dist/src/circuit-relay/transport/index.d.ts.map +1 -1
  21. package/dist/src/circuit-relay/transport/index.js +6 -2
  22. package/dist/src/circuit-relay/transport/index.js.map +1 -1
  23. package/dist/src/circuit-relay/transport/listener.d.ts +3 -0
  24. package/dist/src/circuit-relay/transport/listener.d.ts.map +1 -1
  25. package/dist/src/circuit-relay/transport/listener.js +5 -4
  26. package/dist/src/circuit-relay/transport/listener.js.map +1 -1
  27. package/dist/src/circuit-relay/transport/reservation-store.d.ts +4 -1
  28. package/dist/src/circuit-relay/transport/reservation-store.d.ts.map +1 -1
  29. package/dist/src/circuit-relay/transport/reservation-store.js +11 -6
  30. package/dist/src/circuit-relay/transport/reservation-store.js.map +1 -1
  31. package/dist/src/circuit-relay/utils.d.ts.map +1 -1
  32. package/dist/src/circuit-relay/utils.js +3 -1
  33. package/dist/src/circuit-relay/utils.js.map +1 -1
  34. package/dist/src/components.d.ts +7 -69
  35. package/dist/src/components.d.ts.map +1 -1
  36. package/dist/src/components.js +60 -174
  37. package/dist/src/components.js.map +1 -1
  38. package/dist/src/config/connection-gater.browser.d.ts +8 -0
  39. package/dist/src/config/connection-gater.browser.d.ts.map +1 -0
  40. package/dist/src/config/connection-gater.browser.js +27 -0
  41. package/dist/src/config/connection-gater.browser.js.map +1 -0
  42. package/dist/src/config/connection-gater.d.ts +6 -0
  43. package/dist/src/config/connection-gater.d.ts.map +1 -0
  44. package/dist/src/config/connection-gater.js +18 -0
  45. package/dist/src/config/connection-gater.js.map +1 -0
  46. package/dist/src/config.d.ts +2 -1
  47. package/dist/src/config.d.ts.map +1 -1
  48. package/dist/src/config.js +0 -71
  49. package/dist/src/config.js.map +1 -1
  50. package/dist/src/connection-manager/auto-dial.d.ts +39 -0
  51. package/dist/src/connection-manager/auto-dial.d.ts.map +1 -0
  52. package/dist/src/connection-manager/auto-dial.js +136 -0
  53. package/dist/src/connection-manager/auto-dial.js.map +1 -0
  54. package/dist/src/connection-manager/connection-pruner.d.ts +32 -0
  55. package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -0
  56. package/dist/src/connection-manager/connection-pruner.js +111 -0
  57. package/dist/src/connection-manager/connection-pruner.js.map +1 -0
  58. package/dist/src/connection-manager/constants.d.ts +49 -0
  59. package/dist/src/connection-manager/constants.d.ts.map +1 -0
  60. package/dist/src/connection-manager/constants.js +49 -0
  61. package/dist/src/connection-manager/constants.js.map +1 -0
  62. package/dist/src/connection-manager/dial-queue.d.ts +78 -0
  63. package/dist/src/connection-manager/dial-queue.d.ts.map +1 -0
  64. package/dist/src/connection-manager/dial-queue.js +372 -0
  65. package/dist/src/connection-manager/dial-queue.js.map +1 -0
  66. package/dist/src/connection-manager/index.d.ts +70 -73
  67. package/dist/src/connection-manager/index.d.ts.map +1 -1
  68. package/dist/src/connection-manager/index.js +118 -247
  69. package/dist/src/connection-manager/index.js.map +1 -1
  70. package/dist/src/connection-manager/utils.d.ts +9 -0
  71. package/dist/src/connection-manager/utils.d.ts.map +1 -0
  72. package/dist/src/connection-manager/utils.js +66 -0
  73. package/dist/src/connection-manager/utils.js.map +1 -0
  74. package/dist/src/content-routing/index.d.ts +0 -10
  75. package/dist/src/content-routing/index.d.ts.map +1 -1
  76. package/dist/src/content-routing/index.js +7 -42
  77. package/dist/src/content-routing/index.js.map +1 -1
  78. package/dist/src/content-routing/utils.d.ts.map +1 -1
  79. package/dist/src/content-routing/utils.js +3 -1
  80. package/dist/src/content-routing/utils.js.map +1 -1
  81. package/dist/src/fetch/index.d.ts +13 -35
  82. package/dist/src/fetch/index.d.ts.map +1 -1
  83. package/dist/src/fetch/index.js +10 -12
  84. package/dist/src/fetch/index.js.map +1 -1
  85. package/dist/src/identify/index.d.ts +16 -48
  86. package/dist/src/identify/index.d.ts.map +1 -1
  87. package/dist/src/identify/index.js +203 -201
  88. package/dist/src/identify/index.js.map +1 -1
  89. package/dist/src/index.d.ts +11 -67
  90. package/dist/src/index.d.ts.map +1 -1
  91. package/dist/src/index.js.map +1 -1
  92. package/dist/src/insecure/index.d.ts.map +1 -1
  93. package/dist/src/insecure/index.js +3 -1
  94. package/dist/src/insecure/index.js.map +1 -1
  95. package/dist/src/libp2p.d.ts +12 -35
  96. package/dist/src/libp2p.d.ts.map +1 -1
  97. package/dist/src/libp2p.js +141 -206
  98. package/dist/src/libp2p.js.map +1 -1
  99. package/dist/src/peer-routing.d.ts +1 -38
  100. package/dist/src/peer-routing.d.ts.map +1 -1
  101. package/dist/src/peer-routing.js +0 -59
  102. package/dist/src/peer-routing.js.map +1 -1
  103. package/dist/src/ping/constants.d.ts +4 -0
  104. package/dist/src/ping/constants.d.ts.map +1 -1
  105. package/dist/src/ping/constants.js +10 -0
  106. package/dist/src/ping/constants.js.map +1 -1
  107. package/dist/src/ping/index.d.ts +10 -27
  108. package/dist/src/ping/index.d.ts.map +1 -1
  109. package/dist/src/ping/index.js +18 -21
  110. package/dist/src/ping/index.js.map +1 -1
  111. package/dist/src/registrar.d.ts +5 -2
  112. package/dist/src/registrar.d.ts.map +1 -1
  113. package/dist/src/registrar.js +27 -25
  114. package/dist/src/registrar.js.map +1 -1
  115. package/dist/src/transport-manager.d.ts +15 -4
  116. package/dist/src/transport-manager.d.ts.map +1 -1
  117. package/dist/src/transport-manager.js +37 -12
  118. package/dist/src/transport-manager.js.map +1 -1
  119. package/dist/src/upgrader.d.ts +16 -11
  120. package/dist/src/upgrader.d.ts.map +1 -1
  121. package/dist/src/upgrader.js +38 -47
  122. package/dist/src/upgrader.js.map +1 -1
  123. package/dist/src/upnp-nat/index.d.ts +42 -0
  124. package/dist/src/upnp-nat/index.d.ts.map +1 -0
  125. package/dist/src/{nat-manager.js → upnp-nat/index.js} +11 -7
  126. package/dist/src/upnp-nat/index.js.map +1 -0
  127. package/package.json +70 -54
  128. package/src/address-manager/index.ts +12 -8
  129. package/src/autonat/index.ts +20 -22
  130. package/src/circuit-relay/server/advert-service.ts +2 -2
  131. package/src/circuit-relay/server/index.ts +7 -3
  132. package/src/circuit-relay/transport/discovery.ts +3 -1
  133. package/src/circuit-relay/transport/index.ts +10 -2
  134. package/src/circuit-relay/transport/listener.ts +8 -4
  135. package/src/circuit-relay/transport/reservation-store.ts +15 -7
  136. package/src/circuit-relay/utils.ts +3 -1
  137. package/src/components.ts +72 -251
  138. package/src/config/connection-gater.browser.ts +31 -0
  139. package/src/config/connection-gater.ts +19 -0
  140. package/src/config.ts +3 -73
  141. package/src/connection-manager/auto-dial.ts +189 -0
  142. package/src/connection-manager/connection-pruner.ts +157 -0
  143. package/src/connection-manager/constants.ts +60 -0
  144. package/src/connection-manager/dial-queue.ts +506 -0
  145. package/src/connection-manager/index.ts +194 -339
  146. package/src/connection-manager/utils.ts +76 -0
  147. package/src/content-routing/index.ts +7 -55
  148. package/src/content-routing/utils.ts +3 -1
  149. package/src/fetch/index.ts +55 -18
  150. package/src/identify/index.ts +238 -228
  151. package/src/index.ts +12 -76
  152. package/src/insecure/index.ts +9 -5
  153. package/src/libp2p.ts +146 -265
  154. package/src/peer-routing.ts +1 -101
  155. package/src/ping/constants.ts +11 -0
  156. package/src/ping/index.ts +32 -28
  157. package/src/registrar.ts +31 -27
  158. package/src/transport-manager.ts +49 -15
  159. package/src/upgrader.ts +62 -57
  160. package/src/{nat-manager.ts → upnp-nat/index.ts} +15 -16
  161. package/src/version.ts +1 -1
  162. package/dist/src/connection-manager/auto-dialler.d.ts +0 -42
  163. package/dist/src/connection-manager/auto-dialler.d.ts.map +0 -1
  164. package/dist/src/connection-manager/auto-dialler.js +0 -105
  165. package/dist/src/connection-manager/auto-dialler.js.map +0 -1
  166. package/dist/src/connection-manager/dialer/dial-request.d.ts +0 -27
  167. package/dist/src/connection-manager/dialer/dial-request.d.ts.map +0 -1
  168. package/dist/src/connection-manager/dialer/dial-request.js +0 -114
  169. package/dist/src/connection-manager/dialer/dial-request.js.map +0 -1
  170. package/dist/src/connection-manager/dialer/index.d.ts +0 -121
  171. package/dist/src/connection-manager/dialer/index.d.ts.map +0 -1
  172. package/dist/src/connection-manager/dialer/index.js +0 -324
  173. package/dist/src/connection-manager/dialer/index.js.map +0 -1
  174. package/dist/src/connection-manager/latency-monitor.d.ts +0 -120
  175. package/dist/src/connection-manager/latency-monitor.d.ts.map +0 -1
  176. package/dist/src/connection-manager/latency-monitor.js +0 -220
  177. package/dist/src/connection-manager/latency-monitor.js.map +0 -1
  178. package/dist/src/connection-manager/visibility-change-emitter.d.ts +0 -66
  179. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +0 -1
  180. package/dist/src/connection-manager/visibility-change-emitter.js +0 -118
  181. package/dist/src/connection-manager/visibility-change-emitter.js.map +0 -1
  182. package/dist/src/constants.d.ts +0 -27
  183. package/dist/src/constants.d.ts.map +0 -1
  184. package/dist/src/constants.js +0 -31
  185. package/dist/src/constants.js.map +0 -1
  186. package/dist/src/dht/dht-content-routing.d.ts +0 -17
  187. package/dist/src/dht/dht-content-routing.d.ts.map +0 -1
  188. package/dist/src/dht/dht-content-routing.js +0 -32
  189. package/dist/src/dht/dht-content-routing.js.map +0 -1
  190. package/dist/src/dht/dht-peer-routing.d.ts +0 -15
  191. package/dist/src/dht/dht-peer-routing.d.ts.map +0 -1
  192. package/dist/src/dht/dht-peer-routing.js +0 -26
  193. package/dist/src/dht/dht-peer-routing.js.map +0 -1
  194. package/dist/src/dht/dummy-dht.d.ts +0 -20
  195. package/dist/src/dht/dummy-dht.d.ts.map +0 -1
  196. package/dist/src/dht/dummy-dht.js +0 -46
  197. package/dist/src/dht/dummy-dht.js.map +0 -1
  198. package/dist/src/nat-manager.d.ts +0 -74
  199. package/dist/src/nat-manager.d.ts.map +0 -1
  200. package/dist/src/nat-manager.js.map +0 -1
  201. package/dist/src/peer-record-updater.d.ts +0 -24
  202. package/dist/src/peer-record-updater.d.ts.map +0 -1
  203. package/dist/src/peer-record-updater.js +0 -44
  204. package/dist/src/peer-record-updater.js.map +0 -1
  205. package/dist/typedoc-urls.json +0 -41
  206. package/src/connection-manager/auto-dialler.ts +0 -158
  207. package/src/connection-manager/dialer/dial-request.ts +0 -144
  208. package/src/connection-manager/dialer/index.ts +0 -461
  209. package/src/connection-manager/latency-monitor.ts +0 -319
  210. package/src/connection-manager/visibility-change-emitter.ts +0 -135
  211. package/src/constants.ts +0 -36
  212. package/src/dht/dht-content-routing.ts +0 -44
  213. package/src/dht/dht-peer-routing.ts +0 -36
  214. package/src/dht/dummy-dht.ts +0 -60
  215. package/src/peer-record-updater.ts +0 -65
@@ -1,6 +1,17 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _Libp2pNode_instances, _Libp2pNode_started, _Libp2pNode_onDiscoveryPeer;
1
13
  import { logger } from '@libp2p/logger';
2
14
  import { EventEmitter, CustomEvent } from '@libp2p/interfaces/events';
3
- import { isStartable } from '@libp2p/interfaces/startable';
4
15
  import { isMultiaddr } from '@multiformats/multiaddr';
5
16
  import { MemoryDatastore } from 'datastore-core/memory';
6
17
  import { DefaultPeerRouting } from './peer-routing.js';
@@ -8,192 +19,157 @@ import { CompoundContentRouting } from './content-routing/index.js';
8
19
  import { codes } from './errors.js';
9
20
  import { DefaultAddressManager } from './address-manager/index.js';
10
21
  import { DefaultConnectionManager } from './connection-manager/index.js';
11
- import { AutoDialler } from './connection-manager/auto-dialler.js';
12
22
  import { DefaultKeyChain } from '@libp2p/keychain';
13
23
  import { DefaultTransportManager } from './transport-manager.js';
14
24
  import { DefaultUpgrader } from './upgrader.js';
15
25
  import { DefaultRegistrar } from './registrar.js';
16
- import { IdentifyService } from './identify/index.js';
17
- import { FetchService } from './fetch/index.js';
18
- import { PingService } from './ping/index.js';
19
- import { NatManager } from './nat-manager.js';
20
- import { PeerRecordUpdater } from './peer-record-updater.js';
21
- import { DHTPeerRouting } from './dht/dht-peer-routing.js';
22
26
  import { PersistentPeerStore } from '@libp2p/peer-store';
23
- import { DHTContentRouting } from './dht/dht-content-routing.js';
24
- import { AutonatService } from './autonat/index.js';
25
- import { DefaultComponents } from './components.js';
26
- import { validateConfig } from './config.js';
27
- import { createEd25519PeerId } from '@libp2p/peer-id-factory';
27
+ import { defaultComponents } from './components.js';
28
28
  import { concat as uint8ArrayConcat } from 'uint8arrays/concat';
29
29
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
30
30
  import { CodeError } from '@libp2p/interfaces/errors';
31
- import { unmarshalPublicKey } from '@libp2p/crypto/keys';
32
- import { DummyDHT } from './dht/dummy-dht.js';
33
- import { DummyPubSub } from './pubsub/dummy-pubsub.js';
34
31
  import { PeerSet } from '@libp2p/peer-collections';
35
- import { DefaultDialer } from './connection-manager/dialer/index.js';
32
+ import { setMaxListeners } from 'events';
33
+ import { unmarshalPublicKey } from '@libp2p/crypto/keys';
36
34
  import { peerIdFromString } from '@libp2p/peer-id';
37
35
  import mergeOptions from 'merge-options';
36
+ import { createEd25519PeerId } from '@libp2p/peer-id-factory';
37
+ import { validateConfig } from './config.js';
38
+ import { contentRouting } from '@libp2p/interface-content-routing';
39
+ import { peerRouting } from '@libp2p/interface-peer-routing';
40
+ import { peerDiscovery } from '@libp2p/interface-peer-discovery';
41
+ import { connectionGater } from './config/connection-gater.js';
38
42
  const log = logger('libp2p');
39
43
  export class Libp2pNode extends EventEmitter {
40
44
  constructor(init) {
41
45
  super();
42
- this.started = false;
46
+ _Libp2pNode_instances.add(this);
47
+ _Libp2pNode_started.set(this, void 0);
48
+ // event bus - components can listen to this emitter to be notified of system events
49
+ // and also cause them to be emitted
50
+ const events = new EventEmitter();
51
+ const originalDispatch = events.dispatchEvent.bind(events);
52
+ events.dispatchEvent = (evt) => {
53
+ const internalResult = originalDispatch(evt);
54
+ const externalResult = this.dispatchEvent(new CustomEvent(evt.type, { detail: evt.detail }));
55
+ return internalResult || externalResult;
56
+ };
57
+ try {
58
+ // This emitter gets listened to a lot
59
+ setMaxListeners?.(Infinity, events);
60
+ }
61
+ catch { }
62
+ __classPrivateFieldSet(this, _Libp2pNode_started, false, "f");
43
63
  this.peerId = init.peerId;
44
- const components = this.components = new DefaultComponents({
64
+ // @ts-expect-error {} may not be of type T
65
+ this.services = {};
66
+ const components = this.components = defaultComponents({
45
67
  peerId: init.peerId,
68
+ events,
46
69
  datastore: init.datastore ?? new MemoryDatastore(),
47
- connectionGater: {
48
- denyDialPeer: async () => await Promise.resolve(false),
49
- denyDialMultiaddr: async () => await Promise.resolve(false),
50
- denyInboundConnection: async () => await Promise.resolve(false),
51
- denyOutboundConnection: async () => await Promise.resolve(false),
52
- denyInboundEncryptedConnection: async () => await Promise.resolve(false),
53
- denyOutboundEncryptedConnection: async () => await Promise.resolve(false),
54
- denyInboundUpgradedConnection: async () => await Promise.resolve(false),
55
- denyOutboundUpgradedConnection: async () => await Promise.resolve(false),
56
- filterMultiaddrForPeer: async () => await Promise.resolve(true),
57
- ...init.connectionGater
58
- }
70
+ connectionGater: connectionGater(init.connectionGater)
59
71
  });
60
- components.peerStore = new PersistentPeerStore(components, {
72
+ this.peerStore = this.configureComponent('peerStore', new PersistentPeerStore(components, {
61
73
  addressFilter: this.components.connectionGater.filterMultiaddrForPeer,
62
74
  ...init.peerStore
63
- });
64
- this.services = [
65
- components
66
- ];
75
+ }));
67
76
  // Create Metrics
68
77
  if (init.metrics != null) {
69
- this.metrics = this.components.metrics = this.configureComponent(init.metrics(this.components));
78
+ this.metrics = this.configureComponent('metrics', init.metrics(this.components));
70
79
  }
71
- this.peerStore = this.components.peerStore;
72
- this.peerStore.addEventListener('peer', evt => {
73
- const { detail: peerData } = evt;
74
- this.dispatchEvent(new CustomEvent('peer:discovery', { detail: peerData }));
80
+ components.events.addEventListener('peer:update', evt => {
81
+ // if there was no peer previously in the peer store this is a new peer
82
+ if (evt.detail.previous == null) {
83
+ this.safeDispatchEvent('peer:discovery', { detail: evt.detail.peer });
84
+ }
75
85
  });
76
86
  // Set up connection protector if configured
77
87
  if (init.connectionProtector != null) {
78
- this.components.connectionProtector = init.connectionProtector(components);
88
+ this.configureComponent('connectionProtector', init.connectionProtector(components));
79
89
  }
80
90
  // Set up the Upgrader
81
91
  this.components.upgrader = new DefaultUpgrader(this.components, {
82
- connectionEncryption: (init.connectionEncryption ?? []).map(fn => this.configureComponent(fn(this.components))),
83
- muxers: (init.streamMuxers ?? []).map(fn => this.configureComponent(fn(this.components))),
92
+ connectionEncryption: (init.connectionEncryption ?? []).map((fn, index) => this.configureComponent(`connection-encryption-${index}`, fn(this.components))),
93
+ muxers: (init.streamMuxers ?? []).map((fn, index) => this.configureComponent(`stream-muxers-${index}`, fn(this.components))),
84
94
  inboundUpgradeTimeout: init.connectionManager.inboundUpgradeTimeout
85
95
  });
86
- // Create the dialer
87
- this.components.dialer = new DefaultDialer(this.components, init.connectionManager);
96
+ // Setup the transport manager
97
+ this.configureComponent('transportManager', new DefaultTransportManager(this.components, init.transportManager));
88
98
  // Create the Connection Manager
89
- this.connectionManager = this.components.connectionManager = new DefaultConnectionManager(this.components, init.connectionManager);
90
- // forward connection manager events
91
- this.components.connectionManager.addEventListener('peer:disconnect', (event) => {
92
- this.dispatchEvent(new CustomEvent('peer:disconnect', { detail: event.detail }));
93
- });
94
- this.components.connectionManager.addEventListener('peer:connect', (event) => {
95
- this.dispatchEvent(new CustomEvent('peer:connect', { detail: event.detail }));
96
- });
99
+ this.configureComponent('connectionManager', new DefaultConnectionManager(this.components, init.connectionManager));
97
100
  // Create the Registrar
98
- this.registrar = this.components.registrar = new DefaultRegistrar(this.components);
99
- // Setup the transport manager
100
- this.components.transportManager = new DefaultTransportManager(this.components, init.transportManager);
101
+ this.configureComponent('registrar', new DefaultRegistrar(this.components));
101
102
  // Addresses {listen, announce, noAnnounce}
102
- this.components.addressManager = new DefaultAddressManager(this.components, init.addresses);
103
- // update our peer record when addresses change
104
- this.configureComponent(new PeerRecordUpdater(this.components));
103
+ this.configureComponent('addressManager', new DefaultAddressManager(this.components, init.addresses));
105
104
  // Create keychain
106
105
  const keychainOpts = DefaultKeyChain.generateOptions();
107
- this.keychain = this.configureComponent(new DefaultKeyChain(this.components, {
106
+ this.keychain = this.configureComponent('keyChain', new DefaultKeyChain(this.components, {
108
107
  ...keychainOpts,
109
108
  ...init.keychain
110
109
  }));
111
- // Create the Nat Manager
112
- this.services.push(new NatManager(this.components, init.nat));
113
- // Add the identify service
114
- this.identifyService = new IdentifyService(this.components, {
115
- ...init.identify
116
- });
117
- this.configureComponent(this.identifyService);
118
- // dht provided components (peerRouting, contentRouting, dht)
119
- if (init.dht != null) {
120
- this.dht = this.components.dht = init.dht(this.components);
121
- }
122
- else {
123
- this.dht = new DummyDHT();
124
- }
125
- // Create pubsub if provided
126
- if (init.pubsub != null) {
127
- this.pubsub = this.components.pubsub = init.pubsub(this.components);
128
- }
129
- else {
130
- this.pubsub = new DummyPubSub();
131
- }
132
- // Attach remaining APIs
133
- // peer and content routing will automatically get modules from _modules and _dht
134
- const peerRouters = (init.peerRouters ?? []).map(fn => this.configureComponent(fn(this.components)));
135
- if (init.dht != null) {
136
- // add dht to routers
137
- peerRouters.push(this.configureComponent(new DHTPeerRouting(this.dht)));
138
- // use dht for peer discovery
139
- this.dht.addEventListener('peer', (evt) => {
140
- this.onDiscoveryPeer(evt);
141
- });
142
- }
143
- this.peerRouting = this.components.peerRouting = this.configureComponent(new DefaultPeerRouting(this.components, {
144
- ...init.peerRouting,
110
+ // Peer routers
111
+ const peerRouters = (init.peerRouters ?? []).map((fn, index) => this.configureComponent(`peer-router-${index}`, fn(this.components)));
112
+ this.peerRouting = this.components.peerRouting = this.configureComponent('peerRouting', new DefaultPeerRouting(this.components, {
145
113
  routers: peerRouters
146
114
  }));
147
- const contentRouters = (init.contentRouters ?? []).map(fn => this.configureComponent(fn(this.components)));
148
- if (init.dht != null) {
149
- // add dht to routers
150
- contentRouters.push(this.configureComponent(new DHTContentRouting(this.dht)));
151
- }
152
- this.contentRouting = this.components.contentRouting = this.configureComponent(new CompoundContentRouting(this.components, {
115
+ // Content routers
116
+ const contentRouters = (init.contentRouters ?? []).map((fn, index) => this.configureComponent(`content-router-${index}`, fn(this.components)));
117
+ this.contentRouting = this.components.contentRouting = this.configureComponent('contentRouting', new CompoundContentRouting(this.components, {
153
118
  routers: contentRouters
154
119
  }));
155
- this.fetchService = this.configureComponent(new FetchService(this.components, {
156
- ...init.fetch
157
- }));
158
- this.pingService = this.configureComponent(new PingService(this.components, {
159
- ...init.ping
160
- }));
161
- this.autonatService = this.configureComponent(new AutonatService(this.components, {
162
- ...init.autonat
163
- }));
164
- this.configureComponent(new AutoDialler(this.components, {
165
- minConnections: init.connectionManager.minConnections,
166
- autoDialInterval: init.connectionManager.autoDialInterval
167
- }));
168
- if (init.relay != null) {
169
- this.circuitService = this.configureComponent(init.relay(this.components));
170
- }
171
- // Discovery modules
172
- for (const fn of init.peerDiscovery ?? []) {
173
- const service = this.configureComponent(fn(this.components));
120
+ (init.peerDiscovery ?? []).forEach((fn, index) => {
121
+ const service = this.configureComponent(`peer-discovery-${index}`, fn(this.components));
174
122
  service.addEventListener('peer', (evt) => {
175
- this.onDiscoveryPeer(evt);
123
+ __classPrivateFieldGet(this, _Libp2pNode_instances, "m", _Libp2pNode_onDiscoveryPeer).call(this, evt);
176
124
  });
177
- }
125
+ });
178
126
  // Transport modules
179
- init.transports.forEach((fn) => {
180
- this.components.transportManager.add(this.configureComponent(fn(this.components)));
127
+ init.transports.forEach((fn, index) => {
128
+ this.components.transportManager.add(this.configureComponent(`transport-${index}`, fn(this.components)));
181
129
  });
130
+ // User defined modules
131
+ if (init.services != null) {
132
+ for (const name of Object.keys(init.services)) {
133
+ const createService = init.services[name];
134
+ const service = createService(this.components);
135
+ if (service == null) {
136
+ log.error('service factory %s returned null or undefined instance', name);
137
+ continue;
138
+ }
139
+ this.services[name] = service;
140
+ this.configureComponent(name, service);
141
+ if (service[contentRouting] != null) {
142
+ log('registering service %s for content routing', name);
143
+ contentRouters.push(service[contentRouting]);
144
+ }
145
+ if (service[peerRouting] != null) {
146
+ log('registering service %s for peer routing', name);
147
+ peerRouters.push(service[peerRouting]);
148
+ }
149
+ if (service[peerDiscovery] != null) {
150
+ log('registering service %s for peer discovery', name);
151
+ service[peerDiscovery].addEventListener('peer', (evt) => {
152
+ __classPrivateFieldGet(this, _Libp2pNode_instances, "m", _Libp2pNode_onDiscoveryPeer).call(this, evt);
153
+ });
154
+ }
155
+ }
156
+ }
182
157
  }
183
- configureComponent(component) {
184
- if (isStartable(component)) {
185
- this.services.push(component);
158
+ configureComponent(name, component) {
159
+ if (component == null) {
160
+ log.error('component %s was null or undefined', name);
186
161
  }
162
+ this.components[name] = component;
187
163
  return component;
188
164
  }
189
165
  /**
190
166
  * Starts the libp2p node and all its subsystems
191
167
  */
192
168
  async start() {
193
- if (this.started) {
169
+ if (__classPrivateFieldGet(this, _Libp2pNode_started, "f")) {
194
170
  return;
195
171
  }
196
- this.started = true;
172
+ __classPrivateFieldSet(this, _Libp2pNode_started, true, "f");
197
173
  log('libp2p is starting');
198
174
  const keys = await this.keychain.listKeys();
199
175
  if (keys.find(key => key.name === 'self') == null) {
@@ -201,18 +177,9 @@ export class Libp2pNode extends EventEmitter {
201
177
  await this.keychain.importPeer('self', this.components.peerId);
202
178
  }
203
179
  try {
204
- await Promise.all(this.services.map(async (service) => {
205
- if (service.beforeStart != null) {
206
- await service.beforeStart();
207
- }
208
- }));
209
- // start any startables
210
- await Promise.all(this.services.map(async (service) => { await service.start(); }));
211
- await Promise.all(this.services.map(async (service) => {
212
- if (service.afterStart != null) {
213
- await service.afterStart();
214
- }
215
- }));
180
+ await this.components.beforeStart?.();
181
+ await this.components.start();
182
+ await this.components.afterStart?.();
216
183
  log('libp2p has started');
217
184
  }
218
185
  catch (err) {
@@ -225,30 +192,25 @@ export class Libp2pNode extends EventEmitter {
225
192
  * Stop the libp2p node by closing its listeners and open connections
226
193
  */
227
194
  async stop() {
228
- if (!this.started) {
195
+ if (!__classPrivateFieldGet(this, _Libp2pNode_started, "f")) {
229
196
  return;
230
197
  }
231
198
  log('libp2p is stopping');
232
- this.started = false;
233
- await Promise.all(this.services.map(async (service) => {
234
- if (service.beforeStop != null) {
235
- await service.beforeStop();
236
- }
237
- }));
238
- await Promise.all(this.services.map(async (service) => { await service.stop(); }));
239
- await Promise.all(this.services.map(async (service) => {
240
- if (service.afterStop != null) {
241
- await service.afterStop();
242
- }
243
- }));
199
+ __classPrivateFieldSet(this, _Libp2pNode_started, false, "f");
200
+ await this.components.beforeStop?.();
201
+ await this.components.stop();
202
+ await this.components.afterStop?.();
244
203
  log('libp2p has stopped');
245
204
  }
246
205
  isStarted() {
247
- return this.started;
206
+ return __classPrivateFieldGet(this, _Libp2pNode_started, "f");
248
207
  }
249
208
  getConnections(peerId) {
250
209
  return this.components.connectionManager.getConnections(peerId);
251
210
  }
211
+ getDialQueue() {
212
+ return this.components.connectionManager.getDialQueue();
213
+ }
252
214
  getPeers() {
253
215
  const peerSet = new PeerSet();
254
216
  for (const conn of this.components.connectionManager.getConnections()) {
@@ -257,7 +219,6 @@ export class Libp2pNode extends EventEmitter {
257
219
  return Array.from(peerSet);
258
220
  }
259
221
  async dial(peer, options = {}) {
260
- // @ts-expect-error
261
222
  return await this.components.connectionManager.openConnection(peer, options);
262
223
  }
263
224
  async dialProtocol(peer, protocols, options = {}) {
@@ -292,41 +253,21 @@ export class Libp2pNode extends EventEmitter {
292
253
  return peer.publicKey;
293
254
  }
294
255
  const peerInfo = await this.peerStore.get(peer);
295
- if (peerInfo.pubKey != null) {
296
- return peerInfo.pubKey;
297
- }
298
- if (this.dht == null) {
299
- throw new CodeError('Public key was not in the peer store and the DHT is not enabled', codes.ERR_NO_ROUTERS_AVAILABLE);
256
+ if (peerInfo.id.publicKey != null) {
257
+ return peerInfo.id.publicKey;
300
258
  }
301
259
  const peerKey = uint8ArrayConcat([
302
260
  uint8ArrayFromString('/pk/'),
303
261
  peer.multihash.digest
304
262
  ]);
305
- // search the dht
306
- for await (const event of this.dht.get(peerKey, options)) {
307
- if (event.name === 'VALUE') {
308
- const key = unmarshalPublicKey(event.value);
309
- await this.peerStore.keyBook.set(peer, event.value);
310
- return key.bytes;
311
- }
312
- }
313
- throw new CodeError(`Node not responding with its public key: ${peer.toString()}`, codes.ERR_INVALID_RECORD);
314
- }
315
- async fetch(peer, key, options = {}) {
316
- if (isMultiaddr(peer)) {
317
- const peerId = peerIdFromString(peer.getPeerId() ?? '');
318
- await this.components.peerStore.addressBook.add(peerId, [peer]);
319
- peer = peerId;
320
- }
321
- return await this.fetchService.fetch(peer, key, options);
322
- }
323
- async ping(peer, options = {}) {
324
- if (isMultiaddr(peer)) {
325
- const peerId = peerIdFromString(peer.getPeerId() ?? '');
326
- await this.components.peerStore.addressBook.add(peerId, [peer]);
327
- peer = peerId;
328
- }
329
- return await this.pingService.ping(peer, options);
263
+ // search any available content routing methods
264
+ const bytes = await this.contentRouting.get(peerKey, options);
265
+ // ensure the returned key is valid
266
+ unmarshalPublicKey(bytes);
267
+ await this.peerStore.patch(peer, {
268
+ publicKey: bytes
269
+ });
270
+ return bytes;
330
271
  }
331
272
  async handle(protocols, handler, options) {
332
273
  if (!Array.isArray(protocols)) {
@@ -345,30 +286,24 @@ export class Libp2pNode extends EventEmitter {
345
286
  }));
346
287
  }
347
288
  async register(protocol, topology) {
348
- return await this.registrar.register(protocol, topology);
289
+ return await this.components.registrar.register(protocol, topology);
349
290
  }
350
291
  unregister(id) {
351
- this.registrar.unregister(id);
352
- }
353
- /**
354
- * Called whenever peer discovery services emit `peer` events.
355
- * Known peers may be emitted.
356
- */
357
- onDiscoveryPeer(evt) {
358
- const { detail: peer } = evt;
359
- if (peer.id.toString() === this.peerId.toString()) {
360
- log.error(new Error(codes.ERR_DISCOVERED_SELF));
361
- return;
362
- }
363
- if (peer.multiaddrs.length > 0) {
364
- void this.components.peerStore.addressBook.add(peer.id, peer.multiaddrs).catch(err => { log.error(err); });
365
- }
366
- if (peer.protocols.length > 0) {
367
- void this.components.peerStore.protoBook.set(peer.id, peer.protocols).catch(err => { log.error(err); });
368
- }
369
- this.dispatchEvent(new CustomEvent('peer:discovery', { detail: peer }));
292
+ this.components.registrar.unregister(id);
370
293
  }
371
294
  }
295
+ _Libp2pNode_started = new WeakMap(), _Libp2pNode_instances = new WeakSet(), _Libp2pNode_onDiscoveryPeer = function _Libp2pNode_onDiscoveryPeer(evt) {
296
+ const { detail: peer } = evt;
297
+ if (peer.id.toString() === this.peerId.toString()) {
298
+ log.error(new Error(codes.ERR_DISCOVERED_SELF));
299
+ return;
300
+ }
301
+ void this.components.peerStore.merge(peer.id, {
302
+ multiaddrs: peer.multiaddrs,
303
+ protocols: peer.protocols
304
+ })
305
+ .catch(err => { log.error(err); });
306
+ };
372
307
  /**
373
308
  * Returns a new Libp2pNode instance - this exposes more of the internals than the
374
309
  * libp2p interface and is useful for testing and debugging.
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}
@@ -1,56 +1,19 @@
1
1
  import type { PeerId } from '@libp2p/interface-peer-id';
2
2
  import type { PeerRouting } from '@libp2p/interface-peer-routing';
3
3
  import type { AbortOptions } from '@libp2p/interfaces';
4
- import type { Startable } from '@libp2p/interfaces/startable';
5
4
  import type { PeerInfo } from '@libp2p/interface-peer-info';
6
5
  import type { PeerStore } from '@libp2p/interface-peer-store';
7
- export interface RefreshManagerInit {
8
- /**
9
- * Whether to enable the Refresh manager
10
- */
11
- enabled?: boolean;
12
- /**
13
- * Boot delay to start the Refresh Manager (in ms)
14
- */
15
- bootDelay?: number;
16
- /**
17
- * Interval between each Refresh Manager run (in ms)
18
- */
19
- interval?: number;
20
- /**
21
- * How long to let each refresh run (in ms)
22
- */
23
- timeout?: number;
24
- }
25
6
  export interface PeerRoutingInit {
26
7
  routers?: PeerRouting[];
27
- refreshManager?: RefreshManagerInit;
28
8
  }
29
9
  export interface DefaultPeerRoutingComponents {
30
10
  peerId: PeerId;
31
11
  peerStore: PeerStore;
32
12
  }
33
- export declare class DefaultPeerRouting implements PeerRouting, Startable {
13
+ export declare class DefaultPeerRouting implements PeerRouting {
34
14
  private readonly components;
35
15
  private readonly routers;
36
- private readonly refreshManagerInit;
37
- private timeoutId?;
38
- private started;
39
- private abortController?;
40
16
  constructor(components: DefaultPeerRoutingComponents, init: PeerRoutingInit);
41
- isStarted(): boolean;
42
- /**
43
- * Start peer routing service.
44
- */
45
- start(): Promise<void>;
46
- /**
47
- * Recurrent task to find closest peers and add their addresses to the Address Book.
48
- */
49
- _findClosestPeersTask(): Promise<void>;
50
- /**
51
- * Stop peer routing service.
52
- */
53
- stop(): Promise<void>;
54
17
  /**
55
18
  * Iterates over all peer routers in parallel to find the given peer
56
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"peer-routing.d.ts","sourceRoot":"","sources":["../../src/peer-routing.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAI7D,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;IACvB,cAAc,CAAC,EAAE,kBAAkB,CAAA;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,qBAAa,kBAAmB,YAAW,WAAW,EAAE,SAAS;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,SAAS,CAAC,CAA+B;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAC,CAAmB;gBAE9B,UAAU,EAAE,4BAA4B,EAAE,IAAI,EAAE,eAAe;IAS5E,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAY7B;;OAEG;IACG,qBAAqB,IAAK,OAAO,CAAC,IAAI,CAAC;IA0B7C;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACG,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+BtE;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC;CAc3F"}
1
+ {"version":3,"file":"peer-routing.d.ts","sourceRoot":"","sources":["../../src/peer-routing.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAI7D,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAE1B,UAAU,EAAE,4BAA4B,EAAE,IAAI,EAAE,eAAe;IAK5E;;OAEG;IACG,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+BtE;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC;CAc3F"}