Skip to content

Commit dad5cd8

Browse files
jmalicevicmpoke
andauthored
feat(docs): performance_eval (#128)
* Initial draf of performance evaluation * removed full screengrabs * add performance eval to docs summary * update Malachite perf section * add notes to docs * update emerald perf eval * update bytes units * bare metal results * Added performance data fro geodistributed run * Reworded load generation stats * remove old figures * update performance doc * fix typo * remove extra figures * fix TODOs * update figure * rename perform eval file * update readme --------- Co-authored-by: Marius Poke <marius.poke@posteo.de>
1 parent a613a6d commit dad5cd8

33 files changed

Lines changed: 2485 additions & 39 deletions

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,12 @@ For instructions on how to launch an Emerald network in production, please refer
6464

6565
## Performance Evaluation
6666

67-
> TODO: some performance number and link to how to run benchmarks
67+
Emerald delivers high performance with sub-second block times, providing the low-latency confirmations needed for demanding institutional applications.
68+
In benchmarking, Emerald reaches approximately 9,200 TPS peak and 8,300 TPS sustained.
69+
Its consensus engine, Malachite, can achieve up to 71.7k TPS without an execution client,
70+
demonstrating both the strength of the underlying consensus layer and the clear potential to further optimize Emerald.
71+
72+
For more details, please refer to the [Performance Evaluation](https://emerald-docs.informalsystems.io/performance_evaluation/index.html) section of the docs.
6873

6974
## Contributing
7075

app/src/app.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ use crate::state::{assemble_value_from_parts, decode_value, extract_block_header
3131
use crate::sync_handler::{get_decided_value_for_sync, validate_payload};
3232

3333
pub async fn initialize_state_from_genesis(state: &mut State, engine: &Engine) -> eyre::Result<()> {
34-
// TODO Unify this with code above @Jasmina
3534
// Get the genesis block from the execution engine
3635
let genesis_block = engine
3736
.eth

docs/operational-docs/src/SUMMARY.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
---
1010

11-
# Architecture
11+
# Core Concepts
1212

1313

1414
- [Architecture](./architecture/index.md)
@@ -18,7 +18,7 @@
1818

1919
---
2020

21-
# Guides
21+
# Run & Deploy
2222

2323
- [Deploy Local Testnet](local-devnet/index.md)
2424
- [Creating a Testnet](local-devnet/create-network.md)
@@ -35,10 +35,10 @@
3535
- [Creating Network Genesis](production-network/genesis.md)
3636
- [Running Reth](production-network/running-reth.md)
3737
- [Running Emerald](production-network/running-emerald.md)
38+
- [Configuration Examples](./config-examples.md)
3839

3940
---
4041

41-
# References
42-
43-
- [Configuration Examples](./config-examples.md)
42+
# Performance
4443

44+
- [Performance Evaluation](./performance_evaluation/index.md)

docs/operational-docs/src/architecture/consensus.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@ which is the most battle-tested consensus protocol in blockchain today.
1010

1111
**Single-Slot Finality.** Transactions are finalized immediately once blocks are committed, without the risk of reorgs.
1212

13-
**Low Latency.** Malachite finalizes blocks in under one second, delivering the low-latency confirmation times required for high-performance institutional applications.
13+
**Formally Specified.** Malachite was formally specified using the [Quint specification language](https://quint-lang.org).
1414

15-
**High Throughput.**
16-
> TODO: add throughput results
15+
**Low Latency.** Malachite finalizes blocks in under one second, delivering the low-latency confirmation times required for high-performance institutional applications.
1716

18-
**Formally Specified.** Malachite was formally specified and model checked using the [Quint specification language](https://quint-lang.org).
17+
**High Throughput.** Malachite without an Ethereum execution client on top can reach up to 71.7k TPS for single datacenter deployments and up to 41.4k TPS for geo-distributed deployments.
18+
When deploying with Reth as an execution client, Emerald achieves around 9,200 TPS peak and 8,300 TPS sustained on a single datacenter deployment.
19+
This demonstrates both the strength of the underlying consensus engine and the clear potential to further optimize Emerald.
1920

2021
## Malachite Integration
2122

@@ -32,7 +33,11 @@ Emerald, as a Malachite application, only needs to interact with the consensus e
3233

3334
- `AppMsg::Decided { certificate, reply }`: Notifies the application that consensus has been reached, providing a certificate with the decided value and supporting votes.
3435

35-
**Note.** Emerald doesn't currently support the following Malachite events: `AppMsg::RestreamProposal` , `AppMsg::ExtendVote`, `AppMsg::VerifyVoteExtension`.
36+
> [!NOTE]
37+
> Emerald doesn't currently support the following Malachite events:
38+
> - `AppMsg::RestreamProposal`
39+
> - `AppMsg::ExtendVote`
40+
> - `AppMsg::VerifyVoteExtension`
3641
3742
## Additional Features
3843

-39 KB
Binary file not shown.
-66.5 KB
Binary file not shown.
-275 KB
Binary file not shown.
-215 KB
Binary file not shown.
118 KB
Loading
220 KB
Loading

0 commit comments

Comments
 (0)