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

Design network integration test framework for Zebra #466

Closed
2 of 6 tasks
Tracked by #745
teor2345 opened this issue Jun 11, 2020 · 2 comments
Closed
2 of 6 tasks
Tracked by #745

Design network integration test framework for Zebra #466

teor2345 opened this issue Jun 11, 2020 · 2 comments
Labels
A-consensus Area: Consensus rule updates C-design Category: Software design work C-research Category: Engineering notes in support of design choices S-needs-design Status: Needs a design decision

Comments

@teor2345
Copy link
Contributor

teor2345 commented Jun 11, 2020

Let's create a network integration test framework for Zebra, so we can do internal testing of consensus and sync behaviour. Some of these tests should be run during CI.

Test Goals:

  • zcashd compatibility
  • focus on behaviour that's hard to unit tests: network, sync, chain, consensus
  • minimal viable product

Some Possible Design Ideas:

  • launching tests from cargo (@dconnolly ?)
  • making zcashd mine blocks really fast (< 1s per block)
    • so we can quickly test a bunch of interesting network behaviours after every commit
    • using zcashd "regtest" mode
  • getting stable test results
    • this might be an ongoing task
  • how do we analyse, reproduce and fix failures?

Dependencies:

Out Of Scope:

  • creating random transactions
  • full reproducibility

Here are some possible network designs:

  • zebrad only
    • Single zebrad node
    • Two zebrad nodes
    • Multiple zebrad nodes
  • zcashd miner
  • One zcashd and one zebrad node
  • Multiple zcashd and one zebrad node
  • Multiple zcashd and multiple zebrad nodes

We might also want to have tests that load fixed state.

@teor2345 teor2345 added Poll::Pending C-design Category: Software design work C-research Category: Engineering notes in support of design choices A-consensus Area: Consensus rule updates labels Jun 11, 2020
@teor2345 teor2345 self-assigned this Jun 11, 2020
@teor2345 teor2345 added the E-help-wanted Call for participation: Help is requested to fix this issue. label Jun 17, 2020
@teor2345 teor2345 added S-needs-design Status: Needs a design decision and removed E-help-wanted Call for participation: Help is requested to fix this issue. labels Jul 1, 2020
@teor2345 teor2345 changed the title Create network integration tests for Zebra Design network integration test framework for Zebra Jul 1, 2020
@teor2345
Copy link
Contributor Author

teor2345 commented Jul 1, 2020

I have turned this ticket into a design ticket, with these open design questions:

  • launching tests from cargo
  • making zcashd mine blocks really fast (< 1s per block)
  • getting stable test results
  • how do we analyse, reproduce and fix failures?

I think @dconnolly had ideas about how to launch tests from cargo.

@hdevalence hdevalence added S-blocked Status: Blocked on other tasks and removed Poll::Pending labels Aug 17, 2020
@teor2345 teor2345 removed this from the Wallet Support 💰 milestone Oct 28, 2020
@teor2345 teor2345 added S-needs-triage Status: A bug report needs triage and removed S-blocked Status: Blocked on other tasks E-med labels Oct 28, 2020
@mpguerra mpguerra removed the S-needs-triage Status: A bug report needs triage label Feb 2, 2021
@teor2345
Copy link
Contributor Author

This task is related to #1004, if we decide to do it, we should just re-open one of them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-consensus Area: Consensus rule updates C-design Category: Software design work C-research Category: Engineering notes in support of design choices S-needs-design Status: Needs a design decision
Projects
None yet
Development

No branches or pull requests

3 participants