[][src]Struct sc_network::NetworkWorker

#[must_use =
  "The NetworkWorker must be polled in order for the network to work"]pub struct NetworkWorker<B: BlockT + 'static, H: ExHashT> { /* fields omitted */ }

Main network worker. Must be polled in order for the network to advance.

You are encouraged to poll this in a separate background thread or task.

Implementations

impl<B: BlockT + 'static, H: ExHashT> NetworkWorker<B, H>[src]

pub fn new(params: Params<B, H>) -> Result<NetworkWorker<B, H>, Error>[src]

Creates the network service.

Returns a NetworkWorker that implements Future and must be regularly polled in order for the network processing to advance. From it, you can extract a NetworkService using worker.service(). The NetworkService can be shared through the codebase.

pub fn average_download_per_sec(&self) -> u64[src]

Returns the downloaded bytes per second averaged over the past few seconds.

pub fn average_upload_per_sec(&self) -> u64[src]

Returns the uploaded bytes per second averaged over the past few seconds.

pub fn num_connected_peers(&self) -> usize[src]

Returns the number of peers we're connected to.

pub fn num_active_peers(&self) -> usize[src]

Returns the number of peers we're connected to and that are being queried.

pub fn sync_state(&self) -> SyncState[src]

Current global sync state.

pub fn best_seen_block(&self) -> Option<NumberFor<B>>[src]

Target sync block number.

pub fn num_sync_peers(&self) -> u32[src]

Number of peers participating in syncing.

pub fn num_queued_blocks(&self) -> u32[src]

Number of blocks in the import queue.

pub fn num_downloaded_blocks(&self) -> usize[src]

Returns the number of downloaded blocks.

pub fn num_sync_requests(&self) -> usize[src]

Number of active sync requests.

pub fn add_known_address(&mut self, peer_id: PeerId, addr: Multiaddr)[src]

Adds an address for a node.

pub fn service(&self) -> &Arc<NetworkService<B, H>>[src]

Return a NetworkService that can be shared through the code base and can be used to manipulate the worker.

pub fn on_block_finalized(&mut self, hash: B::Hash, header: B::Header)[src]

You must call this when a new block is finalized by the client.

pub fn update_chain(&mut self)[src]

This should be called when blocks are added to the chain by something other than the import queue. Currently this is only useful for tests.

pub fn local_peer_id(&self) -> &PeerId[src]

Returns the local PeerId.

pub fn listen_addresses(&self) -> impl Iterator<Item = &Multiaddr>[src]

Returns the list of addresses we are listening on.

Does NOT include a trailing /p2p/ with our PeerId.

pub fn network_state(&mut self) -> NetworkState[src]

Get network state.

Note: Use this only for debugging. This API is unstable. There are warnings literally everywhere about this. Please don't use this function to retrieve actual information.

pub fn peers_debug_info(&mut self) -> Vec<(PeerId, PeerInfo<B>)>[src]

Get currently connected peers.

pub fn remove_reserved_peer(&self, peer: PeerId)[src]

Removes a PeerId from the list of reserved peers.

pub fn add_reserved_peer(&self, peer: String) -> Result<(), String>[src]

Adds a PeerId and its address as reserved. The string should encode the address and peer ID of the remote node.

Trait Implementations

impl<B: BlockT + 'static, H: ExHashT> Future for NetworkWorker<B, H>[src]

type Output = ()

The type of value produced on completion.

impl<B: BlockT + 'static, H: ExHashT> Unpin for NetworkWorker<B, H>[src]

Auto Trait Implementations

impl<B, H> !RefUnwindSafe for NetworkWorker<B, H>

impl<B, H> Send for NetworkWorker<B, H> where
    <B as Block>::Extrinsic: Send,
    <B as Block>::Hash: Send,
    <B as Block>::Header: Header + Send,
    <<B as Block>::Header as Header>::Number: Send

impl<B, H> !Sync for NetworkWorker<B, H>

impl<B, H> !UnwindSafe for NetworkWorker<B, H>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedConversion for T[src]

impl<T> From<T> for T[src]

impl<T> FutureExt for T where
    T: Future + ?Sized
[src]

impl<T> FutureExt for T where
    T: Future + ?Sized

impl<T> FutureExt for T where
    T: Future + ?Sized

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IntoFuture for T where
    T: Future

type Output = <T as Future>::Output

The type of value produced on completion.

type Future = T

Which kind of future are we turning this into?

impl<T, Outer> IsWrappedBy<Outer> for T where
    Outer: AsRef<T> + AsMut<T> + From<T>,
    T: From<Outer>, 
[src]

fn from_ref(outer: &Outer) -> &T[src]

Get a reference to the inner from the outer.

fn from_mut(outer: &mut Outer) -> &mut T[src]

Get a mutable reference to the inner from the outer.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SaturatedConversion for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 
[src]

impl<T, S> UniqueSaturatedInto<T> for S where
    S: TryInto<T>,
    T: Bounded
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,