@optimystic/db-p2p 1.0.0 → 1.2.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.
@@ -738,10 +738,20 @@ export class StorageRepo {
738
738
  */
739
739
  async commit(request, _options, proof) {
740
740
  log('commit actionId=%s rev=%d blockIds=%d', request.actionId, request.rev, request.blockIds.length);
741
- // Deduped ONCE, in request order — the order blocks are committed and reported in. The latches
742
- // are acquired in sorted order by `acquireBlockWriteLatches` over this same set, so every
743
- // `latches.get(blockId)!` below resolves.
744
- const blockIds = Array.from(new Set(request.blockIds));
741
+ // Deduped ONCE, tail first, then request order — the order blocks are committed and reported
742
+ // in. The latches are acquired in sorted order by `acquireBlockWriteLatches` over this same set,
743
+ // so every `latches.get(blockId)!` below resolves.
744
+ //
745
+ // Tail first is the invariant "no member commits a non-tail block of an action without its
746
+ // tail". The apply loop below stops at the first failure, and every whole-batch refusal (the
747
+ // stale partition, the missing-pend throw) returns before anything is applied, so a tail applied
748
+ // first means a member holding a committed non-tail block of this action also holds the tail.
749
+ // `Collection.bootstrapContext` reads the tail with no revision context and relies on exactly
750
+ // that; `NetworkTransactor.commit` sends the tail and the other blocks in one request when one
751
+ // coordinator covers them all, so the order is enforced here rather than trusted to the sender.
752
+ // (The read-driven promotion in `get` is the other landing path; it acts only on a context
753
+ // proving the action committed, so the tail is committed somewhere in the cohort by then.)
754
+ const blockIds = tailFirst(Array.from(new Set(request.blockIds)), request.tailId);
745
755
  // Collects the blocks newly committed in this call, grouped by collection,
746
756
  // so we can emit change events once locks are released. Blocks that land before
747
757
  // a mid-loop failure stay here and are still emitted (Option A — emit eagerly):
@@ -754,8 +764,8 @@ export class StorageRepo {
754
764
  const { latches, release } = await acquireBlockWriteLatches(blockIds);
755
765
  try {
756
766
  // --- Start of Critical Section ---
757
- // Request order, deduped (NOT the sorted acquisition order): the order here is the order
758
- // blocks are committed and reported in change events, which callers may observe.
767
+ // Tail first, then request order, deduped (NOT the sorted acquisition order): the order here
768
+ // is the order blocks are committed and reported in change events, which callers may observe.
759
769
  const blockStorages = blockIds.map(blockId => ({
760
770
  blockId,
761
771
  storage: this.createBlockStorage(blockId),
@@ -1530,4 +1540,12 @@ function perBlockActionTransformsToPerAction(missing) {
1530
1540
  transforms: emptyTransforms()
1531
1541
  }));
1532
1542
  }
1543
+ /** `blockIds` with `tailId` moved to the front and the rest left in their order. Returns `blockIds`
1544
+ * itself when there is no tail, the tail is not in the list, or it is already first. */
1545
+ function tailFirst(blockIds, tailId) {
1546
+ if (tailId === undefined || blockIds[0] === tailId || !blockIds.includes(tailId)) {
1547
+ return blockIds;
1548
+ }
1549
+ return [tailId, ...blockIds.filter(id => id !== tailId)];
1550
+ }
1533
1551
  //# sourceMappingURL=storage-repo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-repo.js","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-repo.js","sourceRoot":"","sources":["../../../src/storage/storage-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": "1.0.0",
3
+ "version": "1.2.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": "^1.0.0",
89
+ "@optimystic/db-core": "^1.2.0",
90
90
  "async-mutex": "^0.5.0",
91
91
  "debug": "^4.4.3",
92
92
  "it-all": "^3.0.9",
@@ -363,6 +363,12 @@ export class ClusterMember implements ICluster {
363
363
  // applyConsensusOperation swallowed a refusal whose real cause was a RIVAL action holding the
364
364
  // requested revision. Pruned alongside executedTransactions (same TTL).
365
365
  private executedCommitResults: Map<string, CommitResult> = new Map();
366
+ // The messageHashes whose retained commit refusal above has the BEHIND shape (missing pend or
367
+ // missing base — this member held no usable revision), as opposed to the ahead shape, which must
368
+ // never be reconciled downward. Recorded from the apply branch that produced the refusal rather
369
+ // than read back from its prose. Only these are eligible for reconcileRefusedCommit. Same TTL,
370
+ // pruning and rollback as executedCommitResults.
371
+ private behindCommitRefusals: Set<string> = new Set();
366
372
  // Conflict-shaped pend refusals this member's storage produced at consensus-apply, keyed by the
367
373
  // refused action's id rather than by messageHash. The messageHash-keyed map above cannot serve the
368
374
  // commit-promise guard: a commit is a DIFFERENT message with a different hash, so a member holding
@@ -491,6 +497,7 @@ export class ClusterMember implements ICluster {
491
497
  this.cleanupQueue.length = 0;
492
498
  this.executedPendResults.clear();
493
499
  this.executedCommitResults.clear();
500
+ this.behindCommitRefusals.clear();
494
501
  this.refusedPendActions.clear();
495
502
  }
496
503
 
@@ -773,12 +780,13 @@ export class ClusterMember implements ICluster {
773
780
  }
774
781
 
775
782
  /**
776
- * Add this member's own apply verdicts to a record's {@link ClusterRecord.applyOutcomes}, when
777
- * storage produced any for this transaction. The two arms follow the rules on
778
- * {@link MemberApplyOutcome}: the pend arm carries ONLY a conflict-shaped refusal (a success, a
779
- * bare-reason fault, or no retained verdict leaves it off the coordinator's rule is "an entry
780
- * means retry", so an entry that does not mean retry must not exist); the commit arm carries the
781
- * retained durable verdict whatever it says, because the coordinator counts the successes.
783
+ * Add this member's own apply report to a record's {@link ClusterRecord.applyOutcomes}, when it
784
+ * has anything to report for this transaction. The fields follow the rules on
785
+ * {@link MemberApplyOutcome}: `executed` is set once this member has run the consensus apply; the
786
+ * pend arm carries ONLY a conflict-shaped refusal (a success, a bare-reason fault, or no retained
787
+ * verdict leaves it off the coordinator's rule is "an entry means retry", so an entry that does
788
+ * not mean retry must not exist); the commit arm carries the retained durable verdict whatever it
789
+ * says, because the coordinator counts the successes.
782
790
  *
783
791
  * The member never signs this and never writes another peer's entry.
784
792
  */
@@ -786,6 +794,7 @@ export class ClusterMember implements ICluster {
786
794
  const pend = this.executedPendResults.get(record.messageHash);
787
795
  const commit = this.executedCommitResults.get(record.messageHash);
788
796
  const own: MemberApplyOutcome = {
797
+ ...(this.executedTransactions.has(record.messageHash) ? { executed: true } : {}),
789
798
  ...(pend !== undefined && !pend.success && isConflictFailure(pend) ? { pend } : {}),
790
799
  ...(commit !== undefined ? { commit } : {})
791
800
  };
@@ -2295,14 +2304,14 @@ export class ClusterMember implements ICluster {
2295
2304
  // Check persistent store first for post-recovery dedup (in-memory map is cleared on restart).
2296
2305
  // wasTransactionExecutedAsync also checks the in-memory map as a fast path.
2297
2306
  if (await this.wasTransactionExecutedAsync(record.messageHash)) {
2298
- log('cluster-member:consensus-already-executed', { messageHash: record.messageHash });
2307
+ await this.handleAlreadyExecuted(record);
2299
2308
  return;
2300
2309
  }
2301
2310
  // Check-and-set ATOMICALLY to prevent race condition where multiple calls
2302
2311
  // pass the async check before any completes. Since JavaScript is single-threaded,
2303
2312
  // this synchronous check-and-set is atomic before any await.
2304
2313
  if (this.executedTransactions.has(record.messageHash)) {
2305
- log('cluster-member:consensus-already-executed', { messageHash: record.messageHash });
2314
+ await this.handleAlreadyExecuted(record);
2306
2315
  return;
2307
2316
  }
2308
2317
  // Set the in-memory guard IMMEDIATELY, before any async operations: its synchronous
@@ -2329,6 +2338,7 @@ export class ClusterMember implements ICluster {
2329
2338
  this.executedTransactions.delete(record.messageHash);
2330
2339
  this.executedPendResults.delete(record.messageHash);
2331
2340
  this.executedCommitResults.delete(record.messageHash);
2341
+ this.behindCommitRefusals.delete(record.messageHash);
2332
2342
  for (const operation of record.message.operations) {
2333
2343
  if ('pend' in operation) this.refusedPendActions.delete(operation.pend.actionId);
2334
2344
  }
@@ -2349,6 +2359,20 @@ export class ClusterMember implements ICluster {
2349
2359
  .catch(err => log('cluster-member:persist-executed-error', { messageHash: record.messageHash, error: (err as Error).message }));
2350
2360
  }
2351
2361
 
2362
+ /**
2363
+ * A delivery of a record this member already applied. Nothing is applied again, but a retained
2364
+ * behind-shaped commit refusal gets one more reconcile ({@link reconcileRefusedCommit}, a no-op for
2365
+ * every other verdict). This is how a behind remote member heals when it applied on receipt of the
2366
+ * commit round, before the coordinating member held the revision: the coordinator re-sends it the
2367
+ * merged record once its own member has applied, and this delivery's response carries the
2368
+ * refreshed verdict (`withOwnApplyOutcome`), which the durability gate reads. A scheduled commit
2369
+ * retry reaching such a member heals it the same way.
2370
+ */
2371
+ private async handleAlreadyExecuted(record: ClusterRecord): Promise<void> {
2372
+ log('cluster-member:consensus-already-executed', { messageHash: record.messageHash });
2373
+ await this.reconcileRefusedCommit(record);
2374
+ }
2375
+
2352
2376
  /**
2353
2377
  * Applies one consensus-approved operation to local storage.
2354
2378
  *
@@ -2476,7 +2500,7 @@ export class ClusterMember implements ICluster {
2476
2500
  membershipVersion: record.membershipVersion
2477
2501
  });
2478
2502
  }
2479
- const applied = await this.applyCommitToStorage(record, commit, proof);
2503
+ const { applied, behind } = await this.applyCommitToStorage(record, commit, proof);
2480
2504
  // Retain the POST-RECONCILE durable verdict (see getExecutedCommitResult and
2481
2505
  // withOwnApplyOutcome): what this member's storage holds NOW, after any behind-reconcile the
2482
2506
  // apply triggered — not what the first apply attempt said. A member that pulled the
@@ -2485,9 +2509,7 @@ export class ClusterMember implements ICluster {
2485
2509
  // verdicts — its own member's through getExecutedCommitResult, every other member's off the
2486
2510
  // response record — and the two readers must see the same answer, hence one verdict,
2487
2511
  // computed once, retained here for both.
2488
- const verdict = await this.durableCommitVerdict(commit, applied);
2489
- this.executedCommitResults.set(messageHash, verdict);
2490
- if (verdict.success) this.reportCommittedHolders(record, commit);
2512
+ this.retainCommitVerdict(record, commit, await this.durableCommitVerdict(commit, applied), behind);
2491
2513
  return;
2492
2514
  }
2493
2515
  if ('invalidate' in operation) {
@@ -2499,12 +2521,14 @@ export class ClusterMember implements ICluster {
2499
2521
  /**
2500
2522
  * Apply one consensus commit to local storage, tolerating every divergence shape the way the
2501
2523
  * doc comment on {@link applyConsensusOperation} describes and reconciling the behind ones.
2502
- * Returns storage's own result — or, for the thrown missing-pend shape, which produces no
2524
+ * `applied` is storage's own result — or, for the thrown missing-pend shape, which produces no
2503
2525
  * `CommitResult` at all, a refusal built from the throw — so {@link durableCommitVerdict} works
2504
- * from one uniform shape. Genuine faults (a bare-reason returned failure, an unrecognized throw)
2505
- * propagate so {@link handleConsensus} rolls back the executed marker and rethrows.
2526
+ * from one uniform shape. `behind` is true exactly when one of the two behind branches ran, which
2527
+ * is what makes a refusal eligible for {@link reconcileRefusedCommit}. Genuine faults (a
2528
+ * bare-reason returned failure, an unrecognized throw) propagate so {@link handleConsensus} rolls
2529
+ * back the executed marker and rethrows.
2506
2530
  */
2507
- private async applyCommitToStorage(record: ClusterRecord, commit: CommitRequest, proof: BlockCommitProof | undefined): Promise<CommitResult> {
2531
+ private async applyCommitToStorage(record: ClusterRecord, commit: CommitRequest, proof: BlockCommitProof | undefined): Promise<{ applied: CommitResult; behind: boolean }> {
2508
2532
  const messageHash = record.messageHash;
2509
2533
  let result: CommitResult;
2510
2534
  try {
@@ -2524,12 +2548,12 @@ export class ClusterMember implements ICluster {
2524
2548
  // cohort peer so the block is no longer under-replicated. Best-effort:
2525
2549
  // failures are logged inside, never thrown (a throw would reset the stream).
2526
2550
  await this.reconcileDivergentCommit(record, commit);
2527
- return { success: false, reason: (err as Error).message };
2551
+ return { applied: { success: false, reason: (err as Error).message }, behind: true };
2528
2552
  }
2529
2553
  throw err;
2530
2554
  }
2531
2555
  if (result.success) {
2532
- return result;
2556
+ return { applied: result, behind: false };
2533
2557
  }
2534
2558
  // success:false is a StaleFailure. `missing` ⇒ ahead/stale divergence
2535
2559
  // (we already hold ≥ this rev): tolerate, do NOT reconcile downward. A
@@ -2559,7 +2583,7 @@ export class ClusterMember implements ICluster {
2559
2583
  reason: result.reason,
2560
2584
  hasMissing: true
2561
2585
  });
2562
- return result;
2586
+ return { applied: result, behind: false };
2563
2587
  }
2564
2588
  // This member holds no materializable base for one of the blocks, so
2565
2589
  // `StorageRepo.commit` REFUSED rather than record a revision it could never serve.
@@ -2575,11 +2599,66 @@ export class ClusterMember implements ICluster {
2575
2599
  reason: result.reason
2576
2600
  });
2577
2601
  await this.reconcileDivergentCommit(record, commit);
2578
- return result;
2602
+ return { applied: result, behind: true };
2579
2603
  }
2580
2604
  throw new Error(`Consensus commit for action ${commit.actionId} failed: ${result.reason ?? 'unknown reason'}`);
2581
2605
  }
2582
2606
 
2607
+ /**
2608
+ * Retain `verdict` as this member's durable verdict for `record`'s commit (see
2609
+ * {@link executedCommitResults}), remember whether a refusal was the behind shape, and — once the
2610
+ * verdict is a success — report the committed holders. Shared by the consensus apply and
2611
+ * {@link reconcileRefusedCommit} so both leave the same state behind.
2612
+ */
2613
+ private retainCommitVerdict(record: ClusterRecord, commit: CommitRequest, verdict: CommitResult, behind: boolean): void {
2614
+ this.executedCommitResults.set(record.messageHash, verdict);
2615
+ if (verdict.success) {
2616
+ this.behindCommitRefusals.delete(record.messageHash);
2617
+ this.reportCommittedHolders(record, commit);
2618
+ } else if (behind) {
2619
+ this.behindCommitRefusals.add(record.messageHash);
2620
+ }
2621
+ }
2622
+
2623
+ /**
2624
+ * One more reconcile for a commit this member already applied at consensus but could not hold:
2625
+ * its retained verdict is a BEHIND-shaped refusal (missing pend or missing base), and the
2626
+ * reconcile that ran during the apply found no cohort peer holding the revision yet. Two callers.
2627
+ * The coordinating node calls it for its own member once a remote member reports holding the
2628
+ * revision (`ClusterCoordinator.broadcastMergedRecord`), for a cohort where the remote members
2629
+ * applied after it did. And every member runs it on a redelivery of a record it already applied
2630
+ * ({@link handleAlreadyExecuted}), which is how a remote member that applied on receipt of the
2631
+ * commit round, before anyone held the revision, heals once the coordinator re-sends it the merged
2632
+ * record. The holder's copy carries the cohort's commit proof, so the existing certified
2633
+ * single-holder path adopts it; no new trust is involved.
2634
+ *
2635
+ * Does nothing unless the retained verdict for `record.messageHash` is a behind refusal; in
2636
+ * particular an ahead-shaped refusal (`missing`) is never reconciled downward. Recomputes and
2637
+ * re-retains the durable verdict afterwards, so `getExecutedCommitResult` then answers a success
2638
+ * when the revision landed. Bounded by the same per-block reconcile timeout and never throws.
2639
+ */
2640
+ async reconcileRefusedCommit(record: ClusterRecord): Promise<void> {
2641
+ const messageHash = record.messageHash;
2642
+ const refused = this.executedCommitResults.get(messageHash);
2643
+ if (refused === undefined || refused.success || !this.behindCommitRefusals.has(messageHash)) {
2644
+ return;
2645
+ }
2646
+ const operation = record.message.operations.find((op): op is { commit: CommitRequest } => 'commit' in op);
2647
+ if (operation === undefined) {
2648
+ return;
2649
+ }
2650
+ const commit = operation.commit;
2651
+ log('cluster-member:consensus-commit-reconcile-again', { messageHash, actionId: commit.actionId, rev: commit.rev });
2652
+ await this.reconcileDivergentCommit(record, commit);
2653
+ const verdict = await this.durableCommitVerdict(commit, refused);
2654
+ // The apply's retention may have been pruned or rolled back while the reconcile ran; never
2655
+ // resurrect it.
2656
+ if (this.executedCommitResults.get(messageHash) !== refused) {
2657
+ return;
2658
+ }
2659
+ this.retainCommitVerdict(record, commit, verdict, true);
2660
+ }
2661
+
2583
2662
  /**
2584
2663
  * The durable verdict for a consensus commit: `applied` itself when storage landed it (a
2585
2664
  * success from `StorageRepo.commit` means every block is committed, or already was, under this
@@ -2722,6 +2801,16 @@ export class ClusterMember implements ICluster {
2722
2801
  * **synchronous** (no `await` here) so the cert is retained before `StorageRepo.commit` emits its
2723
2802
  * change event. No-op (zero cost) when no sink is configured; a throwing sink is isolated + logged so
2724
2803
  * it can never break consensus.
2804
+ *
2805
+ * A record carrying fewer approving commit signatures than `minSigs` retains no cert, so the bridge
2806
+ * skips origination on this member rather than forwarding a cert below its own threshold. Consensus
2807
+ * needs only a simple majority of commits, so a member can apply with fewer.
2808
+ *
2809
+ * NOTE: in a three-member cohort that is the ordinary case for the two remote members. Each applies
2810
+ * on receipt of the commit round holding its own commit and the coordinator's (2 of `minSigs` 3), and
2811
+ * the coordinator does not broadcast the full set to a member that already applied, so only the
2812
+ * coordinating member, which applies with every commit merged, originates. If origination from the
2813
+ * other members is ever needed, have the coordinator deliver the merged record to them too.
2725
2814
  */
2726
2815
  private captureCommitCert(record: ClusterRecord, actionId: ActionId, signedPayload: Uint8Array): void {
2727
2816
  if (!this.onCommitCertificate) {
@@ -2729,7 +2818,12 @@ export class ClusterMember implements ICluster {
2729
2818
  }
2730
2819
  const minSigs = Math.ceil(Object.keys(record.peers).length * this.superMajorityThreshold);
2731
2820
  try {
2732
- this.onCommitCertificate(actionId, buildCommitCert(record, minSigs, signedPayload));
2821
+ const cert = buildCommitCert(record, minSigs, signedPayload);
2822
+ if (cert.signers.length < minSigs) {
2823
+ log('cluster-member:commit-cert-below-threshold', { actionId, signers: cert.signers.length, minSigs });
2824
+ return;
2825
+ }
2826
+ this.onCommitCertificate(actionId, cert);
2733
2827
  } catch (err) {
2734
2828
  log('cluster-member:commit-cert-sink-error', { actionId, error: (err as Error).message });
2735
2829
  }
@@ -2982,6 +3076,7 @@ export class ClusterMember implements ICluster {
2982
3076
  this.executedTransactions.delete(messageHash);
2983
3077
  this.executedPendResults.delete(messageHash);
2984
3078
  this.executedCommitResults.delete(messageHash);
3079
+ this.behindCommitRefusals.delete(messageHash);
2985
3080
  }
2986
3081
  }
2987
3082
  // Prune actionId-keyed pend refusals on the same TTL as the verdicts they were derived from.