libp2p 2.10.0 → 3.0.0-049bfa0fa

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 (121) hide show
  1. package/README.md +39 -37
  2. package/dist/index.min.js +14 -17
  3. package/dist/index.min.js.map +4 -4
  4. package/dist/src/address-manager/dns-mappings.d.ts +1 -2
  5. package/dist/src/address-manager/dns-mappings.d.ts.map +1 -1
  6. package/dist/src/address-manager/dns-mappings.js +39 -43
  7. package/dist/src/address-manager/dns-mappings.js.map +1 -1
  8. package/dist/src/address-manager/index.d.ts.map +1 -1
  9. package/dist/src/address-manager/index.js +31 -14
  10. package/dist/src/address-manager/index.js.map +1 -1
  11. package/dist/src/address-manager/ip-mappings.d.ts +1 -0
  12. package/dist/src/address-manager/ip-mappings.d.ts.map +1 -1
  13. package/dist/src/address-manager/ip-mappings.js +51 -40
  14. package/dist/src/address-manager/ip-mappings.js.map +1 -1
  15. package/dist/src/address-manager/observed-addresses.d.ts.map +1 -1
  16. package/dist/src/address-manager/observed-addresses.js +1 -3
  17. package/dist/src/address-manager/observed-addresses.js.map +1 -1
  18. package/dist/src/address-manager/transport-addresses.d.ts.map +1 -1
  19. package/dist/src/address-manager/transport-addresses.js +6 -8
  20. package/dist/src/address-manager/transport-addresses.js.map +1 -1
  21. package/dist/src/config/connection-gater.browser.d.ts.map +1 -1
  22. package/dist/src/config/connection-gater.browser.js +8 -22
  23. package/dist/src/config/connection-gater.browser.js.map +1 -1
  24. package/dist/src/config/connection-gater.d.ts.map +1 -1
  25. package/dist/src/config/connection-gater.js +1 -12
  26. package/dist/src/config/connection-gater.js.map +1 -1
  27. package/dist/src/config.d.ts.map +1 -1
  28. package/dist/src/config.js +3 -22
  29. package/dist/src/config.js.map +1 -1
  30. package/dist/src/connection-manager/address-sorter.d.ts.map +1 -1
  31. package/dist/src/connection-manager/address-sorter.js +1 -2
  32. package/dist/src/connection-manager/address-sorter.js.map +1 -1
  33. package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -1
  34. package/dist/src/connection-manager/connection-pruner.js +7 -3
  35. package/dist/src/connection-manager/connection-pruner.js.map +1 -1
  36. package/dist/src/connection-manager/constants.defaults.d.ts +4 -0
  37. package/dist/src/connection-manager/constants.defaults.d.ts.map +1 -1
  38. package/dist/src/connection-manager/constants.defaults.js +4 -0
  39. package/dist/src/connection-manager/constants.defaults.js.map +1 -1
  40. package/dist/src/connection-manager/dial-queue.d.ts +2 -2
  41. package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
  42. package/dist/src/connection-manager/dial-queue.js +11 -23
  43. package/dist/src/connection-manager/dial-queue.js.map +1 -1
  44. package/dist/src/connection-manager/index.d.ts +10 -18
  45. package/dist/src/connection-manager/index.d.ts.map +1 -1
  46. package/dist/src/connection-manager/index.js +44 -26
  47. package/dist/src/connection-manager/index.js.map +1 -1
  48. package/dist/src/connection-manager/reconnect-queue.js +1 -1
  49. package/dist/src/connection-manager/reconnect-queue.js.map +1 -1
  50. package/dist/src/connection-manager/utils.d.ts +31 -3
  51. package/dist/src/connection-manager/utils.d.ts.map +1 -1
  52. package/dist/src/connection-manager/utils.js +99 -18
  53. package/dist/src/connection-manager/utils.js.map +1 -1
  54. package/dist/src/connection-monitor.d.ts +1 -1
  55. package/dist/src/connection-monitor.d.ts.map +1 -1
  56. package/dist/src/connection-monitor.js +2 -3
  57. package/dist/src/connection-monitor.js.map +1 -1
  58. package/dist/src/connection.d.ts +14 -9
  59. package/dist/src/connection.d.ts.map +1 -1
  60. package/dist/src/connection.js +118 -139
  61. package/dist/src/connection.js.map +1 -1
  62. package/dist/src/get-peer.js +3 -3
  63. package/dist/src/get-peer.js.map +1 -1
  64. package/dist/src/index.d.ts +2 -2
  65. package/dist/src/index.js +2 -2
  66. package/dist/src/libp2p.d.ts +3 -1
  67. package/dist/src/libp2p.d.ts.map +1 -1
  68. package/dist/src/libp2p.js +13 -7
  69. package/dist/src/libp2p.js.map +1 -1
  70. package/dist/src/peer-routing.js +1 -1
  71. package/dist/src/peer-routing.js.map +1 -1
  72. package/dist/src/random-walk.d.ts.map +1 -1
  73. package/dist/src/random-walk.js +13 -3
  74. package/dist/src/random-walk.js.map +1 -1
  75. package/dist/src/registrar.d.ts +8 -4
  76. package/dist/src/registrar.d.ts.map +1 -1
  77. package/dist/src/registrar.js +66 -46
  78. package/dist/src/registrar.js.map +1 -1
  79. package/dist/src/transport-manager.js +15 -2
  80. package/dist/src/transport-manager.js.map +1 -1
  81. package/dist/src/upgrader.d.ts +26 -16
  82. package/dist/src/upgrader.d.ts.map +1 -1
  83. package/dist/src/upgrader.js +88 -122
  84. package/dist/src/upgrader.js.map +1 -1
  85. package/dist/src/utils.d.ts +3 -0
  86. package/dist/src/utils.d.ts.map +1 -0
  87. package/dist/src/utils.js +25 -0
  88. package/dist/src/utils.js.map +1 -0
  89. package/dist/src/version.d.ts +1 -1
  90. package/dist/src/version.d.ts.map +1 -1
  91. package/dist/src/version.js +1 -1
  92. package/dist/src/version.js.map +1 -1
  93. package/package.json +27 -30
  94. package/src/address-manager/dns-mappings.ts +50 -50
  95. package/src/address-manager/index.ts +37 -17
  96. package/src/address-manager/ip-mappings.ts +64 -44
  97. package/src/address-manager/observed-addresses.ts +1 -3
  98. package/src/address-manager/transport-addresses.ts +7 -9
  99. package/src/config/connection-gater.browser.ts +8 -24
  100. package/src/config/connection-gater.ts +1 -12
  101. package/src/config.ts +3 -25
  102. package/src/connection-manager/address-sorter.ts +1 -2
  103. package/src/connection-manager/connection-pruner.ts +8 -3
  104. package/src/connection-manager/constants.defaults.ts +5 -0
  105. package/src/connection-manager/dial-queue.ts +12 -27
  106. package/src/connection-manager/index.ts +60 -45
  107. package/src/connection-manager/reconnect-queue.ts +1 -1
  108. package/src/connection-manager/utils.ts +129 -21
  109. package/src/connection-monitor.ts +3 -4
  110. package/src/connection.ts +142 -179
  111. package/src/get-peer.ts +3 -3
  112. package/src/index.ts +2 -2
  113. package/src/libp2p.ts +16 -9
  114. package/src/peer-routing.ts +1 -1
  115. package/src/random-walk.ts +13 -3
  116. package/src/registrar.ts +87 -61
  117. package/src/transport-manager.ts +18 -2
  118. package/src/upgrader.ts +132 -149
  119. package/src/utils.ts +31 -0
  120. package/src/version.ts +1 -1
  121. package/dist/typedoc-urls.json +0 -24
