Trait NodeTypes
pub trait NodeTypes:
Clone
+ Debug
+ 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;
type Payload: PayloadTypes
where <Self::Payload as PayloadTypes>::BuiltPayload: BuiltPayload<Primitives = Self::Primitives>;
}
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
type Primitives: NodePrimitives
The node’s primitive types, defining basic operations and structures.
type ChainSpec: EthChainSpec<Header = <Self::Primitives as NodePrimitives>::BlockHeader>
type ChainSpec: EthChainSpec<Header = <Self::Primitives as NodePrimitives>::BlockHeader>
The type used for configuration of the EVM.
type StateCommitment: StateCommitment
type StateCommitment: StateCommitment
The type used to perform state commitment operations.
type Storage: Default + Send + Sync + Unpin + Debug + 'static
type Storage: Default + Send + Sync + Unpin + Debug + 'static
The type responsible for writing chain primitives to storage.
type Payload: PayloadTypes
where
<Self::Payload as PayloadTypes>::BuiltPayload: BuiltPayload<Primitives = Self::Primitives>
type Payload: PayloadTypes where <Self::Payload as PayloadTypes>::BuiltPayload: BuiltPayload<Primitives = Self::Primitives>
The node’s engine types, defining the interaction with the consensus engine.
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.