Skip to content

Commit 69d8b0f

Browse files
committed
Leios Design - Perf & Tracing
1 parent d9ceffe commit 69d8b0f

File tree

1 file changed

+61
-14
lines changed

1 file changed

+61
-14
lines changed

docs/leios-design/README.md

Lines changed: 61 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Besides collecting node-specific details in this document, we intend to contribu
1919
This document is a living artifact and will be updated as implementation progresses, new risks are identified, and validation results become available.
2020

2121
| Version | Date | Author | Changes |
22-
|---------|------------|-----------------|---------------|
22+
| ------- | ---------- | --------------- | ------------- |
2323
| 0.1 | 2025-10-15 | Sebastian Nagel | Initial draft |
2424

2525

@@ -697,21 +697,68 @@ Genesis (Ouroboros Genesis) enables nodes to bootstrap from the genesis block wi
697697
> - parameterization in general as a (communication) tool; see also Peras' parameterization dashboard https://github.com/tweag/cardano-peras/issues/54
698698
> - what's left for the hard-fork after all this? more-and-more testing / maturing, governance-related topics (new protocol parameters, hard-fork coordination)
699699
700+
# Performance & Tracing
701+
702+
## Observability as a first-class citizen
703+
704+
By implementing evidence of code execution, a well-founded tracing system is the prime provider of observability for a system.
705+
This observability not only forms the base for monitoring and logging, but also performance and conformance testing.
706+
707+
Treating observability as a first-class citizen in Leios means:
708+
- to continue operating and maintaining existing simulations
709+
- to derive an initial set of new, Leios-specific observables from them
710+
- to oversee implementation of those observables in prototypes, potentially extending the set
711+
- to create and maintain a formal specification of those observables, which can be fed back to formal methods
712+
713+
## Testing during development
714+
715+
Wheras simulations operate on models and are able to falsify hypotheses or assess probability of certain outcomes, evolving
716+
prototypes and implementations rely on evidence to that end. We plan to provide an environment suitable for both performance and conformance testing, primarily as feedbeck for development, but also to provide transparency into the ongoing process.
717+
718+
This environment would be capable of:
719+
- automating deployment, configuration and operation of small testnets
720+
- supporting different prototypes or implementations, as well as mixed deployments including adversarial nodes
721+
- supporting customizable workloads that are submitted to the testnet
722+
- gathering reliable and reproducible evidence - i.e raw data - from those testnets
723+
- automating analysis of that evidence to obtain performance and conformance data
724+
- aiding in refining or validating existing simulations
725+
726+
This requires the presence of basic observability with shared semantics of traces in all participating prototypes or implementations, as outlined in the previous section.
727+
728+
### Micro-benchmarks
729+
730+
On some occasions, smaller units of implementation (vs. full system integration) deserve a performance safeguard. When the necessity arises, we will assist in creating stable benchmarks that target isolated aspects of the system, and do not need a full testnet to run.
731+
732+
## Testing a full implementation
733+
734+
This eventual step will stop support for prototypes and instead focus on full implementations of Leios. This will allow
735+
for a uniform way to operate, and artificially constrain, Leios by configuration while maintainsing its performance properties.
736+
737+
Furthermore, this phase will see custom benchmarks that can scale individual aspects of Leios independently (by config or protocol
738+
parameter), so that the observed change in performance metrics can be clearly correlated to a specific protocol change.
739+
740+
## Final remarks
741+
742+
As Leios development in all aspects is an ongoing and very much alive process, this chapter could only focus on
743+
mid-to-high-level items. Depending on the progress of various protoypes and implementations, this high-level plan
744+
will need to be broken down and sequenced into smaller tasks. We will do so keeping in mind the result of those
745+
tasks should be reusable both internally, and by the community.
746+
700747
# Glossary
701748

702-
| Term | Definition |
703-
|------|------------|
704-
| **RB** | Ranking Block - Extended Praos block that announces and certifies EBs |
705-
| **EB** | Endorser Block - Additional block containing transaction references |
706-
| **CertRB** | Ranking Block containing a certificate |
707-
| **TxRB** | Ranking Block containing transactions |
708-
| **BLS** | Boneh-Lynn-Shacham signature scheme using elliptic curve BLS12-381 |
709-
| **PoP** | Proof-of-Possession - Prevents rogue key attacks in BLS aggregation |
710-
| **$L_\text{hdr}$** | Header diffusion period (1 slot) |
711-
| **$L_\text{vote}$** | Voting period (4 slots) |
712-
| **$L_\text{diff}$** | Certificate diffusion period (7 slots) |
713-
| **FFD** | Freshest-First Delivery - Network priority mechanism |
714-
| **ATK-LeiosProtocolBurst** | Attack where adversary withholds and releases EBs simultaneously |
749+
| Term | Definition |
750+
| -------------------------- | --------------------------------------------------------------------- |
751+
| **RB** | Ranking Block - Extended Praos block that announces and certifies EBs |
752+
| **EB** | Endorser Block - Additional block containing transaction references |
753+
| **CertRB** | Ranking Block containing a certificate |
754+
| **TxRB** | Ranking Block containing transactions |
755+
| **BLS** | Boneh-Lynn-Shacham signature scheme using elliptic curve BLS12-381 |
756+
| **PoP** | Proof-of-Possession - Prevents rogue key attacks in BLS aggregation |
757+
| **$L_\text{hdr}$** | Header diffusion period (1 slot) |
758+
| **$L_\text{vote}$** | Voting period (4 slots) |
759+
| **$L_\text{diff}$** | Certificate diffusion period (7 slots) |
760+
| **FFD** | Freshest-First Delivery - Network priority mechanism |
761+
| **ATK-LeiosProtocolBurst** | Attack where adversary withholds and releases EBs simultaneously |
715762

716763
# References
717764

0 commit comments

Comments
 (0)