IntersectMBO / ouroboros-consensus

Implementation of a Consensus Layer for the Ouroboros family of protocols
https://ouroboros-consensus.cardano.intersectmbo.org
Apache License 2.0
34 stars 23 forks source link

Test with `k = 0` in test-consensus #676

Open mrBliss opened 4 years ago

mrBliss commented 4 years ago

In addition to input-output-hk/ouroboros-consensus#726 and input-output-hk/ouroboros-network#1524, we should also test with k = 0. Not that this is very useful in practice, but to verify that we didn't make any incorrect assumptions and test our edge cases.

nfrisby commented 10 months ago

k is the parameter of the Common Prefix property in the Ouroboros papers.

If k=0, then there is no (guaranteed) Common Prefix among the honest nodes. A related observation: our implementation with k=0 could never roll back.

What interesting properties would we test for in a such a system? In Byron with Permissive BFT it should be fine, since there's exactly one leader per slot and synchrony is assumed: so there should be no short forks. However, Praos has multi-leader slots, so that means eventually every node would be on its own chain.

Maybe it'd still be worthwhile to run such a test simply to check whether the nodes throw exceptions/fail/etc?