@optimystic/db-p2p 0.16.3 → 0.17.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 (70) hide show
  1. package/dist/src/cluster/block-transfer-service.d.ts +4 -1
  2. package/dist/src/cluster/block-transfer-service.d.ts.map +1 -1
  3. package/dist/src/cluster/block-transfer-service.js +11 -3
  4. package/dist/src/cluster/block-transfer-service.js.map +1 -1
  5. package/dist/src/cluster/cluster-repo.d.ts +6 -2
  6. package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
  7. package/dist/src/cluster/cluster-repo.js +28 -4
  8. package/dist/src/cluster/cluster-repo.js.map +1 -1
  9. package/dist/src/cluster/quorum-restore.d.ts +42 -14
  10. package/dist/src/cluster/quorum-restore.d.ts.map +1 -1
  11. package/dist/src/cluster/quorum-restore.js +0 -0
  12. package/dist/src/cluster/quorum-restore.js.map +1 -1
  13. package/dist/src/cluster/reconcile-block.d.ts +52 -0
  14. package/dist/src/cluster/reconcile-block.d.ts.map +1 -0
  15. package/dist/src/cluster/reconcile-block.js +113 -0
  16. package/dist/src/cluster/reconcile-block.js.map +1 -0
  17. package/dist/src/cluster/service.d.ts +4 -1
  18. package/dist/src/cluster/service.d.ts.map +1 -1
  19. package/dist/src/cluster/service.js +9 -1
  20. package/dist/src/cluster/service.js.map +1 -1
  21. package/dist/src/inbound-authorization.d.ts +111 -0
  22. package/dist/src/inbound-authorization.d.ts.map +1 -0
  23. package/dist/src/inbound-authorization.js +143 -0
  24. package/dist/src/inbound-authorization.js.map +1 -0
  25. package/dist/src/index.d.ts +1 -0
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +1 -0
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/libp2p-node-base.d.ts +42 -0
  30. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  31. package/dist/src/libp2p-node-base.js +43 -68
  32. package/dist/src/libp2p-node-base.js.map +1 -1
  33. package/dist/src/repo/coordinator-repo.d.ts +83 -10
  34. package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
  35. package/dist/src/repo/coordinator-repo.js +176 -24
  36. package/dist/src/repo/coordinator-repo.js.map +1 -1
  37. package/dist/src/repo/service.d.ts +4 -1
  38. package/dist/src/repo/service.d.ts.map +1 -1
  39. package/dist/src/repo/service.js +9 -1
  40. package/dist/src/repo/service.js.map +1 -1
  41. package/dist/src/storage/block-storage.d.ts.map +1 -1
  42. package/dist/src/storage/block-storage.js +11 -0
  43. package/dist/src/storage/block-storage.js.map +1 -1
  44. package/dist/src/storage/storage-repo.d.ts +47 -0
  45. package/dist/src/storage/storage-repo.d.ts.map +1 -1
  46. package/dist/src/storage/storage-repo.js +99 -9
  47. package/dist/src/storage/storage-repo.js.map +1 -1
  48. package/dist/src/sync/service.d.ts +4 -7
  49. package/dist/src/sync/service.d.ts.map +1 -1
  50. package/dist/src/sync/service.js +13 -10
  51. package/dist/src/sync/service.js.map +1 -1
  52. package/dist/src/testing/mesh-harness.d.ts.map +1 -1
  53. package/dist/src/testing/mesh-harness.js +41 -48
  54. package/dist/src/testing/mesh-harness.js.map +1 -1
  55. package/package.json +2 -2
  56. package/{README.md → readme.md} +17 -0
  57. package/src/cluster/block-transfer-service.ts +12 -5
  58. package/src/cluster/cluster-repo.ts +28 -4
  59. package/src/cluster/quorum-restore.ts +0 -0
  60. package/src/cluster/reconcile-block.ts +158 -0
  61. package/src/cluster/service.ts +10 -3
  62. package/src/inbound-authorization.ts +184 -0
  63. package/src/index.ts +1 -0
  64. package/src/libp2p-node-base.ts +90 -72
  65. package/src/repo/coordinator-repo.ts +224 -25
  66. package/src/repo/service.ts +10 -3
  67. package/src/storage/block-storage.ts +11 -0
  68. package/src/storage/storage-repo.ts +114 -9
  69. package/src/sync/service.ts +14 -12
  70. package/src/testing/mesh-harness.ts +40 -48