@@ -1,94 +1,96 @@
1
- import { connectionSymbol, LimitedConnectionError, ConnectionClosedError, ConnectionClosingError, TooManyOutboundProtocolStreamsError, TooManyInboundProtocolStreamsError } from '@libp2p/interface';
1
+ import { connectionSymbol, LimitedConnectionError, ConnectionClosedError, TooManyOutboundProtocolStreamsError, TooManyInboundProtocolStreamsError, StreamCloseEvent } from '@libp2p/interface';
2
2
  import * as mss from '@libp2p/multistream-select';
3
- import { setMaxListeners } from 'main-event';
4
- import { PROTOCOL_NEGOTIATION_TIMEOUT } from "./connection-manager/constants.defaults.js";
3
+ import { CODE_P2P } from '@multiformats/multiaddr';
4
+ import { setMaxListeners, TypedEventEmitter } from 'main-event';
5
+ import { CONNECTION_CLOSE_TIMEOUT, PROTOCOL_NEGOTIATION_TIMEOUT } from "./connection-manager/constants.defaults.js";
6
+ import { isDirect } from "./connection-manager/utils.js";
5
7
  import { MuxerUnavailableError } from "./errors.js";
6
8
  import { DEFAULT_MAX_INBOUND_STREAMS, DEFAULT_MAX_OUTBOUND_STREAMS } from "./registrar.js";
7
- const CLOSE_TIMEOUT = 500;
8
9
  /**
9
10
  * An implementation of the js-libp2p connection.
10
11
  * Any libp2p transport should use an upgrader to return this connection.
11
12
  */
