@libp2p/websockets 9.0.13 → 9.1.0-5c4a79e5a

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.
@@ -1,105 +1,270 @@
1
- import os from 'os';
2
- import { TypedEventEmitter } from '@libp2p/interface';
1
+ import http from 'node:http';
2
+ import https from 'node:https';
3
+ import net from 'node:net';
4
+ import os from 'node:os';
5
+ import { TypedEventEmitter, setMaxListeners } from '@libp2p/interface';
3
6
  import { ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils/ip-port-to-multiaddr';
4
- import { multiaddr, protocols } from '@multiformats/multiaddr';
5
- import { createServer } from 'it-ws/server';
7
+ import { isLinkLocalIp } from '@libp2p/utils/link-local-ip';
8
+ import { multiaddr } from '@multiformats/multiaddr';
9
+ import { WebSockets, WebSocketsSecure } from '@multiformats/multiaddr-matcher';
10
+ import duplex from 'it-ws/duplex';
11
+ import { pEvent } from 'p-event';
12
+ import * as ws from 'ws';
6
13
  import { socketToMaConn } from './socket-to-conn.js';
7
- class WebSocketListener extends TypedEventEmitter {
8
- connections;
9
- listeningMultiaddr;
10
- server;
14
+ export class WebSocketListener extends TypedEventEmitter {
11
15
  log;
16
+ logger;
17
+ server;
18
+ wsServer;
12
19
  metrics;
20
+ sockets;
21
+ upgrader;
22
+ inboundConnectionUpgradeTimeout;
23
+ httpOptions;
24
+ httpsOptions;
25
+ http;
26
+ https;
13
27
  addr;
28
+ listeningMultiaddr;
14
29
  constructor(components, init) {
15
30
  super();
16
31
  this.log = components.logger.forComponent('libp2p:websockets:listener');
17
- const metrics = components.metrics;
18
- // Keep track of open connections to destroy when the listener is closed
19
- this.connections = new Set();
20
- const self = this; // eslint-disable-line @typescript-eslint/no-this-alias
21
- this.addr = 'unknown';
22
- this.server = createServer({
23
- ...init,
24
- onConnection: (stream) => {
25
- const maConn = socketToMaConn(stream, toMultiaddr(stream.remoteAddress ?? '', stream.remotePort ?? 0), {
26
- logger: components.logger,
27
- metrics: this.metrics?.events,
28
- metricPrefix: `${this.addr} `
29
- });
30
- this.log('new inbound connection %s', maConn.remoteAddr);
31
- this.connections.add(stream);
32
- stream.socket.on('close', function () {
33
- self.connections.delete(stream);
34
- });
35
- init.upgrader.upgradeInbound(maConn)
36
- .catch(async (err) => {
37
- this.log.error('inbound connection failed to upgrade', err);
38
- this.metrics?.errors.increment({ [`${this.addr} inbound_upgrade`]: true });
39
- try {
40
- maConn.abort(err);
41
- }
42
- catch (err) {
43
- this.log.error('inbound connection failed to close after upgrade failed - %e', err);
44
- this.metrics?.errors.increment({ [`${this.addr} inbound_closing_failed`]: true });
45
- }
46
- });
47
- }
32
+ this.logger = components.logger;
33
+ this.upgrader = init.upgrader;
34
+ this.httpOptions = init.http;
35
+ this.httpsOptions = init.https ?? init.http;
36
+ this.inboundConnectionUpgradeTimeout = init.inboundConnectionUpgradeTimeout ?? 5000;
37
+ this.sockets = new Set();
38
+ this.wsServer = new ws.WebSocketServer({
39
+ noServer: true
48
40
  });
49
- this.server.on('listening', () => {
50
- if (metrics != null) {
51
- const { host, port } = this.listeningMultiaddr?.toOptions() ?? {};
52
- this.addr = `${host}:${port}`;
53
- metrics.registerMetricGroup('libp2p_websockets_inbound_connections_total', {
54
- label: 'address',
55
- help: 'Current active connections in WebSocket listener',
56
- calculate: () => {
57
- return {
58
- [this.addr]: this.connections.size
59
- };
60
- }
61
- });
62
- this.metrics = {
63
- status: metrics?.registerMetricGroup('libp2p_websockets_listener_status_info', {
64
- label: 'address',
65
- help: 'Current status of the WebSocket listener socket'
66
- }),
67
- errors: metrics?.registerMetricGroup('libp2p_websockets_listener_errors_total', {
68
- label: 'address',
69
- help: 'Total count of WebSocket listener errors by type'
70
- }),
71
- events: metrics?.registerMetricGroup('libp2p_websockets_listener_events_total', {
72
- label: 'address',
73
- help: 'Total count of WebSocket listener events by type'
74
- })
41
+ this.wsServer.addListener('connection', this.onWsServerConnection.bind(this));
42
+ components.metrics?.registerMetricGroup('libp2p_websockets_inbound_connections_total', {
43
+ label: 'address',
44
+ help: 'Current active connections in WebSocket listener',
45
+ calculate: () => {
46
+ if (this.addr == null) {
47
+ return {};
48
+ }
49
+ return {
50
+ [this.addr]: this.sockets.size
75
51
  };
76
52
  }
77
- this.dispatchEvent(new CustomEvent('listening'));
78
53
  });
79
- this.server.on('error', (err) => {
80
- this.metrics?.errors.increment({ [`${this.addr} listen_error`]: true });
81
- this.dispatchEvent(new CustomEvent('error', {
82
- detail: err
83
- }));
54
+ this.metrics = {
55
+ status: components.metrics?.registerMetricGroup('libp2p_websockets_listener_status_info', {
56
+ label: 'address',
57
+ help: 'Current status of the WebSocket listener socket'
58
+ }),
59
+ errors: components.metrics?.registerMetricGroup('libp2p_websockets_listener_errors_total', {
60
+ label: 'address',
61
+ help: 'Total count of WebSocket listener errors by type'
62
+ }),
63
+ events: components.metrics?.registerMetricGroup('libp2p_websockets_listener_events_total', {
64
+ label: 'address',
65
+ help: 'Total count of WebSocket listener events by type'
66
+ })
67
+ };
68
+ this.server = net.createServer({
69
+ pauseOnConnect: true
70
+ }, (socket) => {
71
+ this.onSocketConnection(socket)
72
+ .catch(err => {
73
+ this.log.error('error handling socket - %e', err);
74
+ socket.destroy();
75
+ });
84
76
  });
85
- this.server.on('close', () => {
86
- this.dispatchEvent(new CustomEvent('close'));
77
+ components.events.addEventListener('certificate:provision', this.onCertificateProvision.bind(this));
78
+ components.events.addEventListener('certificate:renew', this.onCertificateRenew.bind(this));
79
+ }
80
+ async onSocketConnection(socket) {
81
+ this.metrics.events?.increment({ [`${this.addr} connection`]: true });
82
+ let buffer = socket.read(1);
83
+ if (buffer == null) {
84
+ await pEvent(socket, 'readable');
85
+ buffer = socket.read(1);
86
+ }
87
+ // determine if this is an HTTP(s) request
88
+ const byte = buffer[0];
89
+ let server = this.http;
90
+ // https://github.com/mscdex/httpolyglot/blob/1c6c4af65f4cf95a32c918d0fdcc532e0c095740/lib/index.js#L92
91
+ if (byte < 32 || byte >= 127) {
92
+ server = this.https;
93
+ }
94
+ if (server == null) {
95
+ this.log.error('no appropriate listener configured for byte %d', byte);
96
+ socket.destroy();
97
+ return;
98
+ }
99
+ // store the socket so we can close it when the listener closes
100
+ this.sockets.add(socket);
101
+ socket.on('close', () => {
102
+ this.metrics.events?.increment({ [`${this.addr} close`]: true });
103
+ this.sockets.delete(socket);
104
+ });
105
+ socket.on('error', (err) => {
106
+ this.log.error('socket error - %e', err);
107
+ this.metrics.events?.increment({ [`${this.addr} error`]: true });
108
+ socket.destroy();
109
+ });
110
+ socket.once('timeout', () => {
111
+ this.metrics.events?.increment({ [`${this.addr} timeout`]: true });
87
112
  });
113
+ socket.once('end', () => {
114
+ this.metrics.events?.increment({ [`${this.addr} end`]: true });
115
+ });
116
+ // re-queue first data chunk
117
+ socket.unshift(buffer);
118
+ // hand the socket off to the appropriate server
119
+ server.emit('connection', socket);
88
120
  }
89
- async close() {
90
- await Promise.all(Array.from(this.connections).map(async (maConn) => { await maConn.close(); }));
91
- if (this.server.address() == null) {
92
- // not listening, close will throw an error
121
+ onWsServerConnection(socket, req) {
122
+ let addr;
123
+ try {
124
+ addr = this.server.address();
125
+ if (typeof addr === 'string') {
126
+ throw new Error('Cannot listen on unix sockets');
127
+ }
128
+ if (addr == null) {
129
+ throw new Error('Server was closing or not running');
130
+ }
131
+ }
132
+ catch (err) {
133
+ this.log.error('error obtaining remote socket address - %e', err);
134
+ req.destroy(err);
135
+ socket.close();
93
136
  return;
94
137
  }
95
- await this.server.close();
138
+ const stream = {
139
+ ...duplex(socket, {
140
+ remoteAddress: req.socket.remoteAddress ?? '0.0.0.0',
141
+ remotePort: req.socket.remotePort ?? 0
142
+ }),
143
+ localAddress: addr.address,
144
+ localPort: addr.port
145
+ };
146
+ let maConn;
147
+ try {
148
+ maConn = socketToMaConn(stream, toMultiaddr(stream.remoteAddress ?? '', stream.remotePort ?? 0), {
149
+ logger: this.logger,
150
+ metrics: this.metrics?.events,
151
+ metricPrefix: `${this.addr} `
152
+ });
153
+ }
154
+ catch (err) {
155
+ this.log.error('inbound connection failed', err);
156
+ this.metrics.errors?.increment({ [`${this.addr} inbound_to_connection`]: true });
157
+ socket.close();
158
+ return;
159
+ }
160
+ this.log('new inbound connection %s', maConn.remoteAddr);
161
+ const signal = AbortSignal.timeout(this.inboundConnectionUpgradeTimeout);
162
+ setMaxListeners(Infinity, signal);
163
+ this.upgrader.upgradeInbound(maConn, {
164
+ signal
165
+ })
166
+ .catch(async (err) => {
167
+ this.log.error('inbound connection failed to upgrade - %e', err);
168
+ this.metrics.errors?.increment({ [`${this.addr} inbound_upgrade`]: true });
169
+ await maConn.close()
170
+ .catch(err => {
171
+ this.log.error('inbound connection failed to close after upgrade failed', err);
172
+ this.metrics.errors?.increment({ [`${this.addr} inbound_closing_failed`]: true });
173
+ });
174
+ });
175
+ }
176
+ onUpgrade(req, socket, head) {
177
+ this.wsServer.handleUpgrade(req, socket, head, this.onWsServerConnection.bind(this));
178
+ }
179
+ onTLSClientError(err, socket) {
180
+ this.log.error('TLS client error - %e', err);
181
+ socket.destroy();
96
182
  }
97
183
  async listen(ma) {
184
+ if (WebSockets.exactMatch(ma)) {
185
+ this.http = http.createServer(this.httpOptions ?? {}, this.httpRequestHandler.bind(this));
186
+ this.http.addListener('upgrade', this.onUpgrade.bind(this));
187
+ }
188
+ else if (WebSocketsSecure.exactMatch(ma)) {
189
+ this.https = https.createServer(this.httpsOptions ?? {}, this.httpRequestHandler.bind(this));
190
+ this.https.addListener('upgrade', this.onUpgrade.bind(this));
191
+ this.https.addListener('tlsClientError', this.onTLSClientError.bind(this));
192
+ }
98
193
  this.listeningMultiaddr = ma;
99
- await this.server.listen(ma.toOptions());
194
+ const { host, port } = ma.toOptions();
195
+ this.addr = `${host}:${port}`;
196
+ this.server.listen(port, host);
197
+ await new Promise((resolve, reject) => {
198
+ const onListening = () => {
199
+ removeListeners();
200
+ resolve();
201
+ };
202
+ const onError = (err) => {
203
+ this.metrics.errors?.increment({ [`${this.addr} listen_error`]: true });
204
+ removeListeners();
205
+ reject(err);
206
+ };
207
+ const onDrop = () => {
208
+ this.metrics.events?.increment({ [`${this.addr} drop`]: true });
209
+ };
210
+ const removeListeners = () => {
211
+ this.server.removeListener('listening', onListening);
212
+ this.server.removeListener('error', onError);
213
+ this.server.removeListener('drop', onDrop);
214
+ };
215
+ this.server.addListener('listening', onListening);
216
+ this.server.addListener('error', onError);
217
+ this.server.addListener('drop', onDrop);
218
+ });
219
+ this.safeDispatchEvent('listening');
220
+ }
221
+ onCertificateProvision(event) {
222
+ if (this.https != null) {
223
+ this.log('auto-tls certificate found but already listening on https');
224
+ return;
225
+ }
226
+ this.log('auto-tls certificate found, starting https server');
227
+ this.https = https.createServer({
228
+ ...this.httpsOptions,
229
+ ...event.detail
230
+ }, this.httpRequestHandler.bind(this));
231
+ this.https.addListener('upgrade', this.onUpgrade.bind(this));
232
+ this.https.addListener('tlsClientError', this.onTLSClientError.bind(this));
233
+ this.safeDispatchEvent('listening');
234
+ }
235
+ onCertificateRenew(event) {
236
+ // stop accepting new connections
237
+ this.https?.close();
238
+ this.log('auto-tls certificate renewed, restarting https server');
239
+ this.https = https.createServer({
240
+ ...this.httpsOptions,
241
+ ...event.detail
242
+ }, this.httpRequestHandler.bind(this));
243
+ this.https.addListener('upgrade', this.onUpgrade.bind(this));
244
+ this.https.addListener('tlsClientError', this.onTLSClientError.bind(this));
245
+ }
246
+ async close() {
247
+ this.server.close();
248
+ this.http?.close();
249
+ this.https?.close();
250
+ this.wsServer.close();
251
+ // close all connections, must be done after closing the server to prevent
252
+ // race conditions where a new connection is accepted while we are closing
253
+ // the existing ones
254
+ this.http?.closeAllConnections();
255
+ this.https?.closeAllConnections();
256
+ [...this.sockets].forEach(socket => {
257
+ socket.destroy();
258
+ });
259
+ await Promise.all([
260
+ pEvent(this.server, 'close'),
261
+ this.http == null ? null : pEvent(this.http, 'close'),
262
+ this.https == null ? null : pEvent(this.https, 'close'),
263
+ pEvent(this.wsServer, 'close')
264
+ ]);
265
+ this.safeDispatchEvent('close');
100
266
  }
101
267
  getAddrs() {
102
- const multiaddrs = [];
103
268
  const address = this.server.address();
104
269
  if (address == null) {
105
270
  throw new Error('Listener is not ready yet');
@@ -110,35 +275,67 @@ class WebSocketListener extends TypedEventEmitter {
110
275
  if (this.listeningMultiaddr == null) {
111
276
  throw new Error('Listener is not ready yet');
112
277
  }
113
- const ipfsId = this.listeningMultiaddr.getPeerId();
114
- const protos = this.listeningMultiaddr.protos();
115
- // Because TCP will only return the IPv6 version
116
- // we need to capture from the passed multiaddr
117
- if (protos.some(proto => proto.code === protocols('ip4').code)) {
118
- const wsProto = protos.some(proto => proto.code === protocols('ws').code) ? '/ws' : '/wss';
119
- let m = this.listeningMultiaddr.decapsulate('tcp');
120
- m = m.encapsulate(`/tcp/${address.port}${wsProto}`);
121
- if (ipfsId != null) {
122
- m = m.encapsulate(`/p2p/${ipfsId}`);
123
- }
124
- if (m.toString().includes('0.0.0.0')) {
125
- const netInterfaces = os.networkInterfaces();
126
- Object.values(netInterfaces).forEach(niInfos => {
278
+ const options = this.listeningMultiaddr.toOptions();
279
+ const multiaddrs = [];
280
+ if (options.family === 4) {
281
+ if (options.host === '0.0.0.0') {
282
+ Object.values(os.networkInterfaces()).forEach(niInfos => {
127
283
  if (niInfos == null) {
128
284
  return;
129
285
  }
130
286
  niInfos.forEach(ni => {
131
287
  if (ni.family === 'IPv4') {
132
- multiaddrs.push(multiaddr(m.toString().replace('0.0.0.0', ni.address)));
288
+ multiaddrs.push(multiaddr(`/ip${options.family}/${ni.address}/${options.transport}/${address.port}`));
133
289
  }
134
290
  });
135
291
  });
136
292
  }
137
293
  else {
138
- multiaddrs.push(m);
294
+ multiaddrs.push(multiaddr(`/ip${options.family}/${options.host}/${options.transport}/${address.port}`));
139
295
  }
140
296
  }
141
- return multiaddrs;
297
+ else if (options.family === 6) {
298
+ if (options.host === '::') {
299
+ Object.values(os.networkInterfaces()).forEach(niInfos => {
300
+ if (niInfos == null) {
301
+ return;
302
+ }
303
+ for (const ni of niInfos) {
304
+ if (ni.family !== 'IPv6') {
305
+ continue;
306
+ }
307
+ if (isLinkLocalIp(ni.address)) {
308
+ continue;
309
+ }
310
+ multiaddrs.push(multiaddr(`/ip${options.family}/${ni.address}/${options.transport}/${address.port}`));
311
+ }
312
+ });
313
+ }
314
+ else {
315
+ multiaddrs.push(multiaddr(`/ip${options.family}/${options.host}/${options.transport}/${address.port}`));
316
+ }
317
+ }
318
+ const insecureMultiaddrs = [];
319
+ if (this.http != null) {
320
+ multiaddrs.forEach(ma => {
321
+ insecureMultiaddrs.push(ma.encapsulate('/ws'));
322
+ });
323
+ }
324
+ const secureMultiaddrs = [];
325
+ if (this.https != null) {
326
+ multiaddrs.forEach(ma => {
327
+ secureMultiaddrs.push(ma.encapsulate('/tls/ws'));
328
+ });
329
+ }
330
+ return [
331
+ ...insecureMultiaddrs,
332
+ ...secureMultiaddrs
333
+ ];
334
+ }
335
+ httpRequestHandler(req, res) {
336
+ res.writeHead(400);
337
+ res.write('Only WebSocket connections are supported');
338
+ res.end();
142
339
  }
143
340
  }
144
341
  export function createListener(components, init) {
@@ -1 +1 @@
1
- {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/websockets",
3
- "version": "9.0.13",
3
+ "version": "9.1.0-5c4a79e5a",
4
4
  "description": "JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-websockets#readme",
@@ -74,22 +74,22 @@
74
74
  "test:electron-main": "aegir test -t electron-main -f ./dist/test/node.js --cov"
75
75
  },
76
76
  "dependencies": {
77
- "@libp2p/interface": "^2.2.1",
78
- "@libp2p/utils": "^6.2.1",
79
- "@multiformats/multiaddr": "^12.2.3",
80
- "@multiformats/multiaddr-matcher": "^1.4.0",
81
- "@multiformats/multiaddr-to-uri": "^10.0.1",
82
- "@types/ws": "^8.5.10",
83
- "it-ws": "^6.1.1",
77
+ "@libp2p/interface": "2.3.0-5c4a79e5a",
78
+ "@libp2p/utils": "6.3.0-5c4a79e5a",
79
+ "@multiformats/multiaddr": "^12.3.3",
80
+ "@multiformats/multiaddr-matcher": "^1.6.0",
81
+ "@multiformats/multiaddr-to-uri": "^11.0.0",
82
+ "@types/ws": "^8.5.13",
83
+ "it-ws": "^6.1.5",
84
84
  "p-defer": "^4.0.1",
85
- "progress-events": "^1.0.0",
86
- "race-signal": "^1.0.2",
87
- "wherearewe": "^2.0.1",
88
- "ws": "^8.17.0"
85
+ "p-event": "^6.0.1",
86
+ "progress-events": "^1.0.1",
87
+ "race-signal": "^1.1.0",
88
+ "ws": "^8.18.0"
89
89
  },
90
90
  "devDependencies": {
91
- "@libp2p/logger": "^5.1.4",
92
- "aegir": "^44.0.1",
91
+ "@libp2p/logger": "5.1.5-5c4a79e5a",
92
+ "aegir": "^45.0.5",
93
93
  "is-loopback-addr": "^2.0.2",
94
94
  "p-wait-for": "^5.0.2",
95
95
  "sinon": "^19.0.2",