Dan Cline 230e9ef179 feat(p2p): add anchor file for discovery state (#11)
* feat(p2p): add anchor file for discovery state

* move rustdoc and improve error messages

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>

* add temp file tests and log drop error

 * fix error due to lack of read option
 * fix empty and nonexistent file error

* remove redundant new

* replace println with tracing

* show underlying error in custom error message

* chore: cargo fmt

* change AsRef<Path> to &Path

* remove ineffective dedups

* chore: cargo fmt

* switch out Vec<Enr<K>> for HashSet<Enr<K>>

* cargo fmt

* use tempdir instead of of std::env::temp_dir

* refactor anchor to contain &Path instead of File

 * change new_from_file to explicitly include logic for opening existing
   files, rather than calling out to from_toml
 * remove from_toml because new_from_file handles existing files
   properly with only a path. It is not possible to obtain a Path from a
   File anyways, its only purpose was to accept a File type

* use PathBuf instead of Path

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>
2022-10-10 13:02:54 -04:00
2022-10-09 12:39:33 -07:00
2022-09-19 19:25:12 +02:00
2022-10-09 10:07:59 +02:00
2022-10-10 09:46:02 -07:00
2022-10-07 18:20:29 -07:00
2022-10-07 18:20:29 -07:00
2022-10-07 18:20:29 -07:00
2022-09-21 23:58:11 +02:00

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.
Description
Reth-based hyperliquid archive node
Readme 80 MiB
Languages
Rust 99.6%
Makefile 0.2%
Mermaid 0.1%