Struct sc_network::NetworkService
source · Expand description
Substrate network service. Handles network IO and manages connectivity.
Implementations
sourceimpl<B: BlockT + 'static, H: ExHashT> NetworkService<B, H>
impl<B: BlockT + 'static, H: ExHashT> NetworkService<B, H>
sourcepub async fn network_state(&self) -> Result<NetworkState, ()>
pub async fn network_state(&self) -> Result<NetworkState, ()>
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.
Returns an error if the NetworkWorker
is no longer running.
Trait Implementations
sourceimpl<B: BlockT, H: ExHashT> JustificationSyncLink<B> for NetworkService<B, H>
impl<B: BlockT, H: ExHashT> JustificationSyncLink<B> for NetworkService<B, H>
sourcefn request_justification(&self, hash: &B::Hash, number: NumberFor<B>)
fn request_justification(&self, hash: &B::Hash, number: NumberFor<B>)
Request a justification for the given block from the network.
On success, the justification will be passed to the import queue that was part at initialization as part of the configuration.
sourcefn clear_justification_requests(&self)
fn clear_justification_requests(&self)
sourceimpl<B, H> NetworkBlock<<B as Block>::Hash, <<B as Block>::Header as Header>::Number> for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
impl<B, H> NetworkBlock<<B as Block>::Hash, <<B as Block>::Header as Header>::Number> for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
sourceimpl<B, H> NetworkDHTProvider for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
impl<B, H> NetworkDHTProvider for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
sourcefn get_value(&self, key: &KademliaKey)
fn get_value(&self, key: &KademliaKey)
Start getting a value from the DHT.
This will generate either a ValueFound
or a ValueNotFound
event and pass it as an
item on the NetworkWorker
stream.
sourcefn put_value(&self, key: KademliaKey, value: Vec<u8>)
fn put_value(&self, key: KademliaKey, value: Vec<u8>)
Start putting a value in the DHT.
This will generate either a ValuePut
or a ValuePutFailed
event and pass it as an
item on the NetworkWorker
stream.
sourceimpl<B, H> NetworkEventStream for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
impl<B, H> NetworkEventStream for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
sourceimpl<B, H> NetworkNotification for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
impl<B, H> NetworkNotification for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
sourcefn write_notification(
&self,
target: PeerId,
protocol: ProtocolName,
message: Vec<u8>
)
fn write_notification(
&self,
target: PeerId,
protocol: ProtocolName,
message: Vec<u8>
)
sourcefn notification_sender(
&self,
target: PeerId,
protocol: ProtocolName
) -> Result<Box<dyn NotificationSenderT>, NotificationSenderError>
fn notification_sender(
&self,
target: PeerId,
protocol: ProtocolName
) -> Result<Box<dyn NotificationSenderT>, NotificationSenderError>
NotificationSender
for a connected peer, if it exists. Read moresourceimpl<B, H> NetworkPeers for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
impl<B, H> NetworkPeers for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
sourcefn add_known_address(&self, peer_id: PeerId, addr: Multiaddr)
fn add_known_address(&self, peer_id: PeerId, addr: Multiaddr)
sourcefn report_peer(&self, who: PeerId, cost_benefit: ReputationChange)
fn report_peer(&self, who: PeerId, cost_benefit: ReputationChange)
sourcefn disconnect_peer(&self, who: PeerId, protocol: ProtocolName)
fn disconnect_peer(&self, who: PeerId, protocol: ProtocolName)
sourcefn accept_unreserved_peers(&self)
fn accept_unreserved_peers(&self)
sourcefn deny_unreserved_peers(&self)
fn deny_unreserved_peers(&self)
sourcefn add_reserved_peer(&self, peer: MultiaddrWithPeerId) -> Result<(), String>
fn add_reserved_peer(&self, peer: MultiaddrWithPeerId) -> Result<(), String>
sourcefn remove_reserved_peer(&self, peer_id: PeerId)
fn remove_reserved_peer(&self, peer_id: PeerId)
PeerId
from the list of reserved peers.sourcefn set_reserved_peers(
&self,
protocol: ProtocolName,
peers: HashSet<Multiaddr>
) -> Result<(), String>
fn set_reserved_peers(
&self,
protocol: ProtocolName,
peers: HashSet<Multiaddr>
) -> Result<(), String>
sourcefn add_peers_to_reserved_set(
&self,
protocol: ProtocolName,
peers: HashSet<Multiaddr>
) -> Result<(), String>
fn add_peers_to_reserved_set(
&self,
protocol: ProtocolName,
peers: HashSet<Multiaddr>
) -> Result<(), String>
sourcefn remove_peers_from_reserved_set(
&self,
protocol: ProtocolName,
peers: Vec<PeerId>
)
fn remove_peers_from_reserved_set(
&self,
protocol: ProtocolName,
peers: Vec<PeerId>
)
sourcefn add_to_peers_set(
&self,
protocol: ProtocolName,
peers: HashSet<Multiaddr>
) -> Result<(), String>
fn add_to_peers_set(
&self,
protocol: ProtocolName,
peers: HashSet<Multiaddr>
) -> Result<(), String>
sourcefn remove_from_peers_set(&self, protocol: ProtocolName, peers: Vec<PeerId>)
fn remove_from_peers_set(&self, protocol: ProtocolName, peers: Vec<PeerId>)
sourcefn sync_num_connected(&self) -> usize
fn sync_num_connected(&self) -> usize
sourceimpl<B, H> NetworkRequest for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
impl<B, H> NetworkRequest for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
sourcefn request<'life0, 'async_trait>(
&'life0 self,
target: PeerId,
protocol: ProtocolName,
request: Vec<u8>,
connect: IfDisconnected
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, RequestFailure>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn request<'life0, 'async_trait>(
&'life0 self,
target: PeerId,
protocol: ProtocolName,
request: Vec<u8>,
connect: IfDisconnected
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, RequestFailure>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
sourcefn start_request(
&self,
target: PeerId,
protocol: ProtocolName,
request: Vec<u8>,
tx: Sender<Result<Vec<u8>, RequestFailure>>,
connect: IfDisconnected
)
fn start_request(
&self,
target: PeerId,
protocol: ProtocolName,
request: Vec<u8>,
tx: Sender<Result<Vec<u8>, RequestFailure>>,
connect: IfDisconnected
)
request
which starts a request whose response is delivered on a provided
channel. Read moresourceimpl<B, H> NetworkSigner for NetworkService<B, H>where
B: Block,
H: ExHashT,
impl<B, H> NetworkSigner for NetworkService<B, H>where
B: Block,
H: ExHashT,
sourcefn sign_with_local_identity(
&self,
msg: impl AsRef<[u8]>
) -> Result<Signature, SigningError>
fn sign_with_local_identity(
&self,
msg: impl AsRef<[u8]>
) -> Result<Signature, SigningError>
KeyPair
that defines the local PeerId
.sourceimpl<B, H> NetworkStateInfo for NetworkService<B, H>where
B: Block,
H: ExHashT,
impl<B, H> NetworkStateInfo for NetworkService<B, H>where
B: Block,
H: ExHashT,
sourcefn external_addresses(&self) -> Vec<Multiaddr> ⓘ
fn external_addresses(&self) -> Vec<Multiaddr> ⓘ
Returns the local external addresses.
sourcefn local_peer_id(&self) -> PeerId
fn local_peer_id(&self) -> PeerId
Returns the local Peer ID.
sourceimpl<B, H> NetworkStatusProvider<B> for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
impl<B, H> NetworkStatusProvider<B> for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
sourceimpl<B, H> NetworkSyncForkRequest<<B as Block>::Hash, <<B as Block>::Header as Header>::Number> for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
impl<B, H> NetworkSyncForkRequest<<B as Block>::Hash, <<B as Block>::Header as Header>::Number> for NetworkService<B, H>where
B: BlockT + 'static,
H: ExHashT,
sourcefn set_sync_fork_request(
&self,
peers: Vec<PeerId>,
hash: B::Hash,
number: NumberFor<B>
)
fn set_sync_fork_request(
&self,
peers: Vec<PeerId>,
hash: B::Hash,
number: NumberFor<B>
)
Configure an explicit fork sync request.
Note that this function should not be used for recent blocks.
Sync should be able to download all the recent forks normally.
set_sync_fork_request
should only be used if external code detects that there’s
a stale fork missing.
Passing empty peers
set effectively removes the sync request.
sourceimpl<B: BlockT + 'static, H: ExHashT> SyncOracle for NetworkService<B, H>
impl<B: BlockT + 'static, H: ExHashT> SyncOracle for NetworkService<B, H>
sourcefn is_major_syncing(&self) -> bool
fn is_major_syncing(&self) -> bool
sourcefn is_offline(&self) -> bool
fn is_offline(&self) -> bool
Auto Trait Implementations
impl<B, H> !RefUnwindSafe for NetworkService<B, H>
impl<B, H> Send for NetworkService<B, H>
impl<B, H> Sync for NetworkService<B, H>
impl<B, H> Unpin for NetworkService<B, H>where
H: Unpin,
impl<B, H> !UnwindSafe for NetworkService<B, H>
Blanket Implementations
impl<T> Any for Twhere
T: Any,
impl<T> Any for Twhere
T: Any,
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> CheckedConversion for T
impl<T> CheckedConversion for T
sourcefn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
sourcefn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read morefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read morefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read morefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read moresourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
sourcefn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
sourcefn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T
. Read moresourceimpl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
sourcefn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.sourceimpl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
sourcefn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.