From 9eeddf973b170d298a0f25bf384b89223373ff1f Mon Sep 17 00:00:00 2001 From: Lukasz Klimek <842586+lklimek@users.noreply.github.com> Date: Wed, 13 Mar 2024 14:37:57 +0100 Subject: [PATCH] fix(consensus): invalid block height gossiped to lagging peer --- internal/consensus/gossip_handlers.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/consensus/gossip_handlers.go b/internal/consensus/gossip_handlers.go index d9bddb8c8c..deaf9060ca 100644 --- a/internal/consensus/gossip_handlers.go +++ b/internal/consensus/gossip_handlers.go @@ -117,9 +117,14 @@ func shouldProposalBeGossiped(rs cstypes.RoundState, prs *cstypes.PeerRoundState } func shouldBlockPartsBeGossiped(rs cstypes.RoundState, prs *cstypes.PeerRoundState, isValidator bool) bool { + if rs.Height != prs.Height || rs.Round < prs.Round { + return false + } + if isValidator && rs.ProposalBlockParts.HasHeader(prs.ProposalBlockPartSetHeader) { return true } + return prs.HasCommit && rs.ProposalBlockParts != nil }