@libp2p/kad-dht 10.0.14 → 10.0.15-0b4a2ee79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -5
- package/dist/index.min.js +20 -20
- package/dist/src/content-fetching/index.d.ts.map +1 -1
- package/dist/src/content-fetching/index.js +1 -2
- package/dist/src/content-fetching/index.js.map +1 -1
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +3 -6
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/dual-kad-dht.d.ts +1 -0
- package/dist/src/dual-kad-dht.d.ts.map +1 -1
- package/dist/src/dual-kad-dht.js +5 -5
- package/dist/src/dual-kad-dht.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/kad-dht.d.ts.map +1 -1
- package/dist/src/kad-dht.js +3 -4
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/message/index.d.ts +2 -0
- package/dist/src/message/index.d.ts.map +1 -1
- package/dist/src/message/index.js +7 -2
- package/dist/src/message/index.js.map +1 -1
- package/dist/src/network.d.ts +3 -4
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +11 -25
- package/dist/src/network.js.map +1 -1
- package/dist/src/peer-routing/index.d.ts +2 -1
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +15 -17
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/providers.d.ts +4 -1
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +17 -17
- package/dist/src/providers.js.map +1 -1
- package/dist/src/query/manager.d.ts +5 -2
- package/dist/src/query/manager.d.ts.map +1 -1
- package/dist/src/query/manager.js +13 -12
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/query/query-path.d.ts +1 -1
- package/dist/src/query/query-path.d.ts.map +1 -1
- package/dist/src/query/query-path.js +2 -59
- package/dist/src/query/query-path.js.map +1 -1
- package/dist/src/query/utils.d.ts +7 -0
- package/dist/src/query/utils.d.ts.map +1 -0
- package/dist/src/query/utils.js +53 -0
- package/dist/src/query/utils.js.map +1 -0
- package/dist/src/query-self.d.ts +3 -1
- package/dist/src/query-self.d.ts.map +1 -1
- package/dist/src/query-self.js +4 -5
- package/dist/src/query-self.js.map +1 -1
- package/dist/src/routing-table/index.d.ts +2 -0
- package/dist/src/routing-table/index.d.ts.map +1 -1
- package/dist/src/routing-table/index.js +1 -2
- package/dist/src/routing-table/index.js.map +1 -1
- package/dist/src/routing-table/refresh.d.ts +5 -1
- package/dist/src/routing-table/refresh.d.ts.map +1 -1
- package/dist/src/routing-table/refresh.js +2 -3
- package/dist/src/routing-table/refresh.js.map +1 -1
- package/dist/src/rpc/handlers/add-provider.d.ts +6 -1
- package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -1
- package/dist/src/rpc/handlers/add-provider.js +9 -10
- package/dist/src/rpc/handlers/add-provider.js.map +1 -1
- package/dist/src/rpc/handlers/find-node.d.ts +5 -1
- package/dist/src/rpc/handlers/find-node.d.ts.map +1 -1
- package/dist/src/rpc/handlers/find-node.js +11 -10
- package/dist/src/rpc/handlers/find-node.js.map +1 -1
- package/dist/src/rpc/handlers/get-providers.d.ts +4 -1
- package/dist/src/rpc/handlers/get-providers.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-providers.js +8 -9
- package/dist/src/rpc/handlers/get-providers.js.map +1 -1
- package/dist/src/rpc/handlers/get-value.d.ts +5 -1
- package/dist/src/rpc/handlers/get-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-value.js +16 -15
- package/dist/src/rpc/handlers/get-value.js.map +1 -1
- package/dist/src/rpc/handlers/ping.d.ts +6 -0
- package/dist/src/rpc/handlers/ping.d.ts.map +1 -1
- package/dist/src/rpc/handlers/ping.js +5 -3
- package/dist/src/rpc/handlers/ping.js.map +1 -1
- package/dist/src/rpc/handlers/put-value.d.ts +3 -1
- package/dist/src/rpc/handlers/put-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/put-value.js +2 -3
- package/dist/src/rpc/handlers/put-value.js.map +1 -1
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/dist/src/rpc/index.js +3 -4
- package/dist/src/rpc/index.js.map +1 -1
- package/dist/src/topology-listener.d.ts.map +1 -1
- package/dist/src/topology-listener.js +1 -2
- package/dist/src/topology-listener.js.map +1 -1
- package/package.json +23 -22
- package/src/content-fetching/index.ts +2 -4
- package/src/content-routing/index.ts +4 -7
- package/src/dual-kad-dht.ts +6 -6
- package/src/index.ts +2 -1
- package/src/kad-dht.ts +4 -4
- package/src/message/index.ts +9 -2
- package/src/network.ts +14 -44
- package/src/peer-routing/index.ts +17 -19
- package/src/providers.ts +19 -18
- package/src/query/manager.ts +18 -16
- package/src/query/query-path.ts +3 -72
- package/src/query/utils.ts +65 -0
- package/src/query-self.ts +6 -5
- package/src/routing-table/index.ts +3 -3
- package/src/routing-table/refresh.ts +7 -4
- package/src/rpc/handlers/add-provider.ts +13 -10
- package/src/rpc/handlers/find-node.ts +13 -11
- package/src/rpc/handlers/get-providers.ts +10 -10
- package/src/rpc/handlers/get-value.ts +18 -17
- package/src/rpc/handlers/ping.ts +11 -3
- package/src/rpc/handlers/put-value.ts +4 -3
- package/src/rpc/index.ts +4 -4
- package/src/topology-listener.ts +2 -3
- package/dist/typedoc-urls.json +0 -55
|
@@ -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":"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"}
|
|
@@ -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,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/kad-dht",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.15-0b4a2ee79",
|
|
4
4
|
"description": "JavaScript implementation of the Kad-DHT for libp2p",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
|
-
"homepage": "https://github.com/libp2p/js-libp2p/tree/
|
|
6
|
+
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/kad-dht#readme",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/libp2p/js-libp2p.git"
|
|
@@ -52,35 +52,34 @@
|
|
|
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-0b4a2ee79",
|
|
56
|
+
"@libp2p/interface": "0.1.6-0b4a2ee79",
|
|
57
|
+
"@libp2p/interface-internal": "0.1.9-0b4a2ee79",
|
|
58
|
+
"@libp2p/peer-collections": "4.0.8-0b4a2ee79",
|
|
59
|
+
"@libp2p/peer-id": "3.0.6-0b4a2ee79",
|
|
60
|
+
"@multiformats/multiaddr": "^12.1.10",
|
|
62
61
|
"@types/sinon": "^17.0.0",
|
|
63
|
-
"abortable-iterator": "^5.0.1",
|
|
64
62
|
"any-signal": "^4.1.1",
|
|
65
63
|
"datastore-core": "^9.0.1",
|
|
66
64
|
"hashlru": "^2.3.0",
|
|
67
65
|
"interface-datastore": "^8.2.0",
|
|
68
66
|
"it-all": "^3.0.2",
|
|
69
67
|
"it-drain": "^3.0.2",
|
|
70
|
-
"it-first": "^3.0.1",
|
|
71
68
|
"it-length": "^3.0.1",
|
|
72
|
-
"it-length-prefixed": "^9.0.
|
|
73
|
-
"it-map": "^3.0.
|
|
69
|
+
"it-length-prefixed": "^9.0.3",
|
|
70
|
+
"it-map": "^3.0.4",
|
|
74
71
|
"it-merge": "^3.0.0",
|
|
75
72
|
"it-parallel": "^3.0.0",
|
|
76
73
|
"it-pipe": "^3.0.1",
|
|
74
|
+
"it-protobuf-stream": "^1.0.2",
|
|
75
|
+
"it-pushable": "^3.2.1",
|
|
77
76
|
"it-stream-types": "^2.0.1",
|
|
78
77
|
"it-take": "^3.0.1",
|
|
79
|
-
"multiformats": "^12.
|
|
78
|
+
"multiformats": "^12.1.3",
|
|
80
79
|
"p-defer": "^4.0.0",
|
|
81
80
|
"p-event": "^6.0.0",
|
|
82
|
-
"p-queue": "^7.
|
|
83
|
-
"private-ip": "^3.0.
|
|
81
|
+
"p-queue": "^7.4.1",
|
|
82
|
+
"private-ip": "^3.0.1",
|
|
84
83
|
"progress-events": "^1.0.0",
|
|
85
84
|
"protons-runtime": "^5.0.0",
|
|
86
85
|
"uint8-varint": "^2.0.0",
|
|
@@ -88,9 +87,10 @@
|
|
|
88
87
|
"uint8arrays": "^4.0.6"
|
|
89
88
|
},
|
|
90
89
|
"devDependencies": {
|
|
91
|
-
"@libp2p/interface-compliance-tests": "
|
|
92
|
-
"@libp2p/
|
|
93
|
-
"@libp2p/peer-
|
|
90
|
+
"@libp2p/interface-compliance-tests": "4.1.5-0b4a2ee79",
|
|
91
|
+
"@libp2p/logger": "3.1.0-0b4a2ee79",
|
|
92
|
+
"@libp2p/peer-id-factory": "3.0.8-0b4a2ee79",
|
|
93
|
+
"@libp2p/peer-store": "9.0.9-0b4a2ee79",
|
|
94
94
|
"@types/lodash.random": "^3.2.6",
|
|
95
95
|
"@types/lodash.range": "^3.2.6",
|
|
96
96
|
"@types/which": "^3.0.0",
|
|
@@ -99,14 +99,15 @@
|
|
|
99
99
|
"delay": "^6.0.0",
|
|
100
100
|
"execa": "^8.0.1",
|
|
101
101
|
"it-filter": "^3.0.1",
|
|
102
|
-
"it-last": "^3.0.
|
|
102
|
+
"it-last": "^3.0.3",
|
|
103
103
|
"lodash.random": "^3.2.0",
|
|
104
104
|
"lodash.range": "^3.2.0",
|
|
105
|
-
"p-retry": "^6.
|
|
105
|
+
"p-retry": "^6.1.0",
|
|
106
106
|
"p-wait-for": "^5.0.2",
|
|
107
|
-
"protons": "^7.0
|
|
107
|
+
"protons": "^7.3.0",
|
|
108
108
|
"sinon": "^17.0.0",
|
|
109
109
|
"ts-sinon": "^2.0.2",
|
|
110
|
+
"wherearewe": "^2.0.1",
|
|
110
111
|
"which": "^4.0.0"
|
|
111
112
|
},
|
|
112
113
|
"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
|
@@ -85,6 +85,14 @@ export class Message {
|
|
|
85
85
|
|
|
86
86
|
return msg
|
|
87
87
|
}
|
|
88
|
+
|
|
89
|
+
static encode (message: Message): Uint8Array {
|
|
90
|
+
return message.serialize()
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
static decode (buf: Uint8Array | Uint8ArrayList): Message {
|
|
94
|
+
return Message.deserialize(buf)
|
|
95
|
+
}
|
|
88
96
|
}
|
|
89
97
|
|
|
90
98
|
function toPbPeer (peer: PeerInfo): PBPeer {
|
|
@@ -104,7 +112,6 @@ function fromPbPeer (peer: PBMessage.Peer): PeerInfo {
|
|
|
104
112
|
|
|
105
113
|
return {
|
|
106
114
|
id: peerIdFromBytes(peer.id),
|
|
107
|
-
multiaddrs: (peer.addrs ?? []).map((a) => multiaddr(a))
|
|
108
|
-
protocols: []
|
|
115
|
+
multiaddrs: (peer.addrs ?? []).map((a) => multiaddr(a))
|
|
109
116
|
}
|
|
110
117
|
}
|