mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-01-09 15:28:01 -05:00
docs: add architecture diagrams to ExEx documentation (#20193)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
@@ -4,6 +4,28 @@ description: How Execution Extensions (ExExes) work in Reth.
|
|||||||
|
|
||||||
# How do ExExes work?
|
# How do ExExes work?
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Reth
|
||||||
|
participant ExEx
|
||||||
|
|
||||||
|
Note over Reth,ExEx: Normal Flow
|
||||||
|
Reth->>ExEx: ChainCommit Notification
|
||||||
|
activate ExEx
|
||||||
|
ExEx->>ExEx: Process Block Data
|
||||||
|
ExEx->>Reth: FinishedHeight Event
|
||||||
|
deactivate ExEx
|
||||||
|
|
||||||
|
Note over Reth,ExEx: Reorg Flow
|
||||||
|
Reth->>ExEx: ChainReorg Notification
|
||||||
|
activate ExEx
|
||||||
|
ExEx->>ExEx: Rollback & Re-process
|
||||||
|
ExEx->>Reth: New FinishedHeight Event
|
||||||
|
deactivate ExEx
|
||||||
|
```
|
||||||
|
|
||||||
ExExes are just [Futures](https://doc.rust-lang.org/std/future/trait.Future.html) that run indefinitely alongside Reth
|
ExExes are just [Futures](https://doc.rust-lang.org/std/future/trait.Future.html) that run indefinitely alongside Reth
|
||||||
– as simple as that.
|
– as simple as that.
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,27 @@ initiated by Reth.
|
|||||||
|
|
||||||
Read more about things you can build with Execution Extensions in the [Paradigm blog](https://www.paradigm.xyz/2024/05/reth-exex).
|
Read more about things you can build with Execution Extensions in the [Paradigm blog](https://www.paradigm.xyz/2024/05/reth-exex).
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph LR
|
||||||
|
subgraph "Reth Process"
|
||||||
|
Reth[Reth Core]
|
||||||
|
|
||||||
|
Reth -->|Notifications| ExEx1[ExEx 1]
|
||||||
|
Reth -->|Notifications| ExEx2[ExEx 2]
|
||||||
|
Reth -->|Notifications| ExEx3[ExEx N]
|
||||||
|
|
||||||
|
ExEx1 -->|Events| Reth
|
||||||
|
ExEx2 -->|Events| Reth
|
||||||
|
ExEx3 -->|Events| Reth
|
||||||
|
end
|
||||||
|
|
||||||
|
ExEx1 --> External1[External System 1]
|
||||||
|
ExEx2 --> External2[External System 2]
|
||||||
|
ExEx3 --> External3[External System N]
|
||||||
|
```
|
||||||
|
|
||||||
## What Execution Extensions are not
|
## What Execution Extensions are not
|
||||||
|
|
||||||
Execution Extensions are not separate processes that connect to the main Reth node process.
|
Execution Extensions are not separate processes that connect to the main Reth node process.
|
||||||
|
|||||||
Reference in New Issue
Block a user