libp2p 0.43.4 → 0.44.0-0d46c78f
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 +19 -19
- 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 +7 -69
- package/dist/src/components.d.ts.map +1 -1
- package/dist/src/components.js +60 -174
- package/dist/src/components.js.map +1 -1
- package/dist/src/config/connection-gater.browser.d.ts +8 -0
- package/dist/src/config/connection-gater.browser.d.ts.map +1 -0
- package/dist/src/config/connection-gater.browser.js +27 -0
- package/dist/src/config/connection-gater.browser.js.map +1 -0
- package/dist/src/config/connection-gater.d.ts +6 -0
- package/dist/src/config/connection-gater.d.ts.map +1 -0
- package/dist/src/config/connection-gater.js +18 -0
- package/dist/src/config/connection-gater.js.map +1 -0
- package/dist/src/config.d.ts +2 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +0 -71
- 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 +136 -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 +372 -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 +118 -247
- 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.d.ts +0 -10
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +7 -42
- 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.d.ts +13 -35
- package/dist/src/fetch/index.d.ts.map +1 -1
- package/dist/src/fetch/index.js +10 -12
- package/dist/src/fetch/index.js.map +1 -1
- package/dist/src/identify/index.d.ts +16 -48
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js +203 -201
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/index.d.ts +11 -67
- 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 +12 -35
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +141 -206
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/peer-routing.d.ts +1 -38
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/peer-routing.js +0 -59
- package/dist/src/peer-routing.js.map +1 -1
- package/dist/src/ping/constants.d.ts +4 -0
- package/dist/src/ping/constants.d.ts.map +1 -1
- package/dist/src/ping/constants.js +10 -0
- package/dist/src/ping/constants.js.map +1 -1
- package/dist/src/ping/index.d.ts +10 -27
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/ping/index.js +18 -21
- package/dist/src/ping/index.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 +27 -25
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/transport-manager.d.ts +15 -4
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/transport-manager.js +37 -12
- package/dist/src/transport-manager.js.map +1 -1
- package/dist/src/upgrader.d.ts +16 -11
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +38 -47
- package/dist/src/upgrader.js.map +1 -1
- package/dist/src/upnp-nat/index.d.ts +42 -0
- package/dist/src/upnp-nat/index.d.ts.map +1 -0
- package/dist/src/{nat-manager.js → upnp-nat/index.js} +11 -7
- package/dist/src/upnp-nat/index.js.map +1 -0
- package/package.json +70 -54
- package/src/address-manager/index.ts +12 -8
- package/src/autonat/index.ts +20 -22
- 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 +72 -251
- package/src/config/connection-gater.browser.ts +31 -0
- package/src/config/connection-gater.ts +19 -0
- package/src/config.ts +3 -73
- package/src/connection-manager/auto-dial.ts +189 -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 +506 -0
- package/src/connection-manager/index.ts +194 -339
- package/src/connection-manager/utils.ts +76 -0
- package/src/content-routing/index.ts +7 -55
- package/src/content-routing/utils.ts +3 -1
- package/src/fetch/index.ts +55 -18
- package/src/identify/index.ts +238 -228
- package/src/index.ts +12 -76
- package/src/insecure/index.ts +9 -5
- package/src/libp2p.ts +146 -265
- package/src/peer-routing.ts +1 -101
- package/src/ping/constants.ts +11 -0
- package/src/ping/index.ts +32 -28
- package/src/registrar.ts +31 -27
- package/src/transport-manager.ts +49 -15
- package/src/upgrader.ts +62 -57
- package/src/{nat-manager.ts → upnp-nat/index.ts} +15 -16
- 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/dht/dht-content-routing.d.ts +0 -17
- package/dist/src/dht/dht-content-routing.d.ts.map +0 -1
- package/dist/src/dht/dht-content-routing.js +0 -32
- package/dist/src/dht/dht-content-routing.js.map +0 -1
- package/dist/src/dht/dht-peer-routing.d.ts +0 -15
- package/dist/src/dht/dht-peer-routing.d.ts.map +0 -1
- package/dist/src/dht/dht-peer-routing.js +0 -26
- package/dist/src/dht/dht-peer-routing.js.map +0 -1
- package/dist/src/dht/dummy-dht.d.ts +0 -20
- package/dist/src/dht/dummy-dht.d.ts.map +0 -1
- package/dist/src/dht/dummy-dht.js +0 -46
- package/dist/src/dht/dummy-dht.js.map +0 -1
- package/dist/src/nat-manager.d.ts +0 -74
- package/dist/src/nat-manager.d.ts.map +0 -1
- package/dist/src/nat-manager.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/dht/dht-content-routing.ts +0 -44
- package/src/dht/dht-peer-routing.ts +0 -36
- package/src/dht/dummy-dht.ts +0 -60
- package/src/peer-record-updater.ts +0 -65
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import drain from 'it-drain';
|
|
2
|
-
import { CodeError } from '@libp2p/interfaces/errors';
|
|
3
|
-
/**
|
|
4
|
-
* Wrapper class to convert events into returned values
|
|
5
|
-
*/
|
|
6
|
-
export class DHTContentRouting {
|
|
7
|
-
constructor(dht) {
|
|
8
|
-
this.dht = dht;
|
|
9
|
-
}
|
|
10
|
-
async provide(cid) {
|
|
11
|
-
await drain(this.dht.provide(cid));
|
|
12
|
-
}
|
|
13
|
-
async *findProviders(cid, options = {}) {
|
|
14
|
-
for await (const event of this.dht.findProviders(cid, options)) {
|
|
15
|
-
if (event.name === 'PROVIDER') {
|
|
16
|
-
yield* event.providers;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
async put(key, value, options) {
|
|
21
|
-
await drain(this.dht.put(key, value, options));
|
|
22
|
-
}
|
|
23
|
-
async get(key, options) {
|
|
24
|
-
for await (const event of this.dht.get(key, options)) {
|
|
25
|
-
if (event.name === 'VALUE') {
|
|
26
|
-
return event.value;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
throw new CodeError('Not found', 'ERR_NOT_FOUND');
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=dht-content-routing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dht-content-routing.js","sourceRoot":"","sources":["../../../src/dht/dht-content-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAOrD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAG5B,YAAa,GAAQ;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,GAAQ;QACrB,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,CAAE,aAAa,CAAE,GAAQ,EAAE,UAAwB,EAAE;QACzD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC7B,KAAM,CAAC,CAAC,KAAK,CAAC,SAAS,CAAA;aACxB;SACF;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,KAAiB,EAAE,OAAsB;QACnE,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,OAAsB;QAChD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YACpD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC1B,OAAO,KAAK,CAAC,KAAK,CAAA;aACnB;SACF;QAED,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;IACnD,CAAC;CACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { PeerRouting } from '@libp2p/interface-peer-routing';
|
|
2
|
-
import type { DHT } from '@libp2p/interface-dht';
|
|
3
|
-
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
4
|
-
import type { AbortOptions } from '@libp2p/interfaces';
|
|
5
|
-
import type { PeerInfo } from '@libp2p/interface-peer-info';
|
|
6
|
-
/**
|
|
7
|
-
* Wrapper class to convert events into returned values
|
|
8
|
-
*/
|
|
9
|
-
export declare class DHTPeerRouting implements PeerRouting {
|
|
10
|
-
private readonly dht;
|
|
11
|
-
constructor(dht: DHT);
|
|
12
|
-
findPeer(peerId: PeerId, options?: AbortOptions): Promise<PeerInfo>;
|
|
13
|
-
getClosestPeers(key: Uint8Array, options?: AbortOptions): AsyncIterable<PeerInfo>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=dht-peer-routing.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dht-peer-routing.d.ts","sourceRoot":"","sources":["../../../src/dht/dht-peer-routing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAE3D;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAK;gBAEZ,GAAG,EAAE,GAAG;IAIf,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAUtE,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;CAO/F"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/interfaces/errors';
|
|
2
|
-
import { messages, codes } from '../errors.js';
|
|
3
|
-
/**
|
|
4
|
-
* Wrapper class to convert events into returned values
|
|
5
|
-
*/
|
|
6
|
-
export class DHTPeerRouting {
|
|
7
|
-
constructor(dht) {
|
|
8
|
-
this.dht = dht;
|
|
9
|
-
}
|
|
10
|
-
async findPeer(peerId, options = {}) {
|
|
11
|
-
for await (const event of this.dht.findPeer(peerId, options)) {
|
|
12
|
-
if (event.name === 'FINAL_PEER') {
|
|
13
|
-
return event.peer;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
throw new CodeError(messages.NOT_FOUND, codes.ERR_NOT_FOUND);
|
|
17
|
-
}
|
|
18
|
-
async *getClosestPeers(key, options = {}) {
|
|
19
|
-
for await (const event of this.dht.getClosestPeers(key, options)) {
|
|
20
|
-
if (event.name === 'FINAL_PEER') {
|
|
21
|
-
yield event.peer;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=dht-peer-routing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dht-peer-routing.js","sourceRoot":"","sources":["../../../src/dht/dht-peer-routing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAO9C;;GAEG;AACH,MAAM,OAAO,cAAc;IAGzB,YAAa,GAAQ;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,MAAc,EAAE,UAAwB,EAAE;QACxD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC/B,OAAO,KAAK,CAAC,IAAI,CAAA;aAClB;SACF;QAED,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,CAAE,eAAe,CAAE,GAAe,EAAE,UAAwB,EAAE;QAClE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YAChE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC/B,MAAM,KAAK,CAAC,IAAI,CAAA;aACjB;SACF;IACH,CAAC;CACF"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { DualDHT, QueryEvent, SingleDHT } from '@libp2p/interface-dht';
|
|
2
|
-
import type { PeerDiscoveryEvents } from '@libp2p/interface-peer-discovery';
|
|
3
|
-
import { EventEmitter } from '@libp2p/interfaces/events';
|
|
4
|
-
import { symbol } from '@libp2p/interface-peer-discovery';
|
|
5
|
-
export declare class DummyDHT extends EventEmitter<PeerDiscoveryEvents> implements DualDHT {
|
|
6
|
-
get [symbol](): true;
|
|
7
|
-
get [Symbol.toStringTag](): '@libp2p/dummy-dht';
|
|
8
|
-
get wan(): SingleDHT;
|
|
9
|
-
get lan(): SingleDHT;
|
|
10
|
-
get(): AsyncIterable<QueryEvent>;
|
|
11
|
-
findProviders(): AsyncIterable<QueryEvent>;
|
|
12
|
-
findPeer(): AsyncIterable<QueryEvent>;
|
|
13
|
-
getClosestPeers(): AsyncIterable<QueryEvent>;
|
|
14
|
-
provide(): AsyncIterable<QueryEvent>;
|
|
15
|
-
put(): AsyncIterable<QueryEvent>;
|
|
16
|
-
getMode(): Promise<'client' | 'server'>;
|
|
17
|
-
setMode(): Promise<void>;
|
|
18
|
-
refreshRoutingTable(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=dummy-dht.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dummy-dht.d.ts","sourceRoot":"","sources":["../../../src/dht/dummy-dht.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAG3E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAEzD,qBAAa,QAAS,SAAQ,YAAY,CAAC,mBAAmB,CAAE,YAAW,OAAO;IAChF,IAAI,CAAC,MAAM,CAAC,IAAK,IAAI,CAEpB;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAK,mBAAmB,CAE/C;IAED,IAAI,GAAG,IAAK,SAAS,CAEpB;IAED,IAAI,GAAG,IAAK,SAAS,CAEpB;IAED,GAAG,IAAK,aAAa,CAAC,UAAU,CAAC;IAIjC,aAAa,IAAK,aAAa,CAAC,UAAU,CAAC;IAI3C,QAAQ,IAAK,aAAa,CAAC,UAAU,CAAC;IAItC,eAAe,IAAK,aAAa,CAAC,UAAU,CAAC;IAI7C,OAAO,IAAK,aAAa,CAAC,UAAU,CAAC;IAIrC,GAAG,IAAK,aAAa,CAAC,UAAU,CAAC;IAI3B,OAAO,IAAK,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAIxC,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IAIzB,mBAAmB,IAAK,OAAO,CAAC,IAAI,CAAC;CAG5C"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/interfaces/errors';
|
|
2
|
-
import { messages, codes } from '../errors.js';
|
|
3
|
-
import { EventEmitter } from '@libp2p/interfaces/events';
|
|
4
|
-
import { symbol } from '@libp2p/interface-peer-discovery';
|
|
5
|
-
export class DummyDHT extends EventEmitter {
|
|
6
|
-
get [symbol]() {
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
get [Symbol.toStringTag]() {
|
|
10
|
-
return '@libp2p/dummy-dht';
|
|
11
|
-
}
|
|
12
|
-
get wan() {
|
|
13
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
14
|
-
}
|
|
15
|
-
get lan() {
|
|
16
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
17
|
-
}
|
|
18
|
-
get() {
|
|
19
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
20
|
-
}
|
|
21
|
-
findProviders() {
|
|
22
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
23
|
-
}
|
|
24
|
-
findPeer() {
|
|
25
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
26
|
-
}
|
|
27
|
-
getClosestPeers() {
|
|
28
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
29
|
-
}
|
|
30
|
-
provide() {
|
|
31
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
32
|
-
}
|
|
33
|
-
put() {
|
|
34
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
35
|
-
}
|
|
36
|
-
async getMode() {
|
|
37
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
38
|
-
}
|
|
39
|
-
async setMode() {
|
|
40
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
41
|
-
}
|
|
42
|
-
async refreshRoutingTable() {
|
|
43
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=dummy-dht.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dummy-dht.js","sourceRoot":"","sources":["../../../src/dht/dummy-dht.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAEzD,MAAM,OAAO,QAAS,SAAQ,YAAiC;IAC7D,IAAI,CAAC,MAAM,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAED,IAAI,GAAG;QACL,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,IAAI,GAAG;QACL,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,GAAG;QACD,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,aAAa;QACX,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,QAAQ;QACN,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,eAAe;QACb,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,OAAO;QACL,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,GAAG;QACD,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;CACF"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { NatAPI } from '@achingbrain/nat-port-mapper';
|
|
2
|
-
import type { Startable } from '@libp2p/interfaces/startable';
|
|
3
|
-
import type { TransportManager } from '@libp2p/interface-transport';
|
|
4
|
-
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
5
|
-
import type { AddressManager } from '@libp2p/interface-address-manager';
|
|
6
|
-
export interface PMPOptions {
|
|
7
|
-
/**
|
|
8
|
-
* Whether to enable PMP as well as UPnP
|
|
9
|
-
*/
|
|
10
|
-
enabled?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface NatManagerInit {
|
|
13
|
-
/**
|
|
14
|
-
* Whether to enable the NAT manager
|
|
15
|
-
*/
|
|
16
|
-
enabled: boolean;
|
|
17
|
-
/**
|
|
18
|
-
* Pass a value to use instead of auto-detection
|
|
19
|
-
*/
|
|
20
|
-
externalAddress?: string;
|
|
21
|
-
/**
|
|
22
|
-
* Pass a value to use instead of auto-detection
|
|
23
|
-
*/
|
|
24
|
-
localAddress?: string;
|
|
25
|
-
/**
|
|
26
|
-
* A string value to use for the port mapping description on the gateway
|
|
27
|
-
*/
|
|
28
|
-
description?: string;
|
|
29
|
-
/**
|
|
30
|
-
* How long UPnP port mappings should last for in seconds (minimum 1200)
|
|
31
|
-
*/
|
|
32
|
-
ttl?: number;
|
|
33
|
-
/**
|
|
34
|
-
* Whether to automatically refresh UPnP port mappings when their TTL is reached
|
|
35
|
-
*/
|
|
36
|
-
keepAlive: boolean;
|
|
37
|
-
/**
|
|
38
|
-
* Pass a value to use instead of auto-detection
|
|
39
|
-
*/
|
|
40
|
-
gateway?: string;
|
|
41
|
-
}
|
|
42
|
-
export interface NatManagerComponents {
|
|
43
|
-
peerId: PeerId;
|
|
44
|
-
transportManager: TransportManager;
|
|
45
|
-
addressManager: AddressManager;
|
|
46
|
-
}
|
|
47
|
-
export declare class NatManager implements Startable {
|
|
48
|
-
private readonly components;
|
|
49
|
-
private readonly enabled;
|
|
50
|
-
private readonly externalAddress?;
|
|
51
|
-
private readonly localAddress?;
|
|
52
|
-
private readonly description;
|
|
53
|
-
private readonly ttl;
|
|
54
|
-
private readonly keepAlive;
|
|
55
|
-
private readonly gateway?;
|
|
56
|
-
private started;
|
|
57
|
-
private client?;
|
|
58
|
-
constructor(components: NatManagerComponents, init: NatManagerInit);
|
|
59
|
-
isStarted(): boolean;
|
|
60
|
-
start(): void;
|
|
61
|
-
/**
|
|
62
|
-
* Attempt to use uPnP to configure port mapping using the current gateway.
|
|
63
|
-
*
|
|
64
|
-
* Run after start to ensure the transport manager has all addresses configured.
|
|
65
|
-
*/
|
|
66
|
-
afterStart(): void;
|
|
67
|
-
_start(): Promise<void>;
|
|
68
|
-
_getClient(): Promise<NatAPI>;
|
|
69
|
-
/**
|
|
70
|
-
* Stops the NAT manager
|
|
71
|
-
*/
|
|
72
|
-
stop(): Promise<void>;
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=nat-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nat-manager.d.ts","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAS9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AASvE,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,qBAAa,UAAW,YAAW,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEV,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc;IAiBnE,SAAS,IAAK,OAAO;IAIrB,KAAK,IAAK,IAAI;IAId;;;;OAIG;IACH,UAAU,IAAK,IAAI;IAcb,MAAM,IAAK,OAAO,CAAC,IAAI,CAAC;IAuDxB,UAAU,IAAK,OAAO,CAAC,MAAM,CAAC;IAepC;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAY7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nat-manager.js","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Startable } from '@libp2p/interfaces/startable';
|
|
2
|
-
import type { TransportManager } from '@libp2p/interface-transport';
|
|
3
|
-
import type { AddressManager } from '@libp2p/interface-address-manager';
|
|
4
|
-
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
5
|
-
import type { PeerStore } from '@libp2p/interface-peer-store';
|
|
6
|
-
export interface PeerRecordUpdaterComponents {
|
|
7
|
-
peerId: PeerId;
|
|
8
|
-
peerStore: PeerStore;
|
|
9
|
-
transportManager: TransportManager;
|
|
10
|
-
addressManager: AddressManager;
|
|
11
|
-
}
|
|
12
|
-
export declare class PeerRecordUpdater implements Startable {
|
|
13
|
-
private readonly components;
|
|
14
|
-
private started;
|
|
15
|
-
constructor(components: PeerRecordUpdaterComponents);
|
|
16
|
-
isStarted(): boolean;
|
|
17
|
-
start(): Promise<void>;
|
|
18
|
-
stop(): Promise<void>;
|
|
19
|
-
/**
|
|
20
|
-
* Create (or update if existing) self peer record and store it in the AddressBook.
|
|
21
|
-
*/
|
|
22
|
-
update(): void;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=peer-record-updater.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"peer-record-updater.d.ts","sourceRoot":"","sources":["../../src/peer-record-updater.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAI7D,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,OAAO,CAAS;gBAEX,UAAU,EAAE,2BAA2B;IAMpD,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAOvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACH,MAAM,IAAK,IAAI;CAehB"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record';
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
3
|
-
import { protocols } from '@multiformats/multiaddr';
|
|
4
|
-
const log = logger('libp2p:peer-record-updater');
|
|
5
|
-
export class PeerRecordUpdater {
|
|
6
|
-
constructor(components) {
|
|
7
|
-
this.components = components;
|
|
8
|
-
this.started = false;
|
|
9
|
-
this.update = this.update.bind(this);
|
|
10
|
-
}
|
|
11
|
-
isStarted() {
|
|
12
|
-
return this.started;
|
|
13
|
-
}
|
|
14
|
-
async start() {
|
|
15
|
-
this.started = true;
|
|
16
|
-
this.components.transportManager.addEventListener('listener:listening', this.update);
|
|
17
|
-
this.components.transportManager.addEventListener('listener:close', this.update);
|
|
18
|
-
this.components.addressManager.addEventListener('change:addresses', this.update);
|
|
19
|
-
}
|
|
20
|
-
async stop() {
|
|
21
|
-
this.started = false;
|
|
22
|
-
this.components.transportManager.removeEventListener('listener:listening', this.update);
|
|
23
|
-
this.components.transportManager.removeEventListener('listener:close', this.update);
|
|
24
|
-
this.components.addressManager.removeEventListener('change:addresses', this.update);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Create (or update if existing) self peer record and store it in the AddressBook.
|
|
28
|
-
*/
|
|
29
|
-
update() {
|
|
30
|
-
Promise.resolve()
|
|
31
|
-
.then(async () => {
|
|
32
|
-
const peerRecord = new PeerRecord({
|
|
33
|
-
peerId: this.components.peerId,
|
|
34
|
-
multiaddrs: this.components.addressManager.getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code))
|
|
35
|
-
});
|
|
36
|
-
const envelope = await RecordEnvelope.seal(peerRecord, this.components.peerId);
|
|
37
|
-
await this.components.peerStore.addressBook.consumePeerRecord(envelope);
|
|
38
|
-
})
|
|
39
|
-
.catch(err => {
|
|
40
|
-
log.error('Could not update self peer record: %o', err);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=peer-record-updater.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"peer-record-updater.js","sourceRoot":"","sources":["../../src/peer-record-updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMnD,MAAM,GAAG,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAA;AAShD,MAAM,OAAO,iBAAiB;IAI5B,YAAa,UAAuC;QAClD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACpF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAChF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACvF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACrF,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;aAC/G,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC9E,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QACzE,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACN,CAAC;CACF"}
|
package/dist/typedoc-urls.json
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"codec": "https://libp2p.github.io/js-libp2p/functions/circuit_relay._internal_.Limit.codec.html",
|
|
3
|
-
"decode": "https://libp2p.github.io/js-libp2p/functions/circuit_relay._internal_.Limit.decode.html",
|
|
4
|
-
"encode": "https://libp2p.github.io/js-libp2p/functions/circuit_relay._internal_.Limit.encode.html",
|
|
5
|
-
"AdvertServiceComponents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.AdvertServiceComponents.html",
|
|
6
|
-
"AdvertServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.AdvertServiceInit.html",
|
|
7
|
-
"CircuitRelayServerComponents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.CircuitRelayServerComponents.html",
|
|
8
|
-
"CircuitRelayServerInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.CircuitRelayServerInit.html",
|
|
9
|
-
"CircuitRelayTransportComponents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.CircuitRelayTransportComponents.html",
|
|
10
|
-
"CircuitRelayTransportInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.CircuitRelayTransportInit.html",
|
|
11
|
-
"Limit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.Limit-1.html",
|
|
12
|
-
"RelayDiscoveryComponents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.RelayDiscoveryComponents.html",
|
|
13
|
-
"RelayStoreInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.RelayStoreInit.html",
|
|
14
|
-
"ReservationStoreInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.ReservationStoreInit.html",
|
|
15
|
-
"CircuitRelayService": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay.CircuitRelayService.html",
|
|
16
|
-
"CircuitRelayServiceEvents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay.CircuitRelayServiceEvents.html",
|
|
17
|
-
"RelayReservation": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay.RelayReservation.html",
|
|
18
|
-
"circuitRelayServer": "https://libp2p.github.io/js-libp2p/functions/circuit_relay.circuitRelayServer.html",
|
|
19
|
-
"circuitRelayTransport": "https://libp2p.github.io/js-libp2p/functions/circuit_relay.circuitRelayTransport.html",
|
|
20
|
-
"AddressFilter": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.AddressFilter.html",
|
|
21
|
-
"AddressManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.AddressManagerInit.html",
|
|
22
|
-
"AutonatServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.AutonatServiceInit.html",
|
|
23
|
-
"Components": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.Components.html",
|
|
24
|
-
"ConnectionManagerConfig": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.ConnectionManagerConfig.html",
|
|
25
|
-
"FetchServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.FetchServiceInit.html",
|
|
26
|
-
"HostProperties": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.HostProperties.html",
|
|
27
|
-
"IdentifyServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.IdentifyServiceInit.html",
|
|
28
|
-
"NatManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.NatManagerInit.html",
|
|
29
|
-
"PeerRoutingInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.PeerRoutingInit.html",
|
|
30
|
-
"PingServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.PingServiceInit.html",
|
|
31
|
-
"RefreshManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.RefreshManagerInit.html",
|
|
32
|
-
"TransportManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.TransportManagerInit.html",
|
|
33
|
-
"Libp2pEvents": "https://libp2p.github.io/js-libp2p/interfaces/index.Libp2pEvents.html",
|
|
34
|
-
"Libp2pInit": "https://libp2p.github.io/js-libp2p/interfaces/index.Libp2pInit.html",
|
|
35
|
-
"Libp2pOptions": "https://libp2p.github.io/js-libp2p/types/index.Libp2pOptions.html",
|
|
36
|
-
"createLibp2p": "https://libp2p.github.io/js-libp2p/functions/index.createLibp2p.html",
|
|
37
|
-
"plaintext": "https://libp2p.github.io/js-libp2p/functions/insecure.plaintext.html",
|
|
38
|
-
"ProtectorInit": "https://libp2p.github.io/js-libp2p/interfaces/pnet.ProtectorInit.html",
|
|
39
|
-
"generateKey": "https://libp2p.github.io/js-libp2p/functions/pnet.generateKey.html",
|
|
40
|
-
"preSharedKey": "https://libp2p.github.io/js-libp2p/functions/pnet.preSharedKey.html"
|
|
41
|
-
}
|
|
@@ -1,158 +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
|
-
import type { Startable } from '@libp2p/interfaces/startable'
|
|
6
|
-
import type { PeerId } from '@libp2p/interface-peer-id'
|
|
7
|
-
import type { ConnectionManager } from '@libp2p/interface-connection-manager'
|
|
8
|
-
import type { PeerStore } from '@libp2p/interface-peer-store'
|
|
9
|
-
|
|
10
|
-
const log = logger('libp2p:connection-manager:auto-dialler')
|
|
11
|
-
|
|
12
|
-
export interface AutoDiallerInit {
|
|
13
|
-
/**
|
|
14
|
-
* The minimum number of connections to avoid pruning
|
|
15
|
-
*/
|
|
16
|
-
minConnections?: number
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* How often, in milliseconds, it should preemptively guarantee connections are above the low watermark
|
|
20
|
-
*/
|
|
21
|
-
autoDialInterval?: number
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export interface AutoDiallerComponents {
|
|
25
|
-
peerId: PeerId
|
|
26
|
-
connectionManager: ConnectionManager
|
|
27
|
-
peerStore: PeerStore
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const defaultOptions: Partial<AutoDiallerInit> = {
|
|
31
|
-
minConnections: 0,
|
|
32
|
-
autoDialInterval: 10000
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export class AutoDialler implements Startable {
|
|
36
|
-
private readonly components: AutoDiallerComponents
|
|
37
|
-
private readonly options: Required<AutoDiallerInit>
|
|
38
|
-
private running: boolean
|
|
39
|
-
private autoDialTimeout?: ReturnType<retimer>
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Proactively tries to connect to known peers stored in the PeerStore.
|
|
43
|
-
* It will keep the number of connections below the upper limit and sort
|
|
44
|
-
* the peers to connect based on wether we know their keys and protocols.
|
|
45
|
-
*/
|
|
46
|
-
constructor (components: AutoDiallerComponents, init: AutoDiallerInit) {
|
|
47
|
-
this.components = components
|
|
48
|
-
this.options = mergeOptions.call({ ignoreUndefined: true }, defaultOptions, init)
|
|
49
|
-
this.running = false
|
|
50
|
-
this._autoDial = this._autoDial.bind(this)
|
|
51
|
-
|
|
52
|
-
log('options: %j', this.options)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
isStarted (): boolean {
|
|
56
|
-
return this.running
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Starts the auto dialer
|
|
61
|
-
*/
|
|
62
|
-
async start (): Promise<void> {
|
|
63
|
-
this.running = true
|
|
64
|
-
|
|
65
|
-
void this._autoDial().catch(err => {
|
|
66
|
-
log.error('could not start autodial', err)
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
log('started')
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Stops the auto dialler
|
|
74
|
-
*/
|
|
75
|
-
async stop (): Promise<void> {
|
|
76
|
-
this.running = false
|
|
77
|
-
|
|
78
|
-
if (this.autoDialTimeout != null) {
|
|
79
|
-
this.autoDialTimeout.clear()
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
log('stopped')
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
async _autoDial (): Promise<void> {
|
|
86
|
-
if (this.autoDialTimeout != null) {
|
|
87
|
-
this.autoDialTimeout.clear()
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const minConnections = this.options.minConnections
|
|
91
|
-
|
|
92
|
-
// Already has enough connections
|
|
93
|
-
if (this.components.connectionManager.getConnections().length >= minConnections) {
|
|
94
|
-
this.autoDialTimeout = retimer(this._autoDial, this.options.autoDialInterval)
|
|
95
|
-
|
|
96
|
-
return
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Sort peers on whether we know protocols or public keys for them
|
|
100
|
-
let peers = await this.components.peerStore.all()
|
|
101
|
-
|
|
102
|
-
peers = peers.filter((peer) => {
|
|
103
|
-
// do not dial ourselves
|
|
104
|
-
if (peer.id.equals(this.components.peerId)) {
|
|
105
|
-
return false
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// do not dial peers without multiaddrs
|
|
109
|
-
if (peer.addresses.length === 0) {
|
|
110
|
-
return false
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return true
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
// shuffle the peers
|
|
117
|
-
peers = peers.sort(() => Math.random() > 0.5 ? 1 : -1)
|
|
118
|
-
|
|
119
|
-
peers = peers.sort((a, b) => {
|
|
120
|
-
// dial peers with the most protocols first
|
|
121
|
-
if (b.protocols.length > a.protocols.length) {
|
|
122
|
-
return 1
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
// dial peers with public keys first
|
|
126
|
-
if (b.id.publicKey != null && a.id.publicKey == null) {
|
|
127
|
-
return 1
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
return -1
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
for (let i = 0; this.running && i < peers.length && this.components.connectionManager.getConnections().length < minConnections; i++) {
|
|
134
|
-
// Connection Manager was stopped during async dial
|
|
135
|
-
if (!this.running) {
|
|
136
|
-
return
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const peer = peers[i]
|
|
140
|
-
|
|
141
|
-
if (this.components.connectionManager.getConnections(peer.id).length === 0) {
|
|
142
|
-
log('connecting to a peerStore stored peer %p', peer.id)
|
|
143
|
-
try {
|
|
144
|
-
await this.components.connectionManager.openConnection(peer.id)
|
|
145
|
-
} catch (err: any) {
|
|
146
|
-
log.error('could not connect to peerStore stored peer', err)
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
// Connection Manager was stopped
|
|
152
|
-
if (!this.running) {
|
|
153
|
-
return
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
this.autoDialTimeout = retimer(this._autoDial, this.options.autoDialInterval)
|
|
157
|
-
}
|
|
158
|
-
}
|