@optimystic/db-p2p 1.0.0-beta.2 → 1.0.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 (234) hide show
  1. package/dist/src/cluster/block-transfer-service.d.ts +73 -1
  2. package/dist/src/cluster/block-transfer-service.d.ts.map +1 -1
  3. package/dist/src/cluster/block-transfer-service.js +70 -3
  4. package/dist/src/cluster/block-transfer-service.js.map +1 -1
  5. package/dist/src/cluster/block-transfer.d.ts +16 -1
  6. package/dist/src/cluster/block-transfer.d.ts.map +1 -1
  7. package/dist/src/cluster/block-transfer.js +73 -72
  8. package/dist/src/cluster/block-transfer.js.map +1 -1
  9. package/dist/src/cluster/client.d.ts +4 -6
  10. package/dist/src/cluster/client.d.ts.map +1 -1
  11. package/dist/src/cluster/client.js +8 -13
  12. package/dist/src/cluster/client.js.map +1 -1
  13. package/dist/src/cluster/cluster-policy.d.ts +2 -1
  14. package/dist/src/cluster/cluster-policy.d.ts.map +1 -1
  15. package/dist/src/cluster/cluster-policy.js.map +1 -1
  16. package/dist/src/cluster/cluster-repo.d.ts +172 -17
  17. package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
  18. package/dist/src/cluster/cluster-repo.js +553 -149
  19. package/dist/src/cluster/cluster-repo.js.map +1 -1
  20. package/dist/src/cluster/commit-proof.js +2 -2
  21. package/dist/src/cluster/race-resolution.d.ts +51 -7
  22. package/dist/src/cluster/race-resolution.d.ts.map +1 -1
  23. package/dist/src/cluster/race-resolution.js +71 -7
  24. package/dist/src/cluster/race-resolution.js.map +1 -1
  25. package/dist/src/cluster/rebalance-monitor.d.ts +67 -5
  26. package/dist/src/cluster/rebalance-monitor.d.ts.map +1 -1
  27. package/dist/src/cluster/rebalance-monitor.js +120 -26
  28. package/dist/src/cluster/rebalance-monitor.js.map +1 -1
  29. package/dist/src/cluster/spread-on-churn.d.ts.map +1 -1
  30. package/dist/src/cluster/spread-on-churn.js +34 -47
  31. package/dist/src/cluster/spread-on-churn.js.map +1 -1
  32. package/dist/src/cohort-topic/host.d.ts.map +1 -1
  33. package/dist/src/cohort-topic/host.js +8 -6
  34. package/dist/src/cohort-topic/host.js.map +1 -1
  35. package/dist/src/cohort-topic/membership-source.js +1 -1
  36. package/dist/src/cohort-topic/membership-source.js.map +1 -1
  37. package/dist/src/cohort-topic/peer-codec.d.ts.map +1 -1
  38. package/dist/src/cohort-topic/peer-codec.js +5 -2
  39. package/dist/src/cohort-topic/peer-codec.js.map +1 -1
  40. package/dist/src/cohort-topic/stream-util.d.ts +24 -3
  41. package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
  42. package/dist/src/cohort-topic/stream-util.js +36 -3
  43. package/dist/src/cohort-topic/stream-util.js.map +1 -1
  44. package/dist/src/cohort-topic/topic-router.d.ts +9 -0
  45. package/dist/src/cohort-topic/topic-router.d.ts.map +1 -1
  46. package/dist/src/cohort-topic/topic-router.js +12 -2
  47. package/dist/src/cohort-topic/topic-router.js.map +1 -1
  48. package/dist/src/dispute/client.d.ts.map +1 -1
  49. package/dist/src/dispute/client.js +15 -3
  50. package/dist/src/dispute/client.js.map +1 -1
  51. package/dist/src/index.d.ts +5 -0
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/src/index.js +5 -0
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/libp2p-key-network.d.ts +78 -17
  56. package/dist/src/libp2p-key-network.d.ts.map +1 -1
  57. package/dist/src/libp2p-key-network.js +241 -147
  58. package/dist/src/libp2p-key-network.js.map +1 -1
  59. package/dist/src/libp2p-node-base.d.ts +35 -1
  60. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  61. package/dist/src/libp2p-node-base.js +151 -26
  62. package/dist/src/libp2p-node-base.js.map +1 -1
  63. package/dist/src/libp2p-node-rn.d.ts +2 -2
  64. package/dist/src/libp2p-node-rn.d.ts.map +1 -1
  65. package/dist/src/libp2p-node-rn.js.map +1 -1
  66. package/dist/src/libp2p-node.d.ts +2 -2
  67. package/dist/src/libp2p-node.d.ts.map +1 -1
  68. package/dist/src/libp2p-node.js.map +1 -1
  69. package/dist/src/logger.d.ts.map +1 -1
  70. package/dist/src/logger.js +19 -7
  71. package/dist/src/logger.js.map +1 -1
  72. package/dist/src/matchmaking/query-transport.d.ts +3 -4
  73. package/dist/src/matchmaking/query-transport.d.ts.map +1 -1
  74. package/dist/src/matchmaking/query-transport.js +9 -9
  75. package/dist/src/matchmaking/query-transport.js.map +1 -1
  76. package/dist/src/network/network-manager-service.d.ts +10 -5
  77. package/dist/src/network/network-manager-service.d.ts.map +1 -1
  78. package/dist/src/network/network-manager-service.js +11 -2
  79. package/dist/src/network/network-manager-service.js.map +1 -1
  80. package/dist/src/network/relay-reservation.d.ts +170 -0
  81. package/dist/src/network/relay-reservation.d.ts.map +1 -0
  82. package/dist/src/network/relay-reservation.js +527 -0
  83. package/dist/src/network/relay-reservation.js.map +1 -0
  84. package/dist/src/pend-validation.d.ts +3 -2
  85. package/dist/src/pend-validation.d.ts.map +1 -1
  86. package/dist/src/pend-validation.js +3 -2
  87. package/dist/src/pend-validation.js.map +1 -1
  88. package/dist/src/protocol-client.d.ts +8 -1
  89. package/dist/src/protocol-client.d.ts.map +1 -1
  90. package/dist/src/protocol-client.js +11 -0
  91. package/dist/src/protocol-client.js.map +1 -1
  92. package/dist/src/reactivity/forwarder-host.d.ts +2 -1
  93. package/dist/src/reactivity/forwarder-host.d.ts.map +1 -1
  94. package/dist/src/reactivity/forwarder-host.js +2 -1
  95. package/dist/src/reactivity/forwarder-host.js.map +1 -1
  96. package/dist/src/reactivity/origination-manager.d.ts +3 -3
  97. package/dist/src/reactivity/origination-manager.js +3 -3
  98. package/dist/src/reactivity/recover-transport.d.ts +22 -14
  99. package/dist/src/reactivity/recover-transport.d.ts.map +1 -1
  100. package/dist/src/reactivity/recover-transport.js +32 -19
  101. package/dist/src/reactivity/recover-transport.js.map +1 -1
  102. package/dist/src/reactivity/subscription-manager.d.ts +2 -2
  103. package/dist/src/reactivity/topic-bytes.d.ts +6 -7
  104. package/dist/src/reactivity/topic-bytes.d.ts.map +1 -1
  105. package/dist/src/reactivity/topic-bytes.js +8 -9
  106. package/dist/src/reactivity/topic-bytes.js.map +1 -1
  107. package/dist/src/repo/client.d.ts +5 -2
  108. package/dist/src/repo/client.d.ts.map +1 -1
  109. package/dist/src/repo/client.js +49 -40
  110. package/dist/src/repo/client.js.map +1 -1
  111. package/dist/src/repo/cluster-coordinator.d.ts +119 -5
  112. package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
  113. package/dist/src/repo/cluster-coordinator.js +181 -29
  114. package/dist/src/repo/cluster-coordinator.js.map +1 -1
  115. package/dist/src/repo/coordinator-repo.d.ts +259 -76
  116. package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
  117. package/dist/src/repo/coordinator-repo.js +716 -328
  118. package/dist/src/repo/coordinator-repo.js.map +1 -1
  119. package/dist/src/repo/i-under-replication-ledger.d.ts +87 -0
  120. package/dist/src/repo/i-under-replication-ledger.d.ts.map +1 -0
  121. package/dist/src/repo/i-under-replication-ledger.js +2 -0
  122. package/dist/src/repo/i-under-replication-ledger.js.map +1 -0
  123. package/dist/src/repo/kv-under-replication-ledger.d.ts +91 -0
  124. package/dist/src/repo/kv-under-replication-ledger.d.ts.map +1 -0
  125. package/dist/src/repo/kv-under-replication-ledger.js +287 -0
  126. package/dist/src/repo/kv-under-replication-ledger.js.map +1 -0
  127. package/dist/src/repo/responsibility.d.ts +37 -0
  128. package/dist/src/repo/responsibility.d.ts.map +1 -0
  129. package/dist/src/repo/responsibility.js +37 -0
  130. package/dist/src/repo/responsibility.js.map +1 -0
  131. package/dist/src/repo/service.d.ts +44 -15
  132. package/dist/src/repo/service.d.ts.map +1 -1
  133. package/dist/src/repo/service.js +64 -27
  134. package/dist/src/repo/service.js.map +1 -1
  135. package/dist/src/repo/stuck-reservation.d.ts +127 -0
  136. package/dist/src/repo/stuck-reservation.d.ts.map +1 -0
  137. package/dist/src/repo/stuck-reservation.js +179 -0
  138. package/dist/src/repo/stuck-reservation.js.map +1 -0
  139. package/dist/src/repo/under-replication-drain.d.ts +208 -0
  140. package/dist/src/repo/under-replication-drain.d.ts.map +1 -0
  141. package/dist/src/repo/under-replication-drain.js +461 -0
  142. package/dist/src/repo/under-replication-drain.js.map +1 -0
  143. package/dist/src/rn.d.ts +5 -0
  144. package/dist/src/rn.d.ts.map +1 -1
  145. package/dist/src/rn.js +5 -0
  146. package/dist/src/rn.js.map +1 -1
  147. package/dist/src/storage/block-latch.d.ts +3 -2
  148. package/dist/src/storage/block-latch.d.ts.map +1 -1
  149. package/dist/src/storage/block-latch.js +7 -4
  150. package/dist/src/storage/block-latch.js.map +1 -1
  151. package/dist/src/storage/block-storage.d.ts +45 -3
  152. package/dist/src/storage/block-storage.d.ts.map +1 -1
  153. package/dist/src/storage/block-storage.js +156 -9
  154. package/dist/src/storage/block-storage.js.map +1 -1
  155. package/dist/src/storage/i-block-storage.d.ts +57 -5
  156. package/dist/src/storage/i-block-storage.d.ts.map +1 -1
  157. package/dist/src/storage/i-block-storage.js.map +1 -1
  158. package/dist/src/storage/pending-claim.d.ts +167 -0
  159. package/dist/src/storage/pending-claim.d.ts.map +1 -0
  160. package/dist/src/storage/pending-claim.js +156 -0
  161. package/dist/src/storage/pending-claim.js.map +1 -0
  162. package/dist/src/storage/raw-store-codec.d.ts +13 -0
  163. package/dist/src/storage/raw-store-codec.d.ts.map +1 -1
  164. package/dist/src/storage/raw-store-codec.js +24 -3
  165. package/dist/src/storage/raw-store-codec.js.map +1 -1
  166. package/dist/src/storage/restoration-coordinator.d.ts.map +1 -1
  167. package/dist/src/storage/restoration-coordinator.js +2 -1
  168. package/dist/src/storage/restoration-coordinator.js.map +1 -1
  169. package/dist/src/storage/ring-shift-coordinator.d.ts.map +1 -1
  170. package/dist/src/storage/ring-shift-coordinator.js +3 -3
  171. package/dist/src/storage/ring-shift-coordinator.js.map +1 -1
  172. package/dist/src/storage/storage-repo.d.ts +137 -5
  173. package/dist/src/storage/storage-repo.d.ts.map +1 -1
  174. package/dist/src/storage/storage-repo.js +273 -68
  175. package/dist/src/storage/storage-repo.js.map +1 -1
  176. package/dist/src/storage/struct.d.ts +58 -0
  177. package/dist/src/storage/struct.d.ts.map +1 -1
  178. package/dist/src/testing/mesh-harness.d.ts +92 -11
  179. package/dist/src/testing/mesh-harness.d.ts.map +1 -1
  180. package/dist/src/testing/mesh-harness.js +246 -103
  181. package/dist/src/testing/mesh-harness.js.map +1 -1
  182. package/package.json +2 -2
  183. package/readme.md +27 -3
  184. package/src/cluster/block-transfer-service.ts +132 -4
  185. package/src/cluster/block-transfer.ts +79 -84
  186. package/src/cluster/client.ts +115 -119
  187. package/src/cluster/cluster-policy.ts +2 -1
  188. package/src/cluster/cluster-repo.ts +3115 -2671
  189. package/src/cluster/commit-proof.ts +2 -2
  190. package/src/cluster/race-resolution.ts +76 -7
  191. package/src/cluster/rebalance-monitor.ts +677 -539
  192. package/src/cluster/spread-on-churn.ts +34 -54
  193. package/src/cohort-topic/host.ts +8 -6
  194. package/src/cohort-topic/membership-source.ts +1 -1
  195. package/src/cohort-topic/peer-codec.ts +34 -31
  196. package/src/cohort-topic/stream-util.ts +39 -4
  197. package/src/cohort-topic/topic-router.ts +12 -2
  198. package/src/dispute/client.ts +17 -7
  199. package/src/index.ts +64 -59
  200. package/src/libp2p-key-network.ts +1377 -1253
  201. package/src/libp2p-node-base.ts +186 -27
  202. package/src/libp2p-node-rn.ts +31 -30
  203. package/src/libp2p-node.ts +37 -36
  204. package/src/logger.ts +20 -7
  205. package/src/matchmaking/query-transport.ts +9 -9
  206. package/src/network/network-manager-service.ts +16 -5
  207. package/src/network/relay-reservation.ts +636 -0
  208. package/src/pend-validation.ts +3 -2
  209. package/src/protocol-client.ts +13 -1
  210. package/src/reactivity/forwarder-host.ts +2 -1
  211. package/src/reactivity/origination-manager.ts +3 -3
  212. package/src/reactivity/recover-transport.ts +39 -22
  213. package/src/reactivity/subscription-manager.ts +2 -2
  214. package/src/reactivity/topic-bytes.ts +35 -37
  215. package/src/repo/client.ts +172 -173
  216. package/src/repo/cluster-coordinator.ts +1296 -1113
  217. package/src/repo/coordinator-repo.ts +3087 -2687
  218. package/src/repo/i-under-replication-ledger.ts +89 -0
  219. package/src/repo/kv-under-replication-ledger.ts +302 -0
  220. package/src/repo/responsibility.ts +48 -0
  221. package/src/repo/service.ts +76 -39
  222. package/src/repo/stuck-reservation.ts +224 -0
  223. package/src/repo/under-replication-drain.ts +582 -0
  224. package/src/rn.ts +74 -69
  225. package/src/storage/block-latch.ts +7 -4
  226. package/src/storage/block-storage.ts +161 -10
  227. package/src/storage/i-block-storage.ts +60 -5
  228. package/src/storage/pending-claim.ts +200 -0
  229. package/src/storage/raw-store-codec.ts +26 -3
  230. package/src/storage/restoration-coordinator.ts +212 -211
  231. package/src/storage/ring-shift-coordinator.ts +271 -271
  232. package/src/storage/storage-repo.ts +311 -73
  233. package/src/storage/struct.ts +58 -0
  234. package/src/testing/mesh-harness.ts +329 -115
