message: Disconnect from peer when it provided incorrect finality signatures
diff: @@ -34,7 +34,7 @@ use crate::{
  contract_runtime::{BlockAndExecutionEffects, ExecutionPreState},
  fetcher::{FetchResult, FetchedData, FetcherError},
  },
  - effect::{requests::FetcherRequest, EffectBuilder},
  + effect::{requests::FetcherRequest, EffectBuilder, EffectExt},
  reactor::joiner::JoinerEvent,
  types::{
  AvailableBlockRange, Block, BlockAndDeploys, BlockHash, BlockHeader,
  @@ -1449,7 +1449,22 @@ async fn fetch_finality_signatures_by_block_header(
  })?;
  if let Some(signatures) = maybe_signatures {
  - consensus::validate_finality_signatures(&signatures, validator_weights)?;
  + if let Err(err) =
  + consensus::validate_finality_signatures(&signatures, validator_weights)
  + {
  + warn!(
  + ?peer,
  + ?err,
  + height = block_header.height(),
  + "peer sent invalid finality signatures, banning peer"
  + );
  + ctx.effect_builder
  + .announce_disconnect_from_peer(peer)
  + .ignore::<JoinerEvent>();
  +
  + // Try with next peer.
  + continue;
  + }
  sig_collector.add(signatures);
  if sig_collector
  