@@ -10,6 +10,7 @@ import type { SpreadOnChurnConfig } from './cluster/spread-on-churn.js';
10
10
  import type { RebalanceMonitorConfig } from './cluster/rebalance-monitor.js';
11
11
  import type { StorageMonitorConfig } from './storage/storage-monitor.js';
12
12
  import { type CohortTopicHostOptions } from './cohort-topic/host.js';
13
+ import type { AuthorizeInboundStream } from './inbound-authorization.js';
13
14
  import type { DisputeConfig } from './dispute/types.js';
14
15
  type Libp2pInit = NonNullable<Parameters<typeof createLibp2p>[0]>;
15
16
  export type Libp2pTransports = NonNullable<Libp2pInit['transports']>;
@@ -54,11 +55,25 @@ export type NodeOptions = {
54
55
  relayServerInit?: CircuitRelayServerInit;
55
56
  /** Storage provider - either an IRawStorage instance or a factory function. Defaults to MemoryRawStorage if not provided. */
56
57
  storage?: RawStorageProvider;
58
+ /**
59
+ * Desired cluster size per key (default 10). Beyond sizing the cohort, this is the
60
+ * node's declaration of how many peers *should* exist to corroborate a claim: the
61
+ * read-repair corroboration floor is measured against it, so a genuine two-node
62
+ * deployment must set `clusterSize: 2` for its members to be able to repair each
63
+ * other (see `CoordinatorRepo.corroboratorCapacity`).
64
+ */
57
65
  clusterSize?: number;
58
66
  clusterPolicy?: {
59
67
  allowDownsize?: boolean;
60
68
  sizeTolerance?: number;
61
69
  superMajorityThreshold?: number;
70
+ /**
71
+ * Opt in to transacting below the safe cluster-size floor when FRET has no confident
72
+ * network-size estimate — the membership-admission and coordinator small-cluster gates
73
+ * both fail closed without it. Default false. Turn on only for single-node / local dev
74
+ * meshes that knowingly run undersized.
75
+ */
76
+ allowUnvalidatedSmallCluster?: boolean;
62
77
  };
63
78
  /** Override libp2p listen multiaddrs. */
64
79
  listenAddrs?: string[];
@@ -144,6 +159,33 @@ export type NodeOptions = {
144
159
  * or `privateKeyFromProtobuf(...)` from `@libp2p/crypto/keys`).
145
160
  */
146
161
  privateKey?: PrivateKey;
162
+ /**
163
+ * Optional predicate deciding whether a remote peer may open one of the four Optimystic
164
+ * database protocols on this node (`repo`, `cluster`, `sync`, `block-transfer`). It is
165
+ * consulted once per inbound stream, before any frame is decoded or any operation executed.
166
+ *
167
+ * This is deliberately ONE node-level option threaded to all four services rather than four
168
+ * per-service options: "is this peer allowed to talk to my database?" is a property of the
169
+ * node, not of the protocol, and four independently-settable options make it easy to secure
170
+ * three surfaces and silently miss the fourth. (Each service still accepts the same option in
171
+ * its own init, so the services stay independently testable and usable outside this factory.)
172
+ *
173
+ * Absent → no check at all, and today's behavior exactly. Supplied → fail-closed: `false`, a
174
+ * throw, a rejection, or a timeout all deny and abort the stream. `remotePeerId` is the
175
+ * dialing peer's `PeerId.toString()`. See {@link AuthorizeInboundStream} and
176
+ * `docs/internals.md` § Inbound Stream Authorization.
177
+ *
178
+ * NOTE: this covers the four database protocols only. The reactivity, matchmaking,
179
+ * cohort-topic and libp2p built-in (identify/ping/…) protocols this node also registers are
180
+ * NOT gated by it.
181
+ */
182
+ authorizeInboundStream?: AuthorizeInboundStream;
183
+ /**
184
+ * Deadline for {@link NodeOptions.authorizeInboundStream}; expiry denies the stream (a hanging
185
+ * predicate would otherwise pin an inbound stream slot). Defaults to
186
+ * `DEFAULT_INBOUND_AUTHORIZATION_TIMEOUT_MS` (5s). Ignored when no predicate is supplied.
187
+ */
188
+ authorizeInboundStreamTimeoutMs?: number;
147
189
  /**
148
190
  * Optional libp2p connection gater. The libp2p browser default denies
149
191
  * dialing insecure WebSockets and private/loopback addresses; callers
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ import { BlockStorage } from './storage/block-storage.js';
18
18
  import { MemoryRawStorage } from './storage/memory-storage.js';
19
19
  import { seedOwnedBlocksFromStorage } from './owned-block-seed.js';
20
20
  import { clusterMember } from './cluster/cluster-repo.js';
21
- import { selectQuorumRev, selectQuorumBlock, canonicalBlockHash } from './cluster/quorum-restore.js';
21
+ import { createReconcileBlock } from './cluster/reconcile-block.js';
22
22
  import { createCommitCertStore, makeClusterCommitCertExtractor } from './cluster/commit-cert.js';
23
23
  import { coordinatorRepo } from './repo/coordinator-repo.js';
24
24
  import { Libp2pKeyPeerNetwork } from './libp2p-key-network.js';
@@ -52,7 +52,6 @@ import { PartitionDetector } from './cluster/partition-detector.js';
52
52
  import { assertSuperMajorityCoupling } from './cluster/supermajority-coupling.js';
53
53
  import { createLogger } from './logger.js';
54
54
  import { PeerReputationService } from './reputation/peer-reputation.js';
55
- import { PenaltyReason } from './reputation/types.js';
56
55
  import { DisputeService } from './dispute/dispute-service.js';
57
56
  import { DisputeClient } from './dispute/client.js';
58
57
  import { sampleArbitrators } from './dispute/arbitrator-selection.js';
@@ -146,6 +145,18 @@ export async function createLibp2pNodeBase(options, defaults) {
146
145
  return await target.commit(request, options);
147
146
  }
148
147
  };
148
+ // The ONE authorization slice, spread verbatim into all four database-protocol service inits
149
+ // below. Building it once (rather than repeating two option reads per service) is what makes
150
+ // "secured three surfaces, missed the fourth" impossible: adding a fifth protocol service is a
151
+ // spread of this object, and dropping it from one is visible at the call site.
152
+ // Absent `authorizeInboundStream` → every service constructs its gate as `undefined` and the
153
+ // inbound path is byte-for-byte what it was before this option existed.
154
+ const inboundAuthorization = {
155
+ ...(options.authorizeInboundStream ? { authorizeInboundStream: options.authorizeInboundStream } : {}),
156
+ ...(options.authorizeInboundStreamTimeoutMs !== undefined
157
+ ? { authorizeInboundStreamTimeoutMs: options.authorizeInboundStreamTimeoutMs }
158
+ : {})
159
+ };
149
160
  const nodePrivateKey = options.privateKey ?? await generateKeyPair('Ed25519');
150
161
  const listenAddrs = options.listenAddrs ?? defaults.listenAddrs;
151
162
  const transports = options.transports ?? defaults.transports;
@@ -238,7 +249,8 @@ export async function createLibp2pNodeBase(options, defaults) {
238
249
  cluster: (components) => {
239
250
  const serviceFactory = clusterService({
240
251
  protocolPrefix: `/optimystic/${options.networkName}`,
241
- responsibilityK: options.responsibilityK ?? 1
252
+ responsibilityK: options.responsibilityK ?? 1,
253
+ ...inboundAuthorization
242
254
  });
243
255
  return serviceFactory({
244
256
  logger: components.logger,
@@ -264,7 +276,8 @@ export async function createLibp2pNodeBase(options, defaults) {
264
276
  repo: (components) => {
265
277
  const serviceFactory = repoService({
266
278
  protocolPrefix: `/optimystic/${options.networkName}`,
267
- responsibilityK: options.responsibilityK ?? 1
279
+ responsibilityK: options.responsibilityK ?? 1,
280
+ ...inboundAuthorization
268
281
  });
269
282
  // RepoService.checkRedirect needs the running node (network manager for the
270
283
  // responsible-set computation, self id for the membership check, connection
@@ -283,7 +296,8 @@ export async function createLibp2pNodeBase(options, defaults) {
283
296
  },
284
297
  sync: (components) => {
285
298
  const serviceFactory = syncService({
286
- protocolPrefix: `/optimystic/${options.networkName}`
299
+ protocolPrefix: `/optimystic/${options.networkName}`,
300
+ ...inboundAuthorization
287
301
  });
288
302
  return serviceFactory({
289
303
  logger: components.logger,
@@ -296,7 +310,8 @@ export async function createLibp2pNodeBase(options, defaults) {
296
310
  // node's own storage, not be re-routed through the cluster-coordinated repo.
297
311
  blockTransfer: (components) => {
298
312
  const serviceFactory = blockTransferService({
299
- protocolPrefix: `/optimystic/${options.networkName}`
313
+ protocolPrefix: `/optimystic/${options.networkName}`,
314
+ ...inboundAuthorization
300
315
  });
301
316
  return serviceFactory({
302
317
  registrar: components.registrar,
@@ -398,6 +413,9 @@ export async function createLibp2pNodeBase(options, defaults) {
398
413
  minAbsoluteClusterSize: 2,
399
414
  allowClusterDownsize: options.clusterPolicy?.allowDownsize ?? true,
400
415
  clusterSizeTolerance: options.clusterPolicy?.sizeTolerance ?? 0.5,
416
+ // Fail closed by default (an undersized cluster with no confident network-size estimate is
417
+ // rejected); embedders running knowingly-small meshes opt in through clusterPolicy.
418
+ allowUnvalidatedSmallCluster: options.clusterPolicy?.allowUnvalidatedSmallCluster ?? false,
401
419
  partitionDetectionWindow: 60000,
402
420
  // Configured full cluster size — the member's own reference for "full size" in the membership
403
421
  // admission gate (a below-full-size declared set under low FRET confidence is refused as a possible
@@ -431,67 +449,18 @@ export async function createLibp2pNodeBase(options, defaults) {
431
449
  return undefined;
432
450
  }
433
451
  };
434
- // Active reconciliation for a block this member committed without the matching pend
435
- // (cohort drift). Queries the commit cohort (self already excluded) for the block,
436
- // picks the highest revision that is at least the committed rev, and persists it via
437
- // the churn-replication funnel so the block is no longer under-replicated.
438
- const reconcileBlock = async (blockId, committed, cohortPeerIds) => {
439
- const targets = cohortPeerIds.filter(id => id !== node.peerId.toString());
440
- if (targets.length === 0)
441
- return;
442
- const fetched = await Promise.all(targets.map(async (peerIdStr) => ({ peerIdStr, archive: await fetchArchiveFromPeer(peerIdStr, blockId) })));
443
- // Each cohort archive contributes one (rev, actionId) claim from its max
444
- // revision (>= the rev we committed). Pick the target rev by quorum
445
- // corroboration rather than raw Math.max — a lone peer inflating its rev
446
- // cannot steer reconciliation. Keep the serving peer + block per candidate
447
- // so we can then verify content agreement.
448
- // NOTE: this quorum is corroboration-of-a-claim, NOT Sybil-resistant cohort
449
- // membership — deferred to backlog `debt-read-repair-commit-cert-verification`.
450
- const candidates = [];
451
- for (const { peerIdStr, archive } of fetched) {
452
- if (!archive)
453
- continue;
454
- const revs = Object.keys(archive.revisions).map(Number);
455
- if (revs.length === 0)
456
- continue;
457
- const maxRev = Math.max(...revs);
458
- if (maxRev < committed.rev)
459
- continue;
460
- const data = archive.revisions[maxRev];
461
- if (!data?.action)
462
- continue;
463
- candidates.push({ peerIdStr, rev: maxRev, actionId: data.action.actionId, block: data.block });
464
- }
465
- const revClaims = candidates.map(c => ({ peerId: c.peerIdStr, rev: c.rev, actionId: c.actionId }));
466
- const selected = selectQuorumRev(revClaims, consensusConfig.simpleMajorityThreshold);
467
- if (!selected)
468
- return; // no rev corroborated by a quorum → leave block, churn/rebalance retries later
469
- // Content agreement: among archives corroborating the chosen (rev, actionId)
470
- // and actually carrying the block, the content must be byte-identical across
471
- // a quorum. A cohort member serving content that hashes differently is rejected.
472
- // NOTE: selectQuorumBlock recomputes its quorum over only the block-CARRYING
473
- // corroborators, not the full rev-responder set. If most peers corroborate the
474
- // rev but few carry block bytes (e.g. mid-prune), the content quorum can shrink
475
- // to 2. Harmless with honest peers; if a colluding pair ever becomes the only
476
- // block-servers for an agreed rev, that is the Sybil regime already deferred to
477
- // backlog `debt-read-repair-commit-cert-verification`.
478
- const corroborating = candidates.filter(c => c.rev === selected.rev && c.actionId === selected.actionId && c.block);
479
- const hashCandidates = await Promise.all(corroborating.map(async (c) => ({ peerId: c.peerIdStr, hash: await canonicalBlockHash(c.block), block: c.block })));
480
- const agreed = selectQuorumBlock(hashCandidates, consensusConfig.simpleMajorityThreshold);
481
- if (!agreed)
482
- return; // no content quorum → skip persist
483
- // Best-effort: penalize cohort members that served content contradicting the
484
- // agreed hash for the same committed (rev, actionId). Never let this throw.
485
- try {
486
- for (const c of hashCandidates) {
487
- if (c.hash !== agreed.hash) {
488
- reputation.reportPeer(c.peerId, PenaltyReason.InvalidRestoration, `reconcile:${blockId}`);
489
- }
490
- }
491
- }
492
- catch { /* reputation write must never block restoration */ }
493
- await storageRepo.saveReplicatedBlock(blockId, agreed.block, { actionId: selected.actionId, rev: selected.rev });
494
- };
452
+ // Active reconciliation for a block this member committed without a materializable base
453
+ // (cohort drift, or a refused `missing-base-revision` commit). See `reconcile-block.ts` for
454
+ // the corroboration rules in particular why both quorums are capped by how many peers
455
+ // could answer at all, which is what lets a genuinely two-node cohort heal.
456
+ const reconcileBlock = createReconcileBlock({
457
+ selfPeerId: node.peerId.toString(),
458
+ fetchArchive: fetchArchiveFromPeer,
459
+ saveReplicatedBlock: (blockId, block, source) => storageRepo.saveReplicatedBlock(blockId, block, source),
460
+ simpleMajorityThreshold: consensusConfig.simpleMajorityThreshold,
461
+ clusterSize: consensusConfig.clusterSize,
462
+ reputation
463
+ });
495
464
  // Member-side membership derivation for the admission gate: independently re-derive this block's
