@libp2p/kad-dht 1.0.4 → 1.0.7
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/src/message/dht.d.ts +5 -5
- package/dist/src/message/dht.d.ts.map +1 -1
- package/dist/src/query/manager.d.ts.map +1 -1
- package/dist/src/query/manager.js +9 -1
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/rpc/handlers/find-node.d.ts +4 -2
- package/dist/src/rpc/handlers/find-node.d.ts.map +1 -1
- package/dist/src/rpc/handlers/find-node.js +20 -7
- package/dist/src/rpc/handlers/find-node.js.map +1 -1
- package/dist/src/rpc/index.d.ts +1 -1
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/query/manager.ts +9 -1
- package/src/rpc/handlers/find-node.ts +22 -14
- package/src/rpc/index.ts +2 -2
|
@@ -6,7 +6,7 @@ export interface Record {
|
|
|
6
6
|
timeReceived?: string;
|
|
7
7
|
}
|
|
8
8
|
export declare namespace Record {
|
|
9
|
-
const codec: () => import("protons-runtime
|
|
9
|
+
const codec: () => import("protons-runtime").Codec<Record>;
|
|
10
10
|
const encode: (obj: Record) => Uint8Array;
|
|
11
11
|
const decode: (buf: Uint8Array) => Record;
|
|
12
12
|
}
|
|
@@ -28,7 +28,7 @@ export declare namespace Message {
|
|
|
28
28
|
PING = "PING"
|
|
29
29
|
}
|
|
30
30
|
namespace MessageType {
|
|
31
|
-
const codec: () => import("protons-runtime
|
|
31
|
+
const codec: () => import("protons-runtime").Codec<typeof MessageType>;
|
|
32
32
|
}
|
|
33
33
|
enum ConnectionType {
|
|
34
34
|
NOT_CONNECTED = "NOT_CONNECTED",
|
|
@@ -37,7 +37,7 @@ export declare namespace Message {
|
|
|
37
37
|
CANNOT_CONNECT = "CANNOT_CONNECT"
|
|
38
38
|
}
|
|
39
39
|
namespace ConnectionType {
|
|
40
|
-
const codec: () => import("protons-runtime
|
|
40
|
+
const codec: () => import("protons-runtime").Codec<typeof ConnectionType>;
|
|
41
41
|
}
|
|
42
42
|
interface Peer {
|
|
43
43
|
id?: Uint8Array;
|
|
@@ -45,11 +45,11 @@ export declare namespace Message {
|
|
|
45
45
|
connection?: Message.ConnectionType;
|
|
46
46
|
}
|
|
47
47
|
namespace Peer {
|
|
48
|
-
const codec: () => import("protons-runtime
|
|
48
|
+
const codec: () => import("protons-runtime").Codec<Peer>;
|
|
49
49
|
const encode: (obj: Peer) => Uint8Array;
|
|
50
50
|
const decode: (buf: Uint8Array) => Peer;
|
|
51
51
|
}
|
|
52
|
-
const codec: () => import("protons-runtime
|
|
52
|
+
const codec: () => import("protons-runtime").Codec<Message>;
|
|
53
53
|
const encode: (obj: Message) => Uint8Array;
|
|
54
54
|
const decode: (buf: Uint8Array) => Message;
|
|
55
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../../src/message/dht.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,yBAAiB,MAAM,CAAC;IACf,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../../src/message/dht.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,yBAAiB,MAAM,CAAC;IACf,MAAM,KAAK,+CAQjB,CAAA;IAEM,MAAM,MAAM,QAAS,MAAM,KAAG,UAEpC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,MAExC,CAAA;CACF;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;IAC3B,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;CAC9B;AAED,yBAAiB,OAAO,CAAC;IACvB,KAAY,WAAW;QACrB,SAAS,cAAc;QACvB,SAAS,cAAc;QACvB,YAAY,iBAAiB;QAC7B,aAAa,kBAAkB;QAC/B,SAAS,cAAc;QACvB,IAAI,SAAS;KACd;IAED,UAAiB,WAAW,CAAC;QACpB,MAAM,KAAK,2DAEjB,CAAA;KACF;IACD,KAAY,cAAc;QACxB,aAAa,kBAAkB;QAC/B,SAAS,cAAc;QACvB,WAAW,gBAAgB;QAC3B,cAAc,mBAAmB;KAClC;IAED,UAAiB,cAAc,CAAC;QACvB,MAAM,KAAK,8DAEjB,CAAA;KACF;IACD,UAAiB,IAAI;QACnB,EAAE,CAAC,EAAE,UAAU,CAAA;QACf,KAAK,EAAE,UAAU,EAAE,CAAA;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAA;KACpC;IAED,UAAiB,IAAI,CAAC;QACb,MAAM,KAAK,6CAMjB,CAAA;QAEM,MAAM,MAAM,QAAS,IAAI,KAAG,UAElC,CAAA;QAEM,MAAM,MAAM,QAAS,UAAU,KAAG,IAExC,CAAA;KACF;IAEM,MAAM,KAAK,gDASjB,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,KAAG,UAErC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,OAExC,CAAA;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAIzE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,WAAW,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS,EAAE,aAAa;IAC3D,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IACtB,aAAa,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAQ;gBAEV,IAAI,EAAE,gBAAgB;IAUnC,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAInC,SAAS;IAIT;;OAEG;IACG,KAAK;IAIX;;OAEG;IACG,IAAI;IAUF,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAIzE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,WAAW,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS,EAAE,aAAa;IAC3D,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IACtB,aAAa,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAQ;gBAEV,IAAI,EAAE,gBAAgB;IAUnC,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAInC,SAAS;IAIT;;OAEG;IACG,KAAK;IAIX;;OAEG;IACG,IAAI;IAUF,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB;CAgHhG"}
|
|
@@ -55,6 +55,14 @@ export class QueryManager {
|
|
|
55
55
|
// don't let queries run forever
|
|
56
56
|
timeoutController = new TimeoutController(DEFAULT_QUERY_TIMEOUT);
|
|
57
57
|
options.signal = timeoutController.signal;
|
|
58
|
+
// this signal will get listened to for network requests, etc
|
|
59
|
+
// so make sure we don't make a lot of noise in the logs
|
|
60
|
+
try {
|
|
61
|
+
if (setMaxListeners != null) {
|
|
62
|
+
setMaxListeners(Infinity, timeoutController.signal);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch { } // fails on node < 15.4
|
|
58
66
|
}
|
|
59
67
|
// allow us to stop queries on shut down
|
|
60
68
|
const abortController = new AbortController();
|
|
@@ -68,7 +76,7 @@ export class QueryManager {
|
|
|
68
76
|
// so make sure we don't make a lot of noise in the logs
|
|
69
77
|
try {
|
|
70
78
|
if (setMaxListeners != null) {
|
|
71
|
-
setMaxListeners(
|
|
79
|
+
setMaxListeners(Infinity, signal);
|
|
72
80
|
}
|
|
73
81
|
}
|
|
74
82
|
catch { } // fails on node < 15.4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EACL,KAAK,EAAE,CAAC,EAAE,qBAAqB,EAChC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,6DAA6D;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAKvC,OAAO,EAAE,UAAU,EAAiB,MAAM,+BAA+B,CAAA;AAEzE,MAAM,sBAAsB,GAAG,iBAAiB,CAAA;AAYhD;;GAEG;AACH,MAAM,OAAO,YAAY;IASvB,YAAa,IAAsB;QAR3B,eAAU,GAAe,IAAI,UAAU,EAAE,CAAA;QAS/C,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,aAAa,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;QAC9D,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAA;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IAClB,CAAC;IAED,IAAI,CAAE,UAAsB;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QAEpB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACzC,UAAU,CAAC,KAAK,EAAE,CAAA;SACnB;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,CAAE,GAAG,CAAE,GAAe,EAAE,KAAe,EAAE,SAAoB,EAAE,UAAwB,EAAE;QAC7F,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;SAC5C;QAED,IAAI,iBAAiB,CAAA;QAErB,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YAC1B,gCAAgC;YAChC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;YAChE,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Message } from '../../message/index.js';
|
|
2
|
+
import { Components } from '@libp2p/interfaces/components';
|
|
3
|
+
import type { Initializable } from '@libp2p/interfaces/components';
|
|
2
4
|
import type { DHTMessageHandler } from '../index.js';
|
|
3
5
|
import type { PeerRouting } from '../../peer-routing/index.js';
|
|
4
6
|
import type { PeerId } from '@libp2p/interfaces/peer-id';
|
|
5
|
-
import type { Initializable } from '@libp2p/interfaces/components';
|
|
6
7
|
export interface FindNodeHandlerInit {
|
|
7
8
|
peerRouting: PeerRouting;
|
|
8
9
|
lan: boolean;
|
|
@@ -10,8 +11,9 @@ export interface FindNodeHandlerInit {
|
|
|
10
11
|
export declare class FindNodeHandler implements DHTMessageHandler, Initializable {
|
|
11
12
|
private readonly peerRouting;
|
|
12
13
|
private readonly lan;
|
|
14
|
+
private components;
|
|
13
15
|
constructor(init: FindNodeHandlerInit);
|
|
14
|
-
init(): void;
|
|
16
|
+
init(components: Components): void;
|
|
15
17
|
/**
|
|
16
18
|
* Process `FindNode` DHT messages
|
|
17
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-node.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAOhD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"find-node.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAOhD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAIxD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,qBAAa,eAAgB,YAAW,iBAAiB,EAAE,aAAa;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAmB;gBAExB,IAAI,EAAE,mBAAmB;IAMtC,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAInC;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;CA6B3C"}
|
|
@@ -1,26 +1,39 @@
|
|
|
1
1
|
import { Message } from '../../message/index.js';
|
|
2
2
|
import { logger } from '@libp2p/logger';
|
|
3
3
|
import { removePrivateAddresses, removePublicAddresses } from '../../utils.js';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import all from 'it-all';
|
|
4
|
+
import { equals as uint8ArrayEquals } from 'uint8arrays';
|
|
5
|
+
import { Components } from '@libp2p/interfaces/components';
|
|
6
|
+
import { protocols } from '@multiformats/multiaddr';
|
|
8
7
|
const log = logger('libp2p:kad-dht:rpc:handlers:find-node');
|
|
9
8
|
export class FindNodeHandler {
|
|
10
9
|
constructor(init) {
|
|
10
|
+
this.components = new Components();
|
|
11
11
|
const { peerRouting, lan } = init;
|
|
12
12
|
this.peerRouting = peerRouting;
|
|
13
13
|
this.lan = Boolean(lan);
|
|
14
14
|
}
|
|
15
|
-
init() {
|
|
15
|
+
init(components) {
|
|
16
|
+
this.components = components;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
19
|
* Process `FindNode` DHT messages
|
|
19
20
|
*/
|
|
20
21
|
async handle(peerId, msg) {
|
|
21
22
|
log('incoming request from %p for peers closer to %b', peerId, msg.key);
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
let closer = [];
|
|
24
|
+
if (uint8ArrayEquals(this.components.getPeerId().toBytes(), msg.key)) {
|
|
25
|
+
closer = [{
|
|
26
|
+
id: this.components.getPeerId(),
|
|
27
|
+
multiaddrs: this.components.getAddressManager().getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code)),
|
|
28
|
+
protocols: []
|
|
29
|
+
}];
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
closer = await this.peerRouting.getCloserPeersOffline(msg.key, peerId);
|
|
33
|
+
}
|
|
34
|
+
closer = closer
|
|
35
|
+
.map(this.lan ? removePublicAddresses : removePrivateAddresses)
|
|
36
|
+
.filter(({ multiaddrs }) => multiaddrs.length);
|
|
24
37
|
const response = new Message(msg.type, new Uint8Array(0), msg.clusterLevel);
|
|
25
38
|
if (closer.length > 0) {
|
|
26
39
|
response.closerPeers = closer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-node.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"find-node.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAOnD,MAAM,GAAG,GAAG,MAAM,CAAC,uCAAuC,CAAC,CAAA;AAO3D,MAAM,OAAO,eAAe;IAK1B,YAAa,IAAyB;QAF9B,eAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QAGnC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,IAAI,CAAE,UAAsB;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,GAAG,CAAC,iDAAiD,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAEvE,IAAI,MAAM,GAAe,EAAE,CAAA;QAE3B,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE;YACpE,MAAM,GAAG,CAAC;oBACR,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;oBAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;oBACnH,SAAS,EAAE,EAAE;iBACd,CAAC,CAAA;SACH;aAAM;YACL,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;SACvE;QAED,MAAM,GAAG,MAAM;aACZ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAC;aAC9D,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAEhD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;QAE3E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAA;SAC9B;aAAM;YACL,GAAG,CAAC,+CAA+C,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;SACtE;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
|
package/dist/src/rpc/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { Providers } from '../providers';
|
|
|
6
6
|
import type { PeerRouting } from '../peer-routing';
|
|
7
7
|
import type { Validators } from '@libp2p/interfaces/dht';
|
|
8
8
|
import type { Components, Initializable } from '@libp2p/interfaces/components';
|
|
9
|
-
export interface DHTMessageHandler {
|
|
9
|
+
export interface DHTMessageHandler extends Initializable {
|
|
10
10
|
handle: (peerId: PeerId, msg: Message) => Promise<Message | undefined>;
|
|
11
11
|
}
|
|
12
12
|
export interface RPCInit {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAO3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAE9E,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAO3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAE9E,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACvE;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,qBAAa,GAAI,YAAW,aAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,IAAI,EAAE,OAAO;IAgB1B,IAAI,CAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAMnC;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAkBjD;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB;CAqC3C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/kad-dht",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "JavaScript implementation of the Kad-DHT for libp2p",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p-kad-dht#readme",
|
|
@@ -132,11 +132,11 @@
|
|
|
132
132
|
"release": "aegir release"
|
|
133
133
|
},
|
|
134
134
|
"dependencies": {
|
|
135
|
-
"@libp2p/crypto": "^0.22.
|
|
136
|
-
"@libp2p/interfaces": "^1.3.
|
|
135
|
+
"@libp2p/crypto": "^0.22.10",
|
|
136
|
+
"@libp2p/interfaces": "^1.3.21",
|
|
137
137
|
"@libp2p/logger": "^1.1.3",
|
|
138
138
|
"@libp2p/peer-id": "^1.1.9",
|
|
139
|
-
"@libp2p/record": "^1.0.
|
|
139
|
+
"@libp2p/record": "^1.0.3",
|
|
140
140
|
"@libp2p/topology": "^1.1.7",
|
|
141
141
|
"@multiformats/multiaddr": "^10.1.5",
|
|
142
142
|
"any-signal": "^3.0.0",
|
package/src/query/manager.ts
CHANGED
|
@@ -89,6 +89,14 @@ export class QueryManager implements Startable, Initializable {
|
|
|
89
89
|
// don't let queries run forever
|
|
90
90
|
timeoutController = new TimeoutController(DEFAULT_QUERY_TIMEOUT)
|
|
91
91
|
options.signal = timeoutController.signal
|
|
92
|
+
|
|
93
|
+
// this signal will get listened to for network requests, etc
|
|
94
|
+
// so make sure we don't make a lot of noise in the logs
|
|
95
|
+
try {
|
|
96
|
+
if (setMaxListeners != null) {
|
|
97
|
+
setMaxListeners(Infinity, timeoutController.signal)
|
|
98
|
+
}
|
|
99
|
+
} catch {} // fails on node < 15.4
|
|
92
100
|
}
|
|
93
101
|
|
|
94
102
|
// allow us to stop queries on shut down
|
|
@@ -106,7 +114,7 @@ export class QueryManager implements Startable, Initializable {
|
|
|
106
114
|
// so make sure we don't make a lot of noise in the logs
|
|
107
115
|
try {
|
|
108
116
|
if (setMaxListeners != null) {
|
|
109
|
-
setMaxListeners(
|
|
117
|
+
setMaxListeners(Infinity, signal)
|
|
110
118
|
}
|
|
111
119
|
} catch {} // fails on node < 15.4
|
|
112
120
|
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
removePrivateAddresses,
|
|
5
5
|
removePublicAddresses
|
|
6
6
|
} from '../../utils.js'
|
|
7
|
-
import {
|
|
7
|
+
import { equals as uint8ArrayEquals } from 'uint8arrays'
|
|
8
|
+
import { Components } from '@libp2p/interfaces/components'
|
|
9
|
+
import { protocols } from '@multiformats/multiaddr'
|
|
10
|
+
import type { Initializable } from '@libp2p/interfaces/components'
|
|
11
|
+
import type { PeerInfo } from '@libp2p/interfaces/peer-info'
|
|
8
12
|
import type { DHTMessageHandler } from '../index.js'
|
|
9
13
|
import type { PeerRouting } from '../../peer-routing/index.js'
|
|
10
14
|
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
11
|
-
import map from 'it-map'
|
|
12
|
-
import filter from 'it-filter'
|
|
13
|
-
import all from 'it-all'
|
|
14
|
-
import type { Initializable } from '@libp2p/interfaces/components'
|
|
15
15
|
|
|
16
16
|
const log = logger('libp2p:kad-dht:rpc:handlers:find-node')
|
|
17
17
|
|
|
@@ -23,6 +23,7 @@ export interface FindNodeHandlerInit {
|
|
|
23
23
|
export class FindNodeHandler implements DHTMessageHandler, Initializable {
|
|
24
24
|
private readonly peerRouting: PeerRouting
|
|
25
25
|
private readonly lan: boolean
|
|
26
|
+
private components = new Components()
|
|
26
27
|
|
|
27
28
|
constructor (init: FindNodeHandlerInit) {
|
|
28
29
|
const { peerRouting, lan } = init
|
|
@@ -30,8 +31,8 @@ export class FindNodeHandler implements DHTMessageHandler, Initializable {
|
|
|
30
31
|
this.lan = Boolean(lan)
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
init (): void {
|
|
34
|
-
|
|
34
|
+
init (components: Components): void {
|
|
35
|
+
this.components = components
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
/**
|
|
@@ -40,14 +41,21 @@ export class FindNodeHandler implements DHTMessageHandler, Initializable {
|
|
|
40
41
|
async handle (peerId: PeerId, msg: Message) {
|
|
41
42
|
log('incoming request from %p for peers closer to %b', peerId, msg.key)
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
let closer: PeerInfo[] = []
|
|
45
|
+
|
|
46
|
+
if (uint8ArrayEquals(this.components.getPeerId().toBytes(), msg.key)) {
|
|
47
|
+
closer = [{
|
|
48
|
+
id: this.components.getPeerId(),
|
|
49
|
+
multiaddrs: this.components.getAddressManager().getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code)),
|
|
50
|
+
protocols: []
|
|
51
|
+
}]
|
|
52
|
+
} else {
|
|
53
|
+
closer = await this.peerRouting.getCloserPeersOffline(msg.key, peerId)
|
|
54
|
+
}
|
|
44
55
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
(
|
|
48
|
-
(source) => filter(source, ({ multiaddrs }) => multiaddrs.length > 0),
|
|
49
|
-
async (source) => await all(source)
|
|
50
|
-
)
|
|
56
|
+
closer = closer
|
|
57
|
+
.map(this.lan ? removePublicAddresses : removePrivateAddresses)
|
|
58
|
+
.filter(({ multiaddrs }) => multiaddrs.length)
|
|
51
59
|
|
|
52
60
|
const response = new Message(msg.type, new Uint8Array(0), msg.clusterLevel)
|
|
53
61
|
|
package/src/rpc/index.ts
CHANGED
|
@@ -16,7 +16,7 @@ import type { PeerRouting } from '../peer-routing'
|
|
|
16
16
|
import type { Validators } from '@libp2p/interfaces/dht'
|
|
17
17
|
import type { Components, Initializable } from '@libp2p/interfaces/components'
|
|
18
18
|
|
|
19
|
-
export interface DHTMessageHandler {
|
|
19
|
+
export interface DHTMessageHandler extends Initializable {
|
|
20
20
|
handle: (peerId: PeerId, msg: Message) => Promise<Message | undefined>
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -29,7 +29,7 @@ export interface RPCInit {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
export class RPC implements Initializable {
|
|
32
|
-
private readonly handlers: Record<string, DHTMessageHandler
|
|
32
|
+
private readonly handlers: Record<string, DHTMessageHandler>
|
|
33
33
|
private readonly routingTable: RoutingTable
|
|
34
34
|
private readonly log: Logger
|
|
35
35
|
|