File tree Expand file tree Collapse file tree 1 file changed +10
-3
lines changed
scalanet/discovery/src/io/iohk/scalanet/discovery/ethereum/v4 Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -68,7 +68,8 @@ object DiscoveryService {
68
68
node : Node ,
69
69
config : DiscoveryConfig ,
70
70
network : DiscoveryNetwork [A ],
71
- toAddress : Node .Address => A
71
+ toAddress : Node .Address => A ,
72
+ enrollInBackground : Boolean = false
72
73
)(
73
74
implicit sigalg : SigAlg ,
74
75
enrCodec : Codec [EthereumNodeRecord .Content ],
@@ -88,9 +89,15 @@ object DiscoveryService {
88
89
// Start handling requests, we need them during enrolling so the peers can ping and bond with us.
89
90
cancelToken <- network.startHandling(service)
90
91
// Contact the bootstrap nodes.
91
- _ <- service.enroll()
92
+ enroll = service.enroll()
92
93
// Periodically discover new nodes.
93
- discoveryFiber <- service.lookupRandom().delayExecution(config.discoveryPeriod).loopForever.start
94
+ discover = service.lookupRandom().delayExecution(config.discoveryPeriod).loopForever
95
+ // Enrollment can be run in the background if it takes very long.
96
+ discoveryFiber <- if (enrollInBackground) {
97
+ (enroll >> discover).start
98
+ } else {
99
+ enroll >> discover.start
100
+ }
94
101
} yield (service, cancelToken, discoveryFiber)
95
102
} {
96
103
case (_, cancelToken, discoveryFiber) =>
You can’t perform that action at this time.
0 commit comments