Home / Input Output / ouroboros-leios-sim
Jan 16, 2-3 AM (0)
Jan 16, 3-4 AM (0)
Jan 16, 4-5 AM (0)
Jan 16, 5-6 AM (0)
Jan 16, 6-7 AM (0)
Jan 16, 7-8 AM (0)
Jan 16, 8-9 AM (2)
Jan 16, 9-10 AM (0)
Jan 16, 10-11 AM (0)
Jan 16, 11-12 PM (1)
Jan 16, 12-1 PM (1)
Jan 16, 1-2 PM (1)
Jan 16, 2-3 PM (0)
Jan 16, 3-4 PM (0)
Jan 16, 4-5 PM (0)
Jan 16, 5-6 PM (0)
Jan 16, 6-7 PM (1)
Jan 16, 7-8 PM (0)
Jan 16, 8-9 PM (0)
Jan 16, 9-10 PM (0)
Jan 16, 10-11 PM (0)
Jan 16, 11-12 AM (0)
Jan 17, 12-1 AM (0)
Jan 17, 1-2 AM (0)
Jan 17, 2-3 AM (0)
Jan 17, 3-4 AM (0)
Jan 17, 4-5 AM (0)
Jan 17, 5-6 AM (0)
Jan 17, 6-7 AM (0)
Jan 17, 7-8 AM (0)
Jan 17, 8-9 AM (0)
Jan 17, 9-10 AM (0)
Jan 17, 10-11 AM (0)
Jan 17, 11-12 PM (1)
Jan 17, 12-1 PM (1)
Jan 17, 1-2 PM (0)
Jan 17, 2-3 PM (1)
Jan 17, 3-4 PM (1)
Jan 17, 4-5 PM (0)
Jan 17, 5-6 PM (0)
Jan 17, 6-7 PM (0)
Jan 17, 7-8 PM (0)
Jan 17, 8-9 PM (0)
Jan 17, 9-10 PM (0)
Jan 17, 10-11 PM (0)
Jan 17, 11-12 AM (0)
Jan 18, 12-1 AM (0)
Jan 18, 1-2 AM (0)
Jan 18, 2-3 AM (0)
Jan 18, 3-4 AM (0)
Jan 18, 4-5 AM (0)
Jan 18, 5-6 AM (0)
Jan 18, 6-7 AM (0)
Jan 18, 7-8 AM (1)
Jan 18, 8-9 AM (1)
Jan 18, 9-10 AM (0)
Jan 18, 10-11 AM (1)
Jan 18, 11-12 PM (0)
Jan 18, 12-1 PM (0)
Jan 18, 1-2 PM (0)
Jan 18, 2-3 PM (0)
Jan 18, 3-4 PM (0)
Jan 18, 4-5 PM (0)
Jan 18, 5-6 PM (0)
Jan 18, 6-7 PM (0)
Jan 18, 7-8 PM (0)
Jan 18, 8-9 PM (0)
Jan 18, 9-10 PM (0)
Jan 18, 10-11 PM (0)
Jan 18, 11-12 AM (0)
Jan 19, 12-1 AM (0)
Jan 19, 1-2 AM (0)
Jan 19, 2-3 AM (0)
Jan 19, 3-4 AM (0)
Jan 19, 4-5 AM (0)
Jan 19, 5-6 AM (0)
Jan 19, 6-7 AM (0)
Jan 19, 7-8 AM (0)
Jan 19, 8-9 AM (0)
Jan 19, 9-10 AM (1)
Jan 19, 10-11 AM (1)
Jan 19, 11-12 PM (0)
Jan 19, 12-1 PM (0)
Jan 19, 1-2 PM (0)
Jan 19, 2-3 PM (2)
Jan 19, 3-4 PM (0)
Jan 19, 4-5 PM (0)
Jan 19, 5-6 PM (0)
Jan 19, 6-7 PM (0)
Jan 19, 7-8 PM (0)
Jan 19, 8-9 PM (0)
Jan 19, 9-10 PM (0)
Jan 19, 10-11 PM (0)
Jan 19, 11-12 AM (0)
Jan 20, 12-1 AM (0)
Jan 20, 1-2 AM (0)
Jan 20, 2-3 AM (0)
Jan 20, 3-4 AM (0)
Jan 20, 4-5 AM (0)
Jan 20, 5-6 AM (0)
Jan 20, 6-7 AM (0)
Jan 20, 7-8 AM (0)
Jan 20, 8-9 AM (0)
Jan 20, 9-10 AM (2)
Jan 20, 10-11 AM (32)
Jan 20, 11-12 PM (1)
Jan 20, 12-1 PM (37)
Jan 20, 1-2 PM (1)
Jan 20, 2-3 PM (0)
Jan 20, 3-4 PM (0)
Jan 20, 4-5 PM (0)
Jan 20, 5-6 PM (1)
Jan 20, 6-7 PM (0)
Jan 20, 7-8 PM (3)
Jan 20, 8-9 PM (0)
Jan 20, 9-10 PM (0)
Jan 20, 10-11 PM (1)
Jan 20, 11-12 AM (0)
Jan 21, 12-1 AM (0)
Jan 21, 1-2 AM (0)
Jan 21, 2-3 AM (0)
Jan 21, 3-4 AM (0)
Jan 21, 4-5 AM (0)
Jan 21, 5-6 AM (0)
Jan 21, 6-7 AM (0)
Jan 21, 7-8 AM (0)
Jan 21, 8-9 AM (0)
Jan 21, 9-10 AM (0)
Jan 21, 10-11 AM (2)
Jan 21, 11-12 PM (0)
Jan 21, 12-1 PM (2)
Jan 21, 1-2 PM (0)
Jan 21, 2-3 PM (0)
Jan 21, 3-4 PM (0)
Jan 21, 4-5 PM (1)
Jan 21, 5-6 PM (1)
Jan 21, 6-7 PM (0)
Jan 21, 7-8 PM (0)
Jan 21, 8-9 PM (0)
Jan 21, 9-10 PM (0)
Jan 21, 10-11 PM (0)
Jan 21, 11-12 AM (0)
Jan 22, 12-1 AM (0)
Jan 22, 1-2 AM (0)
Jan 22, 2-3 AM (0)
Jan 22, 3-4 AM (0)
Jan 22, 4-5 AM (0)
Jan 22, 5-6 AM (0)
Jan 22, 6-7 AM (0)
Jan 22, 7-8 AM (0)
Jan 22, 8-9 AM (0)
Jan 22, 9-10 AM (0)
Jan 22, 10-11 AM (0)
Jan 22, 11-12 PM (0)
Jan 22, 12-1 PM (0)
Jan 22, 1-2 PM (3)
Jan 22, 2-3 PM (0)
Jan 22, 3-4 PM (2)
Jan 22, 4-5 PM (1)
Jan 22, 5-6 PM (0)
Jan 22, 6-7 PM (0)
Jan 22, 7-8 PM (0)
Jan 22, 8-9 PM (1)
Jan 22, 9-10 PM (0)
Jan 22, 10-11 PM (0)
Jan 22, 11-12 AM (0)
Jan 23, 12-1 AM (0)
Jan 23, 1-2 AM (0)
Jan 23, 2-3 AM (0)
108 commits this week Jan 16, 2026 - Jan 23, 2026
Add P2P peer selection with dynamic topology churn
Implements Cardano-style P2P peer selection to make front-running more
difficult through dynamic topology changes. Peers cycle through cold,
warm, and hot states with periodic churn events.

