# Catchain 1.0 and BCP visualizer (https://docs-fpm2731fy-ton-core-docs.vercel.app/llms/foundations/consensus/catchain-visualizer/content.md)



To understand this simulation, read the [Catchain whitepaper](/llms/foundations/whitepapers/catchain/content.md) first.

<CatchainVisualizer />

## Interact with the simulation [#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 [#simulation-notes]

<Callout>
  This is a teaching simulation, not the exact C++ `validator-session` implementation of the whitepaper. It contains certain simplifications.
</Callout>

* Timing is approximate — actions are driven by the sim loop and simplified delays, not the precise `check_all/process_blocks` cadence.
* 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.
* `VoteFor` and slow-mode handling is simplified.
