@libp2p/kad-dht 10.0.14 → 10.0.15-97ab31c0c
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 +0 -4
- package/dist/index.min.js +18 -18
- 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.js +1 -2
- package/dist/src/message/index.js.map +1 -1
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +1 -2
- 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 +22 -20
- 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 +1 -2
- package/src/network.ts +2 -4
- 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
|
@@ -2,6 +2,7 @@ import { Message } from '../../message/index.js';
|
|
|
2
2
|
import { Libp2pRecord } from '../../record/index.js';
|
|
3
3
|
import type { PeerRouting } from '../../peer-routing/index.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 { PeerStore } from '@libp2p/interface/peer-store';
|
|
7
8
|
import type { Datastore } from 'interface-datastore';
|
|
@@ -11,10 +12,13 @@ export interface GetValueHandlerInit {
|
|
|
11
12
|
export interface GetValueHandlerComponents {
|
|
12
13
|
peerStore: PeerStore;
|
|
13
14
|
datastore: Datastore;
|
|
15
|
+
logger: ComponentLogger;
|
|
14
16
|
}
|
|
15
17
|
export declare class GetValueHandler implements DHTMessageHandler {
|
|
16
|
-
private readonly
|
|
18
|
+
private readonly peerStore;
|
|
19
|
+
private readonly datastore;
|
|
17
20
|
private readonly peerRouting;
|
|
21
|
+
private readonly log;
|
|
18
22
|
constructor(components: GetValueHandlerComponents, init: GetValueHandlerInit);
|
|
19
23
|
handle(peerId: PeerId, msg: Message): Promise<Message>;
|
|
20
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAgB,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,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;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;CACzB;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;gBAEf,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAOvE,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAuD7D;;;;;OAKG;IACG,oBAAoB,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAiChF"}
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
3
2
|
import { MAX_RECORD_AGE } from '../../constants.js';
|
|
4
3
|
import { Message, MESSAGE_TYPE } from '../../message/index.js';
|
|
5
4
|
import { Libp2pRecord } from '../../record/index.js';
|
|
6
5
|
import { bufferToRecordKey, isPublicKeyKey, fromPublicKeyKey } from '../../utils.js';
|
|
7
|
-
const log = logger('libp2p:kad-dht:rpc:handlers:get-value');
|
|
8
6
|
export class GetValueHandler {
|
|
9
|
-
|
|
7
|
+
peerStore;
|
|
8
|
+
datastore;
|
|
10
9
|
peerRouting;
|
|
10
|
+
log;
|
|
11
11
|
constructor(components, init) {
|
|
12
|
-
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
12
|
+
this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:get-value');
|
|
13
|
+
this.peerStore = components.peerStore;
|
|
14
|
+
this.datastore = components.datastore;
|
|
15
|
+
this.peerRouting = init.peerRouting;
|
|
15
16
|
}
|
|
16
17
|
async handle(peerId, msg) {
|
|
17
18
|
const key = msg.key;
|
|
18
|
-
log('%p asked for key %b', peerId, key);
|
|
19
|
+
this.log('%p asked for key %b', peerId, key);
|
|
19
20
|
if (key == null || key.length === 0) {
|
|
20
21
|
throw new CodeError('Invalid key', 'ERR_INVALID_KEY');
|
|
21
22
|
}
|
|
22
23
|
const response = new Message(MESSAGE_TYPE.GET_VALUE, key, msg.clusterLevel);
|
|
23
24
|
if (isPublicKeyKey(key)) {
|
|
24
|
-
log('is public key');
|
|
25
|
+
this.log('is public key');
|
|
25
26
|
const idFromKey = fromPublicKeyKey(key);
|
|
26
27
|
let pubKey;
|
|
27
28
|
try {
|
|
28
|
-
const peer = await this.
|
|
29
|
+
const peer = await this.peerStore.get(idFromKey);
|
|
29
30
|
if (peer.id.publicKey == null) {
|
|
30
31
|
throw new CodeError('No public key found in key book', 'ERR_NOT_FOUND');
|
|
31
32
|
}
|
|
@@ -37,7 +38,7 @@ export class GetValueHandler {
|
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
if (pubKey != null) {
|
|
40
|
-
log('returning found public key');
|
|
41
|
+
this.log('returning found public key');
|
|
41
42
|
response.record = new Libp2pRecord(key, pubKey, new Date());
|
|
42
43
|
return response;
|
|
43
44
|
}
|
|
@@ -47,11 +48,11 @@ export class GetValueHandler {
|
|
|
47
48
|
this.peerRouting.getCloserPeersOffline(msg.key, peerId)
|
|
48
49
|
]);
|
|
49
50
|
if (record != null) {
|
|
50
|
-
log('had record for %b in local datastore', key);
|
|
51
|
+
this.log('had record for %b in local datastore', key);
|
|
51
52
|
response.record = record;
|
|
52
53
|
}
|
|
53
54
|
if (closer.length > 0) {
|
|
54
|
-
log('had %s closer peers in routing table', closer.length);
|
|
55
|
+
this.log('had %s closer peers in routing table', closer.length);
|
|
55
56
|
response.closerPeers = closer;
|
|
56
57
|
}
|
|
57
58
|
return response;
|
|
@@ -63,12 +64,12 @@ export class GetValueHandler {
|
|
|
63
64
|
* - it was received less than `MAX_RECORD_AGE` ago.
|
|
64
65
|
*/
|
|
65
66
|
async _checkLocalDatastore(key) {
|
|
66
|
-
log('checkLocalDatastore looking for %b', key);
|
|
67
|
+
this.log('checkLocalDatastore looking for %b', key);
|
|
67
68
|
const dsKey = bufferToRecordKey(key);
|
|
68
69
|
// Fetch value from ds
|
|
69
70
|
let rawRecord;
|
|
70
71
|
try {
|
|
71
|
-
rawRecord = await this.
|
|
72
|
+
rawRecord = await this.datastore.get(dsKey);
|
|
72
73
|
}
|
|
73
74
|
catch (err) {
|
|
74
75
|
if (err.code === 'ERR_NOT_FOUND') {
|
|
@@ -85,7 +86,7 @@ export class GetValueHandler {
|
|
|
85
86
|
if (record.timeReceived == null ||
|
|
86
87
|
Date.now() - record.timeReceived.getTime() > MAX_RECORD_AGE) {
|
|
87
88
|
// If record is bad delete it and return
|
|
88
|
-
await this.
|
|
89
|
+
await this.datastore.delete(dsKey);
|
|
89
90
|
return undefined;
|
|
90
91
|
}
|
|
91
92
|
// Record is valid
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EACL,cAAc,EACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAkBpF,MAAM,OAAO,eAAe;IACT,SAAS,CAAW;IACpB,SAAS,CAAW;IACpB,WAAW,CAAa;IACxB,GAAG,CAAQ;IAE5B,YAAa,UAAqC,EAAE,IAAyB;QAC3E,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAA;QAClF,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;QACrC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;QAEnB,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QAE5C,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,MAAM,IAAI,SAAS,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;SACtD;QAED,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;QAE3E,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YACzB,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;YACvC,IAAI,MAA8B,CAAA;YAElC,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAEhD,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;oBAC7B,MAAM,IAAI,SAAS,CAAC,iCAAiC,EAAE,eAAe,CAAC,CAAA;iBACxE;gBAED,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAA;aAC3B;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE;oBAChC,MAAM,GAAG,CAAA;iBACV;aACF;YAED,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;gBACtC,QAAQ,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;gBAC3D,OAAO,QAAQ,CAAA;aAChB;SACF;QAED,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;SACxD,CAAC,CAAA;QAEF,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;YACrD,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;SACzB;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YAC/D,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAA;SAC9B;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CAAE,GAAe;QACzC,IAAI,CAAC,GAAG,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAA;QACnD,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAEpC,sBAAsB;QACtB,IAAI,SAAS,CAAA;QACb,IAAI;YACF,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;SAC5C;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE;gBAChC,OAAO,SAAS,CAAA;aACjB;YACD,MAAM,GAAG,CAAA;SACV;QAED,wCAAwC;QACxC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAElD,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,MAAM,IAAI,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAA;SAC5D;QAED,4DAA4D;QAC5D,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI;YAC7B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,cAAc,EAAE;YAC7D,wCAAwC;YACxC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAClC,OAAO,SAAS,CAAA;SACjB;QAED,kBAAkB;QAClB,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { Message } from '../../message/index.js';
|
|
2
2
|
import type { DHTMessageHandler } from '../index.js';
|
|
3
|
+
import type { ComponentLogger } from '@libp2p/interface';
|
|
3
4
|
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
5
|
+
export interface PingComponents {
|
|
6
|
+
logger: ComponentLogger;
|
|
7
|
+
}
|
|
4
8
|
export declare class PingHandler implements DHTMessageHandler {
|
|
9
|
+
private readonly log;
|
|
10
|
+
constructor(components: PingComponents);
|
|
5
11
|
handle(peerId: PeerId, msg: Message): Promise<Message>;
|
|
6
12
|
}
|
|
7
13
|
//# sourceMappingURL=ping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/ping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/ping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,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,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,WAAY,YAAW,iBAAiB;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,cAAc;IAIjC,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9D"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
|
-
const log = logger('libp2p:kad-dht:rpc:handlers:ping');
|
|
3
1
|
export class PingHandler {
|
|
2
|
+
log;
|
|
3
|
+
constructor(components) {
|
|
4
|
+
this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:ping');
|
|
5
|
+
}
|
|
4
6
|
async handle(peerId, msg) {
|
|
5
|
-
log('ping from %p', peerId);
|
|
7
|
+
this.log('ping from %p', peerId);
|
|
6
8
|
return msg;
|
|
7
9
|
}
|
|
8
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/ping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/ping.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,WAAW;IACL,GAAG,CAAQ;IAE5B,YAAa,UAA0B;QACrC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,kCAAkC,CAAC,CAAA;IAC/E,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAChC,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Validators } from '../../index.js';
|
|
2
2
|
import type { Message } from '../../message/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 { Datastore } from 'interface-datastore';
|
|
6
7
|
export interface PutValueHandlerInit {
|
|
@@ -8,11 +9,12 @@ export interface PutValueHandlerInit {
|
|
|
8
9
|
}
|
|
9
10
|
export interface PutValueHandlerComponents {
|
|
10
11
|
datastore: Datastore;
|
|
12
|
+
logger: ComponentLogger;
|
|
11
13
|
}
|
|
12
14
|
export declare class PutValueHandler implements DHTMessageHandler {
|
|
13
|
-
private readonly log;
|
|
14
15
|
private readonly components;
|
|
15
16
|
private readonly validators;
|
|
17
|
+
private readonly log;
|
|
16
18
|
constructor(components: PutValueHandlerComponents, init: PutValueHandlerInit);
|
|
17
19
|
handle(peerId: PeerId, msg: Message): Promise<Message>;
|
|
18
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"put-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"put-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,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,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAA;CACvB;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;gBAEf,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAQvE,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA0B9D"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
3
2
|
import { verifyRecord } from '../../record/validators.js';
|
|
4
3
|
import { bufferToRecordKey } from '../../utils.js';
|
|
5
4
|
export class PutValueHandler {
|
|
6
|
-
log;
|
|
7
5
|
components;
|
|
8
6
|
validators;
|
|
7
|
+
log;
|
|
9
8
|
constructor(components, init) {
|
|
10
9
|
const { validators } = init;
|
|
11
10
|
this.components = components;
|
|
12
|
-
this.log = logger('libp2p:kad-dht:rpc:handlers:put-value');
|
|
11
|
+
this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:put-value');
|
|
13
12
|
this.validators = validators;
|
|
14
13
|
}
|
|
15
14
|
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,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"put-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAiBlD,MAAM,OAAO,eAAe;IACT,UAAU,CAA2B;IACrC,UAAU,CAAY;IACtB,GAAG,CAAQ;IAE5B,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,uCAAuC,CAAC,CAAA;QAClF,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,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QAEzB,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,MAAM,MAAM,GAAG,sBAAsB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;YAExD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtB,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;SAChD;QAED,IAAI;YACF,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAE3C,MAAM,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAA;YAChC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC7E,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;SAC1E;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,CAAC,GAAG,CAAC,iDAAiD,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;SACtE;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAE3D,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,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,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;AAEpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAE9E,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,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,aAAc,SAAQ,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B;CAEpJ;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO;IAerD;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAkBhF;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAqClD"}
|
package/dist/src/rpc/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
1
|
import * as lp from 'it-length-prefixed';
|
|
3
2
|
import { pipe } from 'it-pipe';
|
|
4
3
|
import { Message, MESSAGE_TYPE } from '../message/index.js';
|
|
@@ -14,15 +13,15 @@ export class RPC {
|
|
|
14
13
|
log;
|
|
15
14
|
constructor(components, init) {
|
|
16
15
|
const { providers, peerRouting, validators, lan } = init;
|
|
17
|
-
this.log = logger('libp2p:kad-dht:rpc');
|
|
16
|
+
this.log = components.logger.forComponent('libp2p:kad-dht:rpc');
|
|
18
17
|
this.routingTable = init.routingTable;
|
|
19
18
|
this.handlers = {
|
|
20
19
|
[MESSAGE_TYPE.GET_VALUE]: new GetValueHandler(components, { peerRouting }),
|
|
21
20
|
[MESSAGE_TYPE.PUT_VALUE]: new PutValueHandler(components, { validators }),
|
|
22
21
|
[MESSAGE_TYPE.FIND_NODE]: new FindNodeHandler(components, { peerRouting, lan }),
|
|
23
|
-
[MESSAGE_TYPE.ADD_PROVIDER]: new AddProviderHandler({ providers }),
|
|
22
|
+
[MESSAGE_TYPE.ADD_PROVIDER]: new AddProviderHandler(components, { providers }),
|
|
24
23
|
[MESSAGE_TYPE.GET_PROVIDERS]: new GetProvidersHandler(components, { peerRouting, providers, lan }),
|
|
25
|
-
[MESSAGE_TYPE.PING]: new PingHandler()
|
|
24
|
+
[MESSAGE_TYPE.PING]: new PingHandler(components)
|
|
26
25
|
};
|
|
27
26
|
}
|
|
28
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topology-listener.d.ts","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"topology-listener.d.ts","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAA;AAEzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE5D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB,CAAC,sBAAsB,CAAE,YAAW,SAAS;IAClG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAC,CAAQ;gBAEf,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB;IAWrE,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAkB7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAS7B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events';
|
|
2
|
-
import { logger } from '@libp2p/logger';
|
|
3
2
|
/**
|
|
4
3
|
* Receives notifications of new peers joining the network that support the DHT protocol
|
|
5
4
|
*/
|
|
@@ -13,7 +12,7 @@ export class TopologyListener extends TypedEventEmitter {
|
|
|
13
12
|
super();
|
|
14
13
|
const { protocol, lan } = init;
|
|
15
14
|
this.components = components;
|
|
16
|
-
this.log = logger(`libp2p:kad-dht:topology-listener:${lan ? 'lan' : 'wan'}`);
|
|
15
|
+
this.log = components.logger.forComponent(`libp2p:kad-dht:topology-listener:${lan ? 'lan' : 'wan'}`);
|
|
17
16
|
this.running = false;
|
|
18
17
|
this.protocol = protocol;
|
|
19
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topology-listener.js","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"topology-listener.js","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAezE;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,iBAAyC;IAC5D,GAAG,CAAQ;IACX,UAAU,CAAkB;IAC5B,QAAQ,CAAQ;IACzB,OAAO,CAAS;IAChB,WAAW,CAAS;IAE5B,YAAa,UAA4B,EAAE,IAA0B;QACnE,KAAK,EAAE,CAAA;QAEP,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QAE9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,oCAAoC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QACpG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAM;SACP;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,kCAAkC;QAClC,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,mCAAmC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACpE,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE;oBACzC,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC,CAAA;YACL,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QAEpB,mCAAmC;QACnC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACtD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;SAC7B;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/kad-dht",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.15-97ab31c0c",
|
|
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/master/packages/kad-dht#readme",
|
|
@@ -52,13 +52,12 @@
|
|
|
52
52
|
"dep-check": "aegir dep-check"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@libp2p/crypto": "
|
|
56
|
-
"@libp2p/interface": "
|
|
57
|
-
"@libp2p/interface-internal": "
|
|
58
|
-
"@libp2p/
|
|
59
|
-
"@libp2p/peer-
|
|
60
|
-
"@
|
|
61
|
-
"@multiformats/multiaddr": "^12.1.5",
|
|
55
|
+
"@libp2p/crypto": "2.0.8-97ab31c0c",
|
|
56
|
+
"@libp2p/interface": "0.1.6-97ab31c0c",
|
|
57
|
+
"@libp2p/interface-internal": "0.1.9-97ab31c0c",
|
|
58
|
+
"@libp2p/peer-collections": "4.0.8-97ab31c0c",
|
|
59
|
+
"@libp2p/peer-id": "3.0.6-97ab31c0c",
|
|
60
|
+
"@multiformats/multiaddr": "^12.1.10",
|
|
62
61
|
"@types/sinon": "^17.0.0",
|
|
63
62
|
"abortable-iterator": "^5.0.1",
|
|
64
63
|
"any-signal": "^4.1.1",
|
|
@@ -67,20 +66,21 @@
|
|
|
67
66
|
"interface-datastore": "^8.2.0",
|
|
68
67
|
"it-all": "^3.0.2",
|
|
69
68
|
"it-drain": "^3.0.2",
|
|
70
|
-
"it-first": "^3.0.
|
|
69
|
+
"it-first": "^3.0.3",
|
|
71
70
|
"it-length": "^3.0.1",
|
|
72
|
-
"it-length-prefixed": "^9.0.
|
|
73
|
-
"it-map": "^3.0.
|
|
71
|
+
"it-length-prefixed": "^9.0.3",
|
|
72
|
+
"it-map": "^3.0.4",
|
|
74
73
|
"it-merge": "^3.0.0",
|
|
75
74
|
"it-parallel": "^3.0.0",
|
|
76
75
|
"it-pipe": "^3.0.1",
|
|
76
|
+
"it-pushable": "^3.2.1",
|
|
77
77
|
"it-stream-types": "^2.0.1",
|
|
78
78
|
"it-take": "^3.0.1",
|
|
79
|
-
"multiformats": "^12.
|
|
79
|
+
"multiformats": "^12.1.3",
|
|
80
80
|
"p-defer": "^4.0.0",
|
|
81
81
|
"p-event": "^6.0.0",
|
|
82
|
-
"p-queue": "^7.
|
|
83
|
-
"private-ip": "^3.0.
|
|
82
|
+
"p-queue": "^7.4.1",
|
|
83
|
+
"private-ip": "^3.0.1",
|
|
84
84
|
"progress-events": "^1.0.0",
|
|
85
85
|
"protons-runtime": "^5.0.0",
|
|
86
86
|
"uint8-varint": "^2.0.0",
|
|
@@ -88,9 +88,10 @@
|
|
|
88
88
|
"uint8arrays": "^4.0.6"
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
|
-
"@libp2p/interface-compliance-tests": "
|
|
92
|
-
"@libp2p/
|
|
93
|
-
"@libp2p/peer-
|
|
91
|
+
"@libp2p/interface-compliance-tests": "4.1.5-97ab31c0c",
|
|
92
|
+
"@libp2p/logger": "3.1.0-97ab31c0c",
|
|
93
|
+
"@libp2p/peer-id-factory": "3.0.8-97ab31c0c",
|
|
94
|
+
"@libp2p/peer-store": "9.0.9-97ab31c0c",
|
|
94
95
|
"@types/lodash.random": "^3.2.6",
|
|
95
96
|
"@types/lodash.range": "^3.2.6",
|
|
96
97
|
"@types/which": "^3.0.0",
|
|
@@ -99,14 +100,15 @@
|
|
|
99
100
|
"delay": "^6.0.0",
|
|
100
101
|
"execa": "^8.0.1",
|
|
101
102
|
"it-filter": "^3.0.1",
|
|
102
|
-
"it-last": "^3.0.
|
|
103
|
+
"it-last": "^3.0.3",
|
|
103
104
|
"lodash.random": "^3.2.0",
|
|
104
105
|
"lodash.range": "^3.2.0",
|
|
105
|
-
"p-retry": "^6.
|
|
106
|
+
"p-retry": "^6.1.0",
|
|
106
107
|
"p-wait-for": "^5.0.2",
|
|
107
|
-
"protons": "^7.0
|
|
108
|
+
"protons": "^7.3.0",
|
|
108
109
|
"sinon": "^17.0.0",
|
|
109
110
|
"ts-sinon": "^2.0.2",
|
|
111
|
+
"wherearewe": "^2.0.1",
|
|
110
112
|
"which": "^4.0.0"
|
|
111
113
|
},
|
|
112
114
|
"browser": {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface/errors'
|
|
2
|
-
import { logger } from '@libp2p/logger'
|
|
3
2
|
import map from 'it-map'
|
|
4
3
|
import parallel from 'it-parallel'
|
|
5
4
|
import { pipe } from 'it-pipe'
|
|
@@ -21,8 +20,7 @@ import type { Network } from '../network.js'
|
|
|
21
20
|
import type { PeerRouting } from '../peer-routing/index.js'
|
|
22
21
|
import type { QueryManager } from '../query/manager.js'
|
|
23
22
|
import type { QueryFunc } from '../query/types.js'
|
|
24
|
-
import type { AbortOptions } from '@libp2p/interface'
|
|
25
|
-
import type { Logger } from '@libp2p/logger'
|
|
23
|
+
import type { AbortOptions, Logger } from '@libp2p/interface'
|
|
26
24
|
|
|
27
25
|
export interface ContentFetchingInit {
|
|
28
26
|
validators: Validators
|
|
@@ -46,7 +44,7 @@ export class ContentFetching {
|
|
|
46
44
|
const { validators, selectors, peerRouting, queryManager, network, lan } = init
|
|
47
45
|
|
|
48
46
|
this.components = components
|
|
49
|
-
this.log = logger(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:content-fetching`)
|
|
47
|
+
this.log = components.logger.forComponent(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:content-fetching`)
|
|
50
48
|
this.validators = validators
|
|
51
49
|
this.selectors = selectors
|
|
52
50
|
this.peerRouting = peerRouting
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger'
|
|
2
1
|
import map from 'it-map'
|
|
3
2
|
import parallel from 'it-parallel'
|
|
4
3
|
import { pipe } from 'it-pipe'
|
|
@@ -16,8 +15,8 @@ import type { Providers } from '../providers.js'
|
|
|
16
15
|
import type { QueryManager } from '../query/manager.js'
|
|
17
16
|
import type { QueryFunc } from '../query/types.js'
|
|
18
17
|
import type { RoutingTable } from '../routing-table/index.js'
|
|
18
|
+
import type { Logger } from '@libp2p/interface'
|
|
19
19
|
import type { PeerInfo } from '@libp2p/interface/peer-info'
|
|
20
|
-
import type { Logger } from '@libp2p/logger'
|
|
21
20
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
22
21
|
import type { CID } from 'multiformats/cid'
|
|
23
22
|
|
|
@@ -43,7 +42,7 @@ export class ContentRouting {
|
|
|
43
42
|
const { network, peerRouting, queryManager, routingTable, providers, lan } = init
|
|
44
43
|
|
|
45
44
|
this.components = components
|
|
46
|
-
this.log = logger(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:content-routing`)
|
|
45
|
+
this.log = components.logger.forComponent(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}:content-routing`)
|
|
47
46
|
this.network = network
|
|
48
47
|
this.peerRouting = peerRouting
|
|
49
48
|
this.queryManager = queryManager
|
|
@@ -64,8 +63,7 @@ export class ContentRouting {
|
|
|
64
63
|
const msg = new Message(MESSAGE_TYPE.ADD_PROVIDER, key.multihash.bytes, 0)
|
|
65
64
|
msg.providerPeers = [{
|
|
66
65
|
id: this.components.peerId,
|
|
67
|
-
multiaddrs
|
|
68
|
-
protocols: []
|
|
66
|
+
multiaddrs
|
|
69
67
|
}]
|
|
70
68
|
|
|
71
69
|
let sent = 0
|
|
@@ -140,8 +138,7 @@ export class ContentRouting {
|
|
|
140
138
|
|
|
141
139
|
providers.push({
|
|
142
140
|
id: peerId,
|
|
143
|
-
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
|
144
|
-
protocols: peer.protocols
|
|
141
|
+
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
|
145
142
|
})
|
|
146
143
|
} catch (err: any) {
|
|
147
144
|
if (err.code !== 'ERR_NOT_FOUND') {
|
package/src/dual-kad-dht.ts
CHANGED
|
@@ -3,20 +3,18 @@ import { CodeError } from '@libp2p/interface/errors'
|
|
|
3
3
|
import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events'
|
|
4
4
|
import { type PeerDiscovery, peerDiscovery, type PeerDiscoveryEvents } from '@libp2p/interface/peer-discovery'
|
|
5
5
|
import { type PeerRouting, peerRouting } from '@libp2p/interface/peer-routing'
|
|
6
|
-
import { logger } from '@libp2p/logger'
|
|
7
6
|
import drain from 'it-drain'
|
|
8
7
|
import merge from 'it-merge'
|
|
9
8
|
import isPrivate from 'private-ip'
|
|
10
9
|
import { DefaultKadDHT } from './kad-dht.js'
|
|
11
10
|
import { queryErrorEvent } from './query/events.js'
|
|
12
11
|
import type { DualKadDHT, KadDHT, KadDHTComponents, KadDHTInit, QueryEvent, QueryOptions } from './index.js'
|
|
12
|
+
import type { Logger } from '@libp2p/interface'
|
|
13
13
|
import type { PeerId } from '@libp2p/interface/peer-id'
|
|
14
14
|
import type { PeerInfo } from '@libp2p/interface/peer-info'
|
|
15
15
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
16
16
|
import type { CID } from 'multiformats/cid'
|
|
17
17
|
|
|
18
|
-
const log = logger('libp2p:kad-dht')
|
|
19
|
-
|
|
20
18
|
/**
|
|
21
19
|
* Wrapper class to convert events into returned values
|
|
22
20
|
*/
|
|
@@ -127,11 +125,13 @@ export class DefaultDualKadDHT extends TypedEventEmitter<PeerDiscoveryEvents> im
|
|
|
127
125
|
public readonly components: KadDHTComponents
|
|
128
126
|
private readonly contentRouting: ContentRouting
|
|
129
127
|
private readonly peerRouting: PeerRouting
|
|
128
|
+
private readonly log: Logger
|
|
130
129
|
|
|
131
130
|
constructor (components: KadDHTComponents, init: KadDHTInit = {}) {
|
|
132
131
|
super()
|
|
133
132
|
|
|
134
133
|
this.components = components
|
|
134
|
+
this.log = components.logger.forComponent('libp2p:kad-dht')
|
|
135
135
|
|
|
136
136
|
this.wan = new DefaultKadDHT(components, {
|
|
137
137
|
protocolPrefix: '/ipfs',
|
|
@@ -164,7 +164,7 @@ export class DefaultDualKadDHT extends TypedEventEmitter<PeerDiscoveryEvents> im
|
|
|
164
164
|
// mode when the node's peer data is updated with publicly dialable addresses
|
|
165
165
|
if (init.clientMode == null) {
|
|
166
166
|
components.events.addEventListener('self:peer:update', (evt) => {
|
|
167
|
-
log('received update of self-peer info')
|
|
167
|
+
this.log('received update of self-peer info')
|
|
168
168
|
const hasPublicAddress = evt.detail.peer.addresses
|
|
169
169
|
.some(({ multiaddr }) => multiaddrIsPublic(multiaddr))
|
|
170
170
|
|
|
@@ -177,7 +177,7 @@ export class DefaultDualKadDHT extends TypedEventEmitter<PeerDiscoveryEvents> im
|
|
|
177
177
|
}
|
|
178
178
|
})
|
|
179
179
|
.catch(err => {
|
|
180
|
-
log.error('error setting dht server mode', err)
|
|
180
|
+
this.log.error('error setting dht server mode', err)
|
|
181
181
|
})
|
|
182
182
|
})
|
|
183
183
|
}
|
|
@@ -322,7 +322,7 @@ export class DefaultDualKadDHT extends TypedEventEmitter<PeerDiscoveryEvents> im
|
|
|
322
322
|
}
|
|
323
323
|
|
|
324
324
|
if (event.name === 'PEER_RESPONSE' && event.messageName === 'ADD_PROVIDER') {
|
|
325
|
-
log('sent provider record for %s to %p', key, event.from)
|
|
325
|
+
this.log('sent provider record for %s to %p', key, event.from)
|
|
326
326
|
success++
|
|
327
327
|
}
|
|
328
328
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DefaultDualKadDHT } from './dual-kad-dht.js'
|
|
2
2
|
import type { ProvidersInit } from './providers.js'
|
|
3
|
-
import type { Libp2pEvents, AbortOptions } from '@libp2p/interface'
|
|
3
|
+
import type { Libp2pEvents, AbortOptions, ComponentLogger } from '@libp2p/interface'
|
|
4
4
|
import type { TypedEventTarget } from '@libp2p/interface/events'
|
|
5
5
|
import type { Metrics } from '@libp2p/interface/metrics'
|
|
6
6
|
import type { PeerId } from '@libp2p/interface/peer-id'
|
|
@@ -315,6 +315,7 @@ export interface KadDHTComponents {
|
|
|
315
315
|
connectionManager: ConnectionManager
|
|
316
316
|
datastore: Datastore
|
|
317
317
|
events: TypedEventTarget<Libp2pEvents>
|
|
318
|
+
logger: ComponentLogger
|
|
318
319
|
}
|
|
319
320
|
|
|
320
321
|
export function kadDHT (init?: KadDHTInit): (components: KadDHTComponents) => DualKadDHT {
|
package/src/kad-dht.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events'
|
|
2
|
-
import { type Logger, logger } from '@libp2p/logger'
|
|
3
2
|
import pDefer from 'p-defer'
|
|
4
3
|
import { PROTOCOL_DHT, PROTOCOL_PREFIX, LAN_PREFIX } from './constants.js'
|
|
5
4
|
import { ContentFetching } from './content-fetching/index.js'
|
|
@@ -20,6 +19,7 @@ import {
|
|
|
20
19
|
removePublicAddresses
|
|
21
20
|
} from './utils.js'
|
|
22
21
|
import type { KadDHTComponents, KadDHTInit, QueryOptions, Validators, Selectors, KadDHT, QueryEvent } from './index.js'
|
|
22
|
+
import type { Logger } from '@libp2p/interface'
|
|
23
23
|
import type { PeerDiscoveryEvents } from '@libp2p/interface/peer-discovery'
|
|
24
24
|
import type { PeerId } from '@libp2p/interface/peer-id'
|
|
25
25
|
import type { PeerInfo } from '@libp2p/interface/peer-info'
|
|
@@ -88,7 +88,7 @@ export class DefaultKadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implem
|
|
|
88
88
|
this.running = false
|
|
89
89
|
this.components = components
|
|
90
90
|
this.lan = Boolean(lan)
|
|
91
|
-
this.log = logger(`libp2p:kad-dht:${lan === true ? 'lan' : 'wan'}`)
|
|
91
|
+
this.log = components.logger.forComponent(`libp2p:kad-dht:${lan === true ? 'lan' : 'wan'}`)
|
|
92
92
|
this.protocol = `${protocolPrefix ?? PROTOCOL_PREFIX}${lan === true ? LAN_PREFIX : ''}${PROTOCOL_DHT}`
|
|
93
93
|
this.kBucketSize = kBucketSize ?? 20
|
|
94
94
|
this.clientMode = clientMode ?? true
|
|
@@ -159,7 +159,7 @@ export class DefaultKadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implem
|
|
|
159
159
|
providers: this.providers,
|
|
160
160
|
lan: this.lan
|
|
161
161
|
})
|
|
162
|
-
this.routingTableRefresh = new RoutingTableRefresh({
|
|
162
|
+
this.routingTableRefresh = new RoutingTableRefresh(components, {
|
|
163
163
|
peerRouting: this.peerRouting,
|
|
164
164
|
routingTable: this.routingTable,
|
|
165
165
|
lan: this.lan
|
|
@@ -218,7 +218,7 @@ export class DefaultKadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implem
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
async onPeerConnect (peerData: PeerInfo): Promise<void> {
|
|
221
|
-
this.log('peer %p connected
|
|
221
|
+
this.log('peer %p connected', peerData.id)
|
|
222
222
|
|
|
223
223
|
if (this.lan) {
|
|
224
224
|
peerData = removePublicAddresses(peerData)
|
package/src/message/index.ts
CHANGED
|
@@ -104,7 +104,6 @@ function fromPbPeer (peer: PBMessage.Peer): PeerInfo {
|
|
|
104
104
|
|
|
105
105
|
return {
|
|
106
106
|
id: peerIdFromBytes(peer.id),
|
|
107
|
-
multiaddrs: (peer.addrs ?? []).map((a) => multiaddr(a))
|
|
108
|
-
protocols: []
|
|
107
|
+
multiaddrs: (peer.addrs ?? []).map((a) => multiaddr(a))
|
|
109
108
|
}
|
|
110
109
|
}
|