[#1016] Create blocks download stream per batch
This commit is contained in:
parent
bb3d7d06c5
commit
dad5d2cb40
|
@ -681,7 +681,6 @@ actor CompactBlockProcessor {
|
||||||
|
|
||||||
if let range = ranges.downloadAndScanRange {
|
if let range = ranges.downloadAndScanRange {
|
||||||
logger.debug("Starting sync with range: \(range.lowerBound)...\(range.upperBound)")
|
logger.debug("Starting sync with range: \(range.lowerBound)...\(range.upperBound)")
|
||||||
try await blockDownloader.setSyncRange(range)
|
|
||||||
try await downloadAndScanBlocks(at: range, totalProgressRange: totalProgressRange)
|
try await downloadAndScanBlocks(at: range, totalProgressRange: totalProgressRange)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -778,6 +777,7 @@ actor CompactBlockProcessor {
|
||||||
try Task.checkCancellation()
|
try Task.checkCancellation()
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
try await blockDownloader.setSyncRange(range)
|
||||||
await blockDownloader.setDownloadLimit(processingRange.upperBound + (2 * batchSize))
|
await blockDownloader.setDownloadLimit(processingRange.upperBound + (2 * batchSize))
|
||||||
await blockDownloader.startDownload(maxBlockBufferSize: config.downloadBufferSize)
|
await blockDownloader.startDownload(maxBlockBufferSize: config.downloadBufferSize)
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ actor BlockDownloaderImpl {
|
||||||
let metrics: SDKMetrics
|
let metrics: SDKMetrics
|
||||||
let logger: Logger
|
let logger: Logger
|
||||||
|
|
||||||
private var downloadStream: BlockDownloaderStream?
|
// private var downloadStream: BlockDownloaderStream?
|
||||||
private var syncRange: CompactBlockRange?
|
private var syncRange: CompactBlockRange?
|
||||||
|
|
||||||
private var downloadToHeight: BlockHeight = 0
|
private var downloadToHeight: BlockHeight = 0
|
||||||
|
@ -89,7 +89,7 @@ actor BlockDownloaderImpl {
|
||||||
private func doDownload(maxBlockBufferSize: Int) async {
|
private func doDownload(maxBlockBufferSize: Int) async {
|
||||||
lastError = nil
|
lastError = nil
|
||||||
do {
|
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.")
|
logger.error("Dont have downloadStream. Trying to download blocks before sync range is not set.")
|
||||||
throw ZcashError.blockDownloadSyncRangeNotSet
|
throw ZcashError.blockDownloadSyncRangeNotSet
|
||||||
}
|
}
|
||||||
|
@ -110,6 +110,8 @@ actor BlockDownloaderImpl {
|
||||||
|
|
||||||
let range = downloadFrom...downloadTo
|
let range = downloadFrom...downloadTo
|
||||||
|
|
||||||
|
let downloadStream = try await compactBlocksDownloadStream(startHeight: range.lowerBound, targetHeight: range.upperBound)
|
||||||
|
|
||||||
logger.debug("""
|
logger.debug("""
|
||||||
Starting downloading blocks.
|
Starting downloading blocks.
|
||||||
syncRange: \(syncRange.lowerBound)...\(syncRange.upperBound)
|
syncRange: \(syncRange.lowerBound)...\(syncRange.upperBound)
|
||||||
|
@ -224,7 +226,7 @@ extension BlockDownloaderImpl: BlockDownloader {
|
||||||
}
|
}
|
||||||
|
|
||||||
func setSyncRange(_ range: CompactBlockRange) async throws {
|
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
|
syncRange = range
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue