-
Notifications
You must be signed in to change notification settings - Fork 33
Description
As part of our progress on #544, we aim to measure the impact that EBs may have on the performance of the Praos protocol. The goal of this experiment is to test the hypothesis that Leios cannot run without disrupting Praos, and to measure the magnitude of this disruption (see EXP-LeiosDiffusionOnly in the Impact Analysis document).
Experiment Setup
We plan to configure an experiment where:
- A Cardano node is connected to one upstream mock peer and one downstream peer.
- The Cardano node processes messages from the upstream peer and, after appropriate processing, relays them to the downstream peer.
Run Configurations
Run 1:
- The upstream mock peer serves only Praos blocks.
Run 2:
- The upstream mock peer serves Praos blocks.
- The upstream mock peer also serves EB blocks and the transactions they reference.
Analysis
After both runs are completed, we should analyze the resulting node logs to generate plots and perform statistical analysis on the time it takes for a node to relay a Praos block. Specifically, we want to measure the duration from the moment the node receives a Praos block to the moment it forwards it to its downstream peer.
Constraints and Implementation Notes
- The Praos implementation must remain untouched for this experiment.
- The mempool should not be modified.
- We may optionally use the P&T tooling to analyze node logs, but it is not required.
Prototype Requirements
This prototype should include:
- A mini-protocol for EB diffusion.
- A transaction cache used by the process responsible for receiving and relaying blocks. This cache will be queried to request missing transactions referenced in EB blocks.
- We need some nontrivial constraints on the bandwidth and latency of the connection to the mocked upstream peer. The Innovation team can provide us with some representative numbers.
EB Handling Logic
- Upon receiving an EB, the node will request any missing transactions from the tx cache via the mocked upstream peer.
- There will be no transaction submission traffic between these nodes.
- The transaction cache will be used to avoid redundant requests when multiple EBs reference the same transactions.
Additional Notes
- We could use a trace from the Leios simulator to mock the data.
- The components described in this issue are a subset of those outlined in the Impact Analysis document.
Extensions to the prototype
The prototype described in this issue could be extended in the following ways (work which is outside of the scope of this issue):
- Add more nodes under tests.
- Add EB votes.
Sub-issues
Metadata
Metadata
Labels
Type
Projects
Status