Expand description
Behaviour needed to serve eth_
RPC requests, divided into general database reads and
specific database access.
Traits with Load
prefix, read atomic data from database, e.g. a block or transaction. Any
database read done in more than one default Eth
trait implementation, is defined in a Load
trait.
Traits with Eth
prefix, compose specific data needed to serve RPC requests in the eth
namespace. They use Load
traits as building blocks. EthTransactions
also writes data
(submits transactions). Based on the eth_
request method semantics, request methods are
divided into: EthTransactions
, EthBlocks
, EthFees
, EthState
and EthCall
.
Default implementation of the Eth
traits, is done w.r.t. L1.
EthApiServer
, is implemented for any type that implements
all the Eth
traits, e.g. reth_rpc::EthApi
.
Modules§
- Database access for
eth_
block RPC methods. Loads block and receipt data w.r.t. network. - Spawns a blocking task. CPU heavy tasks are executed with the
rayon
library. IO heavy tasks are executed on thetokio
runtime. - Loads a pending block from database. Helper trait for
eth_
transaction, call and trace RPC methods. - Estimate gas needed implementation
- Loads fee history from database. Helper trait for
eth_
fee and transaction RPC methods. - Loads a pending block from database. Helper trait for
eth_
block, transaction, call and trace RPC methods. - Loads a receipt from database. Helper trait for
eth_
block and transaction RPC methods, that loads receipt data w.r.t. network. - An abstraction over ethereum signers.
- Loads chain metadata.
- Loads a pending block from database. Helper trait for
eth_
block, transaction, call and trace RPC methods. - Loads a pending block from database. Helper trait for
eth_
call and trace RPC methods. - Database access for
eth_
transaction RPC methods. Loads transaction and receipt data w.r.t. network.
Traits§
- Adds 20 random dev signers for access via the API. Used in dev mode.
- Executes code on state.
Eth
API trait.- Block related functions for the
EthApiServer
trait in theeth_
namespace. - Execution related functions for the
EthApiServer
trait in theeth_
namespace. - Fee related functions for the
EthApiServer
trait in theeth_
namespace. - An Ethereum Signer used via RPC.
- Helper methods for
eth_
methods relating to state (accounts). - Transaction related functions for the
EthApiServer
trait in theeth_
namespace. - Helper trait to unify all
eth
rpc server building block traits, for simplicity. - Loads a block from database.
- Loads fee from database.
- Loads a pending block from database.
- Assembles transaction receipt data w.r.t to network.
- Loads state from database.
- Loads a transaction from database.
- Executes code on a blocking thread.
- Executes CPU heavy tasks.
- Extension trait that bundles traits needed for tracing transactions.