reth::api::node

Trait FullNodeComponents

pub trait FullNodeComponents:
    FullNodeTypes
    + Clone
    + 'static {
    type Pool: TransactionPool + Unpin;
    type Evm: ConfigureEvm<Header = Header>;
    type Executor: BlockExecutorProvider;
    type Consensus: Consensus + Clone + Unpin + 'static;
    type Network: FullNetwork;
    type PayloadBuilder: PayloadBuilder + Clone;

    // Required methods
    fn pool(&self) -> &Self::Pool;
    fn evm_config(&self) -> &Self::Evm;
    fn block_executor(&self) -> &Self::Executor;
    fn consensus(&self) -> &Self::Consensus;
    fn network(&self) -> &Self::Network;
    fn payload_builder(&self) -> &Self::PayloadBuilder;
    fn provider(&self) -> &Self::Provider;
    fn task_executor(&self) -> &TaskExecutor;
}
Expand description

Encapsulates all types and components of the node.

Required Associated Types§

type Pool: TransactionPool + Unpin

The transaction pool of the node.

type Evm: ConfigureEvm<Header = Header>

The node’s EVM configuration, defining settings for the Ethereum Virtual Machine.

type Executor: BlockExecutorProvider

The type that knows how to execute blocks.

type Consensus: Consensus + Clone + Unpin + 'static

The consensus type of the node.

type Network: FullNetwork

Network API.

type PayloadBuilder: PayloadBuilder + Clone

Builds new blocks.

Required Methods§

fn pool(&self) -> &Self::Pool

Returns the transaction pool of the node.

fn evm_config(&self) -> &Self::Evm

Returns the node’s evm config.

fn block_executor(&self) -> &Self::Executor

Returns the node’s executor type.

fn consensus(&self) -> &Self::Consensus

Returns the node’s consensus type.

fn network(&self) -> &Self::Network

Returns the handle to the network

fn payload_builder(&self) -> &Self::PayloadBuilder

Returns the handle to the payload builder service.

fn provider(&self) -> &Self::Provider

Returns the provider of the node.

fn task_executor(&self) -> &TaskExecutor

Returns handle to runtime.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§