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

Implement basic test framework for consensus #34

Open
abailly opened this issue Dec 9, 2024 · 1 comment
Open

Implement basic test framework for consensus #34

abailly opened this issue Dec 9, 2024 · 1 comment
Assignees

Comments

@abailly
Copy link
Contributor

abailly commented Dec 9, 2024

Goal

Implement model-based testing framework that's able to compare the result of testing "any" implementation of Cardano consensus that can be connected to through node-to-node protocols.
The main goal is to scaffold the whole machinery required to run a validating node, of course without the full validation

Definition of done

Demonstrate we can run same test model against Haskell consensus and Amaru consensus, and compare the results.

  • Network is faked (eg, no real connection is made
  • Only the chain's headers are validated
  • There's only one upstream and downstream node

Basic scenario

  1. Start "node" from scratch
  2. connect to a fake upstream node using ChainSync protocol and have a downstream node connected using ChainSync protocol
  3. fake upstream will update node through a random walk of a pre-generated chain
  4. fake downstream will receive the same information

Failure modes

The synchronising node should reject adversarial upstream and downstream peers:

  • Generate invalide headers => node should disconnect from upstream peer
  • Generate incorrect messages not respecting the protocol => node should disconnect from upstream and downstream peer
@abailly abailly transferred this issue from pragma-org/ouroboros Dec 10, 2024
@abailly abailly self-assigned this Dec 10, 2024
@abailly abailly changed the title Implement simple consensus that can do ChainSync Implement basic test framework for consensus Dec 11, 2024
@abailly
Copy link
Contributor Author

abailly commented Dec 11, 2024

@KtorZ I have updated the issue to reflect today's discussion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant