libp2p 0.39.5 → 0.40.0-030dbc8

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 (170) hide show
  1. package/README.md +14 -2
  2. package/dist/src/address-manager/index.d.ts +18 -2
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +19 -6
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/circuit/auto-relay.d.ts +2 -2
  7. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  8. package/dist/src/circuit/auto-relay.js +12 -12
  9. package/dist/src/circuit/auto-relay.js.map +1 -1
  10. package/dist/src/circuit/index.d.ts +13 -3
  11. package/dist/src/circuit/index.d.ts.map +1 -1
  12. package/dist/src/circuit/index.js +1 -1
  13. package/dist/src/circuit/index.js.map +1 -1
  14. package/dist/src/circuit/pb/index.d.ts.map +1 -1
  15. package/dist/src/circuit/pb/index.js +29 -34
  16. package/dist/src/circuit/pb/index.js.map +1 -1
  17. package/dist/src/circuit/transport.d.ts +22 -7
  18. package/dist/src/circuit/transport.d.ts.map +1 -1
  19. package/dist/src/circuit/transport.js +26 -17
  20. package/dist/src/circuit/transport.js.map +1 -1
  21. package/dist/src/components.d.ts +110 -0
  22. package/dist/src/components.d.ts.map +1 -0
  23. package/dist/src/components.js +199 -0
  24. package/dist/src/components.js.map +1 -0
  25. package/dist/src/config.d.ts.map +1 -1
  26. package/dist/src/config.js +0 -11
  27. package/dist/src/config.js.map +1 -1
  28. package/dist/src/connection-manager/auto-dialler.d.ts +9 -2
  29. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  30. package/dist/src/connection-manager/auto-dialler.js +6 -6
  31. package/dist/src/connection-manager/auto-dialler.js.map +1 -1
  32. package/dist/src/connection-manager/dialer/index.d.ts +12 -6
  33. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
  34. package/dist/src/connection-manager/dialer/index.js +12 -17
  35. package/dist/src/connection-manager/dialer/index.js.map +1 -1
  36. package/dist/src/connection-manager/index.d.ts +41 -17
  37. package/dist/src/connection-manager/index.d.ts.map +1 -1
  38. package/dist/src/connection-manager/index.js +80 -81
  39. package/dist/src/connection-manager/index.js.map +1 -1
  40. package/dist/src/content-routing/index.d.ts +7 -2
  41. package/dist/src/content-routing/index.d.ts.map +1 -1
  42. package/dist/src/content-routing/index.js +4 -4
  43. package/dist/src/content-routing/index.js.map +1 -1
  44. package/dist/src/content-routing/utils.d.ts +1 -1
  45. package/dist/src/content-routing/utils.d.ts.map +1 -1
  46. package/dist/src/errors.d.ts +2 -1
  47. package/dist/src/errors.d.ts.map +1 -1
  48. package/dist/src/errors.js +1 -0
  49. package/dist/src/errors.js.map +1 -1
  50. package/dist/src/fetch/index.d.ts +7 -3
  51. package/dist/src/fetch/index.d.ts.map +1 -1
  52. package/dist/src/fetch/index.js +18 -6
  53. package/dist/src/fetch/index.js.map +1 -1
  54. package/dist/src/fetch/pb/proto.d.ts.map +1 -1
  55. package/dist/src/fetch/pb/proto.js +24 -35
  56. package/dist/src/fetch/pb/proto.js.map +1 -1
  57. package/dist/src/identify/index.d.ts +13 -3
  58. package/dist/src/identify/index.d.ts.map +1 -1
  59. package/dist/src/identify/index.js +41 -41
  60. package/dist/src/identify/index.js.map +1 -1
  61. package/dist/src/identify/pb/message.d.ts.map +1 -1
  62. package/dist/src/identify/pb/message.js +23 -34
  63. package/dist/src/identify/pb/message.js.map +1 -1
  64. package/dist/src/index.d.ts +13 -12
  65. package/dist/src/index.d.ts.map +1 -1
  66. package/dist/src/index.js.map +1 -1
  67. package/dist/src/insecure/index.d.ts +2 -8
  68. package/dist/src/insecure/index.d.ts.map +1 -1
  69. package/dist/src/insecure/index.js +5 -3
  70. package/dist/src/insecure/index.js.map +1 -1
  71. package/dist/src/insecure/pb/proto.d.ts.map +1 -1
  72. package/dist/src/insecure/pb/proto.js +24 -29
  73. package/dist/src/insecure/pb/proto.js.map +1 -1
  74. package/dist/src/keychain/index.d.ts +6 -2
  75. package/dist/src/keychain/index.d.ts.map +1 -1
  76. package/dist/src/keychain/index.js +19 -19
  77. package/dist/src/keychain/index.js.map +1 -1
  78. package/dist/src/libp2p.d.ts +1 -2
  79. package/dist/src/libp2p.d.ts.map +1 -1
  80. package/dist/src/libp2p.js +49 -73
  81. package/dist/src/libp2p.js.map +1 -1
  82. package/dist/src/nat-manager.d.ts +9 -2
  83. package/dist/src/nat-manager.d.ts.map +1 -1
  84. package/dist/src/nat-manager.js +3 -3
  85. package/dist/src/nat-manager.js.map +1 -1
  86. package/dist/src/peer-record-updater.d.ts +11 -2
  87. package/dist/src/peer-record-updater.d.ts.map +1 -1
  88. package/dist/src/peer-record-updater.js +10 -10
  89. package/dist/src/peer-record-updater.js.map +1 -1
  90. package/dist/src/peer-routing.d.ts +6 -2
  91. package/dist/src/peer-routing.d.ts.map +1 -1
  92. package/dist/src/peer-routing.js +4 -4
  93. package/dist/src/peer-routing.js.map +1 -1
  94. package/dist/src/ping/index.d.ts +7 -3
  95. package/dist/src/ping/index.d.ts.map +1 -1
  96. package/dist/src/ping/index.js +3 -3
  97. package/dist/src/ping/index.js.map +1 -1
  98. package/dist/src/pnet/index.d.ts +2 -17
  99. package/dist/src/pnet/index.d.ts.map +1 -1
  100. package/dist/src/pnet/index.js +4 -1
  101. package/dist/src/pnet/index.js.map +1 -1
  102. package/dist/src/pubsub/dummy-pubsub.d.ts +2 -1
  103. package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -1
  104. package/dist/src/pubsub/dummy-pubsub.js +4 -0
  105. package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
  106. package/dist/src/registrar.d.ts +9 -3
  107. package/dist/src/registrar.d.ts.map +1 -1
  108. package/dist/src/registrar.js +6 -6
  109. package/dist/src/registrar.js.map +1 -1
  110. package/dist/src/transport-manager.d.ts +9 -3
  111. package/dist/src/transport-manager.d.ts.map +1 -1
  112. package/dist/src/transport-manager.js +5 -6
  113. package/dist/src/transport-manager.js.map +1 -1
  114. package/dist/src/upgrader.d.ts +17 -5
  115. package/dist/src/upgrader.d.ts.map +1 -1
  116. package/dist/src/upgrader.js +55 -75
  117. package/dist/src/upgrader.js.map +1 -1
  118. package/package.json +39 -40
  119. package/src/address-manager/index.ts +34 -10
  120. package/src/circuit/README.md +6 -6
  121. package/src/circuit/auto-relay.ts +15 -15
  122. package/src/circuit/index.ts +16 -5
  123. package/src/circuit/pb/index.ts +29 -35
  124. package/src/circuit/transport.ts +49 -20
  125. package/src/components.ts +332 -0
  126. package/src/config.ts +0 -11
  127. package/src/connection-manager/auto-dialler.ts +17 -9
  128. package/src/connection-manager/dialer/index.ts +26 -25
  129. package/src/connection-manager/index.ts +136 -93
  130. package/src/content-routing/index.ts +13 -7
  131. package/src/errors.ts +2 -1
  132. package/src/fetch/index.ts +28 -10
  133. package/src/fetch/pb/proto.ts +24 -35
  134. package/src/identify/index.ts +57 -53
  135. package/src/identify/pb/message.ts +23 -35
  136. package/src/index.ts +12 -11
  137. package/src/insecure/index.ts +6 -3
  138. package/src/insecure/pb/proto.ts +24 -29
  139. package/src/keychain/index.ts +27 -22
  140. package/src/libp2p.ts +50 -79
  141. package/src/nat-manager.ts +14 -6
  142. package/src/peer-record-updater.ts +23 -13
  143. package/src/peer-routing.ts +12 -7
  144. package/src/ping/index.ts +12 -7
  145. package/src/pnet/index.ts +5 -1
  146. package/src/pubsub/dummy-pubsub.ts +3 -1
  147. package/src/registrar.ts +17 -10
  148. package/src/transport-manager.ts +16 -10
  149. package/src/upgrader.ts +78 -87
  150. package/src/version.ts +1 -1
  151. package/dist/src/connection-manager/dialer/auto-dialer.d.ts +0 -16
  152. package/dist/src/connection-manager/dialer/auto-dialer.d.ts.map +0 -1
  153. package/dist/src/connection-manager/dialer/auto-dialer.js +0 -43
  154. package/dist/src/connection-manager/dialer/auto-dialer.js.map +0 -1
  155. package/dist/src/metrics/index.d.ts +0 -93
  156. package/dist/src/metrics/index.d.ts.map +0 -1
  157. package/dist/src/metrics/index.js +0 -234
  158. package/dist/src/metrics/index.js.map +0 -1
  159. package/dist/src/metrics/moving-average.d.ts +0 -14
  160. package/dist/src/metrics/moving-average.d.ts.map +0 -1
  161. package/dist/src/metrics/moving-average.js +0 -40
  162. package/dist/src/metrics/moving-average.js.map +0 -1
  163. package/dist/src/metrics/stats.d.ts +0 -87
  164. package/dist/src/metrics/stats.d.ts.map +0 -1
  165. package/dist/src/metrics/stats.js +0 -183
  166. package/dist/src/metrics/stats.js.map +0 -1
  167. package/src/connection-manager/dialer/auto-dialer.ts +0 -65
  168. package/src/metrics/index.ts +0 -311
  169. package/src/metrics/moving-average.ts +0 -53
  170. package/src/metrics/stats.ts +0 -238
