Update flake.lock after adding sha256 to cardano-node pin
Home /
Input Output /
ouroboros-leios
Apr 09, 5-6 AM (0)
Apr 09, 6-7 AM (0)
Apr 09, 7-8 AM (0)
Apr 09, 8-9 AM (1)
Apr 09, 9-10 AM (0)
Apr 09, 10-11 AM (0)
Apr 09, 11-12 PM (1)
Apr 09, 12-1 PM (0)
Apr 09, 1-2 PM (3)
Apr 09, 2-3 PM (0)
Apr 09, 3-4 PM (0)
Apr 09, 4-5 PM (0)
Apr 09, 5-6 PM (0)
Apr 09, 6-7 PM (0)
Apr 09, 7-8 PM (0)
Apr 09, 8-9 PM (0)
Apr 09, 9-10 PM (0)
Apr 09, 10-11 PM (0)
Apr 09, 11-12 AM (0)
Apr 10, 12-1 AM (0)
Apr 10, 1-2 AM (0)
Apr 10, 2-3 AM (0)
Apr 10, 3-4 AM (0)
Apr 10, 4-5 AM (0)
Apr 10, 5-6 AM (0)
Apr 10, 6-7 AM (0)
Apr 10, 7-8 AM (3)
Apr 10, 8-9 AM (0)
Apr 10, 9-10 AM (0)
Apr 10, 10-11 AM (12)
Apr 10, 11-12 PM (0)
Apr 10, 12-1 PM (1)
Apr 10, 1-2 PM (0)
Apr 10, 2-3 PM (0)
Apr 10, 3-4 PM (1)
Apr 10, 4-5 PM (1)
Apr 10, 5-6 PM (0)
Apr 10, 6-7 PM (0)
Apr 10, 7-8 PM (0)
Apr 10, 8-9 PM (0)
Apr 10, 9-10 PM (0)
Apr 10, 10-11 PM (2)
Apr 10, 11-12 AM (0)
Apr 11, 12-1 AM (0)
Apr 11, 1-2 AM (0)
Apr 11, 2-3 AM (0)
Apr 11, 3-4 AM (0)
Apr 11, 4-5 AM (0)
Apr 11, 5-6 AM (0)
Apr 11, 6-7 AM (0)
Apr 11, 7-8 AM (0)
Apr 11, 8-9 AM (0)
Apr 11, 9-10 AM (0)
Apr 11, 10-11 AM (0)
Apr 11, 11-12 PM (0)
Apr 11, 12-1 PM (1)
Apr 11, 1-2 PM (0)
Apr 11, 2-3 PM (0)
Apr 11, 3-4 PM (0)
Apr 11, 4-5 PM (0)
Apr 11, 5-6 PM (0)
Apr 11, 6-7 PM (0)
Apr 11, 7-8 PM (0)
Apr 11, 8-9 PM (0)
Apr 11, 9-10 PM (0)
Apr 11, 10-11 PM (0)
Apr 11, 11-12 AM (0)
Apr 12, 12-1 AM (0)
Apr 12, 1-2 AM (0)
Apr 12, 2-3 AM (0)
Apr 12, 3-4 AM (0)
Apr 12, 4-5 AM (0)
Apr 12, 5-6 AM (0)
Apr 12, 6-7 AM (0)
Apr 12, 7-8 AM (0)
Apr 12, 8-9 AM (0)
Apr 12, 9-10 AM (0)
Apr 12, 10-11 AM (0)
Apr 12, 11-12 PM (0)
Apr 12, 12-1 PM (0)
Apr 12, 1-2 PM (0)
Apr 12, 2-3 PM (0)
Apr 12, 3-4 PM (0)
Apr 12, 4-5 PM (0)
Apr 12, 5-6 PM (0)
Apr 12, 6-7 PM (0)
Apr 12, 7-8 PM (0)
Apr 12, 8-9 PM (0)
Apr 12, 9-10 PM (0)
Apr 12, 10-11 PM (0)
Apr 12, 11-12 AM (0)
Apr 13, 12-1 AM (0)
Apr 13, 1-2 AM (0)
Apr 13, 2-3 AM (0)
Apr 13, 3-4 AM (0)
Apr 13, 4-5 AM (0)
Apr 13, 5-6 AM (0)
Apr 13, 6-7 AM (0)
Apr 13, 7-8 AM (0)
Apr 13, 8-9 AM (0)
Apr 13, 9-10 AM (0)
Apr 13, 10-11 AM (9)
Apr 13, 11-12 PM (0)
Apr 13, 12-1 PM (0)
Apr 13, 1-2 PM (1)
Apr 13, 2-3 PM (0)
Apr 13, 3-4 PM (0)
Apr 13, 4-5 PM (0)
Apr 13, 5-6 PM (0)
Apr 13, 6-7 PM (0)
Apr 13, 7-8 PM (0)
Apr 13, 8-9 PM (0)
Apr 13, 9-10 PM (0)
Apr 13, 10-11 PM (0)
Apr 13, 11-12 AM (0)
Apr 14, 12-1 AM (0)
Apr 14, 1-2 AM (0)
Apr 14, 2-3 AM (0)
Apr 14, 3-4 AM (0)
Apr 14, 4-5 AM (0)
Apr 14, 5-6 AM (0)
Apr 14, 6-7 AM (0)
Apr 14, 7-8 AM (0)
Apr 14, 8-9 AM (0)
Apr 14, 9-10 AM (0)
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)
60 commits this week
Apr 09, 2026
-
Apr 16, 2026
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).
Add confirmed tx throughput panel to proto-devnet dashboard
Adds a Grafana timeseries panel that plots txkB/s using: rate(cardano_node_metrics_cumulativeTxBytes_int[30s]) / 1000 Includes a 200 kB/s threshold line (the demo target from #845).
Set wfa-ls VRF trials to 600 (480 persistent + 120 non-persistent)
The experiment config's vote-generation-probability: 600 was being ignored because the simulation uses persistent + non-persistent probabilities directly (defaulting to 400 + 100 = 500). Override both in the wfa-ls mode to get the intended 600 total with 80:20 split, giving a 75% quorum at the existing threshold of 450. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Fix clippy warnings: is_multiple_of and collapsed if-let
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add process RSS to memory stats and simplify praos.blocks instrumentation
Read VmRSS from /proc/self/status and log it alongside estimated totals so we can directly compare instrumented vs actual memory usage. Simplify praos.blocks stats back to basic entry count and tx_refs — the detailed unique/endorse breakdown showed praos.blocks is not a significant memory consumer. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Enable TX pruning in benchmarks to bound txs HashMap memory
The txs HashMap grew to 120k entries (16 MB/node, ~12 GB total) because linear-tx-max-age-slots defaulted to null in the benchmark parameter chain. Set it to 24 in memory-limit.yaml (vote=4 + diffuse=7 + ceil(1000/1000)*3 + buffer=10) to match the experiment config timing. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Remove || true from benchmark script now that shutdown is clean
The || true was masking simulation failures (including OOM kills). The shutdown panic it originally worked around was fixed in e089975c4, and shard panics are now caught cleanly via catch_unwind in 8354af475. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Replace per-block ledger state cache with single mutable state
ledger_states was a BTreeMap caching a cumulative HashSet<u64> of spent inputs for every ranking block. At slot 1380 with 72 blocks this reached 3.4M entries per snapshot × 72 copies = 55 MB/node × 750 = 41 GB (~70% of total memory). Since resolve_ledger_state is only called for the current chain tip, and rollbacks aren't handled correctly anyway (slot battle replacement blocks are skipped by seen_blocks), replace the BTreeMap with a single Option<(BlockId, LedgerState)> that is mutated in place. Removes Clone derive from LedgerState. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add per-minute memory usage instrumentation to linear leios
Log entry counts and estimated byte sizes for all significant per-node data structures every 60 slots from node 0. Multiplied by node count to estimate total simulation memory. Identified ledger_states as the dominant consumer (~70% of 58 GB at 1380 slots). Also tee simulation output in the benchmark script so tracing logs (including memory stats) are visible during runs. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Fix pruning race that panics shard thread and deadlocks CMB
prune_old_leios_state() could remove EBs from self.leios.ebs while a
CpuTask::EBBlockValidated was still in-flight (body validation takes
50+ ms). When the task completed, finish_validating_eb() panicked,
killing one shard thread and freezing its shared_time. Other shards
then deadlocked in the CMB ceiling check waiting for the dead shard.
- Skip pruning EBs in Received { validated: false } state
- Replace panic with tracing::warn! + return as a safety net
- Track pruned EBs to prevent re-requests of already-processed EBs
- Wrap shard threads in catch_unwind to cancel the token on panic,
preventing any future panic from deadlocking multi-shard runs
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Prune old leios state based on endorsed EB chain
Remove vote bundles, tallies, EB state, and relay announcements for EBs older than the latest endorsed EB. Only prunes once a newer EB has been endorsed on-chain, avoiding false positives from fixed time-based cutoffs. Also rename TMPDIR to WORK in benchmark script to avoid shadowing the system TMPDIR variable. Note: a reproducible hang has been observed at 0.250/wfa-ls throughput with 6-shard sequential engine. Under investigation — may be related to pruning timing or a pre-existing CMB synchronisation issue. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Remove unused WeightedLookup::is_empty method
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Fix JoinHandle panic on clean shutdown
When the simulation completes before the event monitor, the select! macro joins the monitor future. Awaiting it again on line 151 panics with "JoinHandle polled after completion". Return early from the monitor branch to avoid the double-await. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Set peer backlog cap to 10000 for voting benchmarks
Cap of 100 was too aggressive — caused MissingTX vote failures at higher throughputs. 10000 avoids affecting vote behavior while still bounding TX memory growth (~35GB peak at 0.250/everyone). Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Prune old vote and EB state in linear leios to bound memory
Vote bundles, per-EB tallies, EB state, and relay announcements were stored forever, causing 50GB+ memory with large voter committees. Add slot-based pruning that removes all leios state for EBs older than the full voting lifecycle (3*header_diffusion + vote_stage + diffuse_stage + buffer). Also remove write-only certified_ebs field. Reduces peak memory from 54GB to ~31GB for 750-voter/1500-slot runs. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Use persistent vote parameters for deterministic committee modes
Everyone and top-stake-fraction voters are all deterministically selected and don't need per-vote eligibility proofs, so use persistent vote sizes (90 bytes), generation time (0.135ms), and validation time (0.670ms) instead of the weighted persistent/non-persistent average. Also fix memory-limit peer backlog cap (raise to 1000 from typo fix). Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Allow filtering by throughput and committee mode in benchmark script
Accept optional second and third args for comma-separated throughput and mode filters (use "-" for all). Append to existing results CSV when filtering instead of overwriting. Examples: ./scripts/cip-voting-options.sh - 0.250 everyone ./scripts/cip-voting-options.sh - 0.250,0.300 wfa-ls,everyone Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Allow topology selection in voting benchmark script
Accept topology as leafname (resolved in data/simulation/pseudo-mainnet/), relative path, or absolute path. Defaults to topology-v2-cip.yaml. Auto-compute vote thresholds from topology stake distribution at configurable quorum fraction (QUORUM_FRACTION, default 60%). Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
fix: add bounded retry limits to all phases in wait-for-test.sh
- Phase 1 (acceptance): track consecutive errors, exit after 10 - Phase 2 (completion): track consecutive errors, exit after 5 - Final outcome: detect all-attempts-failed, handle jq parse errors per reviewer suggestion in PR#858 review thread Agent-Logs-Url: https://github.com/input-output-hk/ouroboros-leios/sessions/6365c0a4-b8cc-4046-bb53-b41de3d2cd02 Co-authored-by: wolf31o2 <[email protected]>
fix: handle transient errors and reduce poll frequency in wait-for-test
The completion poll was crashing on transient DNS/connection failures from moog because the error output couldn't be parsed by jq under set -e. Now all phases catch query and parse failures and retry. Completion poll interval increased from 60s to 300s since the test runs for an hour. Signed-off-by: Chris Gianelloni <[email protected]>
fix: validate usage in antithesis/scripts/wait-for-test.sh
Co-authored-by: Copilot <[email protected]>
Update logbook