@@ -1 +1 @@
1
- {"version":3,"file":"ring-shift-coordinator.js","sourceRoot":"","sources":["../../../src/storage/ring-shift-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ring-shift-coordinator.js","sourceRoot":"","sources":["../../../src/storage/ring-shift-coordinator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { IRepo, MessageOptions, BlockId, CommitRequest, CommitResult, GetBlockResults, PendRequest, PendResult, ActionBlocks, ActionId, BlockGets, IBlock, ActionRev, PendValidationHook, UnvalidatablePendPolicy, CollectionId, IBlockChangeNotifier, CollectionChangeListener } from "@optimystic/db-core";
1
+ import type { IRepo, MessageOptions, BlockId, CommitRequest, CommitResult, GetBlockResults, PendRequest, PendResult, ActionBlocks, ActionId, BlockGets, IBlock, ActionRev, PendValidationHook, UnvalidatablePendPolicy, CollectionId, IBlockChangeNotifier, CollectionChangeListener, IBlockDurabilityNotifier, BlockDurabilityListener, BlockDurabilityReachedEvent } from "@optimystic/db-core";
2
2
  import type { IBlockStorage } from "./i-block-storage.js";
3
+ import { type PendingClaim } from "./pending-claim.js";
3
4
  import type { IBlockReplicaStore } from "../cluster/block-transfer-service.js";
4
5
  import { type BlockCommitProof } from "../cluster/commit-proof.js";
5
6
  /**
@@ -34,6 +35,21 @@ export declare class MissingBaseRevisionError extends Error {
34
35
  * cohort peer) from a genuine storage fault, which must still propagate.
35
36
  */
36
37
  export declare function isMissingBaseRevisionFailure(result: CommitResult): boolean;
38
+ /**
39
+ * Stable, greppable prefix on the failure reason `CoordinatorRepo.commit` answers with when a commit
40
+ * assembled consensus but FEWER than a majority of the cohort reported durably holding the committed
41
+ * revision afterwards. Same convention as {@link MISSING_BASE_REVISION_REASON}: a string marker,
42
+ * because the reason crosses the wire as `StaleFailure.reason` prose. The refusal is retryable
43
+ * (`conflict: true`) and means "not confirmed durable at a quorum" — never "guaranteed absent"; see
44
+ * the durability gate in `CoordinatorRepo.commit` for the two-phase ambiguity that wording covers.
45
+ */
46
+ export declare const COMMIT_NOT_DURABLE_REASON = "commit-not-durable";
47
+ /**
48
+ * True when a {@link CommitResult} was refused by the coordinator's durability gate — consensus was
49
+ * reached but no durable majority reported holding the revision. Sibling of
50
+ * {@link isMissingBaseRevisionFailure}, for callers that need to tell this refusal from a stale loss.
51
+ */
52
+ export declare function isCommitNotDurableFailure(result: CommitResult): boolean;
37
53
  export type StorageRepoOptions = {
38
54
  /** Optional hook to validate transactions in PendRequests */
39
55
  validatePend?: PendValidationHook;
@@ -107,7 +123,25 @@ export interface IRevisionActionReader {
107
123
  */
108
124
  getRevisionAction(blockId: BlockId, rev: number): Promise<ActionId | undefined>;
109
125
  }
110
- export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockReplicaStore, ICommitDigestPreviewer, ICommitProofPersister, IRevisionActionReader {
126
+ /**
127
+ * The capability that answers "which pending records hold this block, and for which slot and
128
+ * base?" — the questions the promise-round votes need. The rival check
129
+ * (`ClusterMember.validatePendOperations`) lists every record's claim, because a record the incoming
130
+ * writer has built on is not a reservation against it (`isReservationAgainst`), and
131
+ * `GetBlockResult.state.pendings` carries only action ids; the commit vote
132
+ * (`ClusterMember.validateCommitBaseDeclarations`) reads one record's claim, to compare the base its
133
+ * pend carried with the one the commit declares. Named for the same reason as
134
+ * {@link IRevisionActionReader}: a repo that lacks `listPendingClaims` degrades the pend vote to
135
+ * "every rival reserves" rather than to silently admitting one, and one that lacks `pendingClaimOf`
136
+ * makes the commit vote abstain — each method is probed on its own.
137
+ */
138
+ export interface IPendingClaimReader {
139
+ /** See `IBlockStorage.listPendingClaims`. Read-only; never takes the block write latch. */
140
+ listPendingClaims(blockId: BlockId): Promise<PendingClaim[]>;
141
+ /** See `IBlockStorage.pendingClaimOf`. Read-only; never takes the block write latch. */
142
+ pendingClaimOf(blockId: BlockId, actionId: ActionId): Promise<PendingClaim | undefined>;
143
+ }
144
+ export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockDurabilityNotifier, IBlockReplicaStore, ICommitDigestPreviewer, ICommitProofPersister, IRevisionActionReader, IPendingClaimReader {
111
145
  private readonly createBlockStorage;
112
146
  private readonly validatePend?;
113
147
  private readonly unvalidatablePendPolicy;
@@ -115,6 +149,9 @@ export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockR
115
149
  private readonly changeListeners;
116
150
  /** Catch-all change listeners — fire for EVERY collection's commit on this node. */
117
151
  private readonly anyChangeListeners;
152
+ /** Full-replication listeners — fire when a block this node acknowledged below `full` has
153
+ * reached every cohort member. See {@link IBlockDurabilityNotifier}. */
154
+ private readonly durabilityListeners;
118
155
  constructor(createBlockStorage: (blockId: BlockId) => IBlockStorage, options?: StorageRepoOptions);
119
156
  /**
120
157
  * Subscribe to commits that mutate `collectionId`'s blocks on this node.
@@ -143,7 +180,26 @@ export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockR
143
180
  private emitCollectionChanges;
144
181
  /** Dispatch `event` to a snapshot of `listeners` (safe under mid-emit (un)subscribe), isolating + logging any throw. */
145
182
  private fireChangeListeners;
146
- get({ blockIds, context }: BlockGets, _options?: MessageOptions): Promise<GetBlockResults>;
183
+ /** Subscribe to full-replication events. See {@link IBlockDurabilityNotifier}. */
184
+ onBlockDurabilityReached(listener: BlockDurabilityListener): () => void;
185
+ /**
186
+ * Fire one {@link BlockDurabilityReachedEvent} to every subscriber. The producer is the
187
+ * under-replication drain, which reaches this through a one-method sink the node hands it and
188
+ * calls it only AFTER the block's ledger entry is gone. Same listener isolation as
189
+ * {@link fireChangeListeners}: a throwing listener is logged and the rest still run.
190
+ */
191
+ emitBlockDurabilityReached(event: BlockDurabilityReachedEvent): void;
192
+ get({ blockIds, context, lineageOf }: BlockGets, _options?: MessageOptions): Promise<GetBlockResults>;
193
+ /**
194
+ * Answers {@link BlockGets.lineageOf} on every entry, from this node's own records (see
195
+ * {@link IBlockStorage.lineageOf}). Runs after the block reads, so it describes storage at least
196
+ * as new as the content served beside it; every fact it reads only ever moves forward, so a
197
+ * commit landing in between cannot make the answer wrong, only early.
198
+ *
199
+ * A read fault answers `unknown` rather than failing the batch: the asker reads that as "this
200
+ * node could not say", which is exactly what happened.
201
+ */
202
+ private answerLineage;
147
203
  /**
148
204
  * The one place a local coverage gap is healed from a peer. `getBlock` is local-only; when it
149
205
  * reports the target revision as not covered ({@link RevisionNotCoveredError}) this fetches it
@@ -285,6 +341,10 @@ export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockR
285
341
  * range means this node holds no record for that revision.
286
342
  */
287
343
  getRevisionAction(blockId: BlockId, rev: number): Promise<ActionId | undefined>;
344
+ /** See {@link IPendingClaimReader}. */
345
+ listPendingClaims(blockId: BlockId): Promise<PendingClaim[]>;
346
+ /** See {@link IPendingClaimReader}. */
347
+ pendingClaimOf(blockId: BlockId, actionId: ActionId): Promise<PendingClaim | undefined>;
288
348
  /**
289
349
  * The {@link BlockCommitProof} this node retained for `blockId` at `rev`, or `undefined` when it
290
350
  * kept none — a revision committed before proofs were persisted, a member whose materialization
@@ -301,10 +361,82 @@ export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockR
301
361
  /**
302
362
  * @param declaredBaseRev The committed revision of the base the WRITER applied this block's
303
363
  * transform to, as declared in the commit op's `blockDigests[blockId].baseRev`. Untrusted wire
304
- * data, so it is typed `unknown` and validated below. Absent from the read-driven promotion in
305
- * {@link get}, which has no commit request and therefore nothing to compare against.
364
+ * data, so it is typed `unknown` and validated in {@link guardCommitBase} where it is the
365
+ * FALLBACK, not the primary check: the base the record's own pend carried (`PendingClaim.baseRev`)
366
+ * is read first. Absent from the read-driven promotion in {@link get}, which has no commit request
367
+ * and has already judged the stored base (`mayPromoteOnRead`).
306
368
  */
307
369
  private internalCommit;
370
+ /**
371
+ * The fork guard: an update-only transform is applied ONLY to the base its author computed it
372
+ * against. Revisions are allocated per COLLECTION, not per block, so `rev - 1` is meaningless here —
373
+ * a member legitimately holds block X at rev 1 and receives a commit of X at rev 7 when revs 2-6
374
+ * touched other blocks (the retired decision `st-commit-contiguity-guard-premise`). The only sound
375
+ * discriminator is what the author said the base was, and the author says it twice:
376
+ *
377
+ * - `stored` — the base the record's own PEND carried for this block (`PendRequest.baseRevs`, kept
378
+ * as `PendingClaim.baseRev`). PRIMARY, because it was recorded with the very operations it
379
+ * describes and is present on every path that applies the record, commit message or not.
380
+ * - `declared` — `blockDigests[blockId].baseRev` on the commit. The FALLBACK, for a record whose
381
+ * pend named no base: a sender running older code, or a drift-blind source (test doubles).
382
+ * Untrusted wire data with no ingress schema (same rule as ClusterMember.validateCommitOperations):
383
+ * anything but a number abstains rather than being coerced into a comparison.
384
+ *
385
+ * Three steps, in order:
386
+ *
387
+ * 1. Both present and unequal → refuse, with its own detail and log line. An honest writer never
388
+ * does this (the base pinned at staging is the one pended and the one declared — `Tracker`), so
389
+ * the shape it closes is a member holding a STALE pending record from an earlier attempt of a
390
+ * retried action — the retry's pend never reached this member — that receives the retry's
391
+ * commit: the old record's operations were computed against a different base, and a guard that
392
+ * read only the declaration would apply them wherever this member's latest happened to equal
393
+ * the new declaration.
394
+ * 2. `effective = stored ?? declared`; a number, and `latest?.rev !== effective` → refuse. Covers
395
+ * all three unsafe states: BEHIND the base (missed updates — the fork case), AHEAD of it (this
396
+ * member holds a revision the writer never saw — divergent history), and no local revision at
397
+ * all against a numeric base.
398
+ * 3. Neither present → apply as before the guard existed, logged as `commit:base-undeclared` so the
399
+ * residual is countable. This is the one arm left open, BY CHOICE, for senders that name no
400
+ * base anywhere: refusing a base-less pend outright would turn every such writer's write into a
401
+ * hard failure on a release that may run mixed versions for a while.
402
+ *
403
+ * Base-independent transforms — an insert (replaces the block wholesale) or a delete (materializes
404
+ * to nothing) — are never guarded, keyed on the member's OWN pended transform and never on a
405
+ * declaration, so a hostile writer cannot flip the arm by attaching a bogus base.
406
+ *
407
+ * Refusing is cheap and self-healing: refuseMissingBase throws MissingBaseRevisionError, which
408
+ * commit() classifies as divergence and ClusterMember.applyConsensusOperation maps to "behind",
409
+ * running reconcileDivergentCommit to pull the committed revision from a cohort peer. The writer's
410
+ * retry then lands on a healed base. A hostile writer naming a junk numeric base — on the pend or
411
+ * on the commit — can force refusals and reconcile churn, but never a fork.
412
+ *
413
+ * NOTE: the AHEAD case is reported as "behind" divergence like every other missing-base refusal, so
414
+ * a cohort where nobody holds `rev` reconciles, fails `no-rev-quorum`, and logs that rather than a
415
+ * clean stale failure. Correct outcome — the writer read a base the cohort has moved past, and its
416
+ * retry re-reads — but the log reads as lag when it is the opposite. If those lines ever have to be
417
+ * triaged in volume, give the ahead arm its own reason string.
418
+ */
419
+ private guardCommitBase;
420
+ /**
421
+ * Whether the read-driven promotion in {@link get} may apply `actionId`'s pending record here: a
422
+ * base-independent record (an insert or a delete) always; an update-only one only when the base
423
+ * its pend carried (`PendingClaim.baseRev`) is a number equal to this node's `latest`. Anything
424
+ * else — a base this node has not reached, one it is past, or none stored at all — DECLINES, and
425
+ * the caller leaves the record and `latest` untouched.
426
+ *
427
+ * Declining is deliberately distinct from {@link refuseMissingBase}, which deletes the record
428
+ * because it can never be promoted here. A declined record is not dead: this node's latest reaches
429
+ * the stored base only through a replica or reconcile, and when that lands `sweepDeadClaims`
430
+ * removes the record if its slot is passed, or a later context read promotes it if not. A record
431
+ * whose pend named no base is declined too — the promotion must not apply a change whose base it
432
+ * cannot establish, and block repair supplies the version instead. The cost falls on base-less
433
+ * senders alone: their held-but-missed records no longer come current on a read, only through the
434
+ * next commit's reconcile or the coordinator's read-repair.
435
+ *
436
+ * {@link guardCommitBase} still runs inside `internalCommit` afterwards; under the latch the
437
+ * caller holds, this check is exactly what makes it pass.
438
+ */
439
+ private mayPromoteOnRead;
308
440
  /**
309
441
  * Retain `proof` for a block this call found ALREADY committed at `(rev, actionId)` — the paths
310
442
  * that land (or find already landed) a revision without running {@link internalCommit}, and would
@@ -1 +1 @@
1
- {"version":3,"file":"storage-repo.d.ts","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EACnH,QAAQ,EAAE,SAAS,EACH,MAAM,EAAE,SAAS,EACjC,kBAAkB,EAAE,uBAAuB,EAC3C,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAE5D,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAQxF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AAEpE;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE9E;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAtC,OAAO,EAAE,OAAO,EAAW,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI3E;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE1E;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;;;;;;;;;;;OAaG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CAClD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACtC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;CACjH;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACrC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1G;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;CAChF;AAED,qBAAa,WAAY,YAAW,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB;IASvJ,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IARpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0D;IAC1F,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;gBAGxD,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,EACxE,OAAO,CAAC,EAAE,kBAAkB;IAM7B;;;OAGG;IACH,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAqB9F;;;;;;OAMG;IACH,qBAAqB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAUrE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAiB7B,wHAAwH;IACxH,OAAO,CAAC,mBAAmB;IAUrB,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAuMhG;;;;;;;;;;;;;;;OAeG;YACW,gBAAgB;IA8B9B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAqBhB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAiM1E,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/E;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IA8NhH;;;;;;;;;;;;;;;;;;;OAmBG;YACW,wBAAwB;IAkBtC;;;;;;OAMG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD/H;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAyCtH;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQrF;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAIzF;;;;;OAKG;YACW,cAAc;IA+H5B;;;;;;;;;;;;;;OAcG;YACW,aAAa;IAgB3B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,4BAA4B;IA8B1C;;;;;;;;;;;;;;;;;;;;;;OAsBG;YACW,cAAc;IA0C5B;;;;;;;;;OASG;YACW,iBAAiB;CAY/B"}
1
+ {"version":3,"file":"storage-repo.d.ts","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"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"}