From 1f35e37a5e561a4cc3b11587aeace15cbd9f494e Mon Sep 17 00:00:00 2001 From: Carter Jernigan Date: Thu, 28 Jul 2022 09:58:08 -0400 Subject: [PATCH] [#628] Fix off-by-one download blocks This should yield approximatly a 10% performance improvement, as it prevents downloading duplicate blocks. --- .../cash/z/ecc/android/sdk/block/CompactBlockProcessor.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/block/CompactBlockProcessor.kt b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/block/CompactBlockProcessor.kt index 5fdbcd17..da81aaac 100644 --- a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/block/CompactBlockProcessor.kt +++ b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/block/CompactBlockProcessor.kt @@ -566,7 +566,8 @@ class CompactBlockProcessor internal constructor( twig("found $missingBlockCount missing blocks, downloading in $batches batches of $DOWNLOAD_BATCH_SIZE...") for (i in 1..batches) { retryUpTo(RETRIES, { CompactBlockProcessorException.FailedDownload(it) }) { - val end = BlockHeight( + val end = BlockHeight.new( + network, min( (range.start.value + (i * DOWNLOAD_BATCH_SIZE)) - 1, range.endInclusive.value @@ -581,7 +582,7 @@ class CompactBlockProcessor internal constructor( _progress.send(progress) val lastDownloadedHeight = downloader.getLastDownloadedHeight() updateProgress(lastDownloadedHeight = lastDownloadedHeight) - downloadedBlockHeight = end + downloadedBlockHeight = end + 1 } } Twig.clip("downloading")