@libp2p/kad-dht 15.0.1 → 15.0.2-185b23eac
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 +2 -15
- package/dist/index.min.js.map +7 -0
- package/dist/src/content-fetching/index.d.ts +4 -4
- package/dist/src/content-fetching/index.d.ts.map +1 -1
- package/dist/src/content-fetching/index.js +14 -7
- 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 +8 -4
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/index.d.ts +9 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/kad-dht.js +2 -2
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/network.d.ts +10 -2
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +10 -11
- package/dist/src/network.js.map +1 -1
- package/dist/src/peer-distance-list.d.ts +9 -3
- package/dist/src/peer-distance-list.d.ts.map +1 -1
- package/dist/src/peer-distance-list.js +6 -5
- package/dist/src/peer-distance-list.js.map +1 -1
- package/dist/src/peer-routing/index.d.ts +3 -3
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +33 -15
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/providers.d.ts +4 -4
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +8 -8
- package/dist/src/providers.js.map +1 -1
- package/dist/src/query/events.d.ts +8 -7
- package/dist/src/query/events.d.ts.map +1 -1
- package/dist/src/query/events.js +0 -9
- package/dist/src/query/events.js.map +1 -1
- package/dist/src/query/manager.d.ts +2 -0
- package/dist/src/query/manager.d.ts.map +1 -1
- package/dist/src/query/manager.js +23 -8
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/query/query-path.d.ts +3 -3
- package/dist/src/query/query-path.d.ts.map +1 -1
- package/dist/src/query/query-path.js +8 -16
- package/dist/src/query/query-path.js.map +1 -1
- package/dist/src/query/types.d.ts +1 -1
- package/dist/src/query/types.d.ts.map +1 -1
- package/dist/src/query-self.d.ts +2 -3
- package/dist/src/query-self.d.ts.map +1 -1
- package/dist/src/query-self.js +11 -14
- package/dist/src/query-self.js.map +1 -1
- package/dist/src/routing-table/closest-peers.js +1 -1
- package/dist/src/routing-table/closest-peers.js.map +1 -1
- package/dist/src/routing-table/k-bucket.js +1 -1
- package/dist/src/routing-table/k-bucket.js.map +1 -1
- package/package.json +12 -12
- package/src/content-fetching/index.ts +15 -8
- package/src/content-routing/index.ts +8 -4
- package/src/index.ts +9 -2
- package/src/kad-dht.ts +2 -2
- package/src/network.ts +18 -11
- package/src/peer-distance-list.ts +9 -7
- package/src/peer-routing/index.ts +34 -16
- package/src/providers.ts +9 -9
- package/src/query/events.ts +8 -19
- package/src/query/manager.ts +26 -8
- package/src/query/query-path.ts +11 -19
- package/src/query/types.ts +1 -1
- package/src/query-self.ts +15 -17
- package/src/routing-table/closest-peers.ts +1 -1
- package/src/routing-table/k-bucket.ts +1 -1
- package/dist/typedoc-urls.json +0 -59
|
@@ -3,7 +3,6 @@ import { Queue } from '@libp2p/utils/queue';
|
|
|
3
3
|
import { anySignal } from 'any-signal';
|
|
4
4
|
import { xor as uint8ArrayXor } from 'uint8arrays/xor';
|
|
5
5
|
import { xorCompare as uint8ArrayXorCompare } from 'uint8arrays/xor-compare';
|
|
6
|
-
import { QueryAbortedError } from '../errors.js';
|
|
7
6
|
import { convertPeerId, convertBuffer } from '../utils.js';
|
|
8
7
|
import { queryErrorEvent } from './events.js';
|
|
9
8
|
/**
|
|
@@ -11,7 +10,7 @@ import { queryErrorEvent } from './events.js';
|
|
|
11
10
|
* every peer encountered that we have not seen before
|
|
12
11
|
*/
|
|
13
12
|
export async function* queryPath(options) {
|
|
14
|
-
const { key, startingPeer, ourPeerId, signal, query, alpha,
|
|
13
|
+
const { key, startingPeer, ourPeerId, signal, query, alpha, path, numPaths, queryFuncTimeout, log, peersSeen, connectionManager } = options;
|
|
15
14
|
// Only ALPHA node/value lookups are allowed at any given time for each process
|
|
16
15
|
// https://github.com/libp2p/specs/tree/master/kad-dht#alpha-concurrency-parameter-%CE%B1
|
|
17
16
|
const queue = new Queue({
|
|
@@ -44,7 +43,7 @@ export async function* queryPath(options) {
|
|
|
44
43
|
key,
|
|
45
44
|
peer,
|
|
46
45
|
signal: compoundSignal,
|
|
47
|
-
|
|
46
|
+
path,
|
|
48
47
|
numPaths
|
|
49
48
|
})) {
|
|
50
49
|
if (compoundSignal.aborted) {
|
|
@@ -85,7 +84,8 @@ export async function* queryPath(options) {
|
|
|
85
84
|
if (!signal.aborted) {
|
|
86
85
|
return queryErrorEvent({
|
|
87
86
|
from: peer,
|
|
88
|
-
error: err
|
|
87
|
+
error: err,
|
|
88
|
+
path
|
|
89
89
|
}, options);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -100,19 +100,11 @@ export async function* queryPath(options) {
|
|
|
100
100
|
}
|
|
101
101
|
// begin the query with the starting peer
|
|
102
102
|
queryPeer(startingPeer, await convertPeerId(startingPeer));
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
yield event;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
catch (err) {
|
|
112
|
-
if (signal.aborted) {
|
|
113
|
-
throw new QueryAbortedError('Query aborted');
|
|
103
|
+
// yield results as they come in
|
|
104
|
+
for await (const event of queue.toGenerator({ signal })) {
|
|
105
|
+
if (event != null) {
|
|
106
|
+
yield event;
|
|
114
107
|
}
|
|
115
|
-
throw err;
|
|
116
108
|
}
|
|
117
109
|
}
|
|
118
110
|
//# sourceMappingURL=query-path.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-path.js","sourceRoot":"","sources":["../../../src/query/query-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"query-path.js","sourceRoot":"","sources":["../../../src/query/query-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/query/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,MAAM,WAAW,YAAY;IAE3B,GAAG,EAAE,UAAU,CAAA;IAEf,IAAI,EAAE,MAAM,CAAA;IAEZ,MAAM,EAAE,WAAW,CAAA;IAEnB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/query/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,MAAM,WAAW,YAAY;IAE3B,GAAG,EAAE,UAAU,CAAA;IAEf,IAAI,EAAE,MAAM,CAAA;IAEZ,MAAM,EAAE,WAAW,CAAA;IAEnB,IAAI,EAAE,MAAM,CAAA;IAEZ,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;CACnD"}
|
package/dist/src/query-self.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import type { OperationMetrics } from './kad-dht.js';
|
|
2
2
|
import type { PeerRouting } from './peer-routing/index.js';
|
|
3
|
-
import type { RoutingTable } from './routing-table/index.js';
|
|
4
3
|
import type { ComponentLogger, Metrics, PeerId, Startable } from '@libp2p/interface';
|
|
5
4
|
import type { DeferredPromise } from 'p-defer';
|
|
6
5
|
export interface QuerySelfInit {
|
|
7
6
|
logPrefix: string;
|
|
8
7
|
peerRouting: PeerRouting;
|
|
9
|
-
routingTable: RoutingTable;
|
|
10
8
|
count?: number;
|
|
11
9
|
interval?: number;
|
|
12
10
|
initialInterval?: number;
|
|
@@ -18,6 +16,7 @@ export interface QuerySelfComponents {
|
|
|
18
16
|
peerId: PeerId;
|
|
19
17
|
logger: ComponentLogger;
|
|
20
18
|
metrics?: Metrics;
|
|
19
|
+
events: EventTarget;
|
|
21
20
|
}
|
|
22
21
|
/**
|
|
23
22
|
* Receives notifications of new peers joining the network that support the DHT protocol
|
|
@@ -26,7 +25,7 @@ export declare class QuerySelf implements Startable {
|
|
|
26
25
|
private readonly log;
|
|
27
26
|
private readonly peerId;
|
|
28
27
|
private readonly peerRouting;
|
|
29
|
-
private readonly
|
|
28
|
+
private readonly events;
|
|
30
29
|
private readonly count;
|
|
31
30
|
private readonly interval;
|
|
32
31
|
private readonly initialInterval;
|
|
@@ -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,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAU,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,WAAW,CAAA;IACxB,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;IAC7C,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,WAAW,CAAA;CACpB;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,MAAM,CAAa;IACpC,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;CA4ElC"}
|
package/dist/src/query-self.js
CHANGED
|
@@ -4,7 +4,6 @@ import length from 'it-length';
|
|
|
4
4
|
import { pipe } from 'it-pipe';
|
|
5
5
|
import take from 'it-take';
|
|
6
6
|
import pDefer from 'p-defer';
|
|
7
|
-
import { pEvent } from 'p-event';
|
|
8
7
|
import { QUERY_SELF_INTERVAL, QUERY_SELF_TIMEOUT, K, QUERY_SELF_INITIAL_INTERVAL } from './constants.js';
|
|
9
8
|
import { timeOperationMethod } from './utils.js';
|
|
10
9
|
/**
|
|
@@ -14,7 +13,7 @@ export class QuerySelf {
|
|
|
14
13
|
log;
|
|
15
14
|
peerId;
|
|
16
15
|
peerRouting;
|
|
17
|
-
|
|
16
|
+
events;
|
|
18
17
|
count;
|
|
19
18
|
interval;
|
|
20
19
|
initialInterval;
|
|
@@ -27,9 +26,9 @@ export class QuerySelf {
|
|
|
27
26
|
constructor(components, init) {
|
|
28
27
|
this.peerId = components.peerId;
|
|
29
28
|
this.log = components.logger.forComponent(`${init.logPrefix}:query-self`);
|
|
29
|
+
this.events = components.events;
|
|
30
30
|
this.running = false;
|
|
31
31
|
this.peerRouting = init.peerRouting;
|
|
32
|
-
this.routingTable = init.routingTable;
|
|
33
32
|
this.count = init.count ?? K;
|
|
34
33
|
this.interval = init.interval ?? QUERY_SELF_INTERVAL;
|
|
35
34
|
this.initialInterval = init.initialInterval ?? QUERY_SELF_INITIAL_INTERVAL;
|
|
@@ -84,22 +83,20 @@ export class QuerySelf {
|
|
|
84
83
|
const signal = anySignal(signals);
|
|
85
84
|
setMaxListeners(Infinity, signal, this.controller.signal);
|
|
86
85
|
try {
|
|
87
|
-
if (this.routingTable.size === 0) {
|
|
88
|
-
this.log('routing table was empty, waiting for some peers before running query');
|
|
89
|
-
// wait to discover at least one DHT peer that isn't us
|
|
90
|
-
await pEvent(this.routingTable, 'peer:add', {
|
|
91
|
-
signal,
|
|
92
|
-
filter: (event) => !this.peerId.equals(event.detail)
|
|
93
|
-
});
|
|
94
|
-
this.log('routing table has peers, continuing with query');
|
|
95
|
-
}
|
|
96
86
|
this.log('run self-query, look for %d peers timing out after %dms', this.count, this.queryTimeout);
|
|
97
87
|
const start = Date.now();
|
|
98
|
-
const
|
|
88
|
+
const peers = await pipe(this.peerRouting.getClosestPeers(this.peerId.toMultihash().bytes, {
|
|
99
89
|
signal,
|
|
100
90
|
isSelfQuery: true
|
|
101
91
|
}), (source) => take(source, this.count), async (source) => length(source));
|
|
102
|
-
|
|
92
|
+
const duration = Date.now() - start;
|
|
93
|
+
this.log('self-query found %d peers in %dms', peers, duration);
|
|
94
|
+
this.events.dispatchEvent(new CustomEvent('kad-dht:query:self', {
|
|
95
|
+
detail: {
|
|
96
|
+
peers,
|
|
97
|
+
duration
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
103
100
|
}
|
|
104
101
|
catch (err) {
|
|
105
102
|
this.log.error('self-query error', err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-self.js","sourceRoot":"","sources":["../../src/query-self.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"query-self.js","sourceRoot":"","sources":["../../src/query-self.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ export class ClosestPeers {
|
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
async updatePeerTags() {
|
|
65
|
-
const newClosest = new PeerSet(this.newPeers?.peers.map(peer => peer.id));
|
|
65
|
+
const newClosest = new PeerSet(this.newPeers?.peers.map(({ peer }) => peer.id));
|
|
66
66
|
const added = newClosest.difference(this.closestPeers);
|
|
67
67
|
const removed = this.closestPeers.difference(newClosest);
|
|
68
68
|
this.closestPeers = newClosest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closest-peers.js","sourceRoot":"","sources":["../../../src/routing-table/closest-peers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"closest-peers.js","sourceRoot":"","sources":["../../../src/routing-table/closest-peers.ts"],"names":[],"mappings":"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"}
|
|
@@ -157,7 +157,7 @@ export class KBucket {
|
|
|
157
157
|
for (const peer of this.toIterable()) {
|
|
158
158
|
list.addWithKadId({ id: peer.peerId, multiaddrs: [] }, peer.kadId);
|
|
159
159
|
}
|
|
160
|
-
yield* map(list.peers,
|
|
160
|
+
yield* map(list.peers, ({ peer }) => peer.id);
|
|
161
161
|
}
|
|
162
162
|
/**
|
|
163
163
|
* Counts the total number of contacts in the tree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"k-bucket.js","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"k-bucket.js","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/kad-dht",
|
|
3
|
-
"version": "15.0.
|
|
3
|
+
"version": "15.0.2-185b23eac",
|
|
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/tree/main/packages/kad-dht#readme",
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"doc-check": "aegir doc-check"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@libp2p/crypto": "
|
|
61
|
-
"@libp2p/interface": "
|
|
62
|
-
"@libp2p/interface-internal": "
|
|
63
|
-
"@libp2p/peer-collections": "
|
|
64
|
-
"@libp2p/peer-id": "
|
|
65
|
-
"@libp2p/ping": "
|
|
66
|
-
"@libp2p/record": "
|
|
67
|
-
"@libp2p/utils": "
|
|
60
|
+
"@libp2p/crypto": "5.1.1-185b23eac",
|
|
61
|
+
"@libp2p/interface": "2.9.0-185b23eac",
|
|
62
|
+
"@libp2p/interface-internal": "2.3.11-185b23eac",
|
|
63
|
+
"@libp2p/peer-collections": "6.0.27-185b23eac",
|
|
64
|
+
"@libp2p/peer-id": "5.1.2-185b23eac",
|
|
65
|
+
"@libp2p/ping": "2.0.29-185b23eac",
|
|
66
|
+
"@libp2p/record": "4.0.5-185b23eac",
|
|
67
|
+
"@libp2p/utils": "6.6.2-185b23eac",
|
|
68
68
|
"@multiformats/multiaddr": "^12.3.3",
|
|
69
69
|
"any-signal": "^4.1.1",
|
|
70
70
|
"interface-datastore": "^8.3.1",
|
|
@@ -90,9 +90,9 @@
|
|
|
90
90
|
"uint8arrays": "^5.1.0"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
|
-
"@libp2p/interface-compliance-tests": "
|
|
94
|
-
"@libp2p/logger": "
|
|
95
|
-
"@libp2p/peer-store": "
|
|
93
|
+
"@libp2p/interface-compliance-tests": "6.4.5-185b23eac",
|
|
94
|
+
"@libp2p/logger": "5.1.15-185b23eac",
|
|
95
|
+
"@libp2p/peer-store": "11.1.4-185b23eac",
|
|
96
96
|
"@types/lodash.random": "^3.2.9",
|
|
97
97
|
"@types/lodash.range": "^3.2.9",
|
|
98
98
|
"@types/sinon": "^17.0.3",
|
|
@@ -18,7 +18,7 @@ import { verifyRecord } from '../record/validators.js'
|
|
|
18
18
|
import { createPutRecord, bufferToRecordKey } from '../utils.js'
|
|
19
19
|
import type { KadDHTComponents, Validators, Selectors, ValueEvent, QueryEvent } from '../index.js'
|
|
20
20
|
import type { Message } from '../message/dht.js'
|
|
21
|
-
import type { Network } from '../network.js'
|
|
21
|
+
import type { Network, SendMessageOptions } from '../network.js'
|
|
22
22
|
import type { PeerRouting } from '../peer-routing/index.js'
|
|
23
23
|
import type { QueryManager } from '../query/manager.js'
|
|
24
24
|
import type { QueryFunc } from '../query/types.js'
|
|
@@ -88,7 +88,7 @@ export class ContentFetching {
|
|
|
88
88
|
/**
|
|
89
89
|
* Send the best record found to any peers that have an out of date record
|
|
90
90
|
*/
|
|
91
|
-
async * sendCorrectionRecord (key: Uint8Array, vals: ValueEvent[], best: Uint8Array, options:
|
|
91
|
+
async * sendCorrectionRecord (key: Uint8Array, vals: ValueEvent[], best: Uint8Array, options: SendMessageOptions): AsyncGenerator<QueryEvent> {
|
|
92
92
|
this.log('sendCorrection for %b', key)
|
|
93
93
|
const fixupRec = createPutRecord(key, best)
|
|
94
94
|
|
|
@@ -139,7 +139,7 @@ export class ContentFetching {
|
|
|
139
139
|
/**
|
|
140
140
|
* Store the given key/value pair in the DHT
|
|
141
141
|
*/
|
|
142
|
-
async * put (key: Uint8Array, value: Uint8Array, options: RoutingOptions
|
|
142
|
+
async * put (key: Uint8Array, value: Uint8Array, options: RoutingOptions): AsyncGenerator<unknown, void, undefined> {
|
|
143
143
|
this.log('put key %b value %b', key, value)
|
|
144
144
|
|
|
145
145
|
// create record in the dht format
|
|
@@ -171,7 +171,10 @@ export class ContentFetching {
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
this.log('send put to %p', event.peer.id)
|
|
174
|
-
for await (const putEvent of this.network.sendRequest(event.peer.id, msg,
|
|
174
|
+
for await (const putEvent of this.network.sendRequest(event.peer.id, msg, {
|
|
175
|
+
...options,
|
|
176
|
+
path: event.path
|
|
177
|
+
})) {
|
|
175
178
|
events.push(putEvent)
|
|
176
179
|
|
|
177
180
|
if (putEvent.name !== 'PEER_RESPONSE') {
|
|
@@ -201,7 +204,7 @@ export class ContentFetching {
|
|
|
201
204
|
/**
|
|
202
205
|
* Get the value to the given key
|
|
203
206
|
*/
|
|
204
|
-
async * get (key: Uint8Array, options: RoutingOptions
|
|
207
|
+
async * get (key: Uint8Array, options: RoutingOptions): AsyncGenerator<QueryEvent | ValueEvent> {
|
|
205
208
|
this.log('get %b', key)
|
|
206
209
|
|
|
207
210
|
const vals: ValueEvent[] = []
|
|
@@ -237,7 +240,10 @@ export class ContentFetching {
|
|
|
237
240
|
throw new NotFoundError('Best value was not found')
|
|
238
241
|
}
|
|
239
242
|
|
|
240
|
-
yield * this.sendCorrectionRecord(key, vals, best,
|
|
243
|
+
yield * this.sendCorrectionRecord(key, vals, best, {
|
|
244
|
+
...options,
|
|
245
|
+
path: -1
|
|
246
|
+
})
|
|
241
247
|
|
|
242
248
|
yield vals[i]
|
|
243
249
|
}
|
|
@@ -261,10 +267,11 @@ export class ContentFetching {
|
|
|
261
267
|
|
|
262
268
|
const self = this // eslint-disable-line @typescript-eslint/no-this-alias
|
|
263
269
|
|
|
264
|
-
const getValueQuery: QueryFunc = async function * ({ peer, signal }) {
|
|
270
|
+
const getValueQuery: QueryFunc = async function * ({ peer, signal, path }) {
|
|
265
271
|
for await (const event of self.peerRouting.getValueOrPeers(peer, key, {
|
|
266
272
|
...options,
|
|
267
|
-
signal
|
|
273
|
+
signal,
|
|
274
|
+
path
|
|
268
275
|
})) {
|
|
269
276
|
yield event
|
|
270
277
|
|
|
@@ -112,7 +112,10 @@ export class ContentRouting {
|
|
|
112
112
|
try {
|
|
113
113
|
this.log('sending provider record for %s to %p', key, event.peer.id)
|
|
114
114
|
|
|
115
|
-
for await (const sendEvent of this.network.sendMessage(event.peer.id, msg,
|
|
115
|
+
for await (const sendEvent of this.network.sendMessage(event.peer.id, msg, {
|
|
116
|
+
...options,
|
|
117
|
+
path: event.path ?? -1
|
|
118
|
+
})) {
|
|
116
119
|
if (sendEvent.name === 'PEER_RESPONSE') {
|
|
117
120
|
this.log('sent provider record for %s to %p', key, event.peer.id)
|
|
118
121
|
sent++
|
|
@@ -181,7 +184,7 @@ export class ContentRouting {
|
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
186
|
|
|
184
|
-
yield peerResponseEvent({ from: this.components.peerId, messageType: MessageType.GET_PROVIDERS, providers }, options)
|
|
187
|
+
yield peerResponseEvent({ from: this.components.peerId, messageType: MessageType.GET_PROVIDERS, providers, path: -1 }, options)
|
|
185
188
|
yield providerEvent({ from: this.components.peerId, providers }, options)
|
|
186
189
|
|
|
187
190
|
found += providers.length
|
|
@@ -194,7 +197,7 @@ export class ContentRouting {
|
|
|
194
197
|
/**
|
|
195
198
|
* The query function to use on this particular disjoint path
|
|
196
199
|
*/
|
|
197
|
-
const findProvidersQuery: QueryFunc = async function * ({ peer, signal }) {
|
|
200
|
+
const findProvidersQuery: QueryFunc = async function * ({ peer, signal, path }) {
|
|
198
201
|
const request = {
|
|
199
202
|
type: MessageType.GET_PROVIDERS,
|
|
200
203
|
key: target
|
|
@@ -202,7 +205,8 @@ export class ContentRouting {
|
|
|
202
205
|
|
|
203
206
|
yield * self.network.sendRequest(peer, request, {
|
|
204
207
|
...options,
|
|
205
|
-
signal
|
|
208
|
+
signal,
|
|
209
|
+
path
|
|
206
210
|
})
|
|
207
211
|
}
|
|
208
212
|
|
package/src/index.ts
CHANGED
|
@@ -192,6 +192,7 @@ export interface SendQueryEvent {
|
|
|
192
192
|
name: 'SEND_QUERY'
|
|
193
193
|
messageName: keyof typeof MessageType
|
|
194
194
|
messageType: MessageType
|
|
195
|
+
path: number
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
/**
|
|
@@ -207,6 +208,7 @@ export interface PeerResponseEvent {
|
|
|
207
208
|
closer: PeerInfo[]
|
|
208
209
|
providers: PeerInfo[]
|
|
209
210
|
record?: DHTRecord
|
|
211
|
+
path: number
|
|
210
212
|
}
|
|
211
213
|
|
|
212
214
|
/**
|
|
@@ -217,6 +219,7 @@ export interface FinalPeerEvent {
|
|
|
217
219
|
peer: PeerInfo
|
|
218
220
|
type: EventTypes.FINAL_PEER
|
|
219
221
|
name: 'FINAL_PEER'
|
|
222
|
+
path: number
|
|
220
223
|
}
|
|
221
224
|
|
|
222
225
|
/**
|
|
@@ -227,6 +230,7 @@ export interface QueryErrorEvent {
|
|
|
227
230
|
type: EventTypes.QUERY_ERROR
|
|
228
231
|
name: 'QUERY_ERROR'
|
|
229
232
|
error: Error
|
|
233
|
+
path?: number
|
|
230
234
|
}
|
|
231
235
|
|
|
232
236
|
/**
|
|
@@ -256,10 +260,13 @@ export interface AddPeerEvent {
|
|
|
256
260
|
type: EventTypes.ADD_PEER
|
|
257
261
|
name: 'ADD_PEER'
|
|
258
262
|
peer: PeerId
|
|
263
|
+
path: number
|
|
259
264
|
}
|
|
260
265
|
|
|
261
266
|
/**
|
|
262
267
|
* Emitted when peers are dialled as part of a query
|
|
268
|
+
*
|
|
269
|
+
* @deprecated No longer emitted as sometimes connections are reused so it's not possible to say with certainty that a peer has been dialled
|
|
263
270
|
*/
|
|
264
271
|
export interface DialPeerEvent {
|
|
265
272
|
peer: PeerId
|
|
@@ -506,8 +513,8 @@ export interface KadDHTInit {
|
|
|
506
513
|
initialQuerySelfInterval?: number
|
|
507
514
|
|
|
508
515
|
/**
|
|
509
|
-
* After startup by default all queries will be paused until
|
|
510
|
-
*
|
|
516
|
+
* After startup by default all queries will be paused until there is at least
|
|
517
|
+
* one peer in the routing table.
|
|
511
518
|
*
|
|
512
519
|
* Pass true here to disable this behavior.
|
|
513
520
|
*
|
package/src/kad-dht.ts
CHANGED
|
@@ -223,7 +223,8 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
|
223
223
|
logPrefix,
|
|
224
224
|
metricsPrefix,
|
|
225
225
|
initialQuerySelfHasRun,
|
|
226
|
-
routingTable: this.routingTable
|
|
226
|
+
routingTable: this.routingTable,
|
|
227
|
+
allowQueryWithZeroPeers: init.allowQueryWithZeroPeers
|
|
227
228
|
})
|
|
228
229
|
|
|
229
230
|
// DHT components
|
|
@@ -276,7 +277,6 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
|
276
277
|
initialInterval: init.initialQuerySelfInterval,
|
|
277
278
|
logPrefix,
|
|
278
279
|
initialQuerySelfHasRun,
|
|
279
|
-
routingTable: this.routingTable,
|
|
280
280
|
operationMetrics
|
|
281
281
|
})
|
|
282
282
|
this.reprovider = new Reprovider(components, {
|
package/src/network.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { pbStream } from 'it-protobuf-stream'
|
|
|
5
5
|
import { Message } from './message/dht.js'
|
|
6
6
|
import { fromPbPeerInfo } from './message/utils.js'
|
|
7
7
|
import {
|
|
8
|
-
dialPeerEvent,
|
|
9
8
|
sendQueryEvent,
|
|
10
9
|
peerResponseEvent,
|
|
11
10
|
queryErrorEvent
|
|
@@ -24,6 +23,15 @@ interface NetworkEvents {
|
|
|
24
23
|
'peer': CustomEvent<PeerInfo>
|
|
25
24
|
}
|
|
26
25
|
|
|
26
|
+
export interface SendMessageOptions extends RoutingOptions {
|
|
27
|
+
/**
|
|
28
|
+
* Queries involve following up to `k` disjoint paths through the network -
|
|
29
|
+
* this option is which index within `k` this message is for, and it
|
|
30
|
+
* allows observers to collate events together on a per-path basis
|
|
31
|
+
*/
|
|
32
|
+
path: number
|
|
33
|
+
}
|
|
34
|
+
|
|
27
35
|
/**
|
|
28
36
|
* Handle network operations for the dht
|
|
29
37
|
*/
|
|
@@ -142,7 +150,7 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
|
|
|
142
150
|
/**
|
|
143
151
|
* Send a request and read a response
|
|
144
152
|
*/
|
|
145
|
-
async * sendRequest (to: PeerId, msg: Partial<Message>, options:
|
|
153
|
+
async * sendRequest (to: PeerId, msg: Partial<Message>, options: SendMessageOptions): AsyncGenerator<QueryEvent> {
|
|
146
154
|
if (!this.running) {
|
|
147
155
|
return
|
|
148
156
|
}
|
|
@@ -154,8 +162,7 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
|
|
|
154
162
|
}
|
|
155
163
|
|
|
156
164
|
this.log('sending %s to %p', msg.type, to)
|
|
157
|
-
yield
|
|
158
|
-
yield sendQueryEvent({ to, type }, options)
|
|
165
|
+
yield sendQueryEvent({ to, type, path: options.path }, options)
|
|
159
166
|
|
|
160
167
|
let stream: Stream | undefined
|
|
161
168
|
const signal = this.timeout.getTimeoutSignal(options)
|
|
@@ -183,7 +190,8 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
|
|
|
183
190
|
messageType: response.type,
|
|
184
191
|
closer: response.closer.map(fromPbPeerInfo),
|
|
185
192
|
providers: response.providers.map(fromPbPeerInfo),
|
|
186
|
-
record: response.record == null ? undefined : Libp2pRecord.deserialize(response.record)
|
|
193
|
+
record: response.record == null ? undefined : Libp2pRecord.deserialize(response.record),
|
|
194
|
+
path: options.path
|
|
187
195
|
}, options)
|
|
188
196
|
} catch (err: any) {
|
|
189
197
|
this.metrics.errors?.increment({ [type]: true })
|
|
@@ -196,7 +204,7 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
|
|
|
196
204
|
this.log.error('could not send %s to %p - %e', msg.type, to, err)
|
|
197
205
|
}
|
|
198
206
|
|
|
199
|
-
yield queryErrorEvent({ from: to, error: err }, options)
|
|
207
|
+
yield queryErrorEvent({ from: to, error: err, path: options.path }, options)
|
|
200
208
|
} finally {
|
|
201
209
|
this.timeout.cleanUp(signal)
|
|
202
210
|
}
|
|
@@ -205,7 +213,7 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
|
|
|
205
213
|
/**
|
|
206
214
|
* Sends a message without expecting an answer
|
|
207
215
|
*/
|
|
208
|
-
async * sendMessage (to: PeerId, msg: Partial<Message>, options:
|
|
216
|
+
async * sendMessage (to: PeerId, msg: Partial<Message>, options: SendMessageOptions): AsyncGenerator<QueryEvent> {
|
|
209
217
|
if (!this.running) {
|
|
210
218
|
return
|
|
211
219
|
}
|
|
@@ -217,8 +225,7 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
|
|
|
217
225
|
}
|
|
218
226
|
|
|
219
227
|
this.log('sending %s to %p', msg.type, to)
|
|
220
|
-
yield
|
|
221
|
-
yield sendQueryEvent({ to, type }, options)
|
|
228
|
+
yield sendQueryEvent({ to, type, path: options.path }, options)
|
|
222
229
|
|
|
223
230
|
let stream: Stream | undefined
|
|
224
231
|
const signal = this.timeout.getTimeoutSignal(options)
|
|
@@ -242,12 +249,12 @@ export class Network extends TypedEventEmitter<NetworkEvents> implements Startab
|
|
|
242
249
|
stream?.abort(err)
|
|
243
250
|
})
|
|
244
251
|
|
|
245
|
-
yield peerResponseEvent({ from: to, messageType: type }, options)
|
|
252
|
+
yield peerResponseEvent({ from: to, messageType: type, path: options.path }, options)
|
|
246
253
|
} catch (err: any) {
|
|
247
254
|
this.metrics.errors?.increment({ [type]: true })
|
|
248
255
|
|
|
249
256
|
stream?.abort(err)
|
|
250
|
-
yield queryErrorEvent({ from: to, error: err }, options)
|
|
257
|
+
yield queryErrorEvent({ from: to, error: err, path: options.path }, options)
|
|
251
258
|
} finally {
|
|
252
259
|
this.timeout.cleanUp(signal)
|
|
253
260
|
}
|