@origintrail-official/dkg-core 10.0.11 → 10.0.13
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/LICENSE +201 -201
- package/README.md +29 -29
- package/dist/assertion-seal.js +46 -1
- package/dist/assertion-seal.js.map +1 -1
- package/dist/author-catalog-codec.d.ts +8 -20
- package/dist/author-catalog-codec.d.ts.map +1 -1
- package/dist/author-catalog-codec.js +33 -41
- package/dist/author-catalog-codec.js.map +1 -1
- package/dist/author-lane-scope-v1.d.ts +40 -0
- package/dist/author-lane-scope-v1.d.ts.map +1 -0
- package/dist/author-lane-scope-v1.js +168 -0
- package/dist/author-lane-scope-v1.js.map +1 -0
- package/dist/backpressure-observability.d.ts +273 -0
- package/dist/backpressure-observability.d.ts.map +1 -0
- package/dist/backpressure-observability.js +572 -0
- package/dist/backpressure-observability.js.map +1 -0
- package/dist/canonical-graph-scoped-author-seal.d.ts +2 -5
- package/dist/canonical-graph-scoped-author-seal.d.ts.map +1 -1
- package/dist/canonical-graph-scoped-author-seal.js +40 -32
- package/dist/canonical-graph-scoped-author-seal.js.map +1 -1
- package/dist/cg-shared-projection.d.ts.map +1 -1
- package/dist/cg-shared-projection.js +2 -10
- package/dist/cg-shared-projection.js.map +1 -1
- package/dist/genesis.js +15 -15
- package/dist/graph-knowledge-asset-metadata.js +106 -106
- package/dist/imported-artifact-metadata.js +31 -31
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/ka-bundle-v1.d.ts +2 -0
- package/dist/ka-bundle-v1.d.ts.map +1 -1
- package/dist/ka-bundle-v1.js +7 -2
- package/dist/ka-bundle-v1.js.map +1 -1
- package/dist/ka-content-scope.d.ts +27 -0
- package/dist/ka-content-scope.d.ts.map +1 -1
- package/dist/ka-content-scope.js +43 -1
- package/dist/ka-content-scope.js.map +1 -1
- package/dist/ka-ual-identity.d.ts +33 -0
- package/dist/ka-ual-identity.d.ts.map +1 -0
- package/dist/ka-ual-identity.js +89 -0
- package/dist/ka-ual-identity.js.map +1 -0
- package/dist/message-stream-pool.d.ts +15 -0
- package/dist/message-stream-pool.d.ts.map +1 -1
- package/dist/message-stream-pool.js +23 -0
- package/dist/message-stream-pool.js.map +1 -1
- package/dist/protocol-router.d.ts +18 -0
- package/dist/protocol-router.d.ts.map +1 -1
- package/dist/protocol-router.js +96 -1
- package/dist/protocol-router.js.map +1 -1
- package/dist/swm-author-inventory-v1.d.ts +83 -0
- package/dist/swm-author-inventory-v1.d.ts.map +1 -0
- package/dist/swm-author-inventory-v1.js +379 -0
- package/dist/swm-author-inventory-v1.js.map +1 -0
- package/dist/telemetry-api.d.ts +76 -0
- package/dist/telemetry-api.d.ts.map +1 -1
- package/dist/telemetry-api.js +101 -0
- package/dist/telemetry-api.js.map +1 -1
- package/dist/vm-update-convergence.d.ts +277 -0
- package/dist/vm-update-convergence.d.ts.map +1 -0
- package/dist/vm-update-convergence.js +715 -0
- package/dist/vm-update-convergence.js.map +1 -0
- package/package.json +2 -2
package/dist/ka-content-scope.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { canonicalKnowledgeAssetAgentAddress, contextGraphLayerUri, } from './constants.js';
|
|
2
2
|
import { assertSafeIri, isSafeIri } from './sparql-safe.js';
|
|
3
|
-
import {
|
|
3
|
+
import { assertCanonicalEvmAddress, } from './sync-wire-scalars.js';
|
|
4
|
+
import { MAX_NETWORK_ID_BYTES_V1, assertNetworkIdV1, } from './sync-wire-identifiers.js';
|
|
4
5
|
/** Existing V10 KAs may be resolved through the quarantined read-only path. */
|
|
5
6
|
export const LEGACY_ROOT_CONTENT_SCOPE_VERSION = 1;
|
|
6
7
|
/** All newly-created and mutated KAs use one exact per-KA graph. */
|
|
@@ -20,6 +21,14 @@ const DETERMINISTIC_KA_UAL_RE = /^did:dkg:([^/]+)\/(0x[0-9a-fA-F]{40})\/([0-9]+)
|
|
|
20
21
|
* through the packed identity are valid graph identities.
|
|
21
22
|
*/
|
|
22
23
|
export const MAX_KNOWLEDGE_ASSET_NUMBER = (1n << 96n) - 1n;
|
|
24
|
+
export const MAX_CANONICAL_KNOWLEDGE_ASSET_NUMBER_DIGITS_V1 = MAX_KNOWLEDGE_ASSET_NUMBER.toString(10).length;
|
|
25
|
+
export const MAX_CANONICAL_DETERMINISTIC_UAL_BYTES_V1 = 'did:dkg:'.length
|
|
26
|
+
+ MAX_NETWORK_ID_BYTES_V1
|
|
27
|
+
+ '/'.length
|
|
28
|
+
+ '0x'.length
|
|
29
|
+
+ 40
|
|
30
|
+
+ '/'.length
|
|
31
|
+
+ MAX_CANONICAL_KNOWLEDGE_ASSET_NUMBER_DIGITS_V1;
|
|
23
32
|
const MAX_PACKED_ROOTLESS_KNOWLEDGE_ASSET_ID = (1n << 256n) - 1n;
|
|
24
33
|
const PACKED_ROOTLESS_KNOWLEDGE_ASSET_NUMBER_BITS = 96n;
|
|
25
34
|
/**
|
|
@@ -29,6 +38,11 @@ const PACKED_ROOTLESS_KNOWLEDGE_ASSET_NUMBER_BITS = 96n;
|
|
|
29
38
|
*/
|
|
30
39
|
export function parseDeterministicKnowledgeAssetUal(rawUal) {
|
|
31
40
|
const input = String(rawUal ?? '').trim();
|
|
41
|
+
// Every canonical component is ASCII. Bound the full hostile scalar before
|
|
42
|
+
// IRI validation, regexp traversal, or BigInt parsing can allocate from it.
|
|
43
|
+
if (input.length > MAX_CANONICAL_DETERMINISTIC_UAL_BYTES_V1) {
|
|
44
|
+
throw new Error(`Graph-scoped KA UAL exceeds ${MAX_CANONICAL_DETERMINISTIC_UAL_BYTES_V1} bytes`);
|
|
45
|
+
}
|
|
32
46
|
if (!isSafeIri(input)) {
|
|
33
47
|
throw new Error(`Invalid graph-scoped KA UAL: ${input || '(empty)'}`);
|
|
34
48
|
}
|
|
@@ -37,6 +51,12 @@ export function parseDeterministicKnowledgeAssetUal(rawUal) {
|
|
|
37
51
|
throw new Error(`Graph-scoped KA UAL must match did:dkg:<chain>/<0x-author>/<number>: ${input}`);
|
|
38
52
|
}
|
|
39
53
|
const [, chainId, rawAgentAddress, rawKaNumber] = match;
|
|
54
|
+
if (chainId.length > MAX_NETWORK_ID_BYTES_V1) {
|
|
55
|
+
throw new Error(`Graph-scoped KA network exceeds ${MAX_NETWORK_ID_BYTES_V1} bytes`);
|
|
56
|
+
}
|
|
57
|
+
if (rawKaNumber.length > MAX_CANONICAL_KNOWLEDGE_ASSET_NUMBER_DIGITS_V1) {
|
|
58
|
+
throw new Error('Graph-scoped KA number exceeds the packed uint96 decimal width');
|
|
59
|
+
}
|
|
40
60
|
const agentAddress = canonicalKnowledgeAssetAgentAddress(rawAgentAddress);
|
|
41
61
|
// BigInt canonicalisation prevents leading-zero aliases for one graph.
|
|
42
62
|
const kaNumberValue = BigInt(rawKaNumber);
|
|
@@ -51,6 +71,28 @@ export function parseDeterministicKnowledgeAssetUal(rawUal) {
|
|
|
51
71
|
kaNumber,
|
|
52
72
|
};
|
|
53
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Assert the exact deterministic KA wire identity without coupling callers to
|
|
76
|
+
* an author-seal codec. Unlike the lower-level canonicalizer, this refuses
|
|
77
|
+
* aliases and returns every parsed identity component in one pass.
|
|
78
|
+
*/
|
|
79
|
+
export function assertCanonicalDeterministicUalV1(value) {
|
|
80
|
+
if (typeof value !== 'string') {
|
|
81
|
+
throw new Error('kaUal must be a string');
|
|
82
|
+
}
|
|
83
|
+
const parsed = parseDeterministicKnowledgeAssetUal(value);
|
|
84
|
+
assertNetworkIdV1(parsed.chainId, 'kaUal network');
|
|
85
|
+
assertCanonicalEvmAddress(parsed.agentAddress, 'kaUal author');
|
|
86
|
+
if (parsed.ual !== value) {
|
|
87
|
+
throw new Error('kaUal must already be in canonical form');
|
|
88
|
+
}
|
|
89
|
+
return Object.freeze({
|
|
90
|
+
ual: parsed.ual,
|
|
91
|
+
chainId: parsed.chainId,
|
|
92
|
+
agentAddress: parsed.agentAddress,
|
|
93
|
+
kaNumber: parsed.kaNumber,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
54
96
|
/**
|
|
55
97
|
* Unpack the canonical rootless on-chain KA id into the same deterministic
|
|
56
98
|
* identity used by graph-scoped content. Legacy sequential ids have no author
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ka-content-scope.js","sourceRoot":"","sources":["../src/ka-content-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,EACnC,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,iBAAiB,GAElB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ka-content-scope.js","sourceRoot":"","sources":["../src/ka-content-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** `(1 << 96) - 1` — the rootless KA-number field width. */
|
|
2
|
+
export declare const MAX_ROOTLESS_KA_NUMBER_V1: bigint;
|
|
3
|
+
/** Upper bound of the on-chain id domain. */
|
|
4
|
+
export declare const MAX_KA_ID_V1: bigint;
|
|
5
|
+
export declare class KaUalIdentityError extends Error {
|
|
6
|
+
constructor(message: string, options?: {
|
|
7
|
+
cause?: unknown;
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A canonical UAL chain id: optional lowercase namespace, canonical decimal tail.
|
|
12
|
+
*
|
|
13
|
+
* NOT the numeric EVM chain id. `ChainAdapter.chainId` is namespaced —
|
|
14
|
+
* `base:84532`, `otp:20430`, `evm:31337` — and its own doc comment says it is
|
|
15
|
+
* "not directly parseable with `BigInt()`".
|
|
16
|
+
*/
|
|
17
|
+
export declare function assertCanonicalUalChainIdV1(value: unknown, label?: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Build the canonical UAL for a resolved on-chain KA id.
|
|
20
|
+
*
|
|
21
|
+
* The address is **normalized to lowercase**, not rejected for case. That is
|
|
22
|
+
* deliberate and is what a builder should do: the output is canonical either
|
|
23
|
+
* way, and the sole production caller passes an address straight from
|
|
24
|
+
* `getDKGKnowledgeAssetsAddress()`, which returns the checksummed form. The
|
|
25
|
+
* strictness belongs on the PARSE side — accepting a mixed-case address when
|
|
26
|
+
* turning a UAL back into candidates would make two spellings denote one KA —
|
|
27
|
+
* and that is enforced separately in `vm-update-convergence.ts`.
|
|
28
|
+
*
|
|
29
|
+
* Genuinely invalid input still fails: a non-address string, a negative id, an
|
|
30
|
+
* id above uint256, or a noncanonical chain id.
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildKnowledgeAssetUalFromOnChainIdV1(chainId: string, legacyStorageAddress: string, kaId: bigint): string;
|
|
33
|
+
//# sourceMappingURL=ka-ual-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ka-ual-identity.d.ts","sourceRoot":"","sources":["../src/ka-ual-identity.ts"],"names":[],"mappings":"AAiBA,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB,QAAmB,CAAC;AAC1D,6CAA6C;AAC7C,eAAO,MAAM,YAAY,QAAoB,CAAC;AAK9C,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI3D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAY,GAAG,MAAM,CAmBrF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAC5B,IAAI,EAAE,MAAM,GACX,MAAM,CAeR"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single owner of the legacy/rootless Knowledge Asset UAL rule.
|
|
3
|
+
*
|
|
4
|
+
* V10 rootless KA ids pack the author address into the high 160 bits and the
|
|
5
|
+
* per-author KA number into the low 96 bits, so their canonical identity is
|
|
6
|
+
* author/number. Legacy sequential ids have no author bits and keep the older
|
|
7
|
+
* storage-contract/id form. Which branch applies is decided by `kaId >> 96n`.
|
|
8
|
+
*
|
|
9
|
+
* This lives in `core` because it is the lowest package that every consumer can
|
|
10
|
+
* reach: `agent → chain → core`. An earlier revision restated the rule inside
|
|
11
|
+
* `vm-update-convergence.ts` and guarded the copy with a cross-package parity
|
|
12
|
+
* test. That test does detect drift — but only after it exists, and it left two
|
|
13
|
+
* production implementations of one identity rule to keep in step. The rule now
|
|
14
|
+
* has one home and `buildReconciledKnowledgeAssetUal` delegates to it.
|
|
15
|
+
*/
|
|
16
|
+
import { parseCanonicalDecimalU256 } from './sync-wire-scalars.js';
|
|
17
|
+
/** `(1 << 96) - 1` — the rootless KA-number field width. */
|
|
18
|
+
export const MAX_ROOTLESS_KA_NUMBER_V1 = (1n << 96n) - 1n;
|
|
19
|
+
/** Upper bound of the on-chain id domain. */
|
|
20
|
+
export const MAX_KA_ID_V1 = (1n << 256n) - 1n;
|
|
21
|
+
const EVM_ADDRESS_ANY_CASE = /^0x[0-9a-fA-F]{40}$/;
|
|
22
|
+
const CANONICAL_UNSIGNED_DECIMAL = /^(?:0|[1-9][0-9]*)$/;
|
|
23
|
+
export class KaUalIdentityError extends Error {
|
|
24
|
+
constructor(message, options) {
|
|
25
|
+
super(message, options);
|
|
26
|
+
this.name = 'KaUalIdentityError';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A canonical UAL chain id: optional lowercase namespace, canonical decimal tail.
|
|
31
|
+
*
|
|
32
|
+
* NOT the numeric EVM chain id. `ChainAdapter.chainId` is namespaced —
|
|
33
|
+
* `base:84532`, `otp:20430`, `evm:31337` — and its own doc comment says it is
|
|
34
|
+
* "not directly parseable with `BigInt()`".
|
|
35
|
+
*/
|
|
36
|
+
export function assertCanonicalUalChainIdV1(value, label = 'chainId') {
|
|
37
|
+
if (typeof value !== 'string' || value.length === 0 || value.length > 256) {
|
|
38
|
+
throw new KaUalIdentityError(`${label} must be a nonempty string`);
|
|
39
|
+
}
|
|
40
|
+
const separator = value.lastIndexOf(':');
|
|
41
|
+
const namespace = separator === -1 ? '' : value.slice(0, separator);
|
|
42
|
+
const decimal = separator === -1 ? value : value.slice(separator + 1);
|
|
43
|
+
if (separator !== -1 && !/^[a-z][a-z0-9-]*(?::[a-z0-9-]+)*$/.test(namespace)) {
|
|
44
|
+
throw new KaUalIdentityError(`${label} namespace must be lowercase alphanumeric`);
|
|
45
|
+
}
|
|
46
|
+
if (!CANONICAL_UNSIGNED_DECIMAL.test(decimal)) {
|
|
47
|
+
throw new KaUalIdentityError(`${label} must end in a canonical decimal chain number`);
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
parseCanonicalDecimalU256(decimal, label);
|
|
51
|
+
}
|
|
52
|
+
catch (cause) {
|
|
53
|
+
throw new KaUalIdentityError(`${label} is not a canonical u256 chain number`, { cause });
|
|
54
|
+
}
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build the canonical UAL for a resolved on-chain KA id.
|
|
59
|
+
*
|
|
60
|
+
* The address is **normalized to lowercase**, not rejected for case. That is
|
|
61
|
+
* deliberate and is what a builder should do: the output is canonical either
|
|
62
|
+
* way, and the sole production caller passes an address straight from
|
|
63
|
+
* `getDKGKnowledgeAssetsAddress()`, which returns the checksummed form. The
|
|
64
|
+
* strictness belongs on the PARSE side — accepting a mixed-case address when
|
|
65
|
+
* turning a UAL back into candidates would make two spellings denote one KA —
|
|
66
|
+
* and that is enforced separately in `vm-update-convergence.ts`.
|
|
67
|
+
*
|
|
68
|
+
* Genuinely invalid input still fails: a non-address string, a negative id, an
|
|
69
|
+
* id above uint256, or a noncanonical chain id.
|
|
70
|
+
*/
|
|
71
|
+
export function buildKnowledgeAssetUalFromOnChainIdV1(chainId, legacyStorageAddress, kaId) {
|
|
72
|
+
const canonicalChain = assertCanonicalUalChainIdV1(chainId, 'ual chainId');
|
|
73
|
+
if (typeof legacyStorageAddress !== 'string' || !EVM_ADDRESS_ANY_CASE.test(legacyStorageAddress)) {
|
|
74
|
+
throw new KaUalIdentityError('ual storage address must be a 20-byte 0x EVM address');
|
|
75
|
+
}
|
|
76
|
+
if (typeof kaId !== 'bigint')
|
|
77
|
+
throw new KaUalIdentityError('kaId must be a bigint');
|
|
78
|
+
if (kaId < 0n)
|
|
79
|
+
throw new KaUalIdentityError('kaId must not be negative');
|
|
80
|
+
if (kaId > MAX_KA_ID_V1)
|
|
81
|
+
throw new KaUalIdentityError('kaId exceeds uint256');
|
|
82
|
+
if (kaId >> 96n === 0n) {
|
|
83
|
+
return `did:dkg:${canonicalChain}/${legacyStorageAddress.toLowerCase()}/${kaId.toString()}`;
|
|
84
|
+
}
|
|
85
|
+
const authorAddress = `0x${(kaId >> 96n).toString(16).padStart(40, '0')}`;
|
|
86
|
+
const kaNumber = kaId & MAX_ROOTLESS_KA_NUMBER_V1;
|
|
87
|
+
return `did:dkg:${canonicalChain}/${authorAddress}/${kaNumber.toString()}`;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=ka-ual-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ka-ual-identity.js","sourceRoot":"","sources":["../src/ka-ual-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -286,6 +286,21 @@ export declare class MessageStreamPool {
|
|
|
286
286
|
size(): number;
|
|
287
287
|
/** Diagnostics: per-peer state snapshot. */
|
|
288
288
|
stats(peerIdStr: string): PerPeerStats | undefined;
|
|
289
|
+
/**
|
|
290
|
+
* Close the stream held for `peerIdStr` once it is quiescent.
|
|
291
|
+
* Returns `true` when a live stream existed and was closed;
|
|
292
|
+
* `false` when the peer holds no stream OR the stream still has
|
|
293
|
+
* in-flight / queued work.
|
|
294
|
+
*
|
|
295
|
+
* The busy case is deliberately left alone rather than force-
|
|
296
|
+
* aborted: rejecting live requests here would reproduce the exact
|
|
297
|
+
* all-in-flight-requests-die failure the caller is trying to route
|
|
298
|
+
* around. Callers that want the stream gone stop feeding it new
|
|
299
|
+
* sends and invoke this again on their next pass — an active
|
|
300
|
+
* stream drains naturally (or hits the pool's own idle/reset
|
|
301
|
+
* teardown) and the retire lands then.
|
|
302
|
+
*/
|
|
303
|
+
closePeerIfIdle(peerIdStr: string, reason?: string): Promise<boolean>;
|
|
289
304
|
/**
|
|
290
305
|
* Close every pooled stream and reject all pending requests.
|
|
291
306
|
* Safe to call multiple times. After close, further `send()` calls
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-stream-pool.d.ts","sourceRoot":"","sources":["../src/message-stream-pool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-stream-pool.d.ts","sourceRoot":"","sources":["../src/message-stream-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -372,6 +372,29 @@ export class MessageStreamPool {
|
|
|
372
372
|
lastActivityAgoMs: now - state.lastActivityAt,
|
|
373
373
|
};
|
|
374
374
|
}
|
|
375
|
+
/**
|
|
376
|
+
* Close the stream held for `peerIdStr` once it is quiescent.
|
|
377
|
+
* Returns `true` when a live stream existed and was closed;
|
|
378
|
+
* `false` when the peer holds no stream OR the stream still has
|
|
379
|
+
* in-flight / queued work.
|
|
380
|
+
*
|
|
381
|
+
* The busy case is deliberately left alone rather than force-
|
|
382
|
+
* aborted: rejecting live requests here would reproduce the exact
|
|
383
|
+
* all-in-flight-requests-die failure the caller is trying to route
|
|
384
|
+
* around. Callers that want the stream gone stop feeding it new
|
|
385
|
+
* sends and invoke this again on their next pass — an active
|
|
386
|
+
* stream drains naturally (or hits the pool's own idle/reset
|
|
387
|
+
* teardown) and the retire lands then.
|
|
388
|
+
*/
|
|
389
|
+
async closePeerIfIdle(peerIdStr, reason = 'peer stream retired') {
|
|
390
|
+
const state = this.peers.get(peerIdStr);
|
|
391
|
+
if (!state || state.closed)
|
|
392
|
+
return false;
|
|
393
|
+
if (state.inFlight !== null || state.queue.length > 0)
|
|
394
|
+
return false;
|
|
395
|
+
await this.closePeer(state, reason);
|
|
396
|
+
return true;
|
|
397
|
+
}
|
|
375
398
|
/**
|
|
376
399
|
* Close every pooled stream and reject all pending requests.
|
|
377
400
|
* Safe to call multiple times. After close, further `send()` calls
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-stream-pool.js","sourceRoot":"","sources":["../src/message-stream-pool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-stream-pool.js","sourceRoot":"","sources":["../src/message-stream-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -212,6 +212,24 @@ export declare class ProtocolRouter {
|
|
|
212
212
|
unregister(protocolId: string): void;
|
|
213
213
|
send(peerIdStr: string, protocolId: string, data: Uint8Array, timeoutMsOrOpts?: number | SendOptions): Promise<Uint8Array>;
|
|
214
214
|
private sendInner;
|
|
215
|
+
/**
|
|
216
|
+
* True when the peer currently has at least one OPEN connection and
|
|
217
|
+
* every one of them rides a circuit relay. Three shapes:
|
|
218
|
+
*
|
|
219
|
+
* * a direct connection is present → false (pooling is safe);
|
|
220
|
+
* * open connections exist, all relayed → true;
|
|
221
|
+
* * no open connections at all → false — nothing observed yet, so
|
|
222
|
+
* the caller keeps its existing behavior rather than penalizing
|
|
223
|
+
* a cold peer for connections it doesn't have.
|
|
224
|
+
*
|
|
225
|
+
* Walks the RAW connection table and filters by `remotePeer`
|
|
226
|
+
* ourselves — same Window D rationale as the one-shot fast path
|
|
227
|
+
* (libp2p's peerId-keyed lookup can return `[]` while the raw walk
|
|
228
|
+
* shows live matching connections). Matching is by peerId string:
|
|
229
|
+
* the router, the pool, and libp2p's `PeerId.toString()` all use
|
|
230
|
+
* the same canonical text form as the peer key.
|
|
231
|
+
*/
|
|
232
|
+
private peerHasOnlyRelayedConnections;
|
|
215
233
|
}
|
|
216
234
|
/**
|
|
217
235
|
* "Window D" workaround — attempts to open `protocolId` on an EXISTING
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-router.d.ts","sourceRoot":"","sources":["../src/protocol-router.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol-router.d.ts","sourceRoot":"","sources":["../src/protocol-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,0BAA0B,CAAC;AAGlC,KAAK,mBAAmB,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG;IAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAEpG,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD,yGAAyG;AACzG,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAkC5D;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACzC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,mFAAmF;IACnF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GAAG,UAAU,EACjC,OAAO,CAAC,EAAE,qBAAqB,KAC5B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,wBAAwB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,iEAAiE;AACjE,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA0C;IAC1E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAsB;IAC/D,OAAO,CAAC,QAAQ,CAAuC;IACvD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB,CAAS;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IACpE;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyD;gBAE7E,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB;YAQ5C,mBAAmB;IAcjC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,aAAa,CACX,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAC9C,IAAI;IA2EP,OAAO,CAAC,yBAAyB;IAmDjC;;;;OAIG;IACH,YAAY,IAAI,KAAK,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAQF;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,2BAA2B,GACpC,IAAI;IAyFP,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAuC9B,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,UAAU,EAChB,eAAe,GAAE,MAAM,GAAG,WAAqC,GAC9D,OAAO,CAAC,UAAU,CAAC;YAmBR,SAAS;IAodvB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,6BAA6B;CAsBtC;AAoCD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,KACjE,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,UAAU,iCAAiC;IACzC,kBAAkB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAQD,wBAAsB,0BAA0B,CAC9C,cAAc,EAAE,MAAM,aAAa,CAAC,kBAAkB,CAAC,EACvD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CA8GlD;AA+BD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,UAAU,CAAC;IACrB,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,cAAc,EAAE,MAAM,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAsGlC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAmBrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,SAAS,EAAE,WAAW,GAAG,SAAS,GACjC,WAAW,GAAG,SAAS,CA8BzB;AAiID;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAWhE;AAKD,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,cAAc;QACtB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;QACpG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;KACrG;CACF"}
|
package/dist/protocol-router.js
CHANGED
|
@@ -468,7 +468,37 @@ export class ProtocolRouter {
|
|
|
468
468
|
// is exhausted.
|
|
469
469
|
const overlay = this.pooledByLogical.get(protocolId);
|
|
470
470
|
const memoizedVariant = this.peerWireVariantFor(peerIdStr, protocolId);
|
|
471
|
-
|
|
471
|
+
// Relay-only gate for the pooled wire. The pooled variant
|
|
472
|
+
// multiplexes every request for a peer onto ONE long-lived
|
|
473
|
+
// substream; over a circuit-relay connection that substream's
|
|
474
|
+
// life is bounded by the relay's reservation churn (~300 s), and
|
|
475
|
+
// one request timeout aborts the shared stream — rejecting every
|
|
476
|
+
// in-flight and queued request at once. Observed on a 10.0.12
|
|
477
|
+
// Base-mainnet edge node (2026-08-06): sync to a NAT-only peer
|
|
478
|
+
// reachable exclusively via circuit relays died 4/4 with "pooled
|
|
479
|
+
// stream reset: request aborted/timeout" while one-shot streams
|
|
480
|
+
// to the same peer succeeded immediately. So: use the pool only
|
|
481
|
+
// when the peer has at least one DIRECT connection. Re-evaluated
|
|
482
|
+
// per send — a later direct connection (e.g. DCUtR upgrade)
|
|
483
|
+
// re-enables the pool with no memo to clear, and a pool stream
|
|
484
|
+
// already held for a now-relay-only peer is retired once
|
|
485
|
+
// quiescent instead of being reused. Cold peers (no connections
|
|
486
|
+
// at all) keep the pooled path: there is no relayed connection
|
|
487
|
+
// to observe yet and the pool's own dial may come up direct.
|
|
488
|
+
// Requester-side selection only — responders that don't
|
|
489
|
+
// advertise the pooled wire already fall back via
|
|
490
|
+
// multistream-select.
|
|
491
|
+
let usePooledWire = overlay !== undefined && memoizedVariant !== 'one-shot';
|
|
492
|
+
if (usePooledWire && overlay && this.peerHasOnlyRelayedConnections(peerIdStr)) {
|
|
493
|
+
usePooledWire = false;
|
|
494
|
+
// Fire-and-forget: retiring the held stream must not delay or
|
|
495
|
+
// fail this send; if the stream is still busy the retire is a
|
|
496
|
+
// no-op and a later send's pass lands it once drained.
|
|
497
|
+
overlay.pool
|
|
498
|
+
.closePeerIfIdle(peerIdStr, 'relay-only peer: pooled wire bypassed')
|
|
499
|
+
.catch(() => undefined);
|
|
500
|
+
}
|
|
501
|
+
if (overlay && usePooledWire) {
|
|
472
502
|
try {
|
|
473
503
|
const remainingForPool = Math.max(0, timeoutMs - (Date.now() - overallStartedAt));
|
|
474
504
|
const response = await overlay.pool.send(peerIdStr, data, {
|
|
@@ -839,6 +869,71 @@ export class ProtocolRouter {
|
|
|
839
869
|
}
|
|
840
870
|
throw lastErr;
|
|
841
871
|
}
|
|
872
|
+
/**
|
|
873
|
+
* True when the peer currently has at least one OPEN connection and
|
|
874
|
+
* every one of them rides a circuit relay. Three shapes:
|
|
875
|
+
*
|
|
876
|
+
* * a direct connection is present → false (pooling is safe);
|
|
877
|
+
* * open connections exist, all relayed → true;
|
|
878
|
+
* * no open connections at all → false — nothing observed yet, so
|
|
879
|
+
* the caller keeps its existing behavior rather than penalizing
|
|
880
|
+
* a cold peer for connections it doesn't have.
|
|
881
|
+
*
|
|
882
|
+
* Walks the RAW connection table and filters by `remotePeer`
|
|
883
|
+
* ourselves — same Window D rationale as the one-shot fast path
|
|
884
|
+
* (libp2p's peerId-keyed lookup can return `[]` while the raw walk
|
|
885
|
+
* shows live matching connections). Matching is by peerId string:
|
|
886
|
+
* the router, the pool, and libp2p's `PeerId.toString()` all use
|
|
887
|
+
* the same canonical text form as the peer key.
|
|
888
|
+
*/
|
|
889
|
+
peerHasOnlyRelayedConnections(peerIdStr) {
|
|
890
|
+
let all;
|
|
891
|
+
try {
|
|
892
|
+
all = this.node.libp2p.getConnections();
|
|
893
|
+
}
|
|
894
|
+
catch {
|
|
895
|
+
return false;
|
|
896
|
+
}
|
|
897
|
+
let sawOpenRelayed = false;
|
|
898
|
+
for (const conn of all) {
|
|
899
|
+
let matches = false;
|
|
900
|
+
try {
|
|
901
|
+
matches = conn.remotePeer?.toString() === peerIdStr;
|
|
902
|
+
}
|
|
903
|
+
catch {
|
|
904
|
+
matches = false;
|
|
905
|
+
}
|
|
906
|
+
if (!matches)
|
|
907
|
+
continue;
|
|
908
|
+
if (conn.status && conn.status !== 'open')
|
|
909
|
+
continue;
|
|
910
|
+
if (!isRelayedConnection(conn))
|
|
911
|
+
return false;
|
|
912
|
+
sawOpenRelayed = true;
|
|
913
|
+
}
|
|
914
|
+
return sawOpenRelayed;
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
/**
|
|
918
|
+
* True when the connection reaches the peer via a circuit relay.
|
|
919
|
+
* `remoteAddr` containing the `/p2p-circuit` component is the
|
|
920
|
+
* authoritative signal — a direct connection's remote address never
|
|
921
|
+
* carries it. Fall back to libp2p's limited-connection marker when
|
|
922
|
+
* the address is unavailable (limited ⇒ circuit-relay-v2 in our
|
|
923
|
+
* transport set); absent both signals, classify as direct so the
|
|
924
|
+
* caller defaults to the status quo.
|
|
925
|
+
*/
|
|
926
|
+
function isRelayedConnection(conn) {
|
|
927
|
+
try {
|
|
928
|
+
const addr = conn.remoteAddr?.toString();
|
|
929
|
+
if (typeof addr === 'string' && addr.length > 0) {
|
|
930
|
+
return addr.includes('/p2p-circuit');
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
catch {
|
|
934
|
+
// fall through to the limits marker
|
|
935
|
+
}
|
|
936
|
+
return Boolean(conn.limits);
|
|
842
937
|
}
|
|
843
938
|
// Minimal shape we depend on from libp2p — the real `Libp2p` type
|
|
844
939
|
// is much richer but using a structural subset lets the unit test
|