Solana Consensus Lab

Lockouts and why partitions hurt TowerBFT

A 50/50 network partition. Both protocols stall safely; after the heal Alpenglow finalizes in under a second while TowerBFT needs its tower of lockouts to grow past the gap.

5 minute read · scenario partition-heal · compare mode · seed 1

Run this lesson

At 1.5 s the network splits into two halves of roughly equal stake for 1.2 s. Our transaction is submitted at 1.8 s, in the middle of the partition, to an RPC node on one side.

Two questions matter for a consensus protocol here:

TowerBFT answers the first question with lockouts: once a validator votes for a block, it may not vote for a conflicting fork until the lockout (2, 4, 8, … slots) expires. That is what makes TowerBFT slow to recover.

Press Start.

Where it stops

  1. The network splits

  2. Gulf Stream keeps retrying

    The transaction is submitted at 1.8 s to an RPC node on one side of the divider. The current leader is on the other side. Predict what happens.

    While the partition lasts, does either protocol finalize anything?

    • Both halves finalize their own blocks
    • Only Alpenglow finalizes
    • Only TowerBFT finalizes
    • Neither: both stall until the heal

    Both protocols need a supermajority of total stake: 60% (Alpenglow) or ⅔ (TowerBFT). A half cannot reach either, so nothing finalizes and, crucially, nothing *conflicting* finalizes. Stalling is the price of safety.

  3. The partition heals

  4. Alpenglow skips the stalled window

  5. Alpenglow finalizes

  6. TowerBFT: a vote reaches depth 8

  7. TowerBFT finalizes

What you saw

Try next

Other lessons

Open the simulator