libp2p 0.44.0 → 0.45.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/dist/index.min.js +30 -30
- package/dist/src/address-manager/index.d.ts +8 -4
- package/dist/src/address-manager/index.d.ts.map +1 -1
- package/dist/src/address-manager/index.js +37 -6
- package/dist/src/address-manager/index.js.map +1 -1
- package/dist/src/address-manager/utils.d.ts +2 -0
- package/dist/src/address-manager/utils.d.ts.map +1 -0
- package/dist/src/address-manager/utils.js +12 -0
- package/dist/src/address-manager/utils.js.map +1 -0
- package/dist/src/autonat/constants.d.ts +16 -2
- package/dist/src/autonat/constants.d.ts.map +1 -1
- package/dist/src/autonat/constants.js +16 -2
- package/dist/src/autonat/constants.js.map +1 -1
- package/dist/src/autonat/index.d.ts +12 -33
- package/dist/src/autonat/index.d.ts.map +1 -1
- package/dist/src/autonat/index.js +36 -30
- 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 +10 -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 +4 -2
- 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 -4
- package/dist/src/circuit-relay/transport/index.js.map +1 -1
- package/dist/src/circuit-relay/transport/listener.d.ts.map +1 -1
- package/dist/src/circuit-relay/transport/listener.js +30 -26
- package/dist/src/circuit-relay/transport/listener.js.map +1 -1
- package/dist/src/circuit-relay/transport/reservation-store.d.ts +5 -4
- package/dist/src/circuit-relay/transport/reservation-store.d.ts.map +1 -1
- package/dist/src/circuit-relay/transport/reservation-store.js +37 -30
- package/dist/src/circuit-relay/transport/reservation-store.js.map +1 -1
- package/dist/src/components.d.ts +6 -63
- package/dist/src/components.d.ts.map +1 -1
- package/dist/src/components.js +60 -164
- 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 -62
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection-manager/auto-dial.d.ts +3 -0
- package/dist/src/connection-manager/auto-dial.d.ts.map +1 -1
- package/dist/src/connection-manager/auto-dial.js +36 -13
- package/dist/src/connection-manager/auto-dial.js.map +1 -1
- package/dist/src/connection-manager/connection-pruner.d.ts +4 -0
- package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -1
- package/dist/src/connection-manager/connection-pruner.js +23 -8
- package/dist/src/connection-manager/connection-pruner.js.map +1 -1
- package/dist/src/connection-manager/dial-queue.d.ts +2 -1
- package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
- package/dist/src/connection-manager/dial-queue.js +36 -14
- package/dist/src/connection-manager/dial-queue.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +8 -7
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +23 -34
- package/dist/src/connection-manager/index.js.map +1 -1
- 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 +7 -9
- package/dist/src/fetch/index.js.map +1 -1
- package/dist/src/identify/identify.d.ts +53 -0
- package/dist/src/identify/identify.d.ts.map +1 -0
- package/dist/src/identify/identify.js +405 -0
- package/dist/src/identify/identify.js.map +1 -0
- package/dist/src/identify/index.d.ts +12 -58
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js +5 -388
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/index.d.ts +13 -68
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/insecure/index.js.map +1 -1
- package/dist/src/libp2p.d.ts +11 -42
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +137 -196
- 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 +11 -4
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/transport-manager.js +19 -10
- package/dist/src/transport-manager.js.map +1 -1
- package/dist/src/upgrader.d.ts +15 -10
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +39 -48
- 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/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/typedoc-urls.json +25 -10
- package/package.json +61 -45
- package/src/address-manager/index.ts +50 -8
- package/src/address-manager/utils.ts +14 -0
- package/src/autonat/constants.ts +17 -2
- package/src/autonat/index.ts +53 -45
- package/src/circuit-relay/server/advert-service.ts +2 -2
- package/src/circuit-relay/server/index.ts +11 -3
- package/src/circuit-relay/transport/discovery.ts +5 -3
- package/src/circuit-relay/transport/index.ts +9 -4
- package/src/circuit-relay/transport/listener.ts +38 -28
- package/src/circuit-relay/transport/reservation-store.ts +34 -20
- package/src/components.ts +71 -234
- package/src/config/connection-gater.browser.ts +31 -0
- package/src/config/connection-gater.ts +19 -0
- package/src/config.ts +3 -64
- package/src/connection-manager/auto-dial.ts +44 -15
- package/src/connection-manager/connection-pruner.ts +28 -8
- package/src/connection-manager/dial-queue.ts +41 -21
- package/src/connection-manager/index.ts +31 -43
- package/src/content-routing/index.ts +7 -55
- package/src/content-routing/utils.ts +3 -1
- package/src/fetch/index.ts +51 -14
- package/src/identify/identify.ts +518 -0
- package/src/identify/index.ts +17 -507
- package/src/index.ts +14 -77
- package/src/insecure/index.ts +4 -4
- package/src/libp2p.ts +139 -260
- 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 +27 -13
- package/src/upgrader.ts +62 -58
- package/src/{nat-manager.ts → upnp-nat/index.ts} +16 -17
- package/src/version.ts +1 -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/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,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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import drain from 'it-drain'
|
|
2
|
-
import { CodeError } from '@libp2p/interfaces/errors'
|
|
3
|
-
import type { DHT } from '@libp2p/interface-dht'
|
|
4
|
-
import type { ContentRouting } from '@libp2p/interface-content-routing'
|
|
5
|
-
import type { CID } from 'multiformats/cid'
|
|
6
|
-
import type { AbortOptions } from '@libp2p/interfaces'
|
|
7
|
-
import type { PeerInfo } from '@libp2p/interface-peer-info'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Wrapper class to convert events into returned values
|
|
11
|
-
*/
|
|
12
|
-
export class DHTContentRouting implements ContentRouting {
|
|
13
|
-
private readonly dht: DHT
|
|
14
|
-
|
|
15
|
-
constructor (dht: DHT) {
|
|
16
|
-
this.dht = dht
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
async provide (cid: CID): Promise<void> {
|
|
20
|
-
await drain(this.dht.provide(cid))
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
async * findProviders (cid: CID, options: AbortOptions = {}): AsyncGenerator<PeerInfo, void, undefined> {
|
|
24
|
-
for await (const event of this.dht.findProviders(cid, options)) {
|
|
25
|
-
if (event.name === 'PROVIDER') {
|
|
26
|
-
yield * event.providers
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async put (key: Uint8Array, value: Uint8Array, options?: AbortOptions): Promise<void> {
|
|
32
|
-
await drain(this.dht.put(key, value, options))
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
async get (key: Uint8Array, options?: AbortOptions): Promise<Uint8Array> {
|
|
36
|
-
for await (const event of this.dht.get(key, options)) {
|
|
37
|
-
if (event.name === 'VALUE') {
|
|
38
|
-
return event.value
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
throw new CodeError('Not found', 'ERR_NOT_FOUND')
|
|
43
|
-
}
|
|
44
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/interfaces/errors'
|
|
2
|
-
import { messages, codes } from '../errors.js'
|
|
3
|
-
import type { PeerRouting } from '@libp2p/interface-peer-routing'
|
|
4
|
-
import type { DHT } from '@libp2p/interface-dht'
|
|
5
|
-
import type { PeerId } from '@libp2p/interface-peer-id'
|
|
6
|
-
import type { AbortOptions } from '@libp2p/interfaces'
|
|
7
|
-
import type { PeerInfo } from '@libp2p/interface-peer-info'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Wrapper class to convert events into returned values
|
|
11
|
-
*/
|
|
12
|
-
export class DHTPeerRouting implements PeerRouting {
|
|
13
|
-
private readonly dht: DHT
|
|
14
|
-
|
|
15
|
-
constructor (dht: DHT) {
|
|
16
|
-
this.dht = dht
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
async findPeer (peerId: PeerId, options: AbortOptions = {}): Promise<PeerInfo> {
|
|
20
|
-
for await (const event of this.dht.findPeer(peerId, options)) {
|
|
21
|
-
if (event.name === 'FINAL_PEER') {
|
|
22
|
-
return event.peer
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
throw new CodeError(messages.NOT_FOUND, codes.ERR_NOT_FOUND)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
async * getClosestPeers (key: Uint8Array, options: AbortOptions = {}): AsyncIterable<PeerInfo> {
|
|
30
|
-
for await (const event of this.dht.getClosestPeers(key, options)) {
|
|
31
|
-
if (event.name === 'FINAL_PEER') {
|
|
32
|
-
yield event.peer
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
package/src/dht/dummy-dht.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import type { DualDHT, QueryEvent, SingleDHT } from '@libp2p/interface-dht'
|
|
2
|
-
import type { PeerDiscoveryEvents } from '@libp2p/interface-peer-discovery'
|
|
3
|
-
import { CodeError } from '@libp2p/interfaces/errors'
|
|
4
|
-
import { messages, codes } from '../errors.js'
|
|
5
|
-
import { EventEmitter } from '@libp2p/interfaces/events'
|
|
6
|
-
import { symbol } from '@libp2p/interface-peer-discovery'
|
|
7
|
-
|
|
8
|
-
export class DummyDHT extends EventEmitter<PeerDiscoveryEvents> implements DualDHT {
|
|
9
|
-
get [symbol] (): true {
|
|
10
|
-
return true
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
get [Symbol.toStringTag] (): '@libp2p/dummy-dht' {
|
|
14
|
-
return '@libp2p/dummy-dht'
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
get wan (): SingleDHT {
|
|
18
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
get lan (): SingleDHT {
|
|
22
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
get (): AsyncIterable<QueryEvent> {
|
|
26
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
findProviders (): AsyncIterable<QueryEvent> {
|
|
30
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
findPeer (): AsyncIterable<QueryEvent> {
|
|
34
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
getClosestPeers (): AsyncIterable<QueryEvent> {
|
|
38
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
provide (): AsyncIterable<QueryEvent> {
|
|
42
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
put (): AsyncIterable<QueryEvent> {
|
|
46
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
async getMode (): Promise<'client' | 'server'> {
|
|
50
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
async setMode (): Promise<void> {
|
|
54
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async refreshRoutingTable (): Promise<void> {
|
|
58
|
-
throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED)
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record'
|
|
2
|
-
import type { Startable } from '@libp2p/interfaces/startable'
|
|
3
|
-
import { logger } from '@libp2p/logger'
|
|
4
|
-
import { protocols } from '@multiformats/multiaddr'
|
|
5
|
-
import type { TransportManager } from '@libp2p/interface-transport'
|
|
6
|
-
import type { AddressManager } from '@libp2p/interface-address-manager'
|
|
7
|
-
import type { PeerId } from '@libp2p/interface-peer-id'
|
|
8
|
-
import type { PeerStore } from '@libp2p/interface-peer-store'
|
|
9
|
-
|
|
10
|
-
const log = logger('libp2p:peer-record-updater')
|
|
11
|
-
|
|
12
|
-
export interface PeerRecordUpdaterComponents {
|
|
13
|
-
peerId: PeerId
|
|
14
|
-
peerStore: PeerStore
|
|
15
|
-
transportManager: TransportManager
|
|
16
|
-
addressManager: AddressManager
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export class PeerRecordUpdater implements Startable {
|
|
20
|
-
private readonly components: PeerRecordUpdaterComponents
|
|
21
|
-
private started: boolean
|
|
22
|
-
|
|
23
|
-
constructor (components: PeerRecordUpdaterComponents) {
|
|
24
|
-
this.components = components
|
|
25
|
-
this.started = false
|
|
26
|
-
this.update = this.update.bind(this)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
isStarted (): boolean {
|
|
30
|
-
return this.started
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
async start (): Promise<void> {
|
|
34
|
-
this.started = true
|
|
35
|
-
this.components.transportManager.addEventListener('listener:listening', this.update)
|
|
36
|
-
this.components.transportManager.addEventListener('listener:close', this.update)
|
|
37
|
-
this.components.addressManager.addEventListener('change:addresses', this.update)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
async stop (): Promise<void> {
|
|
41
|
-
this.started = false
|
|
42
|
-
this.components.transportManager.removeEventListener('listener:listening', this.update)
|
|
43
|
-
this.components.transportManager.removeEventListener('listener:close', this.update)
|
|
44
|
-
this.components.addressManager.removeEventListener('change:addresses', this.update)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Create (or update if existing) self peer record and store it in the AddressBook.
|
|
49
|
-
*/
|
|
50
|
-
update (): void {
|
|
51
|
-
Promise.resolve()
|
|
52
|
-
.then(async () => {
|
|
53
|
-
const peerRecord = new PeerRecord({
|
|
54
|
-
peerId: this.components.peerId,
|
|
55
|
-
multiaddrs: this.components.addressManager.getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code))
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
const envelope = await RecordEnvelope.seal(peerRecord, this.components.peerId)
|
|
59
|
-
await this.components.peerStore.addressBook.consumePeerRecord(envelope)
|
|
60
|
-
})
|
|
61
|
-
.catch(err => {
|
|
62
|
-
log.error('Could not update self peer record: %o', err)
|
|
63
|
-
})
|
|
64
|
-
}
|
|
65
|
-
}
|