pub(crate) type ConsensusNode<N, P> = Node<N, P>;
pub(crate) struct ConsensusNode<N, P>(pub(crate) PhantomData<fn(&N, &P)>);
0: PhantomData<fn(&N, &P)>