Trait snarkos_node_router::Inbound
source · pub trait Inbound<N: Network>: Reading + Outbound<N> {
const MAXIMUM_PUZZLE_REQUESTS_PER_INTERVAL: usize = 5usize;
const PING_SLEEP_IN_SECS: u64 = 9u64;
// Required methods
fn block_request(&self, peer_ip: SocketAddr, _message: BlockRequest) -> bool;
fn block_response(
&self,
peer_ip: SocketAddr,
_blocks: Vec<Block<N>>
) -> bool;
fn pong(&self, peer_ip: SocketAddr, _message: Pong) -> bool;
fn puzzle_request(&self, peer_ip: SocketAddr) -> bool;
fn puzzle_response(
&self,
peer_ip: SocketAddr,
_challenge: EpochChallenge<N>,
_header: Header<N>
) -> bool;
fn unconfirmed_solution<'life0, 'async_trait>(
&'life0 self,
peer_ip: SocketAddr,
serialized: UnconfirmedSolution<N>,
solution: ProverSolution<N>
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn unconfirmed_transaction(
&self,
peer_ip: SocketAddr,
serialized: UnconfirmedTransaction<N>,
_transaction: Transaction<N>
) -> bool;
// Provided methods
fn inbound<'life0, 'async_trait>(
&'life0 self,
peer_addr: SocketAddr,
message: Message<N>
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait { ... }
fn beacon_propose(
&self,
_peer_ip: SocketAddr,
_serialized: BeaconPropose<N>,
_block: Block<N>
) -> bool { ... }
fn peer_request(&self, peer_ip: SocketAddr) -> bool { ... }
fn peer_response(&self, _peer_ip: SocketAddr, peers: &[SocketAddr]) -> bool { ... }
fn ping(&self, peer_ip: SocketAddr, message: Ping<N>) -> bool { ... }
}
Provided Associated Constants§
sourceconst MAXIMUM_PUZZLE_REQUESTS_PER_INTERVAL: usize = 5usize
const MAXIMUM_PUZZLE_REQUESTS_PER_INTERVAL: usize = 5usize
The maximum number of puzzle requests per interval.
sourceconst PING_SLEEP_IN_SECS: u64 = 9u64
const PING_SLEEP_IN_SECS: u64 = 9u64
The duration in seconds to sleep in between ping requests with a connected peer.
Required Methods§
sourcefn block_request(&self, peer_ip: SocketAddr, _message: BlockRequest) -> bool
fn block_request(&self, peer_ip: SocketAddr, _message: BlockRequest) -> bool
Handles a BlockRequest
message.
sourcefn block_response(&self, peer_ip: SocketAddr, _blocks: Vec<Block<N>>) -> bool
fn block_response(&self, peer_ip: SocketAddr, _blocks: Vec<Block<N>>) -> bool
Handles a BlockResponse
message.
sourcefn pong(&self, peer_ip: SocketAddr, _message: Pong) -> bool
fn pong(&self, peer_ip: SocketAddr, _message: Pong) -> bool
Sleeps for a period and then sends a Ping
message to the peer.
sourcefn puzzle_request(&self, peer_ip: SocketAddr) -> bool
fn puzzle_request(&self, peer_ip: SocketAddr) -> bool
Handles a PuzzleRequest
message.
sourcefn puzzle_response(
&self,
peer_ip: SocketAddr,
_challenge: EpochChallenge<N>,
_header: Header<N>
) -> bool
fn puzzle_response( &self, peer_ip: SocketAddr, _challenge: EpochChallenge<N>, _header: Header<N> ) -> bool
Handles a PuzzleResponse
message.
sourcefn unconfirmed_solution<'life0, 'async_trait>(
&'life0 self,
peer_ip: SocketAddr,
serialized: UnconfirmedSolution<N>,
solution: ProverSolution<N>
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn unconfirmed_solution<'life0, 'async_trait>( &'life0 self, peer_ip: SocketAddr, serialized: UnconfirmedSolution<N>, solution: ProverSolution<N> ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Handles an UnconfirmedSolution
message.
sourcefn unconfirmed_transaction(
&self,
peer_ip: SocketAddr,
serialized: UnconfirmedTransaction<N>,
_transaction: Transaction<N>
) -> bool
fn unconfirmed_transaction( &self, peer_ip: SocketAddr, serialized: UnconfirmedTransaction<N>, _transaction: Transaction<N> ) -> bool
Handles an UnconfirmedTransaction
message.
Provided Methods§
sourcefn inbound<'life0, 'async_trait>(
&'life0 self,
peer_addr: SocketAddr,
message: Message<N>
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn inbound<'life0, 'async_trait>( &'life0 self, peer_addr: SocketAddr, message: Message<N> ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where Self: Sync + 'async_trait, 'life0: 'async_trait,
Handles the inbound message from the peer.
sourcefn beacon_propose(
&self,
_peer_ip: SocketAddr,
_serialized: BeaconPropose<N>,
_block: Block<N>
) -> bool
fn beacon_propose( &self, _peer_ip: SocketAddr, _serialized: BeaconPropose<N>, _block: Block<N> ) -> bool
Handles a BeaconPropose
message.
sourcefn peer_request(&self, peer_ip: SocketAddr) -> bool
fn peer_request(&self, peer_ip: SocketAddr) -> bool
Handles a PeerRequest
message.
sourcefn peer_response(&self, _peer_ip: SocketAddr, peers: &[SocketAddr]) -> bool
fn peer_response(&self, _peer_ip: SocketAddr, peers: &[SocketAddr]) -> bool
Handles a PeerResponse
message.