From d142fc85d3075c0a3d9b07891e13822d6b102dbb Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Mon, 16 Mar 2026 12:08:38 +0300 Subject: [PATCH] refactor: remove dead m_dsq client-side relay from MessageProcessingResult Client-side DSQ relay was removed in #7070 but the m_dsq field and its population in CCoinJoinClientQueueManager::ProcessMessage were left behind as dead code. The network has been running without client-side DSQ relay with no issues since masternodes handle DSQ propagation through their own CCoinJoinServer::ProcessDSQUEUE path. Remove the dead code and fix transitive include dependencies that were masked by msg_result.h pulling in coinjoin/coinjoin.h. This also resolves two circular dependency chains that went through that link. Co-Authored-By: Claude Opus 4.6 --- src/coinjoin/client.cpp | 1 - src/instantsend/net_instantsend.h | 2 ++ src/instantsend/signing.h | 1 + src/msg_result.h | 7 +------ src/rpc/quorums.cpp | 1 + test/lint/lint-circular-dependencies.py | 2 -- 6 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/coinjoin/client.cpp b/src/coinjoin/client.cpp index aa4e93df4943..a1bd10b14a4a 100644 --- a/src/coinjoin/client.cpp +++ b/src/coinjoin/client.cpp @@ -142,7 +142,6 @@ MessageProcessingResult CCoinJoinClientQueueManager::ProcessMessage(NodeId from, WITH_LOCK(cs_vecqueue, vecCoinJoinQueue.push_back(dsq)); } } // cs_ProcessDSQueue - ret.m_dsq.push_back(dsq); return ret; } diff --git a/src/instantsend/net_instantsend.h b/src/instantsend/net_instantsend.h index 5601cbb5f1c2..80612a88dd35 100644 --- a/src/instantsend/net_instantsend.h +++ b/src/instantsend/net_instantsend.h @@ -15,6 +15,8 @@ #include #include +class CChainState; + namespace Consensus { struct LLMQParams; } // namespace Consensus diff --git a/src/instantsend/signing.h b/src/instantsend/signing.h index 18860a22ffbd..7ae867bdf1da 100644 --- a/src/instantsend/signing.h +++ b/src/instantsend/signing.h @@ -7,6 +7,7 @@ #include #include +#include #include diff --git a/src/msg_result.h b/src/msg_result.h index 1b4e7fb792b6..a90fc7fc11c5 100644 --- a/src/msg_result.h +++ b/src/msg_result.h @@ -5,8 +5,6 @@ #ifndef BITCOIN_MSG_RESULT_H #define BITCOIN_MSG_RESULT_H -#include - #include #include @@ -50,9 +48,6 @@ struct MessageProcessingResult //! @m_inventory will relay these inventories to connected peers std::vector m_inventory; - //! @m_dsq will relay DSQs to connected peers - std::vector m_dsq; - //! @m_transactions will relay transactions to peers which is ready to accept it (some peers does not accept transactions) std::vector m_transactions; @@ -68,7 +63,7 @@ struct MessageProcessingResult m_error(error) {} - bool empty() const { return !m_error.has_value() && m_inventory.empty() && m_dsq.empty() && m_transactions.empty() && !m_to_erase.has_value(); } + bool empty() const { return !m_error.has_value() && m_inventory.empty() && m_transactions.empty() && !m_to_erase.has_value(); } }; #endif // BITCOIN_MSG_RESULT_H diff --git a/src/rpc/quorums.cpp b/src/rpc/quorums.cpp index eedaba18501e..514d346b5386 100644 --- a/src/rpc/quorums.cpp +++ b/src/rpc/quorums.cpp @@ -24,6 +24,7 @@ #include #include +#include #include #include #include diff --git a/test/lint/lint-circular-dependencies.py b/test/lint/lint-circular-dependencies.py index db7472d9eaef..2c17d3eb48c1 100755 --- a/test/lint/lint-circular-dependencies.py +++ b/test/lint/lint-circular-dependencies.py @@ -23,9 +23,7 @@ # Dash "active/context -> active/dkgsessionhandler -> llmq/dkgsessionhandler -> net_processing -> active/context", "banman -> common/bloom -> evo/assetlocktx -> llmq/quorumsman -> net -> banman", - "chainlock/chainlock -> spork -> msg_result -> coinjoin/coinjoin -> chainlock/chainlock", "chainlock/chainlock -> spork -> net -> evo/deterministicmns -> evo/providertx -> validation -> chainlock/chainlock", - "coinjoin/coinjoin -> instantsend/instantsend -> spork -> msg_result -> coinjoin/coinjoin", "coinjoin/client -> coinjoin/util -> wallet/wallet -> psbt -> node/transaction -> net_processing -> coinjoin/walletman -> coinjoin/client", "common/bloom -> evo/assetlocktx -> llmq/commitment -> evo/deterministicmns -> evo/simplifiedmns -> merkleblock -> common/bloom", "common/bloom -> evo/assetlocktx -> llmq/quorumsman -> net -> common/bloom",