IntersectMBO / IntersectMBO/ouroboros-consensus

Test ledger/tx property

Open
#699 0 comments 0 reactions 0 assignees View on GitHub
better-tests
Dominant language
Haskell
Stars
67
Forks
43
Avg merge
5d 13h
Merged PRs (30d)
43

Description

Splitting of lemma 3 from input-output-hk/ouroboros-network#1765:
```
applyLedgerBlock cfg blk st
== repeatedlyM (applyTx cfg) (extractTxs blk)
(applyChainTick cfg (blockSlot blk) st)
```
Note that this lemma isn't quite true. For example, in Byron, endorsements come from the protocol version in the header, and aren't an explicit transaction. We should generalise the lemma.

Note that in `cardano-ledger`, they're already checking a similar lemma for Byron.

Note the [following comment](https://github.com/input-output-hk/ouroboros-network/pull/1775#issuecomment-597123263):
> Lemma 3 is harder to check, because of https://github.com/input-output-hk/ouroboros-network/issues/1765#issuecomment-597006390, but also because we suddenly have `ApplyTx blk` and `HasTxs blk` constraints on `applyExtLedger`, which are rather annoying. Adding them as superclasses of `LedgerSupportsProtocol` is convenient, but annoying in `ouroboros-consensus-byron`, because the instances are defined in separate modules. Moreover, `DualByronBlock` doesn't support `HasTxs`, so that's a no go :slightly_frowning_face:.

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.