|
| 1 | +--- |
| 2 | +title: Weekly Summary - April 7, 2025 |
| 3 | +authors: |
| 4 | +- will |
| 5 | +tags: [progress, update, weekly] |
| 6 | +--- |
| 7 | + |
| 8 | +This week, the team continued their efforts in refining the protocol and its simulation capabilities. The team made significant progress in addressing various topics. |
| 9 | + |
| 10 | +### Simulation improvements |
| 11 | + |
| 12 | +#### Haskell simulation |
| 13 | +- Started specification of a new relay protocol for IB header diffusion without body |
| 14 | +- Improved the shared log format by removing redundancies and harmonizing naming |
| 15 | +- Added support for extra events required by conformance testing, including `SlotEvent` and `NoBlockEvent` |
| 16 | + - These events can be enabled using the `--conformance-events` flag with `--shared-log-format`. |
| 17 | + |
| 18 | +#### Rust simulation |
| 19 | +- Updated traces to match the new standardized trace format |
| 20 | +- Fixed a critical bug related to CPU scheduling where nodes were using more cores than allocated. |
| 21 | + |
| 22 | +### Analysis workflow optimization |
| 23 | + |
| 24 | +The team significantly improved the workflow for analyzing both Haskell and Rust simulations: |
| 25 | + |
| 26 | +- Replaced MongoDB with more efficient `jq` queries using map-reduce operations |
| 27 | +- Created reusable library functions for plotting with R |
| 28 | +- Revised and streamlined scripts for creating, executing, and analyzing simulations |
| 29 | +- Made the Jupyter notebook for analyses more generic and reusable |
| 30 | +- Successfully tested the new workflow on tag `leios-2025w15` |
| 31 | + |
| 32 | +These improvements will enable faster setup and execution of future simulation experiments, with quicker turnaround times for analysis. During this optimization work, several discrepancies between the Haskell and Rust simulations were identified and documented as GitHub issues for future investigation. |
| 33 | + |
| 34 | +### Edinburgh Workshop Recaps |
| 35 | + |
| 36 | +The Edinburgh Workshop documentation has been made available, covering key discussions and decisions: |
| 37 | + |
| 38 | +#### Day 1 Highlights |
| 39 | +- Explored ledger design options comparing Labeled UTxOs (Explicit Shards) vs Accounts (Implicit Shards) approaches |
| 40 | +- Discussed conformance testing strategies including QuickCheck Dynamic and Trace Verification approaches |
| 41 | +- Analyzed critical edge cases for user onboarding and system properties |
| 42 | + |
| 43 | +#### Day 2 Highlights |
| 44 | +- Detailed analysis of Leios node costs at different TPS levels |
| 45 | +- Key findings on resource usage: |
| 46 | + - At 10 TPS: 1.8x increase in egress and 6x increase in compute compared to Praos |
| 47 | + - At 1K TPS: Significant scaling improvements with better resource efficiency |
| 48 | +- Recommendations for potential integration with Peras, particularly for voting mechanism optimization |
| 49 | +- Discussion of performance characteristics at both high and low throughput levels |
| 50 | + |
| 51 | +#### Day 3 Highlights |
| 52 | +- In-depth discussion of optimistic ledger state references, exploring three main approaches: |
| 53 | + 1. RB Reference: Highest security but highest latency |
| 54 | + 2. EB Reference: Balanced approach with medium security and latency |
| 55 | + 3. EB-DAG: Advanced approach using directed acyclic graph structure |
| 56 | +- Key advantages of the EB-DAG approach: |
| 57 | + - Achieves low latency while maintaining security |
| 58 | + - Provides strong inclusion guarantees for EBs |
| 59 | + - Enables efficient state management and reconstruction |
| 60 | + - Creates complete, verifiable chain history |
| 61 | +- Implementation considerations for state management and block ordering in the EB-DAG approach |
| 62 | + |
| 63 | +For detailed information, see the full workshop recaps in the [Leios documentation](https://github.com/input-output-hk/ouroboros-leios/tree/main/docs/workshop). |
0 commit comments