From 5b15c8041a400ae2717a1e4755e20d6ec1399547 Mon Sep 17 00:00:00 2001 From: turuslan Date: Wed, 23 Jul 2025 15:55:20 +0500 Subject: [PATCH] idontwant duplicate config --- cli.hpp | 2 ++ src/beamsim/gossip/config.hpp | 1 + src/beamsim/gossip/peer.hpp | 4 +++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cli.hpp b/cli.hpp index 72d8745..d547b0b 100644 --- a/cli.hpp +++ b/cli.hpp @@ -701,6 +701,8 @@ struct SimulationConfig { yaml.at({"gossip", "mesh_n"}).get(gossip_config.mesh_n); yaml.at({"gossip", "non_mesh_n"}).get(gossip_config.non_mesh_n); yaml.at({"gossip", "idontwant"}).get(gossip_config.idontwant); + yaml.at({"gossip", "idontwant_duplicate"}) + .get(gossip_config.idontwant_duplicate); auto &consts = beamsim::consts(); yaml.at({"consts", "signature_time"}).get(consts.signature_time); diff --git a/src/beamsim/gossip/config.hpp b/src/beamsim/gossip/config.hpp index bb0f0b4..f60a1f6 100644 --- a/src/beamsim/gossip/config.hpp +++ b/src/beamsim/gossip/config.hpp @@ -7,5 +7,6 @@ namespace beamsim::gossip { PeerIndex mesh_n = 4; PeerIndex non_mesh_n = 4; bool idontwant = true; + bool idontwant_duplicate = true; }; } // namespace beamsim::gossip diff --git a/src/beamsim/gossip/peer.hpp b/src/beamsim/gossip/peer.hpp index 60d036c..ba01ea6 100644 --- a/src/beamsim/gossip/peer.hpp +++ b/src/beamsim/gossip/peer.hpp @@ -70,7 +70,9 @@ namespace beamsim::gossip { continue; } auto message_hash = publish.message->hash(); - if (config_.idontwant) { + if (config_.idontwant + and (config_.idontwant_duplicate + or not duplicate_cache_.contains(message_hash))) { for (auto &to_peer : views_.at(publish.topic_index).publishTo()) { if (to_peer == from_peer) { continue;