e2e: add evidence generation and testing#6276
Conversation
Codecov Report
@@ Coverage Diff @@
## master #6276 +/- ##
==========================================
+ Coverage 60.72% 60.79% +0.07%
==========================================
Files 281 281
Lines 26648 26628 -20
==========================================
+ Hits 16181 16188 +7
+ Misses 8774 8753 -21
+ Partials 1693 1687 -6
|
tychoish
left a comment
There was a problem hiding this comment.
this seems like a great improvement and removes a lot of complexity/fragility to the testing system, which I think is quite good
alexanderbez
left a comment
There was a problem hiding this comment.
Looks great @cmwaters, left a few minor questions & comments :)
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
|
Currently, we allow the generator to create testnets with nodes that have a retain height of 0. This means that they retain no blocks. This doesn't fly for an e2e test suite that has evidence because evidence requires keeping blocks and validator sets with which to verify evidence from. Therefore I will add a minimum retain height invariant here (= to the max evidence expiration duration of 3 to ensure that evidence propagates correctly |
|
Sounds reasonable @cmwaters 👍 |
docs/app-dev/getting-started.md
Outdated
|
|
||
| ## KVStore - A First Example | ||
|
|
||
| ` |
p2p/wdrr_queue.go
Outdated
| // flow in each round. The flow can send at most quantum bytes at a time. Each | ||
| // flow has its own unique quantum, which gives the queue its weighted nature. | ||
| // A higher quantum corresponds to a higher weight/priority. The quantum is | ||
| // A highzer quantum corresponds to a higher weight/priority. The quantum is |
There was a problem hiding this comment.
I think I did that thing where I think I'm on one tab when I'm actually on some other one just typing away
There was a problem hiding this comment.
Thanks for catching me in any case :)

Closes: #5575
This PR adds evidence handling tests to the e2e framework.
It creates a command and a testnet parameter
evidencewhich allows valid evidence of bothLightClientAttackEvidenceandDuplicateVoteEvidenceto be generated and inserted through the RPC endpoint of a random node. It then tests that all evidence generated gets committed.NOTE: I have based this of bez's revise queue PR because there are significant changes to the e2e framework that I didn't want to have to solve conflicts for :)