deploy: eb803fee91026a9433d02997c1082efb06dc4ac3
Home /
Input Output /
ouroboros-leios
Apr 14, 10-11 AM (1)
Apr 14, 11-12 PM (3)
Apr 14, 12-1 PM (0)
Apr 14, 1-2 PM (2)
Apr 14, 2-3 PM (2)
Apr 14, 3-4 PM (0)
Apr 14, 4-5 PM (0)
Apr 14, 5-6 PM (0)
Apr 14, 6-7 PM (0)
Apr 14, 7-8 PM (1)
Apr 14, 8-9 PM (0)
Apr 14, 9-10 PM (3)
Apr 14, 10-11 PM (0)
Apr 14, 11-12 AM (0)
Apr 15, 12-1 AM (0)
Apr 15, 1-2 AM (0)
Apr 15, 2-3 AM (0)
Apr 15, 3-4 AM (0)
Apr 15, 4-5 AM (0)
Apr 15, 5-6 AM (0)
Apr 15, 6-7 AM (0)
Apr 15, 7-8 AM (0)
Apr 15, 8-9 AM (1)
Apr 15, 9-10 AM (1)
Apr 15, 10-11 AM (2)
Apr 15, 11-12 PM (1)
Apr 15, 12-1 PM (2)
Apr 15, 1-2 PM (0)
Apr 15, 2-3 PM (0)
Apr 15, 3-4 PM (1)
Apr 15, 4-5 PM (0)
Apr 15, 5-6 PM (4)
Apr 15, 6-7 PM (0)
Apr 15, 7-8 PM (0)
Apr 15, 8-9 PM (0)
Apr 15, 9-10 PM (0)
Apr 15, 10-11 PM (0)
Apr 15, 11-12 AM (0)
Apr 16, 12-1 AM (0)
Apr 16, 1-2 AM (0)
Apr 16, 2-3 AM (0)
Apr 16, 3-4 AM (0)
Apr 16, 4-5 AM (0)
Apr 16, 5-6 AM (0)
Apr 16, 6-7 AM (0)
Apr 16, 7-8 AM (0)
Apr 16, 8-9 AM (0)
Apr 16, 9-10 AM (0)
Apr 16, 10-11 AM (0)
Apr 16, 11-12 PM (0)
Apr 16, 12-1 PM (0)
Apr 16, 1-2 PM (0)
Apr 16, 2-3 PM (0)
Apr 16, 3-4 PM (0)
Apr 16, 4-5 PM (0)
Apr 16, 5-6 PM (0)
Apr 16, 6-7 PM (0)
Apr 16, 7-8 PM (0)
Apr 16, 8-9 PM (0)
Apr 16, 9-10 PM (0)
Apr 16, 10-11 PM (0)
Apr 16, 11-12 AM (0)
Apr 17, 12-1 AM (0)
Apr 17, 1-2 AM (0)
Apr 17, 2-3 AM (0)
Apr 17, 3-4 AM (0)
Apr 17, 4-5 AM (0)
Apr 17, 5-6 AM (0)
Apr 17, 6-7 AM (0)
Apr 17, 7-8 AM (0)
Apr 17, 8-9 AM (0)
Apr 17, 9-10 AM (3)
Apr 17, 10-11 AM (0)
Apr 17, 11-12 PM (0)
Apr 17, 12-1 PM (0)
Apr 17, 1-2 PM (0)
Apr 17, 2-3 PM (0)
Apr 17, 3-4 PM (0)
Apr 17, 4-5 PM (0)
Apr 17, 5-6 PM (0)
Apr 17, 6-7 PM (0)
Apr 17, 7-8 PM (1)
Apr 17, 8-9 PM (0)
Apr 17, 9-10 PM (1)
Apr 17, 10-11 PM (0)
Apr 17, 11-12 AM (0)
Apr 18, 12-1 AM (0)
Apr 18, 1-2 AM (0)
Apr 18, 2-3 AM (0)
Apr 18, 3-4 AM (0)
Apr 18, 4-5 AM (0)
Apr 18, 5-6 AM (0)
Apr 18, 6-7 AM (0)
Apr 18, 7-8 AM (0)
Apr 18, 8-9 AM (0)
Apr 18, 9-10 AM (0)
Apr 18, 10-11 AM (0)
Apr 18, 11-12 PM (0)
Apr 18, 12-1 PM (0)
Apr 18, 1-2 PM (0)
Apr 18, 2-3 PM (0)
Apr 18, 3-4 PM (0)
Apr 18, 4-5 PM (0)
Apr 18, 5-6 PM (0)
Apr 18, 6-7 PM (0)
Apr 18, 7-8 PM (0)
Apr 18, 8-9 PM (0)
Apr 18, 9-10 PM (0)
Apr 18, 10-11 PM (0)
Apr 18, 11-12 AM (0)
Apr 19, 12-1 AM (0)
Apr 19, 1-2 AM (0)
Apr 19, 2-3 AM (0)
Apr 19, 3-4 AM (0)
Apr 19, 4-5 AM (0)
Apr 19, 5-6 AM (0)
Apr 19, 6-7 AM (0)
Apr 19, 7-8 AM (0)
Apr 19, 8-9 AM (0)
Apr 19, 9-10 AM (0)
Apr 19, 10-11 AM (0)
Apr 19, 11-12 PM (0)
Apr 19, 12-1 PM (0)
Apr 19, 1-2 PM (0)
Apr 19, 2-3 PM (0)
Apr 19, 3-4 PM (0)
Apr 19, 4-5 PM (0)
Apr 19, 5-6 PM (0)
Apr 19, 6-7 PM (0)
Apr 19, 7-8 PM (0)
Apr 19, 8-9 PM (0)
Apr 19, 9-10 PM (0)
Apr 19, 10-11 PM (0)
Apr 19, 11-12 AM (0)
Apr 20, 12-1 AM (0)
Apr 20, 1-2 AM (0)
Apr 20, 2-3 AM (0)
Apr 20, 3-4 AM (0)
Apr 20, 4-5 AM (0)
Apr 20, 5-6 AM (0)
Apr 20, 6-7 AM (0)
Apr 20, 7-8 AM (0)
Apr 20, 8-9 AM (3)
Apr 20, 9-10 AM (2)
Apr 20, 10-11 AM (1)
Apr 20, 11-12 PM (0)
Apr 20, 12-1 PM (0)
Apr 20, 1-2 PM (0)
Apr 20, 2-3 PM (2)
Apr 20, 3-4 PM (4)
Apr 20, 4-5 PM (1)
Apr 20, 5-6 PM (0)
Apr 20, 6-7 PM (0)
Apr 20, 7-8 PM (0)
Apr 20, 8-9 PM (0)
Apr 20, 9-10 PM (0)
Apr 20, 10-11 PM (0)
Apr 20, 11-12 AM (0)
Apr 21, 12-1 AM (0)
Apr 21, 1-2 AM (0)
Apr 21, 2-3 AM (0)
Apr 21, 3-4 AM (0)
Apr 21, 4-5 AM (0)
Apr 21, 5-6 AM (0)
Apr 21, 6-7 AM (0)
Apr 21, 7-8 AM (1)
Apr 21, 8-9 AM (3)
Apr 21, 9-10 AM (0)
Apr 21, 10-11 AM (0)
45 commits this week
Apr 14, 2026
-
Apr 21, 2026
update roadmap (#861)
Co-authored-by: Sebastian Nagel <[email protected]>
update roadmap
Co-Authored-By: Sebastian Nagel <[email protected]>
Update site/docs/roadmap.md
Co-authored-by: Sebastian Nagel <[email protected]>
Raise default quorum to 75% and stake fraction to 99%
Aligns all three committee modes to a consistent 75% quorum (wfa-ls was already 450/600 = 75%) and captures nearly all block-producing nodes in the top-stake-fraction committee. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Document determinism guarantees and benchmark scripts in CLAUDE.md
Add Determinism section covering all sources of non-determinism that were found and fixed (HashMap iteration, shard assignment, TX ID counters, rayon collect order, event stream sorting), what was tested and found unnecessary (barrier synchronization), and what does not affect determinism (CpuTaskQueue HashMap, config HashSets). Add Benchmark Scripts section documenting cip-voting-options.sh, poll-sim.sh, and the determinism verification methodology. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Fix cip-voting-options.sh grep failures under set -e
When simulation stats lines are absent (e.g. 0 uncertified EBs),
grep exits with code 1 which trips set -e before the ${var:-0}
default can take effect. Add || true to all stat-parsing greps.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Make multi-shard turbo engine fully deterministic
Two sources of cross-run non-determinism in the multi-shard sequential engine: 1. Shard assignment: zero_latency_clusters, min_latency_clusters, and min_cut all collected components via HashMap whose iteration order varies per process. Switch to BTreeMap and add a stable tiebreaker to the component sort so shard-to-node mapping is a pure function of the topology. 2. TX ID assignment: RealTransactionConfig used shared AtomicU64 counters (next_id, input_id) across shard threads with Relaxed ordering, making ID assignment depend on OS scheduling. Move counters into per-shard TxGeneratorCore with offset ranges (shard_index * 1B) so IDs are deterministic and non-overlapping. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Sort event stream by (timestamp, node_id) for deterministic jsonl output
Multi-shard execution emits tracking events from concurrent shard threads via an mpsc channel, so events at the same virtual timestamp can arrive in arbitrary order. Buffer events in timestamp buckets (BTreeMap) with a 1-second flush window, sorting each bucket by originating node ID before writing. This makes the jsonl event stream byte-identical across runs without affecting simulation logic. Also adds Event::node_id() to extract the originating node from each event variant for sorting purposes. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add 1500-node expanded topology resampled from v2-cip
Generated via generate_topology.py from topology-v2-cip.yaml (750 nodes). Preserves degree distribution (relay med=35), latency profile (p95=305ms, max=575ms), BP/relay ratio (432/1068), and stake total. Source (v2-cip): 750 nodes, 19314 links, latency med=30.1ms Expanded (1500): 1500 nodes, 38511 links, latency med=25.4ms Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add topology generator and summary scripts
generate_topology.py resamples an existing topology to a target node count, preserving degree distribution, latency profile, stake distribution, and BP/relay ratio. summarize_topology.py prints statistics for one or more topology files. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add -o/--output-dir flag to cip-voting-options.sh for event capture
When set, writes per-run jsonl event streams to the given directory. Filename includes throughput, mode, engine, seed, and label. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Fix some sizes and quantities
Convert HashMap/HashSet to BTreeMap/BTreeSet in linear_leios node state
Eliminates non-deterministic iteration order in NodeLeiosState, LedgerState, and LinearLeiosNode.txs. All key types already implement Ord. At typical map sizes (5-50 entries for leios state, 100s-1000s for txs) BTreeMap has negligible CPU overhead and slightly lower memory usage than HashMap. The praos state (NodePraosState) was already using BTreeMap; this brings the leios state into line. Remaining HashSet usages are pure membership tests (contains/insert) that do not affect determinism. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Notes on potentially wrong deltaq quantities
Integrate deltaq-jupyter workflow to main-flake
This makes is less surprising that a nix develop or direnv works differently from within analysis/deltaq/linear-leios
Integrate deltaq-jupyter workflow to main-flake
This makes is less surprising that a nix develop or direnv works differently from within analysis/deltaq/linear-leios
Merge pull request #854 from input-output-hk/nfrisby/log-LedgerDbDichotomy-idea
Update logbook in response to 2026 April 9 Consensu Office Hours
Use LR flowcharts
Co-authored-by: Sebastian Nagel <[email protected]>
Update flake.lock after adding sha256 to cardano-node pin
Update flake.lock for cumulative tx bytes pins
Bump ouroboros-consensus and cardano-node pins for cumulative tx bytes
Point ouroboros-consensus to dnadales/cumulative-tx-size (adds shelleyCumulativeTxBytes to ShelleyLedgerState) and cardano-node-leios to dnadales/cumulative-tx-bytes-metric (exposes it as a Prometheus gauge via LedgerMetrics).