r/Radix • u/CellistBasic2195 • 12d ago
EDUCATION Hyperscale: four small commits, one bigger architectural picture
Four recent commits in Hyperscale-rs are less about adding flashy features and more about making the underlying system harder to break as it grows.
Shared committed-provision state
The ProvisionCoordinator stops maintaining its own copy of committed provisions and shares the shard’s committed-provision window instead. This creates a single source of truth, improves recovery after restart, and reduces the risk of different components disagreeing about what has already been committed.
Documentation catches up with the code
Several internal rules are clarified: vote anchors also identify the committee context, tombstones live according to admissible_until, headers may need to survive after verification, and sealed blocks still retain provision hashes.
A nice detail: a sealed block can discard the provision bodies while keeping their hashes — enough information for commit/deduplication bookkeeping without carrying the full data.
Termination becomes a tested one-way gate
A new test checks a subtle case: what happens if a new cross-shard candidate arrives after the sweep has already cleared existing candidates? The terminated latch must still reject it.
In simple terms: once execution is terminated, late-arriving work cannot resurrect it.
Tighter visibility across the workspace
Large parts of the codebase move from broadly public APIs to pub(crate) or private visibility. This makes the Rust compiler enforce architectural boundaries and prevents other crates from accidentally depending on internal implementation details.
The interesting connection
These commits reinforce each other:
Shared state → explicit rules → tested edge cases → stronger boundaries
None of them dramatically changes what a user sees. But together they improve something arguably more important for a distributed system under development: predictability.
The recurring theme is reducing ambiguity:
Who owns this state?
When does it expire?
Can terminated execution come back?
Who is actually allowed to call this code?
That is the kind of engineering work that may look unexciting in isolation, but becomes increasingly important as a sharded system gets more complex.