libp2p 0.43.4 → 0.44.0-17eb162a
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/index.min.js +29 -29
- package/dist/src/address-manager/index.d.ts +4 -4
- package/dist/src/address-manager/index.d.ts.map +1 -1
- package/dist/src/address-manager/index.js +9 -6
- package/dist/src/address-manager/index.js.map +1 -1
- package/dist/src/autonat/index.d.ts +1 -2
- package/dist/src/autonat/index.d.ts.map +1 -1
- package/dist/src/autonat/index.js +4 -6
- package/dist/src/autonat/index.js.map +1 -1
- package/dist/src/circuit-relay/server/advert-service.d.ts.map +1 -1
- package/dist/src/circuit-relay/server/advert-service.js +2 -2
- package/dist/src/circuit-relay/server/advert-service.js.map +1 -1
- package/dist/src/circuit-relay/server/index.d.ts.map +1 -1
- package/dist/src/circuit-relay/server/index.js +7 -3
- package/dist/src/circuit-relay/server/index.js.map +1 -1
- package/dist/src/circuit-relay/transport/discovery.d.ts.map +1 -1
- package/dist/src/circuit-relay/transport/discovery.js +3 -1
- package/dist/src/circuit-relay/transport/discovery.js.map +1 -1
- package/dist/src/circuit-relay/transport/index.d.ts +3 -0
- package/dist/src/circuit-relay/transport/index.d.ts.map +1 -1
- package/dist/src/circuit-relay/transport/index.js +6 -2
- package/dist/src/circuit-relay/transport/index.js.map +1 -1
- package/dist/src/circuit-relay/transport/listener.d.ts +3 -0
- package/dist/src/circuit-relay/transport/listener.d.ts.map +1 -1
- package/dist/src/circuit-relay/transport/listener.js +5 -4
- package/dist/src/circuit-relay/transport/listener.js.map +1 -1
- package/dist/src/circuit-relay/transport/reservation-store.d.ts +4 -1
- package/dist/src/circuit-relay/transport/reservation-store.d.ts.map +1 -1
- package/dist/src/circuit-relay/transport/reservation-store.js +11 -6
- package/dist/src/circuit-relay/transport/reservation-store.js.map +1 -1
- package/dist/src/circuit-relay/utils.d.ts.map +1 -1
- package/dist/src/circuit-relay/utils.js +3 -1
- package/dist/src/circuit-relay/utils.js.map +1 -1
- package/dist/src/components.d.ts +8 -6
- package/dist/src/components.d.ts.map +1 -1
- package/dist/src/components.js +10 -10
- package/dist/src/components.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +0 -9
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection-manager/auto-dial.d.ts +39 -0
- package/dist/src/connection-manager/auto-dial.d.ts.map +1 -0
- package/dist/src/connection-manager/auto-dial.js +131 -0
- package/dist/src/connection-manager/auto-dial.js.map +1 -0
- package/dist/src/connection-manager/connection-pruner.d.ts +32 -0
- package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -0
- package/dist/src/connection-manager/connection-pruner.js +111 -0
- package/dist/src/connection-manager/connection-pruner.js.map +1 -0
- package/dist/src/connection-manager/constants.d.ts +49 -0
- package/dist/src/connection-manager/constants.d.ts.map +1 -0
- package/dist/src/connection-manager/constants.js +49 -0
- package/dist/src/connection-manager/constants.js.map +1 -0
- package/dist/src/connection-manager/dial-queue.d.ts +78 -0
- package/dist/src/connection-manager/dial-queue.d.ts.map +1 -0
- package/dist/src/connection-manager/dial-queue.js +374 -0
- package/dist/src/connection-manager/dial-queue.js.map +1 -0
- package/dist/src/connection-manager/index.d.ts +70 -73
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +116 -248
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/connection-manager/utils.d.ts +9 -0
- package/dist/src/connection-manager/utils.d.ts.map +1 -0
- package/dist/src/connection-manager/utils.js +66 -0
- package/dist/src/connection-manager/utils.js.map +1 -0
- package/dist/src/content-routing/index.js +1 -1
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/content-routing/utils.d.ts.map +1 -1
- package/dist/src/content-routing/utils.js +3 -1
- package/dist/src/content-routing/utils.js.map +1 -1
- package/dist/src/fetch/index.js +3 -3
- package/dist/src/fetch/index.js.map +1 -1
- package/dist/src/identify/index.d.ts +4 -0
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js +104 -128
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/index.d.ts +2 -19
- 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 +3 -1
- package/dist/src/insecure/index.js.map +1 -1
- package/dist/src/libp2p.d.ts +5 -3
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +47 -50
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/registrar.d.ts +5 -2
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +25 -23
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/transport-manager.d.ts +9 -3
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/transport-manager.js +23 -9
- package/dist/src/transport-manager.js.map +1 -1
- package/dist/src/upgrader.d.ts +14 -11
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +14 -10
- package/dist/src/upgrader.js.map +1 -1
- package/package.json +46 -45
- package/src/address-manager/index.ts +12 -8
- package/src/autonat/index.ts +6 -9
- package/src/circuit-relay/server/advert-service.ts +2 -2
- package/src/circuit-relay/server/index.ts +7 -3
- package/src/circuit-relay/transport/discovery.ts +3 -1
- package/src/circuit-relay/transport/index.ts +10 -2
- package/src/circuit-relay/transport/listener.ts +8 -4
- package/src/circuit-relay/transport/reservation-store.ts +15 -7
- package/src/circuit-relay/utils.ts +3 -1
- package/src/components.ts +19 -17
- package/src/config.ts +0 -9
- package/src/connection-manager/auto-dial.ts +183 -0
- package/src/connection-manager/connection-pruner.ts +157 -0
- package/src/connection-manager/constants.ts +60 -0
- package/src/connection-manager/dial-queue.ts +512 -0
- package/src/connection-manager/index.ts +191 -340
- package/src/connection-manager/utils.ts +76 -0
- package/src/content-routing/index.ts +1 -1
- package/src/content-routing/utils.ts +3 -1
- package/src/fetch/index.ts +4 -4
- package/src/identify/index.ts +100 -140
- package/src/index.ts +2 -20
- package/src/insecure/index.ts +9 -5
- package/src/libp2p.ts +54 -60
- package/src/registrar.ts +29 -25
- package/src/transport-manager.ts +31 -11
- package/src/upgrader.ts +31 -22
- package/src/version.ts +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts +0 -42
- package/dist/src/connection-manager/auto-dialler.d.ts.map +0 -1
- package/dist/src/connection-manager/auto-dialler.js +0 -105
- package/dist/src/connection-manager/auto-dialler.js.map +0 -1
- package/dist/src/connection-manager/dialer/dial-request.d.ts +0 -27
- package/dist/src/connection-manager/dialer/dial-request.d.ts.map +0 -1
- package/dist/src/connection-manager/dialer/dial-request.js +0 -114
- package/dist/src/connection-manager/dialer/dial-request.js.map +0 -1
- package/dist/src/connection-manager/dialer/index.d.ts +0 -121
- package/dist/src/connection-manager/dialer/index.d.ts.map +0 -1
- package/dist/src/connection-manager/dialer/index.js +0 -324
- package/dist/src/connection-manager/dialer/index.js.map +0 -1
- package/dist/src/connection-manager/latency-monitor.d.ts +0 -120
- package/dist/src/connection-manager/latency-monitor.d.ts.map +0 -1
- package/dist/src/connection-manager/latency-monitor.js +0 -220
- package/dist/src/connection-manager/latency-monitor.js.map +0 -1
- package/dist/src/connection-manager/visibility-change-emitter.d.ts +0 -66
- package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +0 -1
- package/dist/src/connection-manager/visibility-change-emitter.js +0 -118
- package/dist/src/connection-manager/visibility-change-emitter.js.map +0 -1
- package/dist/src/constants.d.ts +0 -27
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/constants.js +0 -31
- package/dist/src/constants.js.map +0 -1
- package/dist/src/peer-record-updater.d.ts +0 -24
- package/dist/src/peer-record-updater.d.ts.map +0 -1
- package/dist/src/peer-record-updater.js +0 -44
- package/dist/src/peer-record-updater.js.map +0 -1
- package/dist/typedoc-urls.json +0 -41
- package/src/connection-manager/auto-dialler.ts +0 -158
- package/src/connection-manager/dialer/dial-request.ts +0 -144
- package/src/connection-manager/dialer/index.ts +0 -461
- package/src/connection-manager/latency-monitor.ts +0 -319
- package/src/connection-manager/visibility-change-emitter.ts +0 -135
- package/src/constants.ts +0 -36
- package/src/peer-record-updater.ts +0 -65
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { Startable } from '@libp2p/interfaces/startable';
|
|
2
|
-
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
3
|
-
import type { ConnectionManager } from '@libp2p/interface-connection-manager';
|
|
4
|
-
import type { PeerStore } from '@libp2p/interface-peer-store';
|
|
5
|
-
export interface AutoDiallerInit {
|
|
6
|
-
/**
|
|
7
|
-
* The minimum number of connections to avoid pruning
|
|
8
|
-
*/
|
|
9
|
-
minConnections?: number;
|
|
10
|
-
/**
|
|
11
|
-
* How often, in milliseconds, it should preemptively guarantee connections are above the low watermark
|
|
12
|
-
*/
|
|
13
|
-
autoDialInterval?: number;
|
|
14
|
-
}
|
|
15
|
-
export interface AutoDiallerComponents {
|
|
16
|
-
peerId: PeerId;
|
|
17
|
-
connectionManager: ConnectionManager;
|
|
18
|
-
peerStore: PeerStore;
|
|
19
|
-
}
|
|
20
|
-
export declare class AutoDialler implements Startable {
|
|
21
|
-
private readonly components;
|
|
22
|
-
private readonly options;
|
|
23
|
-
private running;
|
|
24
|
-
private autoDialTimeout?;
|
|
25
|
-
/**
|
|
26
|
-
* Proactively tries to connect to known peers stored in the PeerStore.
|
|
27
|
-
* It will keep the number of connections below the upper limit and sort
|
|
28
|
-
* the peers to connect based on wether we know their keys and protocols.
|
|
29
|
-
*/
|
|
30
|
-
constructor(components: AutoDiallerComponents, init: AutoDiallerInit);
|
|
31
|
-
isStarted(): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Starts the auto dialer
|
|
34
|
-
*/
|
|
35
|
-
start(): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Stops the auto dialler
|
|
38
|
-
*/
|
|
39
|
-
stop(): Promise<void>;
|
|
40
|
-
_autoDial(): Promise<void>;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=auto-dialler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-dialler.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/auto-dialler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAI7D,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,SAAS,EAAE,SAAS,CAAA;CACrB;AAOD,qBAAa,WAAY,YAAW,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAC,CAAqB;IAE7C;;;;OAIG;gBACU,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,eAAe;IASrE,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAU7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAUtB,SAAS,IAAK,OAAO,CAAC,IAAI,CAAC;CAyElC"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
|
-
import mergeOptions from 'merge-options';
|
|
3
|
-
// @ts-expect-error retimer does not have types
|
|
4
|
-
import retimer from 'retimer';
|
|
5
|
-
const log = logger('libp2p:connection-manager:auto-dialler');
|
|
6
|
-
const defaultOptions = {
|
|
7
|
-
minConnections: 0,
|
|
8
|
-
autoDialInterval: 10000
|
|
9
|
-
};
|
|
10
|
-
export class AutoDialler {
|
|
11
|
-
/**
|
|
12
|
-
* Proactively tries to connect to known peers stored in the PeerStore.
|
|
13
|
-
* It will keep the number of connections below the upper limit and sort
|
|
14
|
-
* the peers to connect based on wether we know their keys and protocols.
|
|
15
|
-
*/
|
|
16
|
-
constructor(components, init) {
|
|
17
|
-
this.components = components;
|
|
18
|
-
this.options = mergeOptions.call({ ignoreUndefined: true }, defaultOptions, init);
|
|
19
|
-
this.running = false;
|
|
20
|
-
this._autoDial = this._autoDial.bind(this);
|
|
21
|
-
log('options: %j', this.options);
|
|
22
|
-
}
|
|
23
|
-
isStarted() {
|
|
24
|
-
return this.running;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Starts the auto dialer
|
|
28
|
-
*/
|
|
29
|
-
async start() {
|
|
30
|
-
this.running = true;
|
|
31
|
-
void this._autoDial().catch(err => {
|
|
32
|
-
log.error('could not start autodial', err);
|
|
33
|
-
});
|
|
34
|
-
log('started');
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Stops the auto dialler
|
|
38
|
-
*/
|
|
39
|
-
async stop() {
|
|
40
|
-
this.running = false;
|
|
41
|
-
if (this.autoDialTimeout != null) {
|
|
42
|
-
this.autoDialTimeout.clear();
|
|
43
|
-
}
|
|
44
|
-
log('stopped');
|
|
45
|
-
}
|
|
46
|
-
async _autoDial() {
|
|
47
|
-
if (this.autoDialTimeout != null) {
|
|
48
|
-
this.autoDialTimeout.clear();
|
|
49
|
-
}
|
|
50
|
-
const minConnections = this.options.minConnections;
|
|
51
|
-
// Already has enough connections
|
|
52
|
-
if (this.components.connectionManager.getConnections().length >= minConnections) {
|
|
53
|
-
this.autoDialTimeout = retimer(this._autoDial, this.options.autoDialInterval);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
// Sort peers on whether we know protocols or public keys for them
|
|
57
|
-
let peers = await this.components.peerStore.all();
|
|
58
|
-
peers = peers.filter((peer) => {
|
|
59
|
-
// do not dial ourselves
|
|
60
|
-
if (peer.id.equals(this.components.peerId)) {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
// do not dial peers without multiaddrs
|
|
64
|
-
if (peer.addresses.length === 0) {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
return true;
|
|
68
|
-
});
|
|
69
|
-
// shuffle the peers
|
|
70
|
-
peers = peers.sort(() => Math.random() > 0.5 ? 1 : -1);
|
|
71
|
-
peers = peers.sort((a, b) => {
|
|
72
|
-
// dial peers with the most protocols first
|
|
73
|
-
if (b.protocols.length > a.protocols.length) {
|
|
74
|
-
return 1;
|
|
75
|
-
}
|
|
76
|
-
// dial peers with public keys first
|
|
77
|
-
if (b.id.publicKey != null && a.id.publicKey == null) {
|
|
78
|
-
return 1;
|
|
79
|
-
}
|
|
80
|
-
return -1;
|
|
81
|
-
});
|
|
82
|
-
for (let i = 0; this.running && i < peers.length && this.components.connectionManager.getConnections().length < minConnections; i++) {
|
|
83
|
-
// Connection Manager was stopped during async dial
|
|
84
|
-
if (!this.running) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const peer = peers[i];
|
|
88
|
-
if (this.components.connectionManager.getConnections(peer.id).length === 0) {
|
|
89
|
-
log('connecting to a peerStore stored peer %p', peer.id);
|
|
90
|
-
try {
|
|
91
|
-
await this.components.connectionManager.openConnection(peer.id);
|
|
92
|
-
}
|
|
93
|
-
catch (err) {
|
|
94
|
-
log.error('could not connect to peerStore stored peer', err);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// Connection Manager was stopped
|
|
99
|
-
if (!this.running) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
this.autoDialTimeout = retimer(this._autoDial, this.options.autoDialInterval);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=auto-dialler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-dialler.js","sourceRoot":"","sources":["../../../src/connection-manager/auto-dialler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
2
|
-
import type { Connection } from '@libp2p/interface-connection';
|
|
3
|
-
import type { AbortOptions } from '@libp2p/interfaces';
|
|
4
|
-
import type { Dialer } from '@libp2p/interface-connection-manager';
|
|
5
|
-
export interface DialAction {
|
|
6
|
-
(m: Multiaddr, options: AbortOptions): Promise<Connection>;
|
|
7
|
-
}
|
|
8
|
-
export interface DialRequestOptions {
|
|
9
|
-
addrs: Multiaddr[];
|
|
10
|
-
dialAction: DialAction;
|
|
11
|
-
dialer: Dialer;
|
|
12
|
-
}
|
|
13
|
-
export declare class DialRequest {
|
|
14
|
-
private readonly addrs;
|
|
15
|
-
private readonly dialer;
|
|
16
|
-
private readonly dialAction;
|
|
17
|
-
/**
|
|
18
|
-
* Manages running the `dialAction` on multiple provided `addrs` in parallel
|
|
19
|
-
* up to a maximum determined by the number of tokens returned
|
|
20
|
-
* from `dialer.getTokens`. Once a DialRequest is created, it can be
|
|
21
|
-
* started using `DialRequest.run(options)`. Once a single dial has succeeded,
|
|
22
|
-
* all other dials in the request will be cancelled.
|
|
23
|
-
*/
|
|
24
|
-
constructor(options: DialRequestOptions);
|
|
25
|
-
run(options?: AbortOptions): Promise<Connection>;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=dial-request.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,sCAAsC,CAAA;AAIlE,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;CAgG5D"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/interfaces/errors';
|
|
2
|
-
import { anySignal } from 'any-signal';
|
|
3
|
-
import FIFO from 'p-fifo';
|
|
4
|
-
import { setMaxListeners } from 'events';
|
|
5
|
-
import { codes } from '../../errors.js';
|
|
6
|
-
import { logger } from '@libp2p/logger';
|
|
7
|
-
const log = logger('libp2p:dialer:dial-request');
|
|
8
|
-
export class DialRequest {
|
|
9
|
-
/**
|
|
10
|
-
* Manages running the `dialAction` on multiple provided `addrs` in parallel
|
|
11
|
-
* up to a maximum determined by the number of tokens returned
|
|
12
|
-
* from `dialer.getTokens`. Once a DialRequest is created, it can be
|
|
13
|
-
* started using `DialRequest.run(options)`. Once a single dial has succeeded,
|
|
14
|
-
* all other dials in the request will be cancelled.
|
|
15
|
-
*/
|
|
16
|
-
constructor(options) {
|
|
17
|
-
const { addrs, dialAction, dialer } = options;
|
|
18
|
-
this.addrs = addrs;
|
|
19
|
-
this.dialer = dialer;
|
|
20
|
-
this.dialAction = dialAction;
|
|
21
|
-
}
|
|
22
|
-
async run(options = {}) {
|
|
23
|
-
const tokens = this.dialer.getTokens(this.addrs.length);
|
|
24
|
-
// If no tokens are available, throw
|
|
25
|
-
if (tokens.length < 1) {
|
|
26
|
-
throw new CodeError('No dial tokens available', codes.ERR_NO_DIAL_TOKENS);
|
|
27
|
-
}
|
|
28
|
-
const tokenHolder = new FIFO();
|
|
29
|
-
for (const token of tokens) {
|
|
30
|
-
void tokenHolder.push(token).catch(err => {
|
|
31
|
-
log.error(err);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
const dialAbortControllers = this.addrs.map(() => {
|
|
35
|
-
const controller = new AbortController();
|
|
36
|
-
try {
|
|
37
|
-
// fails on node < 15.4
|
|
38
|
-
setMaxListeners?.(Infinity, controller.signal);
|
|
39
|
-
}
|
|
40
|
-
catch { }
|
|
41
|
-
return controller;
|
|
42
|
-
});
|
|
43
|
-
if (options.signal != null) {
|
|
44
|
-
try {
|
|
45
|
-
// fails on node < 15.4
|
|
46
|
-
setMaxListeners?.(Infinity, options.signal);
|
|
47
|
-
}
|
|
48
|
-
catch { }
|
|
49
|
-
}
|
|
50
|
-
let completedDials = 0;
|
|
51
|
-
let done = false;
|
|
52
|
-
try {
|
|
53
|
-
return await Promise.any(this.addrs.map(async (addr, i) => {
|
|
54
|
-
const token = await tokenHolder.shift(); // get token
|
|
55
|
-
// End attempt once another attempt succeeded
|
|
56
|
-
if (done) {
|
|
57
|
-
this.dialer.releaseToken(tokens.splice(tokens.indexOf(token), 1)[0]);
|
|
58
|
-
throw new CodeError('dialAction already succeeded', codes.ERR_ALREADY_SUCCEEDED);
|
|
59
|
-
}
|
|
60
|
-
const controller = dialAbortControllers[i];
|
|
61
|
-
if (controller == null) {
|
|
62
|
-
throw new CodeError('dialAction did not come with an AbortController', codes.ERR_INVALID_PARAMETERS);
|
|
63
|
-
}
|
|
64
|
-
let conn;
|
|
65
|
-
try {
|
|
66
|
-
const signal = controller.signal;
|
|
67
|
-
conn = await this.dialAction(addr, { ...options, signal: (options.signal != null) ? anySignal([signal, options.signal]) : signal });
|
|
68
|
-
// Remove the successful AbortController so it is not aborted
|
|
69
|
-
dialAbortControllers[i] = undefined;
|
|
70
|
-
}
|
|
71
|
-
finally {
|
|
72
|
-
completedDials++;
|
|
73
|
-
// If we have more or equal dials remaining than tokens, recycle the token, otherwise release it
|
|
74
|
-
if (this.addrs.length - completedDials >= tokens.length) {
|
|
75
|
-
void tokenHolder.push(token).catch(err => {
|
|
76
|
-
log.error(err);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
this.dialer.releaseToken(tokens.splice(tokens.indexOf(token), 1)[0]);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
if (conn == null) {
|
|
84
|
-
// Notify Promise.any that attempt was not successful
|
|
85
|
-
// to prevent from returning undefined despite there
|
|
86
|
-
// were successful dial attempts
|
|
87
|
-
throw new CodeError('dialAction led to empty object', codes.ERR_TRANSPORT_DIAL_FAILED);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
// This dial succeeded, don't attempt anything else
|
|
91
|
-
done = true;
|
|
92
|
-
}
|
|
93
|
-
return conn;
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
catch (err) {
|
|
97
|
-
// if we only dialed one address, unwrap the AggregateError
|
|
98
|
-
if (this.addrs.length === 1 && err.name === 'AggregateError') {
|
|
99
|
-
throw err.errors[0];
|
|
100
|
-
}
|
|
101
|
-
throw err;
|
|
102
|
-
}
|
|
103
|
-
finally {
|
|
104
|
-
// success/failure happened, abort everything else
|
|
105
|
-
dialAbortControllers.forEach(c => {
|
|
106
|
-
if (c !== undefined) {
|
|
107
|
-
c.abort();
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
tokens.forEach(token => { this.dialer.releaseToken(token); }); // release tokens back to the dialer
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=dial-request.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dial-request.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/dial-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { Multiaddr, Resolver } from '@multiformats/multiaddr';
|
|
2
|
-
import { TimeoutController } from 'timeout-abort-controller';
|
|
3
|
-
import { DialRequest } from './dial-request.js';
|
|
4
|
-
import type { Connection } from '@libp2p/interface-connection';
|
|
5
|
-
import type { AbortOptions } from '@libp2p/interfaces';
|
|
6
|
-
import type { Startable } from '@libp2p/interfaces/startable';
|
|
7
|
-
import { PeerId } from '@libp2p/interface-peer-id';
|
|
8
|
-
import { PeerAddress } from '../../get-peer.js';
|
|
9
|
-
import type { AddressSorter, PeerStore } from '@libp2p/interface-peer-store';
|
|
10
|
-
import type { Metrics } from '@libp2p/interface-metrics';
|
|
11
|
-
import type { Dialer } from '@libp2p/interface-connection-manager';
|
|
12
|
-
import type { TransportManager } from '@libp2p/interface-transport';
|
|
13
|
-
import type { ConnectionGater } from '@libp2p/interface-connection-gater';
|
|
14
|
-
export interface DialTarget {
|
|
15
|
-
id: string;
|
|
16
|
-
addrs: Multiaddr[];
|
|
17
|
-
}
|
|
18
|
-
export interface PendingDial {
|
|
19
|
-
dialRequest: DialRequest;
|
|
20
|
-
controller: TimeoutController;
|
|
21
|
-
promise: Promise<Connection>;
|
|
22
|
-
destroy: () => void;
|
|
23
|
-
}
|
|
24
|
-
export interface PendingDialTarget {
|
|
25
|
-
resolve: (value: any) => void;
|
|
26
|
-
reject: (err: Error) => void;
|
|
27
|
-
}
|
|
28
|
-
export interface DialerInit {
|
|
29
|
-
/**
|
|
30
|
-
* Sort the known addresses of a peer before trying to dial
|
|
31
|
-
*/
|
|
32
|
-
addressSorter?: AddressSorter;
|
|
33
|
-
/**
|
|
34
|
-
* Number of max concurrent dials
|
|
35
|
-
*/
|
|
36
|
-
maxParallelDials?: number;
|
|
37
|
-
/**
|
|
38
|
-
* Number of max addresses to dial for a given peer
|
|
39
|
-
*/
|
|
40
|
-
maxAddrsToDial?: number;
|
|
41
|
-
/**
|
|
42
|
-
* How long a dial attempt is allowed to take
|
|
43
|
-
*/
|
|
44
|
-
dialTimeout?: number;
|
|
45
|
-
/**
|
|
46
|
-
* Number of max concurrent dials per peer
|
|
47
|
-
*/
|
|
48
|
-
maxDialsPerPeer?: number;
|
|
49
|
-
/**
|
|
50
|
-
* Multiaddr resolvers to use when dialing
|
|
51
|
-
*/
|
|
52
|
-
resolvers?: Record<string, Resolver>;
|
|
53
|
-
}
|
|
54
|
-
export interface DefaultDialerComponents {
|
|
55
|
-
peerId: PeerId;
|
|
56
|
-
metrics?: Metrics;
|
|
57
|
-
peerStore: PeerStore;
|
|
58
|
-
transportManager: TransportManager;
|
|
59
|
-
connectionGater: ConnectionGater;
|
|
60
|
-
}
|
|
61
|
-
export declare class DefaultDialer implements Startable, Dialer {
|
|
62
|
-
private readonly components;
|
|
63
|
-
private readonly addressSorter;
|
|
64
|
-
private readonly maxAddrsToDial;
|
|
65
|
-
private readonly timeout;
|
|
66
|
-
private readonly maxDialsPerPeer;
|
|
67
|
-
tokens: number[];
|
|
68
|
-
pendingDials: Map<string, PendingDial>;
|
|
69
|
-
pendingDialTargets: Map<string, AbortController>;
|
|
70
|
-
private started;
|
|
71
|
-
constructor(components: DefaultDialerComponents, init?: DialerInit);
|
|
72
|
-
isStarted(): boolean;
|
|
73
|
-
start(): Promise<void>;
|
|
74
|
-
/**
|
|
75
|
-
* Clears any pending dials
|
|
76
|
-
*/
|
|
77
|
-
stop(): Promise<void>;
|
|
78
|
-
/**
|
|
79
|
-
* Connects to a given `peer` by dialing all of its known addresses.
|
|
80
|
-
* The dial to the first address that is successfully able to upgrade a connection
|
|
81
|
-
* will be used.
|
|
82
|
-
*/
|
|
83
|
-
dial(peerIdOrMultiaddr: PeerId | Multiaddr | Multiaddr[], options?: AbortOptions): Promise<Connection>;
|
|
84
|
-
createDialTarget(peerAddress: PeerAddress, options?: AbortOptions): Promise<Connection>;
|
|
85
|
-
/**
|
|
86
|
-
* Get the current dial targets which are pending
|
|
87
|
-
*/
|
|
88
|
-
getPendingDialTargets(): Map<string, AbortController>;
|
|
89
|
-
/**
|
|
90
|
-
* Returns true if the peer id is in the pending dials
|
|
91
|
-
*/
|
|
92
|
-
hasPendingDial(peerId: PeerId | Multiaddr): boolean;
|
|
93
|
-
/**
|
|
94
|
-
* Creates a DialTarget. The DialTarget is used to create and track
|
|
95
|
-
* the DialRequest to a given peer.
|
|
96
|
-
*
|
|
97
|
-
* If a multiaddr is received it should be the only address attempted.
|
|
98
|
-
*
|
|
99
|
-
* Multiaddrs not supported by the available transports will be filtered out.
|
|
100
|
-
*/
|
|
101
|
-
_createDialTarget(peerIdOrMultiaddr: PeerAddress, options: AbortOptions): Promise<DialTarget>;
|
|
102
|
-
/**
|
|
103
|
-
* Loads a list of addresses from the peer store for the passed peer id
|
|
104
|
-
*/
|
|
105
|
-
_loadAddresses(peer: PeerId): Promise<Multiaddr[]>;
|
|
106
|
-
/**
|
|
107
|
-
* Creates a PendingDial that wraps the underlying DialRequest
|
|
108
|
-
*/
|
|
109
|
-
_createPendingDial(dialTarget: DialTarget, options?: AbortOptions): PendingDial;
|
|
110
|
-
getTokens(num: number): number[];
|
|
111
|
-
releaseToken(token: number): void;
|
|
112
|
-
/**
|
|
113
|
-
* Resolve multiaddr recursively
|
|
114
|
-
*/
|
|
115
|
-
_resolve(ma: Multiaddr, options: AbortOptions): Promise<Multiaddr[]>;
|
|
116
|
-
/**
|
|
117
|
-
* Resolve a given multiaddr. If this fails, an empty array will be returned
|
|
118
|
-
*/
|
|
119
|
-
_resolveRecord(ma: Multiaddr, options: AbortOptions): Promise<Multiaddr[]>;
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"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"}
|