mirror of
https://github.com/status-im/whisper.git
synced 2025-02-23 07:58:14 +00:00
Track ratio of reduced bundle and every blacklist event
Ratio of reduced bundle will show how much of the traffic is not sent immediatly by a peer. Blacklist meter will show if network is spammed and peers are getting blacklisted.
This commit is contained in:
parent
631a8ac4aa
commit
c33f34726e
@ -13,4 +13,6 @@ var (
|
||||
envelopeErrLowPowCounter = metrics.NewRegisteredCounter("whisper/envelopeErrLowPow", nil)
|
||||
envelopeErrNoBloomMatchCounter = metrics.NewRegisteredCounter("whisper/envelopeErrNoBloomMatch", nil)
|
||||
envelopeSizeMeter = metrics.NewRegisteredMeter("whisper/envelopeSize", nil)
|
||||
peerBundleRatio = metrics.NewRegisteredGaugeFloat64("whisper/bundleRatio", nil)
|
||||
peerBlacklistMeter = metrics.NewRegisteredMeter("whisper/blacklistMeter", nil)
|
||||
)
|
||||
|
@ -233,7 +233,9 @@ func (peer *Peer) broadcast() error {
|
||||
}
|
||||
// bundle will be reduce according to a rate limiter
|
||||
// if rate limiter is nil - this operation is noop
|
||||
original := len(bundle)
|
||||
bundle = peer.reduceBundle(bundle)
|
||||
peerBundleRatio.Update(float64(len(bundle)) / float64(original))
|
||||
if len(bundle) > 0 {
|
||||
// transmit the batch of envelopes
|
||||
if err := p2p.Send(peer.ws, messagesCode, bundle); err != nil {
|
||||
|
@ -937,6 +937,7 @@ func (whisper *Whisper) runMessageLoop(p *Peer, rw p2p.MsgReadWriter) error {
|
||||
packet.Discard()
|
||||
|
||||
if blacklist {
|
||||
peerBlacklistMeter.Mark(1)
|
||||
whisper.ratelimiter.Ingress.Remove(p.peer, 10*time.Minute)
|
||||
return fmt.Errorf("peer %v reached traffic limit capacity", p.peer.ID())
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user