Report when peer is clogged (#1528)

This commit is contained in:
Pierre Krieger
2019-01-23 14:30:20 +01:00
committed by Gav Wood
parent 28c37ef419
commit cd86643f33
7 changed files with 107 additions and 16 deletions
+12
View File
@@ -351,6 +351,18 @@ impl<B: BlockT, S: NetworkSpecialization<B>, H: ExHashT> Protocol<B, S, H> {
}
}
/// Called as a back-pressure mechanism if the networking detects that the peer cannot process
/// our messaging rate fast enough.
pub fn on_clogged_peer(&self, io: &mut SyncIo, who: NodeIndex) {
// We don't do anything but print some diagnostics for now.
if let Some(peer) = self.context_data.peers.read().get(&who) {
debug!(target: "sync", "Clogged peer {} (protocol_version: {:?}; roles: {:?}; \
known_extrinsics: {:?}; known_blocks: {:?}; best_hash: {:?}; best_number: {:?})",
who, peer.protocol_version, peer.roles, peer.known_extrinsics, peer.known_blocks,
peer.best_hash, peer.best_number);
}
}
fn on_block_request(&self, io: &mut SyncIo, peer: NodeIndex, request: message::BlockRequest<B>) {
trace!(target: "sync", "BlockRequest {} from {} with fields {:?}: from {:?} to {:?} max {:?}",
request.id,