@optimystic/db-p2p 0.26.0 → 0.27.0

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.
Files changed (40) hide show
  1. package/dist/src/cluster/certified-claims.d.ts +17 -3
  2. package/dist/src/cluster/certified-claims.d.ts.map +1 -1
  3. package/dist/src/cluster/certified-claims.js +5 -3
  4. package/dist/src/cluster/certified-claims.js.map +1 -1
  5. package/dist/src/cluster/cluster-repo.d.ts +10 -1
  6. package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
  7. package/dist/src/cluster/cluster-repo.js +11 -1
  8. package/dist/src/cluster/cluster-repo.js.map +1 -1
  9. package/dist/src/cluster/commit-proof.d.ts +16 -0
  10. package/dist/src/cluster/commit-proof.d.ts.map +1 -1
  11. package/dist/src/cluster/commit-proof.js +32 -1
  12. package/dist/src/cluster/commit-proof.js.map +1 -1
  13. package/dist/src/cluster/quorum-restore.d.ts +81 -28
  14. package/dist/src/cluster/quorum-restore.d.ts.map +1 -1
  15. package/dist/src/cluster/quorum-restore.js +148 -51
  16. package/dist/src/cluster/quorum-restore.js.map +1 -1
  17. package/dist/src/cluster/reconcile-block.d.ts +9 -4
  18. package/dist/src/cluster/reconcile-block.d.ts.map +1 -1
  19. package/dist/src/cluster/reconcile-block.js +28 -11
  20. package/dist/src/cluster/reconcile-block.js.map +1 -1
  21. package/dist/src/libp2p-node-base.d.ts +6 -0
  22. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  23. package/dist/src/libp2p-node-base.js.map +1 -1
  24. package/dist/src/repo/cluster-coordinator.d.ts +9 -0
  25. package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
  26. package/dist/src/repo/cluster-coordinator.js +13 -2
  27. package/dist/src/repo/cluster-coordinator.js.map +1 -1
  28. package/dist/src/repo/coordinator-repo.d.ts +34 -2
  29. package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
  30. package/dist/src/repo/coordinator-repo.js +57 -3
  31. package/dist/src/repo/coordinator-repo.js.map +1 -1
  32. package/package.json +2 -2
  33. package/src/cluster/certified-claims.ts +22 -9
  34. package/src/cluster/cluster-repo.ts +12 -1
  35. package/src/cluster/commit-proof.ts +38 -2
  36. package/src/cluster/quorum-restore.ts +183 -56
  37. package/src/cluster/reconcile-block.ts +34 -11
  38. package/src/libp2p-node-base.ts +6 -0
  39. package/src/repo/cluster-coordinator.ts +1039 -1027
  40. package/src/repo/coordinator-repo.ts +1937 -1855
@@ -1,9 +1,10 @@
1
- import type { PendRequest, ActionBlocks, IRepo, MessageOptions, CommitResult, GetBlockResults, PendResult, BlockGets, CommitRequest, IKeyNetwork, ICluster, ClusterConsensusConfig, BlockId, ActionContext } from "@optimystic/db-core";
1
+ import type { PendRequest, ActionBlocks, IRepo, MessageOptions, CommitResult, GetBlockResults, PendResult, BlockGets, CommitRequest, RepoMessage, IKeyNetwork, ICluster, ClusterConsensusConfig, BlockId, ActionContext, ClusterRecord } from "@optimystic/db-core";
2
2
  import type { PeerId } from "@libp2p/interface";
3
3
  import type { FretService } from "p2p-fret";
4
4
  import type { IPeerReputation } from "../reputation/types.js";
5
5
  import type { ITransactionStateStore } from "../cluster/i-transaction-state-store.js";
6
6
  import { type ProofAnchoring } from "../cluster/certified-claims.js";
7
+ import { type BlockCommitProof } from "../cluster/commit-proof.js";
7
8
  import type { ReconcileBlockCallback } from "../cluster/cluster-repo.js";
