@libp2p/kad-dht 10.0.14 → 10.0.15-0b4a2ee79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -5
- package/dist/index.min.js +20 -20
- package/dist/src/content-fetching/index.d.ts.map +1 -1
- package/dist/src/content-fetching/index.js +1 -2
- package/dist/src/content-fetching/index.js.map +1 -1
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +3 -6
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/dual-kad-dht.d.ts +1 -0
- package/dist/src/dual-kad-dht.d.ts.map +1 -1
- package/dist/src/dual-kad-dht.js +5 -5
- package/dist/src/dual-kad-dht.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/kad-dht.d.ts.map +1 -1
- package/dist/src/kad-dht.js +3 -4
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/message/index.d.ts +2 -0
- package/dist/src/message/index.d.ts.map +1 -1
- package/dist/src/message/index.js +7 -2
- package/dist/src/message/index.js.map +1 -1
- package/dist/src/network.d.ts +3 -4
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +11 -25
- package/dist/src/network.js.map +1 -1
- package/dist/src/peer-routing/index.d.ts +2 -1
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +15 -17
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/providers.d.ts +4 -1
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +17 -17
- package/dist/src/providers.js.map +1 -1
- package/dist/src/query/manager.d.ts +5 -2
- package/dist/src/query/manager.d.ts.map +1 -1
- package/dist/src/query/manager.js +13 -12
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/query/query-path.d.ts +1 -1
- package/dist/src/query/query-path.d.ts.map +1 -1
- package/dist/src/query/query-path.js +2 -59
- package/dist/src/query/query-path.js.map +1 -1
- package/dist/src/query/utils.d.ts +7 -0
- package/dist/src/query/utils.d.ts.map +1 -0
- package/dist/src/query/utils.js +53 -0
- package/dist/src/query/utils.js.map +1 -0
- package/dist/src/query-self.d.ts +3 -1
- package/dist/src/query-self.d.ts.map +1 -1
- package/dist/src/query-self.js +4 -5
- package/dist/src/query-self.js.map +1 -1
- package/dist/src/routing-table/index.d.ts +2 -0
- package/dist/src/routing-table/index.d.ts.map +1 -1
- package/dist/src/routing-table/index.js +1 -2
- package/dist/src/routing-table/index.js.map +1 -1
- package/dist/src/routing-table/refresh.d.ts +5 -1
- package/dist/src/routing-table/refresh.d.ts.map +1 -1
- package/dist/src/routing-table/refresh.js +2 -3
- package/dist/src/routing-table/refresh.js.map +1 -1
- package/dist/src/rpc/handlers/add-provider.d.ts +6 -1
- package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -1
- package/dist/src/rpc/handlers/add-provider.js +9 -10
- package/dist/src/rpc/handlers/add-provider.js.map +1 -1
- package/dist/src/rpc/handlers/find-node.d.ts +5 -1
- package/dist/src/rpc/handlers/find-node.d.ts.map +1 -1
- package/dist/src/rpc/handlers/find-node.js +11 -10
- package/dist/src/rpc/handlers/find-node.js.map +1 -1
- package/dist/src/rpc/handlers/get-providers.d.ts +4 -1
- package/dist/src/rpc/handlers/get-providers.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-providers.js +8 -9
- package/dist/src/rpc/handlers/get-providers.js.map +1 -1
- package/dist/src/rpc/handlers/get-value.d.ts +5 -1
- package/dist/src/rpc/handlers/get-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-value.js +16 -15
- package/dist/src/rpc/handlers/get-value.js.map +1 -1
- package/dist/src/rpc/handlers/ping.d.ts +6 -0
- package/dist/src/rpc/handlers/ping.d.ts.map +1 -1
- package/dist/src/rpc/handlers/ping.js +5 -3
- package/dist/src/rpc/handlers/ping.js.map +1 -1
- package/dist/src/rpc/handlers/put-value.d.ts +3 -1
- package/dist/src/rpc/handlers/put-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/put-value.js +2 -3
- package/dist/src/rpc/handlers/put-value.js.map +1 -1
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/dist/src/rpc/index.js +3 -4
- package/dist/src/rpc/index.js.map +1 -1
- package/dist/src/topology-listener.d.ts.map +1 -1
- package/dist/src/topology-listener.js +1 -2
- package/dist/src/topology-listener.js.map +1 -1
- package/package.json +23 -22
- package/src/content-fetching/index.ts +2 -4
- package/src/content-routing/index.ts +4 -7
- package/src/dual-kad-dht.ts +6 -6
- package/src/index.ts +2 -1
- package/src/kad-dht.ts +4 -4
- package/src/message/index.ts +9 -2
- package/src/network.ts +14 -44
- package/src/peer-routing/index.ts +17 -19
- package/src/providers.ts +19 -18
- package/src/query/manager.ts +18 -16
- package/src/query/query-path.ts +3 -72
- package/src/query/utils.ts +65 -0
- package/src/query-self.ts +6 -5
- package/src/routing-table/index.ts +3 -3
- package/src/routing-table/refresh.ts +7 -4
- package/src/rpc/handlers/add-provider.ts +13 -10
- package/src/rpc/handlers/find-node.ts +13 -11
- package/src/rpc/handlers/get-providers.ts +10 -10
- package/src/rpc/handlers/get-value.ts +18 -17
- package/src/rpc/handlers/ping.ts +11 -3
- package/src/rpc/handlers/put-value.ts +4 -3
- package/src/rpc/index.ts +4 -4
- package/src/topology-listener.ts +2 -3
- package/dist/typedoc-urls.json +0 -55
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CleanUpEvents } from './manager.js';
|
|
2
|
+
import type { QueryEvent } from '../index.js';
|
|
3
|
+
import type { Logger } from '@libp2p/interface';
|
|
4
|
+
import type { TypedEventTarget } from '@libp2p/interface/events';
|
|
5
|
+
import type Queue from 'p-queue';
|
|
6
|
+
export declare function queueToGenerator(queue: Queue, signal: AbortSignal, cleanUp: TypedEventTarget<CleanUpEvents>, log: Logger): AsyncGenerator<QueryEvent, void, undefined>;
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/query/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC,wBAAwB,gBAAgB,CAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAwD/K"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
+
import { pushable } from 'it-pushable';
|
|
3
|
+
export async function* queueToGenerator(queue, signal, cleanUp, log) {
|
|
4
|
+
const stream = pushable({
|
|
5
|
+
objectMode: true
|
|
6
|
+
});
|
|
7
|
+
const cleanup = (err) => {
|
|
8
|
+
log('clean up queue, results %d, queue size %d, pending tasks %d', stream.readableLength, queue.size, queue.pending);
|
|
9
|
+
queue.clear();
|
|
10
|
+
stream.end(err);
|
|
11
|
+
};
|
|
12
|
+
const onQueueJobComplete = (result) => {
|
|
13
|
+
if (result != null) {
|
|
14
|
+
stream.push(result);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const onQueueError = (err) => {
|
|
18
|
+
log('queue error', err);
|
|
19
|
+
cleanup(err);
|
|
20
|
+
};
|
|
21
|
+
const onQueueIdle = () => {
|
|
22
|
+
log('queue idle');
|
|
23
|
+
cleanup();
|
|
24
|
+
};
|
|
25
|
+
// clear the queue and throw if the query is aborted
|
|
26
|
+
const onSignalAbort = () => {
|
|
27
|
+
log('abort queue');
|
|
28
|
+
cleanup(new CodeError('Query aborted', 'ERR_QUERY_ABORTED'));
|
|
29
|
+
};
|
|
30
|
+
// the user broke out of the loop early, ensure we resolve the deferred result
|
|
31
|
+
// promise and clear the queue of any remaining jobs
|
|
32
|
+
const onCleanUp = () => {
|
|
33
|
+
cleanup();
|
|
34
|
+
};
|
|
35
|
+
// add listeners
|
|
36
|
+
queue.on('completed', onQueueJobComplete);
|
|
37
|
+
queue.on('error', onQueueError);
|
|
38
|
+
queue.on('idle', onQueueIdle);
|
|
39
|
+
signal.addEventListener('abort', onSignalAbort);
|
|
40
|
+
cleanUp.addEventListener('cleanup', onCleanUp);
|
|
41
|
+
try {
|
|
42
|
+
yield* stream;
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
// remove listeners
|
|
46
|
+
queue.removeListener('completed', onQueueJobComplete);
|
|
47
|
+
queue.removeListener('error', onQueueError);
|
|
48
|
+
queue.removeListener('idle', onQueueIdle);
|
|
49
|
+
signal.removeEventListener('abort', onSignalAbort);
|
|
50
|
+
cleanUp.removeEventListener('cleanup', onCleanUp);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/query/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAOtC,MAAM,CAAC,KAAK,SAAU,CAAC,CAAC,gBAAgB,CAAE,KAAY,EAAE,MAAmB,EAAE,OAAwC,EAAE,GAAW;IAChI,MAAM,MAAM,GAAG,QAAQ,CAAa;QAClC,UAAU,EAAE,IAAI;KACjB,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAQ,EAAE;QACpC,GAAG,CAAC,6DAA6D,EAAE,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACpH,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjB,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CAAC,MAAkB,EAAQ,EAAE;QACtD,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SACpB;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,GAAU,EAAQ,EAAE;QACxC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;QACvB,OAAO,CAAC,GAAG,CAAC,CAAA;IACd,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,GAAG,CAAC,YAAY,CAAC,CAAA;QACjB,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IAED,oDAAoD;IACpD,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,GAAG,CAAC,aAAa,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,SAAS,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAA;IAC9D,CAAC,CAAA;IAED,8EAA8E;IAC9E,oDAAoD;IACpD,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IAED,gBAAgB;IAChB,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;IACzC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC7B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IAC/C,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAE9C,IAAI;QACF,KAAM,CAAC,CAAC,MAAM,CAAA;KACf;YAAS;QACR,mBAAmB;QACnB,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QACrD,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC3C,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QACzC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAClD,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;KAClD;AACH,CAAC"}
|
package/dist/src/query-self.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PeerRouting } from './peer-routing/index.js';
|
|
2
2
|
import type { RoutingTable } from './routing-table/index.js';
|
|
3
|
+
import type { ComponentLogger } from '@libp2p/interface';
|
|
3
4
|
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
4
5
|
import type { Startable } from '@libp2p/interface/startable';
|
|
5
6
|
import type { DeferredPromise } from 'p-defer';
|
|
@@ -15,13 +16,14 @@ export interface QuerySelfInit {
|
|
|
15
16
|
}
|
|
16
17
|
export interface QuerySelfComponents {
|
|
17
18
|
peerId: PeerId;
|
|
19
|
+
logger: ComponentLogger;
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
20
22
|
* Receives notifications of new peers joining the network that support the DHT protocol
|
|
21
23
|
*/
|
|
22
24
|
export declare class QuerySelf implements Startable {
|
|
23
25
|
private readonly log;
|
|
24
|
-
private readonly
|
|
26
|
+
private readonly peerId;
|
|
25
27
|
private readonly peerRouting;
|
|
26
28
|
private readonly routingTable;
|
|
27
29
|
private readonly count;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-self.d.ts","sourceRoot":"","sources":["../../src/query-self.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-self.d.ts","sourceRoot":"","sources":["../../src/query-self.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,OAAO,CAAA;IACZ,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sBAAsB,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;CAC9C;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;GAEG;AACH,qBAAa,SAAU,YAAW,SAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAA+B;IACjD,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,sBAAsB,CAAC,CAAuB;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAAuB;gBAEnC,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,aAAa;IAejE,SAAS,IAAK,OAAO;IAIrB,KAAK,IAAK,IAAI;IAed,IAAI,IAAK,IAAI;IAYP,SAAS,IAAK,OAAO,CAAC,IAAI,CAAC;CAoElC"}
|
package/dist/src/query-self.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { setMaxListeners } from '@libp2p/interface/events';
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
3
2
|
import { anySignal } from 'any-signal';
|
|
4
3
|
import length from 'it-length';
|
|
5
4
|
import { pipe } from 'it-pipe';
|
|
@@ -12,7 +11,7 @@ import { QUERY_SELF_INTERVAL, QUERY_SELF_TIMEOUT, K, QUERY_SELF_INITIAL_INTERVAL
|
|
|
12
11
|
*/
|
|
13
12
|
export class QuerySelf {
|
|
14
13
|
log;
|
|
15
|
-
|
|
14
|
+
peerId;
|
|
16
15
|
peerRouting;
|
|
17
16
|
routingTable;
|
|
18
17
|
count;
|
|
@@ -26,8 +25,8 @@ export class QuerySelf {
|
|
|
26
25
|
querySelfPromise;
|
|
27
26
|
constructor(components, init) {
|
|
28
27
|
const { peerRouting, lan, count, interval, queryTimeout, routingTable } = init;
|
|
29
|
-
this.
|
|
30
|
-
this.log = logger(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:query-self`);
|
|
28
|
+
this.peerId = components.peerId;
|
|
29
|
+
this.log = components.logger.forComponent(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:query-self`);
|
|
31
30
|
this.started = false;
|
|
32
31
|
this.peerRouting = peerRouting;
|
|
33
32
|
this.routingTable = routingTable;
|
|
@@ -87,7 +86,7 @@ export class QuerySelf {
|
|
|
87
86
|
}
|
|
88
87
|
this.log('run self-query, look for %d peers timing out after %dms', this.count, this.queryTimeout);
|
|
89
88
|
const start = Date.now();
|
|
90
|
-
const found = await pipe(this.peerRouting.getClosestPeers(this.
|
|
89
|
+
const found = await pipe(this.peerRouting.getClosestPeers(this.peerId.toBytes(), {
|
|
91
90
|
signal,
|
|
92
91
|
isSelfQuery: true
|
|
93
92
|
}), (source) => take(source, this.count), async (source) => length(source));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-self.js","sourceRoot":"","sources":["../../src/query-self.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"query-self.js","sourceRoot":"","sources":["../../src/query-self.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TypedEventEmitter } from '@libp2p/interface/events';
|
|
2
2
|
import Queue from 'p-queue';
|
|
3
3
|
import { KBucket, type PingEventDetails } from './k-bucket.js';
|
|
4
|
+
import type { ComponentLogger } from '@libp2p/interface';
|
|
4
5
|
import type { Metrics } from '@libp2p/interface/metrics';
|
|
5
6
|
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
6
7
|
import type { PeerStore } from '@libp2p/interface/peer-store';
|
|
@@ -25,6 +26,7 @@ export interface RoutingTableComponents {
|
|
|
25
26
|
peerStore: PeerStore;
|
|
26
27
|
connectionManager: ConnectionManager;
|
|
27
28
|
metrics?: Metrics;
|
|
29
|
+
logger: ComponentLogger;
|
|
28
30
|
}
|
|
29
31
|
export interface RoutingTableEvents {
|
|
30
32
|
'peer:add': CustomEvent<PeerId>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,KAAK,MAAM,SAAS,CAAA;AAE3B,OAAO,EAAE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAU,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAA;AAEtF,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAC7C,eAAO,MAAM,mBAAmB,KAAK,CAAA;AACrC,eAAO,MAAM,YAAY,KAAK,CAAA;AAC9B,eAAO,MAAM,YAAY,QAAQ,CAAA;AACjC,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,OAAO,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC/B,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CACnC;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,iBAAiB,CAAC,kBAAkB,CAAE,YAAW,SAAS;IACnF,WAAW,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,SAAS,EAAE,KAAK,CAAA;IAEvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAC,CAIf;gBAEY,UAAU,EAAE,sBAAsB,EAAE,IAAI,EAAE,gBAAgB;IA4BvE,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAyBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAM5B;;;;OAIG;IACH,SAAS,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAiDhC;;;;;;;;;OASG;IACH,OAAO,CAAE,GAAG,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IA0DlD;;OAEG;IACH,IAAI,IAAI,IAAK,MAAM,CAMlB;IAED;;OAEG;IACG,IAAI,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAWtD;;OAEG;IACH,WAAW,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAUjD;;OAEG;IACH,YAAY,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,SAAmB,GAAG,MAAM,EAAE;IAUlE;;OAEG;IACG,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvC;;OAEG;IACG,MAAM,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAW3C"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { TypedEventEmitter } from '@libp2p/interface/events';
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
3
2
|
import { PeerSet } from '@libp2p/peer-collections';
|
|
4
3
|
import Queue from 'p-queue';
|
|
5
4
|
import * as utils from '../utils.js';
|
|
@@ -31,7 +30,7 @@ export class RoutingTable extends TypedEventEmitter {
|
|
|
31
30
|
super();
|
|
32
31
|
const { kBucketSize, pingTimeout, lan, pingConcurrency, protocol, tagName, tagValue } = init;
|
|
33
32
|
this.components = components;
|
|
34
|
-
this.log = logger(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:routing-table`);
|
|
33
|
+
this.log = components.logger.forComponent(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:routing-table`);
|
|
35
34
|
this.kBucketSize = kBucketSize ?? KBUCKET_SIZE;
|
|
36
35
|
this.pingTimeout = pingTimeout ?? PING_TIMEOUT;
|
|
37
36
|
this.pingConcurrency = pingConcurrency ?? PING_CONCURRENCY;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { RoutingTable } from './index.js';
|
|
2
2
|
import type { PeerRouting } from '../peer-routing/index.js';
|
|
3
|
+
import type { ComponentLogger } from '@libp2p/interface';
|
|
3
4
|
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
5
|
+
export interface RoutingTableRefreshComponents {
|
|
6
|
+
logger: ComponentLogger;
|
|
7
|
+
}
|
|
4
8
|
export interface RoutingTableRefreshInit {
|
|
5
9
|
peerRouting: PeerRouting;
|
|
6
10
|
routingTable: RoutingTable;
|
|
@@ -20,7 +24,7 @@ export declare class RoutingTableRefresh {
|
|
|
20
24
|
private readonly refreshQueryTimeout;
|
|
21
25
|
private readonly commonPrefixLengthRefreshedAt;
|
|
22
26
|
private refreshTimeoutId?;
|
|
23
|
-
constructor(init: RoutingTableRefreshInit);
|
|
27
|
+
constructor(components: RoutingTableRefreshComponents, init: RoutingTableRefreshInit);
|
|
24
28
|
start(): Promise<void>;
|
|
25
29
|
stop(): Promise<void>;
|
|
26
30
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/routing-table/refresh.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/routing-table/refresh.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAOvD,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,GAAG,EAAE,OAAO,CAAA;IACZ,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAQ;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAA+B;gBAE3C,UAAU,EAAE,6BAA6B,EAAE,IAAI,EAAE,uBAAuB;IAY/E,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAKvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAM5B;;;;;OAKG;IACH,YAAY,CAAE,KAAK,GAAE,OAAe,GAAG,IAAI;IAyDrC,0BAA0B,CAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhG,wCAAwC,CAAE,eAAe,EAAE,MAAM,GAAG,IAAI,EAAE;IAepE,qBAAqB,CAAE,wBAAwB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAazE,WAAW,CAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8BvH;;;OAGG;IACH,gBAAgB,IAAK,MAAM;IAc3B;;OAEG;IACH,eAAe,CAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAY9C;;OAEG;IACD,cAAc,IAAK,SAAS,CAAC,MAAM,CAAC;CAoBvC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { randomBytes } from '@libp2p/crypto';
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
3
2
|
import { peerIdFromBytes } from '@libp2p/peer-id';
|
|
4
3
|
import length from 'it-length';
|
|
5
4
|
import { sha256 } from 'multiformats/hashes/sha2';
|
|
@@ -22,9 +21,9 @@ export class RoutingTableRefresh {
|
|
|
22
21
|
refreshQueryTimeout;
|
|
23
22
|
commonPrefixLengthRefreshedAt;
|
|
24
23
|
refreshTimeoutId;
|
|
25
|
-
constructor(init) {
|
|
24
|
+
constructor(components, init) {
|
|
26
25
|
const { peerRouting, routingTable, refreshInterval, refreshQueryTimeout, lan } = init;
|
|
27
|
-
this.log = logger(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:routing-table:refresh`);
|
|
26
|
+
this.log = components.logger.forComponent(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:routing-table:refresh`);
|
|
28
27
|
this.peerRouting = peerRouting;
|
|
29
28
|
this.routingTable = routingTable;
|
|
30
29
|
this.refreshInterval = refreshInterval ?? TABLE_REFRESH_INTERVAL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../src/routing-table/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../src/routing-table/refresh.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import type { Message } from '../../message/index.js';
|
|
2
2
|
import type { Providers } from '../../providers';
|
|
3
3
|
import type { DHTMessageHandler } from '../index.js';
|
|
4
|
+
import type { ComponentLogger } from '@libp2p/interface';
|
|
4
5
|
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
6
|
+
export interface AddProviderComponents {
|
|
7
|
+
logger: ComponentLogger;
|
|
8
|
+
}
|
|
5
9
|
export interface AddProviderHandlerInit {
|
|
6
10
|
providers: Providers;
|
|
7
11
|
}
|
|
8
12
|
export declare class AddProviderHandler implements DHTMessageHandler {
|
|
9
13
|
private readonly providers;
|
|
10
|
-
|
|
14
|
+
private readonly log;
|
|
15
|
+
constructor(components: AddProviderComponents, init: AddProviderHandlerInit);
|
|
11
16
|
handle(peerId: PeerId, msg: Message): Promise<Message | undefined>;
|
|
12
17
|
}
|
|
13
18
|
//# sourceMappingURL=add-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-provider.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/add-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add-provider.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/add-provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,sBAAsB;IAKtE,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;CAwC1E"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
3
2
|
import { CID } from 'multiformats/cid';
|
|
4
|
-
const log = logger('libp2p:kad-dht:rpc:handlers:add-provider');
|
|
5
3
|
export class AddProviderHandler {
|
|
6
4
|
providers;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this.
|
|
5
|
+
log;
|
|
6
|
+
constructor(components, init) {
|
|
7
|
+
this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:add-provider');
|
|
8
|
+
this.providers = init.providers;
|
|
10
9
|
}
|
|
11
10
|
async handle(peerId, msg) {
|
|
12
|
-
log('start');
|
|
11
|
+
this.log('start');
|
|
13
12
|
if (msg.key == null || msg.key.length === 0) {
|
|
14
13
|
throw new CodeError('Missing key', 'ERR_MISSING_KEY');
|
|
15
14
|
}
|
|
@@ -22,19 +21,19 @@ export class AddProviderHandler {
|
|
|
22
21
|
throw new CodeError('Invalid CID', 'ERR_INVALID_CID');
|
|
23
22
|
}
|
|
24
23
|
if (msg.providerPeers == null || msg.providerPeers.length === 0) {
|
|
25
|
-
log.error('no providers found in message');
|
|
24
|
+
this.log.error('no providers found in message');
|
|
26
25
|
}
|
|
27
26
|
await Promise.all(msg.providerPeers.map(async (pi) => {
|
|
28
27
|
// Ignore providers not from the originator
|
|
29
28
|
if (!pi.id.equals(peerId)) {
|
|
30
|
-
log('invalid provider peer %p from %p', pi.id, peerId);
|
|
29
|
+
this.log('invalid provider peer %p from %p', pi.id, peerId);
|
|
31
30
|
return;
|
|
32
31
|
}
|
|
33
32
|
if (pi.multiaddrs.length < 1) {
|
|
34
|
-
log('no valid addresses for provider %p. Ignore', peerId);
|
|
33
|
+
this.log('no valid addresses for provider %p. Ignore', peerId);
|
|
35
34
|
return;
|
|
36
35
|
}
|
|
37
|
-
log('received provider %p for %s (addrs %s)', peerId, cid, pi.multiaddrs.map((m) => m.toString()));
|
|
36
|
+
this.log('received provider %p for %s (addrs %s)', peerId, cid, pi.multiaddrs.map((m) => m.toString()));
|
|
38
37
|
await this.providers.addProvider(cid, pi.id);
|
|
39
38
|
}));
|
|
40
39
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-provider.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/add-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"add-provider.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/add-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAetC,MAAM,OAAO,kBAAkB;IACZ,SAAS,CAAW;IACpB,GAAG,CAAQ;IAE5B,YAAa,UAAiC,EAAE,IAA4B;QAC1E,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,0CAA0C,CAAC,CAAA;QACrF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAEjB,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3C,MAAM,IAAI,SAAS,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;SACtD;QAED,IAAI,GAAQ,CAAA;QACZ,IAAI;YACF,yDAAyD;YACzD,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SAC1B;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,IAAI,SAAS,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;SACtD;QAED,IAAI,GAAG,CAAC,aAAa,IAAI,IAAI,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;SAChD;QAED,MAAM,OAAO,CAAC,GAAG,CACf,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACjC,2CAA2C;YAC3C,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,kCAAkC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC3D,OAAM;aACP;YAED,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,GAAG,CAAC,4CAA4C,EAAE,MAAM,CAAC,CAAA;gBAC9D,OAAM;aACP;YAED,IAAI,CAAC,GAAG,CAAC,wCAAwC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YAEvG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9C,CAAC,CAAC,CACH,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Message } from '../../message/index.js';
|
|
2
2
|
import type { PeerRouting } from '../../peer-routing/index.js';
|
|
3
3
|
import type { DHTMessageHandler } from '../index.js';
|
|
4
|
+
import type { ComponentLogger } from '@libp2p/interface';
|
|
4
5
|
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
5
6
|
import type { AddressManager } from '@libp2p/interface-internal/address-manager';
|
|
6
7
|
export interface FindNodeHandlerInit {
|
|
@@ -10,11 +11,14 @@ export interface FindNodeHandlerInit {
|
|
|
10
11
|
export interface FindNodeHandlerComponents {
|
|
11
12
|
peerId: PeerId;
|
|
12
13
|
addressManager: AddressManager;
|
|
14
|
+
logger: ComponentLogger;
|
|
13
15
|
}
|
|
14
16
|
export declare class FindNodeHandler implements DHTMessageHandler {
|
|
15
17
|
private readonly peerRouting;
|
|
16
18
|
private readonly lan;
|
|
17
|
-
private readonly
|
|
19
|
+
private readonly peerId;
|
|
20
|
+
private readonly addressManager;
|
|
21
|
+
private readonly log;
|
|
18
22
|
constructor(components: FindNodeHandlerComponents, init: FindNodeHandlerInit);
|
|
19
23
|
/**
|
|
20
24
|
* Process `FindNode` DHT messages
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-node.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"find-node.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAKhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAA;AAEhF,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAU7E;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA4B9D"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
1
|
import { protocols } from '@multiformats/multiaddr';
|
|
3
2
|
import { equals as uint8ArrayEquals } from 'uint8arrays';
|
|
4
3
|
import { Message } from '../../message/index.js';
|
|
5
4
|
import { removePrivateAddresses, removePublicAddresses } from '../../utils.js';
|
|
6
|
-
const log = logger('libp2p:kad-dht:rpc:handlers:find-node');
|
|
7
5
|
export class FindNodeHandler {
|
|
8
6
|
peerRouting;
|
|
9
7
|
lan;
|
|
10
|
-
|
|
8
|
+
peerId;
|
|
9
|
+
addressManager;
|
|
10
|
+
log;
|
|
11
11
|
constructor(components, init) {
|
|
12
12
|
const { peerRouting, lan } = init;
|
|
13
|
-
this.
|
|
13
|
+
this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:find-node');
|
|
14
|
+
this.peerId = components.peerId;
|
|
15
|
+
this.addressManager = components.addressManager;
|
|
14
16
|
this.peerRouting = peerRouting;
|
|
15
17
|
this.lan = Boolean(lan);
|
|
16
18
|
}
|
|
@@ -18,13 +20,12 @@ export class FindNodeHandler {
|
|
|
18
20
|
* Process `FindNode` DHT messages
|
|
19
21
|
*/
|
|
20
22
|
async handle(peerId, msg) {
|
|
21
|
-
log('incoming request from %p for peers closer to %b', peerId, msg.key);
|
|
23
|
+
this.log('incoming request from %p for peers closer to %b', peerId, msg.key);
|
|
22
24
|
let closer = [];
|
|
23
|
-
if (uint8ArrayEquals(this.
|
|
25
|
+
if (uint8ArrayEquals(this.peerId.toBytes(), msg.key)) {
|
|
24
26
|
closer = [{
|
|
25
|
-
id: this.
|
|
26
|
-
multiaddrs: this.
|
|
27
|
-
protocols: []
|
|
27
|
+
id: this.peerId,
|
|
28
|
+
multiaddrs: this.addressManager.getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code))
|
|
28
29
|
}];
|
|
29
30
|
}
|
|
30
31
|
else {
|
|
@@ -38,7 +39,7 @@ export class FindNodeHandler {
|
|
|
38
39
|
response.closerPeers = closer;
|
|
39
40
|
}
|
|
40
41
|
else {
|
|
41
|
-
log('could not find any peers closer to %b than %p', msg.key, peerId);
|
|
42
|
+
this.log('could not find any peers closer to %b than %p', msg.key, peerId);
|
|
42
43
|
}
|
|
43
44
|
return response;
|
|
44
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-node.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"find-node.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AAmBvB,MAAM,OAAO,eAAe;IACT,WAAW,CAAa;IACxB,GAAG,CAAS;IACZ,MAAM,CAAQ;IACd,cAAc,CAAgB;IAC9B,GAAG,CAAQ;IAE5B,YAAa,UAAqC,EAAE,IAAyB;QAC3E,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QAEjC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAA;QAClF,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAA;QAC/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,IAAI,CAAC,GAAG,CAAC,iDAAiD,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE5E,IAAI,MAAM,GAAe,EAAE,CAAA;QAE3B,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE;YACpD,MAAM,GAAG,CAAC;oBACR,EAAE,EAAE,IAAI,CAAC,MAAM;oBACf,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;iBACpG,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,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;SAC3E;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
|
|
@@ -2,6 +2,7 @@ import { Message } from '../../message/index.js';
|
|
|
2
2
|
import type { PeerRouting } from '../../peer-routing/index.js';
|
|
3
3
|
import type { Providers } from '../../providers.js';
|
|
4
4
|
import type { DHTMessageHandler } from '../index.js';
|
|
5
|
+
import type { ComponentLogger } from '@libp2p/interface';
|
|
5
6
|
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
6
7
|
import type { PeerInfo } from '@libp2p/interface/peer-info';
|
|
7
8
|
import type { PeerStore } from '@libp2p/interface/peer-store';
|
|
@@ -13,12 +14,14 @@ export interface GetProvidersHandlerInit {
|
|
|
13
14
|
}
|
|
14
15
|
export interface GetProvidersHandlerComponents {
|
|
15
16
|
peerStore: PeerStore;
|
|
17
|
+
logger: ComponentLogger;
|
|
16
18
|
}
|
|
17
19
|
export declare class GetProvidersHandler implements DHTMessageHandler {
|
|
18
|
-
private readonly components;
|
|
19
20
|
private readonly peerRouting;
|
|
20
21
|
private readonly providers;
|
|
21
22
|
private readonly lan;
|
|
23
|
+
private readonly peerStore;
|
|
24
|
+
private readonly log;
|
|
22
25
|
constructor(components: GetProvidersHandlerComponents, init: GetProvidersHandlerInit);
|
|
23
26
|
handle(peerId: PeerId, msg: Message): Promise<Message>;
|
|
24
27
|
_getAddresses(peerId: PeerId): Promise<Multiaddr[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-providers.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-providers.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAKhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,6BAA6B,EAAE,IAAI,EAAE,uBAAuB;IAU/E,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BvD,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAIpD,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAyBzD"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
3
2
|
import { CID } from 'multiformats/cid';
|
|
4
3
|
import { Message } from '../../message/index.js';
|
|
5
4
|
import { removePrivateAddresses, removePublicAddresses } from '../../utils.js';
|
|
6
|
-
const log = logger('libp2p:kad-dht:rpc:handlers:get-providers');
|
|
7
5
|
export class GetProvidersHandler {
|
|
8
|
-
components;
|
|
9
6
|
peerRouting;
|
|
10
7
|
providers;
|
|
11
8
|
lan;
|
|
9
|
+
peerStore;
|
|
10
|
+
log;
|
|
12
11
|
constructor(components, init) {
|
|
13
12
|
const { peerRouting, providers, lan } = init;
|
|
14
|
-
this.
|
|
13
|
+
this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:get-providers');
|
|
14
|
+
this.peerStore = components.peerStore;
|
|
15
15
|
this.peerRouting = peerRouting;
|
|
16
16
|
this.providers = providers;
|
|
17
17
|
this.lan = Boolean(lan);
|
|
@@ -24,7 +24,7 @@ export class GetProvidersHandler {
|
|
|
24
24
|
catch (err) {
|
|
25
25
|
throw new CodeError('Invalid CID', 'ERR_INVALID_CID');
|
|
26
26
|
}
|
|
27
|
-
log('%p asking for providers for %s', peerId, cid);
|
|
27
|
+
this.log('%p asking for providers for %s', peerId, cid);
|
|
28
28
|
const [peers, closer] = await Promise.all([
|
|
29
29
|
this.providers.getProviders(cid),
|
|
30
30
|
this.peerRouting.getCloserPeersOffline(msg.key, peerId)
|
|
@@ -38,7 +38,7 @@ export class GetProvidersHandler {
|
|
|
38
38
|
if (closerPeers.length > 0) {
|
|
39
39
|
response.closerPeers = closerPeers;
|
|
40
40
|
}
|
|
41
|
-
log('got %s providers %s closerPeers', providerPeers.length, closerPeers.length);
|
|
41
|
+
this.log('got %s providers %s closerPeers', providerPeers.length, closerPeers.length);
|
|
42
42
|
return response;
|
|
43
43
|
}
|
|
44
44
|
async _getAddresses(peerId) {
|
|
@@ -49,11 +49,10 @@ export class GetProvidersHandler {
|
|
|
49
49
|
const addrFilter = this.lan ? removePublicAddresses : removePrivateAddresses;
|
|
50
50
|
for (const peerId of peerIds) {
|
|
51
51
|
try {
|
|
52
|
-
const peer = await this.
|
|
52
|
+
const peer = await this.peerStore.get(peerId);
|
|
53
53
|
const peerAfterFilter = addrFilter({
|
|
54
54
|
id: peerId,
|
|
55
|
-
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
|
56
|
-
protocols: peer.protocols
|
|
55
|
+
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
|
57
56
|
});
|
|
58
57
|
if (peerAfterFilter.multiaddrs.length > 0) {
|
|
59
58
|
output.push(peerAfterFilter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-providers.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get-providers.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"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"}
|