Skip to content

Commit 0da935c

Browse files
committed
Add some sections to the one-era plan
1 parent 20c473c commit 0da935c

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

docs/website/contents/for-developers/Whitepaper.md

+14-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,20 @@ We need to take both advantage of the rigorous structure we have in the code bas
1010

1111
The key typeclass we need to instantiate is ConsensusProtocol.
1212

13+
## Outline of the Consensus components
14+
15+
The section 5.2 of the `network-design` document can be imported into the whitepaper almost wholesale. It gives a good outline of the tasks that the consensus layer is supposed to be able to perform.
16+
17+
## Interaction with the Networking layer
18+
19+
Here we need to talk about what parts of the networking layer Consensus relies on. What is are the interfaces between the Consensus and Network? The answer is, as I understand, typed mini protocols. How to describe these interfaces in a language-agnostic way?
20+
21+
The implementations of the mini-protocols are here: `ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/MiniProtocol`
22+
23+
## Storage Subsystem
24+
25+
This section should describe the concepts necessary to implement the storage subsystem of a Cardano node. The description should focus on things that are necessary to keep track of to implement i.e. Praos, but do not go into the details about how these things are stored. No need to discuss in-memory vs on-dist storage and mutable vs persistent data structures, as we have separate documents for this.
26+
1327
# Multi-era Considerations
1428

1529
With the blokchain network evolving, the block format and ledger rules are bound to change. In Cardano, every significant change starts a new "era". There are several ways to deal with multiple eras in the node software, associated here with some of the DnD alignments:
@@ -36,5 +50,3 @@ But obviously we don not have to use the HFC. What would be a reasonable way to
3650
## The Hard Fork Combinator: a uniform way to support multiple eras}
3751

3852
Ideally, this would be a short section that should outline the core ideas behind the HFC without a single line of Haskell. The purpose should be to demonstrate the benefits of having an abstract interface for describing mixed-era blocks. The interested reader would be then referred to an extended, Haskell-enabled document that described the HFC in its full glory.
39-
40-

0 commit comments

Comments
 (0)