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

Long-duration protocol exercise in simulation #125

Open
Tracked by #226 ...
anorth opened this issue Mar 15, 2024 · 0 comments
Open
Tracked by #226 ...

Long-duration protocol exercise in simulation #125

anorth opened this issue Mar 15, 2024 · 0 comments
Assignees
Labels
testing Related to testing and validation

Comments

@anorth
Copy link
Member

anorth commented Mar 15, 2024

Before production use, we should extensively exercise the protocol for long durations under different simulated chain and network conditions. This is an umbrella issue motivating a number of specific items to improve.

The simulator was mostly constructed to allow hand-crafting of specific situations to exercise protocol and coordination boundaries, mostly scoped to a single protocol instance. This is good, but limited to specific scenarios that we can think of. We should complement this with stochastic exercise over many instances under different macro conditions. The existing simulator can probably be used as a base, but the EC chain views and network need more complexity.

Some things to consider:

  • More complexity in the EC chain, different view of head, different propagation of EC information to nodes, long-running forks etc (see Support divergent EC chain views in simulator #115)
  • Network instability, periodic network halt, dropped messages
  • Dynamic participation, some nodes refusing to participate
  • Realistic network sizes of thousands of participants
  • Highly uneven or more even power distribution

Some such exercises will be too slow to run in CI, but we should set up the capability to run multi-hour simulations on demand.

These exercises should be accompanied by some more metrics so we can measure things like the total network traffic, signature verification rate, count of instances that make progress vs basechain, etc (this might warrant a separate issue).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
testing Related to testing and validation
Projects
Status: No status
Development

No branches or pull requests

3 participants