[#1016] Create blocks download stream per batch

This commit is contained in:
Michal Fousek 2023-05-15 12:40:48 +02:00
parent bb3d7d06c5
commit dad5d2cb40
2 changed files with 6 additions and 4 deletions

View File

@ -681,7 +681,6 @@ actor CompactBlockProcessor {
if let range = ranges.downloadAndScanRange {
logger.debug("Starting sync with range: \(range.lowerBound)...\(range.upperBound)")
try await blockDownloader.setSyncRange(range)
try await downloadAndScanBlocks(at: range, totalProgressRange: totalProgressRange)
}
@ -778,6 +777,7 @@ actor CompactBlockProcessor {
try Task.checkCancellation()
do {
try await blockDownloader.setSyncRange(range)
await blockDownloader.setDownloadLimit(processingRange.upperBound + (2 * batchSize))
await blockDownloader.startDownload(maxBlockBufferSize: config.downloadBufferSize)

View File

@ -62,7 +62,7 @@ actor BlockDownloaderImpl {
let metrics: SDKMetrics
let logger: Logger
private var downloadStream: BlockDownloaderStream?
// private var downloadStream: BlockDownloaderStream?
private var syncRange: CompactBlockRange?
private var downloadToHeight: BlockHeight = 0
@ -89,7 +89,7 @@ actor BlockDownloaderImpl {
private func doDownload(maxBlockBufferSize: Int) async {
lastError = nil
do {
guard let downloadStream = self.downloadStream, let syncRange = self.syncRange else {
guard /*let downloadStream = self.downloadStream,*/ let syncRange = self.syncRange else {
logger.error("Dont have downloadStream. Trying to download blocks before sync range is not set.")
throw ZcashError.blockDownloadSyncRangeNotSet
}
@ -110,6 +110,8 @@ actor BlockDownloaderImpl {
let range = downloadFrom...downloadTo
let downloadStream = try await compactBlocksDownloadStream(startHeight: range.lowerBound, targetHeight: range.upperBound)
logger.debug("""
Starting downloading blocks.
syncRange: \(syncRange.lowerBound)...\(syncRange.upperBound)
@ -224,7 +226,7 @@ extension BlockDownloaderImpl: BlockDownloader {
}
func setSyncRange(_ range: CompactBlockRange) async throws {
downloadStream = try await compactBlocksDownloadStream(startHeight: range.lowerBound, targetHeight: range.upperBound)
// downloadStream = try await compactBlocksDownloadStream(startHeight: range.lowerBound, targetHeight: range.upperBound)
syncRange = range
}