Key changes:
- Add PeerManager class to track peer states per node
- Add PeerChurn simulation event for periodic state transitions
- Modify tx propagation to only use hot upstream peers in P2P mode
- Add CLI flags: --p2p, --p2p-hot-peers, --p2p-churn-interval,
  --p2p-demotion-prob

The feature is toggleable (off by default) to preserve existing
static topology behavior.
Simplify P2P peer selection to active set model
Replace cold/warm/hot state machine with a simpler active set model:
- Each node maintains a subset of active peers from topology
- Churn probabilistically replaces active peers with inactive ones
- Removes PeerState type and PeerInfo interface
- Renames CLI options: --p2p-hot-peers → --p2p-active-peers,
  --p2p-demotion-prob → --p2p-churn-prob

This mirrors Cardano's peer selection governor behavior with partial,
probabilistic churn rather than wholesale peer set replacement.
Fix React re-render cascade causing maximum depth exceeded
- Remove redundant console.log in cli.ts (already logged via logger.fatal)
- Remove duplicate Canvas useEffect that called draw() on every change
- Use hoveredNodeRef instead of state in draw() to avoid recreation on mouse move
- Throttle force layout position updates with requestAnimationFrame
- Only update event log state when lengths actually change
- Only update animatedTxs state when count changes

These changes prevent the force layout from triggering 100+ React
re-renders per second during initial settling.
Add P2P peer selection with dynamic topology churn
Implements Cardano-style P2P peer selection to make front-running more
difficult through dynamic topology changes. Peers cycle through cold,
warm, and hot states with periodic churn events.

Key changes:
- Add PeerManager class to track peer states per node
- Add PeerChurn simulation event for periodic state transitions
- Modify tx propagation to only use hot upstream peers in P2P mode
- Add CLI flags: --p2p, --p2p-hot-peers, --p2p-churn-interval,
  --p2p-demotion-prob

The feature is toggleable (off by default) to preserve existing
static topology behavior.