12
- export class Connection {
13
+ export class Connection extends TypedEventEmitter {
13
14
  id;
14
15
  remoteAddr;
15
16
  remotePeer;
16
17
  direction;
17
18
  timeline;
19
+ direct;
18
20
  multiplexer;
19
21
  encryption;
20
- status;
21
22
  limits;
22
23
  log;
23
- tags;
24
24
  maConn;
25
25
  muxer;
26
26
  components;
27
27
  outboundStreamProtocolNegotiationTimeout;
28
28
  inboundStreamProtocolNegotiationTimeout;
29
+ closeTimeout;
29
30
  constructor(components, init) {
31
+ super();
30
32
  this.components = components;
31
33
  this.id = init.id;
32
34
  this.remoteAddr = init.maConn.remoteAddr;
33
35
  this.remotePeer = init.remotePeer;
34
36
  this.direction = init.direction ?? 'outbound';
35
- this.status = 'open';
36
37
  this.timeline = init.maConn.timeline;
37
- this.encryption = init.encryption;
38
+ this.encryption = init.cryptoProtocol;
38
39
  this.limits = init.limits;
39
40
  this.maConn = init.maConn;
40
41
  this.log = init.maConn.log;
41
42
  this.outboundStreamProtocolNegotiationTimeout = init.outboundStreamProtocolNegotiationTimeout ?? PROTOCOL_NEGOTIATION_TIMEOUT;
42
43
  this.inboundStreamProtocolNegotiationTimeout = init.inboundStreamProtocolNegotiationTimeout ?? PROTOCOL_NEGOTIATION_TIMEOUT;
43
- if (this.remoteAddr.getPeerId() == null) {
44
+ this.closeTimeout = init.closeTimeout ?? CONNECTION_CLOSE_TIMEOUT;
45
+ this.direct = isDirect(init.maConn.remoteAddr);
46
+ this.onIncomingStream = this.onIncomingStream.bind(this);
47
+ if (this.remoteAddr.getComponents().find(component => component.code === CODE_P2P) == null) {
44
48
  this.remoteAddr = this.remoteAddr.encapsulate(`/p2p/${this.remotePeer}`);
45
49
  }
46
- this.tags = [];
47
- if (init.muxerFactory != null) {
48
- this.multiplexer = init.muxerFactory.protocol;
49
- this.muxer = init.muxerFactory.createStreamMuxer({
50
- direction: this.direction,
51
- log: this.log,
52
- // Run anytime a remote stream is created
53
- onIncomingStream: (stream) => {
54
- this.onIncomingStream(stream);
55
- }
56
- });
57
- // Pipe all data through the muxer
58
- void Promise.all([
59
- this.muxer.sink(this.maConn.source),
60
- this.maConn.sink(this.muxer.source)
61
- ]).catch(err => {
62
- this.log.error('error piping data through muxer - %e', err);
63
- });
50
+ if (init.muxer != null) {
51
+ this.multiplexer = init.muxer.protocol;
52
+ this.muxer = init.muxer;
53
+ this.muxer.addEventListener('stream', this.onIncomingStream);
64
54
  }
55
+ this.maConn.addEventListener('close', (evt) => {
56
+ this.dispatchEvent(new StreamCloseEvent(evt.local, evt.error));
57
+ });
65
58
  }
66
59
  [Symbol.toStringTag] = 'Connection';
67
60
  [connectionSymbol] = true;
68
61
  get streams() {
69
62
  return this.muxer?.streams ?? [];
70
63
  }
64
+ get status() {
65
+ return this.maConn.status;
66
+ }
71
67
  /**
72
68
  * Create a new stream over this connection
73
69
  */
74
70
  newStream = async (protocols, options = {}) => {
75
- if (this.status === 'closing') {
76
- throw new ConnectionClosingError('the connection is being closed');
71
+ if (this.muxer == null) {
72
+ throw new MuxerUnavailableError('Connection is not multiplexed');
77
73
  }
78
- if (this.status === 'closed') {
79
- throw new ConnectionClosedError('the connection is closed');
74
+ if (this.muxer.status !== 'open') {
75
+ throw new ConnectionClosedError(`The connection muxer is "${this.muxer.status}" and not "open"`);
80
76
  }
81
- if (!Array.isArray(protocols)) {
82
- protocols = [protocols];
77
+ if (this.maConn.status !== 'open') {
78
+ throw new ConnectionClosedError(`The connection is "${this.status}" and not "open"`);
83
79
  }
84
80
  if (this.limits != null && options?.runOnLimitedConnection !== true) {
85
81
  throw new LimitedConnectionError('Cannot open protocol stream on limited connection');
86
82
  }
87
- if (this.muxer == null) {
88
- throw new MuxerUnavailableError('Connection is not multiplexed');
83
+ if (!Array.isArray(protocols)) {
84
+ protocols = [protocols];
89
85
  }
90
86
  this.log.trace('starting new stream for protocols %s', protocols);
91
- const muxedStream = await this.muxer.newStream();
87
+ const muxedStream = await this.muxer.createStream({
88
+ ...options,
89
+ // most underlying transports only support negotiating a single protocol
90
+ // so only pass the early protocol if a single protocol has been requested
91
+ // otherwise fall back to mss
92
+ protocol: protocols.length === 1 ? protocols[0] : undefined
93
+ });
92
94
  this.log.trace('started new stream %s for protocols %s', muxedStream.id, protocols);
93
95
  try {
94
96
  if (options.signal == null) {
@@ -100,153 +102,128 @@ export class Connection {
100
102
  signal
101
103
  };
102
104
  }
103
- muxedStream.log.trace('selecting protocol from protocols %s', protocols);
104
- const { stream, protocol } = await mss.select(muxedStream, protocols, {
105
- ...options,
106
- log: muxedStream.log,
107
- yieldBytes: true
108
- });
109
- muxedStream.log('selected protocol %s', protocol);
110
- const outgoingLimit = findOutgoingStreamLimit(protocol, this.components.registrar, options);
111
- const streamCount = countStreams(protocol, 'outbound', this);
112
- if (streamCount >= outgoingLimit) {
113
- const err = new TooManyOutboundProtocolStreamsError(`Too many outbound protocol streams for protocol "${protocol}" - ${streamCount}/${outgoingLimit}`);
105
+ if (muxedStream.protocol === '') {
106
+ muxedStream.log.trace('selecting protocol from protocols %s', protocols);
107
+ muxedStream.protocol = await mss.select(muxedStream, protocols, options);
108
+ muxedStream.log('negotiated protocol %s', muxedStream.protocol);
109
+ }
110
+ else {
111
+ muxedStream.log('pre-negotiated protocol %s', muxedStream.protocol);
112
+ }
113
+ const outgoingLimit = findOutgoingStreamLimit(muxedStream.protocol, this.components.registrar, options);
114
+ const streamCount = countStreams(muxedStream.protocol, 'outbound', this);
115
+ if (streamCount > outgoingLimit) {
116
+ const err = new TooManyOutboundProtocolStreamsError(`Too many outbound protocol streams for protocol "${muxedStream.protocol}" - ${streamCount}/${outgoingLimit}`);
114
117
  muxedStream.abort(err);
115
118
  throw err;
116
119
  }
117
120
  // If a protocol stream has been successfully negotiated and is to be passed to the application,
118
121
  // the peer store should ensure that the peer is registered with that protocol
119
122
  await this.components.peerStore.merge(this.remotePeer, {
120
- protocols: [protocol]
123
+ protocols: [muxedStream.protocol]
121
124
  });
122
- // after the handshake the returned stream can have early data so override
123
- // the source/sink
124
- muxedStream.source = stream.source;
125
- muxedStream.sink = stream.sink;
126
- muxedStream.protocol = protocol;
127
- // allow closing the write end of a not-yet-negotiated stream
128
- if (stream.closeWrite != null) {
129
- muxedStream.closeWrite = stream.closeWrite;
130
- }
131
- // allow closing the read end of a not-yet-negotiated stream
132
- if (stream.closeRead != null) {
133
- muxedStream.closeRead = stream.closeRead;
134
- }
135
- // make sure we don't try to negotiate a stream we are closing
136
- if (stream.close != null) {
137
- muxedStream.close = stream.close;
138
- }
139
- this.components.metrics?.trackProtocolStream(muxedStream, this);
140
- muxedStream.direction = 'outbound';
141
- return muxedStream;
125
+ this.components.metrics?.trackProtocolStream(muxedStream);
126
+ const middleware = this.components.registrar.getMiddleware(muxedStream.protocol);
127
+ return await this.runMiddlewareChain(muxedStream, this, middleware);
142
128
  }
143
129
  catch (err) {
144
- this.log.error('could not create new outbound stream on connection %s %a for protocols %s - %e', this.direction === 'inbound' ? 'from' : 'to', this.remoteAddr, protocols, err);
145
- if (muxedStream.timeline.close == null) {
130
+ if (muxedStream.status === 'open') {
146
131
  muxedStream.abort(err);
147
132
  }
133
+ else {
134
+ this.log.error('could not create new outbound stream on connection %s %a for protocols %s - %e', this.direction === 'inbound' ? 'from' : 'to', this.remoteAddr, protocols, err);
135
+ }
148
136
  throw err;
149
137
  }
150
138
  };
151
- onIncomingStream(muxedStream) {
139
+ async onIncomingStream(evt) {
140
+ const muxedStream = evt.detail;
152
141
  const signal = AbortSignal.timeout(this.inboundStreamProtocolNegotiationTimeout);
153
142
  setMaxListeners(Infinity, signal);
154
- void Promise.resolve()
155
- .then(async () => {
156
- const protocols = this.components.registrar.getProtocols();
157
- const { stream, protocol } = await mss.handle(muxedStream, protocols, {
158
- signal,
159
- log: muxedStream.log,
160
- yieldBytes: false
161
- });
162
- this.log('incoming %s stream opened', protocol);
163
- const incomingLimit = findIncomingStreamLimit(protocol, this.components.registrar);
164
- const streamCount = countStreams(protocol, 'inbound', this);
165
- if (streamCount === incomingLimit) {
166
- const err = new TooManyInboundProtocolStreamsError(`Too many inbound protocol streams for protocol "${protocol}" - limit ${incomingLimit}`);
167
- muxedStream.abort(err);
168
- throw err;
169
- }
170
- // after the handshake the returned stream can have early data so override
171
- // the source/sink
172
- muxedStream.source = stream.source;
173
- muxedStream.sink = stream.sink;
174
- muxedStream.protocol = protocol;
175
- // allow closing the write end of a not-yet-negotiated stream
176
- if (stream.closeWrite != null) {
177
- muxedStream.closeWrite = stream.closeWrite;
143
+ muxedStream.log('start protocol negotiation, timing out after %dms', this.inboundStreamProtocolNegotiationTimeout);
144
+ try {
145
+ if (muxedStream.protocol === '') {
146
+ const protocols = this.components.registrar.getProtocols();
147
+ muxedStream.log.trace('selecting protocol from protocols %s', protocols);
148
+ muxedStream.protocol = await mss.handle(muxedStream, protocols, {
149
+ signal
150
+ });
151
+ muxedStream.log('negotiated protocol %s', muxedStream.protocol);
178
152
  }
179
- // allow closing the read end of a not-yet-negotiated stream
180
- if (stream.closeRead != null) {
181
- muxedStream.closeRead = stream.closeRead;
153
+ else {
154
+ muxedStream.log('pre-negotiated protocol %s', muxedStream.protocol);
182
155
  }
183
- // make sure we don't try to negotiate a stream we are closing
184
- if (stream.close != null) {
185
- muxedStream.close = stream.close;
156
+ const incomingLimit = findIncomingStreamLimit(muxedStream.protocol, this.components.registrar);
157
+ const streamCount = countStreams(muxedStream.protocol, 'inbound', this);
158
+ if (streamCount > incomingLimit) {
159
+ throw new TooManyInboundProtocolStreamsError(`Too many inbound protocol streams for protocol "${muxedStream.protocol}" - limit ${incomingLimit}`);
186
160
  }
187
161
  // If a protocol stream has been successfully negotiated and is to be passed to the application,
188
162
  // the peer store should ensure that the peer is registered with that protocol
189
163
  await this.components.peerStore.merge(this.remotePeer, {
190
- protocols: [protocol]
164
+ protocols: [muxedStream.protocol]
191
165
  }, {
192
166
  signal
193
167
  });
194
- this.components.metrics?.trackProtocolStream(muxedStream, this);
195
- const { handler, options } = this.components.registrar.getHandler(protocol);
168
+ this.components.metrics?.trackProtocolStream(muxedStream);
169
+ const { handler, options } = this.components.registrar.getHandler(muxedStream.protocol);
196
170
  if (this.limits != null && options.runOnLimitedConnection !== true) {
197
171
  throw new LimitedConnectionError('Cannot open protocol stream on limited connection');
198
172
  }
199
- await handler({ connection: this, stream: muxedStream });
200
- })
201
- .catch(async (err) => {
202
- this.log.error('error handling incoming stream id %s - %e', muxedStream.id, err);
173
+ const middleware = this.components.registrar.getMiddleware(muxedStream.protocol);
174
+ middleware.push(async (stream, connection, next) => {
175
+ await handler(stream, connection);
176
+ next(stream, connection);
177
+ });
178
+ await this.runMiddlewareChain(muxedStream, this, middleware);
179
+ }
180
+ catch (err) {
203
181
  muxedStream.abort(err);
204
- });
182
+ }
183
+ }
184
+ async runMiddlewareChain(stream, connection, middleware) {
185
+ for (let i = 0; i < middleware.length; i++) {
186
+ const mw = middleware[i];
187
+ stream.log.trace('running middleware', i, mw);
188
+ // eslint-disable-next-line no-loop-func
189
+ await new Promise((resolve, reject) => {
190
+ try {
191
+ const result = mw(stream, connection, (s, c) => {
192
+ stream = s;
193
+ connection = c;
194
+ resolve();
195
+ });
196
+ if (result instanceof Promise) {
197
+ result.catch(reject);
198
+ }
199
+ }
200
+ catch (err) {
201
+ reject(err);
202
+ }
203
+ });
204
+ stream.log.trace('ran middleware', i, mw);
205
+ }
206
+ return stream;
205
207
  }
206
208
  /**
207
209
  * Close the connection
208
210
  */
209
211
  async close(options = {}) {
210
- if (this.status === 'closed' || this.status === 'closing') {
211
- return;
212
- }
213
212
  this.log('closing connection to %a', this.remoteAddr);
214
- this.status = 'closing';
215
213
  if (options.signal == null) {
216
- const signal = AbortSignal.timeout(CLOSE_TIMEOUT);
214
+ const signal = AbortSignal.timeout(this.closeTimeout);
217
215
  setMaxListeners(Infinity, signal);
218
216
  options = {
219
217
  ...options,
220
218
  signal
221
219
  };
222
220
  }
223
- try {
224
- this.log.trace('closing underlying transport');
225
- // ensure remaining streams are closed gracefully
226
- await this.muxer?.close(options);
227
- // close the underlying transport
228
- await this.maConn.close(options);
229
- this.log.trace('updating timeline with close time');
230
- this.status = 'closed';
231
- this.timeline.close = Date.now();
232
- }
233
- catch (err) {
234
- this.log.error('error encountered during graceful close of connection to %a', this.remoteAddr, err);
235
- this.abort(err);
236
- }
221
+ await this.muxer?.close(options);
222
+ await this.maConn.close(options);
237
223
  }
238
224
  abort(err) {
239
- if (this.status === 'closed') {
240
- return;
241
- }
242
- this.log.error('aborting connection to %a due to error', this.remoteAddr, err);
243
- this.status = 'closing';
244
- // ensure remaining streams are aborted
245
225
  this.muxer?.abort(err);
246
- // abort the underlying transport
247
226
  this.maConn.abort(err);
248
- this.status = 'closed';
249
- this.timeline.close = Date.now();
250
227
  }
251
228
  }
252
229
  export function createConnection(components, init) {
@@ -255,7 +232,9 @@ export function createConnection(components, init) {
255
232
  function findIncomingStreamLimit(protocol, registrar) {
256
233
  try {
257
234
  const { options } = registrar.getHandler(protocol);
258
- return options.maxInboundStreams;
235
+ if (options.maxInboundStreams != null) {
236
+ return options.maxInboundStreams;
237
+ }
259
238
  }
260
239
  catch (err) {
261
240
  if (err.name !== 'UnhandledProtocolError') {
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { InvalidMultiaddrError, InvalidParametersError, isPeerId } from '@libp2p/interface';
2
2
  import { peerIdFromString } from '@libp2p/peer-id';
3
- import { isMultiaddr } from '@multiformats/multiaddr';
3
+ import { CODE_P2P, isMultiaddr } from '@multiformats/multiaddr';
4
4
  import { PEER_ID } from '@multiformats/multiaddr-matcher';
5
5
  /**
6
6
  * Extracts a PeerId and/or multiaddr from the passed PeerId or Multiaddr or an
@@ -13,14 +13,14 @@ export function getPeerAddress(peer) {
13
13
  let multiaddrs = Array.isArray(peer) ? peer : [peer];
14
14
  let peerId;
15
15
  if (multiaddrs.length > 0) {
16
- const peerIdStr = multiaddrs[0].getPeerId();
16
+ const peerIdStr = multiaddrs[0].getComponents().findLast(c => c.code === CODE_P2P)?.value;
17
17
  peerId = peerIdStr == null ? undefined : peerIdFromString(peerIdStr);
18
18
  // ensure PeerId is either not set or is consistent
19
19
  multiaddrs.forEach(ma => {
20
20
  if (!isMultiaddr(ma)) {
21
21
  throw new InvalidMultiaddrError('Invalid multiaddr');
22
22
  }
23
- const maPeerIdStr = ma.getPeerId();
23
+ const maPeerIdStr = ma.getComponents().findLast(c => c.code === CODE_P2P)?.value;
24
24
  if (maPeerIdStr == null) {
25
25
  if (peerId != null) {
26
26
  throw new InvalidParametersError('Multiaddrs must all have the same peer id or have no peer id');
@@ -1 +1 @@
1
- {"version":3,"file":"get-peer.js","sourceRoot":"","sources":["../../src/get-peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AASzD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAE,IAAsC;IACpE,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAEpD,IAAI,MAA0B,CAAA;IAE9B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QAC3C,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAEpE,mDAAmD;QACnD,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,qBAAqB,CAAC,mBAAmB,CAAC,CAAA;YACtD,CAAC;YAED,MAAM,WAAW,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;YAElC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,MAAM,IAAI,sBAAsB,CAAC,8DAA8D,CAAC,CAAA;gBAClG,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;gBAE9C,IAAI,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;oBACtC,MAAM,IAAI,sBAAsB,CAAC,8DAA8D,CAAC,CAAA;gBAClG,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,4EAA4E;IAC5E,sCAAsC;IACtC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAClC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,MAAM;QACN,UAAU;KACX,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"get-peer.js","sourceRoot":"","sources":["../../src/get-peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AASzD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAE,IAAsC;IACpE,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAEpD,IAAI,MAA0B,CAAA;IAE9B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK,CAAA;QACzF,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAEpE,mDAAmD;QACnD,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,qBAAqB,CAAC,mBAAmB,CAAC,CAAA;YACtD,CAAC;YAED,MAAM,WAAW,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK,CAAA;YAEhF,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,MAAM,IAAI,sBAAsB,CAAC,8DAA8D,CAAC,CAAA;gBAClG,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;gBAE9C,IAAI,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;oBACtC,MAAM,IAAI,sBAAsB,CAAC,8DAA8D,CAAC,CAAA;gBAClG,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,4EAA4E;IAC5E,sCAAsC;IACtC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAClC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,MAAM;QACN,UAAU;KACX,CAAA;AACH,CAAC"}
@@ -155,8 +155,8 @@ export type Libp2pOptions<T extends ServiceMap = ServiceMap> = Libp2pInit<T> & {
155
155
  * import { createLibp2p } from 'libp2p'
156
156
  * import { tcp } from '@libp2p/tcp'
157
157
  * import { mplex } from '@libp2p/mplex'
158
- * import { noise } from '@chainsafe/libp2p-noise'
159
- * import { yamux } from '@chainsafe/libp2p-yamux'
158
+ * import { noise } from '@libp2p/noise'
159
+ * import { yamux } from '@libp2p/yamux'
160
160
  *
161
161
  * // specify options
162
162
  * const options = {
package/dist/src/index.js CHANGED
@@ -30,8 +30,8 @@ export { dnsaddrResolver } from "./connection-manager/resolvers/index.js";
30
30
  * import { createLibp2p } from 'libp2p'
31
31
  * import { tcp } from '@libp2p/tcp'
32
32
  * import { mplex } from '@libp2p/mplex'
33
- * import { noise } from '@chainsafe/libp2p-noise'
34
- * import { yamux } from '@chainsafe/libp2p-yamux'
33
+ * import { noise } from '@libp2p/noise'
34
+ * import { yamux } from '@libp2p/yamux'
35
35
  *
36
36
  * // specify options
37
37
  * const options = {
@@ -1,7 +1,7 @@
1
1
  import { TypedEventEmitter } from 'main-event';
2
2
  import type { Components } from './components.js';
3
3
  import type { Libp2p as Libp2pInterface, Libp2pInit } from './index.js';
4
- import type { PeerRouting, ContentRouting, Libp2pEvents, PendingDial, ServiceMap, AbortOptions, ComponentLogger, Connection, NewStreamOptions, Stream, Metrics, PeerId, PeerStore, Topology, Libp2pStatus, IsDialableOptions, DialOptions, PublicKey, Ed25519PeerId, Secp256k1PeerId, RSAPublicKey, RSAPeerId, URLPeerId, Ed25519PublicKey, Secp256k1PublicKey, StreamHandler, StreamHandlerOptions } from '@libp2p/interface';
4
+ import type { PeerRouting, ContentRouting, Libp2pEvents, PendingDial, ServiceMap, AbortOptions, ComponentLogger, Connection, NewStreamOptions, Stream, Metrics, PeerId, PeerStore, Topology, Libp2pStatus, IsDialableOptions, DialOptions, PublicKey, Ed25519PeerId, Secp256k1PeerId, RSAPublicKey, RSAPeerId, URLPeerId, Ed25519PublicKey, Secp256k1PublicKey, StreamHandler, StreamHandlerOptions, StreamMiddleware } from '@libp2p/interface';
5
5
  import type { Multiaddr } from '@multiformats/multiaddr';
6
6
  export declare class Libp2p<T extends ServiceMap = ServiceMap> extends TypedEventEmitter<Libp2pEvents> implements Libp2pInterface<T> {
7
7
  #private;
@@ -47,6 +47,8 @@ export declare class Libp2p<T extends ServiceMap = ServiceMap> extends TypedEven
47
47
  unhandle(protocols: string[] | string, options?: AbortOptions): Promise<void>;
48
48
  register(protocol: string, topology: Topology, options?: AbortOptions): Promise<string>;
49
49
  unregister(id: string): void;
50
+ use(protocol: string, middleware: StreamMiddleware | StreamMiddleware[]): void;
51
+ unuse(protocol: string): void;
50
52
  isDialable(multiaddr: Multiaddr, options?: IsDialableOptions): Promise<boolean>;
51
53
  }
52
54
  //# sourceMappingURL=libp2p.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { defaultLogger } from '@libp2p/logger';
4
4
  import { PeerSet } from '@libp2p/peer-collections';
5
5
  import { peerIdFromString } from '@libp2p/peer-id';
6
6
  import { persistentPeerStore } from '@libp2p/peer-store';
7
- import { isMultiaddr } from '@multiformats/multiaddr';
7
+ import { CODE_P2P, isMultiaddr } from '@multiformats/multiaddr';
8
8
  import { MemoryDatastore } from 'datastore-core/memory';
9
9
  import { TypedEventEmitter, setMaxListeners } from 'main-event';
10
10
  import { concat as uint8ArrayConcat } from 'uint8arrays/concat';
@@ -97,8 +97,9 @@ export class Libp2p extends TypedEventEmitter {
97
97
  connectionEncrypters: (init.connectionEncrypters ?? []).map((fn, index) => this.configureComponent(`connection-encryption-${index}`, fn(this.components))),
98
98
  streamMuxers: (init.streamMuxers ?? []).map((fn, index) => this.configureComponent(`stream-muxers-${index}`, fn(this.components))),
99
99
  inboundUpgradeTimeout: init.connectionManager?.inboundUpgradeTimeout,
100
- inboundStreamProtocolNegotiationTimeout: init.connectionManager?.inboundStreamProtocolNegotiationTimeout ?? init.connectionManager?.protocolNegotiationTimeout,
101
- outboundStreamProtocolNegotiationTimeout: init.connectionManager?.outboundStreamProtocolNegotiationTimeout ?? init.connectionManager?.protocolNegotiationTimeout
100
+ inboundStreamProtocolNegotiationTimeout: init.connectionManager?.inboundStreamProtocolNegotiationTimeout,
101
+ outboundStreamProtocolNegotiationTimeout: init.connectionManager?.outboundStreamProtocolNegotiationTimeout,
102
+ connectionCloseTimeout: init.connectionManager?.connectionCloseTimeout
102
103
  });
103
104
  // Setup the transport manager
104
105
  this.configureComponent('transportManager', new DefaultTransportManager(this.components, init.transportManager));
@@ -187,7 +188,7 @@ export class Libp2p extends TypedEventEmitter {
187
188
  await this.components.afterStart?.();
188
189
  this.status = 'started';
189
190
  this.safeDispatchEvent('start', { detail: this });
190
- this.log('libp2p has started');
191
+ this.log('libp2p has started with peer id %p', this.peerId);
191
192
  }
192
193
  catch (err) {
193
194
  this.log.error('An error occurred starting libp2p', err);
@@ -241,8 +242,7 @@ export class Libp2p extends TypedEventEmitter {
241
242
  if (protocols.length === 0) {
242
243
  throw new InvalidParametersError('no protocols were provided to open a stream');
243
244
  }
244
- const connection = await this.dial(peer, options);
245
- return connection.newStream(protocols, options);
245
+ return this.components.connectionManager.openStream(peer, protocols, options);
246
246
  }
247
247
  getMultiaddrs() {
248
248
  return this.components.addressManager.getAddresses();
@@ -252,7 +252,7 @@ export class Libp2p extends TypedEventEmitter {
252
252
  }
253
253
  async hangUp(peer, options = {}) {
254
254
  if (isMultiaddr(peer)) {
255
- peer = peerIdFromString(peer.getPeerId() ?? '');
255
+ peer = peerIdFromString(peer.getComponents().findLast(c => c.code === CODE_P2P)?.value ?? '');
256
256
  }
257
257
  await this.components.connectionManager.closeConnections(peer, options);
258
258
  }
@@ -307,6 +307,12 @@ export class Libp2p extends TypedEventEmitter {
307
307
  unregister(id) {
308
308
  this.components.registrar.unregister(id);
309
309
  }
310
+ use(protocol, middleware) {
311
+ this.components.registrar.use(protocol, Array.isArray(middleware) ? middleware : [middleware]);
312
+ }
313
+ unuse(protocol) {
314
+ this.components.registrar.unuse(protocol);
315
+ }
310
316
  async isDialable(multiaddr, options = {}) {
311
317
  return this.components.connectionManager.isDialable(multiaddr, options);
312
318
  }