Don't downscore peers on duplicate blocks (#4791)
## Issue Addressed N/A ## Proposed Changes We were currently downscoring a peer for sending us a block that we already have in fork choice. This is unnecessary as we get duplicates in lighthouse only when 1. We published the block, so the block is already in fork choice 2. We imported the same block over rpc In both scenarios, the peer who sent us the block over gossip is not at fault. This isn't exploitable as valid duplicates will get dropped by the gossipsub duplicate filter
This commit is contained in:
parent
f7daf82430
commit
5bab9b866e
@ -763,9 +763,17 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> {
|
||||
self.propagate_validation_result(message_id, peer_id, MessageAcceptance::Ignore);
|
||||
return None;
|
||||
}
|
||||
Err(BlockError::BlockIsAlreadyKnown) => {
|
||||
debug!(
|
||||
self.log,
|
||||
"Gossip block is already known";
|
||||
"block_root" => %block_root,
|
||||
);
|
||||
self.propagate_validation_result(message_id, peer_id, MessageAcceptance::Ignore);
|
||||
return None;
|
||||
}
|
||||
Err(e @ BlockError::FutureSlot { .. })
|
||||
| Err(e @ BlockError::WouldRevertFinalizedSlot { .. })
|
||||
| Err(e @ BlockError::BlockIsAlreadyKnown)
|
||||
| Err(e @ BlockError::NotFinalizedDescendant { .. }) => {
|
||||
debug!(self.log, "Could not verify block for gossip. Ignoring the block";
|
||||
"error" => %e);
|
||||
|
Loading…
Reference in New Issue
Block a user