mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-18 07:11:03 +00:00
Use intra doc in network-gossip (#10501)
* Use intra doc in network-gossip So that we could jump to the definition easily. * cargo +nightly fmt --all
This commit is contained in:
@@ -39,7 +39,7 @@ use std::{
|
|||||||
task::{Context, Poll},
|
task::{Context, Poll},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Wraps around an implementation of the `Network` crate and provides gossiping capabilities on
|
/// Wraps around an implementation of the [`Network`] trait and provides gossiping capabilities on
|
||||||
/// top of it.
|
/// top of it.
|
||||||
pub struct GossipEngine<B: BlockT> {
|
pub struct GossipEngine<B: BlockT> {
|
||||||
state_machine: ConsensusGossip<B>,
|
state_machine: ConsensusGossip<B>,
|
||||||
@@ -56,7 +56,7 @@ pub struct GossipEngine<B: BlockT> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// A gossip engine receives messages from the network via the `network_event_stream` and forwards
|
/// A gossip engine receives messages from the network via the `network_event_stream` and forwards
|
||||||
/// them to upper layers via the `message sinks`. In the scenario where messages have been received
|
/// them to upper layers via the `message_sinks`. In the scenario where messages have been received
|
||||||
/// from the network but a subscribed message sink is not yet ready to receive the messages, the
|
/// from the network but a subscribed message sink is not yet ready to receive the messages, the
|
||||||
/// messages are buffered. To model this process a gossip engine can be in two states.
|
/// messages are buffered. To model this process a gossip engine can be in two states.
|
||||||
enum ForwardingState<B: BlockT> {
|
enum ForwardingState<B: BlockT> {
|
||||||
|
|||||||
@@ -26,32 +26,32 @@
|
|||||||
//! message, assuming it is valid.
|
//! message, assuming it is valid.
|
||||||
//!
|
//!
|
||||||
//! Topics are a single 32-byte tag associated with a message, used to group those messages
|
//! Topics are a single 32-byte tag associated with a message, used to group those messages
|
||||||
//! in an opaque way. Consensus code can invoke `broadcast_topic` to attempt to send all messages
|
//! in an opaque way. Consensus code can invoke [`ValidatorContext::broadcast_topic`] to
|
||||||
//! under a single topic to all peers who don't have them yet, and `send_topic` to
|
//! attempt to send all messages under a single topic to all peers who don't have them yet, and
|
||||||
//! send all messages under a single topic to a specific peer.
|
//! [`ValidatorContext::send_topic`] to send all messages under a single topic to a specific peer.
|
||||||
//!
|
//!
|
||||||
//! # Usage
|
//! # Usage
|
||||||
//!
|
//!
|
||||||
//! - Implement the `Network` trait, representing the low-level networking primitives. It is already
|
//! - Implement the [`Network`] trait, representing the low-level networking primitives. It is
|
||||||
//! implemented on `sc_network::NetworkService`.
|
//! already implemented on `sc_network::NetworkService`.
|
||||||
//! - Implement the `Validator` trait. See the section below.
|
//! - Implement the [`Validator`] trait. See the section below.
|
||||||
//! - Decide on a protocol name. Each gossiping protocol should have a different one.
|
//! - Decide on a protocol name. Each gossiping protocol should have a different one.
|
||||||
//! - Build a `GossipEngine` using these three elements.
|
//! - Build a [`GossipEngine`] using these three elements.
|
||||||
//! - Use the methods of the `GossipEngine` in order to send out messages and receive incoming
|
//! - Use the methods of the [`GossipEngine`] in order to send out messages and receive incoming
|
||||||
//! messages.
|
//! messages.
|
||||||
//!
|
//!
|
||||||
//! The `GossipEngine` will automatically use `Network::add_set_reserved` and
|
//! The [`GossipEngine`] will automatically use [`Network::add_set_reserved`] and
|
||||||
//! `Network::remove_set_reserved` to maintain a set of peers equal to the set of peers the
|
//! [`Network::remove_set_reserved`] to maintain a set of peers equal to the set of peers the
|
||||||
//! node is syncing from. See the documentation of `sc-network` for more explanations about the
|
//! node is syncing from. See the documentation of `sc-network` for more explanations about the
|
||||||
//! concepts of peer sets.
|
//! concepts of peer sets.
|
||||||
//!
|
//!
|
||||||
//! # What is a validator?
|
//! # What is a validator?
|
||||||
//!
|
//!
|
||||||
//! The primary role of a `Validator` is to process incoming messages from peers, and decide
|
//! The primary role of a [`Validator`] is to process incoming messages from peers, and decide
|
||||||
//! whether to discard them or process them. It also decides whether to re-broadcast the message.
|
//! whether to discard them or process them. It also decides whether to re-broadcast the message.
|
||||||
//!
|
//!
|
||||||
//! The secondary role of the `Validator` is to check if a message is allowed to be sent to a given
|
//! The secondary role of the [`Validator`] is to check if a message is allowed to be sent to a
|
||||||
//! peer. All messages, before being sent, will be checked against this filter.
|
//! given peer. All messages, before being sent, will be checked against this filter.
|
||||||
//! This enables the validator to use information it's aware of about connected peers to decide
|
//! This enables the validator to use information it's aware of about connected peers to decide
|
||||||
//! whether to send messages to them at any given moment in time - In particular, to wait until
|
//! whether to send messages to them at any given moment in time - In particular, to wait until
|
||||||
//! peers can accept and process the message before sending it.
|
//! peers can accept and process the message before sending it.
|
||||||
|
|||||||
Reference in New Issue
Block a user