@libp2p/kad-dht 15.0.2-32627c876 → 15.0.2-3df5bf2da
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 +1 -1
- package/dist/index.min.js.map +4 -4
- package/dist/src/constants.d.ts +1 -1
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +1 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/content-fetching/index.d.ts.map +1 -1
- package/dist/src/content-fetching/index.js +26 -6
- 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 +84 -38
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/index.d.ts +55 -10
- 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 +3 -1
- package/dist/src/kad-dht.d.ts.map +1 -1
- package/dist/src/kad-dht.js +12 -8
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/network.d.ts +3 -5
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +10 -8
- package/dist/src/network.js.map +1 -1
- package/dist/src/peer-distance-list.d.ts +4 -3
- package/dist/src/peer-distance-list.d.ts.map +1 -1
- package/dist/src/peer-distance-list.js +9 -2
- package/dist/src/peer-distance-list.js.map +1 -1
- package/dist/src/peer-routing/index.d.ts +7 -5
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +57 -45
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/providers.js +4 -4
- package/dist/src/providers.js.map +1 -1
- package/dist/src/query/events.d.ts +17 -6
- package/dist/src/query/events.d.ts.map +1 -1
- package/dist/src/query/events.js +18 -0
- package/dist/src/query/events.js.map +1 -1
- package/dist/src/query/manager.d.ts +0 -4
- package/dist/src/query/manager.d.ts.map +1 -1
- package/dist/src/query/manager.js +20 -9
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/query/query-path.d.ts +7 -11
- package/dist/src/query/query-path.d.ts.map +1 -1
- package/dist/src/query/query-path.js +67 -45
- package/dist/src/query/query-path.js.map +1 -1
- package/dist/src/query/types.d.ts +6 -5
- package/dist/src/query/types.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-providers.js +1 -1
- package/dist/src/rpc/handlers/get-providers.js.map +1 -1
- package/dist/src/utils.d.ts +1 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +4 -0
- package/dist/src/utils.js.map +1 -1
- package/package.json +13 -12
- package/src/constants.ts +1 -1
- package/src/content-fetching/index.ts +26 -6
- package/src/content-routing/index.ts +91 -47
- package/src/index.ts +62 -10
- package/src/kad-dht.ts +12 -8
- package/src/network.ts +18 -12
- package/src/peer-distance-list.ts +13 -3
- package/src/peer-routing/index.ts +61 -48
- package/src/providers.ts +4 -4
- package/src/query/events.ts +41 -6
- package/src/query/manager.ts +23 -14
- package/src/query/query-path.ts +83 -65
- package/src/query/types.ts +7 -5
- package/src/rpc/handlers/get-providers.ts +1 -1
- package/src/utils.ts +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-providers.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAsBlD,MAAM,OAAO,mBAAmB;IACb,MAAM,CAAQ;IACd,WAAW,CAAa;IACxB,SAAS,CAAW;IACpB,SAAS,CAAW;IACpB,cAAc,CAAgB;IAC9B,GAAG,CAAQ;IAE5B,YAAa,UAAyC,EAAE,IAA6B;QACnF,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAElD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,6BAA6B,CAAC,CAAA;QACpF,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,mBAAmB,CAAC,0DAA0D,CAAC,CAAA;QAC3F,CAAC;QAED,IAAI,GAAG,CAAA;QACP,IAAI,CAAC;YACH,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,gCAAgC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QAEvD,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAC7C,MAAM,IAAI,GAAa;oBACrB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;iBAC7D,CAAA;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"get-providers.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export declare function keyForPublicKey(peerId: PeerId): Uint8Array;
|
|
|
29
29
|
export declare function isPublicKeyKey(key: Uint8Array): boolean;
|
|
30
30
|
export declare function isIPNSKey(key: Uint8Array): boolean;
|
|
31
31
|
export declare function fromPublicKeyKey(key: Uint8Array): PeerId;
|
|
32
|
+
export declare function uint8ArrayToBigInt(buf: Uint8Array): bigint;
|
|
32
33
|
/**
|
|
33
34
|
* Create a new put record, encodes and signs it if enabled
|
|
34
35
|
*/
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAQtC,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD,wBAAgB,4BAA4B,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAkCtE;AAED,wBAAgB,2BAA2B,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CA4BrE;AAED,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAE3D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAIzE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEvE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAK3D;AAED,wBAAgB,cAAc,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAExD;AAED,wBAAgB,SAAS,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAGzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAK/E;AAED,wBAAgB,QAAQ,CAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,IAAI,GAAE,MAAY,GAAG,MAAM,IAAI,CAO9E;AAUD,wBAAgB,iBAAiB,CAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAwBhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,GAAG,GAAG;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAaxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,CAatF;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,CAwBjL;AAED,wBAAgB,mBAAmB,CAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAwBhK"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAQtC,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD,wBAAgB,4BAA4B,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAkCtE;AAED,wBAAgB,2BAA2B,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CA4BrE;AAED,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAE3D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAIzE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEvE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAK3D;AAED,wBAAgB,cAAc,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAExD;AAED,wBAAgB,SAAS,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAGzD;AAED,wBAAgB,kBAAkB,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAO3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAK/E;AAED,wBAAgB,QAAQ,CAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,IAAI,GAAE,MAAY,GAAG,MAAM,IAAI,CAO9E;AAUD,wBAAgB,iBAAiB,CAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAwBhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,GAAG,GAAG;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAaxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,CAatF;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,CAwBjL;AAED,wBAAgB,mBAAmB,CAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAwBhK"}
|
package/dist/src/utils.js
CHANGED
|
@@ -110,6 +110,10 @@ export function fromPublicKeyKey(key) {
|
|
|
110
110
|
const multihash = Digest.decode(key.subarray(4));
|
|
111
111
|
return peerIdFromMultihash(multihash);
|
|
112
112
|
}
|
|
113
|
+
export function uint8ArrayToBigInt(buf) {
|
|
114
|
+
return BigInt(`0x${Array.from(buf)
|
|
115
|
+
.map(val => val.toString(16).padStart(2, '0')).join('')}`);
|
|
116
|
+
}
|
|
113
117
|
/**
|
|
114
118
|
* Create a new put record, encodes and signs it if enabled
|
|
115
119
|
*/
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/kad-dht",
|
|
3
|
-
"version": "15.0.2-
|
|
3
|
+
"version": "15.0.2-3df5bf2da",
|
|
4
4
|
"description": "JavaScript implementation of the Kad-DHT for libp2p",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/kad-dht#readme",
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"doc-check": "aegir doc-check"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@libp2p/crypto": "5.1.1-
|
|
61
|
-
"@libp2p/interface": "2.9.0-
|
|
62
|
-
"@libp2p/interface-internal": "2.3.11-
|
|
63
|
-
"@libp2p/peer-collections": "6.0.27-
|
|
64
|
-
"@libp2p/peer-id": "5.1.2-
|
|
65
|
-
"@libp2p/ping": "2.0.29-
|
|
66
|
-
"@libp2p/record": "4.0.5-
|
|
67
|
-
"@libp2p/utils": "6.6.2-
|
|
60
|
+
"@libp2p/crypto": "5.1.1-3df5bf2da",
|
|
61
|
+
"@libp2p/interface": "2.9.0-3df5bf2da",
|
|
62
|
+
"@libp2p/interface-internal": "2.3.11-3df5bf2da",
|
|
63
|
+
"@libp2p/peer-collections": "6.0.27-3df5bf2da",
|
|
64
|
+
"@libp2p/peer-id": "5.1.2-3df5bf2da",
|
|
65
|
+
"@libp2p/ping": "2.0.29-3df5bf2da",
|
|
66
|
+
"@libp2p/record": "4.0.5-3df5bf2da",
|
|
67
|
+
"@libp2p/utils": "6.6.2-3df5bf2da",
|
|
68
68
|
"@multiformats/multiaddr": "^12.3.3",
|
|
69
69
|
"any-signal": "^4.1.1",
|
|
70
70
|
"interface-datastore": "^8.3.1",
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"it-parallel": "^3.0.8",
|
|
78
78
|
"it-pipe": "^3.0.1",
|
|
79
79
|
"it-protobuf-stream": "^2.0.1",
|
|
80
|
+
"it-pushable": "^3.2.3",
|
|
80
81
|
"it-take": "^3.0.6",
|
|
81
82
|
"mortice": "^3.0.6",
|
|
82
83
|
"multiformats": "^13.3.1",
|
|
@@ -90,9 +91,9 @@
|
|
|
90
91
|
"uint8arrays": "^5.1.0"
|
|
91
92
|
},
|
|
92
93
|
"devDependencies": {
|
|
93
|
-
"@libp2p/interface-compliance-tests": "6.4.5-
|
|
94
|
-
"@libp2p/logger": "5.1.15-
|
|
95
|
-
"@libp2p/peer-store": "11.1.4-
|
|
94
|
+
"@libp2p/interface-compliance-tests": "6.4.5-3df5bf2da",
|
|
95
|
+
"@libp2p/logger": "5.1.15-3df5bf2da",
|
|
96
|
+
"@libp2p/peer-store": "11.1.4-3df5bf2da",
|
|
96
97
|
"@types/lodash.random": "^3.2.9",
|
|
97
98
|
"@types/lodash.range": "^3.2.9",
|
|
98
99
|
"@types/sinon": "^17.0.3",
|
package/src/constants.ts
CHANGED
|
@@ -36,7 +36,7 @@ export const GET_MANY_RECORD_COUNT = 16
|
|
|
36
36
|
export const K = 20
|
|
37
37
|
|
|
38
38
|
// Alpha is the concurrency for asynchronous requests
|
|
39
|
-
export const ALPHA =
|
|
39
|
+
export const ALPHA = 10
|
|
40
40
|
|
|
41
41
|
// How often we look for our closest DHT neighbors
|
|
42
42
|
export const QUERY_SELF_INTERVAL = 5 * minute
|
|
@@ -129,7 +129,7 @@ export class ContentFetching {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
if (!sentCorrection) {
|
|
132
|
-
|
|
132
|
+
throw new QueryError('Could not send correction')
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
this.log.error('Failed error correcting entry')
|
|
@@ -182,7 +182,11 @@ export class ContentFetching {
|
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
if (!(putEvent.record != null && uint8ArrayEquals(putEvent.record.value, Libp2pRecord.deserialize(record).value))) {
|
|
185
|
-
events.push(queryErrorEvent({
|
|
185
|
+
events.push(queryErrorEvent({
|
|
186
|
+
from: event.peer.id,
|
|
187
|
+
error: new QueryError('Value not put correctly'),
|
|
188
|
+
path: putEvent.path
|
|
189
|
+
}, options))
|
|
186
190
|
}
|
|
187
191
|
}
|
|
188
192
|
|
|
@@ -212,6 +216,7 @@ export class ContentFetching {
|
|
|
212
216
|
for await (const event of this.getMany(key, options)) {
|
|
213
217
|
if (event.name === 'VALUE') {
|
|
214
218
|
vals.push(event)
|
|
219
|
+
continue
|
|
215
220
|
}
|
|
216
221
|
|
|
217
222
|
yield event
|
|
@@ -242,7 +247,12 @@ export class ContentFetching {
|
|
|
242
247
|
|
|
243
248
|
yield * this.sendCorrectionRecord(key, vals, best, {
|
|
244
249
|
...options,
|
|
245
|
-
path:
|
|
250
|
+
path: {
|
|
251
|
+
index: -1,
|
|
252
|
+
queued: 0,
|
|
253
|
+
running: 0,
|
|
254
|
+
total: 0
|
|
255
|
+
}
|
|
246
256
|
})
|
|
247
257
|
|
|
248
258
|
yield vals[i]
|
|
@@ -259,7 +269,13 @@ export class ContentFetching {
|
|
|
259
269
|
|
|
260
270
|
yield valueEvent({
|
|
261
271
|
value: localRec.value,
|
|
262
|
-
from: this.components.peerId
|
|
272
|
+
from: this.components.peerId,
|
|
273
|
+
path: {
|
|
274
|
+
index: -1,
|
|
275
|
+
running: 0,
|
|
276
|
+
queued: 0,
|
|
277
|
+
total: 0
|
|
278
|
+
}
|
|
263
279
|
}, options)
|
|
264
280
|
} catch (err: any) {
|
|
265
281
|
this.log('error getting local value for %b', key, err)
|
|
@@ -268,7 +284,7 @@ export class ContentFetching {
|
|
|
268
284
|
const self = this // eslint-disable-line @typescript-eslint/no-this-alias
|
|
269
285
|
|
|
270
286
|
const getValueQuery: QueryFunc = async function * ({ peer, signal, path }) {
|
|
271
|
-
for await (const event of self.peerRouting.getValueOrPeers(peer, key, {
|
|
287
|
+
for await (const event of self.peerRouting.getValueOrPeers(peer.id, key, {
|
|
272
288
|
...options,
|
|
273
289
|
signal,
|
|
274
290
|
path
|
|
@@ -276,7 +292,11 @@ export class ContentFetching {
|
|
|
276
292
|
yield event
|
|
277
293
|
|
|
278
294
|
if (event.name === 'PEER_RESPONSE' && (event.record != null)) {
|
|
279
|
-
yield valueEvent({
|
|
295
|
+
yield valueEvent({
|
|
296
|
+
from: peer.id,
|
|
297
|
+
value: event.record.value,
|
|
298
|
+
path
|
|
299
|
+
}, options)
|
|
280
300
|
}
|
|
281
301
|
}
|
|
282
302
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { PeerSet } from '@libp2p/peer-collections'
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { pipe } from 'it-pipe'
|
|
2
|
+
import { Queue } from '@libp2p/utils/queue'
|
|
3
|
+
import { pushable } from 'it-pushable'
|
|
5
4
|
import { ALPHA } from '../constants.js'
|
|
6
5
|
import { MessageType } from '../message/dht.js'
|
|
7
6
|
import { toPbPeerInfo } from '../message/utils.js'
|
|
@@ -10,7 +9,7 @@ import {
|
|
|
10
9
|
peerResponseEvent,
|
|
11
10
|
providerEvent
|
|
12
11
|
} from '../query/events.js'
|
|
13
|
-
import type { KadDHTComponents, PeerResponseEvent, ProviderEvent, QueryEvent } from '../index.js'
|
|
12
|
+
import type { FinalPeerEvent, KadDHTComponents, PeerResponseEvent, ProviderEvent, QueryEvent } from '../index.js'
|
|
14
13
|
import type { Message } from '../message/dht.js'
|
|
15
14
|
import type { Network } from '../network.js'
|
|
16
15
|
import type { PeerRouting } from '../peer-routing/index.js'
|
|
@@ -98,54 +97,76 @@ export class ContentRouting {
|
|
|
98
97
|
}
|
|
99
98
|
|
|
100
99
|
let sent = 0
|
|
100
|
+
const self = this
|
|
101
|
+
|
|
102
|
+
async function * publishProviderRecord (event: FinalPeerEvent): AsyncGenerator<QueryEvent, void, undefined> {
|
|
103
|
+
try {
|
|
104
|
+
self.log('sending provider record for %s to %p', key, event.peer.id)
|
|
105
|
+
|
|
106
|
+
for await (const addProviderEvent of self.network.sendMessage(event.peer.id, msg, {
|
|
107
|
+
...options,
|
|
108
|
+
path: event.path
|
|
109
|
+
})) {
|
|
110
|
+
if (addProviderEvent.name === 'PEER_RESPONSE') {
|
|
111
|
+
self.log('sent provider record for %s to %p', key, event.peer.id)
|
|
112
|
+
sent++
|
|
113
|
+
}
|
|
101
114
|
|
|
102
|
-
|
|
103
|
-
return async () => {
|
|
104
|
-
if (event.name !== 'FINAL_PEER') {
|
|
105
|
-
return [event]
|
|
115
|
+
yield addProviderEvent
|
|
106
116
|
}
|
|
117
|
+
} catch (err: any) {
|
|
118
|
+
self.log.error('error sending provide record to peer %p', event.peer.id, err)
|
|
119
|
+
yield queryErrorEvent({
|
|
120
|
+
from: event.peer.id,
|
|
121
|
+
error: err,
|
|
122
|
+
path: event.path
|
|
123
|
+
}, options)
|
|
124
|
+
}
|
|
125
|
+
}
|
|
107
126
|
|
|
108
|
-
|
|
127
|
+
const events = pushable<QueryEvent>({
|
|
128
|
+
objectMode: true
|
|
129
|
+
})
|
|
109
130
|
|
|
110
|
-
|
|
131
|
+
const queue = new Queue({
|
|
132
|
+
concurrency: ALPHA
|
|
133
|
+
})
|
|
134
|
+
queue.addEventListener('idle', () => {
|
|
135
|
+
events.end()
|
|
136
|
+
})
|
|
137
|
+
queue.addEventListener('error', (err) => {
|
|
138
|
+
this.log.error('error publishing provider record to peer - %e', err)
|
|
139
|
+
})
|
|
111
140
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
for await (const sendEvent of this.network.sendMessage(event.peer.id, msg, {
|
|
116
|
-
...options,
|
|
117
|
-
path: event.path ?? -1
|
|
118
|
-
})) {
|
|
119
|
-
if (sendEvent.name === 'PEER_RESPONSE') {
|
|
120
|
-
this.log('sent provider record for %s to %p', key, event.peer.id)
|
|
121
|
-
sent++
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
events.push(sendEvent)
|
|
125
|
-
}
|
|
126
|
-
} catch (err: any) {
|
|
127
|
-
this.log.error('error sending provide record to peer %p', event.peer.id, err)
|
|
128
|
-
events.push(queryErrorEvent({ from: event.peer.id, error: err }, options))
|
|
129
|
-
}
|
|
141
|
+
queue.add(async () => {
|
|
142
|
+
const finalPeerEvents: FinalPeerEvent[] = []
|
|
130
143
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
144
|
+
for await (const event of this.peerRouting.getClosestPeers(target, options)) {
|
|
145
|
+
events.push(event)
|
|
134
146
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
this.peerRouting.getClosestPeers(target, options),
|
|
138
|
-
(source) => map(source, (event) => maybeNotifyPeer(event)),
|
|
139
|
-
(source) => parallel(source, {
|
|
140
|
-
ordered: false,
|
|
141
|
-
concurrency: ALPHA
|
|
142
|
-
}),
|
|
143
|
-
async function * (source) {
|
|
144
|
-
for await (const events of source) {
|
|
145
|
-
yield * events
|
|
147
|
+
if (event.name !== 'FINAL_PEER') {
|
|
148
|
+
continue
|
|
146
149
|
}
|
|
150
|
+
|
|
151
|
+
finalPeerEvents.push(event)
|
|
147
152
|
}
|
|
148
|
-
|
|
153
|
+
|
|
154
|
+
finalPeerEvents.forEach(event => {
|
|
155
|
+
queue.add(async () => {
|
|
156
|
+
for await (const notifyEvent of publishProviderRecord(event)) {
|
|
157
|
+
events.push(notifyEvent)
|
|
158
|
+
}
|
|
159
|
+
})
|
|
160
|
+
.catch(err => {
|
|
161
|
+
this.log.error('error publishing provider record to peer - %e', err)
|
|
162
|
+
})
|
|
163
|
+
})
|
|
164
|
+
})
|
|
165
|
+
.catch(err => {
|
|
166
|
+
events.end(err)
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
yield * events
|
|
149
170
|
|
|
150
171
|
this.log('sent provider records to %d peers', sent)
|
|
151
172
|
}
|
|
@@ -184,8 +205,27 @@ export class ContentRouting {
|
|
|
184
205
|
}
|
|
185
206
|
}
|
|
186
207
|
|
|
187
|
-
yield peerResponseEvent({
|
|
188
|
-
|
|
208
|
+
yield peerResponseEvent({
|
|
209
|
+
from: this.components.peerId,
|
|
210
|
+
messageType: MessageType.GET_PROVIDERS,
|
|
211
|
+
providers,
|
|
212
|
+
path: {
|
|
213
|
+
index: -1,
|
|
214
|
+
queued: 0,
|
|
215
|
+
running: 0,
|
|
216
|
+
total: 0
|
|
217
|
+
}
|
|
218
|
+
}, options)
|
|
219
|
+
yield providerEvent({
|
|
220
|
+
from: this.components.peerId,
|
|
221
|
+
providers,
|
|
222
|
+
path: {
|
|
223
|
+
index: -1,
|
|
224
|
+
queued: 0,
|
|
225
|
+
running: 0,
|
|
226
|
+
total: 0
|
|
227
|
+
}
|
|
228
|
+
}, options)
|
|
189
229
|
|
|
190
230
|
found += providers.length
|
|
191
231
|
|
|
@@ -203,7 +243,7 @@ export class ContentRouting {
|
|
|
203
243
|
key: target
|
|
204
244
|
}
|
|
205
245
|
|
|
206
|
-
yield * self.network.sendRequest(peer, request, {
|
|
246
|
+
yield * self.network.sendRequest(peer.id, request, {
|
|
207
247
|
...options,
|
|
208
248
|
signal,
|
|
209
249
|
path
|
|
@@ -230,7 +270,11 @@ export class ContentRouting {
|
|
|
230
270
|
}
|
|
231
271
|
|
|
232
272
|
if (newProviders.length > 0) {
|
|
233
|
-
yield providerEvent({
|
|
273
|
+
yield providerEvent({
|
|
274
|
+
from: event.from,
|
|
275
|
+
providers: newProviders,
|
|
276
|
+
path: event.path
|
|
277
|
+
}, options)
|
|
234
278
|
|
|
235
279
|
found += newProviders.length
|
|
236
280
|
|
package/src/index.ts
CHANGED
|
@@ -157,7 +157,8 @@ export enum EventTypes {
|
|
|
157
157
|
PROVIDER,
|
|
158
158
|
VALUE,
|
|
159
159
|
ADD_PEER,
|
|
160
|
-
DIAL_PEER
|
|
160
|
+
DIAL_PEER,
|
|
161
|
+
PATH_ENDED
|
|
161
162
|
}
|
|
162
163
|
|
|
163
164
|
/**
|
|
@@ -183,6 +184,13 @@ export type DHTProgressEvents =
|
|
|
183
184
|
ProgressEvent<'kad-dht:query:add-peer', AddPeerEvent> |
|
|
184
185
|
ProgressEvent<'kad-dht:query:dial-peer', DialPeerEvent>
|
|
185
186
|
|
|
187
|
+
export interface DisjointPath {
|
|
188
|
+
index: number
|
|
189
|
+
queued: number
|
|
190
|
+
running: number
|
|
191
|
+
total: number
|
|
192
|
+
}
|
|
193
|
+
|
|
186
194
|
/**
|
|
187
195
|
* Emitted when sending queries to remote peers
|
|
188
196
|
*/
|
|
@@ -192,7 +200,7 @@ export interface SendQueryEvent {
|
|
|
192
200
|
name: 'SEND_QUERY'
|
|
193
201
|
messageName: keyof typeof MessageType
|
|
194
202
|
messageType: MessageType
|
|
195
|
-
path:
|
|
203
|
+
path: DisjointPath
|
|
196
204
|
}
|
|
197
205
|
|
|
198
206
|
/**
|
|
@@ -208,7 +216,7 @@ export interface PeerResponseEvent {
|
|
|
208
216
|
closer: PeerInfo[]
|
|
209
217
|
providers: PeerInfo[]
|
|
210
218
|
record?: DHTRecord
|
|
211
|
-
path:
|
|
219
|
+
path: DisjointPath
|
|
212
220
|
}
|
|
213
221
|
|
|
214
222
|
/**
|
|
@@ -219,7 +227,7 @@ export interface FinalPeerEvent {
|
|
|
219
227
|
peer: PeerInfo
|
|
220
228
|
type: EventTypes.FINAL_PEER
|
|
221
229
|
name: 'FINAL_PEER'
|
|
222
|
-
path:
|
|
230
|
+
path: DisjointPath
|
|
223
231
|
}
|
|
224
232
|
|
|
225
233
|
/**
|
|
@@ -230,7 +238,7 @@ export interface QueryErrorEvent {
|
|
|
230
238
|
type: EventTypes.QUERY_ERROR
|
|
231
239
|
name: 'QUERY_ERROR'
|
|
232
240
|
error: Error
|
|
233
|
-
path
|
|
241
|
+
path: DisjointPath
|
|
234
242
|
}
|
|
235
243
|
|
|
236
244
|
/**
|
|
@@ -241,6 +249,7 @@ export interface ProviderEvent {
|
|
|
241
249
|
type: EventTypes.PROVIDER
|
|
242
250
|
name: 'PROVIDER'
|
|
243
251
|
providers: PeerInfo[]
|
|
252
|
+
path: DisjointPath
|
|
244
253
|
}
|
|
245
254
|
|
|
246
255
|
/**
|
|
@@ -251,6 +260,7 @@ export interface ValueEvent {
|
|
|
251
260
|
type: EventTypes.VALUE
|
|
252
261
|
name: 'VALUE'
|
|
253
262
|
value: Uint8Array
|
|
263
|
+
path: DisjointPath
|
|
254
264
|
}
|
|
255
265
|
|
|
256
266
|
/**
|
|
@@ -260,21 +270,29 @@ export interface AddPeerEvent {
|
|
|
260
270
|
type: EventTypes.ADD_PEER
|
|
261
271
|
name: 'ADD_PEER'
|
|
262
272
|
peer: PeerId
|
|
263
|
-
path:
|
|
273
|
+
path: DisjointPath
|
|
264
274
|
}
|
|
265
275
|
|
|
266
276
|
/**
|
|
267
|
-
* Emitted when peers are dialled as part of a query
|
|
268
|
-
*
|
|
269
|
-
* @deprecated No longer emitted as sometimes connections are reused so it's not possible to say with certainty that a peer has been dialled
|
|
277
|
+
* Emitted when peers are dialled and a new stream is opened as part of a query
|
|
270
278
|
*/
|
|
271
279
|
export interface DialPeerEvent {
|
|
272
280
|
peer: PeerId
|
|
273
281
|
type: EventTypes.DIAL_PEER
|
|
274
282
|
name: 'DIAL_PEER'
|
|
283
|
+
path: DisjointPath
|
|
275
284
|
}
|
|
276
285
|
|
|
277
|
-
|
|
286
|
+
/**
|
|
287
|
+
* Emitted when sending queries to remote peers
|
|
288
|
+
*/
|
|
289
|
+
export interface PathEndedEvent {
|
|
290
|
+
type: EventTypes.PATH_ENDED
|
|
291
|
+
name: 'PATH_ENDED'
|
|
292
|
+
path: DisjointPath
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export type QueryEvent = SendQueryEvent | PeerResponseEvent | FinalPeerEvent | QueryErrorEvent | ProviderEvent | ValueEvent | AddPeerEvent | DialPeerEvent | PathEndedEvent
|
|
278
296
|
|
|
279
297
|
export interface RoutingTable {
|
|
280
298
|
size: number
|
|
@@ -285,6 +303,24 @@ export interface PeerInfoMapper {
|
|
|
285
303
|
}
|
|
286
304
|
|
|
287
305
|
export interface KadDHT {
|
|
306
|
+
/**
|
|
307
|
+
* This is the maximum size of the k-buckets and how many peers are looked up
|
|
308
|
+
* when searching for peers close to a key.
|
|
309
|
+
*/
|
|
310
|
+
readonly k: number
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Query concurrency factor - this controls how many peers we contact in
|
|
314
|
+
* parallel during a query.
|
|
315
|
+
*/
|
|
316
|
+
readonly a: number
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* From section 4.4 of the S/Kademlia paper - this is how many disjoint paths
|
|
320
|
+
* are used during a query.
|
|
321
|
+
*/
|
|
322
|
+
readonly d: number
|
|
323
|
+
|
|
288
324
|
/**
|
|
289
325
|
* Get a value from the DHT, the final ValueEvent will be the best value
|
|
290
326
|
*/
|
|
@@ -443,6 +479,22 @@ export interface KadDHTInit {
|
|
|
443
479
|
*/
|
|
444
480
|
kBucketSplitThreshold?: number
|
|
445
481
|
|
|
482
|
+
/**
|
|
483
|
+
* How many peers are queried in parallel during a query.
|
|
484
|
+
*
|
|
485
|
+
* @default 3
|
|
486
|
+
*/
|
|
487
|
+
alpha?: number
|
|
488
|
+
|
|
489
|
+
/**
|
|
490
|
+
* How many disjoint paths are used during a query
|
|
491
|
+
*
|
|
492
|
+
* @see https://telematics.tm.kit.edu/publications/Files/267/SKademlia_2007.pdf - section 4.4
|
|
493
|
+
*
|
|
494
|
+
* @default alpha
|
|
495
|
+
*/
|
|
496
|
+
disjointPaths?: number
|
|
497
|
+
|
|
446
498
|
/**
|
|
447
499
|
* How many bits of the KAD-ID of peers to use when creating the routing
|
|
448
500
|
* table.
|
package/src/kad-dht.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { NotFoundError, TypedEventEmitter, contentRoutingSymbol, peerDiscoverySy
|
|
|
2
2
|
import drain from 'it-drain'
|
|
3
3
|
import createMortice from 'mortice'
|
|
4
4
|
import pDefer from 'p-defer'
|
|
5
|
-
import { PROTOCOL } from './constants.js'
|
|
5
|
+
import { ALPHA, PROTOCOL } from './constants.js'
|
|
6
6
|
import { ContentFetching } from './content-fetching/index.js'
|
|
7
7
|
import { ContentRouting as KADDHTContentRouting } from './content-routing/index.js'
|
|
8
8
|
import { Network } from './network.js'
|
|
@@ -13,7 +13,7 @@ import { QuerySelf } from './query-self.js'
|
|
|
13
13
|
import { selectors as recordSelectors } from './record/selectors.js'
|
|
14
14
|
import { validators as recordValidators } from './record/validators.js'
|
|
15
15
|
import { Reprovider } from './reprovider.js'
|
|
16
|
-
import { RoutingTable } from './routing-table/index.js'
|
|
16
|
+
import { KBUCKET_SIZE, RoutingTable } from './routing-table/index.js'
|
|
17
17
|
import { RoutingTableRefresh } from './routing-table/refresh.js'
|
|
18
18
|
import { RPC } from './rpc/index.js'
|
|
19
19
|
import { TopologyListener } from './topology-listener.js'
|
|
@@ -113,6 +113,9 @@ export interface OperationMetrics {
|
|
|
113
113
|
* Original implementation in go: https://github.com/libp2p/go-libp2p-kad-dht.
|
|
114
114
|
*/
|
|
115
115
|
export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements KadDHTInterface, Startable {
|
|
116
|
+
public readonly k: number
|
|
117
|
+
public readonly a: number
|
|
118
|
+
public readonly d: number
|
|
116
119
|
public protocol: string
|
|
117
120
|
public routingTable: RoutingTable
|
|
118
121
|
public providers: Providers
|
|
@@ -122,7 +125,6 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
|
122
125
|
public readonly components: KadDHTComponents
|
|
123
126
|
private readonly log: Logger
|
|
124
127
|
private running: boolean
|
|
125
|
-
private readonly kBucketSize: number
|
|
126
128
|
private clientMode: boolean
|
|
127
129
|
private readonly validators: Validators
|
|
128
130
|
private readonly selectors: Selectors
|
|
@@ -161,8 +163,10 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
|
161
163
|
this.running = false
|
|
162
164
|
this.components = components
|
|
163
165
|
this.log = components.logger.forComponent(logPrefix)
|
|
166
|
+
this.k = init.kBucketSize ?? KBUCKET_SIZE
|
|
167
|
+
this.a = init.alpha ?? ALPHA
|
|
168
|
+
this.d = init.disjointPaths ?? this.a
|
|
164
169
|
this.protocol = init.protocol ?? PROTOCOL
|
|
165
|
-
this.kBucketSize = init.kBucketSize ?? 20
|
|
166
170
|
this.clientMode = init.clientMode ?? true
|
|
167
171
|
this.maxInboundStreams = init.maxInboundStreams ?? DEFAULT_MAX_INBOUND_STREAMS
|
|
168
172
|
this.maxOutboundStreams = init.maxOutboundStreams ?? DEFAULT_MAX_OUTBOUND_STREAMS
|
|
@@ -192,7 +196,7 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
|
192
196
|
})
|
|
193
197
|
|
|
194
198
|
this.routingTable = new RoutingTable(components, {
|
|
195
|
-
kBucketSize:
|
|
199
|
+
kBucketSize: this.k,
|
|
196
200
|
pingOldContactTimeout: init.pingOldContactTimeout,
|
|
197
201
|
pingOldContactConcurrency: init.pingOldContactConcurrency,
|
|
198
202
|
pingOldContactMaxQueueSize: init.pingOldContactMaxQueueSize,
|
|
@@ -218,8 +222,8 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
|
218
222
|
}
|
|
219
223
|
|
|
220
224
|
this.queryManager = new QueryManager(components, {
|
|
221
|
-
|
|
222
|
-
|
|
225
|
+
disjointPaths: this.d,
|
|
226
|
+
alpha: this.a,
|
|
223
227
|
logPrefix,
|
|
224
228
|
metricsPrefix,
|
|
225
229
|
initialQuerySelfHasRun,
|
|
@@ -317,7 +321,7 @@ export class KadDHT extends TypedEventEmitter<PeerDiscoveryEvents> implements Ka
|
|
|
317
321
|
|
|
318
322
|
await this.onPeerConnect(peerData)
|
|
319
323
|
}).catch(err => {
|
|
320
|
-
this.log.error('could not add %p to routing table - %e', peerId, err)
|
|
324
|
+
this.log.error('could not add %p to routing table - %e - %e', peerId, err)
|
|
321
325
|
})
|
|
322
326
|
})
|
|
323
327
|
|