IntersectMBO / ouroboros-consensus

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

Test chain quality #797

Open edsko opened 5 years ago

edsko commented 5 years ago

At the moment we only check the common prefix property.

Related: input-output-hk/ouroboros-consensus#798.

nfrisby commented 5 years ago

Is there an existing document listing out these desired qualities/quantities in some detail?

All of the consensus tests currently only bound the length of each final chain's suffix beyond their common prefix. The upper bound on that suffix length is computed for each test case based on its configuration (eg join plan, a priori or a posteriori leader schedule, etc). The bound is conservative, since its computed without the details of the node configuration etc. When the bound is 0, the test case requires that the network ended in consensus.

edsko commented 5 years ago

"Quality" here refers to a technical definition as found in the Ouroboros papers.

nfrisby commented 5 years ago

Edsko found a list of the (relevant?) Ouroboros papers for me. I'm transcribing it here:

Name Listed Link Resolved as of 2019 September 12
BFT https://iohk.io/research/papers/#L5IHCV53 https://eprint.iacr.org/2018/1049
Classic https://iohk.io/research/papers/#9BKRHCSI https://eprint.iacr.org/2016/889
Praos https://iohk.io/research/papers/#XJ6MHFXX and (superseded by?) https://iohk.io/research/papers/#AQZE2XCV https://eprint.iacr.org/2017/573 and (superseded by?) https://eprint.iacr.org/2018/378

Also, Permissive BFT: https://hydra.iohk.io/job/Cardano/cardano-ledger-specs/byronChainSpec/latest/download-by-type/doc-pdf/blockchain-spec

Some context: Byron implements Classic and Shelley implements Praos with BFT to be used during the transition. Thoos comes after Praos, but we're not there yet.