# FAQ **Why block-oriented timing?** Slots advance at a fixed rate (NTP-synchronized, 2s by default), so reasoning about blocks and consensus intervals keeps assertions aligned with protocol behavior rather than arbitrary wall-clock durations. **Can I reuse the same scenario across runners?** Yes. The plan stays the same; swap runners (local, compose, k8s) to target different environments. **When should I enable chaos workloads?** Only when testing resilience or operational recovery; keep functional smoke tests deterministic. **How long should runs be?** The framework enforces a minimum of **2× slot duration** (4 seconds with default 2s slots), but practical recommendations: - **Smoke tests**: 30s minimum (~14 blocks with default 2s slots, 0.9 coefficient) - **Transaction workloads**: 60s+ (~27 blocks) to observe inclusion patterns - **DA workloads**: 90s+ (~40 blocks) to account for dispersal and sampling - **Chaos tests**: 120s+ (~54 blocks) to allow recovery after restarts Very short runs (< 30s) risk false confidence—one or two lucky blocks don't prove liveness. **Do I always need seeded wallets?** Only for transaction scenarios. Data-availability or pure chaos scenarios may not require them, but liveness checks still need validators producing blocks. **What if expectations fail but workloads “look fine”?** Trust expectations first—they capture the intended success criteria. Use the observability signals and runner logs to pinpoint why the system missed the target.