Skip to content

Commit 312734a

Browse files
authored
refactor: Drop unused code in dash-spv::network (#192)
1 parent cf632f7 commit 312734a

13 files changed

+2
-414
lines changed

dash-spv/src/client/message_handler.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -332,17 +332,9 @@ impl<
332332
}
333333
NetworkMessage::Ping(nonce) => {
334334
tracing::debug!("Received ping with nonce {}", nonce);
335-
// Automatically respond with pong
336-
if let Err(e) = self.network.handle_ping(nonce).await {
337-
tracing::error!("Failed to send pong response: {}", e);
338-
}
339335
}
340336
NetworkMessage::Pong(nonce) => {
341337
tracing::debug!("Received pong with nonce {}", nonce);
342-
// Validate the pong nonce
343-
if let Err(e) = self.network.handle_pong(nonce) {
344-
tracing::warn!("Invalid pong received: {}", e);
345-
}
346338
}
347339
NetworkMessage::CFilter(cfilter) => {
348340
tracing::debug!("Received CFilter for block {}", cfilter.block_hash);

dash-spv/src/client/sync_coordinator.rs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -127,21 +127,6 @@ impl<
127127
}
128128
drop(running);
129129

130-
// Check if we need to send a ping
131-
if self.network.should_ping() {
132-
match self.network.send_ping().await {
133-
Ok(nonce) => {
134-
tracing::trace!("Sent periodic ping with nonce {}", nonce);
135-
}
136-
Err(e) => {
137-
tracing::error!("Failed to send periodic ping: {}", e);
138-
}
139-
}
140-
}
141-
142-
// Clean up old pending pings
143-
self.network.cleanup_old_pings();
144-
145130
// Check if we have connected peers and start initial sync operations (once)
146131
if !initial_sync_started && self.network.peer_count() > 0 {
147132
tracing::info!("🚀 Peers connected, starting initial sync operations...");

dash-spv/src/network/manager.rs

Lines changed: 0 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -922,11 +922,6 @@ impl PeerNetworkManager {
922922
Ok(())
923923
}
924924

925-
/// Get the number of connected peers (async version).
926-
pub async fn peer_count_async(&self) -> usize {
927-
self.pool.peer_count().await
928-
}
929-
930925
/// Get reputation information for all peers
931926
pub async fn get_peer_reputations(&self) -> HashMap<SocketAddr, (i32, bool)> {
932927
let reputations = self.reputation_manager.get_all_reputations().await;
@@ -1230,74 +1225,6 @@ impl NetworkManager for PeerNetworkManager {
12301225
})
12311226
}
12321227