496
465
  // responsible cluster from the SAME source the coordinator uses (IKeyNetwork.findCluster), plus FRET's
497
466
  // network-size confidence. A member gates a coordinator-declared peer set against this view before
@@ -574,7 +543,13 @@ export async function createLibp2pNodeBase(options, defaults) {
574
543
  storageRepo,
575
544
  localCluster: clusterImpl,
576
545
  localPeerId: node.peerId,
577
- clusterLatestCallback
546
+ clusterLatestCallback,
547
+ // Read-driven acquisition shares the commit path's reconcile callback verbatim: same bounded
548
+ // archive fetch, same (rev, actionId) and content quorums, same monotonic saveReplicatedBlock
549
+ // funnel. `clusterLatestCallback` alone can only tell the reader WHICH revision the cohort
550
+ // holds; this is what moves the bytes. Only reached once a corroborated revision exists, so a
551
+ // genuinely absent block still costs no archive fetch.
552
+ acquireBlockFromCohort: reconcileBlock
578
553
  });
579
554
  // Fail-fast coupling: the cluster member (what accepts a super-majority as sufficient) and the
580
555
  // coordinator (what declares a transaction committed on that super-majority) MUST run the same
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p-node-base.js","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p-node-base.js","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,18 @@ import type { PeerId } from "@libp2p/interface";
4
4
  import type { FretService } from "p2p-fret";
