Enum phron_finality::sync::data::NetworkData   
source · pub enum NetworkData<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,{
    StateBroadcast(State<J>),
    StateBroadcastResponse(J::Unverified, Option<J::Unverified>),
    Request(Request<J>),
    RequestResponse(Vec<ResponseItem<B, J>>),
    ChainExtensionRequest(State<J>),
}Expand description
Data to be sent over the network, current version.
Variants§
StateBroadcast(State<J>)
A periodic state broadcast, so that neighbouring nodes can request what they are missing, send what we are missing, and sometimes just use the justifications to update their own state.
StateBroadcastResponse(J::Unverified, Option<J::Unverified>)
Response to a state broadcast. Contains at most two justifications that the peer will understand.
Request(Request<J>)
An explicit request for data, potentially a lot of it.
RequestResponse(Vec<ResponseItem<B, J>>)
Response to the request for data.
ChainExtensionRequest(State<J>)
A request for a chain extension.
Trait Implementations§
source§impl<B, J> Clone for NetworkData<B, J>where
    J: Justification + Clone,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Clone + Block,
    J::Unverified: Clone,
 
impl<B, J> Clone for NetworkData<B, J>where
    J: Justification + Clone,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Clone + Block,
    J::Unverified: Clone,
source§fn clone(&self) -> NetworkData<B, J>
 
fn clone(&self) -> NetworkData<B, J>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moresource§impl<B, J> Debug for NetworkData<B, J>where
    J: Justification + Debug,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Debug + Block,
    J::Unverified: Debug,
 
impl<B, J> Debug for NetworkData<B, J>where
    J: Justification + Debug,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Debug + Block,
    J::Unverified: Debug,
source§impl<B, J> Decode for NetworkData<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,
    State<J>: Decode,
    J::Unverified: Decode,
    Option<J::Unverified>: Decode,
    Request<J>: Decode,
    Vec<ResponseItem<B, J>>: Decode,
 
impl<B, J> Decode for NetworkData<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,
    State<J>: Decode,
    J::Unverified: Decode,
    Option<J::Unverified>: Decode,
    Request<J>: Decode,
    Vec<ResponseItem<B, J>>: Decode,
source§fn decode<__CodecInputEdqy: Input>(
    __codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
 
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy ) -> Result<Self, Error>
Attempt to deserialise the value from input.
§fn decode_into<I>(
    input: &mut I,
    dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
    I: Input,
 
fn decode_into<I>(
    input: &mut I,
    dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
    I: Input,
Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
§fn skip<I>(input: &mut I) -> Result<(), Error>where
    I: Input,
 
fn skip<I>(input: &mut I) -> Result<(), Error>where
    I: Input,
Attempt to skip the encoded value from input. Read more
§fn encoded_fixed_size() -> Option<usize>
 
fn encoded_fixed_size() -> Option<usize>
Returns the fixed encoded size of the type. Read more
source§impl<B, J> Encode for NetworkData<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,
    State<J>: Encode,
    J::Unverified: Encode,
    Option<J::Unverified>: Encode,
    Request<J>: Encode,
    Vec<ResponseItem<B, J>>: Encode,
 
impl<B, J> Encode for NetworkData<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,
    State<J>: Encode,
    J::Unverified: Encode,
    Option<J::Unverified>: Encode,
    Request<J>: Encode,
    Vec<ResponseItem<B, J>>: Encode,
source§fn size_hint(&self) -> usize
 
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
    &self,
    __codec_dest_edqy: &mut __CodecOutputEdqy
)
 
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy )
Convert self to a slice and append it to the destination.
§fn using_encoded<R, F>(&self, f: F) -> R
 
fn using_encoded<R, F>(&self, f: F) -> R
Convert self to a slice and then invoke the given closure with it.
§fn encoded_size(&self) -> usize
 
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
source§impl<B, J> From<NetworkData<B, J>> for NetworkDataV2<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,
 
impl<B, J> From<NetworkData<B, J>> for NetworkDataV2<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,
source§fn from(data: NetworkData<B, J>) -> Self
 
fn from(data: NetworkData<B, J>) -> Self
Converts to this type from the input type.
source§impl<B, J> From<NetworkDataV2<B, J>> for NetworkData<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,
 
impl<B, J> From<NetworkDataV2<B, J>> for NetworkData<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,
source§fn from(data: NetworkDataV2<B, J>) -> Self
 
fn from(data: NetworkDataV2<B, J>) -> Self
Converts to this type from the input type.
source§impl<B, J, N> Network<NetworkData<B, J>> for VersionWrapper<B, J, N>where
    N: GossipNetwork<VersionedNetworkData<B, J>>,
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified>,
 
