@peerbit/trusted-network 6.0.105 → 6.0.106
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/src/v2-policy-anchor.d.ts +75 -0
- package/dist/src/v2-policy-anchor.d.ts.map +1 -0
- package/dist/src/v2-policy-anchor.js +990 -0
- package/dist/src/v2-policy-anchor.js.map +1 -0
- package/dist/src/v2-policy-engine.d.ts +40 -8
- package/dist/src/v2-policy-engine.d.ts.map +1 -1
- package/dist/src/v2-policy-engine.js +219 -23
- package/dist/src/v2-policy-engine.js.map +1 -1
- package/package.json +3 -3
- package/src/v2-policy-anchor.ts +1152 -0
- package/src/v2-policy-engine.ts +346 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v2-policy-anchor.js","sourceRoot":"","sources":["../../src/v2-policy-anchor.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,11 +33,46 @@ export type PolicyAdmissionResultV2 = {
|
|
|
33
33
|
status: PolicyAdmissionStatusV2;
|
|
34
34
|
reason?: string;
|
|
35
35
|
head?: PolicyHeadProjectionV2;
|
|
36
|
+
/**
|
|
37
|
+
* Authenticated direct children surfaced while entering or already in
|
|
38
|
+
* FORKED. The outer durable layer can persist these proofs without decoding
|
|
39
|
+
* or verifying them a second time. They are bounded by one admission plus the
|
|
40
|
+
* pending working set and are not accumulated by this reducer.
|
|
41
|
+
*/
|
|
42
|
+
forkObservations?: PolicyForkChildProofV2[];
|
|
36
43
|
fetchHints: PolicyParentFetchHintV2[];
|
|
37
44
|
pendingCount: number;
|
|
38
45
|
pendingBytes: number;
|
|
39
46
|
evictedPolicyDigests?: Uint8Array[];
|
|
40
47
|
};
|
|
48
|
+
export type PolicyReducerDurableStateV2 = {
|
|
49
|
+
formatVersion: 1;
|
|
50
|
+
state: "EMPTY";
|
|
51
|
+
} | {
|
|
52
|
+
formatVersion: 1;
|
|
53
|
+
state: "ACTIVE";
|
|
54
|
+
acceptedHeadEntryBytes: Uint8Array;
|
|
55
|
+
} | {
|
|
56
|
+
formatVersion: 1;
|
|
57
|
+
state: "UNAVAILABLE";
|
|
58
|
+
acceptedHeadEntryBytes: Uint8Array;
|
|
59
|
+
comparisonCandidateEntryBytes: Uint8Array;
|
|
60
|
+
acceptedAncestorDigest: Uint8Array;
|
|
61
|
+
reason: string;
|
|
62
|
+
} | {
|
|
63
|
+
formatVersion: 1;
|
|
64
|
+
state: "FORKED";
|
|
65
|
+
commonParentEntryBytes: Uint8Array;
|
|
66
|
+
childEntryBytes: [Uint8Array, Uint8Array];
|
|
67
|
+
};
|
|
68
|
+
export type TrustedNetworkV2PolicyReducerProperties = {
|
|
69
|
+
descriptor: NetworkDescriptorV2;
|
|
70
|
+
resolvePolicyEntry: PolicySnapshotResolverV2;
|
|
71
|
+
resolveTimeoutMs?: number;
|
|
72
|
+
signal?: AbortSignal;
|
|
73
|
+
maxPending?: number;
|
|
74
|
+
maxPendingPolicyBytes?: number;
|
|
75
|
+
};
|
|
41
76
|
export declare const authenticatePolicySnapshotEntryV2: (entryBytes: Uint8Array, descriptor: NetworkDescriptorV2) => Promise<ValidatedPolicySnapshotV2>;
|
|
42
77
|
export declare class TrustedNetworkV2PolicyReducer {
|
|
43
78
|
private readonly descriptor;
|
|
@@ -54,20 +89,17 @@ export declare class TrustedNetworkV2PolicyReducer {
|
|
|
54
89
|
private unavailable?;
|
|
55
90
|
private fork?;
|
|
56
91
|
private admissionTail;
|
|
57
|
-
constructor(properties:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
signal?: AbortSignal;
|
|
62
|
-
maxPending?: number;
|
|
63
|
-
maxPendingPolicyBytes?: number;
|
|
64
|
-
});
|
|
92
|
+
constructor(properties: TrustedNetworkV2PolicyReducerProperties);
|
|
93
|
+
static restore(properties: TrustedNetworkV2PolicyReducerProperties & {
|
|
94
|
+
durableState: PolicyReducerDurableStateV2;
|
|
95
|
+
}): Promise<TrustedNetworkV2PolicyReducer>;
|
|
65
96
|
get state(): "EMPTY" | "ACTIVE" | "UNAVAILABLE" | "FORKED" | "HALTED";
|
|
66
97
|
get head(): PolicyHeadProjectionV2 | undefined;
|
|
67
98
|
get forkEvidence(): PolicyForkEvidenceV2 | undefined;
|
|
68
99
|
get pendingCount(): number;
|
|
69
100
|
get pendingBytes(): number;
|
|
70
101
|
get pendingDigests(): Uint8Array[];
|
|
102
|
+
exportDurableState(): PolicyReducerDurableStateV2;
|
|
71
103
|
rolesFor(subject: PublicSignKey): number;
|
|
72
104
|
isAuthorized(subject: PublicSignKey, roles: number): boolean;
|
|
73
105
|
abort(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-policy-engine.d.ts","sourceRoot":"","sources":["../../src/v2-policy-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,aAAa,EAAU,MAAM,iBAAiB,CAAC;AAGxE,OAAO,EACN,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EAMtB,MAAM,SAAS,CAAC;AAsCjB,KAAK,yBAAyB,GAAG;IAChC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACvB,CAAC;AA0BF,MAAM,MAAM,wBAAwB,GAAG,CACtC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,KAC5B,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;AAE9D,MAAM,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,YAAY,EAAE,sBAAsB,CAAC;IACrC,QAAQ,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAChC,UAAU,GACV,WAAW,GACX,SAAS,GACT,aAAa,GACb,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,CAAC;AAEZ,MAAM,MAAM,uBAAuB,GAAG;IACrC,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC;CACpC,CAAC;AAmJF,eAAO,MAAM,iCAAiC,GAC7C,YAAY,UAAU,EACtB,YAAY,mBAAmB,KAC7B,OAAO,CAAC,yBAAyB,CAMnC,CAAC;
|
|
1
|
+
{"version":3,"file":"v2-policy-engine.d.ts","sourceRoot":"","sources":["../../src/v2-policy-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,6 +154,58 @@ const copyForkEvidence = (evidence) => ({
|
|
|
154
154
|
copyForkChildProof(evidence.children[1]),
|
|
155
155
|
],
|
|
156
156
|
});
|
|
157
|
+
const captureDurableStateV2 = (durableState) => {
|
|
158
|
+
if (durableState === null ||
|
|
159
|
+
typeof durableState !== "object" ||
|
|
160
|
+
durableState.formatVersion !== 1) {
|
|
161
|
+
throw new Error("Unsupported TrustedNetwork v2 reducer state format");
|
|
162
|
+
}
|
|
163
|
+
switch (durableState.state) {
|
|
164
|
+
case "EMPTY":
|
|
165
|
+
return { formatVersion: 1, state: "EMPTY" };
|
|
166
|
+
case "ACTIVE":
|
|
167
|
+
return {
|
|
168
|
+
formatVersion: 1,
|
|
169
|
+
state: "ACTIVE",
|
|
170
|
+
acceptedHeadEntryBytes: capturePolicySnapshotEntryBytesV2(durableState.acceptedHeadEntryBytes),
|
|
171
|
+
};
|
|
172
|
+
case "UNAVAILABLE": {
|
|
173
|
+
if (!(durableState.acceptedAncestorDigest instanceof Uint8Array) ||
|
|
174
|
+
durableState.acceptedAncestorDigest.byteLength !== 32) {
|
|
175
|
+
throw new Error("Unavailable accepted ancestor digest must contain exactly 32 bytes");
|
|
176
|
+
}
|
|
177
|
+
if (typeof durableState.reason !== "string" ||
|
|
178
|
+
durableState.reason.length === 0 ||
|
|
179
|
+
durableState.reason.length > MAX_UNAVAILABLE_REASON_LENGTH_V2) {
|
|
180
|
+
throw new Error(`Unavailable reason must contain 1-${MAX_UNAVAILABLE_REASON_LENGTH_V2} characters`);
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
formatVersion: 1,
|
|
184
|
+
state: "UNAVAILABLE",
|
|
185
|
+
acceptedHeadEntryBytes: capturePolicySnapshotEntryBytesV2(durableState.acceptedHeadEntryBytes),
|
|
186
|
+
comparisonCandidateEntryBytes: capturePolicySnapshotEntryBytesV2(durableState.comparisonCandidateEntryBytes),
|
|
187
|
+
acceptedAncestorDigest: copyBytes(durableState.acceptedAncestorDigest),
|
|
188
|
+
reason: durableState.reason,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
case "FORKED":
|
|
192
|
+
if (!Array.isArray(durableState.childEntryBytes) ||
|
|
193
|
+
durableState.childEntryBytes.length !== 2) {
|
|
194
|
+
throw new Error("Forked reducer state must contain exactly two children");
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
formatVersion: 1,
|
|
198
|
+
state: "FORKED",
|
|
199
|
+
commonParentEntryBytes: capturePolicySnapshotEntryBytesV2(durableState.commonParentEntryBytes),
|
|
200
|
+
childEntryBytes: [
|
|
201
|
+
capturePolicySnapshotEntryBytesV2(durableState.childEntryBytes[0]),
|
|
202
|
+
capturePolicySnapshotEntryBytesV2(durableState.childEntryBytes[1]),
|
|
203
|
+
],
|
|
204
|
+
};
|
|
205
|
+
default:
|
|
206
|
+
throw new Error("Unsupported TrustedNetwork v2 reducer state");
|
|
207
|
+
}
|
|
208
|
+
};
|
|
157
209
|
export class TrustedNetworkV2PolicyReducer {
|
|
158
210
|
descriptor;
|
|
159
211
|
resolvePolicyEntry;
|
|
@@ -207,6 +259,76 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
207
259
|
this.externalSignal.addEventListener("abort", this.externalAbortListener, { once: true });
|
|
208
260
|
}
|
|
209
261
|
}
|
|
262
|
+
static async restore(properties) {
|
|
263
|
+
// Capture the complete checkpoint before the first await. Persistence
|
|
264
|
+
// adapters commonly reuse read buffers, and mutation during authentication
|
|
265
|
+
// must not change what is restored.
|
|
266
|
+
const durableState = captureDurableStateV2(properties.durableState);
|
|
267
|
+
const reducer = new TrustedNetworkV2PolicyReducer(properties);
|
|
268
|
+
const authenticate = (entryBytes) => authenticateCapturedPolicySnapshotEntryV2(entryBytes, reducer.descriptor);
|
|
269
|
+
try {
|
|
270
|
+
switch (durableState.state) {
|
|
271
|
+
case "EMPTY":
|
|
272
|
+
return reducer;
|
|
273
|
+
case "ACTIVE": {
|
|
274
|
+
const acceptedHead = await authenticate(durableState.acceptedHeadEntryBytes);
|
|
275
|
+
// A durable ACTIVE head is a trusted prior-validation checkpoint. Its
|
|
276
|
+
// authority signature and network binding are re-authenticated above,
|
|
277
|
+
// but restore deliberately does not require historical resolver data.
|
|
278
|
+
reducer.project(acceptedHead);
|
|
279
|
+
return reducer;
|
|
280
|
+
}
|
|
281
|
+
case "UNAVAILABLE": {
|
|
282
|
+
const [acceptedHead, comparisonCandidate] = await Promise.all([
|
|
283
|
+
authenticate(durableState.acceptedHeadEntryBytes),
|
|
284
|
+
authenticate(durableState.comparisonCandidateEntryBytes),
|
|
285
|
+
]);
|
|
286
|
+
if (equals(acceptedHead.digest, comparisonCandidate.digest)) {
|
|
287
|
+
throw new Error("Unavailable comparison candidate must differ from the accepted head");
|
|
288
|
+
}
|
|
289
|
+
reducer.project(acceptedHead);
|
|
290
|
+
reducer.addPending(comparisonCandidate, durableState.acceptedAncestorDigest);
|
|
291
|
+
reducer.unavailable = {
|
|
292
|
+
acceptedAncestorDigest: copyBytes(durableState.acceptedAncestorDigest),
|
|
293
|
+
comparisonCandidate: copySnapshot(comparisonCandidate),
|
|
294
|
+
reason: durableState.reason,
|
|
295
|
+
};
|
|
296
|
+
return reducer;
|
|
297
|
+
}
|
|
298
|
+
case "FORKED": {
|
|
299
|
+
const [commonParent, firstChild, secondChild] = await Promise.all([
|
|
300
|
+
authenticate(durableState.commonParentEntryBytes),
|
|
301
|
+
authenticate(durableState.childEntryBytes[0]),
|
|
302
|
+
authenticate(durableState.childEntryBytes[1]),
|
|
303
|
+
]);
|
|
304
|
+
for (const child of [firstChild, secondChild]) {
|
|
305
|
+
if (child.body.sequence !== commonParent.body.sequence + 1n ||
|
|
306
|
+
!equals(child.body.previousPolicyDigest, commonParent.digest)) {
|
|
307
|
+
throw new Error("Fork child must be a direct successor of the common parent");
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
if (equals(firstChild.digest, secondChild.digest)) {
|
|
311
|
+
throw new Error("Fork children must have distinct policy digests");
|
|
312
|
+
}
|
|
313
|
+
const children = [
|
|
314
|
+
forkProofFromSnapshot(firstChild),
|
|
315
|
+
forkProofFromSnapshot(secondChild),
|
|
316
|
+
].sort(compareForkChildProofs);
|
|
317
|
+
reducer.project(commonParent);
|
|
318
|
+
reducer.fork = {
|
|
319
|
+
commonParent: projectionFromSnapshot(commonParent),
|
|
320
|
+
children,
|
|
321
|
+
};
|
|
322
|
+
return reducer;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
// Do not retain a caller-owned AbortSignal listener when restore rejects.
|
|
328
|
+
reducer.abort();
|
|
329
|
+
throw error;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
210
332
|
get state() {
|
|
211
333
|
if (this.lifecycleController.signal.aborted)
|
|
212
334
|
return "HALTED";
|
|
@@ -239,6 +361,45 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
239
361
|
.sort((a, b) => compareKeys(a.snapshot.digestKey, b.snapshot.digestKey))
|
|
240
362
|
.map(({ snapshot }) => copyBytes(snapshot.digest));
|
|
241
363
|
}
|
|
364
|
+
exportDurableState() {
|
|
365
|
+
// Lifecycle cancellation is process-local. Export the underlying protocol
|
|
366
|
+
// safety state so a replacement process cannot erase UNAVAILABLE/FORKED.
|
|
367
|
+
if (this.fork !== undefined) {
|
|
368
|
+
if (this.acceptedHead === undefined) {
|
|
369
|
+
throw new Error("Forked reducer is missing its common-parent entry");
|
|
370
|
+
}
|
|
371
|
+
return {
|
|
372
|
+
formatVersion: 1,
|
|
373
|
+
state: "FORKED",
|
|
374
|
+
commonParentEntryBytes: copyBytes(this.acceptedHead.entryBytes),
|
|
375
|
+
childEntryBytes: [
|
|
376
|
+
copyBytes(this.fork.children[0].entryBytes),
|
|
377
|
+
copyBytes(this.fork.children[1].entryBytes),
|
|
378
|
+
],
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
if (this.unavailable !== undefined) {
|
|
382
|
+
if (this.acceptedHead === undefined) {
|
|
383
|
+
throw new Error("Unavailable reducer is missing its accepted head");
|
|
384
|
+
}
|
|
385
|
+
return {
|
|
386
|
+
formatVersion: 1,
|
|
387
|
+
state: "UNAVAILABLE",
|
|
388
|
+
acceptedHeadEntryBytes: copyBytes(this.acceptedHead.entryBytes),
|
|
389
|
+
comparisonCandidateEntryBytes: copyBytes(this.unavailable.comparisonCandidate.entryBytes),
|
|
390
|
+
acceptedAncestorDigest: copyBytes(this.unavailable.acceptedAncestorDigest),
|
|
391
|
+
reason: this.unavailable.reason,
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
if (this.acceptedHead !== undefined) {
|
|
395
|
+
return {
|
|
396
|
+
formatVersion: 1,
|
|
397
|
+
state: "ACTIVE",
|
|
398
|
+
acceptedHeadEntryBytes: copyBytes(this.acceptedHead.entryBytes),
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
return { formatVersion: 1, state: "EMPTY" };
|
|
402
|
+
}
|
|
242
403
|
rolesFor(subject) {
|
|
243
404
|
return this.projectedRoles.get(publicKeyId(subject)) ?? 0;
|
|
244
405
|
}
|
|
@@ -275,11 +436,14 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
275
436
|
digest: copyBytes(digest),
|
|
276
437
|
}));
|
|
277
438
|
}
|
|
278
|
-
result(status, reason, evictedPolicyDigests) {
|
|
439
|
+
result(status, reason, evictedPolicyDigests, forkObservations) {
|
|
279
440
|
return {
|
|
280
441
|
status,
|
|
281
442
|
reason,
|
|
282
443
|
head: this.head,
|
|
444
|
+
forkObservations: forkObservations === undefined
|
|
445
|
+
? undefined
|
|
446
|
+
: forkObservations.map(copyForkChildProof),
|
|
283
447
|
fetchHints: this.fetchHints(),
|
|
284
448
|
pendingCount: this.pending.size,
|
|
285
449
|
pendingBytes: this.pendingBytes,
|
|
@@ -288,15 +452,15 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
288
452
|
: evictedPolicyDigests.map(copyBytes),
|
|
289
453
|
};
|
|
290
454
|
}
|
|
291
|
-
forkedResult() {
|
|
292
|
-
return this.result("forked", "Policy authority signed competing children");
|
|
455
|
+
forkedResult(forkObservations) {
|
|
456
|
+
return this.result("forked", "Policy authority signed competing children", undefined, forkObservations);
|
|
293
457
|
}
|
|
294
458
|
haltedResult() {
|
|
295
459
|
return this.result("halted", "Policy reducer lifecycle is aborted");
|
|
296
460
|
}
|
|
297
461
|
unavailableResult(retention) {
|
|
298
462
|
const blockedCandidateRetained = this.unavailable !== undefined &&
|
|
299
|
-
this.pending.has(this.unavailable.
|
|
463
|
+
this.pending.has(this.unavailable.comparisonCandidate.digestKey);
|
|
300
464
|
const recoverable = (retention?.retained ?? true) && blockedCandidateRetained;
|
|
301
465
|
const reason = recoverable
|
|
302
466
|
? this.unavailable.reason
|
|
@@ -306,8 +470,9 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
306
470
|
return this.result(recoverable ? "unavailable" : "capacity", reason, retention?.evictedPolicyDigests);
|
|
307
471
|
}
|
|
308
472
|
completedDrainResult(outcome) {
|
|
309
|
-
if (outcome?.status === "forked")
|
|
310
|
-
return this.forkedResult();
|
|
473
|
+
if (outcome?.status === "forked") {
|
|
474
|
+
return this.forkedResult(outcome.forkObservations);
|
|
475
|
+
}
|
|
311
476
|
if (outcome?.status === "halted")
|
|
312
477
|
return this.haltedResult();
|
|
313
478
|
return outcome?.status === "unavailable"
|
|
@@ -531,6 +696,26 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
531
696
|
};
|
|
532
697
|
}
|
|
533
698
|
setFork(evaluation) {
|
|
699
|
+
// Pending snapshots were authenticated when admitted. Combine every one
|
|
700
|
+
// that is already provably a direct child with the pair that first exposed
|
|
701
|
+
// the fork. Canonical selection below may displace either initial child, so
|
|
702
|
+
// the durable layer needs the complete bounded observation set and removes
|
|
703
|
+
// whichever final pair is carried by exportDurableState().
|
|
704
|
+
const pendingForkObservationSnapshots = [...this.pending.values()]
|
|
705
|
+
.map(({ snapshot }) => snapshot)
|
|
706
|
+
.filter((snapshot) => snapshot.body.sequence ===
|
|
707
|
+
evaluation.commonParent.body.sequence + 1n &&
|
|
708
|
+
equals(snapshot.body.previousPolicyDigest, evaluation.commonParent.digest));
|
|
709
|
+
const forkObservationSnapshots = [
|
|
710
|
+
evaluation.candidateChild,
|
|
711
|
+
evaluation.acceptedChild,
|
|
712
|
+
...pendingForkObservationSnapshots,
|
|
713
|
+
];
|
|
714
|
+
const forkObservations = forkObservationSnapshots
|
|
715
|
+
.map(forkProofFromSnapshot)
|
|
716
|
+
.sort(compareForkChildProofs)
|
|
717
|
+
.filter((proof, index, observations) => index === 0 ||
|
|
718
|
+
!equals(proof.entryBytes, observations[index - 1].entryBytes));
|
|
534
719
|
this.project(evaluation.commonParent);
|
|
535
720
|
const children = [
|
|
536
721
|
forkProofFromSnapshot(evaluation.candidateChild),
|
|
@@ -540,8 +725,12 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
540
725
|
commonParent: projectionFromSnapshot(evaluation.commonParent),
|
|
541
726
|
children,
|
|
542
727
|
};
|
|
728
|
+
for (const snapshot of forkObservationSnapshots) {
|
|
729
|
+
this.retainCanonicalForkChild(snapshot);
|
|
730
|
+
}
|
|
543
731
|
this.unavailable = undefined;
|
|
544
732
|
this.pending.clear();
|
|
733
|
+
return forkObservations;
|
|
545
734
|
}
|
|
546
735
|
retainCanonicalForkChild(snapshot) {
|
|
547
736
|
if (this.fork === undefined)
|
|
@@ -566,17 +755,20 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
566
755
|
this.fork.children = [canonical[0], canonical[1]];
|
|
567
756
|
}
|
|
568
757
|
observeAfterFork(snapshot) {
|
|
569
|
-
if (this.fork === undefined || this.acceptedHead === undefined)
|
|
570
|
-
return;
|
|
758
|
+
if (this.fork === undefined || this.acceptedHead === undefined) {
|
|
759
|
+
return undefined;
|
|
760
|
+
}
|
|
571
761
|
const commonParent = this.acceptedHead;
|
|
572
762
|
if (snapshot.body.sequence !== commonParent.body.sequence + 1n ||
|
|
573
763
|
!equals(snapshot.body.previousPolicyDigest, commonParent.digest)) {
|
|
574
|
-
return;
|
|
764
|
+
return undefined;
|
|
575
765
|
}
|
|
576
|
-
// This bounded kernel
|
|
577
|
-
//
|
|
578
|
-
//
|
|
766
|
+
// This bounded kernel retains only the canonical two direct child proofs.
|
|
767
|
+
// Return this already-authenticated observation so the durable outer layer
|
|
768
|
+
// can retain every proof without verifying it twice.
|
|
769
|
+
const observation = forkProofFromSnapshot(snapshot);
|
|
579
770
|
this.retainCanonicalForkChild(snapshot);
|
|
771
|
+
return observation;
|
|
580
772
|
}
|
|
581
773
|
addPending(snapshot, missingParentDigest) {
|
|
582
774
|
const existing = this.pending.get(snapshot.digestKey);
|
|
@@ -616,7 +808,7 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
616
808
|
const retention = this.addPending(snapshot, evaluation.digest);
|
|
617
809
|
this.unavailable = {
|
|
618
810
|
acceptedAncestorDigest: copyBytes(evaluation.digest),
|
|
619
|
-
|
|
811
|
+
comparisonCandidate: copySnapshot(snapshot),
|
|
620
812
|
reason: boundedUnavailableReason(evaluation.reason),
|
|
621
813
|
};
|
|
622
814
|
return retention;
|
|
@@ -655,8 +847,10 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
655
847
|
accepted = true;
|
|
656
848
|
}
|
|
657
849
|
else if (evaluation.status === "fork") {
|
|
658
|
-
|
|
659
|
-
|
|
850
|
+
return {
|
|
851
|
+
status: "forked",
|
|
852
|
+
forkObservations: this.setFork(evaluation),
|
|
853
|
+
};
|
|
660
854
|
}
|
|
661
855
|
}
|
|
662
856
|
}
|
|
@@ -705,14 +899,18 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
705
899
|
if (this.lifecycleController.signal.aborted)
|
|
706
900
|
return this.haltedResult();
|
|
707
901
|
if (this.fork !== undefined) {
|
|
708
|
-
this.observeAfterFork(snapshot);
|
|
709
|
-
return this.result("halted", "Policy reducer is halted by authority equivocation");
|
|
902
|
+
const forkObservation = this.observeAfterFork(snapshot);
|
|
903
|
+
return this.result("halted", "Policy reducer is halted by authority equivocation", undefined, forkObservation === undefined ? undefined : [forkObservation]);
|
|
710
904
|
}
|
|
711
905
|
this.retainCanonicalHeadEntry(snapshot);
|
|
712
906
|
if (this.unavailable !== undefined) {
|
|
713
907
|
if (this.acceptedHead?.digestKey === snapshot.digestKey) {
|
|
714
908
|
return this.result("unavailable", this.unavailable.reason);
|
|
715
909
|
}
|
|
910
|
+
if (this.unavailable.comparisonCandidate.digestKey === snapshot.digestKey &&
|
|
911
|
+
compare(snapshot.entryBytes, this.unavailable.comparisonCandidate.entryBytes) < 0) {
|
|
912
|
+
this.unavailable.comparisonCandidate = copySnapshot(snapshot);
|
|
913
|
+
}
|
|
716
914
|
const existingPending = this.pending.get(snapshot.digestKey);
|
|
717
915
|
if (existingPending !== undefined) {
|
|
718
916
|
this.addPending(snapshot, existingPending.missingParentDigest);
|
|
@@ -736,8 +934,7 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
736
934
|
return this.result("duplicate");
|
|
737
935
|
}
|
|
738
936
|
if (evaluation.status === "fork") {
|
|
739
|
-
this.setFork(evaluation);
|
|
740
|
-
return this.forkedResult();
|
|
937
|
+
return this.forkedResult(this.setFork(evaluation));
|
|
741
938
|
}
|
|
742
939
|
if (evaluation.status === "unavailable") {
|
|
743
940
|
const retention = this.enterUnavailable(snapshot, evaluation);
|
|
@@ -763,7 +960,7 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
763
960
|
if (unavailable === undefined) {
|
|
764
961
|
return this.result("duplicate", "Policy reducer is not unavailable");
|
|
765
962
|
}
|
|
766
|
-
const pending = this.pending.get(unavailable.
|
|
963
|
+
const pending = this.pending.get(unavailable.comparisonCandidate.digestKey);
|
|
767
964
|
if (pending === undefined) {
|
|
768
965
|
return this.result("capacity", "Unavailable comparison candidate is not retained; re-ingest it before retrying");
|
|
769
966
|
}
|
|
@@ -774,7 +971,7 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
774
971
|
pending.missingParentDigest = copyBytes(evaluation.digest);
|
|
775
972
|
this.unavailable = {
|
|
776
973
|
acceptedAncestorDigest: copyBytes(evaluation.digest),
|
|
777
|
-
|
|
974
|
+
comparisonCandidate: copySnapshot(pending.snapshot),
|
|
778
975
|
reason: boundedUnavailableReason(evaluation.reason),
|
|
779
976
|
};
|
|
780
977
|
return this.result("unavailable", this.unavailable.reason);
|
|
@@ -790,8 +987,7 @@ export class TrustedNetworkV2PolicyReducer {
|
|
|
790
987
|
else {
|
|
791
988
|
this.pending.delete(pending.snapshot.digestKey);
|
|
792
989
|
if (evaluation.status === "fork") {
|
|
793
|
-
this.setFork(evaluation);
|
|
794
|
-
return this.forkedResult();
|
|
990
|
+
return this.forkedResult(this.setFork(evaluation));
|
|
795
991
|
}
|
|
796
992
|
if (evaluation.status === "accept") {
|
|
797
993
|
this.project(pending.snapshot);
|