pub trait NodeImplementation<TYPES>: Send + Sync + Clone + Eq + Hash + 'static + Serialize + for<'de> Deserialize<'de>
where TYPES: NodeType,
{ type Network: ConnectedNetwork<<TYPES as NodeType>::SignatureKey>; type Storage: Storage<TYPES>; type AuctionResultsProvider: AuctionResultsProvider<TYPES>; }
Expand description

Node implementation aggregate trait

This trait exists to collect multiple behavior implementations into one type, to allow HotShot to avoid annoying numbers of type arguments and type patching.

It is recommended you implement this trait on a zero sized type, as HotShotdoes not actually store or keep a reference to any value implementing this trait.

Required Associated Types§


type Network: ConnectedNetwork<<TYPES as NodeType>::SignatureKey>

The underlying network type


type Storage: Storage<TYPES>

Storage for DA layer interactions


type AuctionResultsProvider: AuctionResultsProvider<TYPES>

The auction results type for Solver interactions

Object Safety§

This trait is not object safe.