@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.
@@ -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
- descriptor: NetworkDescriptorV2;
59
- resolvePolicyEntry: PolicySnapshotResolverV2;
60
- resolveTimeoutMs?: number;
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":"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"}
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.candidateDigestKey);
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 deliberately retains only the canonical two direct
577
- // child proofs. Durable storage of every authenticated fork observation is
578
- // an outer-layer responsibility for a later integration slice.
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
- candidateDigestKey: snapshot.digestKey,
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
- this.setFork(evaluation);
659
- return { status: "forked" };
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.candidateDigestKey);
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
- candidateDigestKey: pending.snapshot.digestKey,
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);