mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
* docs: add contributor docs * docs: nit * docs: move project layout to docs folder * chore: slash the slashes * docs: re-add ci badge (whoops) * docs: index
1.8 KiB
1.8 KiB
Project Layout
This repository contains several Rust crates that implement the different building blocks of an Ethereum node. The high-level structure of the repository is as follows:
crates/db: Strongly typed database bindings to LibMDBX containing read/write access to Ethereum state and historical data (transactions, blocks etc.)executor: Blazing-fast instrumented EVM usingrevm. Used during consensus, syncing & during transaction simulation / gas estimation.interfaces: Traits containing common abstractions across the components used in the system. For ease of unit testing, each crate importing the interface is recommended to create mock/in-memory implementations of each trait.net/p2p: Implements the Ethereum P2P protocol.net/rpc-api: Traits- Supported transports: HTTP, WS, IPC
- Supported namespaces:
eth_,engine_,debug_
net/rpc: Implementation of all ETH JSON RPC traits defined inrpc-api.net/rpc-types: Types relevant for the RPC endpoints above, grouped by namespaceprimitives: Commonly used types in Reth.stages: The staged sync pipeline, including implementations of each stage.transaction-pool: An in-memory pending transactions pool.
crate-template: Template crate to use when instantiating new crates undercrates/.bin: Where all binaries are stored.examples: Example usage of the reth stack as a library.