diff options
| author | Adam Soltys <[email protected]> | 2026-07-05 21:27:06 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-07-05 21:27:06 -0700 |
| commit | 76e1a88b9c2eae1de0145ff077f038b57e68c3a8 (patch) | |
| tree | f889e8fa67e47d1d3174e6cedfec14916d493f04 /src/features/sync.js | |
| parent | 71fa56f0bad19d7ea7758ab6aef2ffccd46e3c5b (diff) | |
| download | coinosv3-76e1a88b9c2eae1de0145ff077f038b57e68c3a8.tar.gz coinosv3-76e1a88b9c2eae1de0145ff077f038b57e68c3a8.zip | |
Chunk the silent-payment catch-up scan
An imported mainnet wallet's first scan pulled the indexer's whole
window (~336k tweaks, 25MB) and posted it to the worker as ONE message:
it blew the 30s worker timeout, fell back to the inline main-thread
loop (minutes of jank) while the worker kept grinding the orphaned
request — the runaway CPU/memory users saw. The catch-up now processes
100-block chunks: each worker call is seconds, the scan watermark
checkpoints after every chunk (an interrupted catch-up resumes instead
of restarting from zero), buffers free as it goes, and the UI yields
between chunks. Verified against the live indexer: full catch-up in
~5min of background work, main heap bounded (~80MB peak), no timeouts.
Co-Authored-By: Claude Fable 5 <[email protected]>
Diffstat (limited to 'src/features/sync.js')
0 files changed, 0 insertions, 0 deletions