8
9
  import type { CertifiedActionRev } from "../storage/block-archive.js";
9
10
  /**
@@ -27,6 +28,10 @@ interface LocalClusterWithExecutionTracking extends ICluster {
27
28
  getExecutedPendResult?(messageHash: string): PendResult | undefined;
28
29
  /** Local storage's verdict for a commit applied during consensus; see ClusterMember.getExecutedCommitResult. */
29
30
  getExecutedCommitResult?(messageHash: string): CommitResult | undefined;
31
+ /** Self-sign a one-peer commit proof for the solo-cohort commit path; see ClusterMember.mintSoloCommitProof.
32
+ * Optional like its siblings: absent on a bare ICluster double, and then the solo path simply
33
+ * commits proof-less — exactly the pre-mint behavior. */
34
+ mintSoloCommitProof?(message: RepoMessage): Promise<BlockCommitProof>;
30
35
  }
31
36
  /**
32
37
  * A cohort peer's answer to the latest-revision consult. Defined with the archive shape it is
@@ -87,11 +92,38 @@ export type CoordinatorRepoConfig = Partial<ClusterConsensusConfig> & {
87
92
  repairCorroborationClusterSize?: number;
88
93
  };
89
94
  export declare function coordinatorRepo(keyNetwork: IKeyNetwork, createClusterClient: (peerId: PeerId) => ICluster, cfg?: CoordinatorRepoConfig, fretService?: FretService, reputation?: IPeerReputation, stateStore?: ITransactionStateStore): (components: CoordinatorRepoComponents) => CoordinatorRepo;
95
+ /**
96
+ * The slice of {@link ClusterCoordinator} that {@link CoordinatorRepo} actually consumes.
97
+ *
98
+ * It exists so a test double has something COMPLETE to satisfy. The doubles in
99
+ * `test/coordinator-repo-*.spec.ts` replace the private `coordinator` field wholesale, and while
100
+ * that field was typed as the whole class and the doubles were assigned through
101
+ * `as unknown as { coordinator: unknown }`, every method this class newly called on the coordinator
102
+ * type-checked fine and then threw `... is not a function` at runtime in every spec holding a
103
+ * double — `getClusterPeerIds` cost 21 specs exactly that way. Widening this interface now breaks
104
+ * the doubles at COMPILE time, at the point of widening, which is where the cost belongs.
105
+ *
106
+ * NOTE: the doubles still name the private field by string (`{ coordinator: ... }`), so renaming
107
+ * `CoordinatorRepo.coordinator` would make those casts silently stop applying and every double
108
+ * revert to being ignored. If that field is ever renamed, grep the specs for `coordinator:`.
109
+ */
110
+ export interface ICoordinatorClusterSeam {
111
+ getClusterSize(blockId: BlockId): Promise<number>;
112
+ getClusterPeerIds(blockId: BlockId): Promise<string[]>;
113
+ executeClusterTransaction(blockId: BlockId, message: RepoMessage, options?: MessageOptions): Promise<{
114
+ record: ClusterRecord;
115
+ localExecuted: boolean;
116
+ localPendResult?: PendResult;
117
+ localCommitResult?: CommitResult;
118
+ }>;
119
+ recoverTransactions(): Promise<void>;
120
+ }
90
121
  /** Cluster coordination repo - uses local store, as well as distributes changes to other nodes using cluster consensus. */
