@libp2p/kad-dht 12.0.15 → 12.0.16-1cd5aae11
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 +4 -4
- 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-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +3 -2
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/index.d.ts +34 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/network.d.ts +3 -0
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +33 -8
- package/dist/src/network.js.map +1 -1
- package/dist/src/peer-list/peer-distance-list.d.ts +13 -4
- package/dist/src/peer-list/peer-distance-list.d.ts.map +1 -1
- package/dist/src/peer-list/peer-distance-list.js +29 -21
- package/dist/src/peer-list/peer-distance-list.js.map +1 -1
- package/dist/src/peer-routing/index.d.ts +5 -5
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +15 -24
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/query/manager.d.ts +3 -0
- package/dist/src/query/manager.d.ts.map +1 -1
- package/dist/src/query/manager.js +14 -5
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/query/query-path.d.ts +6 -6
- package/dist/src/query/query-path.d.ts.map +1 -1
- package/dist/src/query/query-path.js +32 -20
- package/dist/src/query/query-path.js.map +1 -1
- package/dist/src/routing-table/index.d.ts +11 -5
- package/dist/src/routing-table/index.d.ts.map +1 -1
- package/dist/src/routing-table/index.js +84 -42
- package/dist/src/routing-table/index.js.map +1 -1
- package/dist/src/routing-table/k-bucket.d.ts +80 -115
- package/dist/src/routing-table/k-bucket.d.ts.map +1 -1
- package/dist/src/routing-table/k-bucket.js +165 -311
- package/dist/src/routing-table/k-bucket.js.map +1 -1
- package/dist/src/routing-table/refresh.d.ts.map +1 -1
- package/dist/src/routing-table/refresh.js +9 -4
- package/dist/src/routing-table/refresh.js.map +1 -1
- package/package.json +14 -16
- package/src/constants.ts +1 -1
- package/src/content-routing/index.ts +3 -2
- package/src/index.ts +37 -1
- package/src/network.ts +38 -9
- package/src/peer-list/peer-distance-list.ts +36 -25
- package/src/peer-routing/index.ts +19 -28
- package/src/query/manager.ts +18 -5
- package/src/query/query-path.ts +46 -30
- package/src/routing-table/index.ts +100 -46
- package/src/routing-table/k-bucket.ts +214 -359
- package/src/routing-table/refresh.ts +10 -4
- package/dist/src/query/utils.d.ts +0 -6
- package/dist/src/query/utils.d.ts.map +0 -1
- package/dist/src/query/utils.js +0 -53
- package/dist/src/query/utils.js.map +0 -1
- package/dist/typedoc-urls.json +0 -55
- package/src/query/utils.ts +0 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,MAAM,OAAO,CAAA;AAC1B,eAAO,MAAM,MAAM,QAAc,CAAA;AACjC,eAAO,MAAM,IAAI,QAAc,CAAA;AAE/B,eAAO,MAAM,cAAc,QAAY,CAAA;AAEvC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AAEzC,eAAO,MAAM,iBAAiB,gBAAgB,CAAA;AAE9C,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAElD,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAE3C,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAE3C,eAAO,MAAM,0BAA0B,QAAO,CAAA;AAE9C,eAAO,MAAM,oBAAoB,QAAc,CAAA;AAG/C,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAGvC,eAAO,MAAM,CAAC,KAAK,CAAA;AAGnB,eAAO,MAAM,KAAK,IAAI,CAAA;AAGtB,eAAO,MAAM,mBAAmB,QAAa,CAAA;AAG7C,eAAO,MAAM,2BAA2B,OAAS,CAAA;AAGjD,eAAO,MAAM,kBAAkB,QAAa,CAAA;AAG5C,eAAO,MAAM,sBAAsB,QAAa,CAAA;AAGhD,eAAO,MAAM,2BAA2B,QAAc,CAAA;AAGtD,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,MAAM,OAAO,CAAA;AAC1B,eAAO,MAAM,MAAM,QAAc,CAAA;AACjC,eAAO,MAAM,IAAI,QAAc,CAAA;AAE/B,eAAO,MAAM,cAAc,QAAY,CAAA;AAEvC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AAEzC,eAAO,MAAM,iBAAiB,gBAAgB,CAAA;AAE9C,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAElD,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAE3C,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAE3C,eAAO,MAAM,0BAA0B,QAAO,CAAA;AAE9C,eAAO,MAAM,oBAAoB,QAAc,CAAA;AAG/C,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAGvC,eAAO,MAAM,CAAC,KAAK,CAAA;AAGnB,eAAO,MAAM,KAAK,IAAI,CAAA;AAGtB,eAAO,MAAM,mBAAmB,QAAa,CAAA;AAG7C,eAAO,MAAM,2BAA2B,OAAS,CAAA;AAGjD,eAAO,MAAM,kBAAkB,QAAa,CAAA;AAG5C,eAAO,MAAM,sBAAsB,QAAa,CAAA;AAGhD,eAAO,MAAM,2BAA2B,QAAc,CAAA;AAGtD,eAAO,MAAM,qBAAqB,QAAe,CAAA"}
|
package/dist/src/constants.js
CHANGED
|
@@ -32,5 +32,5 @@ export const TABLE_REFRESH_INTERVAL = 5 * minute;
|
|
|
32
32
|
// How how long to look for new peers for
|
|
33
33
|
export const TABLE_REFRESH_QUERY_TIMEOUT = 30 * second;
|
|
34
34
|
// When a timeout is not specified, run a query for this long
|
|
35
|
-
export const DEFAULT_QUERY_TIMEOUT =
|
|
35
|
+
export const DEFAULT_QUERY_TIMEOUT = 180 * second;
|
|
36
36
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,sFAAsF;AACtF,0BAA0B;AAC1B,+EAA+E;AAC/E,oFAAoF;AACpF,0EAA0E;AAE1E,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAA;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAA;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAA;AAE/B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAA;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG,iBAAiB,CAAA;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAA;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAElD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAA;AAE3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,MAAM,CAAA;AAE/C,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEvC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;AAEnB,qDAAqD;AACrD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;AAEtB,mDAAmD;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAA;AAE7C,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAA;AAEjD,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAA;AAE5C,qCAAqC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,MAAM,CAAA;AAEhD,yCAAyC;AACzC,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,MAAM,CAAA;AAEtD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,sFAAsF;AACtF,0BAA0B;AAC1B,+EAA+E;AAC/E,oFAAoF;AACpF,0EAA0E;AAE1E,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAA;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAA;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAA;AAE/B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAA;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG,iBAAiB,CAAA;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAA;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAElD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAA;AAE3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,MAAM,CAAA;AAE/C,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEvC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;AAEnB,qDAAqD;AACrD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;AAEtB,mDAAmD;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAA;AAE7C,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAA;AAEjD,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAA;AAE5C,qCAAqC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,MAAM,CAAA;AAEhD,yCAAyC;AACzC,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,MAAM,CAAA;AAEtD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,GAAG,MAAM,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;gBAExB,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB;IAYnE;;;OAGG;IACK,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;gBAExB,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB;IAYnE;;;OAGG;IACK,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAoE9H;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,cAAc,CAAC,iBAAiB,GAAG,aAAa,GAAG,UAAU,CAAC;CAuF1H"}
|
|
@@ -30,11 +30,12 @@ export class ContentRouting {
|
|
|
30
30
|
*/
|
|
31
31
|
async *provide(key, multiaddrs, options = {}) {
|
|
32
32
|
this.log('provide %s', key);
|
|
33
|
+
const target = key.multihash.bytes;
|
|
33
34
|
// Add peer as provider
|
|
34
35
|
await this.providers.addProvider(key, this.components.peerId);
|
|
35
36
|
const msg = {
|
|
36
37
|
type: MessageType.ADD_PROVIDER,
|
|
37
|
-
key:
|
|
38
|
+
key: target,
|
|
38
39
|
providers: [
|
|
39
40
|
toPbPeerInfo({
|
|
40
41
|
id: this.components.peerId,
|
|
@@ -68,7 +69,7 @@ export class ContentRouting {
|
|
|
68
69
|
};
|
|
69
70
|
};
|
|
70
71
|
// Notify closest peers
|
|
71
|
-
yield* pipe(this.peerRouting.getClosestPeers(
|
|
72
|
+
yield* pipe(this.peerRouting.getClosestPeers(target, options), (source) => map(source, (event) => maybeNotifyPeer(event)), (source) => parallel(source, {
|
|
72
73
|
ordered: false,
|
|
73
74
|
concurrency: ALPHA
|
|
74
75
|
}), async function* (source) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,QAAQ,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,aAAa,EACd,MAAM,oBAAoB,CAAA;AAsB3B,MAAM,OAAO,cAAc;IACR,GAAG,CAAQ;IACX,UAAU,CAAkB;IAC5B,OAAO,CAAS;IAChB,WAAW,CAAa;IACxB,YAAY,CAAc;IAC1B,YAAY,CAAc;IAC1B,SAAS,CAAW;IAErC,YAAa,UAA4B,EAAE,IAAwB;QACjE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAEvF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,kBAAkB,CAAC,CAAA;QACzE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAE,OAAO,CAAE,GAAQ,EAAE,UAAuB,EAAE,UAA0B,EAAE;QAC9E,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -84,6 +84,7 @@ import { removePrivateAddressesMapper, removePublicAddressesMapper, passthroughM
|
|
|
84
84
|
import type { ProvidersInit } from './providers.js';
|
|
85
85
|
import type { Libp2pEvents, ComponentLogger, TypedEventTarget, Metrics, PeerId, PeerInfo, PeerStore, RoutingOptions } from '@libp2p/interface';
|
|
86
86
|
import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal';
|
|
87
|
+
import type { AdaptiveTimeoutInit } from '@libp2p/utils/src/adaptive-timeout.js';
|
|
87
88
|
import type { Datastore } from 'interface-datastore';
|
|
88
89
|
import type { CID } from 'multiformats/cid';
|
|
89
90
|
import type { ProgressEvent } from 'progress-events';
|
|
@@ -262,11 +263,39 @@ export type Selectors = Record<string, SelectFn>;
|
|
|
262
263
|
export type Validators = Record<string, ValidateFn>;
|
|
263
264
|
export interface KadDHTInit {
|
|
264
265
|
/**
|
|
265
|
-
* How many peers to store in each kBucket
|
|
266
|
+
* How many peers to store in each kBucket. Once there are more than this
|
|
267
|
+
* number of peers for a given prefix in a kBucket, the node will start to
|
|
268
|
+
* ping existing peers to see if they are still online - if they are offline
|
|
269
|
+
* they will be evicted and the new peer added.
|
|
266
270
|
*
|
|
267
271
|
* @default 20
|
|
268
272
|
*/
|
|
269
273
|
kBucketSize?: number;
|
|
274
|
+
/**
|
|
275
|
+
* The threshold at which a kBucket will be split into two smaller kBuckets.
|
|
276
|
+
*
|
|
277
|
+
* KBuckets will not be split once the maximum trie depth is reached
|
|
278
|
+
* (controlled by the `prefixLength` option) so one can replicate go-libp2p's
|
|
279
|
+
* accelerated DHT client by (for example) setting `kBucketSize` to `Infinity`
|
|
280
|
+
* and `kBucketSplitThreshold` to 20.
|
|
281
|
+
*
|
|
282
|
+
* @default kBucketSize
|
|
283
|
+
*/
|
|
284
|
+
kBucketSplitThreshold?: number;
|
|
285
|
+
/**
|
|
286
|
+
* How many bits of the KAD-ID of peers to use when creating the routing
|
|
287
|
+
* table.
|
|
288
|
+
*
|
|
289
|
+
* The routing table is a binary trie with peers stored in the leaf nodes. The
|
|
290
|
+
* larger this number gets, the taller the trie can grow and the more peers
|
|
291
|
+
* can be stored.
|
|
292
|
+
*
|
|
293
|
+
* Storing more peers means fewer lookups (and network operations) are needed
|
|
294
|
+
* to locate a certain peer, but also that more memory is consumed.
|
|
295
|
+
*
|
|
296
|
+
* @default 32
|
|
297
|
+
*/
|
|
298
|
+
prefixLength?: number;
|
|
270
299
|
/**
|
|
271
300
|
* If true, only ever be a DHT client. If false, be a DHT client until told
|
|
272
301
|
* to be a DHT server via `setMode`.
|
|
@@ -353,6 +382,10 @@ export interface KadDHTInit {
|
|
|
353
382
|
* with this filter.
|
|
354
383
|
*/
|
|
355
384
|
peerInfoMapper?(peer: PeerInfo): PeerInfo;
|
|
385
|
+
/**
|
|
386
|
+
* Dynamic network timeout settings for sending messages to peers
|
|
387
|
+
*/
|
|
388
|
+
networkDialTimeout?: Omit<AdaptiveTimeoutInit, 'metricsName' | 'metrics'>;
|
|
356
389
|
}
|
|
357
390
|
export interface KadDHTComponents {
|
|
358
391
|
peerId: PeerId;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAEH,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAEH,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AASzG,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,CAAA;AAEvF;;GAEG;AACH,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACpB,uDAAc,CAAA;IACd,6DAAa,CAAA;IACb,uDAAU,CAAA;IACV,yDAAW,CAAA;IACX,mDAAQ,CAAA;IACR,6CAAK,CAAA;IACL,mDAAQ,CAAA;IACR,qDAAS,CAAA;AACX,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAED;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAA;AAwVtB;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAE,IAAgB;IACtC,OAAO,CAAC,UAA4B,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAC5E,CAAC"}
|
package/dist/src/network.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { TypedEventEmitter } from '@libp2p/interface';
|
|
2
|
+
import { type AdaptiveTimeoutInit } from '@libp2p/utils/adaptive-timeout';
|
|
2
3
|
import { Message } from './message/dht.js';
|
|
3
4
|
import type { KadDHTComponents, QueryEvent } from './index.js';
|
|
4
5
|
import type { AbortOptions, Stream, PeerId, PeerInfo, Startable, RoutingOptions } from '@libp2p/interface';
|
|
5
6
|
export interface NetworkInit {
|
|
6
7
|
protocol: string;
|
|
7
8
|
logPrefix: string;
|
|
9
|
+
timeout?: Omit<AdaptiveTimeoutInit, 'metricsName' | 'metrics'>;
|
|
8
10
|
}
|
|
9
11
|
interface NetworkEvents {
|
|
10
12
|
'peer': CustomEvent<PeerInfo>;
|
|
@@ -17,6 +19,7 @@ export declare class Network extends TypedEventEmitter<NetworkEvents> implements
|
|
|
17
19
|
private readonly protocol;
|
|
18
20
|
private running;
|
|
19
21
|
private readonly components;
|
|
22
|
+
private readonly timeout;
|
|
20
23
|
/**
|
|
21
24
|
* Create a new network
|
|
22
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAG1F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAQ1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,SAAS,CAAC,CAAA;CAC/D;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;CAC9B;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,iBAAiB,CAAC,aAAa,CAAE,YAAW,SAAS;IAChF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC;;OAEG;gBACU,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW;IAe5D;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAQ7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAkDjH;;OAEG;IACK,WAAW,CAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IA4CjH;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjG;;;;OAIG;IACG,iBAAiB,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAuBzG"}
|
package/dist/src/network.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TypedEventEmitter } from '@libp2p/interface';
|
|
2
2
|
import { Libp2pRecord } from '@libp2p/record';
|
|
3
|
+
import { AdaptiveTimeout } from '@libp2p/utils/adaptive-timeout';
|
|
3
4
|
import { pbStream } from 'it-protobuf-stream';
|
|
4
5
|
import { CodeError } from 'protons-runtime';
|
|
5
6
|
import { Message } from './message/dht.js';
|
|
@@ -13,6 +14,7 @@ export class Network extends TypedEventEmitter {
|
|
|
13
14
|
protocol;
|
|
14
15
|
running;
|
|
15
16
|
components;
|
|
17
|
+
timeout;
|
|
16
18
|
/**
|
|
17
19
|
* Create a new network
|
|
18
20
|
*/
|
|
@@ -23,6 +25,11 @@ export class Network extends TypedEventEmitter {
|
|
|
23
25
|
this.log = components.logger.forComponent(`${init.logPrefix}:network`);
|
|
24
26
|
this.running = false;
|
|
25
27
|
this.protocol = protocol;
|
|
28
|
+
this.timeout = new AdaptiveTimeout({
|
|
29
|
+
...(init.timeout ?? {}),
|
|
30
|
+
metrics: components.metrics,
|
|
31
|
+
metricName: `${init.logPrefix.replaceAll(':', '_')}_network_message_send_times_milliseconds`
|
|
32
|
+
});
|
|
26
33
|
}
|
|
27
34
|
/**
|
|
28
35
|
* Start the network
|
|
@@ -60,10 +67,20 @@ export class Network extends TypedEventEmitter {
|
|
|
60
67
|
yield dialPeerEvent({ peer: to }, options);
|
|
61
68
|
yield sendQueryEvent({ to, type }, options);
|
|
62
69
|
let stream;
|
|
70
|
+
const signal = this.timeout.getTimeoutSignal(options);
|
|
71
|
+
options = {
|
|
72
|
+
...options,
|
|
73
|
+
signal
|
|
74
|
+
};
|
|
63
75
|
try {
|
|
64
76
|
const connection = await this.components.connectionManager.openConnection(to, options);
|
|
65
|
-
|
|
77
|
+
stream = await connection.newStream(this.protocol, options);
|
|
66
78
|
const response = await this._writeReadMessage(stream, msg, options);
|
|
79
|
+
stream.close(options)
|
|
80
|
+
.catch(err => {
|
|
81
|
+
this.log.error('error closing stream to %p', to, err);
|
|
82
|
+
stream?.abort(err);
|
|
83
|
+
});
|
|
67
84
|
yield peerResponseEvent({
|
|
68
85
|
from: to,
|
|
69
86
|
messageType: response.type,
|
|
@@ -73,13 +90,12 @@ export class Network extends TypedEventEmitter {
|
|
|
73
90
|
}, options);
|
|
74
91
|
}
|
|
75
92
|
catch (err) {
|
|
93
|
+
stream?.abort(err);
|
|
76
94
|
this.log.error('could not send %s to %p', msg.type, to, err);
|
|
77
95
|
yield queryErrorEvent({ from: to, error: err }, options);
|
|
78
96
|
}
|
|
79
97
|
finally {
|
|
80
|
-
|
|
81
|
-
await stream.close();
|
|
82
|
-
}
|
|
98
|
+
this.timeout.cleanUp(signal);
|
|
83
99
|
}
|
|
84
100
|
}
|
|
85
101
|
/**
|
|
@@ -97,19 +113,28 @@ export class Network extends TypedEventEmitter {
|
|
|
97
113
|
yield dialPeerEvent({ peer: to }, options);
|
|
98
114
|
yield sendQueryEvent({ to, type }, options);
|
|
99
115
|
let stream;
|
|
116
|
+
const signal = this.timeout.getTimeoutSignal(options);
|
|
117
|
+
options = {
|
|
118
|
+
...options,
|
|
119
|
+
signal
|
|
120
|
+
};
|
|
100
121
|
try {
|
|
101
122
|
const connection = await this.components.connectionManager.openConnection(to, options);
|
|
102
|
-
|
|
123
|
+
stream = await connection.newStream(this.protocol, options);
|
|
103
124
|
await this._writeMessage(stream, msg, options);
|
|
125
|
+
stream.close(options)
|
|
126
|
+
.catch(err => {
|
|
127
|
+
this.log.error('error closing stream to %p', to, err);
|
|
128
|
+
stream?.abort(err);
|
|
129
|
+
});
|
|
104
130
|
yield peerResponseEvent({ from: to, messageType: type }, options);
|
|
105
131
|
}
|
|
106
132
|
catch (err) {
|
|
133
|
+
stream?.abort(err);
|
|
107
134
|
yield queryErrorEvent({ from: to, error: err }, options);
|
|
108
135
|
}
|
|
109
136
|
finally {
|
|
110
|
-
|
|
111
|
-
await stream.close();
|
|
112
|
-
}
|
|
137
|
+
this.timeout.cleanUp(signal);
|
|
113
138
|
}
|
|
114
139
|
}
|
|
115
140
|
/**
|
package/dist/src/network.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PeerId } from '@libp2p/interface';
|
|
1
|
+
import type { PeerId, PeerInfo } from '@libp2p/interface';
|
|
2
2
|
/**
|
|
3
3
|
* Maintains a list of peerIds sorted by distance from a DHT key.
|
|
4
4
|
*/
|
|
@@ -18,13 +18,22 @@ export declare class PeerDistanceList {
|
|
|
18
18
|
*/
|
|
19
19
|
get length(): number;
|
|
20
20
|
/**
|
|
21
|
-
* The
|
|
21
|
+
* The peers in the list, in order of distance from the origin key
|
|
22
22
|
*/
|
|
23
|
-
get peers():
|
|
23
|
+
get peers(): PeerInfo[];
|
|
24
24
|
/**
|
|
25
25
|
* Add a peerId to the list.
|
|
26
26
|
*/
|
|
27
|
-
add(
|
|
27
|
+
add(peer: PeerInfo): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Add a peerId to the list.
|
|
30
|
+
*/
|
|
31
|
+
addWitKadId(peer: PeerInfo, kadId: Uint8Array): void;
|
|
32
|
+
/**
|
|
33
|
+
* Indicates whether any of the peerIds passed as a parameter are closer
|
|
34
|
+
* to the origin key than the furthest peerId in the PeerDistanceList.
|
|
35
|
+
*/
|
|
36
|
+
isCloser(peerId: PeerId): Promise<boolean>;
|
|
28
37
|
/**
|
|
29
38
|
* Indicates whether any of the peerIds passed as a parameter are closer
|
|
30
39
|
* to the origin key than the furthest peerId in the PeerDistanceList.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-distance-list.d.ts","sourceRoot":"","sources":["../../../src/peer-list/peer-distance-list.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"peer-distance-list.d.ts","sourceRoot":"","sources":["../../../src/peer-list/peer-distance-list.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAOzD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IAEzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IAEjC,OAAO,CAAC,aAAa,CAAgB;gBAExB,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAMvD;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,KAAK,IAAK,QAAQ,EAAE,CAEvB;IAED;;OAEG;IACG,GAAG,CAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC;;OAEG;IACH,WAAW,CAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAerD;;;OAGG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYjD;;;OAGG;IACG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAStD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { compare as uint8ArrayCompare } from 'uint8arrays/compare';
|
|
2
1
|
import { xor as uint8ArrayXor } from 'uint8arrays/xor';
|
|
3
|
-
import
|
|
2
|
+
import { xorCompare as uint8ArrayXorCompare } from 'uint8arrays/xor-compare';
|
|
3
|
+
import { convertPeerId } from '../utils.js';
|
|
4
4
|
/**
|
|
5
5
|
* Maintains a list of peerIds sorted by distance from a DHT key.
|
|
6
6
|
*/
|
|
@@ -26,47 +26,55 @@ export class PeerDistanceList {
|
|
|
26
26
|
return this.peerDistances.length;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
* The
|
|
29
|
+
* The peers in the list, in order of distance from the origin key
|
|
30
30
|
*/
|
|
31
31
|
get peers() {
|
|
32
|
-
return this.peerDistances.map(pd => pd.
|
|
32
|
+
return this.peerDistances.map(pd => pd.peer);
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Add a peerId to the list.
|
|
36
36
|
*/
|
|
37
|
-
async add(
|
|
38
|
-
|
|
37
|
+
async add(peer) {
|
|
38
|
+
const dhtKey = await convertPeerId(peer.id);
|
|
39
|
+
this.addWitKadId(peer, dhtKey);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Add a peerId to the list.
|
|
43
|
+
*/
|
|
44
|
+
addWitKadId(peer, kadId) {
|
|
45
|
+
if (this.peerDistances.find(pd => pd.peer.id.equals(peer.id)) != null) {
|
|
39
46
|
return;
|
|
40
47
|
}
|
|
41
|
-
const dhtKey = await utils.convertPeerId(peerId);
|
|
42
48
|
const el = {
|
|
43
|
-
|
|
44
|
-
distance: uint8ArrayXor(this.originDhtKey,
|
|
49
|
+
peer,
|
|
50
|
+
distance: uint8ArrayXor(this.originDhtKey, kadId)
|
|
45
51
|
};
|
|
46
52
|
this.peerDistances.push(el);
|
|
47
|
-
this.peerDistances.sort((a, b) =>
|
|
53
|
+
this.peerDistances.sort((a, b) => uint8ArrayXorCompare(a.distance, b.distance));
|
|
48
54
|
this.peerDistances = this.peerDistances.slice(0, this.capacity);
|
|
49
55
|
}
|
|
50
56
|
/**
|
|
51
57
|
* Indicates whether any of the peerIds passed as a parameter are closer
|
|
52
58
|
* to the origin key than the furthest peerId in the PeerDistanceList.
|
|
53
59
|
*/
|
|
54
|
-
async
|
|
55
|
-
if (peerIds.length === 0) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
60
|
+
async isCloser(peerId) {
|
|
58
61
|
if (this.length === 0) {
|
|
59
62
|
return true;
|
|
60
63
|
}
|
|
61
|
-
const
|
|
64
|
+
const dhtKey = await convertPeerId(peerId);
|
|
65
|
+
const dhtKeyXor = uint8ArrayXor(dhtKey, this.originDhtKey);
|
|
62
66
|
const furthestDistance = this.peerDistances[this.peerDistances.length - 1].distance;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
return uint8ArrayXorCompare(dhtKeyXor, furthestDistance) === -1;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Indicates whether any of the peerIds passed as a parameter are closer
|
|
71
|
+
* to the origin key than the furthest peerId in the PeerDistanceList.
|
|
72
|
+
*/
|
|
73
|
+
async anyCloser(peerIds) {
|
|
74
|
+
if (peerIds.length === 0) {
|
|
75
|
+
return false;
|
|
68
76
|
}
|
|
69
|
-
return
|
|
77
|
+
return Promise.any(peerIds.map(async (peerId) => this.isCloser(peerId)));
|
|
70
78
|
}
|
|
71
79
|
}
|
|
72
80
|
//# sourceMappingURL=peer-distance-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-distance-list.js","sourceRoot":"","sources":["../../../src/peer-list/peer-distance-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"peer-distance-list.js","sourceRoot":"","sources":["../../../src/peer-list/peer-distance-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { KadDHTComponents, DHTRecord,
|
|
1
|
+
import type { KadDHTComponents, DHTRecord, FinalPeerEvent, QueryEvent, Validators } from '../index.js';
|
|
2
2
|
import type { Network } from '../network.js';
|
|
3
3
|
import type { QueryManager, QueryOptions } from '../query/manager.js';
|
|
4
4
|
import type { RoutingTable } from '../routing-table/index.js';
|
|
@@ -37,17 +37,17 @@ export declare class PeerRouting {
|
|
|
37
37
|
*/
|
|
38
38
|
findPeer(id: PeerId, options?: RoutingOptions): AsyncGenerator<FinalPeerEvent | QueryEvent>;
|
|
39
39
|
/**
|
|
40
|
-
* Kademlia '
|
|
41
|
-
*
|
|
40
|
+
* Kademlia 'FIND_NODE' operation on a key, which could be the bytes from
|
|
41
|
+
* a multihash or a peer ID
|
|
42
42
|
*/
|
|
43
|
-
getClosestPeers(key: Uint8Array, options?: QueryOptions): AsyncGenerator<
|
|
43
|
+
getClosestPeers(key: Uint8Array, options?: QueryOptions): AsyncGenerator<QueryEvent>;
|
|
44
44
|
/**
|
|
45
45
|
* Query a particular peer for the value for the given key.
|
|
46
46
|
* It will either return the value or a list of closer peers.
|
|
47
47
|
*
|
|
48
48
|
* Note: The peerStore is updated with new addresses found for the given peer.
|
|
49
49
|
*/
|
|
50
|
-
getValueOrPeers(peer: PeerId, key: Uint8Array, options?: RoutingOptions): AsyncGenerator<
|
|
50
|
+
getValueOrPeers(peer: PeerId, key: Uint8Array, options?: RoutingOptions): AsyncGenerator<QueryEvent>;
|
|
51
51
|
/**
|
|
52
52
|
* Verify a record, fetching missing public keys from the network.
|
|
53
53
|
* Throws an error if the record is invalid.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEtG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAErE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAU,MAAM,EAAE,QAAQ,EAAa,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE5F,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAElB,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe;IAYhE;;;OAGG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAsCjE;;OAEG;IACK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IASjH;;OAEG;IACK,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAyBrG;;OAEG;IACK,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,cAAc,GAAG,UAAU,CAAC;IA4DxG;;;OAGG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IA0CjG;;;;;OAKG;IACK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAqBjH;;;OAGG;IACG,mBAAmB,CAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D;;;OAGG;IACG,qBAAqB,CAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAgCvF"}
|
|
@@ -146,16 +146,16 @@ export class PeerRouting {
|
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
/**
|
|
149
|
-
* Kademlia '
|
|
150
|
-
*
|
|
149
|
+
* Kademlia 'FIND_NODE' operation on a key, which could be the bytes from
|
|
150
|
+
* a multihash or a peer ID
|
|
151
151
|
*/
|
|
152
152
|
async *getClosestPeers(key, options = {}) {
|
|
153
153
|
this.log('getClosestPeers to %b', key);
|
|
154
|
-
const
|
|
155
|
-
const tablePeers = this.routingTable.closestPeers(
|
|
154
|
+
const kadId = await utils.convertBuffer(key);
|
|
155
|
+
const tablePeers = this.routingTable.closestPeers(kadId);
|
|
156
156
|
const self = this; // eslint-disable-line @typescript-eslint/no-this-alias
|
|
157
|
-
const peers = new PeerDistanceList(
|
|
158
|
-
await Promise.all(tablePeers.map(async (peer) => { await peers.add(peer); }));
|
|
157
|
+
const peers = new PeerDistanceList(kadId, this.routingTable.kBucketSize);
|
|
158
|
+
await Promise.all(tablePeers.map(async (peer) => { await peers.add({ id: peer, multiaddrs: [] }); }));
|
|
159
159
|
const getCloserPeersQuery = async function* ({ peer, signal }) {
|
|
160
160
|
self.log('closerPeersSingle %s from %p', uint8ArrayToString(key, 'base32'), peer);
|
|
161
161
|
const request = {
|
|
@@ -168,28 +168,19 @@ export class PeerRouting {
|
|
|
168
168
|
});
|
|
169
169
|
};
|
|
170
170
|
for await (const event of this.queryManager.run(key, getCloserPeersQuery, options)) {
|
|
171
|
-
yield event;
|
|
172
171
|
if (event.name === 'PEER_RESPONSE') {
|
|
173
|
-
await Promise.all(event.closer.map(async (peerData) => {
|
|
172
|
+
await Promise.all(event.closer.map(async (peerData) => {
|
|
173
|
+
await peers.add(peerData);
|
|
174
|
+
}));
|
|
174
175
|
}
|
|
176
|
+
yield event;
|
|
175
177
|
}
|
|
176
178
|
this.log('found %d peers close to %b', peers.length, key);
|
|
177
|
-
for (const
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
peer: {
|
|
183
|
-
id: peerId,
|
|
184
|
-
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
|
185
|
-
}
|
|
186
|
-
}, options);
|
|
187
|
-
}
|
|
188
|
-
catch (err) {
|
|
189
|
-
if (err.code !== 'ERR_NOT_FOUND') {
|
|
190
|
-
throw err;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
179
|
+
for (const peer of peers.peers) {
|
|
180
|
+
yield finalPeerEvent({
|
|
181
|
+
from: this.peerId,
|
|
182
|
+
peer
|
|
183
|
+
}, options);
|
|
193
184
|
}
|
|
194
185
|
}
|
|
195
186
|
/**
|