-
-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Labels
enhancementNew feature or requestNew feature or requestrustPull requests that update rust codePull requests that update rust code
Description
Problem
The file src/network/p2p_enhanced.rs
is 2,356 lines - extremely large and difficult to maintain. It handles multiple responsibilities that should be separated.
Current Issues
- 🔍 Hard to navigate and understand
- 🧪 Difficult to test individual components
- 👥 Multiple developers can't work on it simultaneously
- 🔄 High risk of merge conflicts
- 📚 Violates single responsibility principle
Proposed Module Structure
src/network/
├── p2p_enhanced/
│ ├── mod.rs // Public interface and re-exports
│ ├── connection_manager.rs // Connection handling and lifecycle
│ ├── message_handler.rs // Message processing and routing
│ ├── peer_discovery.rs // Peer discovery and management
│ ├── network_topology.rs // Network analysis and health
│ └── rate_limiter.rs // Rate limiting and QoS
└── p2p_enhanced.rs // Deprecated - remove after migration
Migration Plan
Phase 1: Extract Connection Management
- Create
connection_manager.rs
with connection logic - Move connection-related structs and methods
- Update imports and tests
Phase 2: Extract Message Handling
- Create
message_handler.rs
with message processing - Move message routing and priority queue logic
- Maintain message processing performance
Phase 3: Extract Peer Discovery
- Create
peer_discovery.rs
with peer management - Move peer tracking and discovery logic
- Preserve network topology features
Phase 4: Finalize Migration
- Create
mod.rs
with clean public interface - Update all imports throughout codebase
- Remove original large file
- Verify all tests pass
Definition of Done
- Each module is <500 lines
- Clear separation of concerns
- All existing functionality preserved
- Test coverage maintained
- Documentation updated
- No performance regression
Priority: 📊 Medium
Important for long-term maintainability but not blocking critical features.
Estimated Effort: 5-6 days
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestrustPull requests that update rust codePull requests that update rust code