libp2p 0.37.3-e6f646e → 0.38.0
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.
- package/README.md +0 -2
- package/dist/src/circuit/circuit/hop.d.ts +5 -3
- package/dist/src/circuit/circuit/hop.d.ts.map +1 -1
- package/dist/src/circuit/circuit/hop.js +8 -4
- package/dist/src/circuit/circuit/hop.js.map +1 -1
- package/dist/src/circuit/circuit/stop.d.ts +5 -3
- package/dist/src/circuit/circuit/stop.d.ts.map +1 -1
- package/dist/src/circuit/circuit/stop.js +4 -2
- package/dist/src/circuit/circuit/stop.js.map +1 -1
- package/dist/src/circuit/circuit/stream-handler.d.ts +2 -1
- package/dist/src/circuit/circuit/stream-handler.d.ts.map +1 -1
- package/dist/src/circuit/circuit/stream-handler.js +2 -2
- package/dist/src/circuit/circuit/stream-handler.js.map +1 -1
- package/dist/src/circuit/index.d.ts +2 -10
- package/dist/src/circuit/index.d.ts.map +1 -1
- package/dist/src/circuit/index.js.map +1 -1
- package/dist/src/circuit/pb/index.d.ts +5 -4
- package/dist/src/circuit/pb/index.d.ts.map +1 -1
- package/dist/src/circuit/pb/index.js +107 -11
- package/dist/src/circuit/pb/index.js.map +1 -1
- package/dist/src/circuit/transport.d.ts +3 -0
- package/dist/src/circuit/transport.d.ts.map +1 -1
- package/dist/src/circuit/transport.js +79 -57
- package/dist/src/circuit/transport.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +19 -4
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection-manager/dialer/auto-dialer.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/auto-dialer.js +6 -0
- package/dist/src/connection-manager/dialer/auto-dialer.js.map +1 -1
- package/dist/src/connection-manager/dialer/index.d.ts +4 -4
- package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/index.js +10 -10
- package/dist/src/connection-manager/dialer/index.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +8 -1
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +42 -16
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/constants.d.ts +4 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +4 -0
- package/dist/src/constants.js.map +1 -1
- package/dist/src/fetch/index.d.ts +4 -0
- package/dist/src/fetch/index.d.ts.map +1 -1
- package/dist/src/fetch/index.js +25 -6
- package/dist/src/fetch/index.js.map +1 -1
- package/dist/src/fetch/pb/proto.d.ts +4 -3
- package/dist/src/fetch/pb/proto.d.ts.map +1 -1
- package/dist/src/fetch/pb/proto.js +88 -8
- package/dist/src/fetch/pb/proto.js.map +1 -1
- package/dist/src/identify/index.d.ts +1 -1
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js +35 -12
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/identify/pb/message.d.ts +2 -1
- package/dist/src/identify/pb/message.d.ts.map +1 -1
- package/dist/src/identify/pb/message.js +94 -10
- package/dist/src/identify/pb/message.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/insecure/index.d.ts.map +1 -1
- package/dist/src/insecure/index.js +7 -3
- package/dist/src/insecure/index.js.map +1 -1
- package/dist/src/insecure/pb/proto.d.ts +4 -3
- package/dist/src/insecure/pb/proto.d.ts.map +1 -1
- package/dist/src/insecure/pb/proto.js +89 -9
- package/dist/src/insecure/pb/proto.js.map +1 -1
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +3 -2
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/metrics/index.d.ts +1 -2
- package/dist/src/metrics/index.d.ts.map +1 -1
- package/dist/src/metrics/index.js +3 -4
- package/dist/src/metrics/index.js.map +1 -1
- package/dist/src/ping/index.d.ts +4 -0
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/ping/index.js +27 -8
- package/dist/src/ping/index.js.map +1 -1
- package/dist/src/pnet/index.d.ts.map +1 -1
- package/dist/src/pnet/index.js +2 -1
- package/dist/src/pnet/index.js.map +1 -1
- package/dist/src/registrar.d.ts +2 -2
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +2 -2
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/upgrader.d.ts +6 -0
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +121 -75
- package/dist/src/upgrader.js.map +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +48 -47
- package/src/circuit/README.md +2 -2
- package/src/circuit/circuit/hop.ts +18 -9
- package/src/circuit/circuit/stop.ts +9 -4
- package/src/circuit/circuit/stream-handler.ts +5 -4
- package/src/circuit/index.ts +2 -11
- package/src/circuit/pb/index.ts +133 -15
- package/src/circuit/transport.ts +87 -58
- package/src/config.ts +19 -4
- package/src/connection-manager/dialer/auto-dialer.ts +6 -0
- package/src/connection-manager/dialer/index.ts +10 -10
- package/src/connection-manager/index.ts +54 -19
- package/src/constants.ts +5 -0
- package/src/fetch/index.ts +34 -8
- package/src/fetch/pb/proto.ts +109 -11
- package/src/identify/index.ts +41 -19
- package/src/identify/pb/message.ts +111 -11
- package/src/index.ts +1 -0
- package/src/insecure/index.ts +8 -3
- package/src/insecure/pb/proto.ts +111 -12
- package/src/libp2p.ts +3 -2
- package/src/metrics/index.ts +4 -7
- package/src/ping/index.ts +37 -11
- package/src/pnet/index.ts +2 -0
- package/src/registrar.ts +2 -2
- package/src/upgrader.ts +138 -78
- package/src/version.ts +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAa,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC1H,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAa,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC1H,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAY7D,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,GAAG,KAAK,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,2BAA2B,EAAE,MAAM,CAAA;IACnC,sBAAsB,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,MAAM,EAAE,CAAA;IAChC,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,qBAAa,cAAe,YAAW,OAAO,EAAE,SAAS;IAChD,WAAW,EAAE,YAAY,CAAA;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsD;IAC9E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;gBAExB,IAAI,EAAE,WAAW;IAe9B,SAAS;IAIT;;;OAGG;IACG,KAAK;IAQX;;;OAGG;IACG,IAAI;IAiBV;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,QAAQ;IAIR,mBAAmB;IAInB,qBAAqB,CAAE,MAAM,EAAE,sBAAsB;IA8BrD;;;OAGG;IACH,OAAO,CAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAK3C;;OAEG;IACH,YAAY,IAAK,MAAM,EAAE;IAIzB;;OAEG;IACH,WAAW,CAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIjD;;;;OAIG;IACH,kBAAkB,CAAE,MAAM,EAAE,MAAM;IAYlC;;;;OAIG;IACH,UAAU,CAAE,IAAI,EAAE,gBAAgB;IAkClC;;;;;;;;OAQG;IACH,iBAAiB,CAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAwBtD;;;;;;OAMG;IACH,WAAW,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CA+B7C"}
|
|
@@ -197,14 +197,14 @@ export class DefaultMetrics {
|
|
|
197
197
|
trackStream(opts) {
|
|
198
198
|
const { stream, remotePeer, protocol } = opts;
|
|
199
199
|
if (!this.running) {
|
|
200
|
-
return
|
|
200
|
+
return;
|
|
201
201
|
}
|
|
202
202
|
const source = stream.source;
|
|
203
203
|
stream.source = each(source, chunk => this._onMessage({
|
|
204
204
|
remotePeer,
|
|
205
205
|
protocol,
|
|
206
206
|
direction: 'in',
|
|
207
|
-
dataLength: chunk.
|
|
207
|
+
dataLength: chunk.byteLength
|
|
208
208
|
}));
|
|
209
209
|
const sink = stream.sink;
|
|
210
210
|
stream.sink = async (source) => {
|
|
@@ -213,11 +213,10 @@ export class DefaultMetrics {
|
|
|
213
213
|
remotePeer,
|
|
214
214
|
protocol,
|
|
215
215
|
direction: 'out',
|
|
216
|
-
dataLength: chunk.
|
|
216
|
+
dataLength: chunk.byteLength
|
|
217
217
|
});
|
|
218
218
|
}), sink);
|
|
219
219
|
};
|
|
220
|
-
return stream;
|
|
221
220
|
}
|
|
222
221
|
}
|
|
223
222
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,GAAG,MAAM,SAAS,CAAA;AACzB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAa,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ping/index.d.ts
CHANGED
|
@@ -7,6 +7,10 @@ export interface PingServiceInit {
|
|
|
7
7
|
protocolPrefix: string;
|
|
8
8
|
maxInboundStreams: number;
|
|
9
9
|
maxOutboundStreams: number;
|
|
10
|
+
/**
|
|
11
|
+
* How long we should wait for a ping response
|
|
12
|
+
*/
|
|
13
|
+
timeout: number;
|
|
10
14
|
}
|
|
11
15
|
export declare class PingService implements Startable {
|
|
12
16
|
readonly protocol: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ping/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ping/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,WAAY,YAAW,SAAS;IAC3C,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;gBAEzB,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe;IAOpD,KAAK;IAQL,IAAI;IAKV,SAAS;IAIT;;OAEG;IACH,aAAa,CAAE,IAAI,EAAE,kBAAkB;IASvC;;;;;OAKG;IACG,IAAI,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;CAmDvE"}
|
package/dist/src/ping/index.js
CHANGED
|
@@ -7,6 +7,8 @@ import first from 'it-first';
|
|
|
7
7
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
8
8
|
import { PROTOCOL_NAME, PING_LENGTH, PROTOCOL_VERSION } from './constants.js';
|
|
9
9
|
import { abortableDuplex } from 'abortable-iterator';
|
|
10
|
+
import { TimeoutController } from 'timeout-abort-controller';
|
|
11
|
+
import { setMaxListeners } from 'events';
|
|
10
12
|
const log = logger('libp2p:ping');
|
|
11
13
|
export class PingService {
|
|
12
14
|
constructor(components, init) {
|
|
@@ -47,25 +49,42 @@ export class PingService {
|
|
|
47
49
|
*/
|
|
48
50
|
async ping(peer, options = {}) {
|
|
49
51
|
log('dialing %s to %p', this.protocol, peer);
|
|
50
|
-
const connection = await this.components.getConnectionManager().openConnection(peer, options);
|
|
51
|
-
const stream = await connection.newStream([this.protocol], options);
|
|
52
52
|
const start = Date.now();
|
|
53
53
|
const data = randomBytes(PING_LENGTH);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
const connection = await this.components.getConnectionManager().openConnection(peer, options);
|
|
55
|
+
let timeoutController;
|
|
56
|
+
let signal = options.signal;
|
|
57
|
+
let stream;
|
|
58
|
+
// create a timeout if no abort signal passed
|
|
59
|
+
if (signal == null) {
|
|
60
|
+
timeoutController = new TimeoutController(this.init.timeout);
|
|
61
|
+
signal = timeoutController.signal;
|
|
62
|
+
try {
|
|
63
|
+
// fails on node < 15.4
|
|
64
|
+
setMaxListeners?.(Infinity, timeoutController.signal);
|
|
65
|
+
}
|
|
66
|
+
catch { }
|
|
58
67
|
}
|
|
59
68
|
try {
|
|
69
|
+
stream = await connection.newStream([this.protocol], {
|
|
70
|
+
signal
|
|
71
|
+
});
|
|
72
|
+
// make stream abortable
|
|
73
|
+
const source = abortableDuplex(stream, signal);
|
|
60
74
|
const result = await pipe([data], source, async (source) => await first(source));
|
|
61
75
|
const end = Date.now();
|
|
62
|
-
if (result == null || !uint8ArrayEquals(data, result)) {
|
|
76
|
+
if (result == null || !uint8ArrayEquals(data, result.subarray())) {
|
|
63
77
|
throw errCode(new Error('Received wrong ping ack'), codes.ERR_WRONG_PING_ACK);
|
|
64
78
|
}
|
|
65
79
|
return end - start;
|
|
66
80
|
}
|
|
67
81
|
finally {
|
|
68
|
-
|
|
82
|
+
if (timeoutController != null) {
|
|
83
|
+
timeoutController.clear();
|
|
84
|
+
}
|
|
85
|
+
if (stream != null) {
|
|
86
|
+
stream.close();
|
|
87
|
+
}
|
|
69
88
|
}
|
|
70
89
|
}
|
|
71
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ping/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ping/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pnet/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pnet/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAK5F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,EAAE,UAAU,CAAA;CAChB;AAED,qBAAa,+BAAgC,YAAW,mBAAmB;IAClE,GAAG,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;;OAGG;gBACU,IAAI,EAAE,aAAa;IAahC;;;;OAIG;IACG,OAAO,CAAE,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA4C9E"}
|
package/dist/src/pnet/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { codes } from '../errors.js';
|
|
|
8
8
|
import { createBoxStream, createUnboxStream, decodeV1PSK } from './crypto.js';
|
|
9
9
|
import { handshake } from 'it-handshake';
|
|
10
10
|
import { NONCE_LENGTH } from './key-generator.js';
|
|
11
|
+
import map from 'it-map';
|
|
11
12
|
const log = logger('libp2p:pnet');
|
|
12
13
|
export { generateKey } from './key-generator.js';
|
|
13
14
|
export class PreSharedKeyConnectionProtector {
|
|
@@ -55,7 +56,7 @@ export class PreSharedKeyConnectionProtector {
|
|
|
55
56
|
const [internal, external] = duplexPair();
|
|
56
57
|
pipe(external,
|
|
57
58
|
// Encrypt all outbound traffic
|
|
58
|
-
createBoxStream(localNonce, this.psk), shake.stream,
|
|
59
|
+
createBoxStream(localNonce, this.psk), shake.stream, (source) => map(source, (buf) => buf.subarray()),
|
|
59
60
|
// Decrypt all inbound traffic
|
|
60
61
|
createUnboxStream(remoteNonce, this.psk), external).catch(log.error);
|
|
61
62
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pnet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pnet/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/registrar.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import type { Registrar, StreamHandler, Topology } from '@libp2p/interface-regis
|
|
|
3
3
|
import type { PeerProtocolsChangeData } from '@libp2p/interface-peer-store';
|
|
4
4
|
import type { Connection } from '@libp2p/interface-connection';
|
|
5
5
|
import type { Components } from '@libp2p/components';
|
|
6
|
-
export declare const DEFAULT_MAX_INBOUND_STREAMS =
|
|
7
|
-
export declare const DEFAULT_MAX_OUTBOUND_STREAMS =
|
|
6
|
+
export declare const DEFAULT_MAX_INBOUND_STREAMS = 32;
|
|
7
|
+
export declare const DEFAULT_MAX_OUTBOUND_STREAMS = 64;
|
|
8
8
|
/**
|
|
9
9
|
* Responsible for notifying registered protocols of events in the network.
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registrar.d.ts","sourceRoot":"","sources":["../../src/registrar.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEnG,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAIpD,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"registrar.d.ts","sourceRoot":"","sources":["../../src/registrar.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEnG,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAIpD,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAC7C,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAE9C;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;gBAE1B,UAAU,EAAE,UAAU;IAcnC,YAAY;IAOZ,UAAU,CAAE,QAAQ,EAAE,MAAM;IAU5B,aAAa,CAAE,QAAQ,EAAE,MAAM;IAY/B;;OAEG;IACG,MAAM,CAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnG;;;OAGG;IACG,QAAQ,CAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAW5C;;OAEG;IACG,QAAQ,CAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBtE;;OAEG;IACH,UAAU,CAAE,EAAE,EAAE,MAAM;IAYtB;;OAEG;IACH,aAAa,CAAE,GAAG,EAAE,WAAW,CAAC,UAAU,CAAC;IAuB3C;;OAEG;IACH,iBAAiB,CAAE,GAAG,EAAE,WAAW,CAAC,uBAAuB,CAAC;CAsC7D"}
|
package/dist/src/registrar.js
CHANGED
|
@@ -4,8 +4,8 @@ import { codes } from './errors.js';
|
|
|
4
4
|
import { isTopology } from '@libp2p/interface-registrar';
|
|
5
5
|
import merge from 'merge-options';
|
|
6
6
|
const log = logger('libp2p:registrar');
|
|
7
|
-
export const DEFAULT_MAX_INBOUND_STREAMS =
|
|
8
|
-
export const DEFAULT_MAX_OUTBOUND_STREAMS =
|
|
7
|
+
export const DEFAULT_MAX_INBOUND_STREAMS = 32;
|
|
8
|
+
export const DEFAULT_MAX_OUTBOUND_STREAMS = 64;
|
|
9
9
|
/**
|
|
10
10
|
* Responsible for notifying registered protocols of events in the network.
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registrar.js","sourceRoot":"","sources":["../../src/registrar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,UAAU,EAA6C,MAAM,6BAA6B,CAAA;AACnG,OAAO,KAAK,MAAM,eAAe,CAAA;AAMjC,MAAM,GAAG,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,2BAA2B,GAAG,
|
|
1
|
+
{"version":3,"file":"registrar.js","sourceRoot":"","sources":["../../src/registrar.ts"],"names":[],"mappings":"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"}
|
package/dist/src/upgrader.d.ts
CHANGED
|
@@ -25,11 +25,17 @@ export interface CryptoResult extends SecuredConnection {
|
|
|
25
25
|
export interface UpgraderInit {
|
|
26
26
|
connectionEncryption: ConnectionEncrypter[];
|
|
27
27
|
muxers: StreamMuxerFactory[];
|
|
28
|
+
/**
|
|
29
|
+
* An amount of ms by which an inbound connection upgrade
|
|
30
|
+
* must complete
|
|
31
|
+
*/
|
|
32
|
+
inboundUpgradeTimeout: number;
|
|
28
33
|
}
|
|
29
34
|
export declare class DefaultUpgrader extends EventEmitter<UpgraderEvents> implements Upgrader {
|
|
30
35
|
private readonly components;
|
|
31
36
|
private readonly connectionEncryption;
|
|
32
37
|
private readonly muxers;
|
|
38
|
+
private readonly inboundUpgradeTimeout;
|
|
33
39
|
constructor(components: Components, init: UpgraderInit);
|
|
34
40
|
/**
|
|
35
41
|
* Upgrades an inbound connection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAe,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AACpG,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAmB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAe,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AACpG,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAmB,MAAM,oBAAoB,CAAA;AAUhE,UAAU,sBAAsB;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,SAAS,GAAG,UAAU,CAAA;IACjC,MAAM,EAAE,mBAAmB,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAClC;AAED,UAAU,eAAe;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,oBAAoB,EAAE,mBAAmB,EAAE,CAAA;IAC3C,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAE5B;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AA0CD,qBAAa,eAAgB,SAAQ,YAAY,CAAC,cAAc,CAAE,YAAW,QAAQ;IACnF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkC;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;gBAEjC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY;IAmBvD;;OAEG;IACG,cAAc,CAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAuGvE;;OAEG;IACG,eAAe,CAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IA8FxE;;OAEG;IACH,iBAAiB,CAAE,IAAI,EAAE,sBAAsB,GAAG,UAAU;IAoN5D;;OAEG;IACH,SAAS,CAAE,IAAI,EAAE,eAAe,GAAG,IAAI;IAOvC;;OAEG;IACG,eAAe,CAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAyB7E;;;OAGG;IACG,gBAAgB,CAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAyBrG;;;OAGG;IACG,kBAAkB,CAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;KAAC,CAAC;IAgB9K;;;OAGG;IACG,iBAAiB,CAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;KAAC,CAAC;CAc9K"}
|
package/dist/src/upgrader.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger';
|
|
2
2
|
import errCode from 'err-code';
|
|
3
|
-
import
|
|
3
|
+
import * as mss from '@libp2p/multistream-select';
|
|
4
4
|
import { pipe } from 'it-pipe';
|
|
5
5
|
// @ts-expect-error mutable-proxy does not export types
|
|
6
6
|
import mutableProxy from 'mutable-proxy';
|
|
@@ -10,6 +10,9 @@ import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events';
|
|
|
10
10
|
import { peerIdFromString } from '@libp2p/peer-id';
|
|
11
11
|
import { isInitializable } from '@libp2p/components';
|
|
12
12
|
import { DEFAULT_MAX_INBOUND_STREAMS, DEFAULT_MAX_OUTBOUND_STREAMS } from './registrar.js';
|
|
13
|
+
import { TimeoutController } from 'timeout-abort-controller';
|
|
14
|
+
import { abortableDuplex } from 'abortable-iterator';
|
|
15
|
+
import { setMaxListeners } from 'events';
|
|
13
16
|
const log = logger('libp2p:upgrader');
|
|
14
17
|
function findIncomingStreamLimit(protocol, registrar) {
|
|
15
18
|
try {
|
|
@@ -56,6 +59,7 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
56
59
|
init.muxers.forEach(muxer => {
|
|
57
60
|
this.muxers.set(muxer.protocol, muxer);
|
|
58
61
|
});
|
|
62
|
+
this.inboundUpgradeTimeout = init.inboundUpgradeTimeout;
|
|
59
63
|
}
|
|
60
64
|
/**
|
|
61
65
|
* Upgrades an inbound connection
|
|
@@ -69,73 +73,87 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
69
73
|
let setPeer;
|
|
70
74
|
let proxyPeer;
|
|
71
75
|
const metrics = this.components.getMetrics();
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
({ setTarget: setPeer, proxy: proxyPeer } = mutableProxy());
|
|
77
|
-
const idString = `${(Math.random() * 1e9).toString(36)}${Date.now()}`;
|
|
78
|
-
setPeer({ toString: () => idString });
|
|
79
|
-
maConn = metrics.trackStream({ stream: maConn, remotePeer: proxyPeer });
|
|
80
|
-
}
|
|
81
|
-
log('starting the inbound connection upgrade');
|
|
82
|
-
// Protect
|
|
83
|
-
let protectedConn = maConn;
|
|
84
|
-
const protector = this.components.getConnectionProtector();
|
|
85
|
-
if (protector != null) {
|
|
86
|
-
log('protecting the inbound connection');
|
|
87
|
-
protectedConn = await protector.protect(maConn);
|
|
76
|
+
const timeoutController = new TimeoutController(this.inboundUpgradeTimeout);
|
|
77
|
+
try {
|
|
78
|
+
// fails on node < 15.4
|
|
79
|
+
setMaxListeners?.(Infinity, timeoutController.signal);
|
|
88
80
|
}
|
|
81
|
+
catch { }
|
|
89
82
|
try {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
if (
|
|
83
|
+
const abortableStream = abortableDuplex(maConn, timeoutController.signal);
|
|
84
|
+
maConn.source = abortableStream.source;
|
|
85
|
+
maConn.sink = abortableStream.sink;
|
|
86
|
+
if (await this.components.getConnectionGater().denyInboundConnection(maConn)) {
|
|
87
|
+
throw errCode(new Error('The multiaddr connection is blocked by gater.acceptConnection'), codes.ERR_CONNECTION_INTERCEPTED);
|
|
88
|
+
}
|
|
89
|
+
if (metrics != null) {
|
|
90
|
+
({ setTarget: setPeer, proxy: proxyPeer } = mutableProxy());
|
|
91
|
+
const idString = `${(Math.random() * 1e9).toString(36)}${Date.now()}`;
|
|
92
|
+
setPeer({ toString: () => idString });
|
|
93
|
+
metrics.trackStream({ stream: maConn, remotePeer: proxyPeer });
|
|
94
|
+
}
|
|
95
|
+
log('starting the inbound connection upgrade');
|
|
96
|
+
// Protect
|
|
97
|
+
let protectedConn = maConn;
|
|
98
|
+
const protector = this.components.getConnectionProtector();
|
|
99
|
+
if (protector != null) {
|
|
100
|
+
log('protecting the inbound connection');
|
|
101
|
+
protectedConn = await protector.protect(maConn);
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
// Encrypt the connection
|
|
105
|
+
({
|
|
106
|
+
conn: encryptedConn,
|
|
107
|
+
remotePeer,
|
|
108
|
+
protocol: cryptoProtocol
|
|
109
|
+
} = await this._encryptInbound(protectedConn));
|
|
110
|
+
if (await this.components.getConnectionGater().denyInboundEncryptedConnection(remotePeer, {
|
|
111
|
+
...protectedConn,
|
|
112
|
+
...encryptedConn
|
|
113
|
+
})) {
|
|
114
|
+
throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
|
|
115
|
+
}
|
|
116
|
+
// Multiplex the connection
|
|
117
|
+
if (this.muxers.size > 0) {
|
|
118
|
+
const multiplexed = await this._multiplexInbound({
|
|
119
|
+
...protectedConn,
|
|
120
|
+
...encryptedConn
|
|
121
|
+
}, this.muxers);
|
|
122
|
+
muxerFactory = multiplexed.muxerFactory;
|
|
123
|
+
upgradedConn = multiplexed.stream;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
upgradedConn = encryptedConn;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
log.error('Failed to upgrade inbound connection', err);
|
|
131
|
+
await maConn.close(err);
|
|
132
|
+
throw err;
|
|
133
|
+
}
|
|
134
|
+
if (await this.components.getConnectionGater().denyInboundUpgradedConnection(remotePeer, {
|
|
97
135
|
...protectedConn,
|
|
98
136
|
...encryptedConn
|
|
99
137
|
})) {
|
|
100
138
|
throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
|
|
101
139
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
...protectedConn,
|
|
106
|
-
...encryptedConn
|
|
107
|
-
}, this.muxers);
|
|
108
|
-
muxerFactory = multiplexed.muxerFactory;
|
|
109
|
-
upgradedConn = multiplexed.stream;
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
upgradedConn = encryptedConn;
|
|
140
|
+
if (metrics != null) {
|
|
141
|
+
metrics.updatePlaceholder(proxyPeer, remotePeer);
|
|
142
|
+
setPeer(remotePeer);
|
|
113
143
|
}
|
|
144
|
+
log('Successfully upgraded inbound connection');
|
|
145
|
+
return this._createConnection({
|
|
146
|
+
cryptoProtocol,
|
|
147
|
+
direction: 'inbound',
|
|
148
|
+
maConn,
|
|
149
|
+
upgradedConn,
|
|
150
|
+
muxerFactory,
|
|
151
|
+
remotePeer
|
|
152
|
+
});
|
|
114
153
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
await maConn.close(err);
|
|
118
|
-
throw err;
|
|
119
|
-
}
|
|
120
|
-
if (await this.components.getConnectionGater().denyInboundUpgradedConnection(remotePeer, {
|
|
121
|
-
...protectedConn,
|
|
122
|
-
...encryptedConn
|
|
123
|
-
})) {
|
|
124
|
-
throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
|
|
125
|
-
}
|
|
126
|
-
if (metrics != null) {
|
|
127
|
-
metrics.updatePlaceholder(proxyPeer, remotePeer);
|
|
128
|
-
setPeer(remotePeer);
|
|
154
|
+
finally {
|
|
155
|
+
timeoutController.clear();
|
|
129
156
|
}
|
|
130
|
-
log('Successfully upgraded inbound connection');
|
|
131
|
-
return this._createConnection({
|
|
132
|
-
cryptoProtocol,
|
|
133
|
-
direction: 'inbound',
|
|
134
|
-
maConn,
|
|
135
|
-
upgradedConn,
|
|
136
|
-
muxerFactory,
|
|
137
|
-
remotePeer
|
|
138
|
-
});
|
|
139
157
|
}
|
|
140
158
|
/**
|
|
141
159
|
* Upgrades an outbound connection
|
|
@@ -161,7 +179,7 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
161
179
|
({ setTarget: setPeer, proxy: proxyPeer } = mutableProxy());
|
|
162
180
|
const idString = `${(Math.random() * 1e9).toString(36)}${Date.now()}`;
|
|
163
181
|
setPeer({ toB58String: () => idString });
|
|
164
|
-
|
|
182
|
+
metrics.trackStream({ stream: maConn, remotePeer: proxyPeer });
|
|
165
183
|
}
|
|
166
184
|
log('Starting the outbound connection upgrade');
|
|
167
185
|
// Protect
|
|
@@ -232,6 +250,7 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
232
250
|
if (muxerFactory != null) {
|
|
233
251
|
// Create the muxer
|
|
234
252
|
muxer = muxerFactory.createStreamMuxer({
|
|
253
|
+
direction,
|
|
235
254
|
// Run anytime a remote stream is created
|
|
236
255
|
onIncomingStream: muxedStream => {
|
|
237
256
|
if (connection == null) {
|
|
@@ -239,9 +258,8 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
239
258
|
}
|
|
240
259
|
void Promise.resolve()
|
|
241
260
|
.then(async () => {
|
|
242
|
-
const mss = new Listener(muxedStream);
|
|
243
261
|
const protocols = this.components.getRegistrar().getProtocols();
|
|
244
|
-
const { stream, protocol } = await mss.handle(protocols);
|
|
262
|
+
const { stream, protocol } = await mss.handle(muxedStream, protocols);
|
|
245
263
|
log('%s: incoming stream opened on %s', direction, protocol);
|
|
246
264
|
const metrics = this.components.getMetrics();
|
|
247
265
|
if (metrics != null) {
|
|
@@ -253,9 +271,13 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
253
271
|
const incomingLimit = findIncomingStreamLimit(protocol, this.components.getRegistrar());
|
|
254
272
|
const streamCount = countStreams(protocol, 'inbound', connection);
|
|
255
273
|
if (streamCount === incomingLimit) {
|
|
256
|
-
|
|
274
|
+
muxedStream.abort(errCode(new Error(`Too many inbound protocol streams for protocol "${protocol}" - limit ${incomingLimit}`), codes.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));
|
|
275
|
+
return;
|
|
257
276
|
}
|
|
258
277
|
muxedStream.stat.protocol = protocol;
|
|
278
|
+
// If a protocol stream has been successfully negotiated and is to be passed to the application,
|
|
279
|
+
// the peerstore should ensure that the peer is registered with that protocol
|
|
280
|
+
this.components.getPeerStore().protoBook.add(remotePeer, [protocol]).catch(err => log.error(err));
|
|
259
281
|
connection.addStream(muxedStream);
|
|
260
282
|
this._onStream({ connection, stream: { ...muxedStream, ...stream }, protocol });
|
|
261
283
|
})
|
|
@@ -280,19 +302,34 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
280
302
|
}
|
|
281
303
|
log('%s: starting new stream on %s', direction, protocols);
|
|
282
304
|
const muxedStream = muxer.newStream();
|
|
283
|
-
const mss = new Dialer(muxedStream);
|
|
284
305
|
const metrics = this.components.getMetrics();
|
|
306
|
+
let controller;
|
|
285
307
|
try {
|
|
286
|
-
|
|
308
|
+
if (options.signal == null) {
|
|
309
|
+
log('No abort signal was passed while trying to negotiate protocols %s falling back to default timeout', protocols);
|
|
310
|
+
controller = new TimeoutController(30000);
|
|
311
|
+
options.signal = controller.signal;
|
|
312
|
+
try {
|
|
313
|
+
// fails on node < 15.4
|
|
314
|
+
setMaxListeners?.(Infinity, controller.signal);
|
|
315
|
+
}
|
|
316
|
+
catch { }
|
|
317
|
+
}
|
|
318
|
+
const { stream, protocol } = await mss.select(muxedStream, protocols, options);
|
|
287
319
|
if (metrics != null) {
|
|
288
|
-
|
|
320
|
+
metrics.trackStream({ stream, remotePeer, protocol });
|
|
289
321
|
}
|
|
290
322
|
const outgoingLimit = findOutgoingStreamLimit(protocol, this.components.getRegistrar());
|
|
291
323
|
const streamCount = countStreams(protocol, 'outbound', connection);
|
|
292
324
|
if (streamCount === outgoingLimit) {
|
|
293
|
-
|
|
325
|
+
const err = errCode(new Error(`Too many outbound protocol streams for protocol "${protocol}" - limit ${outgoingLimit}`), codes.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);
|
|
326
|
+
muxedStream.abort(err);
|
|
327
|
+
throw err;
|
|
294
328
|
}
|
|
295
329
|
muxedStream.stat.protocol = protocol;
|
|
330
|
+
// If a protocol stream has been successfully negotiated and is to be passed to the application,
|
|
331
|
+
// the peerstore should ensure that the peer is registered with that protocol
|
|
332
|
+
this.components.getPeerStore().protoBook.add(remotePeer, [protocol]).catch(err => log.error(err));
|
|
296
333
|
return {
|
|
297
334
|
...muxedStream,
|
|
298
335
|
...stream,
|
|
@@ -312,6 +349,11 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
312
349
|
}
|
|
313
350
|
throw errCode(err, codes.ERR_UNSUPPORTED_PROTOCOL);
|
|
314
351
|
}
|
|
352
|
+
finally {
|
|
353
|
+
if (controller != null) {
|
|
354
|
+
controller.clear();
|
|
355
|
+
}
|
|
356
|
+
}
|
|
315
357
|
};
|
|
316
358
|
// Pipe all data through the muxer
|
|
317
359
|
pipe(upgradedConn, muxer, upgradedConn).catch(log.error);
|
|
@@ -363,7 +405,7 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
363
405
|
await maConn.close();
|
|
364
406
|
// Ensure remaining streams are closed
|
|
365
407
|
if (muxer != null) {
|
|
366
|
-
muxer.
|
|
408
|
+
muxer.close();
|
|
367
409
|
}
|
|
368
410
|
}
|
|
369
411
|
});
|
|
@@ -384,11 +426,12 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
384
426
|
* Attempts to encrypt the incoming `connection` with the provided `cryptos`
|
|
385
427
|
*/
|
|
386
428
|
async _encryptInbound(connection) {
|
|
387
|
-
const mss = new Listener(connection);
|
|
388
429
|
const protocols = Array.from(this.connectionEncryption.keys());
|
|
389
430
|
log('handling inbound crypto protocol selection', protocols);
|
|
390
431
|
try {
|
|
391
|
-
const { stream, protocol } = await mss.handle(protocols
|
|
432
|
+
const { stream, protocol } = await mss.handle(connection, protocols, {
|
|
433
|
+
writeBytes: true
|
|
434
|
+
});
|
|
392
435
|
const encrypter = this.connectionEncryption.get(protocol);
|
|
393
436
|
if (encrypter == null) {
|
|
394
437
|
throw new Error(`no crypto module found for ${protocol}`);
|
|
@@ -408,11 +451,12 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
408
451
|
* The first `ConnectionEncrypter` module to succeed will be used
|
|
409
452
|
*/
|
|
410
453
|
async _encryptOutbound(connection, remotePeerId) {
|
|
411
|
-
const mss = new Dialer(connection);
|
|
412
454
|
const protocols = Array.from(this.connectionEncryption.keys());
|
|
413
455
|
log('selecting outbound crypto protocol', protocols);
|
|
414
456
|
try {
|
|
415
|
-
const { stream, protocol } = await mss.select(protocols
|
|
457
|
+
const { stream, protocol } = await mss.select(connection, protocols, {
|
|
458
|
+
writeBytes: true
|
|
459
|
+
});
|
|
416
460
|
const encrypter = this.connectionEncryption.get(protocol);
|
|
417
461
|
if (encrypter == null) {
|
|
418
462
|
throw new Error(`no crypto module found for ${protocol}`);
|
|
@@ -432,11 +476,12 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
432
476
|
* muxer will be used for all future streams on the connection.
|
|
433
477
|
*/
|
|
434
478
|
async _multiplexOutbound(connection, muxers) {
|
|
435
|
-
const dialer = new Dialer(connection);
|
|
436
479
|
const protocols = Array.from(muxers.keys());
|
|
437
480
|
log('outbound selecting muxer %s', protocols);
|
|
438
481
|
try {
|
|
439
|
-
const { stream, protocol } = await
|
|
482
|
+
const { stream, protocol } = await mss.select(connection, protocols, {
|
|
483
|
+
writeBytes: true
|
|
484
|
+
});
|
|
440
485
|
log('%s selected as muxer protocol', protocol);
|
|
441
486
|
const muxerFactory = muxers.get(protocol);
|
|
442
487
|
return { stream, muxerFactory };
|
|
@@ -451,11 +496,12 @@ export class DefaultUpgrader extends EventEmitter {
|
|
|
451
496
|
* selected muxer will be used for all future streams on the connection.
|
|
452
497
|
*/
|
|
453
498
|
async _multiplexInbound(connection, muxers) {
|
|
454
|
-
const listener = new Listener(connection);
|
|
455
499
|
const protocols = Array.from(muxers.keys());
|
|
456
500
|
log('inbound handling muxers %s', protocols);
|
|
457
501
|
try {
|
|
458
|
-
const { stream, protocol } = await
|
|
502
|
+
const { stream, protocol } = await mss.handle(connection, protocols, {
|
|
503
|
+
writeBytes: true
|
|
504
|
+
});
|
|
459
505
|
const muxerFactory = muxers.get(protocol);
|
|
460
506
|
return { stream, muxerFactory };
|
|
461
507
|
}
|