1233-
async fn send_ping(&mut self) -> NetworkResult<u64> {
1234-
// Send ping to all peers, return first nonce
1235-
let peers = self.pool.get_all_peers().await;
1236-
1237-
if peers.is_empty() {
1238-
return Err(NetworkError::ConnectionFailed("No connected peers".to_string()));
1239-
}
1240-
1241-
let (_, peer) = &peers[0];
1242-
let mut peer_guard = peer.write().await;
1243-
peer_guard.send_ping().await
1244-
}
1245-
1246-
async fn handle_ping(&mut self, _nonce: u64) -> NetworkResult<()> {
1247-
// This is handled in the peer reader
1248-
Ok(())
1249-
}
1250-
1251-
fn handle_pong(&mut self, _nonce: u64) -> NetworkResult<()> {
1252-
// This is handled in the peer reader
1253-
Ok(())
1254-
}
1255-
1256-
fn should_ping(&self) -> bool {
1257-
// Individual peers handle their own ping timing
1258-
false
1259-
}
1260-
1261-
fn cleanup_old_pings(&mut self) {
1262-
// Individual peers handle their own ping cleanup
1263-
}
1264-
1265-
fn get_message_sender(&self) -> mpsc::Sender<NetworkMessage> {
1266-
// Create a sender that routes messages to our internal send_message logic
1267-
let (tx, mut rx) = mpsc::channel(1000);
1268-
let pool = Arc::clone(&self.pool);
1269-
1270-
tokio::spawn(async move {
1271-
while let Some(message) = rx.recv().await {
1272-
// Route message through the peer network logic
1273-
// For sync messages that require consistent responses, send to only one peer
1274-
match &message {
1275-
NetworkMessage::GetHeaders(_)
1276-
| NetworkMessage::GetCFHeaders(_)
1277-
| NetworkMessage::GetCFilters(_)
1278-
| NetworkMessage::GetData(_) => {
1279-
// Send to a single peer for sync messages including GetData for block downloads
1280-
let peers = pool.get_all_peers().await;
1281-
if let Some((_, peer)) = peers.first() {
1282-
let mut peer_guard = peer.write().await;
1283-
let _ = peer_guard.send_message(message).await;
1284-
}
1285-
}
1286-
_ => {
1287-
// Broadcast to all peers for other messages
1288-
let peers = pool.get_all_peers().await;
1289-
for (_, peer) in peers {
1290-
let mut peer_guard = peer.write().await;
1291-
let _ = peer_guard.send_message(message.clone()).await;
1292-
}
1293-
}
1294-
}
1295-
}
1296-
});
1297-
1298-
tx
1299-
}
1300-
13011228
async fn get_peer_best_height(&self) -> NetworkResult<Option<u32>> {
13021229
let peers = self.pool.get_all_peers().await;
13031230

@@ -1368,28 +1295,6 @@ impl NetworkManager for PeerNetworkManager {
13681295
false
13691296
}
13701297

1371-
async fn get_peers_with_service(
1372-
&self,
1373-
service_flags: dashcore::network::constants::ServiceFlags,
1374-
) -> Vec<PeerInfo> {
1375-
let peers = self.pool.get_all_peers().await;
1376-
let mut matching_peers = Vec::new();
1377-
1378-
for (_, peer) in peers.iter() {
1379-
let peer_guard = peer.read().await;
1380-
let peer_info = peer_guard.peer_info();
1381-
if peer_info
1382-
.services
1383-
.map(|s| dashcore::network::constants::ServiceFlags::from(s).has(service_flags))
1384-
.unwrap_or(false)
1385-
{
1386-
matching_peers.push(peer_info);
1387-
}
1388-
}
1389-
1390-
matching_peers
1391-
}
1392-
13931298
async fn has_headers2_peer(&self) -> bool {
13941299
// Headers2 is currently disabled due to protocol compatibility issues
13951300
// TODO: Fix headers2 decompression before re-enabling

dash-spv/src/network/mock.rs

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ use dashcore::{
99
network::message::NetworkMessage, network::message_blockdata::GetHeadersMessage, BlockHash,
1010
};
1111
use dashcore_hashes::Hash;
12-
use tokio::sync::mpsc;
1312

1413
use crate::error::{NetworkError, NetworkResult};
1514
use crate::types::PeerInfo;
@@ -21,21 +20,15 @@ pub struct MockNetworkManager {
2120
connected: bool,
2221
messages: VecDeque<NetworkMessage>,
2322
headers_chain: Vec<BlockHeader>,
24-
message_sender: mpsc::Sender<NetworkMessage>,
25-
message_receiver: mpsc::Receiver<NetworkMessage>,
2623
}
2724

2825
impl MockNetworkManager {
2926
/// Create a new mock network manager
3027
pub fn new() -> Self {
31-
let (message_sender, message_receiver) = mpsc::channel(1000);
32-
3328
Self {
3429
connected: false,
3530
messages: VecDeque::new(),
3631
headers_chain: Vec::new(),
37-
message_sender,
38-
message_receiver,
3932
}
4033
}
4134

@@ -139,11 +132,6 @@ impl NetworkManager for MockNetworkManager {
139132
return Err(NetworkError::NotConnected);
140133
}
141134

142-
// Check for messages in the receiver channel first
143-
if let Ok(msg) = self.message_receiver.try_recv() {
144-
return Ok(Some(msg));
145-
}
146-
147135
// Then check our internal queue
148136
Ok(self.messages.pop_front())
149137
}
@@ -178,28 +166,6 @@ impl NetworkManager for MockNetworkManager {
178166
}
179167
}
180168

181-
async fn send_ping(&mut self) -> NetworkResult<u64> {
182-
Ok(1234567890)
183-
}
184-
185-
async fn handle_ping(&mut self, _nonce: u64) -> NetworkResult<()> {
186-
Ok(())
187-
}
188-
189-
fn handle_pong(&mut self, _nonce: u64) -> NetworkResult<()> {
190-
Ok(())
191-
}
192-
193-
fn should_ping(&self) -> bool {
194-
false
195-
}
196-
197-
fn cleanup_old_pings(&mut self) {}
198-
199-
fn get_message_sender(&self) -> mpsc::Sender<NetworkMessage> {
200-
self.message_sender.clone()
201-
}
202-
203169
async fn get_peer_best_height(&self) -> NetworkResult<Option<u32>> {
204170
Ok(Some(self.headers_chain.len() as u32))
205171
}
@@ -208,10 +174,6 @@ impl NetworkManager for MockNetworkManager {
208174
self.connected
209175
}
210176

211-
async fn get_peers_with_service(&self, _service_flags: ServiceFlags) -> Vec<PeerInfo> {
212-
self.peer_info()
213-
}
214-
215177
async fn get_last_message_peer_id(&self) -> crate::types::PeerId {
216178
// For mock, always return PeerId(1) when connected
217179
if self.connected {

dash-spv/src/network/mod.rs

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ mod tests;
1717
pub mod mock;
1818

1919
use async_trait::async_trait;
20-
use tokio::sync::mpsc;
2120

2221
use crate::error::NetworkResult;
2322
use dashcore::network::message::NetworkMessage;
@@ -54,24 +53,6 @@ pub trait NetworkManager: Send + Sync {
5453
/// Get peer information.
5554
fn peer_info(&self) -> Vec<crate::types::PeerInfo>;
5655

57-
/// Send a ping message.
58-
async fn send_ping(&mut self) -> NetworkResult<u64>;
59-
60-
/// Handle a received ping message by sending a pong.
61-
async fn handle_ping(&mut self, nonce: u64) -> NetworkResult<()>;
62-
63-
/// Handle a received pong message.
64-
fn handle_pong(&mut self, nonce: u64) -> NetworkResult<()>;
65-
66-
/// Check if we should send a ping (2 minute timeout).
67-
fn should_ping(&self) -> bool;
68-
69-
/// Clean up old pending pings.
70-
fn cleanup_old_pings(&mut self);
71-
72-
/// Get a message sender channel for sending messages from other components.
73-
fn get_message_sender(&self) -> mpsc::Sender<NetworkMessage>;
74-
7556
/// Get the best block height reported by connected peers.
7657
async fn get_peer_best_height(&self) -> NetworkResult<Option<u32>>;
7758

@@ -81,12 +62,6 @@ pub trait NetworkManager: Send + Sync {
8162
service_flags: dashcore::network::constants::ServiceFlags,
8263
) -> bool;
8364

84-
/// Get peers that support a specific service.
85-
async fn get_peers_with_service(
86-
&self,
87-
service_flags: dashcore::network::constants::ServiceFlags,
88-
) -> Vec<crate::types::PeerInfo>;
89-
9065
/// Check if any connected peer supports headers2 compression.
9166
async fn has_headers2_peer(&self) -> bool {
9267
self.has_peer_with_service(dashcore::network::constants::NODE_HEADERS_COMPRESSED).await

dash-spv/src/network/tests.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,6 @@ mod peer_network_manager_tests {
7070
}
7171
}
7272

73-
#[tokio::test]
74-
async fn test_peer_network_manager_creation() {
75-
let config = create_test_config();
76-
let manager = PeerNetworkManager::new(&config).await.unwrap();
77-
78-
// Should start with zero peers
79-
assert_eq!(manager.peer_count_async().await, 0);
80-
// Note: is_connected() still uses sync approach, so we'll check async
81-
assert_eq!(manager.peer_count_async().await, 0);
82-
}
83-
8473
#[tokio::test]
8574
async fn test_as_any_downcast() {
8675
let config = create_test_config();

dash-spv/tests/block_download_test.rs

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -97,29 +97,6 @@ impl NetworkManager for MockNetworkManager {
9797
vec![]
9898
}
9999

100-
async fn send_ping(&mut self) -> dash_spv::error::NetworkResult<u64> {
101-
Ok(12345)
102-
}
103-
104-
async fn handle_ping(&mut self, _nonce: u64) -> dash_spv::error::NetworkResult<()> {
105-
Ok(())
106-
}
107-
108-
fn handle_pong(&mut self, _nonce: u64) -> dash_spv::error::NetworkResult<()> {
109-
Ok(())
110-
}
111-
112-
fn should_ping(&self) -> bool {
113-
false
114-
}
115-
116-
fn cleanup_old_pings(&mut self) {}
117-
118-
fn get_message_sender(&self) -> tokio::sync::mpsc::Sender<NetworkMessage> {
119-
let (tx, _rx) = tokio::sync::mpsc::channel(1);
120-
tx
121-
}
122-
123100
async fn get_peer_best_height(&self) -> dash_spv::error::NetworkResult<Option<u32>> {
124101
Ok(Some(100))
125102
}
@@ -131,13 +108,6 @@ impl NetworkManager for MockNetworkManager {
131108
true
132109
}
133110

134-
async fn get_peers_with_service(
135-
&self,
136-
_service_flags: dashcore::network::constants::ServiceFlags,
137-
) -> Vec<dash_spv::types::PeerInfo> {
138-
vec![]
139-
}
140-
141111
async fn get_last_message_peer_id(&self) -> dash_spv::types::PeerId {
142112
dash_spv::types::PeerId(1)
143113
}

dash-spv/tests/cfheader_gap_test.rs

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -208,29 +208,6 @@ async fn test_cfheader_restart_cooldown() {
208208
Vec::new()
209209
}
210210
211-
async fn send_ping(&mut self) -> NetworkResult<u64> {
212-
Ok(0)
213-
}
214-
215-
async fn handle_ping(&mut self, _nonce: u64) -> NetworkResult<()> {
216-
Ok(())
217-
}
218-
219-
fn handle_pong(&mut self, _nonce: u64) -> NetworkResult<()> {
220-
Ok(())
221-
}
222-
223-
fn should_ping(&self) -> bool {
224-
false
225-
}
226-
227-
fn cleanup_old_pings(&mut self) {}
228-
229-
fn get_message_sender(&self) -> tokio::sync::mpsc::Sender<NetworkMessage> {
230-
let (tx, _rx) = tokio::sync::mpsc::channel(1);
231-
tx
232-
}
233-
234211
async fn get_peer_best_height(&self) -> dash_spv::error::NetworkResult<Option<u32>> {
235212
Ok(Some(100))
236213
}
@@ -242,13 +219,6 @@ async fn test_cfheader_restart_cooldown() {
242219
true
243220
}
244221
245-
async fn get_peers_with_service(
246-
&self,
247-
_service_flags: dashcore::network::constants::ServiceFlags,
248-
) -> Vec<dash_spv::types::PeerInfo> {
249-
vec![]
250-
}
251-
252222
async fn get_last_message_peer_id(&self) -> dash_spv::types::PeerId {
253223
dash_spv::types::PeerId(1)
254224
}

0 commit comments

Comments
 (0)