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/repo/layout.md
+30-2Lines changed: 30 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,10 +40,19 @@ All binaries are stored in [`bin`](../../bin).
40
40
These crates are related to the database.
41
41
42
42
-[`storage/codecs`](../../crates/storage/codecs): Different storage codecs.
43
+
-[`storage/codecs/derive`](../../crates/storage/codecs/derive): Derive macros for storage codecs.
43
44
-[`storage/libmdbx-rs`](../../crates/storage/libmdbx-rs): Rust bindings for [libmdbx](https://github.com/erthink/libmdbx). A fork of an earlier Apache-licensed version of [libmdbx-rs][libmdbx-rs].
-[`storage/db-api`](../../crates/storage/db-api): High-level database access traits used across storage crates.
48
+
-[`storage/db-common`](../../crates/storage/db-common): Shared database helpers and utilities.
49
+
-[`storage/db-models`](../../crates/storage/db-models): Typed database models for on-disk tables.
50
+
-[`storage/storage-api`](../../crates/storage/storage-api): Storage-facing APIs used by higher-level components.
46
51
-[`storage/provider`](../../crates/storage/provider): Traits which provide a higher level api over the database to access the Ethereum state and historical data (transactions, blocks etc.)
52
+
-[`storage/rpc-provider`](../../crates/storage/rpc-provider): Storage provider implementations tailored for RPC access patterns.
53
+
-[`storage/errors`](../../crates/storage/errors): Common error types used by storage crates.
54
+
-[`storage/nippy-jar`](../../crates/storage/nippy-jar): Compressed columnar storage for historical data.
55
+
-[`storage/zstd-compressors`](../../crates/storage/zstd-compressors): Zstandard-based compressors used by storage components.
47
56
48
57
49
58
### Networking
@@ -62,16 +71,21 @@ The networking component mainly lives in [`net/network`](../../crates/net/networ
62
71
- Contains: Peer banlist.
63
72
-[`net/network-api`](../../crates/net/network-api): Contains traits that define the networking component as a whole. Other components that interface with the network stack only need to depend on this crate for the relevant types.
64
73
-[`net/nat`](../../crates/net/nat): A small helper crate that resolves the external IP of the running node using various methods (such as a manually provided IP, using UPnP etc.)
74
+
-[`net/network-types`](../../crates/net/network-types): Common networking types (peer identifiers, capabilities, messages, etc.).
75
+
-[`net/p2p`](../../crates/net/p2p): Higher-level P2P networking helpers and utilities.
76
+
-[`net/peers`](../../crates/net/peers): Peer set management, scoring and reputation support.
65
77
66
78
#### Discovery
67
79
68
80
-[`net/discv4`](../../crates/net/discv4): An implementation of the [discv4][discv4] protocol
81
+
-[`net/discv5`](../../crates/net/discv5): An implementation of the discv5 node discovery protocol.
69
82
-[`net/dns`](../../crates/net/dns): An implementation of node discovery via DNS ([EIP-1459][eip-1459])
70
83
71
84
#### Protocol
72
85
73
86
-[`net/eth-wire`](../../crates/net/eth-wire): Implements the `eth` wire protocol and the ``RLPx`` networking stack.
74
87
-[`net/ecies`](../../crates/net/ecies): Implementation of the Elliptic Curve Integrated Encryption Scheme used in the ``RLPx`` handshake.
88
+
-[`net/eth-wire-types`](../../crates/net/eth-wire-types): Common types used by the `eth` wire protocol and RLPx networking stack.
75
89
76
90
#### Downloaders
77
91
@@ -81,7 +95,9 @@ The networking component mainly lives in [`net/network`](../../crates/net/networ
81
95
82
96
Different consensus mechanisms.
83
97
84
-
-[`consensus/common`](../../crates/consensus/common): Common consensus functions and traits (e.g. fee calculation)
98
+
-[`consensus/common`](../../crates/consensus/common): Common consensus functions and traits (e.g. fee calculation).
99
+
-[`consensus/consensus`](../../crates/consensus/consensus): Core consensus engine interfaces and implementations.
100
+
-[`consensus/debug-client`](../../crates/consensus/debug-client): Utilities for interacting with the consensus engine in debugging and testing scenarios.
85
101
86
102
### Execution
87
103
@@ -96,7 +112,9 @@ Crates related to transaction execution.
96
112
97
113
These crates implement the main syncing drivers of reth.
98
114
99
-
-[`stages`](../../crates/stages): A pipelined sync, including implementation of various stages. This is used during initial sync and is faster than the tree-like structure for longer sync ranges.
115
+
-[`stages/api`](../../crates/stages/api): Public API for the staged sync pipeline.
116
+
-[`stages/stages`](../../crates/stages/stages): Implementations of the individual sync stages and the pipeline driver. This is used during initial sync and is faster than the tree-like structure for longer sync ranges.
117
+
-[`stages/types`](../../crates/stages/types): Shared types used by the staged sync pipeline.
100
118
101
119
### RPC
102
120
@@ -146,6 +164,10 @@ Crates related to building and validating payloads (blocks).
146
164
-[`transaction-pool`](../../crates/transaction-pool): An in-memory pending transactions pool.
147
165
-[`payload/builder`](../../crates/payload/builder): Abstractions for payload building and a payload builder service that works with multiple kinds of payload resolvers.
148
166
-[`payload/basic`](../../crates/payload/basic): A basic payload generator.
167
+
-[`payload/builder-primitives`](../../crates/payload/builder-primitives): Common primitives used by payload builders.
168
+
-[`payload/primitives`](../../crates/payload/primitives): Shared types used when building and validating payloads.
169
+
-[`payload/util`](../../crates/payload/util): Utility helpers used by payload building and validation logic.
170
+
-[`payload/validator`](../../crates/payload/validator): Payload validation helpers and utilities.
149
171
150
172
### Primitives
151
173
@@ -169,6 +191,12 @@ Small utility crates.
169
191
-[`metrics/metrics-derive`](https://github.com/rkrasiuk/metrics-derive): A derive-style API for creating metrics
170
192
-[`metrics/reth-node-metrics`](../../crates/node/metrics/): The implementation of metrics server, recorder, hooks.
171
193
-[`tracing`](../../crates/tracing): A small utility crate to install a uniform [`tracing`][tracing] subscriber
194
+
-[`fs-util`](../../crates/fs-util): Small filesystem utilities shared across the node.
195
+
-[`tokio-util`](../../crates/tokio-util): Tokio-related utilities used by reth.
196
+
-[`static-file`](../../crates/static-file): Utilities for bundling and serving static files.
197
+
-[`tracing-otlp`](../../crates/tracing-otlp): Exporter for sending [`tracing`][tracing] spans to OTLP/OTel backends.
198
+
-[`errors`](../../crates/errors): Common error types shared across multiple crates.
199
+
-[`e2e-test-utils`](../../crates/e2e-test-utils): Helpers for end-to-end tests of the node.
0 commit comments