consortium-fanout-sim
Deterministic in-process simulator for the cascade
primitive. Computes per-edge durations
from closure_size / bandwidth + latency, applies failure
schedules, and returns results to the cascade coordinator.
No real networking, no async runtime, no SSH. Each Scenario is
reproducible from a u64 seed — same seed produces identical
CascadeResult including round count and error tree shape.
Layout
- [
executor::DeterministicExecutor] — implementsRoundExecutorwith bandwidth/latency-driven timing and an injectable failure schedule. - [
fixtures] — generators for seed sets, bandwidth distributions, and failure schedules. Each takes&mut StdRngfor reproducibility. - [
scenario::Scenario] — high-level wrapper that builds a complete cascade run (nodes + seeded set + network + executor + strategy) from a seed and a few descriptors.
Quick start
use ;
use BandwidthDistribution;
use Log2FanOut;
let cfg = ScenarioConfig ;
let result = new.run;
assert!;
assert_eq!;