Commit 81a51448 authored by Andreas Bigger's avatar Andreas Bigger

fix peer gater logs

parent ef5c1f77
......@@ -40,15 +40,18 @@ func NewPeerGater(connGater ConnectionGater, log log.Logger, banEnabled bool) Pe
func (s *gater) Update(id peer.ID, score float64) {
// Check if the peer score is below the threshold
// If so, we need to block the peer
isAlreadyBlocked := slices.Contains(s.connGater.ListBlockedPeers(), id)
if score < PeerScoreThreshold && s.banEnabled {
if !isAlreadyBlocked {
s.log.Warn("peer blocking enabled, blocking peer", "id", id.String(), "score", score)
}
err := s.connGater.BlockPeer(id)
if err != nil {
s.log.Warn("connection gater failed to block peer", "id", id.String(), "err", err)
}
}
// Unblock peers whose score has recovered to an acceptable level
if (score > PeerScoreThreshold) && slices.Contains(s.connGater.ListBlockedPeers(), id) {
if (score > PeerScoreThreshold) && isAlreadyBlocked {
err := s.connGater.UnblockPeer(id)
if err != nil {
s.log.Warn("connection gater failed to unblock peer", "id", id.String(), "err", err)
......
......@@ -44,6 +44,9 @@ func (testSuite *PeerGaterTestSuite) TestPeerGaterUpdate() {
true,
)
// Return an empty list of already blocked peers
testSuite.mockGater.On("ListBlockedPeers").Return([]peer.ID{})
// Mock a connection gater peer block call
// Since the peer score is below the [PeerScoreThreshold] of -100,
// the [BlockPeer] method should be called
......@@ -61,6 +64,9 @@ func (testSuite *PeerGaterTestSuite) TestPeerGaterUpdateNoBanning() {
false,
)
// Return an empty list of already blocked peers
testSuite.mockGater.On("ListBlockedPeers").Return([]peer.ID{})
// Notice: [BlockPeer] should not be called since banning is not enabled
gater.Update(peer.ID("peer1"), float64(-100000))
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment