Skip to content

Commit 2625afd

Browse files
authored
CIP-0059 | Adjust preamble and structure w.r.t CIP-0001 (cardano-foundation#709)
* first draft remediation of CIP-0059 * fixed duplicate header * spelled NA instead of standard N/A
1 parent 6a5f717 commit 2625afd

File tree

1 file changed

+29
-11
lines changed

1 file changed

+29
-11
lines changed

CIP-0059/README.md

+29-11
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,41 @@
11
---
22
CIP: 59
33
Title: Terminology Surrounding Core Features
4-
Authors: Jared Corduan <[email protected]>
54
Status: Active
6-
Type: Informational
5+
Category: Meta
6+
Authors:
7+
- Jared Corduan <[email protected]>
8+
Implementors: N/A
9+
Discussions:
10+
- https://github.com/cardano-foundation/CIPs/pull/274
711
Created: 2022-06-09
812
License: CC-BY-4.0
913
---
1014

11-
## Simple Summary / Abstract
15+
## Abstract
1216

1317
This CIP seeks to clarify the language around groups of features.
1418
At the very least, it provides some history.
1519

16-
## Motivation / History
20+
## Motivation: why is this CIP necessary?
1721

1822
When @CharlesHoskinson conceived of Cardano, he had a vision for what features the network would support.
1923
This vision is still present on the [Cardano roadmap website](https://roadmap.cardano.org).
2024
In particular, the features are grouped into "phases", which are mostly named after poets (Goguen is the exception).
2125
The word "era" is used interchangeably with "phases" on the roadmap.
2226

27+
### History
28+
2329
The word "era", however, has been muddled by an implementation detail in the Cardano ledger.
2430
The Shelley phase was implemented as an entire re-write of the code from the Byron phase.
2531
While the consensus layer for the Shelley phase was written with an abstraction in place for the ledger,
2632
the ledger layer was not written with any abstractions to make future phases possible.
33+
2734
Upon starting into the Goguen phase, the ledger team retroactively introduce a notion of "era"
2835
into the ledger code, and deemed the Shelley features "the Shelley era".
2936
In hindsight, however, the word "era" in unfortunate, since the Goguen phase was completed in the ledger
3037
by what was called "the Allegra era, the Mary era, the Alonzo era, and the Babbage era".
38+
3139
The names Allegra and Mary were chosen for their connection to the poet Percy Shelley,
3240
and were only intended to be used as
3341
[variable names](https://github.com/input-output-hk/cardano-ledger/blob/1cbf1fc2bb005a8206e5b5a7cdf44d35baaca455/eras/shelley-ma/impl/src/Cardano/Ledger/Allegra.hs#L40)
@@ -36,11 +44,13 @@ for a very specific abstraction used in the ledger code.
3644
and are specified together in the "Shelley-MA
3745
[specification](https://github.com/input-output-hk/cardano-ledger/releases/latest/download/mary-ledger.pdf).
3846
The letters "MA" can hilariously refer to both "Mary Allegra" and "Multi-Assets".)
47+
3948
How did we then go from poets to Alonzo?
4049
Recall that "Goguen" was the only non-poet named in the phases on the Cardano roadmap.
4150
We found it fitting, therefore, to name the ledger era which introduced Plutus
4251
after the person who invented the lambda calculus
4352
(Plutus Core uses a variant of [system F](https://en.wikipedia.org/wiki/System_F).).
53+
4454
Moreover, going forward, we decided to use names in A, B, C, ... order, names coming from
4555
other people who walk the line between mathematics and computer science.
4656
One lack of consistency to notice is that we have used both first and last names.
@@ -65,13 +75,16 @@ though the changes to the ledger are often the most user-facing.
6575
Changes to the consensus protocol or the networking layer may also involve a hard fork.
6676
Moreover, there is an abstraction that sits between the consensus and ledger layers,
6777
which we have named the "protocol" (a regrettably vague name).
78+
6879
The distinction between the ledger protocols and the ledger eras
6980
correspond roughly to how block headers are validated (protocol) versus
7081
how block bodies are validated (era).
7182
The Shelley era used the "transitional Praos" protocol (or TPraos for short).
7283
It consisted of Praos together with a transition system to move away from Ouroboros-BFT.
7384
The Babbage era replaced TPraos with Praos.
7485

86+
## Specification
87+
7588
A table of all the features, as of the time this CIP was submitted, can be found [here](./feature-table.md).
7689

7790
Note that the protocol version mentioned above is unrelated to the node-to-node and node-to-client protocol versions.
@@ -82,8 +95,6 @@ Note also that the protocol version present inside of each block header indicate
8295
that the block producer is capable of supporting (see section 13, Software Updates, of the
8396
[Shelley ledger specification](https://github.com/input-output-hk/cardano-ledger/releases/latest/download/shelley-ledger.pdf)).
8497

85-
## Specification
86-
8798
Let us use the following language:
8899

89100
* **Phase** - A phase in Cardano is a high level collection of features described on the Cardano roadmap.
@@ -93,19 +104,26 @@ Let us use the following language:
93104
* **Ledger Protocol** - A ledger protocol in Cardano is a collection of ledger features sitting between the consensus layer and the ledger layer, roughly characterized by block header validation.
94105
* **Release Dates** - When we are confident about the release of a new features, we can chose to honor Cardano community members by naming a date after them.
95106

96-
97-
## Rationale
107+
## Rationale: how does this CIP achieve its goals?
98108

99109
If we can agree to common language, it will greatly improve communication among ourselves and also with new community members.
100110

101-
## Backwards compatibility
111+
### Backwards compatibility
102112

103113
Since this is an issue of language, we will strive to use consistent language going forward, and we can correct misalignment when we find it.
104114

105115
## Path to Active
106116

107-
We will use this CIP as our common language going forward.
117+
### Acceptance Criteria
118+
119+
- [x] Terminology has met with positive response from community.
120+
- [x] Terminology has continued in use particularly in the CIP process and the Feature Table has been kept up to date.
121+
122+
### Implementation Plan
123+
124+
- [x] Ledger architects have committed to standardising their language for the community.
125+
- [x] Table of strict definitions, with protocol versions and block heights, is produced to remove any ambiguities.
108126

109127
## Copyright
110128

111-
This CIP is licensed under Apache-2.0
129+
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).

0 commit comments

Comments
 (0)