IntersectMBO / IntersectMBO/ouroboros-network

Improve the process of updating protocol versions

Open
#3,925 3 comments 1 reaction 0 assignees View on GitHub
technical debt
Dominant language
Haskell
Stars
296
Forks
104
Avg merge
2d 10h
Merged PRs (30d)
4

Description

We need a clear write-up of:

- Which kinds of protocol versions exist?
- Protocol version inside the block header that is used to indicate readiness for a HF, which is configured in consensus.
- MaxMajorProtocol version, which indicates the highest version of the protocol the node can support.
- The actual protocol version, which is maintained by the ledger inside the protocol parameters.
- What is the meaning of each protocol version?
- Where are they set (hard-coded)?
- How intra-era hardforks interact with versions? See [this 5 to 7](https://github.com/input-output-hk/ouroboros-network/blob/548af5bd5cafa3d42267afad1ceac63bff152f53/ouroboros-consensus-cardano-tools/src/Cardano/Node/Protocol/Cardano.hs#L267) jump in versions due to an intra-era hardfork.
- When should `NodeToNode` versions be changed and why?

We should hide the constructor of `MaxMajorProtVer` so that issues like [this one](https://github.com/input-output-hk/ouroboros-network/pull/3891/files#) can be prevented from happening in the future.

The protocol versions documentation should live in [`cardano-node`](https://github.com/input-output-hk/cardano-node/), and other upstream repositories such as [`ouroboros-network`](https://github.com/input-output-hk/ouroboros-network) and [`cardano-ledger`](https://github.com/input-output-hk/cardano-ledger) should refer to it and include key pieces of information about this topic.

# Related issues

- input-output-hk/ouroboros-consensus#22.
- input-output-hk/ouroboros-network#3925.
- input-output-hk/ouroboros-consensus#325.
- input-output-hk/ouroboros-consensus#635.

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.