Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 30 additions & 29 deletions site/news/2025-04-14-weekly-progress-summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,61 +5,62 @@ authors:
tags: [progress, update, weekly]
---

This week, the team achieved significant milestones in both the Haskell and Rust simulations, improved cost estimates, and conducted comprehensive analyses of transaction lifecycle and Full Leios simulations.
This week, the team made substantial progress in both the Haskell and Rust simulations, refined cost estimates, and carried out detailed analyses of the transaction lifecycle and Full Leios simulations.

### Simulation improvements

#### Haskell simulation
- Completed first draft of new mini protocols for leios diffusion
- Protocols modeled after BlockFetch and node-to-node Tx-Submission from ouroboros-network
- IB-relay, EB-relay, Vote-relay for header diffusion and body announcements
- IB-fetch, EB-fetch for body diffusion
- CatchUp protocol for older blocks
- See `simulation/docs/network-spec` for complete protocol details
- Renamed `short-leios` command to `leios` since it now covers full variant as well
- `short-leios` is kept as alias for compatibility
- Completed the first draft of new mini protocols for Leios diffusion
- Modeled protocols after block-fetch and node-to-node transaction submission from `ouroboros-network`
- Included IB relay, EB relay, and vote relay for header diffusion and body announcements
- Included IB fetch and EB fetch for body diffusion
- Worked on the CatchUp protocol for older blocks
- See `simulation/docs/network-spec` for full protocol details
- Renamed `short-leios` command to `leios` as it now covers the full variant as well
- `short-leios` is kept as alias for compatibility.

#### Rust simulation
- Fixed conformance with shared trace format
- Fixed bug with voting logic which was preventing EBs from receiving enough votes to get on-chain
- Updated visualization to use smaller trace files to prepare for hosting on docs site
- Fixed conformance issues with the shared trace format
- Fixed a bug in the voting logic that prevented EBs from receiving enough votes to be included on-chain
- Updated visualizations to use smaller trace files in preparation for hosting on the documentation site.

### Revisions to cost dashboard
### Revisions to the cost dashboard

The [cost dashboard](https://leios.cardano-scaling.org/cost-estimator/) was updated with lower and more realistic IO estimates.

### Analysis of transaction lifecycle
### Transaction lifecycle analysis

The Jupyter notebook [Analysis of transaction lifecycle](https://github.com/input-output-hk/ouroboros-leios/blob/leios-2025w17/analysis/tx-to-block.ipynb) estimates the delay imposed by each of the seven stages of Full Leios as a transaction moves from memory pool to being referenced by a Praos block.
The Jupyter notebook [Analysis of transaction lifecycle](https://github.com/input-output-hk/ouroboros-leios/blob/leios-2025w17/analysis/tx-to-block.ipynb) estimates the delay introduced at each of the seven stages of Full Leios as a transaction progresses from the memory pool to being referenced by a Praos block.

Key findings from the analysis:
1. There seems little advantage to moving to stage lengths less than 10 slots
2. The number of shards should be kept small enough so that the IB rate per shard is high relative to the stage length
1. Reducing stage lengths below 10 slots offers little benefit
2. The number of shards should remain low enough to maintain a high IB rate per shard relative to the stage length
3. Low EB rates result in many orphaned IBs
4. Realistic parameter settings result in an approximately two-minute delay between transaction submission and its referencing by an RB
4. With realistic parameters, the delay from transaction submission to its inclusion in an RB is approximately two minutes.

Potential next steps:
- Translating this model into Delta QSD to include network effects
- Comparing this model's results to output of the Rust simulator
- Elaborating the model to represent the memory-pool and ledger variants under consideration
- Translate the model into Delta QSD to capture network effects
- Compare the model’s output with results from the Rust simulator
- Extend the model to account for different memory pool and ledger variants under evaluation.

### Simulation and analysis of Full Leios

The team conducted comprehensive simulations using both Haskell and Rust simulators at tag [leios-2025w16](https://github.com/input-output-hk/ouroboros-leios/releases/tag/leios-2025w16). The simulations covered 648 scenarios of Full and Short Leios with varied parameters:

- IB production rate
- IB size
- EB production rate
- Stage length
- CPU constraints
- CPU constraints.

Two new output files were generated:
1. Summary of network, disk, and CPU resource usage over the course of the simulation
2. Vertices and edges of the "Leios graph" showing linkages between transactions, IBs, EBs, RBs, and votes (can be visualized as an interactive web page)
1. A summary of network, disk, and CPU resource usage over the course of the simulation
2. The vertices and edges of the Leios graph, showing linkages between transactions, IBs, EBs, RBs, and votes (can be visualized as an interactive web page).

Key findings:
- Agreement between Rust and Haskell simulations is generally quite close
- The Haskell simulation experiences network congestion at 16 IB/s, but the Rust simulation does not
- The Rust simulation uses more CPU at high IB rates than the Haskell simulation
- The Rust simulation sometimes does not produce enough votes to certify an EB
- The Rust and Haskell simulations show generally close agreement
- The Haskell simulation encounters network congestion at 16 IB/s, while the Rust simulation does not
- The Rust simulation consumes more CPU at high IB rates than the Haskell simulation
- In some cases, the Rust simulation does not produce enough votes to certify an EB.

Detailed results are available in the Jupyter notebook [analysis/sims/2025w16/analysis.ipynb](https://github.com/input-output-hk/ouroboros-leios/blob/leios-2025w17/analysis/sims/2025w16/analysis.ipynb).
Detailed results are available in the Jupyter notebook [analysis/sims/2025w16/analysis.ipynb](https://github.com/input-output-hk/ouroboros-leios/blob/leios-2025w17/analysis/sims/2025w16/analysis.ipynb).
Loading