libp2p 0.37.3 → 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 +1 -2
- package/dist/src/address-manager/index.d.ts +2 -2
- package/dist/src/address-manager/index.d.ts.map +1 -1
- package/dist/src/circuit/auto-relay.d.ts +4 -4
- package/dist/src/circuit/auto-relay.d.ts.map +1 -1
- package/dist/src/circuit/circuit/hop.d.ts +7 -5
- 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 +6 -4
- 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 +3 -2
- 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 +4 -12
- package/dist/src/circuit/index.d.ts.map +1 -1
- package/dist/src/circuit/index.js.map +1 -1
- package/dist/src/circuit/listener.d.ts +3 -3
- package/dist/src/circuit/listener.d.ts.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 +8 -5
- package/dist/src/circuit/transport.d.ts.map +1 -1
- package/dist/src/circuit/transport.js +81 -59
- package/dist/src/circuit/transport.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +27 -4
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/auto-dialer.d.ts +2 -2
- 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/dial-request.d.ts +1 -1
- package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/index.d.ts +9 -9
- package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/index.js +11 -11
- package/dist/src/connection-manager/dialer/index.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +20 -16
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +185 -65
- 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/content-routing/index.d.ts +4 -4
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/utils.d.ts +2 -2
- package/dist/src/content-routing/utils.d.ts.map +1 -1
- package/dist/src/dht/dht-content-routing.d.ts +3 -3
- package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
- package/dist/src/dht/dht-peer-routing.d.ts +5 -5
- package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
- package/dist/src/dht/dummy-dht.d.ts +3 -3
- package/dist/src/dht/dummy-dht.d.ts.map +1 -1
- package/dist/src/dht/dummy-dht.js +1 -1
- package/dist/src/dht/dummy-dht.js.map +1 -1
- package/dist/src/errors.d.ts +4 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +3 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/fetch/index.d.ts +11 -4
- package/dist/src/fetch/index.d.ts.map +1 -1
- package/dist/src/fetch/index.js +82 -41
- 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/get-peer.d.ts +2 -2
- package/dist/src/get-peer.d.ts.map +1 -1
- package/dist/src/get-peer.js +1 -1
- package/dist/src/get-peer.js.map +1 -1
- package/dist/src/identify/index.d.ts +8 -8
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js +49 -34
- 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 +18 -17
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/insecure/index.d.ts +2 -2
- package/dist/src/insecure/index.d.ts.map +1 -1
- package/dist/src/insecure/index.js +8 -4
- 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/keychain/index.d.ts +2 -2
- package/dist/src/keychain/index.d.ts.map +1 -1
- package/dist/src/libp2p.d.ts +14 -14
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +17 -17
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/metrics/index.d.ts +4 -5
- package/dist/src/metrics/index.d.ts.map +1 -1
- package/dist/src/metrics/index.js +9 -6
- package/dist/src/metrics/index.js.map +1 -1
- package/dist/src/metrics/moving-average.d.ts +1 -1
- package/dist/src/metrics/moving-average.d.ts.map +1 -1
- package/dist/src/metrics/stats.d.ts +1 -1
- package/dist/src/metrics/stats.d.ts.map +1 -1
- package/dist/src/nat-manager.d.ts +1 -1
- package/dist/src/nat-manager.d.ts.map +1 -1
- package/dist/src/peer-record-updater.d.ts +1 -1
- package/dist/src/peer-record-updater.d.ts.map +1 -1
- package/dist/src/peer-routing.d.ts +4 -4
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/ping/index.d.ts +10 -3
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/ping/index.js +32 -9
- package/dist/src/ping/index.js.map +1 -1
- package/dist/src/pnet/index.d.ts +1 -2
- 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/pubsub/dummy-pubsub.d.ts +2 -2
- package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -1
- package/dist/src/registrar.d.ts +10 -8
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +63 -44
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/transport-manager.d.ts +3 -3
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/upgrader.d.ts +12 -6
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +183 -82
- 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 +66 -42
- package/src/address-manager/index.ts +2 -2
- package/src/circuit/README.md +2 -2
- package/src/circuit/auto-relay.ts +4 -4
- package/src/circuit/circuit/hop.ts +20 -11
- package/src/circuit/circuit/stop.ts +10 -5
- package/src/circuit/circuit/stream-handler.ts +6 -5
- package/src/circuit/index.ts +4 -13
- package/src/circuit/listener.ts +3 -3
- package/src/circuit/pb/index.ts +133 -15
- package/src/circuit/transport.ts +92 -63
- package/src/config.ts +27 -4
- package/src/connection-manager/auto-dialler.ts +1 -1
- package/src/connection-manager/dialer/auto-dialer.ts +8 -2
- package/src/connection-manager/dialer/dial-request.ts +1 -1
- package/src/connection-manager/dialer/index.ts +15 -15
- package/src/connection-manager/index.ts +239 -82
- package/src/constants.ts +5 -0
- package/src/content-routing/index.ts +2 -2
- package/src/content-routing/utils.ts +2 -2
- package/src/dht/dht-content-routing.ts +2 -2
- package/src/dht/dht-peer-routing.ts +3 -3
- package/src/dht/dummy-dht.ts +3 -3
- package/src/errors.ts +4 -1
- package/src/fetch/index.ts +120 -53
- package/src/fetch/pb/proto.ts +109 -11
- package/src/get-peer.ts +3 -3
- package/src/identify/index.ts +64 -47
- package/src/identify/pb/message.ts +111 -11
- package/src/index.ts +18 -17
- package/src/insecure/index.ts +11 -6
- package/src/insecure/pb/proto.ts +111 -12
- package/src/keychain/index.ts +2 -2
- package/src/libp2p.ts +34 -29
- package/src/metrics/index.ts +13 -12
- package/src/metrics/moving-average.ts +1 -1
- package/src/metrics/stats.ts +1 -1
- package/src/nat-manager.ts +1 -1
- package/src/peer-record-updater.ts +1 -1
- package/src/peer-routing.ts +4 -4
- package/src/ping/index.ts +48 -15
- package/src/pnet/index.ts +3 -2
- package/src/pubsub/dummy-pubsub.ts +2 -2
- package/src/registrar.ts +79 -55
- package/src/transport-manager.ts +3 -3
- package/src/upgrader.ts +223 -93
- package/src/version.ts +1 -2
|
@@ -10,13 +10,17 @@ import { createListener } from './listener.js';
|
|
|
10
10
|
import { handleCanHop, handleHop, hop } from './circuit/hop.js';
|
|
11
11
|
import { handleStop } from './circuit/stop.js';
|
|
12
12
|
import { StreamHandler } from './circuit/stream-handler.js';
|
|
13
|
-
import { symbol } from '@libp2p/
|
|
13
|
+
import { symbol } from '@libp2p/interface-transport';
|
|
14
14
|
import { peerIdFromString } from '@libp2p/peer-id';
|
|
15
|
-
import { Components } from '@libp2p/
|
|
15
|
+
import { Components } from '@libp2p/components';
|
|
16
|
+
import { abortableDuplex } from 'abortable-iterator';
|
|
17
|
+
import { TimeoutController } from 'timeout-abort-controller';
|
|
18
|
+
import { setMaxListeners } from 'events';
|
|
16
19
|
const log = logger('libp2p:circuit');
|
|
17
20
|
export class Circuit {
|
|
18
|
-
constructor() {
|
|
21
|
+
constructor(init) {
|
|
19
22
|
this.components = new Components();
|
|
23
|
+
this._init = init;
|
|
20
24
|
}
|
|
21
25
|
init(components) {
|
|
22
26
|
this.components = components;
|
|
@@ -43,46 +47,23 @@ export class Circuit {
|
|
|
43
47
|
}
|
|
44
48
|
async _onProtocol(data) {
|
|
45
49
|
const { connection, stream } = data;
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
streamHandler.write({
|
|
51
|
-
type: CircuitPB.Type.STATUS,
|
|
52
|
-
code: CircuitPB.Status.MALFORMED_MESSAGE
|
|
53
|
-
});
|
|
54
|
-
streamHandler.close();
|
|
55
|
-
return;
|
|
50
|
+
const controller = new TimeoutController(this._init.hop.timeout);
|
|
51
|
+
try {
|
|
52
|
+
// fails on node < 15.4
|
|
53
|
+
setMaxListeners?.(Infinity, controller.signal);
|
|
56
54
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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);
|
|
55
|
+
catch { }
|
|
56
|
+
try {
|
|
57
|
+
const source = abortableDuplex(stream, controller.signal);
|
|
58
|
+
const streamHandler = new StreamHandler({
|
|
59
|
+
stream: {
|
|
60
|
+
...stream,
|
|
61
|
+
...source
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const request = await streamHandler.read();
|
|
65
|
+
if (request == null) {
|
|
66
|
+
log('request was invalid, could not read from stream');
|
|
86
67
|
streamHandler.write({
|
|
87
68
|
type: CircuitPB.Type.STATUS,
|
|
88
69
|
code: CircuitPB.Status.MALFORMED_MESSAGE
|
|
@@ -90,24 +71,64 @@ export class Circuit {
|
|
|
90
71
|
streamHandler.close();
|
|
91
72
|
return;
|
|
92
73
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
74
|
+
let virtualConnection;
|
|
75
|
+
switch (request.type) {
|
|
76
|
+
case CircuitPB.Type.CAN_HOP: {
|
|
77
|
+
log('received CAN_HOP request from %p', connection.remotePeer);
|
|
78
|
+
await handleCanHop({ circuit: this, connection, streamHandler });
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
case CircuitPB.Type.HOP: {
|
|
82
|
+
log('received HOP request from %p', connection.remotePeer);
|
|
83
|
+
await handleHop({
|
|
84
|
+
connection,
|
|
85
|
+
request,
|
|
86
|
+
streamHandler,
|
|
87
|
+
circuit: this,
|
|
88
|
+
connectionManager: this.components.getConnectionManager()
|
|
89
|
+
});
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case CircuitPB.Type.STOP: {
|
|
93
|
+
log('received STOP request from %p', connection.remotePeer);
|
|
94
|
+
virtualConnection = await handleStop({
|
|
95
|
+
connection,
|
|
96
|
+
request,
|
|
97
|
+
streamHandler
|
|
98
|
+
});
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
default: {
|
|
102
|
+
log('Request of type %s not supported', request.type);
|
|
103
|
+
streamHandler.write({
|
|
104
|
+
type: CircuitPB.Type.STATUS,
|
|
105
|
+
code: CircuitPB.Status.MALFORMED_MESSAGE
|
|
106
|
+
});
|
|
107
|
+
streamHandler.close();
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
110
|
}
|
|
111
|
+
if (virtualConnection != null) {
|
|
112
|
+
const remoteAddr = connection.remoteAddr
|
|
113
|
+
.encapsulate('/p2p-circuit')
|
|
114
|
+
.encapsulate(new Multiaddr(request.dstPeer?.addrs[0]));
|
|
115
|
+
const localAddr = new Multiaddr(request.srcPeer?.addrs[0]);
|
|
116
|
+
const maConn = streamToMaConnection({
|
|
117
|
+
stream: virtualConnection,
|
|
118
|
+
remoteAddr,
|
|
119
|
+
localAddr
|
|
120
|
+
});
|
|
121
|
+
const type = request.type === CircuitPB.Type.HOP ? 'relay' : 'inbound';
|
|
122
|
+
log('new %s connection %s', type, maConn.remoteAddr);
|
|
123
|
+
const conn = await this.components.getUpgrader().upgradeInbound(maConn);
|
|
124
|
+
log('%s connection %s upgraded', type, maConn.remoteAddr);
|
|
125
|
+
if (this.handler != null) {
|
|
126
|
+
this.handler(conn);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
finally {
|
|
131
|
+
controller.clear();
|
|
111
132
|
}
|
|
112
133
|
}
|
|
113
134
|
/**
|
|
@@ -137,6 +158,7 @@ export class Circuit {
|
|
|
137
158
|
}
|
|
138
159
|
try {
|
|
139
160
|
const virtualConnection = await hop({
|
|
161
|
+
...options,
|
|
140
162
|
connection: relayConnection,
|
|
141
163
|
request: {
|
|
142
164
|
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,
|
|
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,13 +78,24 @@ 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,
|
|
83
|
+
maxInboundStreams: 1,
|
|
84
|
+
maxOutboundStreams: 1,
|
|
85
|
+
maxPushIncomingStreams: 1,
|
|
86
|
+
maxPushOutgoingStreams: 1
|
|
79
87
|
},
|
|
80
88
|
ping: {
|
|
81
|
-
protocolPrefix: 'ipfs'
|
|
89
|
+
protocolPrefix: 'ipfs',
|
|
90
|
+
maxInboundStreams: 1,
|
|
91
|
+
maxOutboundStreams: 1,
|
|
92
|
+
timeout: 10000
|
|
82
93
|
},
|
|
83
94
|
fetch: {
|
|
84
|
-
protocolPrefix: 'libp2p'
|
|
95
|
+
protocolPrefix: 'libp2p',
|
|
96
|
+
maxInboundStreams: 1,
|
|
97
|
+
maxOutboundStreams: 1,
|
|
98
|
+
timeout: 10000
|
|
85
99
|
}
|
|
86
100
|
};
|
|
87
101
|
export function validateConfig(opts) {
|
|
@@ -95,6 +109,15 @@ export function validateConfig(opts) {
|
|
|
95
109
|
if (resultingOptions.connectionProtector === null && globalThis.process?.env?.LIBP2P_FORCE_PNET != null) { // eslint-disable-line no-undef
|
|
96
110
|
throw errCode(new Error(messages.ERR_PROTECTOR_REQUIRED), codes.ERR_PROTECTOR_REQUIRED);
|
|
97
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
|
+
}
|
|
98
121
|
return resultingOptions;
|
|
99
122
|
}
|
|
100
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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Startable } from '@libp2p/interfaces/startable';
|
|
2
|
-
import type { Components } from '@libp2p/
|
|
2
|
+
import type { Components } from '@libp2p/components';
|
|
3
3
|
export interface AutoDiallerInit {
|
|
4
4
|
/**
|
|
5
5
|
* Should preemptively guarantee connections are above the low watermark
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-dialler.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/auto-dialler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"auto-dialler.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/auto-dialler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAIpD,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAQD,qBAAa,WAAY,YAAW,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAC,CAAqB;IAE7C;;;;OAIG;gBACU,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe;IAS1D,SAAS;IAIT;;OAEG;IACG,KAAK;IAeX;;OAEG;IACG,IAAI;IAeJ,SAAS;CAyDhB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { PeerInfo } from '@libp2p/
|
|
2
|
-
import type { Components } from '@libp2p/
|
|
1
|
+
import type { PeerInfo } from '@libp2p/interface-peer-info';
|
|
2
|
+
import type { Components } from '@libp2p/components';
|
|
3
3
|
export interface AutoDialerInit {
|
|
4
4
|
enabled: boolean;
|
|
5
5
|
minConnections: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-dialer.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/auto-dialer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"auto-dialer.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/auto-dialer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAMpD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAEvB,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc;IAOlD,MAAM,CAAE,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC;CAqC1C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger';
|
|
2
2
|
import { TimeoutController } from 'timeout-abort-controller';
|
|
3
|
+
import { setMaxListeners } from 'events';
|
|
3
4
|
const log = logger('libp2p:dialer:auto-dialer');
|
|
4
5
|
export class AutoDialer {
|
|
5
6
|
constructor(components, init) {
|
|
@@ -21,6 +22,11 @@ export class AutoDialer {
|
|
|
21
22
|
if (minConnections > allConnections.length) {
|
|
22
23
|
log('auto-dialing discovered peer %p with timeout %d', peer.id, this.dialTimeout);
|
|
23
24
|
const controller = new TimeoutController(this.dialTimeout);
|
|
25
|
+
try {
|
|
26
|
+
// fails on node < 15.4
|
|
27
|
+
setMaxListeners?.(Infinity, controller.signal);
|
|
28
|
+
}
|
|
29
|
+
catch { }
|
|
24
30
|
void this.components.getConnectionManager().openConnection(peer.id, {
|
|
25
31
|
signal: controller.signal
|
|
26
32
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-dialer.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/auto-dialer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"auto-dialer.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/auto-dialer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAExC,MAAM,GAAG,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAA;AAQ/C,MAAM,OAAO,UAAU;IAMrB,YAAa,UAAsB,EAAE,IAAoB;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IACrC,CAAC;IAEM,MAAM,CAAE,GAA0B;QACvC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAE5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAM;SACP;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAElF,uFAAuF;QACvF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,CAAA;YAE/C,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,cAAc,EAAE,CAAA;YAE9E,IAAI,cAAc,GAAG,cAAc,CAAC,MAAM,EAAE;gBAC1C,GAAG,CAAC,iDAAiD,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;gBAEjF,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAE1D,IAAI;oBACF,uBAAuB;oBACvB,eAAe,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;iBAC/C;gBAAC,MAAM,GAAE;gBAEV,KAAK,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClE,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC;qBACC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,iDAAiD,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAC5E,CAAC,CAAC;qBACD,OAAO,CAAC,GAAG,EAAE;oBACZ,UAAU,CAAC,KAAK,EAAE,CAAA;gBACpB,CAAC,CAAC,CAAA;aACL;SACF;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
2
|
-
import type { Connection } from '@libp2p/
|
|
2
|
+
import type { Connection } from '@libp2p/interface-connection';
|
|
3
3
|
import type { AbortOptions } from '@libp2p/interfaces';
|
|
4
4
|
import type { Dialer } from './index.js';
|
|
5
5
|
export interface DialAction {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dial-request.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/dial-request.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"dial-request.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/dial-request.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAIxC,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC3D;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAEvC;;;;;;OAMG;gBACU,OAAO,EAAE,kBAAkB;IAYlC,GAAG,CAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;CAyF5D"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Multiaddr, Resolver } from '@multiformats/multiaddr';
|
|
2
2
|
import { TimeoutController } from 'timeout-abort-controller';
|
|
3
3
|
import { DialRequest } from './dial-request.js';
|
|
4
|
-
import type { Connection } from '@libp2p/
|
|
4
|
+
import type { Connection } from '@libp2p/interface-connection';
|
|
5
5
|
import type { AbortOptions } from '@libp2p/interfaces';
|
|
6
6
|
import type { Startable } from '@libp2p/interfaces/startable';
|
|
7
|
-
import type { PeerId } from '@libp2p/
|
|
8
|
-
import { Components, Initializable } from '@libp2p/
|
|
9
|
-
import type { AddressSorter } from '@libp2p/
|
|
10
|
-
import type { ComponentMetricsTracker } from '@libp2p/
|
|
7
|
+
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
8
|
+
import { Components, Initializable } from '@libp2p/components';
|
|
9
|
+
import type { AddressSorter } from '@libp2p/interface-peer-store';
|
|
10
|
+
import type { ComponentMetricsTracker } from '@libp2p/interface-metrics';
|
|
11
11
|
export interface DialTarget {
|
|
12
12
|
id: string;
|
|
13
13
|
addrs: Multiaddr[];
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ import { codes } from '../../errors.js';
|
|
|
15
15
|
import { DIAL_TIMEOUT, MAX_PARALLEL_DIALS, MAX_PER_PEER_DIALS, MAX_ADDRS_TO_DIAL } from '../../constants.js';
|
|
16
16
|
import { getPeer } from '../../get-peer.js';
|
|
17
17
|
import sort from 'it-sort';
|
|
18
|
-
import { Components } from '@libp2p/
|
|
18
|
+
import { Components } from '@libp2p/components';
|
|
19
19
|
import map from 'it-map';
|
|
20
20
|
const log = logger('libp2p:dialer');
|
|
21
21
|
const METRICS_COMPONENT = 'dialler';
|
|
@@ -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) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAY,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oBAAoB,CAAA;AAK3B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAiB,MAAM
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"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"}
|