@@ -15,10 +15,8 @@ import java.util.concurrent.TimeUnit
1515import java.util.concurrent.atomic.AtomicBoolean
1616import maru.config.P2PConfig
1717import maru.p2p.discovery.MaruDiscoveryService
18- import maru.syncing.SyncStatusProvider
1918import org.apache.logging.log4j.LogManager
2019import org.apache.logging.log4j.Logger
21- import tech.pegasys.teku.infrastructure.async.SafeFuture
2220import tech.pegasys.teku.networking.p2p.network.P2PNetwork
2321import tech.pegasys.teku.networking.p2p.network.PeerHandler
2422import tech.pegasys.teku.networking.p2p.peer.DisconnectReason
@@ -27,10 +25,9 @@ import tech.pegasys.teku.networking.p2p.peer.Peer
2725
2826class MaruPeerManager (
2927 private val maruPeerFactory : MaruPeerFactory ,
30- p2pConfig : P2PConfig ,
28+ private val p2pConfig : P2PConfig ,
3129 private val reputationManager : MaruReputationManager ,
3230 private val isStaticPeer : (NodeId ) -> Boolean ,
33- private val syncStatusProviderProvider : () -> SyncStatusProvider ,
3431) : PeerHandler,
3532 PeerLookup {
3633 private val log: Logger = LogManager .getLogger(this .javaClass)
@@ -43,8 +40,6 @@ class MaruPeerManager(
4340 private val peers: ConcurrentHashMap <NodeId , MaruPeer > = ConcurrentHashMap ()
4441
4542 private var scheduler: ScheduledExecutorService ? = null
46- private lateinit var p2pNetwork: P2PNetwork <Peer >
47- private lateinit var syncStatusProvider: SyncStatusProvider
4843
4944 val peerCount: Int
5045 get() = connectedPeers().size
@@ -61,8 +56,6 @@ class MaruPeerManager(
6156 return
6257 }
6358 this .discoveryService = discoveryService
64- this .p2pNetwork = p2pNetwork
65- this .syncStatusProvider = syncStatusProviderProvider()
6659 scheduler = Executors .newSingleThreadScheduledExecutor(Thread .ofPlatform().daemon().factory())
6760 scheduler!! .scheduleAtFixedRate({
6861 logConnectedPeers()
@@ -75,32 +68,26 @@ class MaruPeerManager(
7568 reputationManager = reputationManager,
7669 maxPeers = maxPeers,
7770 getPeerCount = { peerCount },
71+ discoveryConfig = p2pConfig.discovery!! ,
7872 )
7973 discoveryTask!! .start()
8074 }
8175 }
8276
83- fun stop (): SafeFuture < Unit > {
77+ fun stop () {
8478 if (! started.compareAndSet(true , false )) {
8579 log.warn(" Trying to stop stopped MaruPeerManager" )
86- return SafeFuture .completedFuture( Unit )
80+ return
8781 }
8882 discoveryTask?.stop()
8983 discoveryTask = null
9084 scheduler!! .shutdown()
9185 scheduler = null
92- return SafeFuture .completedFuture( Unit )
86+ peers.values.forEach { it.disconnectCleanly( DisconnectReason . SHUTTING_DOWN ) }
9387 }
9488
9589 private fun logConnectedPeers () {
96- connectedPeers().keys.toList().also { peers ->
97- log.info(
98- " currently connected peers: peerCount={} peers={}" ,
99- peers.size,
100- peers,
101- )
102- }
103-
90+ log.info(" Currently connected peers={}" , connectedPeers().keys.toList())
10491 if (log.isDebugEnabled) {
10592 discoveryService?.getKnownPeers()?.forEach { peer ->
10693 log.debug(" discovered peer={}" , peer)
@@ -121,7 +108,7 @@ class MaruPeerManager(
121108 log.debug(" Connected to peer={}, static=$isAStaticPeer " , peer.id)
122109 } else { // not static and not allowed to connect -> disconnect
123110 peer.disconnectCleanly(DisconnectReason .RATE_LIMITING )
124- log.debug (" Peer={} is not allowed to connect yet" , peer.id)
111+ log.trace (" Peer={} is not allowed to connect yet" , peer.id)
125112 }
126113 }
127114
0 commit comments