5
5
  import type { IPeerReputation } from "../reputation/types.js";
6
6
  import type { ITransactionStateStore } from "../cluster/i-transaction-state-store.js";
7
+ import type { ReconcileBlockCallback } from "../cluster/cluster-repo.js";
8
+ /**
9
+ * Acquire a block's content for a cohort-corroborated revision, from the cohort, and persist it.
10
+ *
11
+ * Deliberately the SAME shape as the commit path's {@link ReconcileBlockCallback}, and in the live
12
+ * node the very same instance (`libp2p-node-base` passes its `reconcileBlock` to both): read-driven
13
+ * acquisition needs exactly what reconcile already provides — a per-peer-bounded archive fetch, a
14
+ * quorum vote on the target `(rev, actionId)`, a quorum vote on the *content* at that revision, and a
15
+ * persist through the monotonic, commit-latched `StorageRepo.saveReplicatedBlock` funnel. Reusing it
16
+ * is what keeps read-repair from being a weaker trust path than reconcile.
17
+ */
18
+ export type AcquireBlockCallback = ReconcileBlockCallback;
7
19
  /**
8
20
  * Extended cluster interface that includes the ability to check if a transaction was executed.
9
21
  * This is used by CoordinatorRepo to avoid duplicate execution.
@@ -25,6 +37,13 @@ interface CoordinatorRepoComponents {
25
37
  * Used for read-path cluster verification to discover unknown revisions.
26
38
  */
