Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Packet loss fault injection test #1532

Closed
3 tasks done
ffakenz opened this issue Jul 25, 2024 · 0 comments · Fixed by #1552
Closed
3 tasks done

Packet loss fault injection test #1532

ffakenz opened this issue Jul 25, 2024 · 0 comments · Fixed by #1552
Assignees
Labels
green 💚 Low complexity or well understood feature 💬 feature A feature on our roadmap

Comments

@ffakenz
Copy link
Contributor

ffakenz commented Jul 25, 2024

Why

The goal is to take a first, simple step towards setting up a hydra cluster that simulates high transaction loads under network failures.

By doing so, we aim to identify and fix problems in our networking stack, ultimately improving the robustness of the hydra cluster under adverse network conditions.

Hopefully, this setup will help us consistently reproduce issues that cause our hydra-node to get stuck, as detailed in #1436.

What

The task involves setting up a local hydra cluster running on devnet and using Docker containers to run the necessary components under a custom Docker network.

Then, a simulation script, similar to the existing bench program, will be executed.

This script will send a high volume of transactions to the nodes while network failures are generated using Pumba.

How

  • run-docker.sh will be used to setup the hydra cluster using Docker.

    this results in a cluster of 3 hydra nodes (Alice, Bob, and Carol) connected to the same cardano node running on devnet, with the hydra scripts published and the parties funded by the faucet.

  • refactor the bench executable script to drive the simulation.

    • it should run under devnet.
    • it should reuse alice, bob and carol keys.
    • it should connect to already running cardano and hydra node running containers.
  • use Pumba, on demand, to inject network failures into hydra nodes.

    • only use netem loss for now.
    • failures should be interleaved during transaction processing (once the head is open).
    • only one failure should occur on a hydra node at any given time.
  • have step in CI that tests how the network reliability handles package loss failures.

@ffakenz ffakenz self-assigned this Jul 25, 2024
@ffakenz ffakenz changed the title Improve network reliability issues Yet another hydra cluster simulation Jul 25, 2024
@ffakenz ffakenz changed the title Yet another hydra cluster simulation package loss fault injection test Jul 30, 2024
@ffakenz ffakenz changed the title package loss fault injection test Package loss fault injection test Jul 30, 2024
@ffakenz ffakenz added the green 💚 Low complexity or well understood feature label Jul 30, 2024
@ch1bo ch1bo added the 💬 feature A feature on our roadmap label Jul 30, 2024
@ch1bo ch1bo linked a pull request Aug 7, 2024 that will close this issue
14 tasks
@noonio noonio changed the title Package loss fault injection test Packet loss fault injection test Aug 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
green 💚 Low complexity or well understood feature 💬 feature A feature on our roadmap
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants