From c3409c4460886ec0d452375d24495422710e70cd Mon Sep 17 00:00:00 2001 From: Sosthene Date: Mon, 25 Aug 2025 01:07:10 +0200 Subject: [PATCH] Add varialized interval for intermediate saving during updates --- src/scanner.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/scanner.rs b/src/scanner.rs index ad5a627..cc22874 100644 --- a/src/scanner.rs +++ b/src/scanner.rs @@ -21,7 +21,6 @@ impl<'a> WasmSpScanner<'a> { owned_outpoints: HashSet, keep_scanning: &'a AtomicBool, ) -> Self { - log::info!("Creating WasmSpScanner"); Self { client, updater, @@ -42,6 +41,9 @@ impl<'a> WasmSpScanner<'a> { let mut update_time = Instant::now(); let mut stream = block_data_stream; + let save_interval = 10; + let mut blocks_scanned = 1; + while let Some(blockdata) = stream.next().await { let blockdata = blockdata?; let blkheight = blockdata.blkheight; @@ -55,8 +57,8 @@ impl<'a> WasmSpScanner<'a> { let mut save_to_storage = false; - // always save on last block or after 30 seconds since last save - if blkheight == end || update_time.elapsed() > Duration::from_secs(30) { + // always save on last block or after scanning some number of blocks + if blkheight == end || blocks_scanned % save_interval == 0 { save_to_storage = true; } @@ -79,6 +81,8 @@ impl<'a> WasmSpScanner<'a> { self.save_state()?; update_time = Instant::now(); } + + blocks_scanned += 1; } Ok(())