libp2p 0.37.3-b1b2b21 → 0.37.3-ba56c64
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/dist/src/circuit/circuit/hop.d.ts +3 -2
- 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 +2 -1
- 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/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/transport.d.ts +3 -0
- package/dist/src/circuit/transport.d.ts.map +1 -1
- package/dist/src/circuit/transport.js +73 -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/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 +15 -1
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +135 -23
- 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 +19 -6
- package/dist/src/fetch/index.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 +13 -11
- package/dist/src/identify/index.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/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +3 -13
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/metrics/index.d.ts +2 -2
- package/dist/src/metrics/index.d.ts.map +1 -1
- package/dist/src/metrics/index.js +6 -2
- 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 +20 -7
- package/dist/src/ping/index.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 +83 -59
- 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 +13 -12
- package/src/circuit/circuit/hop.ts +13 -6
- package/src/circuit/circuit/stop.ts +7 -3
- package/src/circuit/index.ts +2 -11
- package/src/circuit/transport.ts +79 -58
- package/src/config.ts +19 -4
- package/src/connection-manager/dialer/index.ts +10 -10
- package/src/connection-manager/index.ts +178 -26
- package/src/constants.ts +5 -0
- package/src/fetch/index.ts +28 -8
- package/src/identify/index.ts +16 -14
- package/src/index.ts +1 -0
- package/src/libp2p.ts +3 -14
- package/src/metrics/index.ts +8 -4
- package/src/ping/index.ts +30 -10
- package/src/upgrader.ts +95 -61
- package/src/version.ts +1 -2
|
@@ -4,6 +4,7 @@ import type { Connection } from '@libp2p/interface-connection';
|
|
|
4
4
|
import type { Duplex } from 'it-stream-types';
|
|
5
5
|
import type { Circuit } from '../transport.js';
|
|
6
6
|
import type { ConnectionManager } from '@libp2p/interface-connection-manager';
|
|
7
|
+
import type { AbortOptions } from '@libp2p/interfaces';
|
|
7
8
|
export interface HopRequest {
|
|
8
9
|
connection: Connection;
|
|
9
10
|
request: CircuitPB;
|
|
@@ -12,7 +13,7 @@ export interface HopRequest {
|
|
|
12
13
|
connectionManager: ConnectionManager;
|
|
13
14
|
}
|
|
14
15
|
export declare function handleHop(hopRequest: HopRequest): Promise<void>;
|
|
15
|
-
export interface HopConfig {
|
|
16
|
+
export interface HopConfig extends AbortOptions {
|
|
16
17
|
connection: Connection;
|
|
17
18
|
request: CircuitPB;
|
|
18
19
|
}
|
|
@@ -21,7 +22,7 @@ export interface HopConfig {
|
|
|
21
22
|
* peer. A new, virtual, connection will be created between the two via the relay.
|
|
22
23
|
*/
|
|
23
24
|
export declare function hop(options: HopConfig): Promise<Duplex<Uint8Array>>;
|
|
24
|
-
export interface CanHopOptions {
|
|
25
|
+
export interface CanHopOptions extends AbortOptions {
|
|
25
26
|
connection: Connection;
|
|
26
27
|
}
|
|
27
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hop.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/hop.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"hop.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/hop.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAItD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,SAAS,CAAA;IAClB,aAAa,EAAE,aAAa,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,wBAAsB,SAAS,CAAE,UAAU,EAAE,UAAU,iBA6FtD;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,SAAS,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAsB,GAAG,CAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CA8B1E;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,UAAU,EAAE,UAAU,CAAA;CACvB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAE,OAAO,EAAE,aAAa,oBAyBnD;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAE,OAAO,EAAE,mBAAmB,QAYzD"}
|
|
@@ -86,9 +86,11 @@ export async function handleHop(hopRequest) {
|
|
|
86
86
|
* peer. A new, virtual, connection will be created between the two via the relay.
|
|
87
87
|
*/
|
|
88
88
|
export async function hop(options) {
|
|
89
|
-
const { connection, request } = options;
|
|
89
|
+
const { connection, request, signal } = options;
|
|
90
90
|
// Create a new stream to the relay
|
|
91
|
-
const stream = await connection.newStream(RELAY_CODEC
|
|
91
|
+
const stream = await connection.newStream(RELAY_CODEC, {
|
|
92
|
+
signal
|
|
93
|
+
});
|
|
92
94
|
// Send the HOP request
|
|
93
95
|
const streamHandler = new StreamHandler({ stream });
|
|
94
96
|
streamHandler.write(request);
|
|
@@ -108,9 +110,11 @@ export async function hop(options) {
|
|
|
108
110
|
* Performs a CAN_HOP request to a relay peer, in order to understand its capabilities
|
|
109
111
|
*/
|
|
110
112
|
export async function canHop(options) {
|
|
111
|
-
const { connection } = options;
|
|
113
|
+
const { connection, signal } = options;
|
|
112
114
|
// Create a new stream to the relay
|
|
113
|
-
const stream = await connection.newStream(RELAY_CODEC
|
|
115
|
+
const stream = await connection.newStream(RELAY_CODEC, {
|
|
116
|
+
signal
|
|
117
|
+
});
|
|
114
118
|
// Send the HOP request
|
|
115
119
|
const streamHandler = new StreamHandler({ stream });
|
|
116
120
|
streamHandler.write({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hop.js","sourceRoot":"","sources":["../../../../src/circuit/circuit/hop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"hop.js","sourceRoot":"","sources":["../../../../src/circuit/circuit/hop.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { CircuitRelay as CircuitPB } from '../pb/index.js';
|
|
|
2
2
|
import { StreamHandler } from './stream-handler.js';
|
|
3
3
|
import type { Connection } from '@libp2p/interface-connection';
|
|
4
4
|
import type { Duplex } from 'it-stream-types';
|
|
5
|
+
import type { AbortOptions } from '@libp2p/interfaces';
|
|
5
6
|
export interface HandleStopOptions {
|
|
6
7
|
connection: Connection;
|
|
7
8
|
request: CircuitPB;
|
|
@@ -11,7 +12,7 @@ export interface HandleStopOptions {
|
|
|
11
12
|
* Handles incoming STOP requests
|
|
12
13
|
*/
|
|
13
14
|
export declare function handleStop(options: HandleStopOptions): Duplex<Uint8Array> | undefined;
|
|
14
|
-
export interface StopOptions {
|
|
15
|
+
export interface StopOptions extends AbortOptions {
|
|
15
16
|
connection: Connection;
|
|
16
17
|
request: CircuitPB;
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/stop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/stop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAItD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,SAAS,CAAA;IAClB,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAuBtF;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,SAAS,CAAA;CACnB;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAE,OAAO,EAAE,WAAW,sEA4B/C"}
|
|
@@ -29,8 +29,10 @@ export function handleStop(options) {
|
|
|
29
29
|
* Creates a STOP request
|
|
30
30
|
*/
|
|
31
31
|
export async function stop(options) {
|
|
32
|
-
const { connection, request } = options;
|
|
33
|
-
const stream = await connection.newStream(
|
|
32
|
+
const { connection, request, signal } = options;
|
|
33
|
+
const stream = await connection.newStream(RELAY_CODEC, {
|
|
34
|
+
signal
|
|
35
|
+
});
|
|
34
36
|
log('starting stop request to %p', connection.remotePeer);
|
|
35
37
|
const streamHandler = new StreamHandler({ stream });
|
|
36
38
|
streamHandler.write(request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../../src/circuit/circuit/stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../../src/circuit/circuit/stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAK1C,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAQzC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAE,OAA0B;IACpD,MAAM,EACJ,UAAU,EACV,OAAO,EACP,aAAa,EACd,GAAG,OAAO,CAAA;IAEX,mDAAmD;IACnD,IAAI;QACF,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;KACtC;IAAC,OAAO,GAAQ,EAAE;QACjB,GAAG,CAAC,KAAK,CAAC,qCAAqC,EAAE,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAC5E,OAAM;KACP;IAED,uBAAuB;IACvB,GAAG,CAAC,uBAAuB,CAAC,CAAA;IAC5B,aAAa,CAAC,KAAK,CAAC;QAClB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;QAC3B,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;KAC/B,CAAC,CAAA;IAEF,OAAO,aAAa,CAAC,IAAI,EAAE,CAAA;AAC7B,CAAC;AAOD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAE,OAAoB;IAC9C,MAAM,EACJ,UAAU,EACV,OAAO,EACP,MAAM,EACP,GAAG,OAAO,CAAA;IAEX,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE;QACrD,MAAM;KACP,CAAC,CAAA;IACF,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IACzD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAEnD,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;IAE3C,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,aAAa,CAAC,KAAK,EAAE,CAAA;QACrB,OAAM;KACP;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE;QAC9C,GAAG,CAAC,mCAAmC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;QAC/D,OAAO,aAAa,CAAC,IAAI,EAAE,CAAA;KAC5B;IAED,GAAG,CAAC,kCAAkC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtD,aAAa,CAAC,KAAK,EAAE,CAAA;AACvB,CAAC"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import type { AddressSorter } from '@libp2p/interface-peer-store';
|
|
2
2
|
import type { Startable } from '@libp2p/interfaces/startable';
|
|
3
3
|
import type { Components } from '@libp2p/components';
|
|
4
|
+
import type { RelayConfig } from '../index.js';
|
|
4
5
|
export interface RelayAdvertiseConfig {
|
|
5
6
|
bootDelay?: number;
|
|
6
7
|
enabled?: boolean;
|
|
7
8
|
ttl?: number;
|
|
8
9
|
}
|
|
9
|
-
export interface HopConfig {
|
|
10
|
-
enabled?: boolean;
|
|
11
|
-
active?: boolean;
|
|
12
|
-
}
|
|
13
10
|
export interface AutoRelayConfig {
|
|
14
11
|
enabled?: boolean;
|
|
15
12
|
/**
|
|
@@ -17,13 +14,8 @@ export interface AutoRelayConfig {
|
|
|
17
14
|
*/
|
|
18
15
|
maxListeners: number;
|
|
19
16
|
}
|
|
20
|
-
export interface RelayInit {
|
|
17
|
+
export interface RelayInit extends RelayConfig {
|
|
21
18
|
addressSorter?: AddressSorter;
|
|
22
|
-
maxListeners?: number;
|
|
23
|
-
onError?: (error: Error, msg?: string) => void;
|
|
24
|
-
hop: HopConfig;
|
|
25
|
-
advertise: RelayAdvertiseConfig;
|
|
26
|
-
autoRelay: AutoRelayConfig;
|
|
27
19
|
}
|
|
28
20
|
export declare class Relay implements Startable {
|
|
29
21
|
private readonly components;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/circuit/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/circuit/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAI9C,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC5C,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,qBAAa,KAAM,YAAW,SAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAW;IACtC,OAAO,CAAC,OAAO,CAAC,CAAK;IACrB,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;gBACU,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS;IAepD,SAAS;IAIT;;OAEG;IACG,KAAK;IAWX;;OAEG;IACG,IAAI;IAQV;;OAEG;IACG,iBAAiB;CAcxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/circuit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EACL,kBAAkB,EAClB,oBAAoB;AACtB,8DAA8D;EAC7D,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACpB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/circuit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EACL,kBAAkB,EAClB,oBAAoB;AACtB,8DAA8D;EAC7D,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACpB,MAAM,gBAAgB,CAAA;AAMvB,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;AAqBlC,MAAM,OAAO,KAAK;IAQhB;;OAEG;IACH,YAAa,UAAsB,EAAE,IAAe;QAClD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,8BAA8B;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK;YAChD,CAAC,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE;gBAC1B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,GAAG,IAAI,CAAC,SAAS;aAClB,CAAC;YACF,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,mCAAmC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,EAAE;YAC5E,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAC/B,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAC/E,CAAA;SACF;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACnC;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,CAAA;YACrD,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;SACvD;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,wBAAwB,EAAE;gBAC/C,GAAG,CAAC,KAAK,CAAC,2FAA2F,EAAE,GAAG,CAAC,CAAA;gBAC3G,qBAAqB;gBACrB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;aAClB;iBAAM;gBACL,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACf;SACF;IACH,CAAC;CACF"}
|
|
@@ -5,9 +5,12 @@ import type { AbortOptions } from '@libp2p/interfaces';
|
|
|
5
5
|
import type { IncomingStreamData } from '@libp2p/interface-registrar';
|
|
6
6
|
import type { Listener, Transport, CreateListenerOptions } from '@libp2p/interface-transport';
|
|
7
7
|
import type { Connection } from '@libp2p/interface-connection';
|
|
8
|
+
import type { RelayConfig } from '../index.js';
|
|
8
9
|
export declare class Circuit implements Transport, Initializable {
|
|
9
10
|
private handler?;
|
|
10
11
|
private components;
|
|
12
|
+
private readonly _init;
|
|
13
|
+
constructor(init: RelayConfig);
|
|
11
14
|
init(components: Components): void;
|
|
12
15
|
hopEnabled(): boolean;
|
|
13
16
|
hopActive(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/circuit/transport.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASnD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAqB,MAAM,6BAA6B,CAAA;AAChH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/circuit/transport.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASnD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAqB,MAAM,6BAA6B,CAAA;AAChH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAM9C,qBAAa,OAAQ,YAAW,SAAS,EAAE,aAAa;IACtD,OAAO,CAAC,OAAO,CAAC,CAAmB;IACnC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;gBAEtB,IAAI,EAAE,WAAW;IAI9B,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAYnC,UAAU;IAIV,SAAS;IAIT,IAAI,CAAC,MAAM,CAAC,IAAK,IAAI,CAEpB;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAEK,WAAW,CAAE,IAAI,EAAE,kBAAkB;IAwF3C;;OAEG;IACG,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IA4D3E;;OAEG;IACH,cAAc,CAAE,OAAO,EAAE,qBAAqB,GAAG,QAAQ;IAUzD;;;;;OAKG;IACH,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;CAO9C"}
|
|
@@ -13,10 +13,13 @@ import { StreamHandler } from './circuit/stream-handler.js';
|
|
|
13
13
|
import { symbol } from '@libp2p/interface-transport';
|
|
14
14
|
import { peerIdFromString } from '@libp2p/peer-id';
|
|
15
15
|
import { Components } from '@libp2p/components';
|
|
16
|
+
import { abortableDuplex } from 'abortable-iterator';
|
|
17
|
+
import { TimeoutController } from 'timeout-abort-controller';
|
|
16
18
|
const log = logger('libp2p:circuit');
|
|
17
19
|
export class Circuit {
|
|
18
|
-
constructor() {
|
|
20
|
+
constructor(init) {
|
|
19
21
|
this.components = new Components();
|
|
22
|
+
this._init = init;
|
|
20
23
|
}
|
|
21
24
|
init(components) {
|
|
22
25
|
this.components = components;
|
|
@@ -43,46 +46,18 @@ export class Circuit {
|
|
|
43
46
|
}
|
|
44
47
|
async _onProtocol(data) {
|
|
45
48
|
const { connection, stream } = data;
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
const controller = new TimeoutController(this._init.hop.timeout);
|
|
50
|
+
try {
|
|
51
|
+
const source = abortableDuplex(stream, controller.signal);
|
|
52
|
+
const streamHandler = new StreamHandler({
|
|
53
|
+
stream: {
|
|
54
|
+
...stream,
|
|
55
|
+
...source
|
|
56
|
+
}
|
|
53
57
|
});
|
|
54
|
-
streamHandler.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
let virtualConnection;
|
|
58
|
-
switch (request.type) {
|
|
59
|
-
case CircuitPB.Type.CAN_HOP: {
|
|
60
|
-
log('received CAN_HOP request from %p', connection.remotePeer);
|
|
61
|
-
await handleCanHop({ circuit: this, connection, streamHandler });
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
case CircuitPB.Type.HOP: {
|
|
65
|
-
log('received HOP request from %p', connection.remotePeer);
|
|
66
|
-
virtualConnection = await handleHop({
|
|
67
|
-
connection,
|
|
68
|
-
request,
|
|
69
|
-
streamHandler,
|
|
70
|
-
circuit: this,
|
|
71
|
-
connectionManager: this.components.getConnectionManager()
|
|
72
|
-
});
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
case CircuitPB.Type.STOP: {
|
|
76
|
-
log('received STOP request from %p', connection.remotePeer);
|
|
77
|
-
virtualConnection = await handleStop({
|
|
78
|
-
connection,
|
|
79
|
-
request,
|
|
80
|
-
streamHandler
|
|
81
|
-
});
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
default: {
|
|
85
|
-
log('Request of type %s not supported', request.type);
|
|
58
|
+
const request = await streamHandler.read();
|
|
59
|
+
if (request == null) {
|
|
60
|
+
log('request was invalid, could not read from stream');
|
|
86
61
|
streamHandler.write({
|
|
87
62
|
type: CircuitPB.Type.STATUS,
|
|
88
63
|
code: CircuitPB.Status.MALFORMED_MESSAGE
|
|
@@ -90,24 +65,64 @@ export class Circuit {
|
|
|
90
65
|
streamHandler.close();
|
|
91
66
|
return;
|
|
92
67
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
68
|
+
let virtualConnection;
|
|
69
|
+
switch (request.type) {
|
|
70
|
+
case CircuitPB.Type.CAN_HOP: {
|
|
71
|
+
log('received CAN_HOP request from %p', connection.remotePeer);
|
|
72
|
+
await handleCanHop({ circuit: this, connection, streamHandler });
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
case CircuitPB.Type.HOP: {
|
|
76
|
+
log('received HOP request from %p', connection.remotePeer);
|
|
77
|
+
virtualConnection = await handleHop({
|
|
78
|
+
connection,
|
|
79
|
+
request,
|
|
80
|
+
streamHandler,
|
|
81
|
+
circuit: this,
|
|
82
|
+
connectionManager: this.components.getConnectionManager()
|
|
83
|
+
});
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
case CircuitPB.Type.STOP: {
|
|
87
|
+
log('received STOP request from %p', connection.remotePeer);
|
|
88
|
+
virtualConnection = await handleStop({
|
|
89
|
+
connection,
|
|
90
|
+
request,
|
|
91
|
+
streamHandler
|
|
92
|
+
});
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
default: {
|
|
96
|
+
log('Request of type %s not supported', request.type);
|
|
97
|
+
streamHandler.write({
|
|
98
|
+
type: CircuitPB.Type.STATUS,
|
|
99
|
+
code: CircuitPB.Status.MALFORMED_MESSAGE
|
|
100
|
+
});
|
|
101
|
+
streamHandler.close();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
110
104
|
}
|
|
105
|
+
if (virtualConnection != null) {
|
|
106
|
+
// @ts-expect-error dst peer will not be undefined
|
|
107
|
+
const remoteAddr = new Multiaddr(request.dstPeer.addrs[0]);
|
|
108
|
+
// @ts-expect-error dst peer will not be undefined
|
|
109
|
+
const localAddr = new Multiaddr(request.srcPeer.addrs[0]);
|
|
110
|
+
const maConn = streamToMaConnection({
|
|
111
|
+
stream: virtualConnection,
|
|
112
|
+
remoteAddr,
|
|
113
|
+
localAddr
|
|
114
|
+
});
|
|
115
|
+
const type = request.type === CircuitPB.Type.HOP ? 'relay' : 'inbound';
|
|
116
|
+
log('new %s connection %s', type, maConn.remoteAddr);
|
|
117
|
+
const conn = await this.components.getUpgrader().upgradeInbound(maConn);
|
|
118
|
+
log('%s connection %s upgraded', type, maConn.remoteAddr);
|
|
119
|
+
if (this.handler != null) {
|
|
120
|
+
this.handler(conn);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
finally {
|
|
125
|
+
controller.clear();
|
|
111
126
|
}
|
|
112
127
|
}
|
|
113
128
|
/**
|
|
@@ -137,6 +152,7 @@ export class Circuit {
|
|
|
137
152
|
}
|
|
138
153
|
try {
|
|
139
154
|
const virtualConnection = await hop({
|
|
155
|
+
...options,
|
|
140
156
|
connection: relayConnection,
|
|
141
157
|
request: {
|
|
142
158
|
type: CircuitPB.Type.HOP,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/circuit/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAA;AAM9D,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;AAEpC,MAAM,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/circuit/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AA8F1D,wBAAgB,cAAc,CAAE,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,UAAU,CAyB9E"}
|
package/dist/src/config.js
CHANGED
|
@@ -7,6 +7,7 @@ import { publicAddressesFirst } from '@libp2p/utils/address-sort';
|
|
|
7
7
|
import { FaultTolerance } from './transport-manager.js';
|
|
8
8
|
import { codes, messages } from './errors.js';
|
|
9
9
|
import errCode from 'err-code';
|
|
10
|
+
import { isNode, isBrowser, isWebWorker, isElectronMain, isElectronRenderer, isReactNative } from 'wherearewe';
|
|
10
11
|
const DefaultConfig = {
|
|
11
12
|
addresses: {
|
|
12
13
|
listen: [],
|
|
@@ -22,6 +23,7 @@ const DefaultConfig = {
|
|
|
22
23
|
maxParallelDials: Constants.MAX_PARALLEL_DIALS,
|
|
23
24
|
maxDialsPerPeer: Constants.MAX_PER_PEER_DIALS,
|
|
24
25
|
dialTimeout: Constants.DIAL_TIMEOUT,
|
|
26
|
+
inboundUpgradeTimeout: Constants.INBOUND_UPGRADE_TIMEOUT,
|
|
25
27
|
resolvers: {
|
|
26
28
|
dnsaddr: dnsaddrResolver
|
|
27
29
|
},
|
|
@@ -63,7 +65,8 @@ const DefaultConfig = {
|
|
|
63
65
|
},
|
|
64
66
|
hop: {
|
|
65
67
|
enabled: false,
|
|
66
|
-
active: false
|
|
68
|
+
active: false,
|
|
69
|
+
timeout: 30000
|
|
67
70
|
},
|
|
68
71
|
autoRelay: {
|
|
69
72
|
enabled: false,
|
|
@@ -75,7 +78,8 @@ const DefaultConfig = {
|
|
|
75
78
|
host: {
|
|
76
79
|
agentVersion: AGENT_VERSION
|
|
77
80
|
},
|
|
78
|
-
|
|
81
|
+
// https://github.com/libp2p/go-libp2p/blob/8d2e54e1637041d5cf4fac1e531287560bd1f4ac/p2p/protocol/identify/id.go#L48
|
|
82
|
+
timeout: 60000,
|
|
79
83
|
maxInboundStreams: 1,
|
|
80
84
|
maxOutboundStreams: 1,
|
|
81
85
|
maxPushIncomingStreams: 1,
|
|
@@ -84,12 +88,14 @@ const DefaultConfig = {
|
|
|
84
88
|
ping: {
|
|
85
89
|
protocolPrefix: 'ipfs',
|
|
86
90
|
maxInboundStreams: 1,
|
|
87
|
-
maxOutboundStreams: 1
|
|
91
|
+
maxOutboundStreams: 1,
|
|
92
|
+
timeout: 10000
|
|
88
93
|
},
|
|
89
94
|
fetch: {
|
|
90
95
|
protocolPrefix: 'libp2p',
|
|
91
96
|
maxInboundStreams: 1,
|
|
92
|
-
maxOutboundStreams: 1
|
|
97
|
+
maxOutboundStreams: 1,
|
|
98
|
+
timeout: 10000
|
|
93
99
|
}
|
|
94
100
|
};
|
|
95
101
|
export function validateConfig(opts) {
|
|
@@ -103,6 +109,15 @@ export function validateConfig(opts) {
|
|
|
103
109
|
if (resultingOptions.connectionProtector === null && globalThis.process?.env?.LIBP2P_FORCE_PNET != null) { // eslint-disable-line no-undef
|
|
104
110
|
throw errCode(new Error(messages.ERR_PROTECTOR_REQUIRED), codes.ERR_PROTECTOR_REQUIRED);
|
|
105
111
|
}
|
|
112
|
+
// Append user agent version to default AGENT_VERSION depending on the environment
|
|
113
|
+
if (resultingOptions.identify.host.agentVersion === AGENT_VERSION) {
|
|
114
|
+
if (isNode || isElectronMain) {
|
|
115
|
+
resultingOptions.identify.host.agentVersion += ` UserAgent=${globalThis.process.version}`;
|
|
116
|
+
}
|
|
117
|
+
else if (isBrowser || isWebWorker || isElectronRenderer || isReactNative) {
|
|
118
|
+
resultingOptions.identify.host.agentVersion += ` UserAgent=${globalThis.navigator.userAgent}`;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
106
121
|
return resultingOptions;
|
|
107
122
|
}
|
|
108
123
|
//# sourceMappingURL=config.js.map
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGvD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,OAAO,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,14 +78,14 @@ export declare class Dialer implements Startable, Initializable {
|
|
|
78
78
|
* The dial to the first address that is successfully able to upgrade a connection
|
|
79
79
|
* will be used.
|
|
80
80
|
*/
|
|
81
|
-
_createCancellableDialTarget(peer: PeerId): Promise<DialTarget>;
|
|
81
|
+
_createCancellableDialTarget(peer: PeerId, options: AbortOptions): Promise<DialTarget>;
|
|
82
82
|
/**
|
|
83
83
|
* Creates a DialTarget. The DialTarget is used to create and track
|
|
84
84
|
* the DialRequest to a given peer.
|
|
85
85
|
* If a multiaddr is received it should be the first address attempted.
|
|
86
86
|
* Multiaddrs not supported by the available transports will be filtered out.
|
|
87
87
|
*/
|
|
88
|
-
_createDialTarget(peer: PeerId): Promise<DialTarget>;
|
|
88
|
+
_createDialTarget(peer: PeerId, options: AbortOptions): Promise<DialTarget>;
|
|
89
89
|
/**
|
|
90
90
|
* Creates a PendingDial that wraps the underlying DialRequest
|
|
91
91
|
*/
|
|
@@ -95,10 +95,10 @@ export declare class Dialer implements Startable, Initializable {
|
|
|
95
95
|
/**
|
|
96
96
|
* Resolve multiaddr recursively
|
|
97
97
|
*/
|
|
98
|
-
_resolve(ma: Multiaddr): Promise<Multiaddr[]>;
|
|
98
|
+
_resolve(ma: Multiaddr, options: AbortOptions): Promise<Multiaddr[]>;
|
|
99
99
|
/**
|
|
100
100
|
* Resolve a given multiaddr. If this fails, an empty array will be returned
|
|
101
101
|
*/
|
|
102
|
-
_resolveRecord(ma: Multiaddr): Promise<Multiaddr[]>;
|
|
102
|
+
_resolveRecord(ma: Multiaddr, options: AbortOptions): Promise<Multiaddr[]>;
|
|
103
103
|
}
|
|
104
104
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAI5D,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAU3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAGvD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAQxE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,iBAAiB,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAC7B,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAE7B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACpC,OAAO,CAAC,EAAE,uBAAuB,CAAA;CAClC;AAED,qBAAa,MAAO,YAAW,SAAS,EAAE,aAAa;IACrD,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACjC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACtC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACzD,OAAO,CAAC,OAAO,CAAS;gBAEX,IAAI,GAAE,UAAe;IAuBlC,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAInC,SAAS;IAIH,KAAK;IAIX;;OAEG;IACG,IAAI;IAkBV;;;;OAIG;IACG,IAAI,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CtF;;;;OAIG;IACG,4BAA4B,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,7 +91,7 @@ export class Dialer {
|
|
|
91
91
|
throw errCode(new Error('The dial request is blocked by gater.allowDialPeer'), codes.ERR_PEER_DIAL_INTERCEPTED);
|
|
92
92
|
}
|
|
93
93
|
log('creating dial target for %p', id);
|
|
94
|
-
const dialTarget = await this._createCancellableDialTarget(id);
|
|
94
|
+
const dialTarget = await this._createCancellableDialTarget(id, options);
|
|
95
95
|
if (dialTarget.addrs.length === 0) {
|
|
96
96
|
throw errCode(new Error('The dial request has no valid addresses'), codes.ERR_NO_VALID_ADDRESSES);
|
|
97
97
|
}
|
|
@@ -119,7 +119,7 @@ export class Dialer {
|
|
|
119
119
|
* The dial to the first address that is successfully able to upgrade a connection
|
|
120
120
|
* will be used.
|
|
121
121
|
*/
|
|
122
|
-
async _createCancellableDialTarget(peer) {
|
|
122
|
+
async _createCancellableDialTarget(peer, options) {
|
|
123
123
|
// Make dial target promise cancellable
|
|
124
124
|
const id = `${(parseInt(String(Math.random() * 1e9), 10)).toString()}${Date.now()}`;
|
|
125
125
|
const cancellablePromise = new Promise((resolve, reject) => {
|
|
@@ -127,7 +127,7 @@ export class Dialer {
|
|
|
127
127
|
});
|
|
128
128
|
try {
|
|
129
129
|
const dialTarget = await Promise.race([
|
|
130
|
-
this._createDialTarget(peer),
|
|
130
|
+
this._createDialTarget(peer, options),
|
|
131
131
|
cancellablePromise
|
|
132
132
|
]);
|
|
133
133
|
return dialTarget;
|
|
@@ -142,7 +142,7 @@ export class Dialer {
|
|
|
142
142
|
* If a multiaddr is received it should be the first address attempted.
|
|
143
143
|
* Multiaddrs not supported by the available transports will be filtered out.
|
|
144
144
|
*/
|
|
145
|
-
async _createDialTarget(peer) {
|
|
145
|
+
async _createDialTarget(peer, options) {
|
|
146
146
|
const knownAddrs = await pipe(await this.components.getPeerStore().addressBook.get(peer), (source) => filter(source, async (address) => {
|
|
147
147
|
return !(await this.components.getConnectionGater().denyDialMultiaddr(peer, address.multiaddr));
|
|
148
148
|
}), (source) => sort(source, this.addressSorter), (source) => map(source, (address) => {
|
|
@@ -154,7 +154,7 @@ export class Dialer {
|
|
|
154
154
|
}), async (source) => await all(source));
|
|
155
155
|
const addrs = [];
|
|
156
156
|
for (const a of knownAddrs) {
|
|
157
|
-
const resolvedAddrs = await this._resolve(a);
|
|
157
|
+
const resolvedAddrs = await this._resolve(a, options);
|
|
158
158
|
resolvedAddrs.forEach(ra => addrs.push(ra));
|
|
159
159
|
}
|
|
160
160
|
// Multiaddrs not supported by the available transports will be filtered out.
|
|
@@ -228,7 +228,7 @@ export class Dialer {
|
|
|
228
228
|
/**
|
|
229
229
|
* Resolve multiaddr recursively
|
|
230
230
|
*/
|
|
231
|
-
async _resolve(ma) {
|
|
231
|
+
async _resolve(ma, options) {
|
|
232
232
|
// TODO: recursive logic should live in multiaddr once dns4/dns6 support is in place
|
|
233
233
|
// Now only supporting resolve for dnsaddr
|
|
234
234
|
const resolvableProto = ma.protoNames().includes('dnsaddr');
|
|
@@ -236,9 +236,9 @@ export class Dialer {
|
|
|
236
236
|
if (!resolvableProto) {
|
|
237
237
|
return [ma];
|
|
238
238
|
}
|
|
239
|
-
const resolvedMultiaddrs = await this._resolveRecord(ma);
|
|
239
|
+
const resolvedMultiaddrs = await this._resolveRecord(ma, options);
|
|
240
240
|
const recursiveMultiaddrs = await Promise.all(resolvedMultiaddrs.map(async (nm) => {
|
|
241
|
-
return await this._resolve(nm);
|
|
241
|
+
return await this._resolve(nm, options);
|
|
242
242
|
}));
|
|
243
243
|
const addrs = recursiveMultiaddrs.flat();
|
|
244
244
|
return addrs.reduce((array, newM) => {
|
|
@@ -251,10 +251,10 @@ export class Dialer {
|
|
|
251
251
|
/**
|
|
252
252
|
* Resolve a given multiaddr. If this fails, an empty array will be returned
|
|
253
253
|
*/
|
|
254
|
-
async _resolveRecord(ma) {
|
|
254
|
+
async _resolveRecord(ma, options) {
|
|
255
255
|
try {
|
|
256
256
|
ma = new Multiaddr(ma.toString()); // Use current multiaddr module
|
|
257
|
-
const multiaddrs = await ma.resolve();
|
|
257
|
+
const multiaddrs = await ma.resolve(options);
|
|
258
258
|
return multiaddrs;
|
|
259
259
|
}
|
|
260
260
|
catch (err) {
|