Skip to content

test(e2e): name shared timing presets and collapse proof-submission constants#24494

Open
spalladino wants to merge 1 commit into
merge-train/spartan-v5from
spl/e2e-r2-timing-presets
Open

test(e2e): name shared timing presets and collapse proof-submission constants#24494
spalladino wants to merge 1 commit into
merge-train/spartan-v5from
spl/e2e-r2-timing-presets

Conversation

@spalladino

Copy link
Copy Markdown
Contributor

Round-2 e2e consolidation, PR 5 of 9 (workstream B: timing/config constants). Introduces two named timing constants in single-node/setup.ts and sweeps single-node/multi-node files onto them.

Constants added

  • NO_REORG_SUBMISSION_EPOCHS = 1024 — proof-submission window so large the chain never prunes/reorgs in the test's lifetime. Re-exported via multi_node_test_context.ts and the per-directory setup re-exports.
  • PROVING_SLOT_TIMING = { ethereumSlotDuration: 4, aztecSlotDurationInL1Slots: 3 } — the "12s floor" cadence previously hand-spelled (with near-verbatim derivation comments) in 5 proving/partial-proofs files. One shared doc comment now carries the derivation; the per-file copies are deleted.

Pure renames (same effective value)

  • aztecProofSubmissionEpochs: 1024 → constant: setupBlockProducer, MOCK_GOSSIP_MULTI_VALIDATOR_OPTS, missed_l1_slot, multi_validator_node.parallel.
  • PROVING_SLOT_TIMING adoption with unchanged values: single_root, multi_proof, long_proving_time, upload_failed_proof.

Nominal value changes, same "never reorg" semantic (large window → 1024)

  • 640 → constant: bot, fees/failures, fees/fee_settings, block-building/debug_trace.
  • 1000 → constant: proving/long_proving_time, proving/optimistic.parallel (6 sites).
  • 128 → constant: sequencer/gov_proposal.parallel.

These windows only exist to pin blocks against pruning; none of the tests run anywhere near the window, so 1024 is inert. Verified by build/lint plus sample runs (below).

Effective timing changes (each run locally twice, both green)

  • 16s-cluster collapse onto PROVING_SLOT_TIMING (16s → 12s aztec slot): proving/proof_fails.parallel (218s/218s), recovery/prune_when_cannot_build (83s/83s).
  • Epoch one-off audit: partial-proofs/multi_root epoch 1000 → 32 (232s/233s), recovery/manual_rollback epoch 100 → 32 + PROVING_SLOT_TIMING + never-reorg window (58s/58s).

No fallbacks were needed; all collapses held over both runs. Rename-only sample runs: single_root 66s, long_proving_time 191s, upload_failed_proof 51s — all green.

Deliberately left as literals

  • Small windows that are production-like or test the window itself: 1 (prune_when_cannot_build, l1-reorgs/setup, sync/synching, proof_boundary.parallel), 2 (cross-chain/l1_to_l2.parallel), 15 (escape_hatch_vote_only, needed for a valid EscapeHatch config — already commented).
  • single-node/l1-reorgs/** values untouched per round-1 finding that their proof windows are sensitive to ethereumSlotDuration.

Skipped (sibling-PR file ownership; literal sweeps deferred to a follow-up)

  • single-node/cross-chain/** (PR 3).
  • single-node/fees/private_payments.parallel (640), single-node/block-building/block_building, single-node/proving/default_node, single-node/sequencer/runtime_config (PR 4).
  • multi-node/slashing/** (PR 6): ~10 files with 1024 literals, incl. slashing/setup.ts and inactivity_setup.ts.
  • multi-node/governance/setup.ts (640), multi-node/block-production/{setup.ts,blob_promotion}, multi-node/recovery/pipeline_prune, multi-node/invalid-attestations/** (PR 7).
  • p2p/** (PR 8, incl. SHORTENED_BLOCK_TIME_CONFIG_NO_PRUNES's 640), composed/** (PR 9), automine/** (PRs 1-2).

@spalladino spalladino added wip Work in progress and removed wip Work in progress labels Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant