@@ -798,7 +798,8 @@ object DiscoveryService {
798
798
799
799
/** Look up a random node ID to discover new peers. */
800
800
protected [v4] def lookupRandom (): Task [Unit ] =
801
- lookup(target = sigalg.newKeyPair._1).void
801
+ Task (logger.info(" Looking up a random target..." )) >>
802
+ lookup(target = sigalg.newKeyPair._1).void
802
803
803
804
/** Look up self with the bootstrap nodes. First we have to fetch their ENR
804
805
* records to verify they are reachable and so that they can participate
@@ -812,23 +813,26 @@ object DiscoveryService {
812
813
if (config.knownPeers.isEmpty)
813
814
Task .pure(false )
814
815
else {
815
- val tryEnroll = for {
816
+ for {
816
817
nodeId <- stateRef.get.map(_.node.id)
817
818
bootstrapPeers = config.knownPeers.toList.map(toPeer).filterNot(_.id == nodeId)
819
+ _ <- Task (logger.info(s " Enrolling with ${bootstrapPeers.size} bootstrap nodes. " ))
818
820
maybeBootstrapEnrs <- Task .parTraverseN(config.kademliaAlpha)(bootstrapPeers)(fetchEnr(_, delay = true ))
819
- result <- if (maybeBootstrapEnrs.exists(_.isDefined)) {
820
- lookup(nodeId).as(true )
821
+ enrolled = maybeBootstrapEnrs.count(_.isDefined)
822
+ succeeded = enrolled > 0
823
+ _ <- if (succeeded) {
824
+ for {
825
+ _ <- Task (
826
+ logger.info(s " Successfully enrolled with $enrolled bootstrap nodes. Performing initial lookup... " )
827
+ )
828
+ _ <- lookup(nodeId)
829
+ nodeCount <- stateRef.get.map(_.nodeMap.size)
830
+ _ <- Task (logger.info(s " Discovered $nodeCount nodes by the end of the lookup. " ))
831
+ } yield ()
821
832
} else {
822
- Task .pure(false )
823
- }
824
- } yield result
825
-
826
- tryEnroll.flatTap {
827
- case true =>
828
- Task (logger.info(" Successfully enrolled with some of the bootstrap nodes." ))
829
- case false =>
830
833
Task (logger.warn(" Failed to enroll with any of the the bootstrap nodes." ))
831
- }
834
+ }
835
+ } yield succeeded
832
836
}
833
837
}
834
838
}
0 commit comments