shutdown method
Shutdown the peer manager and all associated peers
Implementation
@override
Future<void> shutdown() async {
if (_isShutdown) {
return;
}
_isShutdown = true;
logger.info('Shutting down peer manager...');
// Stop health monitoring
_healthCheckTimer?.cancel();
_healthCheckTimer = null;
// Shutdown all peers
final shutdownFutures = <Future<void>>[];
for (final peer in _peers.values) {
shutdownFutures.add(peer.shutdown());
}
await Future.wait(shutdownFutures);
// Clear state
_peers.clear();
_connectingPeers.clear();
_lastAnnouncement.clear();
// Close streams
await _peerAddedController.close();
await _peerRemovedController.close();
await _messageController.close();
// Shutdown chain tip tracker
await _chainTipTracker.shutdown();
logger.info('Peer manager shutdown complete');
}