Skip to content

Commit 4f39f84

Browse files
authored
refactor: MultiPeerNetworkManager -> PeerNetworkManager (#184)
* refactor: `MultiPeerNetworkManager` -> `PeerNetworkManager` * Fix formatting and apply review
1 parent 1dfd851 commit 4f39f84

28 files changed

+98
-102
lines changed

dash-spv-ffi/src/client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ type InnerClient = DashSpvClient<
115115
key_wallet_manager::wallet_manager::WalletManager<
116116
key_wallet::wallet::managed_wallet_info::ManagedWalletInfo,
117117
>,
118-
dash_spv::network::MultiPeerNetworkManager,
118+
dash_spv::network::PeerNetworkManager,
119119
DiskStorageManager,
120120
>;
121121
type SharedClient = Arc<Mutex<Option<InnerClient>>>;
@@ -173,7 +173,7 @@ pub unsafe extern "C" fn dash_spv_ffi_client_new(
173173

174174
let client_result = runtime.block_on(async move {
175175
// Construct concrete implementations for generics
176-
let network = dash_spv::network::MultiPeerNetworkManager::new(&client_config).await;
176+
let network = dash_spv::network::PeerNetworkManager::new(&client_config).await;
177177
let storage = DiskStorageManager::new(storage_path.clone()).await;
178178
let wallet = key_wallet_manager::wallet_manager::WalletManager::<
179179
key_wallet::wallet::managed_wallet_info::ManagedWalletInfo,

dash-spv/ARCHITECTURE.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
|----------|-------|-------|
6868
| Total Files | 110+ | Well-organized module structure |
6969
| Total Lines | ~40,000 | All files appropriately sized |
70-
| Largest File | network/multi_peer.rs | 1,322 lines - Acceptable complexity |
70+
| Largest File | network/manager.rs | 1,322 lines - Acceptable complexity |
7171
| Module Count | 10+ | Well-separated concerns |
7272
| Test Coverage | 242/243 passing | 99.6% pass rate |
7373
| Major Modules Refactored | 4 | sync/filters/, sync/sequential/, client/, storage/disk/ |
@@ -665,9 +665,9 @@ The network module handles all P2P communication with the Dash network.
665665

666666
**Refactoring needed**: ❌ None - exemplary trait design
667667

668-
#### `src/network/multi_peer.rs` (1,322 lines) 🚨 **TOO LARGE**
668+
#### `src/network/manager.rs` (1,322 lines) 🚨 **TOO LARGE**
669669

670-
**Purpose**: Multi-peer network manager implementation.
670+
**Purpose**: Peer network manager implementation.
671671

672672
**What it does** (TOO MUCH):
673673
- Peer discovery via DNS seeds
@@ -699,10 +699,10 @@ The network module handles all P2P communication with the Dash network.
699699

700700
**Refactoring needed**:
701701
- 🚨 **CRITICAL**: Split into:
702-
- `network/multi_peer/manager.rs` - Main MultiPeerNetworkManager
703-
- `network/multi_peer/discovery.rs` - DNS and peer discovery
704-
- `network/multi_peer/routing.rs` - Message routing
705-
- `network/multi_peer/health.rs` - Health monitoring
702+
- `network/peer/manager.rs` - Main PeerNetworkManager
703+
- `network/peer/discovery.rs` - DNS and peer discovery
704+
- `network/peer/routing.rs` - Message routing
705+
- `network/peer/health.rs` - Health monitoring
706706
- ⚠️ **HIGH**: Add connection limit configuration
707707
- ⚠️ **HIGH**: Add bandwidth throttling
708708
- ⚠️ **MEDIUM**: Document lock ordering
@@ -750,7 +750,7 @@ The network module handles all P2P communication with the Dash network.
750750

751751
**Refactoring needed**: ❌ None
752752

753-
#### `src/network/peer.rs` (188 lines) ✅ GOOD
753+
#### `src/network/manager.rs` (188 lines) ✅ GOOD
754754

755755
**Purpose**: Peer metadata and state tracking.
756756

@@ -826,7 +826,7 @@ The network module handles all P2P communication with the Dash network.
826826
- `pool.rs` (143 lines) ✅ **GOOD** - Peer pool management
827827

828828
**Overall Network Module Assessment**:
829-
- ⚠️ NEEDS: Breaking up large files (multi_peer.rs, connection.rs)
829+
- ⚠️ NEEDS: Breaking up large files (peer.rs, connection.rs)
830830
- ✅ GOOD: Strong abstractions
831831
- ⚠️ NEEDS: Better documentation of concurrent access patterns
832832
- ✅ GOOD: Comprehensive mock support
@@ -1429,7 +1429,7 @@ Validation module handles header validation, ChainLock verification, and Instant
14291429
```rust
14301430
type StandardSpvClient = DashSpvClient<
14311431
WalletManager,
1432-
MultiPeerNetworkManager,
1432+
PeerNetworkManager,
14331433
DiskStorageManager
14341434
>;
14351435
```
@@ -1458,7 +1458,7 @@ Validation module handles header validation, ChainLock verification, and Instant
14581458
| sync/sequential/ | 11 modules (4,785 total) |EXCELLENT | Sequential sync pipeline modules |
14591459
| client/ | 8 modules (2,895 total) |EXCELLENT | Client functionality modules |
14601460
| storage/disk/ | 7 modules (2,458 total) |EXCELLENT | Persistent storage modules |
1461-
| network/multi_peer.rs | 1,322 |ACCEPTABLE | Complex peer management logic |
1461+
| network/manager.rs | 1,322 |ACCEPTABLE | Complex peer management logic |
14621462
| sync/headers_with_reorg.rs | 1,148 |ACCEPTABLE | Reorg handling complexity justified |
14631463
| types.rs | 1,064 |ACCEPTABLE | Core type definitions |
14641464
| mempool_filter.rs | 793 |GOOD | Mempool management |
@@ -1507,7 +1507,7 @@ Validation module handles header validation, ChainLock verification, and Instant
15071507
- Fix: Add checksums
15081508

15091509
4. **No Connection Limits**
1510-
- File: `network/multi_peer.rs`
1510+
- File: `network/manager.rs`
15111511
- Risk: DoS via connection exhaustion
15121512
- Fix: Add configurable limits
15131513

dash-spv/CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ TCP-based networking with proper Dash protocol implementation:
119119
- Connection management via `TcpConnection`
120120
- Handshake handling via `HandshakeManager`
121121
- Message routing via `MessageHandler`
122-
- Multi-peer support via `MultiPeerManager`
122+
- Peer support via `PeerNetworkManager`
123123

124124
### Validation Modes
125125
- `ValidationMode::None`: No validation (fast)

dash-spv/CODE_ANALYSIS_SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@
158158
```
159159

160160
**Largest Remaining Files:**
161-
- `network/multi_peer.rs` (1,322 lines) - Acceptable for complex peer management
161+
- `network/manager.rs` (1,322 lines) - Acceptable for complex peer management
162162
- `sync/headers_with_reorg.rs` (1,148 lines) - Acceptable for reorg handling
163163
- `types.rs` (1,064 lines) - Could be split but acceptable
164164

dash-spv/examples/filter_sync.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! BIP157 filter synchronization example.
22
3-
use dash_spv::network::MultiPeerNetworkManager;
3+
use dash_spv::network::PeerNetworkManager;
44
use dash_spv::storage::MemoryStorageManager;
55
use dash_spv::{init_logging, ClientConfig, DashSpvClient};
66
use dashcore::Address;
@@ -24,7 +24,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
2424
let config = ClientConfig::mainnet().without_masternodes(); // Skip masternode sync for this example
2525

2626
// Create network manager
27-
let network_manager = MultiPeerNetworkManager::new(&config).await?;
27+
let network_manager = PeerNetworkManager::new(&config).await?;
2828

2929
// Create storage manager
3030
let storage_manager = MemoryStorageManager::new().await?;

dash-spv/examples/simple_sync.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! Simple header synchronization example.
22
3-
use dash_spv::network::MultiPeerNetworkManager;
3+
use dash_spv::network::PeerNetworkManager;
44
use dash_spv::storage::MemoryStorageManager;
55
use dash_spv::{init_logging, ClientConfig, DashSpvClient};
66
use key_wallet::wallet::managed_wallet_info::ManagedWalletInfo;
@@ -20,7 +20,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
2020
.without_masternodes(); // Skip masternode sync for this example
2121

2222
// Create network manager
23-
let network_manager = MultiPeerNetworkManager::new(&config).await?;
23+
let network_manager = PeerNetworkManager::new(&config).await?;
2424

2525
// Create storage manager
2626
let storage_manager = MemoryStorageManager::new().await?;

dash-spv/examples/spv_with_wallet.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//!
33
//! This example shows how to integrate the SPV client with a wallet manager.
44
5-
use dash_spv::network::MultiPeerNetworkManager;
5+
use dash_spv::network::PeerNetworkManager;
66
use dash_spv::storage::DiskStorageManager;
77
use dash_spv::{ClientConfig, DashSpvClient};
88
use key_wallet::wallet::managed_wallet_info::ManagedWalletInfo;
@@ -22,7 +22,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
2222
config.enable_filters = true;
2323

2424
// Create network manager
25-
let network_manager = MultiPeerNetworkManager::new(&config).await?;
25+
let network_manager = PeerNetworkManager::new(&config).await?;
2626

2727
// Create storage manager - use disk storage for persistence
2828
let storage_manager = DiskStorageManager::new("/tmp/dash-spv-example".into()).await?;

dash-spv/src/client/core.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ use super::{BlockProcessingTask, ClientConfig, StatusDisplay};
7777
/// // Production configuration
7878
/// type StandardSpvClient = DashSpvClient<
7979
/// WalletManager,
80-
/// MultiPeerNetworkManager,
80+
/// PeerNetworkManager,
8181
/// DiskStorageManager,
8282
/// >;
8383
///

dash-spv/src/client/queries.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ impl<
4242

4343
/// Disconnect a specific peer.
4444
pub async fn disconnect_peer(&self, addr: &std::net::SocketAddr, reason: &str) -> Result<()> {
45-
// Cast network manager to MultiPeerNetworkManager to access disconnect_peer
45+
// Cast network manager to PeerNetworkManager to access disconnect_peer
4646
let network = self
4747
.network
4848
.as_any()
49-
.downcast_ref::<crate::network::multi_peer::MultiPeerNetworkManager>()
49+
.downcast_ref::<crate::network::manager::PeerNetworkManager>()
5050
.ok_or_else(|| {
5151
SpvError::Config("Network manager does not support peer disconnection".to_string())
5252
})?;

dash-spv/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
//!
1414
//! ```no_run
1515
//! use dash_spv::{DashSpvClient, ClientConfig};
16-
//! use dash_spv::network::MultiPeerNetworkManager;
16+
//! use dash_spv::network::PeerNetworkManager;
1717
//! use dash_spv::storage::MemoryStorageManager;
1818
//! use dashcore::Network;
1919
//! use key_wallet::wallet::managed_wallet_info::ManagedWalletInfo;
@@ -29,7 +29,7 @@
2929
//! .with_log_level("info");
3030
//!
3131
//! // Create the required components
32-
//! let network = MultiPeerNetworkManager::new(&config).await?;
32+
//! let network = PeerNetworkManager::new(&config).await?;
3333
//! let storage = MemoryStorageManager::new().await?;
3434
//! let wallet = Arc::new(RwLock::new(WalletManager::<ManagedWalletInfo>::new()));
3535
//!

0 commit comments

Comments
 (0)