Consensus
Catchain 1.0 and BCP visualizer
Interactive visual simulation of Catchain 1.0 and BCP rounds
To understand this simulation, read the Catchain whitepaper first.
Attempt timer8.0s left
Speed0.20x
Round state
Round no.#1
Attempt1 (fast)
ProposerS1
CoordinatorN/A (fast)
VoteFor target—
Committed—
Consensus phases • 1.1
Approve0 of 4 required
Vote0 of 4 required
PreCommit0 of 4 required
Commit0 of 4 required
Candidates
No candidates yet.
Committed chain (empty)
Press Space to pause or resume•Press Esc to close modals and restore the overview pane
Interact with the simulation
- Click nodes to view status (locks/commits) and toggle behavior (good, crash, lagging).
- Click Adjust simulation config at the top to change consensus simulation parameters.
- Hover over the Event types at the bottom to read short description.
- Click moving messages to inspect sender/receiver, timings, and embedded actions; drop a message from the overlay with Drop message button.
- Click Candidates in the sidebar to see proposer, priority, and per-node approvals/votes/pre-commits/commits observed.
- Use the speed slider to slow down/accelerate the sim; use Restart round to begin a new round.
Simulation notes
This is a teaching simulation, not the exact C++ validator-session implementation of the whitepaper. It contains certain simplifications.
- Timing is approximate — actions are driven by the sim loop and simplified delays, not the precise
check_all/process_blockscadence. - Catchain dependency handling is simplified: if a node sees a message but lacks one of its parents, it asks peers for that missing block without a vector-time sync.
- Quorums use equal weights (counts), not stake weights.
- Submits are auto-scheduled per priority window; retries and network sync differ from the real catchain and validator logic.
- Null candidate is assumed after its delay.
VoteForand slow-mode handling is simplified.