Struct sc_network::config::Params[][src]

pub struct Params<B: BlockT, H: ExHashT> {
    pub role: Role,
    pub executor: Option<Box<dyn Fn(Pin<Box<dyn Future<Output = ()> + Send>>) + Send>>,
    pub transactions_handler_executor: Box<dyn Fn(Pin<Box<dyn Future<Output = ()> + Send>>) + Send>,
    pub network_config: NetworkConfiguration,
    pub chain: Arc<dyn Client<B>>,
    pub on_demand: Option<Arc<OnDemand<B>>>,
    pub transaction_pool: Arc<dyn TransactionPool<H, B>>,
    pub protocol_id: ProtocolId,
    pub import_queue: Box<dyn ImportQueue<B>>,
    pub block_announce_validator: Box<dyn BlockAnnounceValidator<B> + Send>,
    pub metrics_registry: Option<Registry>,
    pub block_request_protocol_config: RequestResponseConfig,
    pub light_client_request_protocol_config: RequestResponseConfig,
}

Network initialization parameters.

Fields

role: Role

Assigned role for our node (full, light, …).

executor: Option<Box<dyn Fn(Pin<Box<dyn Future<Output = ()> + Send>>) + Send>>

How to spawn background tasks. If you pass None, then a threads pool will be used by default.

transactions_handler_executor: Box<dyn Fn(Pin<Box<dyn Future<Output = ()> + Send>>) + Send>

How to spawn the background task dedicated to the transactions handler.

network_config: NetworkConfiguration

Network layer configuration.

chain: Arc<dyn Client<B>>

Client that contains the blockchain.

on_demand: Option<Arc<OnDemand<B>>>

The OnDemand object acts as a “receiver” for block data requests from the client. If Some, the network worker will process these requests and answer them. Normally used only for light clients.

transaction_pool: Arc<dyn TransactionPool<H, B>>

Pool of transactions.

The network worker will fetch transactions from this object in order to propagate them on the network.

protocol_id: ProtocolId

Name of the protocol to use on the wire. Should be different for each chain.

import_queue: Box<dyn ImportQueue<B>>

Import queue to use.

The import queue is the component that verifies that blocks received from other nodes are valid.

block_announce_validator: Box<dyn BlockAnnounceValidator<B> + Send>

Type to check incoming block announcements.

metrics_registry: Option<Registry>

Registry for recording prometheus metrics to.

block_request_protocol_config: RequestResponseConfig

Request response configuration for the block request protocol.

RequestResponseConfig [name] is used to tag outgoing block requests with the correct protocol name. In addition all of RequestResponseConfig is used to handle incoming block requests, if enabled.

Can be constructed either via crate::block_request_handler::generate_protocol_config allowing outgoing but not incoming requests, or constructed via crate::block_request_handler::BlockRequestHandler::new allowing both outgoing and incoming requests.

light_client_request_protocol_config: RequestResponseConfig

Request response configuration for the light client request protocol.

Can be constructed either via crate::light_client_requests::generate_protocol_config allowing outgoing but not incoming requests, or constructed via crate::light_client_requests::handler::LightClientRequestHandler::new allowing both outgoing and incoming requests.

Auto Trait Implementations

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

impl<B, H> Send for Params<B, H>

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

impl<B, H> Unpin for Params<B, H>

impl<B, H> !UnwindSafe for Params<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> Instrument for T[src]

impl<T> Instrument for T[src]

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

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

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

Get a reference to the inner from the outer.

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

Get a mutable reference to the inner from the outer.

impl<T> Pointable for T

type Init = T

The type for initializers.

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
    T: Bounded,
    S: TryInto<T>, 
[src]

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

impl<T> WithSubscriber for T[src]