libp2p 0.40.0-fed012d → 0.41.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 +12 -0
- package/dist/src/address-manager/index.d.ts.map +1 -1
- package/dist/src/address-manager/index.js +1 -1
- package/dist/src/address-manager/index.js.map +1 -1
- package/dist/src/connection/index.d.ts +83 -0
- package/dist/src/connection/index.d.ts.map +1 -0
- package/dist/src/connection/index.js +96 -0
- package/dist/src/connection/index.js.map +1 -0
- package/dist/src/connection-manager/dialer/index.d.ts +12 -12
- package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/index.js +79 -54
- package/dist/src/connection-manager/dialer/index.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +2 -2
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +15 -3
- package/dist/src/connection-manager/index.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 +2 -5
- package/dist/src/get-peer.js.map +1 -1
- package/dist/src/index.d.ts +8 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/keychain/index.d.ts +1 -1
- package/dist/src/keychain/index.d.ts.map +1 -1
- package/dist/src/libp2p.d.ts +3 -3
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/registrar.d.ts +5 -0
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +25 -0
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/upgrader.d.ts +1 -1
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +42 -23
- package/dist/src/upgrader.js.map +1 -1
- package/package.json +2 -2
- package/src/address-manager/index.ts +3 -2
- package/src/connection/index.ts +171 -0
- package/src/connection-manager/dialer/index.ts +96 -64
- package/src/connection-manager/index.ts +15 -3
- package/src/get-peer.ts +3 -7
- package/src/index.ts +13 -5
- package/src/keychain/index.ts +1 -1
- package/src/libp2p.ts +3 -3
- package/src/registrar.ts +29 -2
- package/src/upgrader.ts +44 -22
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -182,6 +182,18 @@ List of packages currently in existence for libp2p
|
|
|
182
182
|
| [`libp2p-nat-mgnr`](//github.com/libp2p/js-libp2p-nat-mgnr) | [](//github.com/libp2p/js-libp2p-nat-mgnr/releases) | [](https://david-dm.org/libp2p/js-libp2p-nat-mgnr) | [](https://travis-ci.com/libp2p/js-libp2p-nat-mgnr) | [](https://codecov.io/gh/libp2p/js-libp2p-nat-mgnr) | N/A |
|
|
183
183
|
| [`libp2p-utils`](//github.com/libp2p/js-libp2p-utils) | [](//github.com/libp2p/js-libp2p-utils/releases) | [](https://david-dm.org/libp2p/js-libp2p-utils) | [](https://travis-ci.com/libp2p/js-libp2p-utils) | [](https://codecov.io/gh/libp2p/js-libp2p-utils) | [Vasco Santos](mailto:santos.vasco10@gmail.com) |
|
|
184
184
|
|
|
185
|
+
## Used by
|
|
186
|
+
|
|
187
|
+
<div style="padding: 20px">
|
|
188
|
+
<p align="middle">
|
|
189
|
+
<a href="https://lodestar.chainsafe.io/"><img width="300" src="https://github.com/ChainSafe/lodestar/blob/unstable/assets/lodestar_icon_text_black_stroke.png?raw=true"></a>
|
|
190
|
+
<a href="https://hoprnet.org/"><img width="150" src="https://github.com/hoprnet/hopr-assets/blob/master/v1/logo/hopr_logo_padded.png?raw=true" alt="HOPR Logo">
|
|
191
|
+
<a href="https:/https://js.ipfs.io/"><img src="https://ipfs.io/ipfs/Qme6KJdKcp85TYbLxuLV7oQzMiLremD7HMoXLZEmgo6Rnh/js-ipfs-sticker.png" alt="IPFS in JavaScript logo" width="150" /></a>
|
|
192
|
+
</p>
|
|
193
|
+
</div>
|
|
194
|
+
|
|
195
|
+
And [many others...](https://github.com/libp2p/js-libp2p/network/dependents)
|
|
196
|
+
|
|
185
197
|
## Contribute
|
|
186
198
|
|
|
187
199
|
The libp2p implementation in JavaScript is a work in progress. As such, there are a few things you can do right now to help out:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/address-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAC7E,OAAO,EAAe,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,aAAa,CAAA;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAA;CAClC;AAID,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAC3E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/address-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAC7E,OAAO,EAAe,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,aAAa,CAAA;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAA;CAClC;AAID,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAC3E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAE5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAE9C;;;;;OAKG;gBACU,UAAU,EAAE,+BAA+B,EAAE,IAAI,EAAE,kBAAkB;IAYlF;;OAEG;IACH,cAAc,IAAK,SAAS,EAAE;IAI9B;;OAEG;IACH,gBAAgB,IAAK,SAAS,EAAE;IAIhC;;OAEG;IACH,gBAAgB,IAAK,SAAS,EAAE;IAIhC;;;;OAIG;IACH,mBAAmB,CAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAI3C;;;OAGG;IACH,kBAAkB,CAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAI1C;;OAEG;IACH,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAyBhD,YAAY,IAAK,SAAS,EAAE;CAwB7B"}
|
|
@@ -13,7 +13,7 @@ export class DefaultAddressManager extends EventEmitter {
|
|
|
13
13
|
super();
|
|
14
14
|
const { listen = [], announce = [] } = init;
|
|
15
15
|
this.components = components;
|
|
16
|
-
this.listen =
|
|
16
|
+
this.listen = listen.map(ma => ma.toString());
|
|
17
17
|
this.announce = new Set(announce.map(ma => ma.toString()));
|
|
18
18
|
this.observed = new Set();
|
|
19
19
|
this.announceFilter = init.announceFilter ?? defaultAddressFilter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/address-manager/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAgClD,MAAM,oBAAoB,GAAG,CAAC,KAAkB,EAAe,EAAE,CAAC,KAAK,CAAA;AAEvE,MAAM,OAAO,qBAAsB,SAAQ,YAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/address-manager/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
2
|
+
import { symbol } from '@libp2p/interface-connection';
|
|
3
|
+
import type { Connection, ConnectionStat, Stream } from '@libp2p/interface-connection';
|
|
4
|
+
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
5
|
+
import type { AbortOptions } from '@libp2p/interfaces';
|
|
6
|
+
interface ConnectionInit {
|
|
7
|
+
remoteAddr: Multiaddr;
|
|
8
|
+
remotePeer: PeerId;
|
|
9
|
+
newStream: (protocols: string[], options?: AbortOptions) => Promise<Stream>;
|
|
10
|
+
close: () => Promise<void>;
|
|
11
|
+
getStreams: () => Stream[];
|
|
12
|
+
stat: ConnectionStat;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* An implementation of the js-libp2p connection.
|
|
16
|
+
* Any libp2p transport should use an upgrader to return this connection.
|
|
17
|
+
*/
|
|
18
|
+
export declare class ConnectionImpl implements Connection {
|
|
19
|
+
/**
|
|
20
|
+
* Connection identifier.
|
|
21
|
+
*/
|
|
22
|
+
readonly id: string;
|
|
23
|
+
/**
|
|
24
|
+
* Observed multiaddr of the remote peer
|
|
25
|
+
*/
|
|
26
|
+
readonly remoteAddr: Multiaddr;
|
|
27
|
+
/**
|
|
28
|
+
* Remote peer id
|
|
29
|
+
*/
|
|
30
|
+
readonly remotePeer: PeerId;
|
|
31
|
+
/**
|
|
32
|
+
* Connection metadata
|
|
33
|
+
*/
|
|
34
|
+
readonly stat: ConnectionStat;
|
|
35
|
+
/**
|
|
36
|
+
* User provided tags
|
|
37
|
+
*
|
|
38
|
+
*/
|
|
39
|
+
tags: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Reference to the new stream function of the multiplexer
|
|
42
|
+
*/
|
|
43
|
+
private readonly _newStream;
|
|
44
|
+
/**
|
|
45
|
+
* Reference to the close function of the raw connection
|
|
46
|
+
*/
|
|
47
|
+
private readonly _close;
|
|
48
|
+
/**
|
|
49
|
+
* Reference to the getStreams function of the muxer
|
|
50
|
+
*/
|
|
51
|
+
private readonly _getStreams;
|
|
52
|
+
private _closing;
|
|
53
|
+
/**
|
|
54
|
+
* An implementation of the js-libp2p connection.
|
|
55
|
+
* Any libp2p transport should use an upgrader to return this connection.
|
|
56
|
+
*/
|
|
57
|
+
constructor(init: ConnectionInit);
|
|
58
|
+
get [Symbol.toStringTag](): string;
|
|
59
|
+
get [symbol](): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Get all the streams of the muxer
|
|
62
|
+
*/
|
|
63
|
+
get streams(): Stream[];
|
|
64
|
+
/**
|
|
65
|
+
* Create a new stream from this connection
|
|
66
|
+
*/
|
|
67
|
+
newStream(protocols: string | string[], options?: AbortOptions): Promise<Stream>;
|
|
68
|
+
/**
|
|
69
|
+
* Add a stream when it is opened to the registry
|
|
70
|
+
*/
|
|
71
|
+
addStream(stream: Stream): void;
|
|
72
|
+
/**
|
|
73
|
+
* Remove stream registry after it is closed
|
|
74
|
+
*/
|
|
75
|
+
removeStream(id: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Close the connection
|
|
78
|
+
*/
|
|
79
|
+
close(): Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
export declare function createConnection(init: ConnectionInit): Connection;
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGxD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAItD,UAAU,cAAc;IACtB,UAAU,EAAE,SAAS,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3E,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,UAAU,EAAE,MAAM,MAAM,EAAE,CAAA;IAC1B,IAAI,EAAE,cAAc,CAAA;CACrB;AAED;;;GAGG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC/C;;OAEG;IACH,SAAgB,EAAE,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,SAAgB,UAAU,EAAE,SAAS,CAAA;IAErC;;OAEG;IACH,SAAgB,UAAU,EAAE,MAAM,CAAA;IAElC;;OAEG;IACH,SAAgB,IAAI,EAAE,cAAc,CAAA;IAEpC;;;OAGG;IACI,IAAI,EAAE,MAAM,EAAE,CAAA;IAErB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkE;IAE7F;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAE5C,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;OAGG;gBACU,IAAI,EAAE,cAAc;IAiBjC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,IAAI,CAAC,MAAM,CAAC,YAEX;IAED;;OAEG;IACH,IAAI,OAAO,aAEV;IAED;;OAEG;IACG,SAAS,CAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBvF;;OAEG;IACH,SAAS,CAAE,MAAM,EAAE,MAAM;IAIzB;;OAEG;IACH,YAAY,CAAE,EAAE,EAAE,MAAM;IAIxB;;OAEG;IACG,KAAK;CAsBZ;AAED,wBAAgB,gBAAgB,CAAE,IAAI,EAAE,cAAc,GAAG,UAAU,CAElE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import errCode from 'err-code';
|
|
2
|
+
import { OPEN, CLOSING, CLOSED } from '@libp2p/interface-connection/status';
|
|
3
|
+
import { symbol } from '@libp2p/interface-connection';
|
|
4
|
+
import { logger } from '@libp2p/logger';
|
|
5
|
+
const log = logger('libp2p:connection');
|
|
6
|
+
/**
|
|
7
|
+
* An implementation of the js-libp2p connection.
|
|
8
|
+
* Any libp2p transport should use an upgrader to return this connection.
|
|
9
|
+
*/
|
|
10
|
+
export class ConnectionImpl {
|
|
11
|
+
/**
|
|
12
|
+
* An implementation of the js-libp2p connection.
|
|
13
|
+
* Any libp2p transport should use an upgrader to return this connection.
|
|
14
|
+
*/
|
|
15
|
+
constructor(init) {
|
|
16
|
+
const { remoteAddr, remotePeer, newStream, close, getStreams, stat } = init;
|
|
17
|
+
this.id = `${(parseInt(String(Math.random() * 1e9))).toString(36)}${Date.now()}`;
|
|
18
|
+
this.remoteAddr = remoteAddr;
|
|
19
|
+
this.remotePeer = remotePeer;
|
|
20
|
+
this.stat = {
|
|
21
|
+
...stat,
|
|
22
|
+
status: OPEN
|
|
23
|
+
};
|
|
24
|
+
this._newStream = newStream;
|
|
25
|
+
this._close = close;
|
|
26
|
+
this._getStreams = getStreams;
|
|
27
|
+
this.tags = [];
|
|
28
|
+
this._closing = false;
|
|
29
|
+
}
|
|
30
|
+
get [Symbol.toStringTag]() {
|
|
31
|
+
return 'Connection';
|
|
32
|
+
}
|
|
33
|
+
get [symbol]() {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get all the streams of the muxer
|
|
38
|
+
*/
|
|
39
|
+
get streams() {
|
|
40
|
+
return this._getStreams();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create a new stream from this connection
|
|
44
|
+
*/
|
|
45
|
+
async newStream(protocols, options) {
|
|
46
|
+
if (this.stat.status === CLOSING) {
|
|
47
|
+
throw errCode(new Error('the connection is being closed'), 'ERR_CONNECTION_BEING_CLOSED');
|
|
48
|
+
}
|
|
49
|
+
if (this.stat.status === CLOSED) {
|
|
50
|
+
throw errCode(new Error('the connection is closed'), 'ERR_CONNECTION_CLOSED');
|
|
51
|
+
}
|
|
52
|
+
if (!Array.isArray(protocols)) {
|
|
53
|
+
protocols = [protocols];
|
|
54
|
+
}
|
|
55
|
+
const stream = await this._newStream(protocols, options);
|
|
56
|
+
stream.stat.direction = 'outbound';
|
|
57
|
+
return stream;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Add a stream when it is opened to the registry
|
|
61
|
+
*/
|
|
62
|
+
addStream(stream) {
|
|
63
|
+
stream.stat.direction = 'inbound';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Remove stream registry after it is closed
|
|
67
|
+
*/
|
|
68
|
+
removeStream(id) {
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Close the connection
|
|
72
|
+
*/
|
|
73
|
+
async close() {
|
|
74
|
+
if (this.stat.status === CLOSED || this._closing) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.stat.status = CLOSING;
|
|
78
|
+
// close all streams - this can throw if we're not multiplexed
|
|
79
|
+
try {
|
|
80
|
+
this.streams.forEach(s => s.close());
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
log.error(err);
|
|
84
|
+
}
|
|
85
|
+
// Close raw connection
|
|
86
|
+
this._closing = true;
|
|
87
|
+
await this._close();
|
|
88
|
+
this._closing = false;
|
|
89
|
+
this.stat.timeline.close = Date.now();
|
|
90
|
+
this.stat.status = CLOSED;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export function createConnection(init) {
|
|
94
|
+
return new ConnectionImpl(init);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connection/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Multiaddr, Resolver } from '@multiformats/multiaddr';
|
|
2
2
|
import { TimeoutController } from 'timeout-abort-controller';
|
|
3
3
|
import { DialRequest } from './dial-request.js';
|
|
4
4
|
import type { Connection, ConnectionGater } from '@libp2p/interface-connection';
|
|
5
5
|
import type { AbortOptions } from '@libp2p/interfaces';
|
|
6
6
|
import type { Startable } from '@libp2p/interfaces/startable';
|
|
7
|
-
import
|
|
7
|
+
import { PeerId } from '@libp2p/interface-peer-id';
|
|
8
8
|
import type { AddressSorter, PeerStore } from '@libp2p/interface-peer-store';
|
|
9
9
|
import type { Metrics } from '@libp2p/interface-metrics';
|
|
10
10
|
import type { Dialer } from '@libp2p/interface-connection-manager';
|
|
@@ -64,7 +64,7 @@ export declare class DefaultDialer implements Startable, Dialer {
|
|
|
64
64
|
private readonly maxDialsPerPeer;
|
|
65
65
|
tokens: number[];
|
|
66
66
|
pendingDials: Map<string, PendingDial>;
|
|
67
|
-
pendingDialTargets: Map<string,
|
|
67
|
+
pendingDialTargets: Map<string, AbortController>;
|
|
68
68
|
private started;
|
|
69
69
|
constructor(components: DefaultDialerComponents, init?: DialerInit);
|
|
70
70
|
isStarted(): boolean;
|
|
@@ -78,20 +78,20 @@ export declare class DefaultDialer implements Startable, Dialer {
|
|
|
78
78
|
* The dial to the first address that is successfully able to upgrade a connection
|
|
79
79
|
* will be used.
|
|
80
80
|
*/
|
|
81
|
-
dial(
|
|
82
|
-
/**
|
|
83
|
-
* Connects to a given `peer` by dialing all of its known addresses.
|
|
84
|
-
* The dial to the first address that is successfully able to upgrade a connection
|
|
85
|
-
* will be used.
|
|
86
|
-
*/
|
|
87
|
-
_createCancellableDialTarget(peer: PeerId, options: AbortOptions): Promise<DialTarget>;
|
|
81
|
+
dial(peerIdOrMultiaddr: PeerId | Multiaddr, options?: AbortOptions): Promise<Connection>;
|
|
88
82
|
/**
|
|
89
83
|
* Creates a DialTarget. The DialTarget is used to create and track
|
|
90
84
|
* the DialRequest to a given peer.
|
|
91
|
-
*
|
|
85
|
+
*
|
|
86
|
+
* If a multiaddr is received it should be the only address attempted.
|
|
87
|
+
*
|
|
92
88
|
* Multiaddrs not supported by the available transports will be filtered out.
|
|
93
89
|
*/
|
|
94
|
-
_createDialTarget(
|
|
90
|
+
_createDialTarget(peerIdOrMultiaddr: PeerId | Multiaddr, options: AbortOptions): Promise<DialTarget>;
|
|
91
|
+
/**
|
|
92
|
+
* Loads a list of addresses from the peer store for the passed peer id
|
|
93
|
+
*/
|
|
94
|
+
_loadAddresses(peer: PeerId): Promise<Multiaddr[]>;
|
|
95
95
|
/**
|
|
96
96
|
* Creates a PendingDial that wraps the underlying DialRequest
|
|
97
97
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger';
|
|
2
|
-
import all from 'it-all';
|
|
3
|
-
import filter from 'it-filter';
|
|
4
|
-
import { pipe } from 'it-pipe';
|
|
5
2
|
import errCode from 'err-code';
|
|
6
|
-
import { multiaddr, resolvers } from '@multiformats/multiaddr';
|
|
3
|
+
import { isMultiaddr, multiaddr, resolvers } from '@multiformats/multiaddr';
|
|
7
4
|
import { TimeoutController } from 'timeout-abort-controller';
|
|
8
|
-
import { AbortError } from '@libp2p/interfaces/errors';
|
|
9
5
|
import { anySignal } from 'any-signal';
|
|
10
6
|
import { setMaxListeners } from 'events';
|
|
11
7
|
import { DialRequest } from './dial-request.js';
|
|
@@ -13,9 +9,8 @@ import { publicAddressesFirst } from '@libp2p/utils/address-sort';
|
|
|
13
9
|
import { trackedMap } from '@libp2p/tracked-map';
|
|
14
10
|
import { codes } from '../../errors.js';
|
|
15
11
|
import { DIAL_TIMEOUT, MAX_PARALLEL_DIALS, MAX_PER_PEER_DIALS, MAX_ADDRS_TO_DIAL } from '../../constants.js';
|
|
12
|
+
import { isPeerId } from '@libp2p/interface-peer-id';
|
|
16
13
|
import { getPeer } from '../../get-peer.js';
|
|
17
|
-
import sort from 'it-sort';
|
|
18
|
-
import map from 'it-map';
|
|
19
14
|
const log = logger('libp2p:dialer');
|
|
20
15
|
export class DefaultDialer {
|
|
21
16
|
constructor(components, init = {}) {
|
|
@@ -59,7 +54,7 @@ export class DefaultDialer {
|
|
|
59
54
|
}
|
|
60
55
|
this.pendingDials.clear();
|
|
61
56
|
for (const pendingTarget of this.pendingDialTargets.values()) {
|
|
62
|
-
pendingTarget.
|
|
57
|
+
pendingTarget.abort();
|
|
63
58
|
}
|
|
64
59
|
this.pendingDialTargets.clear();
|
|
65
60
|
}
|
|
@@ -68,8 +63,8 @@ export class DefaultDialer {
|
|
|
68
63
|
* The dial to the first address that is successfully able to upgrade a connection
|
|
69
64
|
* will be used.
|
|
70
65
|
*/
|
|
71
|
-
async dial(
|
|
72
|
-
const { id, multiaddrs } = getPeer(
|
|
66
|
+
async dial(peerIdOrMultiaddr, options = {}) {
|
|
67
|
+
const { id, multiaddrs } = getPeer(peerIdOrMultiaddr);
|
|
73
68
|
if (this.components.peerId.equals(id)) {
|
|
74
69
|
throw errCode(new Error('Tried to dial self'), codes.ERR_DIALED_SELF);
|
|
75
70
|
}
|
|
@@ -82,11 +77,31 @@ export class DefaultDialer {
|
|
|
82
77
|
throw errCode(new Error('The dial request is blocked by gater.allowDialPeer'), codes.ERR_PEER_DIAL_INTERCEPTED);
|
|
83
78
|
}
|
|
84
79
|
log('creating dial target for %p', id);
|
|
85
|
-
|
|
80
|
+
// resolving multiaddrs can involve dns lookups so allow them to be aborted
|
|
81
|
+
const controller = new AbortController();
|
|
82
|
+
const controllerId = randomId();
|
|
83
|
+
this.pendingDialTargets.set(controllerId, controller);
|
|
84
|
+
let signal = controller.signal;
|
|
85
|
+
// merge with the passed signal, if any
|
|
86
|
+
if (options.signal != null) {
|
|
87
|
+
signal = anySignal([signal, options.signal]);
|
|
88
|
+
}
|
|
89
|
+
let dialTarget;
|
|
90
|
+
try {
|
|
91
|
+
dialTarget = await this._createDialTarget(peerIdOrMultiaddr, {
|
|
92
|
+
...options,
|
|
93
|
+
signal
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
// done resolving the multiaddrs so remove the abort controller
|
|
98
|
+
this.pendingDialTargets.delete(controllerId);
|
|
99
|
+
}
|
|
86
100
|
if (dialTarget.addrs.length === 0) {
|
|
87
101
|
throw errCode(new Error('The dial request has no valid addresses'), codes.ERR_NO_VALID_ADDRESSES);
|
|
88
102
|
}
|
|
89
|
-
|
|
103
|
+
// try to join an in-flight dial for this peer if one is available
|
|
104
|
+
const pendingDial = this.pendingDials.get(dialTarget.id.toString()) ?? this._createPendingDial(dialTarget, options);
|
|
90
105
|
try {
|
|
91
106
|
const connection = await pendingDial.promise;
|
|
92
107
|
log('dial succeeded to %s', dialTarget.id);
|
|
@@ -105,61 +120,59 @@ export class DefaultDialer {
|
|
|
105
120
|
pendingDial.destroy();
|
|
106
121
|
}
|
|
107
122
|
}
|
|
108
|
-
/**
|
|
109
|
-
* Connects to a given `peer` by dialing all of its known addresses.
|
|
110
|
-
* The dial to the first address that is successfully able to upgrade a connection
|
|
111
|
-
* will be used.
|
|
112
|
-
*/
|
|
113
|
-
async _createCancellableDialTarget(peer, options) {
|
|
114
|
-
// Make dial target promise cancellable
|
|
115
|
-
const id = `${(parseInt(String(Math.random() * 1e9), 10)).toString()}${Date.now()}`;
|
|
116
|
-
const cancellablePromise = new Promise((resolve, reject) => {
|
|
117
|
-
this.pendingDialTargets.set(id, { resolve, reject });
|
|
118
|
-
});
|
|
119
|
-
try {
|
|
120
|
-
const dialTarget = await Promise.race([
|
|
121
|
-
this._createDialTarget(peer, options),
|
|
122
|
-
cancellablePromise
|
|
123
|
-
]);
|
|
124
|
-
return dialTarget;
|
|
125
|
-
}
|
|
126
|
-
finally {
|
|
127
|
-
this.pendingDialTargets.delete(id);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
123
|
/**
|
|
131
124
|
* Creates a DialTarget. The DialTarget is used to create and track
|
|
132
125
|
* the DialRequest to a given peer.
|
|
133
|
-
*
|
|
126
|
+
*
|
|
127
|
+
* If a multiaddr is received it should be the only address attempted.
|
|
128
|
+
*
|
|
134
129
|
* Multiaddrs not supported by the available transports will be filtered out.
|
|
135
130
|
*/
|
|
136
|
-
async _createDialTarget(
|
|
131
|
+
async _createDialTarget(peerIdOrMultiaddr, options) {
|
|
137
132
|
const _resolve = this._resolve.bind(this);
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
// Multiaddrs not supported by the available transports will be filtered out.
|
|
148
|
-
(source) => filter(source, (ma) => Boolean(this.components.transportManager.transportForMultiaddr(ma))), (source) => map(source, (ma) => {
|
|
149
|
-
if (peer.toString() === ma.getPeerId()) {
|
|
150
|
-
return ma;
|
|
151
|
-
}
|
|
152
|
-
return ma.encapsulate(`/p2p/${peer.toString()}`);
|
|
153
|
-
}), async (source) => await all(source));
|
|
133
|
+
let addrs = isMultiaddr(peerIdOrMultiaddr) ? [peerIdOrMultiaddr] : await this._loadAddresses(peerIdOrMultiaddr);
|
|
134
|
+
addrs = (await Promise.all(addrs.map(async (ma) => await _resolve(ma, options))))
|
|
135
|
+
.flat()
|
|
136
|
+
// Multiaddrs not supported by the available transports will be filtered out.
|
|
137
|
+
.filter(ma => Boolean(this.components.transportManager.transportForMultiaddr(ma)));
|
|
138
|
+
// deduplicate addresses
|
|
139
|
+
addrs = [...new Set(addrs)];
|
|
154
140
|
if (addrs.length > this.maxAddrsToDial) {
|
|
155
|
-
await this.components.peerStore.delete(peer);
|
|
156
141
|
throw errCode(new Error('dial with more addresses than allowed'), codes.ERR_TOO_MANY_ADDRESSES);
|
|
157
142
|
}
|
|
143
|
+
const peerId = isPeerId(peerIdOrMultiaddr) ? peerIdOrMultiaddr : undefined;
|
|
144
|
+
if (peerId != null) {
|
|
145
|
+
const peerIdMultiaddr = `/p2p/${peerId.toString()}`;
|
|
146
|
+
addrs = addrs.map(addr => {
|
|
147
|
+
const addressPeerId = addr.getPeerId();
|
|
148
|
+
if (addressPeerId == null || !peerId.equals(addressPeerId)) {
|
|
149
|
+
return addr.encapsulate(peerIdMultiaddr);
|
|
150
|
+
}
|
|
151
|
+
return addr;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
158
154
|
return {
|
|
159
|
-
id:
|
|
155
|
+
id: peerId == null ? randomId() : peerId.toString(),
|
|
160
156
|
addrs
|
|
161
157
|
};
|
|
162
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Loads a list of addresses from the peer store for the passed peer id
|
|
161
|
+
*/
|
|
162
|
+
async _loadAddresses(peer) {
|
|
163
|
+
const addresses = await this.components.peerStore.addressBook.get(peer);
|
|
164
|
+
return (await Promise.all(addresses.map(async (address) => {
|
|
165
|
+
const deny = await this.components.connectionGater.denyDialMultiaddr(peer, address.multiaddr);
|
|
166
|
+
if (deny) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
return address;
|
|
170
|
+
})))
|
|
171
|
+
.filter(isTruthy)
|
|
172
|
+
// Sort addresses so, for example, we try certified public address first
|
|
173
|
+
.sort(this.addressSorter)
|
|
174
|
+
.map(address => address.multiaddr);
|
|
175
|
+
}
|
|
163
176
|
/**
|
|
164
177
|
* Creates a PendingDial that wraps the underlying DialRequest
|
|
165
178
|
*/
|
|
@@ -258,4 +271,16 @@ export class DefaultDialer {
|
|
|
258
271
|
}
|
|
259
272
|
}
|
|
260
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Type safe version of `list.filter(Boolean)`
|
|
276
|
+
*/
|
|
277
|
+
function isTruthy(e) {
|
|
278
|
+
return Boolean(e);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Returns a random string
|
|
282
|
+
*/
|
|
283
|
+
function randomId() {
|
|
284
|
+
return `${(parseInt(String(Math.random() * 1e9), 10)).toString()}${Date.now()}`;
|
|
285
|
+
}
|
|
261
286
|
//# sourceMappingURL=index.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { PeerId } from '@libp2p/interface-peer-id';
|
|
|
6
6
|
import type { Connection, MultiaddrConnection } from '@libp2p/interface-connection';
|
|
7
7
|
import type { ConnectionManager, Dialer } from '@libp2p/interface-connection-manager';
|
|
8
8
|
import type { AddressSorter, PeerStore } from '@libp2p/interface-peer-store';
|
|
9
|
-
import { Resolver } from '@multiformats/multiaddr';
|
|
9
|
+
import { Multiaddr, Resolver } from '@multiformats/multiaddr';
|
|
10
10
|
import type { Metrics } from '@libp2p/interface-metrics';
|
|
11
11
|
import type { Upgrader } from '@libp2p/interface-transport';
|
|
12
12
|
export interface ConnectionManagerInit {
|
|
@@ -161,7 +161,7 @@ export declare class DefaultConnectionManager extends EventEmitter<ConnectionMan
|
|
|
161
161
|
*/
|
|
162
162
|
onDisconnect(evt: CustomEvent<Connection>): void;
|
|
163
163
|
getConnections(peerId?: PeerId): Connection[];
|
|
164
|
-
openConnection(
|
|
164
|
+
openConnection(peerIdOrMultiaddr: PeerId | Multiaddr, options?: AbortOptions): Promise<Connection>;
|
|
165
165
|
closeConnections(peerId: PeerId): Promise<void>;
|
|
166
166
|
/**
|
|
167
167
|
* Get all open connections with a peer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAe,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAY,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAA;AAErF,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/index.ts"],"names":[],"mappings":"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"}
|