You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/leios-design/README.md
+61-14Lines changed: 61 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ Besides collecting node-specific details in this document, we intend to contribu
19
19
This document is a living artifact and will be updated as implementation progresses, new risks are identified, and validation results become available.
@@ -697,21 +697,68 @@ Genesis (Ouroboros Genesis) enables nodes to bootstrap from the genesis block wi
697
697
> - parameterization in general as a (communication) tool; see also Peras' parameterization dashboard https://github.com/tweag/cardano-peras/issues/54
698
698
> - what's left for the hard-fork after all this? more-and-more testing / maturing, governance-related topics (new protocol parameters, hard-fork coordination)
699
699
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
+
700
747
# Glossary
701
748
702
-
| Term | Definition |
703
-
|------|------------|
704
-
|**RB**| Ranking Block - Extended Praos block that announces and certifies EBs |
0 commit comments