91
122
  export declare class CoordinatorRepo implements IRepo {
92
123
  readonly keyNetwork: IKeyNetwork;
93
124
  readonly createClusterClient: (peerId: PeerId) => ICluster;
94
125
  private readonly storageRepo;
126
+ private readonly localCluster?;
95
127
  private readonly clusterLatestCallback?;
96
128
  private readonly acquireBlockFromCohort?;
97
129
  private readonly proofAnchoring?;
@@ -129,7 +161,7 @@ export declare class CoordinatorRepo implements IRepo {
129
161
  now: () => number;
130
162
  /** Test seam: overridable RNG (0..1) for sample-rate gating. */
131
163
  rand: () => number;
132
- constructor(keyNetwork: IKeyNetwork, createClusterClient: (peerId: PeerId) => ICluster, storageRepo: IRepo, cfg?: CoordinatorRepoConfig, localCluster?: LocalClusterWithExecutionTracking, localPeerId?: PeerId, fretService?: FretService, clusterLatestCallback?: ClusterLatestCallback | undefined, reputation?: IPeerReputation, stateStore?: ITransactionStateStore, acquireBlockFromCohort?: AcquireBlockCallback | undefined, proofAnchoring?: ProofAnchoring | undefined);
164
+ constructor(keyNetwork: IKeyNetwork, createClusterClient: (peerId: PeerId) => ICluster, storageRepo: IRepo, cfg?: CoordinatorRepoConfig, localCluster?: LocalClusterWithExecutionTracking | undefined, localPeerId?: PeerId, fretService?: FretService, clusterLatestCallback?: ClusterLatestCallback | undefined, reputation?: IPeerReputation, stateStore?: ITransactionStateStore, acquireBlockFromCohort?: AcquireBlockCallback | undefined, proofAnchoring?: ProofAnchoring | undefined);
133
165
  /**
134
166
  * The resolved super-majority threshold this coordinator commits on. Exposed so the composition root
135
167
  * can fail-fast if the coordinator and the cluster member would run different thresholds (see the
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator-repo.d.ts","sourceRoot":"","sources":["../../../src/repo/coordinator-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator-repo.d.ts","sourceRoot":"","sources":["../../../src/repo/coordinator-repo.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { certifyClaim, isAttributableProofFailure, proofThresholds } from "../cl
8
8
  import { DEFAULT_CLUSTER_SIZE } from "../cluster/cluster-policy.js";
9
9
  import { RECONCILE_TIMEOUT_MS } from "../cluster/reconcile-block.js";
10
10
  import { isMissingBaseRevisionFailure, MISSING_BASE_REVISION_REASON } from "../storage/storage-repo.js";
11
+ import { buildBlockCommitProof } from "../cluster/commit-proof.js";
11
12
  /** How long one cohort peer gets to answer the latest-revision consult before it counts as silent. */
12
13
  const LATEST_QUERY_TIMEOUT_MS = 1000;
13
14
  /** True when a freshly-read local revision is strictly ahead of the baseline the repair started from. */
@@ -80,6 +81,7 @@ export class CoordinatorRepo {
80
81
  keyNetwork;
81
82
  createClusterClient;
82
83
  storageRepo;
84
+ localCluster;
83
85
  clusterLatestCallback;
84
86
  acquireBlockFromCohort;
85
87
  proofAnchoring;
@@ -121,6 +123,7 @@ export class CoordinatorRepo {
121
123
  this.keyNetwork = keyNetwork;
122
124
  this.createClusterClient = createClusterClient;
123
125
  this.storageRepo = storageRepo;
126
+ this.localCluster = localCluster;
124
127
  this.clusterLatestCallback = clusterLatestCallback;
125
128
  this.acquireBlockFromCohort = acquireBlockFromCohort;
126
129
  this.proofAnchoring = proofAnchoring;
@@ -809,6 +812,9 @@ export class CoordinatorRepo {
809
812
  proofThresholds(this.superMajorityThreshold), this.proofAnchoring);
810
813
  if (verdict.certified) {
811
814
  claim.certified = true;
815
+ // The verdict's signer count, never proof.peerIds read here — selection weighs a
816
+ // single-signer certification below multi-peer corroboration (quorum-restore.ts).
817
+ claim.certifiedSignerCount = verdict.signerCount;
812
818
  return;
813
819
  }
814
820
  this.log('cluster-fetch:proof-uncertified', {
@@ -1043,6 +1049,13 @@ export class CoordinatorRepo {
1043
1049
  return;
1044
1050
  try {
1045
1051
  for (const c of claims) {
1052
+ // A CERTIFIED disagreeing claim is exempt: its proof verified, so the peer honestly
1053
+ // served a commit that really happened — when multi-peer corroboration outweighs its
1054
+ // single-signer proof at the same rev (quorum-restore.ts), that peer is a partition
1055
+ // casualty on the losing side of a fork, not a liar. Provably-bad proof SERVICE was
1056
+ // already penalized at verification time above.
1057
+ if (c.certified === true)
1058
+ continue;
1046
1059
  if (c.rev === selected.rev && c.actionId !== selected.actionId) {
1047
1060
  this.reputation.reportPeer(c.peerId, PenaltyReason.InvalidRestoration, `read-repair:${blockId}`);
1048
1061
  }
@@ -1341,9 +1354,40 @@ export class CoordinatorRepo {
1341
1354
  async commit(request, options) {
1342
1355
  const blockIds = request.blockIds;
1343
1356
  await this.verifyResponsibility(blockIds);
1344
- const peerCount = await this.coordinator.getClusterSize(blockIds[0]);
1357
+ const cohortPeerIds = await this.coordinator.getClusterPeerIds(blockIds[0]);
1358
+ const peerCount = cohortPeerIds.length;
1345
1359
  if (peerCount <= 1) {
1346
- const result = await this.storageRepo.commit(request, options);
1360
+ // Solo cohort: consensus never runs, so no ClusterRecord exists to project a proof from —
1361
+ // the lone member self-signs a one-peer proof instead (mintSoloCommitProof), which is what
1362
+ // lets a block born on a cohort of one ever gain a second holder under the certified-push
1363
+ // default (handlePush refuses a proof-less block). Minted even when peerCount is 0 or the
1364
+ // sole peer is not self — findCluster failing (getClusterPeerIds returns []) puts the
1365
+ // DEGRADED-ROUTING case in this same branch, and self genuinely committed these bytes
1366
+ // either way; a proof's peer list is already not evidence of cohort membership by design
1367
+ // (caller obligation #1 on verifyBlockCommitProofClaim), so gating the mint on cohort
1368
+ // composition would buy no safety while opening a silent no-proof hole exactly when
1369
+ // routing is degraded. The log line is how an operator tells a real cohort of one
1370
+ // (cohortSize 1, soleIsSelf true) from a routing failure (cohortSize 0, or a sole peer
1371
+ // that is not this node).
1372
+ this.log('commit:solo-cohort', {
1373
+ blockId: blockIds[0],
1374
+ cohortSize: peerCount,
1375
+ soleIsSelf: peerCount === 1 && this.localPeerId !== undefined
1376
+ && cohortPeerIds[0] === this.localPeerId.toString()
1377
+ });
1378
+ // Same message shape the multi-peer path produces — executeClusterTransaction stamps
1379
+ // coordinatingBlockIds at its choke point, so the solo artifact must carry it too or a
1380
+ // solo proof's message is distinguishable from every other proof's.
1381
+ const message = {
1382
+ operations: [{ commit: request }],
1383
+ coordinatingBlockIds: [blockIds[0]],
1384
+ expiration: options?.expiration ?? Date.now() + this.DEFAULT_TIMEOUT
1385
+ };
1386
+ // `undefined` when no local cluster is wired (direct constructors, unit-test doubles) —
1387
+ // then the commit lands proof-less, exactly the pre-mint behavior. The cast is the named
1388
+ // ICommitProofPersister contract; a plain IRepo double ignores the extra argument.
1389
+ const proof = await this.localCluster?.mintSoloCommitProof?.(message);
1390
+ const result = await this.storageRepo.commit(request, options, proof);
1347
1391
  if (result.success)
1348
1392
  this.markBlocksSeen(blockIds);
1349
1393
  return result;
@@ -1404,8 +1448,18 @@ export class CoordinatorRepo {
1404
1448
  // caller instead would surface a committed transaction as a stale loss: db-core's
1405
1449
  // commitPhase treats any returned `success:false` as a permanent stale failure, so the
1406
1450
  // client would retry an action the cluster already landed until it exhausted its budget.
1451
+ //
1452
+ // Deliberately NOT self-signed here (unlike the solo short-circuit above): consensus for
1453
+ // this commit ran on the cohort, so a one-peer minted proof would be a FALSE statement
1454
+ // about the committing cohort. Thread the record's REAL proof instead —
1455
+ // executeClusterTransaction resolves only after the record's promise/commit votes are
1456
+ // populated, so the projection is genuine. Passed unconditionally, threshold or not:
1457
+ // persistProofIfContentMatches retains it under the digest-match rule, and a record that
1458
+ // never reached threshold simply yields a proof no verifier accepts — the same posture
1459
+ // ClusterMember.applyConsensusOperation takes with its own projection.
1460
+ const consensusProof = buildBlockCommitProof(record);
1407
1461
  try {
1408
- const result = await this.storageRepo.commit(request, options);
1462
+ const result = await this.storageRepo.commit(request, options, consensusProof);
1409
1463
  if (result.success) {
1410
1464
  this.markBlocksSeen(blockIds);
1411
1465
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator-repo.js","sourceRoot":"","sources":["../../../src/repo/coordinator-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator-repo.js","sourceRoot":"","sources":["../../../src/repo/coordinator-repo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimystic/db-p2p",
3
- "version": "0.26.0",
3
+ "version": "0.27.0",
4
4
  "type": "module",
5
5
  "description": "P2P database functionality for Optimystic",
6
6
  "main": "dist/src/index.js",
@@ -86,7 +86,7 @@
86
86
  "@multiformats/multiaddr": "^13.0.1",
87
87
  "@noble/curves": "^2.0.1",
88
88
  "@noble/hashes": "^2.0.1",
89
- "@optimystic/db-core": "^0.26.0",
89
+ "@optimystic/db-core": "^0.27.0",
90
90
  "async-mutex": "^0.5.0",
91
91
  "debug": "^4.4.3",
92
92
  "it-all": "^3.0.9",
@@ -180,8 +180,15 @@ export function proofThresholds(superMajorityThreshold: number): ProofThresholds
180
180
  * when uncertified and unrepresentable when certified.
181
181
  */
182
182
  export type ClaimCertification =
183
- /** The proof certifies `claim` — cap passed, thresholds of valid cohort signatures met. */
184
- | { certified: true }
183
+ /**
184
+ * The proof certifies `claim` — cap passed, thresholds of valid cohort signatures met.
185
+ * `signerCount` is the proof's distinct signer list size (`proof.peerIds.length`, the same
186
+ * number {@link UnanchoredProofAcceptance} reports): the selection helpers weigh a
187
+ * single-signer certification — routine since solo cohorts self-sign their commits — below
188
+ * multi-peer corroboration, and carrying the count in the verdict keeps the two repair paths
189
+ * from each measuring it off the proof themselves.
190
+ */
191
+ | { certified: true; signerCount: number }
185
192
  /** Classify the reason via {@link isAttributableProofFailure} before penalizing anyone. */
186
193
  | { certified: false; failure: CertifyFailure };
187
194
 
@@ -191,14 +198,18 @@ export type ClaimCertification =
191
198
  * alongside full success) cannot be constructed:
192
199
  */
193
200
  export type ContentCertification =
194
- /** Both halves passed: the proof certifies `(blockId, rev, actionId)` AND these exact bytes. */
195
- | { revCertified: true; contentCertified: true }
201
+ /**
202
+ * Both halves passed: the proof certifies `(blockId, rev, actionId)` AND these exact bytes.
203
+ * `signerCount` as in {@link ClaimCertification} — the selectors weigh it.
204
+ */
205
+ | { revCertified: true; contentCertified: true; signerCount: number }
196
206
  /**
197
207
  * The claim half passed, the content half did not: `digest-mismatch` (attributable — drop AND
198
208
  * penalize the served bytes) or `no-digest-declared` (drop only; the cohort declared nothing to
199
- * compare against). The `(rev, actionId)` is certified either way.
209
+ * compare against). The `(rev, actionId)` is certified either way, with `signerCount` weighing
210
+ * that certified half exactly as on full success.
200
211
  */
201
- | { revCertified: true; contentCertified: false; failure: 'digest-mismatch' | 'no-digest-declared' }
212
+ | { revCertified: true; contentCertified: false; failure: 'digest-mismatch' | 'no-digest-declared'; signerCount: number }
202
213
  /** The claim half failed, so nothing is certified. Classify via {@link isAttributableProofFailure}. */
203
214
  | { revCertified: false; contentCertified: false; failure: CertifyFailure };
204
215
 
@@ -218,7 +229,9 @@ export async function certifyClaim(
218
229
  return { certified: false, failure: verdict.reason };
219
230
  }
220
231
  await anchorAcceptedProof(proof, claim, anchoring);
221
- return { certified: true };
232
+ // Safe unguarded: the verifier only passes a proof whose peerIds it validated (the same read
233
+ // anchorAcceptedProof just performed).
234
+ return { certified: true, signerCount: proof.peerIds.length };
222
235
  }
223
236
 
224
237
  /**
@@ -239,11 +252,11 @@ export async function certifyContent(
239
252
  const verdict = await verifyBlockCommitProofContent(proof, claim, block, thresholds);
240
253
  if (verdict.ok) {
241
254
  await anchorAcceptedProof(proof, claim, anchoring);
242
- return { revCertified: true, contentCertified: true };
255
+ return { revCertified: true, contentCertified: true, signerCount: proof.peerIds.length };
243
256
  }
244
257
  if (verdict.reason === 'digest-mismatch' || verdict.reason === 'no-digest-declared') {
245
258
  await anchorAcceptedProof(proof, claim, anchoring);
246
- return { revCertified: true, contentCertified: false, failure: verdict.reason };
259
+ return { revCertified: true, contentCertified: false, failure: verdict.reason, signerCount: proof.peerIds.length };
247
260
  }
248
261
  return { revCertified: false, contentCertified: false, failure: verdict.reason };
249
262
  }
@@ -21,7 +21,7 @@ import { isMissingBaseRevisionFailure, type CommitDigestPreview, type ICommitDig
21
21
  import { checkPendValidation } from "../pend-validation.js";
22
22
  import { getAffectedBlockIds } from "./record-operations.js";
23
23
  import { operationsConflict, resolveRace } from "./race-resolution.js";
24
- import { buildBlockCommitProof } from "./commit-proof.js";
24
+ import { buildBlockCommitProof, mintSoloCommitProof, type BlockCommitProof } from "./commit-proof.js";
25
25
  import { RECONCILE_TIMEOUT_MS } from "./reconcile-block.js";
26
26
 
27
27
  const log = createLogger('cluster-member')
@@ -445,6 +445,17 @@ export class ClusterMember implements ICluster {
445
445
  return this.executedCommitResults.get(messageHash);
446
446
  }
447
447
 
448
+ /**
449
+ * Self-sign a one-peer {@link BlockCommitProof} over `message` — a thin delegate to
450
+ * {@link mintSoloCommitProof} with this member's own id and key. Lives here because this class is
451
+ * the key holder: `CoordinatorRepo` (the caller, on its solo-cohort commit short-circuit) knows
452
+ * the local peer id but never sees the private key. Nothing else moves — no record, no consensus
453
+ * state; the mint is a pure signing operation over the message the caller built.
454
+ */
455
+ async mintSoloCommitProof(message: RepoMessage): Promise<BlockCommitProof> {
456
+ return mintSoloCommitProof(this.peerId.toString(), this.privateKey, message);
457
+ }
458
+
448
459
  /**
449
460
  * Handles an incoming cluster update, managing the two-phase commit process
450
461
  * and coordinating with the local storage repo
@@ -1,11 +1,14 @@
1
1
  import type { ActionId, BlockId, ClusterRecord, IBlock, RepoMessage, Signature, CommitRequest } from "@optimystic/db-core";
2
2
  import {
3
- canonicalBlockHash, clusterVoteVerificationPayload, computeClusterCommitHash,
4
- computeClusterMessageHash, computeClusterPromiseHash, membershipDigestFromIds
3
+ canonicalBlockHash, clusterVoteSigningPayload, clusterVoteVerificationPayload,
4
+ computeClusterCommitHash, computeClusterMessageHash, computeClusterPromiseHash,
5
+ membershipDigestFromIds
5
6
  } from "@optimystic/db-core";
7
+ import type { PrivateKey } from "@libp2p/interface";
6
8
  import { peerIdFromString } from "@libp2p/peer-id";
7
9
  import { publicKeyFromRaw } from "@libp2p/crypto/keys";
8
10
  import { fromString as uint8ArrayFromString } from "uint8arrays/from-string";
11
+ import { toString as uint8ArrayToString } from "uint8arrays/to-string";
9
12
 
10
13
  /**
11
14
  * A durable, self-contained proof that a cluster cohort agreed on a commit — everything an offline
@@ -91,6 +94,39 @@ export function buildBlockCommitProof(record: ClusterRecord): BlockCommitProof |
91
94
  };
92
95
  }
93
96
 
97
+ /**
98
+ * Mint a fully-signed one-peer {@link BlockCommitProof} — the producing sibling of
99
+ * {@link verifyBlockCommitProofClaim}, kept in this file so the hash recipe the two must agree on
100
+ * lives in one place. Used by the solo-cohort commit path (`CoordinatorRepo.commit`'s
101
+ * `peerCount <= 1` short-circuit), where consensus never runs and there is no {@link ClusterRecord}
102
+ * to project: the lone member IS the whole cohort, so it signs both rounds itself over a one-peer
103
+ * membership. The artifact stays honest — "one peer, which was the whole cohort at the time,
104
+ * committed these bytes at this revision" — and verifies offline from the peer id alone, exactly
105
+ * like a consensus-produced proof: `ceil(0.75 × 1) = 1` approve satisfies the promise round and
106
+ * `1 > 1 × 0.5` the commit round under the production thresholds.
107
+ *
108
+ * The promise round is signed FIRST: the commit hash's preimage includes the promises map
109
+ * (`computeClusterCommitHash`), so the order is load-bearing, not stylistic.
110
+ */
111
+ export async function mintSoloCommitProof(
112
+ peerId: string, privateKey: PrivateKey, message: RepoMessage
113
+ ): Promise<BlockCommitProof> {
114
+ const membershipDigest = await membershipDigestFromIds([peerId]);
115
+ const messageHash = await computeClusterMessageHash(message, membershipDigest);
116
+ const signApprove = async (hash: string): Promise<Signature> => ({
117
+ type: 'approve',
118
+ signature: uint8ArrayToString(await privateKey.sign(clusterVoteSigningPayload(hash, 'approve')), 'base64url')
119
+ });
120
+ const promiseHash = await computeClusterPromiseHash(messageHash, message, membershipDigest);
121
+ const promises: Record<string, Signature> = { [peerId]: await signApprove(promiseHash) };
122
+ const commitHash = await computeClusterCommitHash(messageHash, message, promises, membershipDigest);
123
+ const commits: Record<string, Signature> = { [peerId]: await signApprove(commitHash) };
124
+ return {
125
+ v: 1, messageHash, message, promises, commits,
126
+ membershipVersion: 2, membershipDigest, peerIds: [peerId]
127
+ };
128
+ }
129
+
94
130
  /**
95
131
  * Verify that `proof` certifies the CLAIM — `claim.blockId` at `claim.rev` under `claim.actionId` —
96
132
  * without needing the block bytes. Pure and total on hostile input: never throws; every failure is a