Files
nanoreth/README.md
Georgios Konstantopoulos ae4c31a836 add readme & license (#21)
* add readme

* add license

* fix readme
2022-10-07 18:20:29 -07:00

1.9 KiB

reth

Blazing-fast implementation of the Ethereum protocol

Github Actions

Directory Structure

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 using revm. 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.
      • rpc-api: Traits
        • Supported transports: HTTP, WS, IPC
        • Supported namespaces: eth_, engine_, debug_
      • rpc: Implementation of all ETH JSON RPC traits defined in rpc-api.
      • rpc-types: Types relevant for the RPC endpoints above, grouped by namespace
    • primitives/: 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 under crates/.
  • bin/: Where all binaries are stored.
  • examples/: Example usage of the reth stack as a library.