Trait FullNodeComponents
pub trait FullNodeComponents:
FullNodeTypes
+ Clone
+ 'static {
type Pool: TransactionPool + Unpin
where <Self::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <<Self::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>;
type Evm: ConfigureEvm<Header = <<Self::Types as NodeTypes>::Primitives as NodePrimitives>::BlockHeader, Transaction = <<Self::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>;
type Executor: BlockExecutorProvider<Primitives = <Self::Types as NodeTypes>::Primitives>;
type Consensus: FullConsensus<<Self::Types as NodeTypes>::Primitives> + Clone + Unpin + 'static;
type Network: FullNetwork;
type PayloadBuilder: PayloadBuilder<PayloadType = <Self::Types as NodeTypesWithEngine>::Engine> + 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
where
<Self::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <<Self::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>
type Pool: TransactionPool + Unpin where <Self::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <<Self::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>
The transaction pool of the node.
type Evm: ConfigureEvm<Header = <<Self::Types as NodeTypes>::Primitives as NodePrimitives>::BlockHeader, Transaction = <<Self::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>
type Evm: ConfigureEvm<Header = <<Self::Types as NodeTypes>::Primitives as NodePrimitives>::BlockHeader, Transaction = <<Self::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>
The node’s EVM configuration, defining settings for the Ethereum Virtual Machine.
type Executor: BlockExecutorProvider<Primitives = <Self::Types as NodeTypes>::Primitives>
type Executor: BlockExecutorProvider<Primitives = <Self::Types as NodeTypes>::Primitives>
The type that knows how to execute blocks.
type Consensus: FullConsensus<<Self::Types as NodeTypes>::Primitives> + Clone + Unpin + 'static
type Consensus: FullConsensus<<Self::Types as NodeTypes>::Primitives> + Clone + Unpin + 'static
The consensus type of the node.
type Network: FullNetwork
type Network: FullNetwork
Network API.
type PayloadBuilder: PayloadBuilder<PayloadType = <Self::Types as NodeTypesWithEngine>::Engine> + Clone
type PayloadBuilder: PayloadBuilder<PayloadType = <Self::Types as NodeTypesWithEngine>::Engine> + Clone
Builds new blocks.
Required Methods§
fn evm_config(&self) -> &Self::Evm
fn evm_config(&self) -> &Self::Evm
Returns the node’s evm config.
fn block_executor(&self) -> &Self::Executor
fn block_executor(&self) -> &Self::Executor
Returns the node’s executor type.
fn payload_builder(&self) -> &Self::PayloadBuilder
fn payload_builder(&self) -> &Self::PayloadBuilder
Returns the handle to the payload builder service.
fn task_executor(&self) -> &TaskExecutor
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.