One transaction, two protocols
Follow a single transaction from the RPC node to finality under TowerBFT and Alpenglow at the same time.
Both simulations run the same 25 validators, the same stake distribution, the same network latencies and the same seed. The only thing that differs is the consensus protocol.
We follow one transaction (the white glow) through eight stages. The Transaction tab on the right keeps score for both protocols.
- Left canvas: Alpenglow (Votor + Rotor, SIMD-0326).
- Right canvas: TowerBFT (PoH + Turbine + tower lockouts, today's mainnet).
Press Start. The simulation pauses at each stop.
Where it stops
-
Submitted to an RPC node
-
Included in a block
-
First to "confirmed"
Both protocols will report the transaction as confirmed and later as finalized. Predict the ordering, then run.
Which protocol reaches "confirmed" first, and which reaches "finalized" first?
- Alpenglow reaches both first
- TowerBFT reaches both first
- TowerBFT confirms first, Alpenglow finalizes first
- They tie on both
Confirmed means different things: Alpenglow forms a Notarization certificate as soon as 60% of stake has sent a Notarize vote directly to everyone. TowerBFT needs vote *transactions* to land in a later block and be replayed before ⅔ of stake counts as voting for the block, so it lags by a slot or so. On finality the gap is not a slot but two orders of magnitude.
-
Alpenglow finalizes
-
TowerBFT confirms
-
TowerBFT roots the block
Alpenglow is already final. TowerBFT is still stacking votes. Predict how long finality takes, then run.
How long after the block is produced does TowerBFT root it (the "finalized" commitment level)?
- About 0.5 s
- About 2 s
- About 13 s
- About 60 s
A vote's lockout doubles with every vote stacked on top of it. Agave keeps 31 lockouts; the 32nd vote pops the oldest one and it becomes the root. 32 slots × 400 ms ≈ 12.8 s of votes must land before the block is final, plus network time.
What you saw
- Same transaction, same network, same stake: confirmed arrives at a similar time in both protocols, finalized does not.
- Alpenglow finalizes with certificates formed from votes sent directly between validators (fast path at 80%, slow path at 60% + 60%).
- TowerBFT finalizes when a vote is 31 lockouts deep, about 12.8 s later.
Try next
- Open the Metrics tab and compare message counts and bytes.
- Change the seed in the top bar and run again: the shape stays the same, the exact milliseconds move.
- Lesson Why votes on-chain cost block space shows where TowerBFT's votes go.