@@ -1,14 +1,14 @@
1
1
  import type { Multiaddr, Resolver } from '@multiformats/multiaddr';
2
2
  import { TimeoutController } from 'timeout-abort-controller';
3
3
  import { DialRequest } from './dial-request.js';
4
- import type { Connection } from '@libp2p/interface-connection';
4
+ import type { Connection, ConnectionGater } from '@libp2p/interface-connection';
5
5
  import type { AbortOptions } from '@libp2p/interfaces';
6
6
  import type { Startable } from '@libp2p/interfaces/startable';
7
7
  import type { PeerId } from '@libp2p/interface-peer-id';
8
- import type { Components } from '@libp2p/components';
9
- import type { AddressSorter } from '@libp2p/interface-peer-store';
10
- import type { ComponentMetricsTracker } from '@libp2p/interface-metrics';
8
+ import type { AddressSorter, PeerStore } from '@libp2p/interface-peer-store';
9
+ import type { Metrics } from '@libp2p/interface-metrics';
11
10
  import type { Dialer } from '@libp2p/interface-connection-manager';
11
+ import type { TransportManager } from '@libp2p/interface-transport';
12
12
  export interface DialTarget {
13
13
  id: string;
14
14
  addrs: Multiaddr[];
@@ -48,7 +48,13 @@ export interface DialerInit {
48
48
  * Multiaddr resolvers to use when dialing
49
49
  */
50
50
  resolvers?: Record<string, Resolver>;
51
- metrics?: ComponentMetricsTracker;
51
+ }
52
+ export interface DefaultDialerComponents {
53
+ peerId: PeerId;
54
+ metrics?: Metrics;
55
+ peerStore: PeerStore;
56
+ transportManager: TransportManager;
57
+ connectionGater: ConnectionGater;
52
58
  }
53
59
  export declare class DefaultDialer implements Startable, Dialer {
54
60
  private readonly components;
@@ -60,7 +66,7 @@ export declare class DefaultDialer implements Startable, Dialer {
60
66
  pendingDials: Map<string, PendingDial>;
61
67
  pendingDialTargets: Map<string, PendingDialTarget>;
62
68
  private started;
63
- constructor(components: Components, init?: DialerInit);
69
+ constructor(components: DefaultDialerComponents, init?: DialerInit);
64
70
  isStarted(): boolean;
65
71
  start(): Promise<void>;
66
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAI5D,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAU3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAGvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAA;AAQlE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,iBAAiB,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAC7B,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAE7B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACpC,OAAO,CAAC,EAAE,uBAAuB,CAAA;CAClC;AAED,qBAAa,aAAc,YAAW,SAAS,EAAE,MAAM;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACjC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACtC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACzD,OAAO,CAAC,OAAO,CAAS;gBAEX,UAAU,EAAE,UAAU,EAAE,IAAI,GAAE,UAAe;IAwB1D,SAAS;IAIH,KAAK;IAIX;;OAEG;IACG,IAAI;IAkBV;;;;OAIG;IACG,IAAI,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CtF;;;;OAIG;IACG,4BAA4B,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAmB7F;;;;;OAKG;IACG,iBAAiB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAsClF;;OAEG;IACH,kBAAkB,CAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW;IAkDpF,SAAS,CAAE,GAAG,EAAE,MAAM;IAOtB,YAAY,CAAE,KAAK,EAAE,MAAM;IAU3B;;OAEG;IACG,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAwB3E;;OAEG;IACG,cAAc,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAUlF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,6 @@ import { getPeer } from '../../get-peer.js';
17
17
  import sort from 'it-sort';
18
18
  import map from 'it-map';
19
19
  const log = logger('libp2p:dialer');
20
- const METRICS_COMPONENT = 'dialler';
21
- const METRICS_PENDING_DIALS = 'pending-dials';
22
- const METRICS_PENDING_DIAL_TARGETS = 'pending-dial-targets';
23
20
  export class DefaultDialer {
24
21
  constructor(components, init = {}) {
25
22
  this.started = false;
@@ -30,14 +27,12 @@ export class DefaultDialer {
30
27
  this.tokens = [...new Array(init.maxParallelDials ?? MAX_PARALLEL_DIALS)].map((_, index) => index);
31
28
  this.components = components;
32
29
  this.pendingDials = trackedMap({
33
- component: METRICS_COMPONENT,
34
- metric: METRICS_PENDING_DIALS,
35
- metrics: init.metrics
30
+ name: 'libp2p_dialler_pending_dials',
31
+ metrics: components.metrics
36
32
  });
37
33
  this.pendingDialTargets = trackedMap({
38
- component: METRICS_COMPONENT,
39
- metric: METRICS_PENDING_DIAL_TARGETS,
40
- metrics: components.getMetrics()
34
+ name: 'libp2p_dialler_pending_dial_targets',
35
+ metrics: components.metrics
41
36
  });
42
37
  for (const [key, value] of Object.entries(init.resolvers ?? {})) {
43
38
  resolvers.set(key, value);
@@ -75,15 +70,15 @@ export class DefaultDialer {
75
70
  */
76
71
  async dial(peer, options = {}) {
77
72
  const { id, multiaddrs } = getPeer(peer);
78
- if (this.components.getPeerId().equals(id)) {
73
+ if (this.components.peerId.equals(id)) {
79
74
  throw errCode(new Error('Tried to dial self'), codes.ERR_DIALED_SELF);
80
75
  }
81
76
  log('check multiaddrs %p', id);
82
77
  if (multiaddrs != null && multiaddrs.length > 0) {
83
78
  log('storing multiaddrs %p', id, multiaddrs);
84
- await this.components.getPeerStore().addressBook.add(id, multiaddrs);
79
+ await this.components.peerStore.addressBook.add(id, multiaddrs);
85
80
  }
86
- if (await this.components.getConnectionGater().denyDialPeer(id)) {
81
+ if (await this.components.connectionGater.denyDialPeer(id)) {
87
82
  throw errCode(new Error('The dial request is blocked by gater.allowDialPeer'), codes.ERR_PEER_DIAL_INTERCEPTED);
88
83
  }
89
84
  log('creating dial target for %p', id);
@@ -140,8 +135,8 @@ export class DefaultDialer {
140
135
  */
141
136
  async _createDialTarget(peer, options) {
142
137
  const _resolve = this._resolve.bind(this);
143
- const addrs = await pipe(await this.components.getPeerStore().addressBook.get(peer), (source) => filter(source, async (address) => {
144
- return !(await this.components.getConnectionGater().denyDialMultiaddr(peer, address.multiaddr));
138
+ const addrs = await pipe(await this.components.peerStore.addressBook.get(peer), (source) => filter(source, async (address) => {
139
+ return !(await this.components.connectionGater.denyDialMultiaddr(peer, address.multiaddr));
145
140
  }),
146
141
  // Sort addresses so, for example, we try certified public address first
147
142
  (source) => sort(source, this.addressSorter), async function* resolve(source) {
@@ -150,14 +145,14 @@ export class DefaultDialer {
150
145
  }
151
146
  },
152
147
  // Multiaddrs not supported by the available transports will be filtered out.
153
- (source) => filter(source, (ma) => Boolean(this.components.getTransportManager().transportForMultiaddr(ma))), (source) => map(source, (ma) => {
148
+ (source) => filter(source, (ma) => Boolean(this.components.transportManager.transportForMultiaddr(ma))), (source) => map(source, (ma) => {
154
149
  if (peer.toString() === ma.getPeerId()) {
155
150
  return ma;
156
151
  }
157
152
  return ma.encapsulate(`/p2p/${peer.toString()}`);
158
153
  }), async (source) => await all(source));
159
154
  if (addrs.length > this.maxAddrsToDial) {
160
- await this.components.getPeerStore().delete(peer);
155
+ await this.components.peerStore.delete(peer);
161
156
  throw errCode(new Error('dial with more addresses than allowed'), codes.ERR_TOO_MANY_ADDRESSES);
162
157
  }
163
158
  return {
@@ -177,7 +172,7 @@ export class DefaultDialer {
177
172
  if (options.signal?.aborted === true) {
178
173
  throw errCode(new Error('already aborted'), codes.ERR_ALREADY_ABORTED);
179
174
  }
180
- return await this.components.getTransportManager().dial(addr, options).catch(err => {
175
+ return await this.components.transportManager.dial(addr, options).catch(err => {
181
176
  log.error('dial to %s failed', addr, err);
182
177
  throw err;
183
178
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,11 @@ import { EventEmitter } from '@libp2p/interfaces/events';
4
4
  import type { Startable } from '@libp2p/interfaces/startable';
5
5
  import { PeerId } from '@libp2p/interface-peer-id';
6
6
  import type { Connection, MultiaddrConnection } from '@libp2p/interface-connection';
7
- import type { ConnectionManager } from '@libp2p/interface-connection-manager';
8
- import { Components, Initializable } from '@libp2p/components';
9
- import type { AddressSorter } from '@libp2p/interface-peer-store';
10
- import type { Resolver } from '@multiformats/multiaddr';
7
+ import type { ConnectionManager, Dialer } from '@libp2p/interface-connection-manager';
8
+ import type { AddressSorter, PeerStore } from '@libp2p/interface-peer-store';
9
+ import { Resolver } from '@multiformats/multiaddr';
10
+ import type { Metrics } from '@libp2p/interface-metrics';
11
+ import type { Upgrader } from '@libp2p/interface-transport';
11
12
  export interface ConnectionManagerInit {
12
13
  /**
13
14
  * The maximum number of connections to keep open
@@ -85,26 +86,55 @@ export interface ConnectionManagerInit {
85
86
  * tagged with KEEP_ALIVE up to this timeout in ms. (default: 60000)
86
87
  */
87
88
  startupReconnectTimeout?: number;
89
+ /**
90
+ * A list of multiaddrs that will always be allowed (except if they are in the
91
+ * deny list) to open connections to this node even if we've reached maxConnections
92
+ */
93
+ allow?: string[];
94
+ /**
95
+ * A list of multiaddrs that will never be allowed to open connections to
96
+ * this node under any circumstances
97
+ */
98
+ deny?: string[];
99
+ /**
100
+ * If more than this many connections are opened per second by a single
101
+ * host, reject subsequent connections
102
+ */
103
+ inboundConnectionThreshold?: number;
104
+ /**
105
+ * The maximum number of parallel incoming connections allowed that have yet to
106
+ * complete the connection upgrade - e.g. choosing connection encryption, muxer, etc
107
+ */
108
+ maxIncomingPendingConnections?: number;
88
109
  }
89
110
  export interface ConnectionManagerEvents {
90
111
  'peer:connect': CustomEvent<PeerId>;
91
112
  'peer:disconnect': CustomEvent<PeerId>;
92
113
  }
114
+ export interface DefaultConnectionManagerComponents {
115
+ peerId: PeerId;
116
+ metrics?: Metrics;
117
+ upgrader: Upgrader;
118
+ peerStore: PeerStore;
119
+ dialer: Dialer;
120
+ }
93
121
  /**
94
122
  * Responsible for managing known connections.
95
123
  */
96
- export declare class DefaultConnectionManager extends EventEmitter<ConnectionManagerEvents> implements ConnectionManager, Startable, Initializable {
97
- private components;
124
+ export declare class DefaultConnectionManager extends EventEmitter<ConnectionManagerEvents> implements ConnectionManager, Startable {
125
+ private readonly components;
98
126
  private readonly opts;
99
127
  private readonly connections;
100
128
  private started;
101
- private timer?;
102
129
  private readonly latencyMonitor;
103
130
  private readonly startupReconnectTimeout;
104
131
  private connectOnStartupController?;
105
132
  private readonly dialTimeout;
106
- constructor(init: ConnectionManagerInit);
107
- init(components: Components): void;
133
+ private readonly allow;
134
+ private readonly deny;
135
+ private readonly inboundConnectionRateLimiter;
136
+ private incomingPendingConnections;
137
+ constructor(components: DefaultConnectionManagerComponents, init: ConnectionManagerInit);
108
138
  isStarted(): boolean;
109
139
  /**
110
140
  * Starts the Connection Manager. If Metrics are not enabled on libp2p
@@ -121,13 +151,6 @@ export declare class DefaultConnectionManager extends EventEmitter<ConnectionMan
121
151
  * Cleans up the connections
122
152
  */
123
153
  _close(): Promise<void>;
124
- /**
125
- * Checks the libp2p metrics to determine if any values have exceeded
126
- * the configured maximums.
127
- *
128
- * @private
129
- */
130
- _checkMetrics(): Promise<void>;
131
154
  onConnect(evt: CustomEvent<Connection>): void;
132
155
  /**
133
156
  * Tracks the incoming connection and check the connection limit
@@ -156,7 +179,8 @@ export declare class DefaultConnectionManager extends EventEmitter<ConnectionMan
156
179
  * If we have more connections than our maximum, select some excess connections
157
180
  * to prune based on peer value
158
181
  */
159
- _maybePruneConnections(toPrune: number): Promise<void>;
182
+ _pruneConnections(toPrune: number): Promise<void>;
160
183
  acceptIncomingConnection(maConn: MultiaddrConnection): Promise<boolean>;
184
+ afterUpgradeInbound(): void;
161
185
  }
162
186
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/index.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,16 @@ import { logger } from '@libp2p/logger';
2
2
  import errCode from 'err-code';
3
3
  import mergeOptions from 'merge-options';
4
4
  import { LatencyMonitor } from './latency-monitor.js';
5
- // @ts-expect-error retimer does not have types
6
- import retimer from 'retimer';
7
5
  import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events';
8
6
  import { codes } from '../errors.js';
9
7
  import { isPeerId } from '@libp2p/interface-peer-id';
10
8
  import { setMaxListeners } from 'events';
11
- import { Components } from '@libp2p/components';
12
9
  import * as STATUS from '@libp2p/interface-connection/status';
10
+ import { multiaddr } from '@multiformats/multiaddr';
13
11
  import { PeerMap } from '@libp2p/peer-collections';
14
12
  import { TimeoutController } from 'timeout-abort-controller';
15
13
  import { KEEP_ALIVE } from '@libp2p/interface-peer-store/tags';
14
+ import { RateLimiterMemory } from 'rate-limiter-flexible';
16
15
  const log = logger('libp2p:connection-manager');
17
16
  const defaultOptions = {
18
17
  maxConnections: Infinity,
@@ -23,29 +22,28 @@ const defaultOptions = {
23
22
  maxEventLoopDelay: Infinity,
24
23
  pollInterval: 2000,
25
24
  autoDialInterval: 10000,
26
- movingAverageInterval: 60000
25
+ movingAverageInterval: 60000,
26
+ inboundConnectionThreshold: 5,
27
+ maxIncomingPendingConnections: 10
27
28
  };
28
- const METRICS_SYSTEM = 'libp2p';
29
- const METRICS_COMPONENT = 'connection-manager';
30
29
  const STARTUP_RECONNECT_TIMEOUT = 60000;
31
30
  /**
32
31
  * Responsible for managing known connections.
33
32
  */
34
33
  export class DefaultConnectionManager extends EventEmitter {
35
- constructor(init) {
34
+ constructor(components, init) {
36
35
  super();
37
- this.components = new Components();
38
36
  this.opts = mergeOptions.call({ ignoreUndefined: true }, defaultOptions, init);
39
37
  if (this.opts.maxConnections < this.opts.minConnections) {
40
38
  throw errCode(new Error('Connection Manager maxConnections must be greater than minConnections'), codes.ERR_INVALID_PARAMETERS);
41
39
  }
42
40
  log('options: %o', this.opts);
41
+ this.components = components;
43
42
  /**
44
43
  * Map of connections per peer
45
44
  */
46
45
  this.connections = new Map();
47
46
  this.started = false;
48
- this._checkMetrics = this._checkMetrics.bind(this);
49
47
  this.latencyMonitor = new LatencyMonitor({
50
48
  latencyCheckIntervalMs: init.pollInterval,
51
49
  dataEmitIntervalMs: init.pollInterval
@@ -59,16 +57,25 @@ export class DefaultConnectionManager extends EventEmitter {
59
57
  this.onDisconnect = this.onDisconnect.bind(this);
60
58
  this.startupReconnectTimeout = init.startupReconnectTimeout ?? STARTUP_RECONNECT_TIMEOUT;
61
59
  this.dialTimeout = init.dialTimeout ?? 30000;
60
+ this.allow = (init.allow ?? []).map(ma => multiaddr(ma));
61
+ this.deny = (init.deny ?? []).map(ma => multiaddr(ma));
62
+ this.inboundConnectionRateLimiter = new RateLimiterMemory({
63
+ points: this.opts.inboundConnectionThreshold,
64
+ duration: 1
65
+ });
66
+ this.incomingPendingConnections = 0;
62
67
  }
63
- init(components) {
64
- this.components = components;
68
+ isStarted() {
69
+ return this.started;
70
+ }
71
+ /**
72
+ * Starts the Connection Manager. If Metrics are not enabled on libp2p
73
+ * only event loop and connection limits will be monitored.
74
+ */
75
+ async start() {
65
76
  // track inbound/outbound connections
66
- this.components.getMetrics()?.updateComponentMetric({
67
- system: METRICS_SYSTEM,
68
- component: METRICS_COMPONENT,
69
- metric: 'connections',
70
- label: 'direction',
71
- value: () => {
77
+ this.components.metrics?.registerMetricGroup('libp2p_connection_manager_connections', {
78
+ calculate: () => {
72
79
  const metric = {
73
80
  inbound: 0,
74
81
  outbound: 0
@@ -87,12 +94,9 @@ export class DefaultConnectionManager extends EventEmitter {
87
94
  }
88
95
  });
89
96
  // track total number of streams per protocol
90
- this.components.getMetrics()?.updateComponentMetric({
91
- system: METRICS_SYSTEM,
92
- component: METRICS_COMPONENT,
93
- metric: 'protocol-streams-total',
97
+ this.components.metrics?.registerMetricGroup('libp2p_protocol_streams_total', {
94
98
  label: 'protocol',
95
- value: () => {
99
+ calculate: () => {
96
100
  const metric = {};
97
101
  for (const conns of this.connections.values()) {
98
102
  for (const conn of conns) {
@@ -106,12 +110,9 @@ export class DefaultConnectionManager extends EventEmitter {
106
110
  }
107
111
  });
108
112
  // track 90th percentile of streams per protocol
109
- this.components.getMetrics()?.updateComponentMetric({
110
- system: METRICS_SYSTEM,
111
- component: METRICS_COMPONENT,
112
- metric: 'protocol-streams-per-connection-90th-percentile',
113
+ this.components.metrics?.registerMetricGroup('libp2p_connection_manager_protocol_streams_per_connection_90th_percentile', {
113
114
  label: 'protocol',
114
- value: () => {
115
+ calculate: () => {
115
116
  const allStreams = {};
116
117
  for (const conns of this.connections.values()) {
117
118
  for (const conn of conns) {
@@ -135,18 +136,6 @@ export class DefaultConnectionManager extends EventEmitter {
135
136
  return metric;
136
137
  }
137
138
  });
138
- }
139
- isStarted() {
140
- return this.started;
141
- }
142
- /**
143
- * Starts the Connection Manager. If Metrics are not enabled on libp2p
144
- * only event loop and connection limits will be monitored.
145
- */
146
- async start() {
147
- if (this.components.getMetrics() != null) {
148
- this.timer = this.timer ?? retimer(this._checkMetrics, this.opts.pollInterval);
149
- }
150
139
  // latency monitor
151
140
  this.latencyMonitor.start();
152
141
  this._onLatencyMeasure = this._onLatencyMeasure.bind(this);
@@ -155,14 +144,14 @@ export class DefaultConnectionManager extends EventEmitter {
155
144
  log('started');
156
145
  }
157
146
  async afterStart() {
158
- this.components.getUpgrader().addEventListener('connection', this.onConnect);
159
- this.components.getUpgrader().addEventListener('connectionEnd', this.onDisconnect);
147
+ this.components.upgrader.addEventListener('connection', this.onConnect);
148
+ this.components.upgrader.addEventListener('connectionEnd', this.onDisconnect);
160
149
  // re-connect to any peers with the KEEP_ALIVE tag
161
150
  void Promise.resolve()
162
151
  .then(async () => {
163
152
  const keepAlivePeers = [];
164
- for (const peer of await this.components.getPeerStore().all()) {
165
- const tags = await this.components.getPeerStore().getTags(peer.id);
153
+ for (const peer of await this.components.peerStore.all()) {
154
+ const tags = await this.components.peerStore.getTags(peer.id);
166
155
  const hasKeepAlive = tags.filter(tag => tag.name === KEEP_ALIVE).length > 0;
167
156
  if (hasKeepAlive) {
168
157
  keepAlivePeers.push(peer.id);
@@ -194,14 +183,13 @@ export class DefaultConnectionManager extends EventEmitter {
194
183
  async beforeStop() {
195
184
  // if we are still dialing KEEP_ALIVE peers, abort those dials
196
185
  this.connectOnStartupController?.abort();
197
- this.components.getUpgrader().removeEventListener('connection', this.onConnect);
198
- this.components.getUpgrader().removeEventListener('connectionEnd', this.onDisconnect);
186
+ this.components.upgrader.removeEventListener('connection', this.onConnect);
187
+ this.components.upgrader.removeEventListener('connectionEnd', this.onDisconnect);
199
188
  }
200
189
  /**
201
190
  * Stops the Connection Manager
202
191
  */
203
192
  async stop() {
204
- this.timer?.clear();
205
193
  this.latencyMonitor.removeEventListener('data', this._onLatencyMeasure);
206
194
  this.latencyMonitor.stop();
207
195
  this.started = false;
@@ -230,30 +218,6 @@ export class DefaultConnectionManager extends EventEmitter {
230
218
  await Promise.all(tasks);
231
219
  this.connections.clear();
232
220
  }
233
- /**
234
- * Checks the libp2p metrics to determine if any values have exceeded
235
- * the configured maximums.
236
- *
237
- * @private
238
- */
239
- async _checkMetrics() {
240
- const metrics = this.components.getMetrics();
241
- if (metrics != null) {
242
- try {
243
- const movingAverages = metrics.getGlobal().getMovingAverages();
244
- const received = movingAverages.dataReceived[this.opts.movingAverageInterval].movingAverage;
245
- await this._checkMaxLimit('maxReceivedData', received);
246
- const sent = movingAverages.dataSent[this.opts.movingAverageInterval].movingAverage;
247
- await this._checkMaxLimit('maxSentData', sent);
248
- const total = received + sent;
249
- await this._checkMaxLimit('maxData', total);
250
- log.trace('metrics update', total);
251
- }
252
- finally {
253
- this.timer = retimer(this._checkMetrics, this.opts.pollInterval);
254
- }
255
- }
256
- }
257
221
  onConnect(evt) {
258
222
  void this._onConnect(evt).catch(err => {
259
223
  log.error(err);
@@ -279,7 +243,7 @@ export class DefaultConnectionManager extends EventEmitter {
279
243
  this.connections.set(peerIdStr, [connection]);
280
244
  }
281
245
  if (peerId.publicKey != null) {
282
- await this.components.getPeerStore().keyBook.set(peerId, peerId.publicKey);
246
+ await this.components.peerStore.keyBook.set(peerId, peerId.publicKey);
283
247
  }
284
248
  const numConnections = this.getConnections().length;
285
249
  const toPrune = numConnections - this.opts.maxConnections;
@@ -304,7 +268,6 @@ export class DefaultConnectionManager extends EventEmitter {
304
268
  else if (storedConn != null) {
305
269
  this.connections.delete(peerId);
306
270
  this.dispatchEvent(new CustomEvent('peer:disconnect', { detail: connection }));
307
- this.components.getMetrics()?.onPeerDisconnected(connection.remotePeer);
308
271
  }
309
272
  }
310
273
  getConnections(peerId) {
@@ -335,7 +298,7 @@ export class DefaultConnectionManager extends EventEmitter {
335
298
  catch { }
336
299
  }
337
300
  try {
338
- const connection = await this.components.getDialer().dial(peerId, options);
301
+ const connection = await this.components.dialer.dial(peerId, options);
339
302
  let peerConnections = this.connections.get(peerId.toString());
340
303
  if (peerConnections == null) {
341
304
  peerConnections = [];
@@ -399,19 +362,16 @@ export class DefaultConnectionManager extends EventEmitter {
399
362
  const limit = this.opts[name];
400
363
  log.trace('checking limit of %s. current value: %d of %d', name, value, limit);
401
364
  if (value > limit) {
402
- log('%s: limit exceeded: %p, %d/%d, pruning %d connection(s)', this.components.getPeerId(), name, value, limit, toPrune);
403
- await this._maybePruneConnections(toPrune);
365
+ log('%s: limit exceeded: %p, %d/%d, pruning %d connection(s)', this.components.peerId, name, value, limit, toPrune);
366
+ await this._pruneConnections(toPrune);
404
367
  }
405
368
  }
406
369
  /**
407
370
  * If we have more connections than our maximum, select some excess connections
408
371
  * to prune based on peer value
409
372
  */
410
- async _maybePruneConnections(toPrune) {
373
+ async _pruneConnections(toPrune) {
411
374
  const connections = this.getConnections();
412
- if (connections.length <= this.opts.minConnections || toPrune < 1) {
413
- return;
414
- }
415
375
  const peerValues = new PeerMap();
416
376
  // work out peer values
417
377
  for (const connection of connections) {
@@ -419,7 +379,7 @@ export class DefaultConnectionManager extends EventEmitter {
419
379
  if (peerValues.has(remotePeer)) {
420
380
  continue;
421
381
  }
422
- const tags = await this.components.getPeerStore().getTags(remotePeer);
382
+ const tags = await this.components.peerStore.getTags(remotePeer);
423
383
  // sum all tag values
424
384
  peerValues.set(remotePeer, tags.reduce((acc, curr) => {
425
385
  return acc + curr.value;
@@ -461,7 +421,46 @@ export class DefaultConnectionManager extends EventEmitter {
461
421
  }));
462
422
  }
463
423
  async acceptIncomingConnection(maConn) {
464
- return true;
424
+ // check deny list
425
+ const denyConnection = this.deny.some(ma => {
426
+ return maConn.remoteAddr.toString().startsWith(ma.toString());
427
+ });
428
+ if (denyConnection) {
429
+ log('connection from %s refused - connection remote address was in deny list', maConn.remoteAddr);
430
+ return false;
431
+ }
432
+ // check allow list
433
+ const allowConnection = this.allow.some(ma => {
434
+ return maConn.remoteAddr.toString().startsWith(ma.toString());
435
+ });
436
+ if (allowConnection) {
437
+ this.incomingPendingConnections++;
438
+ return true;
439
+ }
440
+ // check pending connections
441
+ if (this.incomingPendingConnections === this.opts.maxIncomingPendingConnections) {
442
+ log('connection from %s refused - incomingPendingConnections exceeded by peer %s', maConn.remoteAddr);
443
+ return false;
444
+ }
445
+ if (maConn.remoteAddr.isThinWaistAddress()) {
446
+ const host = maConn.remoteAddr.nodeAddress().address;
447
+ try {
448
+ await this.inboundConnectionRateLimiter.consume(host, 1);
449
+ }
450
+ catch {
451
+ log('connection from %s refused - inboundConnectionThreshold exceeded by host %s', host, maConn.remoteAddr);
452
+ return false;
453
+ }
454
+ }
455
+ if (this.getConnections().length < this.opts.maxConnections) {
456
+ this.incomingPendingConnections++;
457
+ return true;
458
+ }
459
+ log('connection from %s refused - maxConnections exceeded', maConn.remoteAddr);
460
+ return false;
461
+ }
462
+ afterUpgradeInbound() {
463
+ this.incomingPendingConnections--;
465
464
  }
466
465
  }
467
466
  //# sourceMappingURL=index.js.map