IntersectMBO / IntersectMBO/ouroboros-consensus

ThreadNet rewrite

Open
#651 0 comments 0 reactions 1 assignee Claimed by @nfrisby View on GitHub
technical debt
Dominant language
Haskell
Stars
67
Forks
43
Avg merge
5d 13h
Merged PRs (30d)
43

Description

@nfrisby has been wanting to rewrite the ThreadNet tests, now that we'll have some time in August to address tech debt, we should consider it.

Requests from Edsko and me:

* Generate all test inputs upfront, nothing should depend on running the test. E.g., generated transactions should not depend on the ledger state at that slot, which we don't yet know upfront, etc.
* Proper shrinking, depends on the bullet above.
* Per connection version negotiation (`BlockNodeToNodeVersion`).
* Different nodes should have different lower bounds, depends on input-output-hk/ouroboros-consensus#646.
* Heterogeneous networks: different block types, e.g., `ByronBlock` vs. `CardanoBlock`, `ShelleyBlock` vs. `ShelleyHFC`.
* Run nodes the same way that real nodes run, i.e., input-output-hk/ouroboros-consensus#684, input-output-hk/ouroboros-consensus#737.
* Replace unit tests with labels.
* Performance. Good starting point: profile the HFC A/B test, which does barely anything and see what the low hanging fruit is.
* Structure and write the code in such a way that it is easier to understand and modify by other people in the team. Deadlines and time difference have made this kind of more “collective ownership” difficult, but we should attempt to improve this situation.
* Allow for clients (#2350), not necessarily by adding these tests, but making it possible to add them.
* A flag or input parameter to easily enable tracing.

@nfrisby Feel free to add to/modify this list in any way you see fit.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.