Skip to content

Commit 5c5eb31

Browse files
committed
Multi-line TODOs
This improves rendering in PDF
1 parent 85e2f7f commit 5c5eb31

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

docs/leios-design/README.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,9 @@ Mainnet deployment requires governance approval and operational readiness beyond
184184
Operational readiness encompasses stake pool operator testing in their environments, updated procedures and training, clearly documented upgrade procedures, updated monitoring and alerting systems, and prepared support channels. The hard fork combinator enables relatively smooth transitions, but Leios represents substantial consensus changes. Conservative timeline estimates must account for discovering and addressing unexpected issues - a normal part of the hard-fork scheduling process. The months of validation and refinement required before prudent mainnet deployment reflect the critical nature of modifications to a system holding substantial economic value and providing essential services that users depend upon.
185185

186186
> [!WARNING]
187-
> TODO: more thoughts
187+
>
188+
> TODO: more thoughts:
189+
>
188190
> - why (deltaq) modeling? quick results and continued utility in parameterization
189191
> - parameterization in general as a (communication) tool; see also Peras' parameterization dashboard https://github.com/tweag/cardano-peras/issues/54
190192
> - what's left for the hard-fork after all this? more-and-more testing / maturing, governance-related topics (new protocol parameters, hard-fork coordination)
@@ -196,6 +198,7 @@ The changes necessary to realizing Leios must integrate carefully with existing
196198
## On-disk storage of ledger state
197199

198200
> [!WARNING]
201+
>
199202
> TODO: Add some links and references to UTxO-HD and Ledger-HD specification and status
200203
201204
The transition from memory-based to disk-based ledger state storage represents a fundamental prerequisite for Leios deployment. This dependency stems directly from the throughput characteristics that Leios is designed to enable.
@@ -246,6 +249,7 @@ Ouroboros Genesis enables nodes to bootstrap safely from the genesis block with
246249
**Chain synchronization** in general becomes more complex under Leios due to the multi-layered block structure. Syncing nodes must fetch both ranking blocks and their associated certified endorser blocks to construct a complete view of the chain. A node that downloads only ranking blocks cannot reconstruct the complete ledger state, as the actual transactions content resides within closures of the endorser blocks referenced by certificates on the ranking blocks. The `LeiosFetch` mini-protocol addresses this requirement through the `MsgLeiosBlockRangeRequest` message type, enabling efficient batch fetching of complete block ranges during synchronization. This allows nodes to request not only a range of ranking blocks but also all associated endorser blocks and their transaction closures in coordinated requests. Parallel fetching from multiple peers becomes critical for synchronization performance, as the data volume substantially exceeds that of traditional Praos blocks.
247250

248251
> ![WARNING]
252+
>
249253
> TODO: Chain synchronization / syncing node discussion could be moved to the respective section in the architecture/changes chapter
250254
251255
## Impact on Mithril
@@ -261,17 +265,21 @@ In summary, Leios will not require fundamental changes to Mithril's architecture
261265
# Risks and mitigations
262266

263267
> [!WARNING]
268+
>
264269
> TODO: Introduce chapter as being the bridge between implementation plan and concrete technical design; also, these are only selected aspects that inform the implementation (and not cover principal risks to the protocol or things that are avoided by design)
265270
266271
## Key threats
267272

268273
> [!WARNING]
274+
>
269275
> TODO: Selection of key threats and attacks that further inform the design and/or implementation plan. Incorporate / reference the full [threat model](../threat-model.md)
270276
271277
### Protocol bursts
272278

273279
> [!WARNING]
280+
>
274281
> TODO: important because
282+
>
275283
> - was a prominent case in research
276284
> - acknowledges the wealth of data to be processed
277285
> - mitigation: freshest-first delivery / prioritization between praos and leios traffic
@@ -281,7 +289,9 @@ In summary, Leios will not require fundamental changes to Mithril's architecture
281289
### Data withholding
282290

283291
> [!WARNING]
292+
>
284293
> TODO: important because
294+
>
285295
> - can be done from stake- and network-based attackers
286296
> - trivially impacts high-throughput because no certifications happening
287297
> - however, more advanced, potential avenue to attack blockchain safety (impact praos security argument) when carefully partitioning the network
@@ -291,6 +301,7 @@ In summary, Leios will not require fundamental changes to Mithril's architecture
291301
## Assumptions to validate early
292302

293303
> [!WARNING]
304+
>
294305
> TODO: Which assumptions in the CIP / on the protocol security need to be validated as early as possible?
295306
>
296307
> - Worst case diffusion of EBs given certain honest stake (certifying the EB) is realistic
@@ -307,6 +318,7 @@ In summary, Leios will not require fundamental changes to Mithril's architecture
307318
> When transferring things from impact analysis, the **REQ-...** requirements are as well as the **NEW-..** and **UPD-..** references were kept. Not sure if we need all of them to references between concepts and designs.
308319
309320
> [!WARNING]
321+
>
310322
> TODO: How to structure the changes best? Group them by layer/component or responsibility?
311323
>
312324
> Behavior-based sketch:
@@ -386,11 +398,13 @@ In summary, Leios will not require fundamental changes to Mithril's architecture
386398
While being a significant change to the consensus protocol, Leios does not require fundamental changes to the overall architecture of the `cardano-node`. Several new components will be needed for the new responsibilities related to producing and relaying Endorser Blocks (EBs) and voting on them, as well as changes to existing components to support higher throughput and freshest-first-delivery. The following diagram illustrates the key components of a relay node where new and updated components are marked in purple:
387399
388400
> [!WARNING]
401+
>
389402
> TODO: Should consider adding Leios prefixes to VoteStore (to not confuse with PerasVoteDB), i.e. LeiosVoteDB?
390403
391404
![](./relay-leios-component-diagram.svg)
392405
393406
> [!WARNING]
407+
>
394408
> TODO: Explain why focus on relay node (upstream/downstream relationship); briefly mention block producer node differences; Add similar diagram for block producer? block and vote production not shown in relay diagram
395409
396410
## Consensus
@@ -589,6 +603,7 @@ Concretely, this means defining the `PParams` and `PParamsUpdate` types for the
589603
Traditionally, the ledger component defines the serialization format of blocks and transactions. CIP-164 introduces three new types that need to be serialized and deserialized:
590604
591605
> [!WARNING]
606+
>
592607
> TODO: Serialization of votes a consensus component responsibility?
593608
594609
- **REQ-LedgerSerializationRB** The ranking block body contents must be deterministically de-/serializable from/to bytes using CBOR encoding.

0 commit comments

Comments
 (0)