File tree Expand file tree Collapse file tree
src/lean_spec/spec/forks/lstar Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -19,7 +19,24 @@ def tick_interval(
1919 has_proposal : bool ,
2020 is_aggregator : bool = False ,
2121 ) -> tuple [LstarStore , list [SignedAggregatedAttestation ]]:
22- """Advance store time by one interval and perform interval-specific actions."""
22+ """
23+ Advance store time by one interval and perform interval-specific actions.
24+
25+ Each slot is split into five intervals so consensus work runs at fixed points
26+ relative to when a block arrives and votes spread across the network.
27+
28+ Timing of the action points within a slot:
29+
30+ - Interval 0: ingest the slot's pending votes once the proposal has landed.
31+ - Interval 2: aggregators bundle the slot's votes into proofs and broadcast them.
32+ - Interval 3: advance the safe target from the latest votes for fast confirmation.
33+ - Interval 4: ingest the votes that accumulated through the rest of the slot.
34+
35+ Aggregation waits until interval 2 so a block proposed at the slot start has
36+ time to propagate and gather votes before they are bundled.
37+ Fast confirmation sits at interval 3, after aggregates exist, so the safe
38+ target reflects the freshest votes the node has seen.
39+ """
2340 store = store .model_copy (update = {"time" : store .time + Interval (1 )})
2441 interval_within_slot = int (store .time ) % int (INTERVALS_PER_SLOT )
2542 new_aggregates : list [SignedAggregatedAttestation ] = []
You can’t perform that action at this time.
0 commit comments