Skip to content

Commit

Permalink
Get only valid blocks. (#4628)
Browse files Browse the repository at this point in the history
  • Loading branch information
Frozen authored Feb 26, 2024
1 parent d5956ce commit f0dc999
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
13 changes: 11 additions & 2 deletions consensus/fbft_log.go
Original file line number Diff line number Diff line change
Expand Up @@ -222,11 +222,20 @@ func (log *FBFTLog) GetMessagesByTypeSeqViewHash(typ msg_pb.MessageType, blockNu
return found
}

func (log *FBFTLog) all(filters []func(*FBFTMessage, *FBFTLog) bool, value *FBFTMessage) bool {
for _, filter := range filters {
if !filter(value, log) {
return false
}
}
return true
}

// GetMessagesByTypeSeq returns pbft messages with matching type, blockNum
func (log *FBFTLog) GetMessagesByTypeSeq(typ msg_pb.MessageType, blockNum uint64) []*FBFTMessage {
func (log *FBFTLog) GetMessagesByTypeSeq(typ msg_pb.MessageType, blockNum uint64, filters ...func(message *FBFTMessage, log *FBFTLog) bool) []*FBFTMessage {
var found []*FBFTMessage
for _, msg := range log.messages {
if msg.MessageType == typ && msg.BlockNum == blockNum && msg.Verified {
if msg.MessageType == typ && msg.BlockNum == blockNum && msg.Verified && log.all(filters, msg) {
found = append(found, msg)
}
}
Expand Down
4 changes: 3 additions & 1 deletion consensus/view_change_msg.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ func (consensus *Consensus) constructViewChangeMessage(priKey *bls.PrivateKeyWra
}

preparedMsgs := consensus.fBFTLog.GetMessagesByTypeSeq(
msg_pb.MessageType_PREPARED, consensus.getBlockNum(),
msg_pb.MessageType_PREPARED, consensus.getBlockNum(), func(message *FBFTMessage, log *FBFTLog) bool {
return log.IsBlockVerified(message.BlockHash)
},
)
preparedMsg := consensus.fBFTLog.FindMessageByMaxViewID(preparedMsgs)

Expand Down

0 comments on commit f0dc999

Please sign in to comment.