@libp2p/kad-dht 10.0.9 → 10.0.10-50f912c2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +18 -18
- package/dist/src/dual-kad-dht.d.ts +2 -2
- package/dist/src/dual-kad-dht.d.ts.map +1 -1
- package/dist/src/dual-kad-dht.js +3 -9
- package/dist/src/dual-kad-dht.js.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/kad-dht.d.ts +2 -2
- package/dist/src/kad-dht.d.ts.map +1 -1
- package/dist/src/kad-dht.js +2 -2
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/network.d.ts +2 -2
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +2 -2
- package/dist/src/network.js.map +1 -1
- package/dist/src/query/manager.js +2 -2
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/query/query-path.d.ts +2 -2
- package/dist/src/query/query-path.d.ts.map +1 -1
- package/dist/src/query/query-path.js.map +1 -1
- package/dist/src/query-self.d.ts.map +1 -1
- package/dist/src/query-self.js +13 -9
- package/dist/src/query-self.js.map +1 -1
- package/dist/src/record/selectors.js +1 -1
- package/dist/src/record/selectors.js.map +1 -1
- package/dist/src/record/validators.js +1 -1
- package/dist/src/record/validators.js.map +1 -1
- package/dist/src/routing-table/index.d.ts +2 -2
- package/dist/src/routing-table/index.d.ts.map +1 -1
- package/dist/src/routing-table/index.js +2 -2
- package/dist/src/routing-table/index.js.map +1 -1
- package/dist/src/routing-table/k-bucket.d.ts +2 -4
- package/dist/src/routing-table/k-bucket.d.ts.map +1 -1
- package/dist/src/routing-table/k-bucket.js +2 -4
- package/dist/src/routing-table/k-bucket.js.map +1 -1
- package/dist/src/topology-listener.d.ts +2 -2
- package/dist/src/topology-listener.d.ts.map +1 -1
- package/dist/src/topology-listener.js +2 -2
- package/dist/src/topology-listener.js.map +1 -1
- package/package.json +11 -11
- package/src/dual-kad-dht.ts +3 -13
- package/src/index.ts +4 -2
- package/src/kad-dht.ts +2 -2
- package/src/network.ts +2 -2
- package/src/query/manager.ts +2 -2
- package/src/query/query-path.ts +3 -3
- package/src/query-self.ts +14 -10
- package/src/record/selectors.ts +1 -1
- package/src/record/validators.ts +1 -1
- package/src/routing-table/index.ts +2 -2
- package/src/routing-table/k-bucket.ts +2 -4
- package/src/topology-listener.ts +2 -2
- package/dist/typedoc-urls.json +0 -54
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TypedEventEmitter } from '@libp2p/interface/events';
|
|
2
2
|
import { logger } from '@libp2p/logger';
|
|
3
3
|
import { PeerSet } from '@libp2p/peer-collections';
|
|
4
4
|
import Queue from 'p-queue';
|
|
@@ -13,7 +13,7 @@ export const PING_CONCURRENCY = 10;
|
|
|
13
13
|
* A wrapper around `k-bucket`, to provide easy store and
|
|
14
14
|
* retrieval for peers.
|
|
15
15
|
*/
|
|
16
|
-
export class RoutingTable extends
|
|
16
|
+
export class RoutingTable extends TypedEventEmitter {
|
|
17
17
|
kBucketSize;
|
|
18
18
|
kb;
|
|
19
19
|
pingQueue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TypedEventEmitter } from '@libp2p/interface/events';
|
|
2
2
|
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
3
3
|
export interface PingEventDetails {
|
|
4
4
|
oldContacts: Contact[];
|
|
@@ -56,10 +56,8 @@ export interface Bucket {
|
|
|
56
56
|
/**
|
|
57
57
|
* Implementation of a Kademlia DHT k-bucket used for storing
|
|
58
58
|
* contact (peer node) information.
|
|
59
|
-
*
|
|
60
|
-
* @extends EventEmitter
|
|
61
59
|
*/
|
|
62
|
-
export declare class KBucket extends
|
|
60
|
+
export declare class KBucket extends TypedEventEmitter<KBucketEvents> {
|
|
63
61
|
localNodeId: Uint8Array;
|
|
64
62
|
root: Bucket;
|
|
65
63
|
private readonly numberOfNodesPerKBucket;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"k-bucket.d.ts","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"k-bucket.d.ts","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AA4BvD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,EAAE,CAAA;IACtB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAA;IACrC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC/B,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAA;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,WAAW,EAAE,UAAU,CAAA;IAEvB;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAEhC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;IAE/C;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC1D;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,UAAU,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,UAAU,CAAA;IACd,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,iBAAiB,CAAC,aAAa,CAAC;IACpD,WAAW,EAAE,UAAU,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAQ;IAChD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqD;gBAEhE,OAAO,EAAE,cAAc;IAepC;;;;;;;;;OASG;IACH,MAAM,CAAC,OAAO,CAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO;IAIhE;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM;IAYnE;;;;OAIG;IACH,GAAG,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IA8C/B;;;;;;;OAOG;IACH,OAAO,CAAE,EAAE,EAAE,UAAU,EAAE,CAAC,SAAW,GAAG,OAAO,EAAE;IAmCjD;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAoBhB;;;;;;;;OAQG;IACH,cAAc,CAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiCpE;;;;;;;;OAQG;IACH,GAAG,CAAE,EAAE,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS;IAezC;;;;;;;OAOG;IACH,QAAQ,CAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,GAAG,MAAM;IAQ/C;;;;;OAKG;IACH,MAAM,CAAE,EAAE,EAAE,UAAU,GAAG,OAAO;IAqBhC;;;;;;;OAOG;IACH,MAAM,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAoB7C;;;;;;OAMG;IACH,OAAO,IAAK,OAAO,EAAE;IAkBrB;;;;;;OAMG;IACD,UAAU,IAAK,QAAQ,CAAC,OAAO,CAAC;IAgBlC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAoB9D"}
|
|
@@ -26,7 +26,7 @@ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
|
26
26
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
27
27
|
OTHER DEALINGS IN THE SOFTWARE.
|
|
28
28
|
*/
|
|
29
|
-
import {
|
|
29
|
+
import { TypedEventEmitter } from '@libp2p/interface/events';
|
|
30
30
|
function arrayEquals(array1, array2) {
|
|
31
31
|
if (array1 === array2) {
|
|
32
32
|
return true;
|
|
@@ -53,10 +53,8 @@ function ensureInt8(name, val) {
|
|
|
53
53
|
/**
|
|
54
54
|
* Implementation of a Kademlia DHT k-bucket used for storing
|
|
55
55
|
* contact (peer node) information.
|
|
56
|
-
*
|
|
57
|
-
* @extends EventEmitter
|
|
58
56
|
*/
|
|
59
|
-
export class KBucket extends
|
|
57
|
+
export class KBucket extends TypedEventEmitter {
|
|
60
58
|
localNodeId;
|
|
61
59
|
root;
|
|
62
60
|
numberOfNodesPerKBucket;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"k-bucket.js","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BE;AAEF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"k-bucket.js","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TypedEventEmitter } from '@libp2p/interface/events';
|
|
2
2
|
import type { KadDHTComponents } from '.';
|
|
3
3
|
import type { PeerId } from '@libp2p/interface/peer-id';
|
|
4
4
|
import type { Startable } from '@libp2p/interface/startable';
|
|
@@ -12,7 +12,7 @@ export interface TopologyListenerEvents {
|
|
|
12
12
|
/**
|
|
13
13
|
* Receives notifications of new peers joining the network that support the DHT protocol
|
|
14
14
|
*/
|
|
15
|
-
export declare class TopologyListener extends
|
|
15
|
+
export declare class TopologyListener extends TypedEventEmitter<TopologyListenerEvents> implements Startable {
|
|
16
16
|
private readonly log;
|
|
17
17
|
private readonly components;
|
|
18
18
|
private readonly protocol;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topology-listener.d.ts","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,
|
|
1
|
+
{"version":3,"file":"topology-listener.d.ts","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAG5D,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,9 +1,9 @@
|
|
|
1
|
-
import { CustomEvent,
|
|
1
|
+
import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events';
|
|
2
2
|
import { logger } from '@libp2p/logger';
|
|
3
3
|
/**
|
|
4
4
|
* Receives notifications of new peers joining the network that support the DHT protocol
|
|
5
5
|
*/
|
|
6
|
-
export class TopologyListener extends
|
|
6
|
+
export class TopologyListener extends TypedEventEmitter {
|
|
7
7
|
log;
|
|
8
8
|
components;
|
|
9
9
|
protocol;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topology-listener.js","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,
|
|
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;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAevC;;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,MAAM,CAAC,oCAAoC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QAC5E,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.10-50f912c2",
|
|
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,12 +52,12 @@
|
|
|
52
52
|
"dep-check": "aegir dep-check -i events"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@libp2p/crypto": "
|
|
56
|
-
"@libp2p/interface": "
|
|
57
|
-
"@libp2p/interface-internal": "
|
|
58
|
-
"@libp2p/logger": "
|
|
59
|
-
"@libp2p/peer-collections": "
|
|
60
|
-
"@libp2p/peer-id": "
|
|
55
|
+
"@libp2p/crypto": "2.0.5-50f912c2",
|
|
56
|
+
"@libp2p/interface": "0.1.3-50f912c2",
|
|
57
|
+
"@libp2p/interface-internal": "0.1.6-50f912c2",
|
|
58
|
+
"@libp2p/logger": "3.0.3-50f912c2",
|
|
59
|
+
"@libp2p/peer-collections": "4.0.5-50f912c2",
|
|
60
|
+
"@libp2p/peer-id": "3.0.3-50f912c2",
|
|
61
61
|
"@multiformats/multiaddr": "^12.1.5",
|
|
62
62
|
"@types/sinon": "^10.0.15",
|
|
63
63
|
"abortable-iterator": "^5.0.1",
|
|
@@ -89,9 +89,9 @@
|
|
|
89
89
|
"uint8arrays": "^4.0.6"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
|
-
"@libp2p/interface-compliance-tests": "
|
|
93
|
-
"@libp2p/peer-id-factory": "
|
|
94
|
-
"@libp2p/peer-store": "
|
|
92
|
+
"@libp2p/interface-compliance-tests": "4.1.1-50f912c2",
|
|
93
|
+
"@libp2p/peer-id-factory": "3.0.5-50f912c2",
|
|
94
|
+
"@libp2p/peer-store": "9.0.6-50f912c2",
|
|
95
95
|
"@types/lodash.random": "^3.2.6",
|
|
96
96
|
"@types/lodash.range": "^3.2.6",
|
|
97
97
|
"@types/which": "^3.0.0",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"p-retry": "^6.0.0",
|
|
107
107
|
"p-wait-for": "^5.0.2",
|
|
108
108
|
"protons": "^7.0.2",
|
|
109
|
-
"sinon": "^
|
|
109
|
+
"sinon": "^17.0.0",
|
|
110
110
|
"ts-sinon": "^2.0.2",
|
|
111
111
|
"which": "^4.0.0"
|
|
112
112
|
},
|
package/src/dual-kad-dht.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ContentRouting, contentRouting } from '@libp2p/interface/content-routing'
|
|
2
2
|
import { CodeError } from '@libp2p/interface/errors'
|
|
3
|
-
import {
|
|
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
6
|
import { logger } from '@libp2p/logger'
|
|
@@ -103,8 +103,6 @@ function multiaddrIsPublic (multiaddr: Multiaddr): boolean {
|
|
|
103
103
|
|
|
104
104
|
// dns4 or dns6 or dnsaddr
|
|
105
105
|
if (tuples[0][0] === DNS4_CODE || tuples[0][0] === DNS6_CODE || tuples[0][0] === DNSADDR_CODE) {
|
|
106
|
-
log('%m is public %s', multiaddr, true)
|
|
107
|
-
|
|
108
106
|
return true
|
|
109
107
|
}
|
|
110
108
|
|
|
@@ -113,8 +111,6 @@ function multiaddrIsPublic (multiaddr: Multiaddr): boolean {
|
|
|
113
111
|
const result = isPrivate(`${tuples[0][1]}`)
|
|
114
112
|
const isPublic = result == null || !result
|
|
115
113
|
|
|
116
|
-
log('%m is public %s', multiaddr, isPublic)
|
|
117
|
-
|
|
118
114
|
return isPublic
|
|
119
115
|
}
|
|
120
116
|
|
|
@@ -125,7 +121,7 @@ function multiaddrIsPublic (multiaddr: Multiaddr): boolean {
|
|
|
125
121
|
* A DHT implementation modelled after Kademlia with S/Kademlia modifications.
|
|
126
122
|
* Original implementation in go: https://github.com/libp2p/go-libp2p-kad-dht.
|
|
127
123
|
*/
|
|
128
|
-
export class DefaultDualKadDHT extends
|
|
124
|
+
export class DefaultDualKadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements DualKadDHT, PeerDiscovery {
|
|
129
125
|
public readonly wan: DefaultKadDHT
|
|
130
126
|
public readonly lan: DefaultKadDHT
|
|
131
127
|
public readonly components: KadDHTComponents
|
|
@@ -170,13 +166,7 @@ export class DefaultDualKadDHT extends EventEmitter<PeerDiscoveryEvents> impleme
|
|
|
170
166
|
components.events.addEventListener('self:peer:update', (evt) => {
|
|
171
167
|
log('received update of self-peer info')
|
|
172
168
|
const hasPublicAddress = evt.detail.peer.addresses
|
|
173
|
-
.some(({ multiaddr }) =>
|
|
174
|
-
const isPublic = multiaddrIsPublic(multiaddr)
|
|
175
|
-
|
|
176
|
-
log('%m is public %s', multiaddr, isPublic)
|
|
177
|
-
|
|
178
|
-
return isPublic
|
|
179
|
-
})
|
|
169
|
+
.some(({ multiaddr }) => multiaddrIsPublic(multiaddr))
|
|
180
170
|
|
|
181
171
|
this.getMode()
|
|
182
172
|
.then(async mode => {
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DefaultDualKadDHT } from './dual-kad-dht.js'
|
|
2
2
|
import type { ProvidersInit } from './providers.js'
|
|
3
3
|
import type { Libp2pEvents, AbortOptions } from '@libp2p/interface'
|
|
4
|
-
import type {
|
|
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'
|
|
7
7
|
import type { PeerInfo } from '@libp2p/interface/peer-info'
|
|
@@ -13,6 +13,8 @@ import type { Datastore } from 'interface-datastore'
|
|
|
13
13
|
import type { CID } from 'multiformats/cid'
|
|
14
14
|
import type { ProgressOptions, ProgressEvent } from 'progress-events'
|
|
15
15
|
|
|
16
|
+
export { Libp2pRecord as Record } from './record/index.js'
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* The types of events emitted during DHT queries
|
|
18
20
|
*/
|
|
@@ -312,7 +314,7 @@ export interface KadDHTComponents {
|
|
|
312
314
|
metrics?: Metrics
|
|
313
315
|
connectionManager: ConnectionManager
|
|
314
316
|
datastore: Datastore
|
|
315
|
-
events:
|
|
317
|
+
events: TypedEventTarget<Libp2pEvents>
|
|
316
318
|
}
|
|
317
319
|
|
|
318
320
|
export function kadDHT (init?: KadDHTInit): (components: KadDHTComponents) => DualKadDHT {
|
package/src/kad-dht.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CustomEvent,
|
|
1
|
+
import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events'
|
|
2
2
|
import { type Logger, logger } from '@libp2p/logger'
|
|
3
3
|
import pDefer from 'p-defer'
|
|
4
4
|
import { PROTOCOL_DHT, PROTOCOL_PREFIX, LAN_PREFIX } from './constants.js'
|
|
@@ -39,7 +39,7 @@ export interface SingleKadDHTInit extends KadDHTInit {
|
|
|
39
39
|
* A DHT implementation modelled after Kademlia with S/Kademlia modifications.
|
|
40
40
|
* Original implementation in go: https://github.com/libp2p/go-libp2p-kad-dht.
|
|
41
41
|
*/
|
|
42
|
-
export class DefaultKadDHT extends
|
|
42
|
+
export class DefaultKadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements KadDHT {
|
|
43
43
|
public protocol: string
|
|
44
44
|
public routingTable: RoutingTable
|
|
45
45
|
public providers: Providers
|
package/src/network.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface/errors'
|
|
2
|
-
import {
|
|
2
|
+
import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events'
|
|
3
3
|
import { logger } from '@libp2p/logger'
|
|
4
4
|
import { abortableDuplex } from 'abortable-iterator'
|
|
5
5
|
import drain from 'it-drain'
|
|
@@ -35,7 +35,7 @@ interface NetworkEvents {
|
|
|
35
35
|
/**
|
|
36
36
|
* Handle network operations for the dht
|
|
37
37
|
*/
|
|
38
|
-
export class Network extends
|
|
38
|
+
export class Network extends TypedEventEmitter<NetworkEvents> implements Startable {
|
|
39
39
|
private readonly log: Logger
|
|
40
40
|
private readonly protocol: string
|
|
41
41
|
private running: boolean
|
package/src/query/manager.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { setMaxListeners } from 'events'
|
|
2
2
|
import { AbortError } from '@libp2p/interface/errors'
|
|
3
|
-
import {
|
|
3
|
+
import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events'
|
|
4
4
|
import { logger } from '@libp2p/logger'
|
|
5
5
|
import { PeerSet } from '@libp2p/peer-collections'
|
|
6
6
|
import { anySignal } from 'any-signal'
|
|
@@ -143,7 +143,7 @@ export class QueryManager implements Startable {
|
|
|
143
143
|
|
|
144
144
|
// query a subset of peers up to `kBucketSize / 2` in length
|
|
145
145
|
const startTime = Date.now()
|
|
146
|
-
const cleanUp = new
|
|
146
|
+
const cleanUp = new TypedEventEmitter<CleanUpEvents>()
|
|
147
147
|
|
|
148
148
|
try {
|
|
149
149
|
if (options.isSelfQuery !== true && this.initialQuerySelfHasRun != null) {
|
package/src/query/query-path.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { queryErrorEvent } from './events.js'
|
|
|
9
9
|
import type { CleanUpEvents } from './manager.js'
|
|
10
10
|
import type { QueryEvent, QueryOptions } from '../index.js'
|
|
11
11
|
import type { QueryFunc } from '../query/types.js'
|
|
12
|
-
import type {
|
|
12
|
+
import type { TypedEventTarget } from '@libp2p/interface/events'
|
|
13
13
|
import type { PeerId } from '@libp2p/interface/peer-id'
|
|
14
14
|
import type { Logger } from '@libp2p/logger'
|
|
15
15
|
import type { PeerSet } from '@libp2p/peer-collections'
|
|
@@ -60,7 +60,7 @@ export interface QueryPathOptions extends QueryOptions {
|
|
|
60
60
|
/**
|
|
61
61
|
* will emit a 'cleanup' event if the caller exits the for..await of early
|
|
62
62
|
*/
|
|
63
|
-
cleanUp:
|
|
63
|
+
cleanUp: TypedEventTarget<CleanUpEvents>
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
66
|
* A timeout for queryFunc in ms
|
|
@@ -185,7 +185,7 @@ export async function * queryPath (options: QueryPathOptions): AsyncGenerator<Qu
|
|
|
185
185
|
yield * toGenerator(queue, signal, cleanUp, log)
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
-
async function * toGenerator (queue: Queue, signal: AbortSignal, cleanUp:
|
|
188
|
+
async function * toGenerator (queue: Queue, signal: AbortSignal, cleanUp: TypedEventTarget<CleanUpEvents>, log: Logger): AsyncGenerator<QueryEvent, void, undefined> {
|
|
189
189
|
let deferred = defer()
|
|
190
190
|
let running = true
|
|
191
191
|
const results: QueryEvent[] = []
|
package/src/query-self.ts
CHANGED
|
@@ -105,11 +105,6 @@ export class QuerySelf implements Startable {
|
|
|
105
105
|
|
|
106
106
|
this.querySelfPromise = pDefer()
|
|
107
107
|
|
|
108
|
-
if (this.routingTable.size === 0) {
|
|
109
|
-
// wait to discover at least one DHT peer
|
|
110
|
-
await pEvent(this.routingTable, 'peer:add')
|
|
111
|
-
}
|
|
112
|
-
|
|
113
108
|
if (this.started) {
|
|
114
109
|
this.controller = new AbortController()
|
|
115
110
|
const signal = anySignal([this.controller.signal, AbortSignal.timeout(this.queryTimeout)])
|
|
@@ -122,7 +117,16 @@ export class QuerySelf implements Startable {
|
|
|
122
117
|
} catch {} // fails on node < 15.4
|
|
123
118
|
|
|
124
119
|
try {
|
|
120
|
+
if (this.routingTable.size === 0) {
|
|
121
|
+
this.log('routing table was empty, waiting for some peers before running query')
|
|
122
|
+
// wait to discover at least one DHT peer
|
|
123
|
+
await pEvent(this.routingTable, 'peer:add', {
|
|
124
|
+
signal
|
|
125
|
+
})
|
|
126
|
+
}
|
|
127
|
+
|
|
125
128
|
this.log('run self-query, look for %d peers timing out after %dms', this.count, this.queryTimeout)
|
|
129
|
+
const start = Date.now()
|
|
126
130
|
|
|
127
131
|
const found = await pipe(
|
|
128
132
|
this.peerRouting.getClosestPeers(this.components.peerId.toBytes(), {
|
|
@@ -133,16 +137,16 @@ export class QuerySelf implements Startable {
|
|
|
133
137
|
async (source) => length(source)
|
|
134
138
|
)
|
|
135
139
|
|
|
136
|
-
this.log('self-query
|
|
140
|
+
this.log('self-query found %d peers in %dms', found, Date.now() - start)
|
|
141
|
+
} catch (err: any) {
|
|
142
|
+
this.log.error('self-query error', err)
|
|
143
|
+
} finally {
|
|
144
|
+
signal.clear()
|
|
137
145
|
|
|
138
146
|
if (this.initialQuerySelfHasRun != null) {
|
|
139
147
|
this.initialQuerySelfHasRun.resolve()
|
|
140
148
|
this.initialQuerySelfHasRun = undefined
|
|
141
149
|
}
|
|
142
|
-
} catch (err: any) {
|
|
143
|
-
this.log.error('self-query error', err)
|
|
144
|
-
} finally {
|
|
145
|
-
signal.clear()
|
|
146
150
|
}
|
|
147
151
|
}
|
|
148
152
|
|
package/src/record/selectors.ts
CHANGED
|
@@ -24,7 +24,7 @@ export function bestRecord (selectors: Selectors, k: Uint8Array, records: Uint8A
|
|
|
24
24
|
const selector = selectors[parts[1].toString()]
|
|
25
25
|
|
|
26
26
|
if (selector == null) {
|
|
27
|
-
const errMsg = `
|
|
27
|
+
const errMsg = `No selector function configured for key type "${parts[1]}"`
|
|
28
28
|
|
|
29
29
|
throw new CodeError(errMsg, 'ERR_UNRECOGNIZED_KEY_PREFIX')
|
|
30
30
|
}
|
package/src/record/validators.ts
CHANGED
|
@@ -23,7 +23,7 @@ export async function verifyRecord (validators: Validators, record: Libp2pRecord
|
|
|
23
23
|
const validator = validators[parts[1].toString()]
|
|
24
24
|
|
|
25
25
|
if (validator == null) {
|
|
26
|
-
const errMsg =
|
|
26
|
+
const errMsg = `No validator available for key type "${parts[1]}"`
|
|
27
27
|
|
|
28
28
|
throw new CodeError(errMsg, 'ERR_INVALID_RECORD_KEY_TYPE')
|
|
29
29
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TypedEventEmitter } from '@libp2p/interface/events'
|
|
2
2
|
import { logger } from '@libp2p/logger'
|
|
3
3
|
import { PeerSet } from '@libp2p/peer-collections'
|
|
4
4
|
import Queue from 'p-queue'
|
|
@@ -43,7 +43,7 @@ export interface RoutingTableEvents {
|
|
|
43
43
|
* A wrapper around `k-bucket`, to provide easy store and
|
|
44
44
|
* retrieval for peers.
|
|
45
45
|
*/
|
|
46
|
-
export class RoutingTable extends
|
|
46
|
+
export class RoutingTable extends TypedEventEmitter<RoutingTableEvents> implements Startable {
|
|
47
47
|
public kBucketSize: number
|
|
48
48
|
public kb?: KBucket
|
|
49
49
|
public pingQueue: Queue
|
|
@@ -27,7 +27,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
|
27
27
|
OTHER DEALINGS IN THE SOFTWARE.
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
-
import {
|
|
30
|
+
import { TypedEventEmitter } from '@libp2p/interface/events'
|
|
31
31
|
import type { PeerId } from '@libp2p/interface/peer-id'
|
|
32
32
|
|
|
33
33
|
function arrayEquals (array1: Uint8Array, array2: Uint8Array): boolean {
|
|
@@ -122,10 +122,8 @@ export interface Bucket {
|
|
|
122
122
|
/**
|
|
123
123
|
* Implementation of a Kademlia DHT k-bucket used for storing
|
|
124
124
|
* contact (peer node) information.
|
|
125
|
-
*
|
|
126
|
-
* @extends EventEmitter
|
|
127
125
|
*/
|
|
128
|
-
export class KBucket extends
|
|
126
|
+
export class KBucket extends TypedEventEmitter<KBucketEvents> {
|
|
129
127
|
public localNodeId: Uint8Array
|
|
130
128
|
public root: Bucket
|
|
131
129
|
private readonly numberOfNodesPerKBucket: number
|
package/src/topology-listener.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CustomEvent,
|
|
1
|
+
import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events'
|
|
2
2
|
import { logger } from '@libp2p/logger'
|
|
3
3
|
import type { KadDHTComponents } from '.'
|
|
4
4
|
import type { PeerId } from '@libp2p/interface/peer-id'
|
|
@@ -17,7 +17,7 @@ export interface TopologyListenerEvents {
|
|
|
17
17
|
/**
|
|
18
18
|
* Receives notifications of new peers joining the network that support the DHT protocol
|
|
19
19
|
*/
|
|
20
|
-
export class TopologyListener extends
|
|
20
|
+
export class TopologyListener extends TypedEventEmitter<TopologyListenerEvents> implements Startable {
|
|
21
21
|
private readonly log: Logger
|
|
22
22
|
private readonly components: KadDHTComponents
|
|
23
23
|
private readonly protocol: string
|
package/dist/typedoc-urls.json
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"EventTypes": "https://libp2p.github.io/js-libp2p/enums/_libp2p_kad_dht.EventTypes.html",
|
|
3
|
-
".:EventTypes": "https://libp2p.github.io/js-libp2p/enums/_libp2p_kad_dht.EventTypes.html",
|
|
4
|
-
"MessageType": "https://libp2p.github.io/js-libp2p/enums/_libp2p_kad_dht.MessageType.html",
|
|
5
|
-
".:MessageType": "https://libp2p.github.io/js-libp2p/enums/_libp2p_kad_dht.MessageType.html",
|
|
6
|
-
"AddPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.AddPeerEvent.html",
|
|
7
|
-
".:AddPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.AddPeerEvent.html",
|
|
8
|
-
"DHTRecord": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DHTRecord.html",
|
|
9
|
-
".:DHTRecord": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DHTRecord.html",
|
|
10
|
-
"DialPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DialPeerEvent.html",
|
|
11
|
-
".:DialPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DialPeerEvent.html",
|
|
12
|
-
"DualKadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DualKadDHT.html",
|
|
13
|
-
".:DualKadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DualKadDHT.html",
|
|
14
|
-
"FinalPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.FinalPeerEvent.html",
|
|
15
|
-
".:FinalPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.FinalPeerEvent.html",
|
|
16
|
-
"KadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHT.html",
|
|
17
|
-
".:KadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHT.html",
|
|
18
|
-
"KadDHTComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHTComponents.html",
|
|
19
|
-
".:KadDHTComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHTComponents.html",
|
|
20
|
-
"KadDHTInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHTInit.html",
|
|
21
|
-
".:KadDHTInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHTInit.html",
|
|
22
|
-
"PeerResponseEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.PeerResponseEvent.html",
|
|
23
|
-
".:PeerResponseEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.PeerResponseEvent.html",
|
|
24
|
-
"ProviderEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ProviderEvent.html",
|
|
25
|
-
".:ProviderEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ProviderEvent.html",
|
|
26
|
-
"QueryErrorEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.QueryErrorEvent.html",
|
|
27
|
-
".:QueryErrorEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.QueryErrorEvent.html",
|
|
28
|
-
"QueryOptions": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.QueryOptions.html",
|
|
29
|
-
".:QueryOptions": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.QueryOptions.html",
|
|
30
|
-
"RoutingTable": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.RoutingTable.html",
|
|
31
|
-
".:RoutingTable": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.RoutingTable.html",
|
|
32
|
-
"SelectFn": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SelectFn.html",
|
|
33
|
-
".:SelectFn": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SelectFn.html",
|
|
34
|
-
"SendQueryEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SendQueryEvent.html",
|
|
35
|
-
".:SendQueryEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SendQueryEvent.html",
|
|
36
|
-
"SingleKadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SingleKadDHT.html",
|
|
37
|
-
".:SingleKadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SingleKadDHT.html",
|
|
38
|
-
"ValidateFn": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ValidateFn.html",
|
|
39
|
-
".:ValidateFn": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ValidateFn.html",
|
|
40
|
-
"ValueEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ValueEvent.html",
|
|
41
|
-
".:ValueEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ValueEvent.html",
|
|
42
|
-
"DHTProgressEvents": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.DHTProgressEvents.html",
|
|
43
|
-
".:DHTProgressEvents": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.DHTProgressEvents.html",
|
|
44
|
-
"MessageName": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.MessageName.html",
|
|
45
|
-
".:MessageName": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.MessageName.html",
|
|
46
|
-
"QueryEvent": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.QueryEvent.html",
|
|
47
|
-
".:QueryEvent": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.QueryEvent.html",
|
|
48
|
-
"Selectors": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.Selectors.html",
|
|
49
|
-
".:Selectors": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.Selectors.html",
|
|
50
|
-
"Validators": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.Validators.html",
|
|
51
|
-
".:Validators": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.Validators.html",
|
|
52
|
-
"kadDHT": "https://libp2p.github.io/js-libp2p/functions/_libp2p_kad_dht.kadDHT-1.html",
|
|
53
|
-
".:kadDHT": "https://libp2p.github.io/js-libp2p/functions/_libp2p_kad_dht.kadDHT-1.html"
|
|
54
|
-
}
|