chore(peer-score): enhance score trace logs cont' (#1108)
This commit is contained in:
parent
3f5b5cee75
commit
d6feb1bbc2
|
@ -121,7 +121,7 @@ proc updateScores*(g: GossipSub) = # avoid async
|
||||||
var
|
var
|
||||||
n_topics = 0
|
n_topics = 0
|
||||||
is_grafted = 0
|
is_grafted = 0
|
||||||
score = 0.0
|
scoreAcc = 0.0 # accumulates the peer score
|
||||||
|
|
||||||
# Per topic
|
# Per topic
|
||||||
for topic, topicParams in g.topicParams:
|
for topic, topicParams in g.topicParams:
|
||||||
|
@ -163,9 +163,9 @@ proc updateScores*(g: GossipSub) = # avoid async
|
||||||
topicScore += info.invalidMessageDeliveries * info.invalidMessageDeliveries * topicParams.invalidMessageDeliveriesWeight
|
topicScore += info.invalidMessageDeliveries * info.invalidMessageDeliveries * topicParams.invalidMessageDeliveriesWeight
|
||||||
trace "p4", peer, p4 = info.invalidMessageDeliveries * info.invalidMessageDeliveries, topic, topicScore
|
trace "p4", peer, p4 = info.invalidMessageDeliveries * info.invalidMessageDeliveries, topic, topicScore
|
||||||
|
|
||||||
score += topicScore * topicParams.topicWeight
|
scoreAcc += topicScore * topicParams.topicWeight
|
||||||
|
|
||||||
trace "updated peer topic's scores", peer, score, topic, info, topicScore,
|
trace "updated peer topic's scores", peer, scoreAcc, topic, info, topicScore,
|
||||||
topicWeight = topicParams.topicWeight
|
topicWeight = topicParams.topicWeight
|
||||||
|
|
||||||
# Score metrics
|
# Score metrics
|
||||||
|
@ -196,18 +196,18 @@ proc updateScores*(g: GossipSub) = # avoid async
|
||||||
# commit our changes, mgetOrPut does NOT work as wanted with value types (lent?)
|
# commit our changes, mgetOrPut does NOT work as wanted with value types (lent?)
|
||||||
stats.topicInfos[topic] = info
|
stats.topicInfos[topic] = info
|
||||||
|
|
||||||
score += peer.appScore * g.parameters.appSpecificWeight
|
scoreAcc += peer.appScore * g.parameters.appSpecificWeight
|
||||||
trace "appScore", peer, score, appScore = peer.appScore,
|
trace "appScore", peer, scoreAcc, appScore = peer.appScore,
|
||||||
appSpecificWeight = g.parameters.appSpecificWeight
|
appSpecificWeight = g.parameters.appSpecificWeight
|
||||||
|
|
||||||
# The value of the parameter is the square of the counter and is mixed with a negative weight.
|
# The value of the parameter is the square of the counter and is mixed with a negative weight.
|
||||||
score += peer.behaviourPenalty * peer.behaviourPenalty * g.parameters.behaviourPenaltyWeight
|
scoreAcc += peer.behaviourPenalty * peer.behaviourPenalty * g.parameters.behaviourPenaltyWeight
|
||||||
trace "behaviourPenalty", peer, score, behaviourPenalty = peer.behaviourPenalty,
|
trace "behaviourPenalty", peer, scoreAcc, behaviourPenalty = peer.behaviourPenalty,
|
||||||
behaviourPenaltyWeight = g.parameters.behaviourPenaltyWeight
|
behaviourPenaltyWeight = g.parameters.behaviourPenaltyWeight
|
||||||
|
|
||||||
let colocationFactor = g.colocationFactor(peer)
|
let colocationFactor = g.colocationFactor(peer)
|
||||||
score += colocationFactor * g.parameters.ipColocationFactorWeight
|
scoreAcc += colocationFactor * g.parameters.ipColocationFactorWeight
|
||||||
trace "colocationFactor", peer, score, colocationFactor,
|
trace "colocationFactor", peer, scoreAcc, colocationFactor,
|
||||||
ipColocationFactorWeight = g.parameters.ipColocationFactorWeight
|
ipColocationFactorWeight = g.parameters.ipColocationFactorWeight
|
||||||
# Score metrics
|
# Score metrics
|
||||||
let agent = peer.getAgent()
|
let agent = peer.getAgent()
|
||||||
|
@ -220,7 +220,7 @@ proc updateScores*(g: GossipSub) = # avoid async
|
||||||
if peer.behaviourPenalty < g.parameters.decayToZero:
|
if peer.behaviourPenalty < g.parameters.decayToZero:
|
||||||
peer.behaviourPenalty = 0
|
peer.behaviourPenalty = 0
|
||||||
|
|
||||||
peer.score = score
|
peer.score = scoreAcc
|
||||||
|
|
||||||
# copy into stats the score to keep until expired
|
# copy into stats the score to keep until expired
|
||||||
stats.score = peer.score
|
stats.score = peer.score
|
||||||
|
@ -228,7 +228,7 @@ proc updateScores*(g: GossipSub) = # avoid async
|
||||||
stats.behaviourPenalty = peer.behaviourPenalty
|
stats.behaviourPenalty = peer.behaviourPenalty
|
||||||
stats.expire = now + g.parameters.retainScore # refresh expiration
|
stats.expire = now + g.parameters.retainScore # refresh expiration
|
||||||
|
|
||||||
trace "updated peer's score", peer, score = peer.score, n_topics, is_grafted
|
trace "updated (accumulated) peer's score", peer, peerScore = peer.score, n_topics, is_grafted
|
||||||
|
|
||||||
g.disconnectIfBadScorePeer(peer, stats.score)
|
g.disconnectIfBadScorePeer(peer, stats.score)
|
||||||
libp2p_gossipsub_peers_scores.inc(peer.score, labelValues = [agent])
|
libp2p_gossipsub_peers_scores.inc(peer.score, labelValues = [agent])
|
||||||
|
|
Loading…
Reference in New Issue