Crate reth_rpc

Source
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§

AdminApi
admin API implementation.
DebugApi
debug API implementation.
EngineApi
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.
EngineEthApi
A wrapper type for the EthApi and EthFilter implementations that only expose the required subset for the eth_ namespace used in auth server alongside the engine_ namespace.
MinerApi
miner API implementation.
NetApi
Net API implementation.
OtterscanApi
Otterscan API.
RPCApi
rpc API implementation.
RethApi
reth API implementation.
TraceApi
trace API implementation.
TxPoolApi
txpool API implementation.
ValidationApi
The type that implements the validation rpc namespace trait
ValidationApiConfig
Configuration for validation API.
Web3Api
web3 API implementation.