impl<B, J, N> Network<NetworkData<B, J>> for VersionWrapper<B, J, N>where
    N: GossipNetwork<VersionedNetworkData<B, J>>,
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified>,
source§fn next<'life0, 'async_trait>(
    &'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<(NetworkData<B, J>, Self::PeerId), Self::Error>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn next<'life0, 'async_trait>(
    &'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<(NetworkData<B, J>, Self::PeerId), Self::Error>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
type Error = <N as Network<VersionedNetworkData<B, J>>>::Error
type PeerId = <N as Network<VersionedNetworkData<B, J>>>::PeerId
source§fn send_to(
    &mut self,
    data: NetworkData<B, J>,
    peer_id: Self::PeerId
) -> Result<(), Self::Error>
 
fn send_to( &mut self, data: NetworkData<B, J>, peer_id: Self::PeerId ) -> Result<(), Self::Error>
Attempt to send data to a peer. Might silently fail if we are not connected to them.
source§fn send_to_random(
    &mut self,
    data: NetworkData<B, J>,
    peer_ids: HashSet<Self::PeerId>
) -> Result<(), Self::Error>
 
fn send_to_random( &mut self, data: NetworkData<B, J>, peer_ids: HashSet<Self::PeerId> ) -> Result<(), Self::Error>
Send data to a random peer, preferably from a list. It should send the data to a randomly
chosen peer from the provided list, but if it cannot (e.g. because it’s not connected) it
will send to a random available peer. No guarantees any peer gets it even if no errors are
returned, retry appropriately.
source§fn broadcast(&mut self, data: NetworkData<B, J>) -> Result<(), Self::Error>
 
fn broadcast(&mut self, data: NetworkData<B, J>) -> Result<(), Self::Error>
Broadcast data to all directly connected peers. Network-wide broadcasts have to be
implemented on top of this abstraction. Note that there might be no currently connected
peers, so there are no guarantees any single call sends anything even if no errors are
returned, retry appropriately.
impl<B, J> EncodeLike for NetworkData<B, J>where
    J: Justification,
    B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified> + Block,
    State<J>: Encode,
    J::Unverified: Encode,
    Option<J::Unverified>: Encode,
    Request<J>: Encode,
    Vec<ResponseItem<B, J>>: Encode,
Auto Trait Implementations§
impl<B, J> RefUnwindSafe for NetworkData<B, J>where
    B: RefUnwindSafe,
    <J as Justification>::Unverified: RefUnwindSafe,
    <<J as Justification>::Header as Header>::Unverified: RefUnwindSafe,
impl<B, J> Send for NetworkData<B, J>
impl<B, J> Sync for NetworkData<B, J>
impl<B, J> Unpin for NetworkData<B, J>where
    B: Unpin,
    <J as Justification>::Unverified: Unpin,
    <<J as Justification>::Header as Header>::Unverified: Unpin,
impl<B, J> UnwindSafe for NetworkData<B, J>where
    B: UnwindSafe,
    <J as Justification>::Unverified: UnwindSafe,
    <<J as Justification>::Header as Header>::Unverified: UnwindSafe,
Blanket Implementations§
§impl<T> AnySync for T
 
impl<T> AnySync for T
source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CheckedConversion for T
 
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
    Self: TryFrom<T>,
 
fn checked_from<T>(t: T) -> Option<Self>where
    Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
    Self: TryInto<T>,
 
fn checked_into<T>(self) -> Option<T>where
    Self: TryInto<T>,
§impl<T> DecodeAll for Twhere
    T: Decode,
 
impl<T> DecodeAll for Twhere
    T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
 
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Decode 
Self and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
    T: Decode,
 
impl<T> DecodeLimit for Twhere
    T: Decode,
§impl<T> Hashable for Twhere
    T: Codec,
 
impl<T> Hashable for Twhere
    T: Codec,
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
 
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IsType<T> for T
 
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
 
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> KeyedVec for Twhere
    T: Codec,
 
impl<T> KeyedVec for Twhere
    T: Codec,
§impl<T> Pointable for T
 
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
 
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
    Self: UniqueSaturatedFrom<T>,
 
fn saturated_from<T>(t: T) -> Selfwhere
    Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
    Self: UniqueSaturatedInto<T>,
 
fn saturated_into<T>(self) -> Twhere
    Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of 
T. Read more§impl<S, T> UncheckedInto<T> for Swhere
    T: UncheckedFrom<S>,
 
impl<S, T> UncheckedInto<T> for Swhere
    T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
 
fn unchecked_into(self) -> T
The counterpart to 
unchecked_from.§impl<T, S> UniqueSaturatedInto<T> for S
 
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
 
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of 
T.