reth_node_api

Trait NodeTypes

pub trait NodeTypes:
    Send
    + Sync
    + Unpin
    + 'static {
    type Primitives: NodePrimitives;
    type ChainSpec: EthChainSpec<Header = <Self::Primitives as NodePrimitives>::BlockHeader>;
    type StateCommitment: StateCommitment;
    type Storage: Default + Send + Sync + Unpin + Debug + 'static;
}
Expand description

The type that configures the essential types of an Ethereum-like node.

This includes the primitive types of a node and chain specification.

This trait is intended to be stateless and only define the types of the node.

Required Associated Types§

type Primitives: NodePrimitives

The node’s primitive types, defining basic operations and structures.

type ChainSpec: EthChainSpec<Header = <Self::Primitives as NodePrimitives>::BlockHeader>

The type used for configuration of the EVM.

type StateCommitment: StateCommitment

The type used to perform state commitment operations.

type Storage: Default + Send + Sync + Unpin + Debug + 'static

The type responsible for writing chain primitives to storage.

Implementors§

§

impl<P, C, SC, S> NodeTypes for AnyNodeTypes<P, C, SC, S>
where P: NodePrimitives + Send + Sync + Unpin + 'static, C: EthChainSpec<Header = <P as NodePrimitives>::BlockHeader> + 'static, SC: StateCommitment, S: Default + Send + Sync + Unpin + Debug + 'static,

§

type Primitives = P

§

type ChainSpec = C

§

type StateCommitment = SC

§

type Storage = S

§

impl<P, E, C, SC, S> NodeTypes for AnyNodeTypesWithEngine<P, E, C, SC, S>
where P: NodePrimitives + Send + Sync + Unpin + 'static, E: EngineTypes + Send + Sync + Unpin, C: EthChainSpec<Header = <P as NodePrimitives>::BlockHeader> + 'static, SC: StateCommitment, S: Default + Send + Sync + Unpin + Debug + 'static,

§

type Primitives = P

§

type ChainSpec = C

§

type StateCommitment = SC

§

type Storage = S

§

impl<Types, DB> NodeTypes for NodeTypesWithDBAdapter<Types, DB>
where Types: NodeTypes, DB: Send + Sync + Unpin + 'static,

§

type Primitives = <Types as NodeTypes>::Primitives

§

type ChainSpec = <Types as NodeTypes>::ChainSpec

§

type StateCommitment = <Types as NodeTypes>::StateCommitment

§

type Storage = <Types as NodeTypes>::Storage