Skip to content

Commit d6253cc

Browse files
committed
Fix scheduled state persistence
1 parent 88833e3 commit d6253cc

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

src/main/scala/io/iohk/ethereum/blockchain/sync/FastSync.scala

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -171,20 +171,10 @@ trait FastSync {
171171

172172
syncStateStorageActor ! fastSyncStateStorage
173173

174-
private val syncStatePersistCancellable =
175-
scheduler.schedule(persistStateSnapshotInterval, persistStateSnapshotInterval) {
176-
syncStateStorageActor ! SyncState(
177-
initialSyncState.targetBlock,
178-
requestedMptNodes.values.flatten.toSeq.distinct ++ mptNodesQueue,
179-
requestedNonMptNodes.values.flatten.toSeq.distinct ++ nonMptNodesQueue,
180-
requestedBlockBodies.values.flatten.toSeq.distinct ++ blockBodiesQueue,
181-
requestedReceipts.values.flatten.toSeq.distinct ++ receiptsQueue,
182-
downloadedNodesCount,
183-
bestBlockHeaderNumber)
184-
}
185-
174+
private val syncStatePersistCancellable = scheduler.schedule(persistStateSnapshotInterval, persistStateSnapshotInterval, self, PersistSyncState)
186175
private val heartBeat = scheduler.schedule(syncRetryInterval, syncRetryInterval * 2, self, ProcessSyncing)
187176

177+
// scalastyle:off cyclomatic.complexity
188178
def receive: Receive = handlePeerUpdates orElse {
189179
case EnqueueNodes(hashes) =>
190180
hashes.foreach {
@@ -229,6 +219,20 @@ trait FastSync {
229219

230220
case PrintStatus =>
231221
printStatus()
222+
223+
case PersistSyncState =>
224+
persistSyncState()
225+
}
226+
227+
private def persistSyncState(): Unit = {
228+
syncStateStorageActor ! SyncState(
229+
initialSyncState.targetBlock,
230+
requestedMptNodes.values.flatten.toSeq.distinct ++ mptNodesQueue,
231+
requestedNonMptNodes.values.flatten.toSeq.distinct ++ nonMptNodesQueue,
232+
requestedBlockBodies.values.flatten.toSeq.distinct ++ blockBodiesQueue,
233+
requestedReceipts.values.flatten.toSeq.distinct ++ receiptsQueue,
234+
downloadedNodesCount,
235+
bestBlockHeaderNumber)
232236
}
233237

234238
private def printStatus() = {
@@ -427,6 +431,7 @@ object FastSync {
427431
private case object TargetBlockTimeout
428432

429433
private case object ProcessSyncing
434+
private case object PersistSyncState
430435

431436
case class SyncState(
432437
targetBlock: BlockHeader,

0 commit comments

Comments
 (0)