27
39
  clusterLatestCallback?: ClusterLatestCallback;
40
+ /**
41
+ * Optional callback that actually moves a block's bytes from the cohort into local storage once
42
+ * {@link clusterLatestCallback} has established a corroborated revision this node lacks. Absent →
43
+ * the read path can still *select* the right revision but converges only when the node already
44
+ * holds the corroborated action as a promotable pending. See {@link AcquireBlockCallback}.
45
+ */
46
+ acquireBlockFromCohort?: AcquireBlockCallback;
28
47
  }
29
48
  export declare function coordinatorRepo(keyNetwork: IKeyNetwork, createClusterClient: (peerId: PeerId) => ClusterClient, cfg?: Partial<ClusterConsensusConfig> & {
30
49
  clusterSize?: number;
@@ -35,6 +54,7 @@ export declare class CoordinatorRepo implements IRepo {
35
54
  readonly createClusterClient: (peerId: PeerId) => ClusterClient;
36
55
  private readonly storageRepo;
37
56
  private readonly clusterLatestCallback?;
57
+ private readonly acquireBlockFromCohort?;
38
58
  private coordinator;
39
59
  private readonly DEFAULT_TIMEOUT;
40
60
  private readonly localPeerId?;
@@ -46,6 +66,8 @@ export declare class CoordinatorRepo implements IRepo {
46
66
  private readonly readRepairSampleRate;
47
67
  /** Simple-majority threshold from the consensus policy; drives the read-repair corroboration quorum. */
48
68
  private readonly simpleMajorityThreshold;
69
+ /** Configured full cluster size; the operator's declaration of how many corroborators should exist. */
70
+ private readonly clusterSize;
49
71
  /** Resolved super-majority threshold the coordinator commits on (mirrors the value handed to ClusterCoordinator). */
50
72
  private readonly superMajorityThreshold;
51
73
  private readonly reputation?;
@@ -55,7 +77,7 @@ export declare class CoordinatorRepo implements IRepo {
55
77
  rand: () => number;
56
78
  constructor(keyNetwork: IKeyNetwork, createClusterClient: (peerId: PeerId) => ClusterClient, storageRepo: IRepo, cfg?: Partial<ClusterConsensusConfig> & {
57
79
  clusterSize?: number;
58
- }, localCluster?: LocalClusterWithExecutionTracking, localPeerId?: PeerId, fretService?: FretService, clusterLatestCallback?: ClusterLatestCallback | undefined, reputation?: IPeerReputation, stateStore?: ITransactionStateStore);
80
+ }, localCluster?: LocalClusterWithExecutionTracking, localPeerId?: PeerId, fretService?: FretService, clusterLatestCallback?: ClusterLatestCallback | undefined, reputation?: IPeerReputation, stateStore?: ITransactionStateStore, acquireBlockFromCohort?: AcquireBlockCallback | undefined);
59
81
  /**
60
82
  * The resolved super-majority threshold this coordinator commits on. Exposed so the composition root
61
83
  * can fail-fast if the coordinator and the cluster member would run different thresholds (see the
@@ -91,20 +113,71 @@ export declare class CoordinatorRepo implements IRepo {
91
113
  setLastSeenForTest(blockId: BlockId, ts: number): void;
92
114
  private fetchBlockFromCluster;
93
115
  /**
94
- * Query cluster peers for their latest revision and return the highest
95
- * revision corroborated by a quorum of distinct peers.
116
+ * Bring this node up to the cohort-corroborated `corroborated`, returning the revision it holds
117
+ * afterwards when that is an advance over `local`, else `undefined`.
118
+ *
119
+ * Two mechanisms, cheapest first:
120
+ * 1. **Promote a local pending** — free, no network, and the only mechanism that existed before
121
+ * block acquisition. Covers the node that saw the pend and missed the commit broadcast.
122
+ * 2. **Acquire the bytes from the cohort** ({@link AcquireBlockCallback}) — covers everything else,
123
+ * including a block this node has never seen at all.
124
+ *
125
+ * **Why acquisition is gated here and not on a plain local miss.** `BlockStorage.getBlock` returns
126
+ * `undefined` for a block with no local metadata *without* consulting its restore callback, so that
127
+ * an insert probing a fresh random block id for a collision does not cost a network fetch. That
128
+ * remains true: this method runs only after {@link queryClusterForLatest} produced a quorum-
129
+ * corroborated `(rev, actionId)`, which a genuinely non-existent block can never produce (no peer
130
+ * claims it, so `selectQuorumRev` declines and `fetchBlockFromCluster` returns before reaching
131
+ * here). The cost of a genuine absence is unchanged — the latest-query round trip that already
132
+ * happened — while a block the cohort demonstrably holds is no longer thrown away.
133
+ *
134
+ * Cohort peer ids are passed straight through: the callback filters self out and caps its own
135
+ * corroboration quorum by how many peers could answer at all.
136
+ */
137
+ private restoreCorroborated;
138
+ /**
139
+ * Promote a corroborated action this node already holds as a local pending — the no-network half of
140
+ * the repair. Returns the local revision afterwards.
141
+ *
142
+ * A pending-only block (metadata seeded by `savePendingTransaction`, no committed revision) asked
143
+ * for a forward revision throws out of `BlockStorage.ensureRevision` when no restore can supply it.
144
+ * On THIS path that is an absence, not a read failure — acquisition is precisely the mechanism that
145
+ * can supply it — so the throw is logged and swallowed rather than short-circuiting the caller.
146
+ */
147
+ private promoteCorroborated;
148
+ /** This node's own `latest.rev` for a block, optionally driving a promotion context through the read. */
149
+ private readLocalRev;
150
+ /**
151
+ * How many peers other than this node could corroborate a claim about a block, given a
152
+ * cohort view of `peerIds`. Deliberately the MAX of what we observe and what the
153
+ * configured cluster size implies: the corroboration floor may only be relaxed for a
154
+ * cohort that is genuinely small, never for one that merely *looks* small. `findCluster`
155
+ * results are unauthenticated, so a partition — or an attacker with routing influence —
156
+ * can shrink this node's view to itself plus one peer; measuring against the configured
157
+ * size keeps that shrunken view from talking the requirement down to a single voter.
158
+ * The escape hatch for a real two-node deployment is therefore to configure
159
+ * `clusterSize: 2`, an explicit operator declaration, mirroring how
160
+ * `allowUnvalidatedSmallCluster` gates the membership admission floor.
161
+ */
162
+ private corroboratorCapacity;
163
+ /**
164
+ * Query cluster peers for their latest revision and return the highest revision
165
+ * corroborated by a quorum of distinct peers, alongside this node's own latest.
96
166
  *
97
167
  * Replaces the old "max rev any single peer reports" — which let one lying
98
168
  * peer over-reporting its revision steer restoration — with quorum
99
- * corroboration on the exact `(rev, actionId)` pair (see
100
- * {@link selectQuorumRev}). The local node's own latest is included as a
101
- * corroborating vote because `clusterLatestCallback` self-short-circuits to
102
- * local storage. Returns `undefined` (keep local, do not restore) when no
103
- * revision is corroborated.
169
+ * corroboration on the exact `(rev, actionId)` pair (see {@link selectQuorumRev}).
170
+ *
171
+ * This node's own answer is split out of the claim set rather than counted in it:
172
+ * `clusterLatestCallback` short-circuits self to local storage, so including it let a
173
+ * reader whose only peer timed out "corroborate" the very revision it was trying to
174
+ * repair. It is returned separately so the caller can compare, not vote.
104
175
  *
105
176
  * NOTE: the quorum is corroboration-of-a-claim, NOT Sybil-resistant cohort
106
- * membership — a peer minting fresh keypairs still casts a vote. Commit-cert
107
- * + membership anchoring is deferred to backlog
177
+ * membership — a peer minting fresh keypairs still casts a vote, and the claims
178
+ * themselves are bare assertions (a `BlockArchive` carries no commit certificate, so
179
+ * there is nothing here to verify a `(rev, actionId)` against). Commit-cert +
180
+ * membership anchoring is deferred to backlog
108
181
  * `debt-read-repair-commit-cert-verification`.
109
182
  */
110
183
  private queryClusterForLatest;
@@ -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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"}