From 3957f8b28de6dda5eb047455a2dfe7bc5b3b7693 Mon Sep 17 00:00:00 2001 From: Peilun Li Date: Mon, 9 Sep 2024 17:58:41 +0800 Subject: [PATCH] Add TopicScoreParams for gossipsubs. --- node/network/src/behaviour/mod.rs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/node/network/src/behaviour/mod.rs b/node/network/src/behaviour/mod.rs index c035d44..d06c692 100644 --- a/node/network/src/behaviour/mod.rs +++ b/node/network/src/behaviour/mod.rs @@ -13,6 +13,7 @@ use crate::types::{GossipEncoding, GossipKind, GossipTopic, SnappyTransform}; use crate::{error, metrics, Enr, NetworkGlobals, PubsubMessage, TopicHash}; use futures::stream::StreamExt; use libp2p::gossipsub::error::PublishError; +use libp2p::gossipsub::TopicScoreParams; use libp2p::{ core::{ connection::ConnectionId, identity::Keypair, multiaddr::Protocol as MProtocol, Multiaddr, @@ -226,7 +227,30 @@ impl Behaviour { // trace!(behaviour_log, "Using peer score params"; "params" => ?params); - let params = libp2p::gossipsub::PeerScoreParams::default(); + let mut params = libp2p::gossipsub::PeerScoreParams::default(); + let get_hash = |kind: GossipKind| -> TopicHash { + let topic: Topic = GossipTopic::new(kind, GossipEncoding::default()).into(); + topic.hash() + }; + params + .topics + .insert(get_hash(GossipKind::FindFile), TopicScoreParams::default()); + params.topics.insert( + get_hash(GossipKind::FindChunks), + TopicScoreParams::default(), + ); + params.topics.insert( + get_hash(GossipKind::AnnounceFile), + TopicScoreParams::default(), + ); + params.topics.insert( + get_hash(GossipKind::AnnounceShardConfig), + TopicScoreParams::default(), + ); + params.topics.insert( + get_hash(GossipKind::AnnounceChunks), + TopicScoreParams::default(), + ); // Set up a scoring update interval let update_gossipsub_scores = tokio::time::interval(params.decay_interval);