libp2p 0.40.0 → 0.41.0-19e96cc

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 (101) hide show
  1. package/README.md +26 -6
  2. package/dist/index.min.js +50 -0
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +1 -1
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/config.d.ts.map +1 -1
  7. package/dist/src/config.js +0 -11
  8. package/dist/src/config.js.map +1 -1
  9. package/dist/src/connection/index.d.ts +83 -0
  10. package/dist/src/connection/index.d.ts.map +1 -0
  11. package/dist/src/connection/index.js +96 -0
  12. package/dist/src/connection/index.js.map +1 -0
  13. package/dist/src/connection-manager/dialer/index.d.ts +13 -14
  14. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
  15. package/dist/src/connection-manager/dialer/index.js +82 -62
  16. package/dist/src/connection-manager/dialer/index.js.map +1 -1
  17. package/dist/src/connection-manager/index.d.ts +7 -115
  18. package/dist/src/connection-manager/index.d.ts.map +1 -1
  19. package/dist/src/connection-manager/index.js +21 -57
  20. package/dist/src/connection-manager/index.js.map +1 -1
  21. package/dist/src/fetch/index.d.ts +14 -0
  22. package/dist/src/fetch/index.d.ts.map +1 -1
  23. package/dist/src/fetch/index.js +29 -3
  24. package/dist/src/fetch/index.js.map +1 -1
  25. package/dist/src/get-peer.d.ts +2 -2
  26. package/dist/src/get-peer.d.ts.map +1 -1
  27. package/dist/src/get-peer.js +2 -5
  28. package/dist/src/get-peer.js.map +1 -1
  29. package/dist/src/index.d.ts +192 -77
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +41 -1
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/insecure/index.d.ts +23 -0
  34. package/dist/src/insecure/index.d.ts.map +1 -1
  35. package/dist/src/insecure/index.js +23 -0
  36. package/dist/src/insecure/index.js.map +1 -1
  37. package/dist/src/keychain/index.d.ts +1 -1
  38. package/dist/src/keychain/index.d.ts.map +1 -1
  39. package/dist/src/libp2p.d.ts +3 -3
  40. package/dist/src/libp2p.d.ts.map +1 -1
  41. package/dist/src/libp2p.js +2 -3
  42. package/dist/src/libp2p.js.map +1 -1
  43. package/dist/src/nat-manager.d.ts.map +1 -1
  44. package/dist/src/nat-manager.js +5 -1
  45. package/dist/src/nat-manager.js.map +1 -1
  46. package/dist/src/pnet/index.d.ts +23 -0
  47. package/dist/src/pnet/index.d.ts.map +1 -1
  48. package/dist/src/pnet/index.js +23 -0
  49. package/dist/src/pnet/index.js.map +1 -1
  50. package/dist/src/pnet/key-generator.d.ts +3 -2
  51. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  52. package/dist/src/pnet/key-generator.js +7 -10
  53. package/dist/src/pnet/key-generator.js.map +1 -1
  54. package/dist/src/registrar.d.ts +5 -0
  55. package/dist/src/registrar.d.ts.map +1 -1
  56. package/dist/src/registrar.js +25 -0
  57. package/dist/src/registrar.js.map +1 -1
  58. package/dist/src/transport-manager.d.ts.map +1 -1
  59. package/dist/src/transport-manager.js +1 -2
  60. package/dist/src/transport-manager.js.map +1 -1
  61. package/dist/src/upgrader.d.ts +1 -1
  62. package/dist/src/upgrader.d.ts.map +1 -1
  63. package/dist/src/upgrader.js +46 -59
  64. package/dist/src/upgrader.js.map +1 -1
  65. package/package.json +15 -14
  66. package/src/address-manager/index.ts +3 -2
  67. package/src/circuit/README.md +6 -6
  68. package/src/config.ts +0 -11
  69. package/src/connection/index.ts +171 -0
  70. package/src/connection-manager/dialer/index.ts +100 -75
  71. package/src/connection-manager/index.ts +29 -192
  72. package/src/fetch/README.md +7 -2
  73. package/src/fetch/index.ts +30 -3
  74. package/src/get-peer.ts +3 -7
  75. package/src/index.ts +224 -83
  76. package/src/insecure/index.ts +24 -0
  77. package/src/keychain/index.ts +1 -1
  78. package/src/libp2p.ts +5 -6
  79. package/src/nat-manager.ts +6 -1
  80. package/src/pnet/README.md +31 -29
  81. package/src/pnet/index.ts +24 -0
  82. package/src/pnet/key-generator.ts +7 -12
  83. package/src/registrar.ts +29 -2
  84. package/src/transport-manager.ts +1 -2
  85. package/src/upgrader.ts +51 -64
  86. package/src/version.ts +1 -1
  87. package/dist/src/metrics/index.d.ts +0 -93
  88. package/dist/src/metrics/index.d.ts.map +0 -1
  89. package/dist/src/metrics/index.js +0 -234
  90. package/dist/src/metrics/index.js.map +0 -1
  91. package/dist/src/metrics/moving-average.d.ts +0 -14
  92. package/dist/src/metrics/moving-average.d.ts.map +0 -1
  93. package/dist/src/metrics/moving-average.js +0 -40
  94. package/dist/src/metrics/moving-average.js.map +0 -1
  95. package/dist/src/metrics/stats.d.ts +0 -87
  96. package/dist/src/metrics/stats.d.ts.map +0 -1
  97. package/dist/src/metrics/stats.js +0 -183
  98. package/dist/src/metrics/stats.js.map +0 -1
  99. package/src/metrics/index.ts +0 -311
  100. package/src/metrics/moving-average.ts +0 -53
  101. package/src/metrics/stats.ts +0 -238
