Expand description
Reth RPC implementation
Provides the implementation of all RPC interfaces.
§Note on blocking behaviour
All async RPC handlers must non-blocking, see also What is blocking.
A lot of the RPC are using a mix of async and direct calls to the database, which are blocking and can reduce overall performance of all concurrent requests handled via the jsonrpsee server.
To avoid this, all blocking or CPU intensive handlers must be spawned to a separate task. See
the EthApi
handler implementations for examples. The rpc-api traits make no use of the
available jsonrpsee blocking
attribute to give implementers more freedom because the
blocking
attribute and async handlers are mutually exclusive. However, as mentioned above, a
lot of handlers make use of async functions, caching for example, but are also using blocking
disk-io, hence these calls are spawned as futures to a blocking task manually.
Re-exports§
pub use eth::EthApi;
pub use eth::EthApiBuilder;
pub use eth::EthBundle;
pub use eth::EthFilter;
pub use eth::EthPubSub;
Modules§
- eth
- Sever implementation of
eth
namespace API.
Structs§
- Admin
Api admin
API implementation.- Debug
Api debug
API implementation.- Engine
Api - Re-export for convenience The Engine API implementation that grants the Consensus layer access to data and functions in the Execution layer that are crucial for the consensus process.
- Engine
EthApi - A wrapper type for the
EthApi
andEthFilter
implementations that only expose the required subset for theeth_
namespace used in auth server alongside theengine_
namespace. - Miner
Api miner
API implementation.- NetApi
Net
API implementation.- Otterscan
Api - Otterscan API.
- RPCApi
rpc
API implementation.- RethApi
reth
API implementation.- Trace
Api trace
API implementation.- TxPool
Api txpool
API implementation.- Validation
Api - The type that implements the
validation
rpc namespace trait - Validation
ApiConfig - Configuration for validation API.
- Web3Api
web3
API implementation.