@libp2p/kad-dht 14.1.3-b248eefc0 → 14.1.3-bc90b4fd5
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.min.js +6 -3
- package/dist/src/content-fetching/index.d.ts +1 -0
- package/dist/src/content-fetching/index.d.ts.map +1 -1
- package/dist/src/content-fetching/index.js +1 -1
- package/dist/src/content-fetching/index.js.map +1 -1
- package/dist/src/kad-dht.d.ts.map +1 -1
- package/dist/src/kad-dht.js +4 -2
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/peer-routing/index.d.ts +9 -5
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +25 -7
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +5 -3
- package/dist/src/providers.js.map +1 -1
- package/dist/src/reprovider.js +1 -1
- package/dist/src/reprovider.js.map +1 -1
- package/dist/src/rpc/handlers/add-provider.d.ts +5 -1
- package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -1
- package/dist/src/rpc/handlers/add-provider.js +14 -5
- package/dist/src/rpc/handlers/add-provider.js.map +1 -1
- package/dist/src/rpc/handlers/get-providers.d.ts +3 -2
- package/dist/src/rpc/handlers/get-providers.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-providers.js +16 -28
- package/dist/src/rpc/handlers/get-providers.js.map +1 -1
- package/dist/src/rpc/handlers/get-value.d.ts +1 -0
- package/dist/src/rpc/handlers/get-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-value.js +1 -1
- package/dist/src/rpc/handlers/get-value.js.map +1 -1
- package/dist/src/rpc/handlers/put-value.d.ts +1 -0
- package/dist/src/rpc/handlers/put-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/put-value.js +1 -1
- package/dist/src/rpc/handlers/put-value.js.map +1 -1
- package/dist/src/rpc/index.d.ts +1 -0
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/dist/src/rpc/index.js.map +1 -1
- package/package.json +12 -12
- package/src/content-fetching/index.ts +2 -1
- package/src/kad-dht.ts +4 -2
- package/src/peer-routing/index.ts +38 -10
- package/src/providers.ts +5 -3
- package/src/reprovider.ts +1 -1
- package/src/rpc/handlers/add-provider.ts +18 -7
- package/src/rpc/handlers/get-providers.ts +18 -32
- package/src/rpc/handlers/get-value.ts +2 -1
- package/src/rpc/handlers/put-value.ts +2 -1
- package/src/rpc/index.ts +1 -0
@@ -1,7 +1,10 @@
|
|
1
1
|
import { InvalidMessageError } from '@libp2p/interface';
|
2
|
+
import all from 'it-all';
|
3
|
+
import map from 'it-map';
|
2
4
|
import { CID } from 'multiformats/cid';
|
3
5
|
import { MessageType } from '../../message/dht.js';
|
4
6
|
export class GetProvidersHandler {
|
7
|
+
peerId;
|
5
8
|
peerRouting;
|
6
9
|
providers;
|
7
10
|
peerStore;
|
@@ -10,6 +13,7 @@ export class GetProvidersHandler {
|
|
10
13
|
constructor(components, init) {
|
11
14
|
const { peerRouting, providers, logPrefix } = init;
|
12
15
|
this.log = components.logger.forComponent(`${logPrefix}:rpc:handlers:get-providers`);
|
16
|
+
this.peerId = components.peerId;
|
13
17
|
this.peerStore = components.peerStore;
|
14
18
|
this.peerRouting = peerRouting;
|
15
19
|
this.providers = providers;
|
@@ -27,26 +31,31 @@ export class GetProvidersHandler {
|
|
27
31
|
throw new InvalidMessageError('Invalid CID');
|
28
32
|
}
|
29
33
|
this.log('%p asking for providers for %s', peerId, cid);
|
30
|
-
const [
|
31
|
-
this.providers.getProviders(cid),
|
32
|
-
|
34
|
+
const [providerPeers, closerPeers] = await Promise.all([
|
35
|
+
all(map(await this.providers.getProviders(cid), async (peerId) => {
|
36
|
+
const peer = await this.peerStore.get(peerId);
|
37
|
+
const info = {
|
38
|
+
id: peer.id,
|
39
|
+
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
40
|
+
};
|
41
|
+
return info;
|
42
|
+
})),
|
43
|
+
this.peerRouting.getCloserPeersOffline(msg.key, this.peerId)
|
33
44
|
]);
|
34
|
-
const providerPeers = await this._getPeers(peers);
|
35
|
-
const closerPeers = await this._getPeers(closer.map(({ id }) => id));
|
36
45
|
const response = {
|
37
46
|
type: MessageType.GET_PROVIDERS,
|
38
47
|
key: msg.key,
|
39
48
|
clusterLevel: msg.clusterLevel,
|
40
49
|
closer: closerPeers
|
41
50
|
.map(this.peerInfoMapper)
|
42
|
-
.filter(({ multiaddrs }) => multiaddrs.length)
|
51
|
+
.filter(({ id, multiaddrs }) => multiaddrs.length > 0)
|
43
52
|
.map(peerInfo => ({
|
44
53
|
id: peerInfo.id.toMultihash().bytes,
|
45
54
|
multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
|
46
55
|
})),
|
47
56
|
providers: providerPeers
|
48
57
|
.map(this.peerInfoMapper)
|
49
|
-
.filter(({ multiaddrs }) => multiaddrs.length)
|
58
|
+
.filter(({ id, multiaddrs }) => multiaddrs.length > 0)
|
50
59
|
.map(peerInfo => ({
|
51
60
|
id: peerInfo.id.toMultihash().bytes,
|
52
61
|
multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
|
@@ -58,26 +67,5 @@ export class GetProvidersHandler {
|
|
58
67
|
async _getAddresses(peerId) {
|
59
68
|
return [];
|
60
69
|
}
|
61
|
-
async _getPeers(peerIds) {
|
62
|
-
const output = [];
|
63
|
-
for (const peerId of peerIds) {
|
64
|
-
try {
|
65
|
-
const peer = await this.peerStore.get(peerId);
|
66
|
-
const peerAfterFilter = this.peerInfoMapper({
|
67
|
-
id: peerId,
|
68
|
-
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
69
|
-
});
|
70
|
-
if (peerAfterFilter.multiaddrs.length > 0) {
|
71
|
-
output.push(peerAfterFilter);
|
72
|
-
}
|
73
|
-
}
|
74
|
-
catch (err) {
|
75
|
-
if (err.name !== 'NotFoundError') {
|
76
|
-
throw err;
|
77
|
-
}
|
78
|
-
}
|
79
|
-
}
|
80
|
-
return output;
|
81
|
-
}
|
82
70
|
}
|
83
71
|
//# sourceMappingURL=get-providers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-providers.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;
|
1
|
+
{"version":3,"file":"get-providers.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAM7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;
|
1
|
+
{"version":3,"file":"get-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAM7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;gBAE3B,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAQvE,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAgE7D;;;;;OAKG;IACG,oBAAoB,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CA6BhF"}
|
@@ -12,7 +12,7 @@ export class GetValueHandler {
|
|
12
12
|
datastorePrefix;
|
13
13
|
constructor(components, init) {
|
14
14
|
this.log = components.logger.forComponent(`${init.logPrefix}:rpc:handlers:get-value`);
|
15
|
-
this.datastorePrefix =
|
15
|
+
this.datastorePrefix = `${init.datastorePrefix}/record`;
|
16
16
|
this.peerStore = components.peerStore;
|
17
17
|
this.datastore = components.datastore;
|
18
18
|
this.peerRouting = init.peerRouting;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,cAAc,EACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;
|
1
|
+
{"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"put-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;
|
1
|
+
{"version":3,"file":"put-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;gBAE3B,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IASvE,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA0B9D"}
|
@@ -11,7 +11,7 @@ export class PutValueHandler {
|
|
11
11
|
const { validators } = init;
|
12
12
|
this.components = components;
|
13
13
|
this.log = components.logger.forComponent(`${init.logPrefix}:rpc:handlers:put-value`);
|
14
|
-
this.datastorePrefix =
|
14
|
+
this.datastorePrefix = `${init.datastorePrefix}/record`;
|
15
15
|
this.validators = validators;
|
16
16
|
}
|
17
17
|
async handle(peerId, msg) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"put-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;
|
1
|
+
{"version":3,"file":"put-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAkBlD,MAAM,OAAO,eAAe;IACT,UAAU,CAA2B;IACrC,UAAU,CAAY;IACtB,GAAG,CAAQ;IACX,eAAe,CAAQ;IAExC,YAAa,UAAqC,EAAE,IAAyB;QAC3E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;QAE3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,yBAAyB,CAAC,CAAA;QACrF,IAAI,CAAC,eAAe,GAAG,GAAG,IAAI,CAAC,eAAe,SAAS,CAAA;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;QACnB,IAAI,CAAC,GAAG,CAAC,uCAAuC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QAE9D,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,sBAAsB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;YAExD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtB,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAE/D,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAA;YAEvD,kBAAkB,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAA;YAC5C,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAA;YACjF,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzF,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QAC3E,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,iDAAiD,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACvE,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
|
package/dist/src/rpc/index.d.ts
CHANGED
@@ -19,6 +19,7 @@ export interface RPCInit {
|
|
19
19
|
validators: Validators;
|
20
20
|
logPrefix: string;
|
21
21
|
metricsPrefix: string;
|
22
|
+
datastorePrefix: string;
|
22
23
|
peerInfoMapper: PeerInfoMapper;
|
23
24
|
}
|
24
25
|
export interface RPCComponents extends GetValueHandlerComponents, PutValueHandlerComponents, FindNodeHandlerComponents, GetProvidersHandlerComponents {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAuB,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEzF,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAwB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACnE;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,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B;IACnJ,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGvB;gBAEY,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO;IAkBrD;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAsBhF;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAwClD"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAuB,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEzF,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAwB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACnE;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,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B;IACnJ,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGvB;gBAEY,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO;IAkBrD;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAsBhF;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAwClD"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAkC,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAsC,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAE,eAAe,EAAkC,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAkC,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.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": "14.1.3-
|
3
|
+
"version": "14.1.3-bc90b4fd5",
|
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,16 +57,17 @@
|
|
57
57
|
"doc-check": "aegir doc-check"
|
58
58
|
},
|
59
59
|
"dependencies": {
|
60
|
-
"@libp2p/crypto": "5.0.7-
|
61
|
-
"@libp2p/interface": "2.2.1-
|
62
|
-
"@libp2p/interface-internal": "2.1.1-
|
63
|
-
"@libp2p/peer-collections": "6.0.12-
|
64
|
-
"@libp2p/peer-id": "5.0.8-
|
65
|
-
"@libp2p/record": "4.0.4-
|
66
|
-
"@libp2p/utils": "6.2.1-
|
60
|
+
"@libp2p/crypto": "5.0.7-bc90b4fd5",
|
61
|
+
"@libp2p/interface": "2.2.1-bc90b4fd5",
|
62
|
+
"@libp2p/interface-internal": "2.1.1-bc90b4fd5",
|
63
|
+
"@libp2p/peer-collections": "6.0.12-bc90b4fd5",
|
64
|
+
"@libp2p/peer-id": "5.0.8-bc90b4fd5",
|
65
|
+
"@libp2p/record": "4.0.4-bc90b4fd5",
|
66
|
+
"@libp2p/utils": "6.2.1-bc90b4fd5",
|
67
67
|
"@multiformats/multiaddr": "^12.2.3",
|
68
68
|
"any-signal": "^4.1.1",
|
69
69
|
"interface-datastore": "^8.3.0",
|
70
|
+
"it-all": "^3.0.6",
|
70
71
|
"it-drain": "^3.0.7",
|
71
72
|
"it-length": "^3.0.6",
|
72
73
|
"it-length-prefixed": "^9.0.4",
|
@@ -88,9 +89,9 @@
|
|
88
89
|
"uint8arrays": "^5.1.0"
|
89
90
|
},
|
90
91
|
"devDependencies": {
|
91
|
-
"@libp2p/interface-compliance-tests": "6.1.11-
|
92
|
-
"@libp2p/logger": "5.1.4-
|
93
|
-
"@libp2p/peer-store": "11.0.12-
|
92
|
+
"@libp2p/interface-compliance-tests": "6.1.11-bc90b4fd5",
|
93
|
+
"@libp2p/logger": "5.1.4-bc90b4fd5",
|
94
|
+
"@libp2p/peer-store": "11.0.12-bc90b4fd5",
|
94
95
|
"@types/lodash.random": "^3.2.9",
|
95
96
|
"@types/lodash.range": "^3.2.9",
|
96
97
|
"@types/sinon": "^17.0.3",
|
@@ -99,7 +100,6 @@
|
|
99
100
|
"datastore-core": "^10.0.0",
|
100
101
|
"delay": "^6.0.0",
|
101
102
|
"execa": "^9.1.0",
|
102
|
-
"it-all": "^3.0.6",
|
103
103
|
"it-filter": "^3.1.0",
|
104
104
|
"it-last": "^3.0.6",
|
105
105
|
"it-pair": "^2.0.6",
|
@@ -31,6 +31,7 @@ export interface ContentFetchingInit {
|
|
31
31
|
queryManager: QueryManager
|
32
32
|
network: Network
|
33
33
|
logPrefix: string
|
34
|
+
datastorePrefix: string
|
34
35
|
}
|
35
36
|
|
36
37
|
export class ContentFetching {
|
@@ -48,7 +49,7 @@ export class ContentFetching {
|
|
48
49
|
|
49
50
|
this.components = components
|
50
51
|
this.log = components.logger.forComponent(`${logPrefix}:content-fetching`)
|
51
|
-
this.datastorePrefix =
|
52
|
+
this.datastorePrefix = `${init.datastorePrefix}/record`
|
52
53
|
this.validators = validators
|
53
54
|
this.selectors = selectors
|
54
55
|
this.peerRouting = peerRouting
|
package/src/kad-dht.ts
CHANGED
@@ -240,7 +240,8 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
240
240
|
peerRouting: this.peerRouting,
|
241
241
|
queryManager: this.queryManager,
|
242
242
|
network: this.network,
|
243
|
-
logPrefix
|
243
|
+
logPrefix,
|
244
|
+
datastorePrefix
|
244
245
|
})
|
245
246
|
this.contentRouting = new KADDHTContentRouting(components, {
|
246
247
|
network: this.network,
|
@@ -262,6 +263,7 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
262
263
|
validators: this.validators,
|
263
264
|
logPrefix,
|
264
265
|
metricsPrefix,
|
266
|
+
datastorePrefix,
|
265
267
|
peerInfoMapper: this.peerInfoMapper
|
266
268
|
})
|
267
269
|
this.topologyListener = new TopologyListener(components, {
|
@@ -315,7 +317,7 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
315
317
|
|
316
318
|
await this.onPeerConnect(peerData)
|
317
319
|
}).catch(err => {
|
318
|
-
this.log.error('could not add %p to routing table', peerId, err)
|
320
|
+
this.log.error('could not add %p to routing table - %e', peerId, err)
|
319
321
|
})
|
320
322
|
})
|
321
323
|
|
@@ -1,8 +1,11 @@
|
|
1
1
|
import { publicKeyFromProtobuf } from '@libp2p/crypto/keys'
|
2
2
|
import { InvalidPublicKeyError, NotFoundError } from '@libp2p/interface'
|
3
|
-
import { peerIdFromPublicKey } from '@libp2p/peer-id'
|
3
|
+
import { peerIdFromPublicKey, peerIdFromMultihash } from '@libp2p/peer-id'
|
4
4
|
import { Libp2pRecord } from '@libp2p/record'
|
5
|
+
import * as Digest from 'multiformats/hashes/digest'
|
5
6
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
|
7
|
+
import { xor as uint8ArrayXor } from 'uint8arrays/xor'
|
8
|
+
import { xorCompare as uint8ArrayXorCompare } from 'uint8arrays/xor-compare'
|
6
9
|
import { QueryError, InvalidRecordError } from '../errors.js'
|
7
10
|
import { MessageType } from '../message/dht.js'
|
8
11
|
import { PeerDistanceList } from '../peer-distance-list.js'
|
@@ -12,14 +15,20 @@ import {
|
|
12
15
|
valueEvent
|
13
16
|
} from '../query/events.js'
|
14
17
|
import { verifyRecord } from '../record/validators.js'
|
15
|
-
import { convertBuffer, keyForPublicKey } from '../utils.js'
|
16
|
-
import type {
|
18
|
+
import { convertBuffer, convertPeerId, keyForPublicKey } from '../utils.js'
|
19
|
+
import type { DHTRecord, FinalPeerEvent, QueryEvent, Validators } from '../index.js'
|
17
20
|
import type { Message } from '../message/dht.js'
|
18
21
|
import type { Network } from '../network.js'
|
19
22
|
import type { QueryManager, QueryOptions } from '../query/manager.js'
|
20
23
|
import type { QueryFunc } from '../query/types.js'
|
21
24
|
import type { RoutingTable } from '../routing-table/index.js'
|
22
|
-
import type { Logger, PeerId, PeerInfo, PeerStore, RoutingOptions } from '@libp2p/interface'
|
25
|
+
import type { ComponentLogger, Logger, PeerId, PeerInfo, PeerStore, RoutingOptions } from '@libp2p/interface'
|
26
|
+
|
27
|
+
export interface PeerRoutingComponents {
|
28
|
+
peerId: PeerId
|
29
|
+
peerStore: PeerStore
|
30
|
+
logger: ComponentLogger
|
31
|
+
}
|
23
32
|
|
24
33
|
export interface PeerRoutingInit {
|
25
34
|
routingTable: RoutingTable
|
@@ -38,7 +47,7 @@ export class PeerRouting {
|
|
38
47
|
private readonly peerStore: PeerStore
|
39
48
|
private readonly peerId: PeerId
|
40
49
|
|
41
|
-
constructor (components:
|
50
|
+
constructor (components: PeerRoutingComponents, init: PeerRoutingInit) {
|
42
51
|
this.routingTable = init.routingTable
|
43
52
|
this.network = init.network
|
44
53
|
this.validators = init.validators
|
@@ -283,16 +292,35 @@ export class PeerRouting {
|
|
283
292
|
}
|
284
293
|
|
285
294
|
/**
|
286
|
-
* Get the nearest peers to the given query, but if closer
|
287
|
-
* than self
|
295
|
+
* Get the nearest peers to the given query, but if closer than self
|
288
296
|
*/
|
289
297
|
async getCloserPeersOffline (key: Uint8Array, closerThan: PeerId): Promise<PeerInfo[]> {
|
290
|
-
const id = await convertBuffer(key)
|
291
|
-
const ids = this.routingTable.closestPeers(id)
|
292
298
|
const output: PeerInfo[] = []
|
293
299
|
|
300
|
+
// try getting the peer directly
|
301
|
+
try {
|
302
|
+
const multihash = Digest.decode(key)
|
303
|
+
const targetPeerId = peerIdFromMultihash(multihash)
|
304
|
+
|
305
|
+
const peer = await this.peerStore.get(targetPeerId)
|
306
|
+
|
307
|
+
output.push({
|
308
|
+
id: peer.id,
|
309
|
+
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
310
|
+
})
|
311
|
+
} catch {}
|
312
|
+
|
313
|
+
const keyKadId = await convertBuffer(key)
|
314
|
+
const ids = this.routingTable.closestPeers(keyKadId)
|
315
|
+
const closerThanKadId = await convertPeerId(closerThan)
|
316
|
+
const requesterXor = uint8ArrayXor(closerThanKadId, keyKadId)
|
317
|
+
|
294
318
|
for (const peerId of ids) {
|
295
|
-
|
319
|
+
const peerKadId = await convertPeerId(peerId)
|
320
|
+
const peerXor = uint8ArrayXor(peerKadId, keyKadId)
|
321
|
+
|
322
|
+
// only include if peer is closer than requester
|
323
|
+
if (uint8ArrayXorCompare(peerXor, requesterXor) !== -1) {
|
296
324
|
continue
|
297
325
|
}
|
298
326
|
|
package/src/providers.ts
CHANGED
@@ -29,7 +29,7 @@ export class Providers {
|
|
29
29
|
|
30
30
|
constructor (components: ProvidersComponents, init: ProvidersInit) {
|
31
31
|
this.log = components.logger.forComponent(`${init.logPrefix}:providers`)
|
32
|
-
this.datastorePrefix =
|
32
|
+
this.datastorePrefix = `${init.datastorePrefix}/provider`
|
33
33
|
this.datastore = components.datastore
|
34
34
|
this.lock = init.lock
|
35
35
|
}
|
@@ -70,8 +70,9 @@ export class Providers {
|
|
70
70
|
const release = await this.lock.readLock()
|
71
71
|
|
72
72
|
try {
|
73
|
-
this.log('get providers for %
|
73
|
+
this.log('get providers for %c', cid)
|
74
74
|
const provs = await this.loadProviders(cid)
|
75
|
+
this.log('got %d providers for %c', provs.size, cid)
|
75
76
|
|
76
77
|
return [...provs.keys()]
|
77
78
|
} finally {
|
@@ -94,8 +95,9 @@ export class Providers {
|
|
94
95
|
*/
|
95
96
|
private async loadProviders (cid: CID): Promise<PeerMap<Date>> {
|
96
97
|
const providers = new PeerMap<Date>()
|
98
|
+
const key = toProviderKey(this.datastorePrefix, cid)
|
97
99
|
|
98
|
-
for await (const entry of this.datastore.query({ prefix:
|
100
|
+
for await (const entry of this.datastore.query({ prefix: key.toString() })) {
|
99
101
|
const { peerId } = parseProviderKey(entry.key)
|
100
102
|
providers.set(peerId, readProviderTime(entry.value))
|
101
103
|
}
|
package/src/reprovider.ts
CHANGED
@@ -80,7 +80,7 @@ export class Reprovider extends TypedEventEmitter<ReprovideEvents> {
|
|
80
80
|
})
|
81
81
|
this.datastore = components.datastore
|
82
82
|
this.addressManager = components.addressManager
|
83
|
-
this.datastorePrefix =
|
83
|
+
this.datastorePrefix = `${init.datastorePrefix}/provider`
|
84
84
|
this.reprovideThreshold = init.threshold ?? REPROVIDE_THRESHOLD
|
85
85
|
this.maxQueueSize = init.maxQueueSize ?? REPROVIDE_MAX_QUEUE_SIZE
|
86
86
|
this.validity = init.validity ?? PROVIDERS_VALIDITY
|
@@ -6,9 +6,11 @@ import * as Digest from 'multiformats/hashes/digest'
|
|
6
6
|
import type { Message } from '../../message/dht.js'
|
7
7
|
import type { Providers } from '../../providers'
|
8
8
|
import type { DHTMessageHandler } from '../index.js'
|
9
|
-
import type { ComponentLogger, Logger, PeerId } from '@libp2p/interface'
|
9
|
+
import type { ComponentLogger, Logger, PeerId, PeerStore } from '@libp2p/interface'
|
10
10
|
|
11
11
|
export interface AddProviderComponents {
|
12
|
+
peerId: PeerId
|
13
|
+
peerStore: PeerStore
|
12
14
|
logger: ComponentLogger
|
13
15
|
}
|
14
16
|
|
@@ -18,12 +20,16 @@ export interface AddProviderHandlerInit {
|
|
18
20
|
}
|
19
21
|
|
20
22
|
export class AddProviderHandler implements DHTMessageHandler {
|
23
|
+
private readonly peerId: PeerId
|
21
24
|
private readonly providers: Providers
|
25
|
+
private readonly peerStore: PeerStore
|
22
26
|
private readonly log: Logger
|
23
27
|
|
24
28
|
constructor (components: AddProviderComponents, init: AddProviderHandlerInit) {
|
25
29
|
this.log = components.logger.forComponent(`${init.logPrefix}:rpc:handlers:add-provider`)
|
30
|
+
this.peerId = components.peerId
|
26
31
|
this.providers = init.providers
|
32
|
+
this.peerStore = components.peerStore
|
27
33
|
}
|
28
34
|
|
29
35
|
async handle (peerId: PeerId, msg: Message): Promise<Message | undefined> {
|
@@ -43,12 +49,16 @@ export class AddProviderHandler implements DHTMessageHandler {
|
|
43
49
|
this.log.error('no providers found in message')
|
44
50
|
}
|
45
51
|
|
46
|
-
this.log('%p asked us to store provider record for for %c', peerId, cid)
|
52
|
+
this.log('%p asked us, %p to store provider record for for %c', peerId, this.peerId, cid)
|
47
53
|
|
48
54
|
await Promise.all(
|
49
55
|
msg.providers.map(async (pi) => {
|
56
|
+
const digest = Digest.decode(pi.id)
|
57
|
+
const providerId = peerIdFromMultihash(digest)
|
58
|
+
const providerMultiaddrs = pi.multiaddrs.map(buf => multiaddr(buf))
|
59
|
+
|
50
60
|
// Ignore providers not from the originator
|
51
|
-
if (!peerId.equals(
|
61
|
+
if (!peerId.equals(providerId)) {
|
52
62
|
this.log('invalid provider peer %p from %p', pi.id, peerId)
|
53
63
|
return
|
54
64
|
}
|
@@ -58,11 +68,12 @@ export class AddProviderHandler implements DHTMessageHandler {
|
|
58
68
|
return
|
59
69
|
}
|
60
70
|
|
61
|
-
this.log.trace('received provider %p for %s (addrs %s)', peerId, cid,
|
62
|
-
|
63
|
-
const multihash = Digest.decode(pi.id)
|
71
|
+
this.log.trace('received provider %p for %s (addrs %s)', peerId, cid, providerMultiaddrs)
|
64
72
|
|
65
|
-
await this.providers.addProvider(cid,
|
73
|
+
await this.providers.addProvider(cid, providerId)
|
74
|
+
await this.peerStore.merge(providerId, {
|
75
|
+
multiaddrs: providerMultiaddrs
|
76
|
+
})
|
66
77
|
})
|
67
78
|
)
|
68
79
|
|
@@ -1,4 +1,6 @@
|
|
1
1
|
import { InvalidMessageError } from '@libp2p/interface'
|
2
|
+
import all from 'it-all'
|
3
|
+
import map from 'it-map'
|
2
4
|
import { CID } from 'multiformats/cid'
|
3
5
|
import { MessageType } from '../../message/dht.js'
|
4
6
|
import type { PeerInfoMapper } from '../../index.js'
|
@@ -17,11 +19,13 @@ export interface GetProvidersHandlerInit {
|
|
17
19
|
}
|
18
20
|
|
19
21
|
export interface GetProvidersHandlerComponents {
|
22
|
+
peerId: PeerId
|
20
23
|
peerStore: PeerStore
|
21
24
|
logger: ComponentLogger
|
22
25
|
}
|
23
26
|
|
24
27
|
export class GetProvidersHandler implements DHTMessageHandler {
|
28
|
+
private readonly peerId: PeerId
|
25
29
|
private readonly peerRouting: PeerRouting
|
26
30
|
private readonly providers: Providers
|
27
31
|
private readonly peerStore: PeerStore
|
@@ -32,6 +36,7 @@ export class GetProvidersHandler implements DHTMessageHandler {
|
|
32
36
|
const { peerRouting, providers, logPrefix } = init
|
33
37
|
|
34
38
|
this.log = components.logger.forComponent(`${logPrefix}:rpc:handlers:get-providers`)
|
39
|
+
this.peerId = components.peerId
|
35
40
|
this.peerStore = components.peerStore
|
36
41
|
this.peerRouting = peerRouting
|
37
42
|
this.providers = providers
|
@@ -52,27 +57,33 @@ export class GetProvidersHandler implements DHTMessageHandler {
|
|
52
57
|
|
53
58
|
this.log('%p asking for providers for %s', peerId, cid)
|
54
59
|
|
55
|
-
const [
|
56
|
-
this.providers.getProviders(cid),
|
57
|
-
|
60
|
+
const [providerPeers, closerPeers] = await Promise.all([
|
61
|
+
all(map(await this.providers.getProviders(cid), async (peerId) => {
|
62
|
+
const peer = await this.peerStore.get(peerId)
|
63
|
+
const info: PeerInfo = {
|
64
|
+
id: peer.id,
|
65
|
+
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
66
|
+
}
|
67
|
+
|
68
|
+
return info
|
69
|
+
})),
|
70
|
+
this.peerRouting.getCloserPeersOffline(msg.key, this.peerId)
|
58
71
|
])
|
59
72
|
|
60
|
-
const providerPeers = await this._getPeers(peers)
|
61
|
-
const closerPeers = await this._getPeers(closer.map(({ id }) => id))
|
62
73
|
const response: Message = {
|
63
74
|
type: MessageType.GET_PROVIDERS,
|
64
75
|
key: msg.key,
|
65
76
|
clusterLevel: msg.clusterLevel,
|
66
77
|
closer: closerPeers
|
67
78
|
.map(this.peerInfoMapper)
|
68
|
-
.filter(({ multiaddrs }) => multiaddrs.length)
|
79
|
+
.filter(({ id, multiaddrs }) => multiaddrs.length > 0)
|
69
80
|
.map(peerInfo => ({
|
70
81
|
id: peerInfo.id.toMultihash().bytes,
|
71
82
|
multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
|
72
83
|
})),
|
73
84
|
providers: providerPeers
|
74
85
|
.map(this.peerInfoMapper)
|
75
|
-
.filter(({ multiaddrs }) => multiaddrs.length)
|
86
|
+
.filter(({ id, multiaddrs }) => multiaddrs.length > 0)
|
76
87
|
.map(peerInfo => ({
|
77
88
|
id: peerInfo.id.toMultihash().bytes,
|
78
89
|
multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
|
@@ -87,29 +98,4 @@ export class GetProvidersHandler implements DHTMessageHandler {
|
|
87
98
|
async _getAddresses (peerId: PeerId): Promise<Multiaddr[]> {
|
88
99
|
return []
|
89
100
|
}
|
90
|
-
|
91
|
-
async _getPeers (peerIds: PeerId[]): Promise<PeerInfo[]> {
|
92
|
-
const output: PeerInfo[] = []
|
93
|
-
|
94
|
-
for (const peerId of peerIds) {
|
95
|
-
try {
|
96
|
-
const peer = await this.peerStore.get(peerId)
|
97
|
-
|
98
|
-
const peerAfterFilter = this.peerInfoMapper({
|
99
|
-
id: peerId,
|
100
|
-
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
101
|
-
})
|
102
|
-
|
103
|
-
if (peerAfterFilter.multiaddrs.length > 0) {
|
104
|
-
output.push(peerAfterFilter)
|
105
|
-
}
|
106
|
-
} catch (err: any) {
|
107
|
-
if (err.name !== 'NotFoundError') {
|
108
|
-
throw err
|
109
|
-
}
|
110
|
-
}
|
111
|
-
}
|
112
|
-
|
113
|
-
return output
|
114
|
-
}
|
115
101
|
}
|
@@ -15,6 +15,7 @@ import type { Datastore } from 'interface-datastore'
|
|
15
15
|
export interface GetValueHandlerInit {
|
16
16
|
peerRouting: PeerRouting
|
17
17
|
logPrefix: string
|
18
|
+
datastorePrefix: string
|
18
19
|
}
|
19
20
|
|
20
21
|
export interface GetValueHandlerComponents {
|
@@ -32,7 +33,7 @@ export class GetValueHandler implements DHTMessageHandler {
|
|
32
33
|
|
33
34
|
constructor (components: GetValueHandlerComponents, init: GetValueHandlerInit) {
|
34
35
|
this.log = components.logger.forComponent(`${init.logPrefix}:rpc:handlers:get-value`)
|
35
|
-
this.datastorePrefix =
|
36
|
+
this.datastorePrefix = `${init.datastorePrefix}/record`
|
36
37
|
this.peerStore = components.peerStore
|
37
38
|
this.datastore = components.datastore
|
38
39
|
this.peerRouting = init.peerRouting
|