@@ -1,11 +1,8 @@
1
1
  import { logger } from '@libp2p/logger';
2
2
  import errCode from 'err-code';
3
3
  import * as mss from '@libp2p/multistream-select';
4
- import { pipe } from 'it-pipe';
5
- // @ts-expect-error mutable-proxy does not export types
6
- import mutableProxy from 'mutable-proxy';
7
4
  import { codes } from './errors.js';
8
- import { createConnection } from '@libp2p/connection';
5
+ import { createConnection } from './connection/index.js';
9
6
  import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events';
10
7
  import { peerIdFromString } from '@libp2p/peer-id';
11
8
  import { DEFAULT_MAX_INBOUND_STREAMS, DEFAULT_MAX_OUTBOUND_STREAMS } from './registrar.js';
@@ -63,7 +60,7 @@ export class DefaultUpgrader extends EventEmitter {
63
60
  /**
64
61
  * Upgrades an inbound connection
65
62
  */
66
- async upgradeInbound(maConn) {
63
+ async upgradeInbound(maConn, opts) {
67
64
  const accept = await this.components.connectionManager.acceptIncomingConnection(maConn);
68
65
  if (!accept) {
69
66
  throw errCode(new Error('connection denied'), codes.ERR_CONNECTION_DENIED);
@@ -73,9 +70,6 @@ export class DefaultUpgrader extends EventEmitter {
73
70
  let upgradedConn;
74
71
  let muxerFactory;
75
72
  let cryptoProtocol;
76
- let setPeer;
77
- let proxyPeer;
78
- const metrics = this.components.metrics;
79
73
  const timeoutController = new TimeoutController(this.inboundUpgradeTimeout);
80
74
  try {
81
75
  // fails on node < 15.4
@@ -89,35 +83,48 @@ export class DefaultUpgrader extends EventEmitter {
89
83
  if (await this.components.connectionGater.denyInboundConnection(maConn)) {
90
84
  throw errCode(new Error('The multiaddr connection is blocked by gater.acceptConnection'), codes.ERR_CONNECTION_INTERCEPTED);
91
85
  }
92
- if (metrics != null) {
93
- ({ setTarget: setPeer, proxy: proxyPeer } = mutableProxy());
94
- const idString = `${(Math.random() * 1e9).toString(36)}${Date.now()}`;
95
- setPeer({ toString: () => idString });
96
- metrics.trackStream({ stream: maConn, remotePeer: proxyPeer });
97
- }
86
+ this.components.metrics?.trackMultiaddrConnection(maConn);
98
87
  log('starting the inbound connection upgrade');
99
88
  // Protect
100
89
  let protectedConn = maConn;
101
- const protector = this.components.connectionProtector;
102
- if (protector != null) {
103
- log('protecting the inbound connection');
104
- protectedConn = await protector.protect(maConn);
90
+ if (opts?.skipProtection !== true) {
91
+ const protector = this.components.connectionProtector;
92
+ if (protector != null) {
93
+ log('protecting the inbound connection');
94
+ protectedConn = await protector.protect(maConn);
95
+ }
105
96
  }
106
97
  try {
107
98
  // Encrypt the connection
108
- ({
109
- conn: encryptedConn,
110
- remotePeer,
111
- protocol: cryptoProtocol
112
- } = await this._encryptInbound(protectedConn));
113
- if (await this.components.connectionGater.denyInboundEncryptedConnection(remotePeer, {
114
- ...protectedConn,
115
- ...encryptedConn
116
- })) {
117
- throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
99
+ encryptedConn = protectedConn;
100
+ if (opts?.skipEncryption !== true) {
101
+ ({
102
+ conn: encryptedConn,
103
+ remotePeer,
104
+ protocol: cryptoProtocol
105
+ } = await this._encryptInbound(protectedConn));
106
+ if (await this.components.connectionGater.denyInboundEncryptedConnection(remotePeer, {
107
+ ...protectedConn,
108
+ ...encryptedConn
109
+ })) {
110
+ throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
111
+ }
118
112
  }
119
- // Multiplex the connection
120
- if (this.muxers.size > 0) {
113
+ else {
114
+ const idStr = maConn.remoteAddr.getPeerId();
115
+ if (idStr == null) {
116
+ throw errCode(new Error('inbound connection that skipped encryption must have a peer id'), codes.ERR_INVALID_MULTIADDR);
117
+ }
118
+ const remotePeerId = peerIdFromString(idStr);
119
+ cryptoProtocol = 'native';
120
+ remotePeer = remotePeerId;
121
+ }
122
+ upgradedConn = encryptedConn;
123
+ if (opts?.muxerFactory != null) {
124
+ muxerFactory = opts.muxerFactory;
125
+ }
126
+ else if (this.muxers.size > 0) {
127
+ // Multiplex the connection
121
128
  const multiplexed = await this._multiplexInbound({
122
129
  ...protectedConn,
123
130
  ...encryptedConn
@@ -125,9 +132,6 @@ export class DefaultUpgrader extends EventEmitter {
125
132
  muxerFactory = multiplexed.muxerFactory;
126
133
  upgradedConn = multiplexed.stream;
127
134
  }
128
- else {
129
- upgradedConn = encryptedConn;
130
- }
131
135
  }
132
136
  catch (err) {
133
137
  log.error('Failed to upgrade inbound connection', err);
@@ -139,10 +143,6 @@ export class DefaultUpgrader extends EventEmitter {
139
143
  })) {
140
144
  throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
141
145
  }
142
- if (metrics != null) {
143
- metrics.updatePlaceholder(proxyPeer, remotePeer);
144
- setPeer(remotePeer);
145
- }
146
146
  log('Successfully upgraded inbound connection');
147
147
  return this._createConnection({
148
148
  cryptoProtocol,
@@ -175,15 +175,7 @@ export class DefaultUpgrader extends EventEmitter {
175
175
  let upgradedConn;
176
176
  let cryptoProtocol;
177
177
  let muxerFactory;
178
- let setPeer;
179
- let proxyPeer;
180
- const metrics = this.components.metrics;
181
- if (metrics != null) {
182
- ({ setTarget: setPeer, proxy: proxyPeer } = mutableProxy());
183
- const idString = `${(Math.random() * 1e9).toString(36)}${Date.now()}`;
184
- setPeer({ toB58String: () => idString });
185
- metrics.trackStream({ stream: maConn, remotePeer: proxyPeer });
186
- }
178
+ this.components.metrics?.trackMultiaddrConnection(maConn);
187
179
  log('Starting the outbound connection upgrade');
188
180
  // If the transport natively supports encryption, skip connection
189
181
  // protector and encryption
@@ -240,10 +232,6 @@ export class DefaultUpgrader extends EventEmitter {
240
232
  })) {
241
233
  throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
242
234
  }
243
- if (metrics != null) {
244
- metrics.updatePlaceholder(proxyPeer, remotePeer);
245
- setPeer(remotePeer);
246
- }
247
235
  log('Successfully upgraded outbound connection');
248
236
  return this._createConnection({
249
237
  cryptoProtocol,
@@ -276,10 +264,6 @@ export class DefaultUpgrader extends EventEmitter {
276
264
  const protocols = this.components.registrar.getProtocols();
277
265
  const { stream, protocol } = await mss.handle(muxedStream, protocols);
278
266
  log('%s: incoming stream opened on %s', direction, protocol);
279
- const metrics = this.components.metrics;
280
- if (metrics != null) {
281
- metrics.trackStream({ stream, remotePeer, protocol });
282
- }
283
267
  if (connection == null) {
284
268
  return;
285
269
  }
@@ -298,6 +282,7 @@ export class DefaultUpgrader extends EventEmitter {
298
282
  // the peerstore should ensure that the peer is registered with that protocol
299
283
  this.components.peerStore.protoBook.add(remotePeer, [protocol]).catch(err => log.error(err));
300
284
  connection.addStream(muxedStream);
285
+ this.components.metrics?.trackProtocolStream(muxedStream, connection);
301
286
  this._onStream({ connection, stream: muxedStream, protocol });
302
287
  })
303
288
  .catch(err => {
@@ -318,7 +303,6 @@ export class DefaultUpgrader extends EventEmitter {
318
303
  }
319
304
  log('%s: starting new stream on %s', direction, protocols);
320
305
  const muxedStream = await muxer.newStream();
321
- const metrics = this.components.metrics;
322
306
  let controller;
323
307
  try {
324
308
  if (options.signal == null) {
@@ -332,9 +316,6 @@ export class DefaultUpgrader extends EventEmitter {
332
316
  catch { }
333
317
  }
334
318
  const { stream, protocol } = await mss.select(muxedStream, protocols, options);
335
- if (metrics != null) {
336
- metrics.trackStream({ stream, remotePeer, protocol });
337
- }
338
319
  const outgoingLimit = findOutgoingStreamLimit(protocol, this.components.registrar);
339
320
  const streamCount = countStreams(protocol, 'outbound', connection);
340
321
  if (streamCount === outgoingLimit) {
@@ -350,6 +331,7 @@ export class DefaultUpgrader extends EventEmitter {
350
331
  muxedStream.source = stream.source;
351
332
  muxedStream.sink = stream.sink;
352
333
  muxedStream.stat.protocol = protocol;
334
+ this.components.metrics?.trackProtocolStream(muxedStream, connection);
353
335
  return muxedStream;
354
336
  }
355
337
  catch (err) {
@@ -369,7 +351,12 @@ export class DefaultUpgrader extends EventEmitter {
369
351
  }
370
352
  };
371
353
  // Pipe all data through the muxer
372
- pipe(upgradedConn, muxer, upgradedConn).catch(log.error);
354
+ void Promise.all([
355
+ muxer.sink(upgradedConn.source),
356
+ upgradedConn.sink(muxer.source)
357
+ ]).catch(err => {
358
+ log.error(err);
359
+ });
373
360
  }
374
361
  const _timeline = maConn.timeline;
375
362
  maConn.timeline = new Proxy(_timeline, {
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "libp2p",
3
- "version": "0.40.0",
3
+ "version": "0.41.0-19e96cc",
4
4
  "description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p#readme",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "files": [
45
45
  "src",
46
- "dist/src",
46
+ "dist",
47
47
  "!dist/test",
48
48
  "!**/*.tsbuildinfo"
49
49
  ],
@@ -82,6 +82,7 @@
82
82
  "dep-check": "aegir dep-check",
83
83
  "prepublishOnly": "node scripts/update-version.js",
84
84
  "build": "aegir build",
85
+ "docs": "aegir docs",
85
86
  "generate": "run-s generate:proto:*",
86
87
  "generate:proto:circuit": "protons ./src/circuit/pb/index.proto",
87
88
  "generate:proto:fetch": "protons ./src/fetch/pb/proto.proto",
@@ -98,7 +99,6 @@
98
99
  },
99
100
  "dependencies": {
100
101
  "@achingbrain/nat-port-mapper": "^1.0.3",
101
- "@libp2p/connection": "^4.0.2",
102
102
  "@libp2p/crypto": "^1.0.4",
103
103
  "@libp2p/interface-address-manager": "^2.0.0",
104
104
  "@libp2p/interface-connection": "^3.0.2",
@@ -106,7 +106,8 @@
106
106
  "@libp2p/interface-connection-manager": "^1.1.1",
107
107
  "@libp2p/interface-content-routing": "^1.0.2",
108
108
  "@libp2p/interface-dht": "^1.0.1",
109
- "@libp2p/interface-metrics": "^3.0.0",
109
+ "@libp2p/interface-libp2p": "^1.0.0",
110
+ "@libp2p/interface-metrics": "^4.0.0",
110
111
  "@libp2p/interface-peer-discovery": "^1.0.1",
111
112
  "@libp2p/interface-peer-id": "^1.0.4",
112
113
  "@libp2p/interface-peer-info": "^1.0.3",
@@ -124,7 +125,7 @@
124
125
  "@libp2p/peer-id-factory": "^1.0.18",
125
126
  "@libp2p/peer-record": "^4.0.3",
126
127
  "@libp2p/peer-store": "^5.0.0",
127
- "@libp2p/tracked-map": "^2.0.1",
128
+ "@libp2p/tracked-map": "^3.0.0",
128
129
  "@libp2p/utils": "^3.0.2",
129
130
  "@multiformats/mafmt": "^11.0.2",
130
131
  "@multiformats/multiaddr": "^11.0.0",
@@ -150,12 +151,11 @@
150
151
  "it-stream-types": "^1.0.4",
151
152
  "merge-options": "^3.0.4",
152
153
  "multiformats": "^10.0.0",
153
- "mutable-proxy": "^1.0.0",
154
154
  "node-forge": "^1.3.1",
155
155
  "p-fifo": "^1.0.0",
156
156
  "p-retry": "^5.0.0",
157
157
  "p-settle": "^5.0.0",
158
- "private-ip": "^2.3.3",
158
+ "private-ip": "^3.0.0",
159
159
  "protons-runtime": "^4.0.1",
160
160
  "rate-limiter-flexible": "^2.3.11",
161
161
  "retimer": "^3.0.0",
@@ -168,21 +168,22 @@
168
168
  "xsalsa20": "^1.1.0"
169
169
  },
170
170
  "devDependencies": {
171
- "@chainsafe/libp2p-noise": "^9.0.0",
172
- "@chainsafe/libp2p-yamux": "^3.0.0",
171
+ "@chainsafe/libp2p-noise": "^10.0.1",
172
+ "@chainsafe/libp2p-yamux": "^3.0.3",
173
173
  "@libp2p/bootstrap": "^5.0.0",
174
174
  "@libp2p/daemon-client": "^3.0.5",
175
175
  "@libp2p/daemon-server": "^3.0.4",
176
176
  "@libp2p/floodsub": "^5.0.0",
177
177
  "@libp2p/interface-compliance-tests": "^3.0.2",
178
+ "@libp2p/interface-connection-compliance-tests": "^2.0.3",
178
179
  "@libp2p/interface-connection-encrypter-compliance-tests": "^3.0.0",
179
- "@libp2p/interface-mocks": "^7.0.1",
180
+ "@libp2p/interface-mocks": "^8.0.0",
180
181
  "@libp2p/interop": "^3.0.1",
181
- "@libp2p/kad-dht": "^5.0.1",
182
+ "@libp2p/kad-dht": "^6.0.0",
182
183
  "@libp2p/mdns": "^5.0.0",
183
184
  "@libp2p/mplex": "^7.0.0",
184
185
  "@libp2p/pubsub": "^5.0.0",
185
- "@libp2p/tcp": "^5.0.0",
186
+ "@libp2p/tcp": "^6.0.0",
186
187
  "@libp2p/topology": "^3.0.1",
187
188
  "@libp2p/webrtc-star": "^5.0.2",
188
189
  "@libp2p/websockets": "^5.0.0",
@@ -190,7 +191,7 @@
190
191
  "@types/p-fifo": "^1.0.0",
191
192
  "@types/varint": "^6.0.0",
192
193
  "@types/xsalsa20": "^1.1.0",
193
- "aegir": "^37.3.0",
194
+ "aegir": "^37.5.6",
194
195
  "cborg": "^1.8.1",
195
196
  "delay": "^5.0.0",
196
197
  "execa": "^6.1.0",
@@ -204,7 +205,7 @@
204
205
  "p-wait-for": "^5.0.0",
205
206
  "protons": "^6.0.0",
206
207
  "rimraf": "^3.0.2",
207
- "sinon": "^14.0.0",
208
+ "sinon": "^15.0.1",
208
209
  "sinon-ts": "^1.0.0"
209
210
  },
210
211
  "browser": {
@@ -38,7 +38,8 @@ const defaultAddressFilter = (addrs: Multiaddr[]): Multiaddr[] => addrs
38
38
 
39
39
  export class DefaultAddressManager extends EventEmitter<AddressManagerEvents> {
40
40
  private readonly components: DefaultAddressManagerComponents
41
- private readonly listen: Set<string>
41
+ // this is an array to allow for duplicates, e.g. multiples of `/ip4/0.0.0.0/tcp/0`
42
+ private readonly listen: string[]
42
43
  private readonly announce: Set<string>
43
44
  private readonly observed: Set<string>
44
45
  private readonly announceFilter: AddressFilter
@@ -55,7 +56,7 @@ export class DefaultAddressManager extends EventEmitter<AddressManagerEvents> {
55
56
  const { listen = [], announce = [] } = init
56
57
 
57
58
  this.components = components
58
- this.listen = new Set(listen.map(ma => ma.toString()))
59
+ this.listen = listen.map(ma => ma.toString())
59
60
  this.announce = new Set(announce.map(ma => ma.toString()))
60
61
  this.observed = new Set()
61
62
  this.announceFilter = init.announceFilter ?? defaultAddressFilter
@@ -39,9 +39,9 @@ Once you have a circuit relay node running, you can configure other nodes to use
39
39
  ```js
40
40
  import { multiaddr } from '@multiformats/multiaddr'
41
41
  import Libp2p from 'libp2p'
42
- import { TCP } from '@libp2p/tcp'
43
- import { Mplex } from '@libp2p/mplex'
44
- import { Noise } from '@chainsafe/libp2p-noise'
42
+ import { tcp } from '@libp2p/tcp'
43
+ import { mplex } from '@libp2p/mplex'
44
+ import { noise } from '@chainsafe/libp2p-noise'
45
45
 
46
46
  const relayAddr = ...
47
47
 
@@ -50,13 +50,13 @@ const node = await createLibp2p({
50
50
  listen: [multiaddr(`${relayAddr}/p2p-circuit`)]
51
51
  },
52
52
  transports: [
53
- new TCP()
53
+ tcp()
54
54
  ],
55
55
  streamMuxers: [
56
- new Mplex()
56
+ mplex()
57
57
  ],
58
58
  connectionEncryption: [
59
- new Noise()
59
+ noise()
60
60
  ]
61
61
  },
62
62
  config: {
package/src/config.ts CHANGED
@@ -37,17 +37,6 @@ const DefaultConfig: Partial<Libp2pInit> = {
37
37
  transportManager: {
38
38
  faultTolerance: FaultTolerance.FATAL_ALL
39
39
  },
40
- metrics: {
41
- enabled: false,
42
- computeThrottleMaxQueueSize: 1000,
43
- computeThrottleTimeout: 2000,
44
- movingAverageIntervals: [
45
- 60 * 1000, // 1 minute
46
- 5 * 60 * 1000, // 5 minutes
47
- 15 * 60 * 1000 // 15 minutes
48
- ],
49
- maxOldPeersRetention: 50
50
- },
51
40
  peerRouting: {
52
41
  refreshManager: {
53
42
  enabled: true,
@@ -0,0 +1,171 @@
1
+ import type { Multiaddr } from '@multiformats/multiaddr'
2
+ import errCode from 'err-code'
3
+ import { OPEN, CLOSING, CLOSED } from '@libp2p/interface-connection/status'
4
+ import { symbol } from '@libp2p/interface-connection'
5
+ import type { Connection, ConnectionStat, Stream } from '@libp2p/interface-connection'
6
+ import type { PeerId } from '@libp2p/interface-peer-id'
7
+ import { logger } from '@libp2p/logger'
8
+ import type { AbortOptions } from '@libp2p/interfaces'
9
+
10
+ const log = logger('libp2p:connection')
11
+
12
+ interface ConnectionInit {
13
+ remoteAddr: Multiaddr
14
+ remotePeer: PeerId
15
+ newStream: (protocols: string[], options?: AbortOptions) => Promise<Stream>
16
+ close: () => Promise<void>
17
+ getStreams: () => Stream[]
18
+ stat: ConnectionStat
19
+ }
20
+
21
+ /**
22
+ * An implementation of the js-libp2p connection.
23
+ * Any libp2p transport should use an upgrader to return this connection.
24
+ */
25
+ export class ConnectionImpl implements Connection {
26
+ /**
27
+ * Connection identifier.
28
+ */
29
+ public readonly id: string
30
+
31
+ /**
32
+ * Observed multiaddr of the remote peer
33
+ */
34
+ public readonly remoteAddr: Multiaddr
35
+
36
+ /**
37
+ * Remote peer id
38
+ */
39
+ public readonly remotePeer: PeerId
40
+
41
+ /**
42
+ * Connection metadata
43
+ */
44
+ public readonly stat: ConnectionStat
45
+
46
+ /**
47
+ * User provided tags
48
+ *
49
+ */
50
+ public tags: string[]
51
+
52
+ /**
53
+ * Reference to the new stream function of the multiplexer
54
+ */
55
+ private readonly _newStream: (protocols: string[], options?: AbortOptions) => Promise<Stream>
56
+
57
+ /**
58
+ * Reference to the close function of the raw connection
59
+ */
60
+ private readonly _close: () => Promise<void>
61
+
62
+ /**
63
+ * Reference to the getStreams function of the muxer
64
+ */
65
+ private readonly _getStreams: () => Stream[]
66
+
67
+ private _closing: boolean
68
+
69
+ /**
70
+ * An implementation of the js-libp2p connection.
71
+ * Any libp2p transport should use an upgrader to return this connection.
72
+ */
73
+ constructor (init: ConnectionInit) {
74
+ const { remoteAddr, remotePeer, newStream, close, getStreams, stat } = init
75
+
76
+ this.id = `${(parseInt(String(Math.random() * 1e9))).toString(36)}${Date.now()}`
77
+ this.remoteAddr = remoteAddr
78
+ this.remotePeer = remotePeer
79
+ this.stat = {
80
+ ...stat,
81
+ status: OPEN
82
+ }
83
+ this._newStream = newStream
84
+ this._close = close
85
+ this._getStreams = getStreams
86
+ this.tags = []
87
+ this._closing = false
88
+ }
89
+
90
+ get [Symbol.toStringTag] () {
91
+ return 'Connection'
92
+ }
93
+
94
+ get [symbol] () {
95
+ return true
96
+ }
97
+
98
+ /**
99
+ * Get all the streams of the muxer
100
+ */
101
+ get streams () {
102
+ return this._getStreams()
103
+ }
104
+
105
+ /**
106
+ * Create a new stream from this connection
107
+ */
108
+ async newStream (protocols: string | string[], options?: AbortOptions): Promise<Stream> {
109
+ if (this.stat.status === CLOSING) {
110
+ throw errCode(new Error('the connection is being closed'), 'ERR_CONNECTION_BEING_CLOSED')
111
+ }
112
+
113
+ if (this.stat.status === CLOSED) {
114
+ throw errCode(new Error('the connection is closed'), 'ERR_CONNECTION_CLOSED')
115
+ }
116
+
117
+ if (!Array.isArray(protocols)) {
118
+ protocols = [protocols]
119
+ }
120
+
121
+ const stream = await this._newStream(protocols, options)
122
+
123
+ stream.stat.direction = 'outbound'
124
+
125
+ return stream
126
+ }
127
+
128
+ /**
129
+ * Add a stream when it is opened to the registry
130
+ */
131
+ addStream (stream: Stream) {
132
+ stream.stat.direction = 'inbound'
133
+ }
134
+
135
+ /**
136
+ * Remove stream registry after it is closed
137
+ */
138
+ removeStream (id: string) {
139
+
140
+ }
141
+
142
+ /**
143
+ * Close the connection
144
+ */
145
+ async close () {
146
+ if (this.stat.status === CLOSED || this._closing) {
147
+ return
148
+ }
149
+
150
+ this.stat.status = CLOSING
151
+
152
+ // close all streams - this can throw if we're not multiplexed
153
+ try {
154
+ this.streams.forEach(s => s.close())
155
+ } catch (err) {
156
+ log.error(err)
157
+ }
158
+
159
+ // Close raw connection
160
+ this._closing = true
161
+ await this._close()
162
+ this._closing = false
163
+
164
+ this.stat.timeline.close = Date.now()
165
+ this.stat.status = CLOSED
166
+ }
167
+ }
168
+
169
+ export function createConnection (init: ConnectionInit): Connection {
170
+ return new ConnectionImpl(init)
171
+ }