Skip to content

Commit be0d30f

Browse files
committed
adding template for architecture section
1 parent c041a57 commit be0d30f

13 files changed

Lines changed: 84 additions & 37 deletions

File tree

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,15 @@ Emerald empowers institutions to build production-ready networks with tailored g
2424

2525
## Architecture
2626

27-
Emerald's architecture is intentionally clean and composable, consisting of four key components:
27+
Emerald's architecture is intentionally clean and composable, consisting of three key components:
2828

2929
- The [Malachite][malachite] consensus engine
30-
- An Ethereum execution client (currently [Reth][reth])
31-
- A lightweight shim layer that connects consensus and execution via [Engine API][engine-api]
30+
- An Ethereum execution client (currently [Reth][reth]) integrated via [Engine API][engine-api]
3231
- A proof-of-authority (PoA) module
3332

3433
This modular design keeps the system easy to understand, maintain, and extend while providing full EVM compatibility, predictable PoA consensus, and simple deployment and operation.
3534

36-
For more details, check out the [Architecture section of the docs](https://emerald-docs.informalsystems.io/architecture.html).
35+
For more details, please refer to the [Architecture](https://emerald-docs.informalsystems.io/architecture/index.html) section of the docs.
3736

3837
## Getting Started
3938

@@ -51,17 +50,17 @@ cd emerald
5150
make build
5251
```
5352

54-
### Launching a Local Network
53+
### Deploying a Local Testnet
5554

56-
For instructions on how to launch a local Emerald network, please refer to the [Running a Local Tesnet section of the docs](https://emerald-docs.informalsystems.io/local-testnet.html).
55+
For instructions on how to deploy a local Emerald testnet, please refer to the [Deploy Local Tesnet](https://emerald-docs.informalsystems.io/local-devnet/index.html) section of the docs.
5756

58-
### Launching a Testnet
57+
### Launching a Production Network
5958

60-
For instructions on how to launch am Emerald testnet, please refer to the [Creating a Production Network section of the docs](https://emerald-docs.informalsystems.io/production-network.html).
59+
For instructions on how to launch am Emerald production-grade network, please refer to the [Launch Production Network](https://emerald-docs.informalsystems.io/production-network/index.html) section of the docs.
6160

6261
## Performance Evaluation
6362

64-
> TODO: how to run benchmarks
63+
> TODO: some performance number and link to how to run benchmarks
6564
6665
## Contributing
6766

docs/operational-docs/src/SUMMARY.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,27 @@
1010

1111
# Architecture
1212

13-
- [Architecture](./architecture.md)
13+
14+
- [Architecture](./architecture/index.md)
15+
- [Consensus Engine](./architecture/consensus.md)
16+
- [Ethereum Execution Client](./architecture/execution-client.md)
17+
- [PoA Module](./architecture/poa.md)
18+
19+
- [Old Architecture](./architecture.md)
1420

1521
---
1622

1723
# Guides
1824

19-
- [Local Devnet](local-devnet/README.md)
20-
- [Creating a Devnet](local-devnet/create-network.md)
25+
- [Deploy Local Testnet](local-devnet/index.md)
26+
- [Creating a Testnet](local-devnet/create-network.md)
2127
- [Managing Validators](local-devnet/membership-changes.md)
2228
- [Network Configuration](local-devnet/network-config.md)
23-
- [Interacting With the Devnet](local-devnet/interactions.md)
29+
- [Interacting With the Testnet](local-devnet/interactions.md)
2430
- [Monitoring](local-devnet/monitoring.md)
2531
- [Troubleshooting](local-devnet/troubleshooting.md)
2632
- [Common Workflows](local-devnet/workflows.md)
27-
- [Production Network](production-network/README.md)
33+
- [Launch Production Network](production-network/index.md)
2834
- [Network Overview](production-network/network-overview.md)
2935
- [Installation](production-network/installation.md)
3036
- [Creating Network Genesis](production-network/genesis.md)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Consensus Engine
2+
3+
Emerald leverages [Malachite](https://github.com/circlefin/malachite) as its consensus engine.
4+
Malachite is the most optimized and lightweight evolution of the [Tendermint](https://arxiv.org/abs/1807.04938) Byzantine Fault Tolerant (BFT) protocol,
5+
which is the most battle-tested consensus protocol in blockchain today.
6+
It separates consensus from execution, allowing modular development and easy component customization.
7+
8+
> TODO
9+
> - what is a consensus engine providing
10+
> - what are the benefits of Malachite
11+
> - how is Malachite integrated in Emerald (Channel API)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Ethereum Execution Client
2+
3+
Emerald integrates with Ethereum execution clients through the [Engine API](https://github.com/ethereum/execution-apis/tree/main/src/engine), allowing it to plug into a mature execution ecosystem.
4+
Currently, Emerald integrates with [Reth](https://github.com/paradigmxyz/reth) and we plan to support additional clients.
5+
6+
> TODO
7+
> - what is an exec client providing
8+
> - what are the benefits of an Ethereum exec client
9+
> - how is Reth integrated in Emerald (Engine API)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Architecture
2+
3+
Emerald is a modular framework designed with simplicity at its core, enabling users to deploy reliable, easy to operate, high performance, EVM-compatible networks.
4+
Its architecture is intentionally clean and composable, consisting of three key components.
5+
6+
- [Consensus Engine](consensus.md)
7+
- [Ethereum Execution Client](execution-client.md)
8+
- [PoA Module](poa.md)
9+
10+
<div style="text-align: center;">
11+
<img src="../images/emerald-architecture.png" width="40%" />
12+
</div>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# PoA Module
2+
3+
Emerald adopts a proof-of-authority (PoA) model.
4+
This model fits naturally with institutional networks of trust, where participants are well-known organizations that can use their reputations as stake.
5+
This approach prioritizes accountability and identity over anonymous resource competition, enabling predictable performance, clear governance, and a security model rooted in real-world credibility.
6+
7+
> TODO
8+
> - how does the PoA module work

docs/operational-docs/src/introduction.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Introducing Emerald
22

3-
Emerald is an open-source, modular framework designed with simplicity at its core, enabling users to deploy reliable, easy to operate, high performance, EVM-compatible networks.
3+
Emerald is an open-source, modular framework for deploying reliable, easy to operate, high performance, EVM-compatible networks.
44

55
## The Case for Emerald
66

@@ -20,10 +20,12 @@ Emerald's architecture is intentionally clean and composable, consisting of thre
2020
- The [Malachite](https://github.com/circlefin/malachite) consensus engine
2121
- An Ethereum execution client (currently [Reth](https://github.com/paradigmxyz/reth)) integrated via [Engine API](https://github.com/ethereum/execution-apis/tree/main/src/engine)
2222
- A proof-of-authority (PoA) module
23-
24-
<img src="images/emerald-architecture.png" width="40%" />
2523

26-
> TODO: For more details, please have a look at the Emerald architecture.
24+
For more details, please refer to the [Architecture](./architecture/index.md) section.
25+
26+
<div style="text-align: center;">
27+
<img src="images/emerald-architecture.png" width="40%" />
28+
</div>
2729

2830
## Key Features
2931

@@ -32,10 +34,10 @@ Emerald's modular design keeps the system easy to understand, maintain, and exte
3234
- **EVM Compatibility.** Full EVM compatibility enables seamless integration with existing developer workflows, libraries, and infrastructure, making it easy to build, deploy, and maintain applications.
3335
It also means Emerald networks can tap directly into Ethereum’s thriving DeFi landscape and the wide range of applications already built for it, including bridges, explorers, indexers, and interoperability protocols.
3436
- **Instant Finality.** Emerald leverages [Malachite](https://github.com/circlefin/malachite) as its consensus engine.
35-
As an implementation of the [Tendermint](https://arxiv.org/abs/1807.04938) consensus protocol, Malachite provides **single-slot finality**, meaning that transactions are finalized immediately once a block is committed.
37+
As a high-performance implementation of the [Tendermint](https://arxiv.org/abs/1807.04938) Byzantine Fault Tolerant (BFT) protocol, Malachite provides _instant finality_, meaning that transactions are finalized immediately once a block is committed.
3638
- **Predictable Performance.** Emerald's PoA-based model not only fits naturally with institutional networks of trust (where participants are well-known organizations that can use their reputations as stake), but it enables predictable performance. With a fixed, accountable validator set and instant finality consensus, block times remain stable, latency is low, and throughput is consistent.
3739
- **Simple Deployment and Operation.** Emerald is built on battle-tested technology: Malachite is a formally verified Tendermint consensus implementation and Reth is a high-performance Ethereum execution client.
38-
In addition, Emerald comes with a state-of-the-art [runbook on how to operate a production network](../production-network/README.md).
40+
In addition, Emerald comes with a state-of-the-art [runbook on how to operate a production network](../production-network/index.md).
3941

4042
## Use Cases
4143

docs/operational-docs/src/local-devnet/create-network.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Creating a Devnet
1+
# Creating a Testnet
22

33
## Prerequisites
44

@@ -27,9 +27,9 @@ make
2727

2828
This single command performs all setup automatically:
2929

30-
1. **Cleans previous devnet data** - Removes any old network state
30+
1. **Cleans previous testnet data** - Removes any old network state
3131
2. **Builds the project** - Compiles Solidity contracts and Rust binaries
32-
3. **Generates devnet configuration** - Creates network parameters for 3 nodes
32+
3. **Generates testnet configuration** - Creates network parameters for 3 nodes
3333
4. **Creates validator keys** - Generates private keys for each validator
3434
5. **Creates node directories** - Sets up `nodes/0/`, `nodes/1/`, `nodes/2/`
3535
6. **Extracts validator public keys** - Collects pubkeys into `nodes/validator_public_keys.txt`
@@ -125,6 +125,6 @@ make clean
125125

126126
- All node data (`nodes/`)
127127
- Genesis file (`assets/genesis.json`)
128-
- Devnet config (`.testnet/`)
128+
- Testnet config (`.testnet/`)
129129
- Docker volumes (Reth databases)
130130
- Prometheus/Grafana data

docs/operational-docs/src/local-devnet/README.md renamed to docs/operational-docs/src/local-devnet/index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
# Local Devnet
1+
# Deploy Local Testnet
22

3-
This guide explains how to create and manage a local Emerald devnet.
3+
This guide explains how to create and manage a local Emerald testnet.
44
The goal is to enable developers and testers to run an Emerald network on their machine for development, testing, and experimentation.
55

6-
A local devnet is a fully functional blockchain network running entirely on your computer. It provides:
6+
A local testnet is a fully functional blockchain network running entirely on your computer. It provides:
77

88
- **Fast iteration**: Test smart contracts and applications without waiting for public networks
99
- **Complete control**: Add/remove validators, modify network parameters, reset state anytime
1010
- **No cost**: No real tokens required for testing
1111
- **Privacy**: All transactions and data stay on your machine
1212

13-
**Local Devnets vs Production Networks**
13+
**Local Testnet vs Production Network**
1414

15-
| Feature | Local Devnet | Production Network |
15+
| Feature | Local Testnet | Production Network |
1616
|---------|---------------|-------------------|
1717
| Validators | All on your machine | Distributed across organizations |
1818
| Data persistence | Can reset anytime | Permanent blockchain history |

docs/operational-docs/src/local-devnet/interactions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Interacting With the Devnet
1+
# Interacting With the Testnet
22

3-
Once your local Emerald devnet is running, you can interact with it like any Ethereum network.
3+
Once your local Emerald testnet is running, you can interact with it like any Ethereum network.
44

55
## Using `curl` (JSON-RPC)
66

0 commit comments

Comments
 (0)