2020-03-23 15:06:58 -07:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< title > CompactBlockProcessor Class Reference< / title >
< link rel = "stylesheet" type = "text/css" href = "../css/jazzy.css" / >
< link rel = "stylesheet" type = "text/css" href = "../css/highlight.css" / >
< meta charset = 'utf-8' >
< script src = "../js/jquery.min.js" defer > < / script >
< script src = "../js/jazzy.js" defer > < / script >
< / head >
< body >
< a name = "//apple_ref/swift/Class/CompactBlockProcessor" class = "dashAnchor" > < / a >
< a title = "CompactBlockProcessor Class Reference" > < / a >
< header >
< div class = "content-wrapper" >
2020-04-06 10:06:13 -07:00
< p > < a href = "../index.html" > ZcashLightClientKit Docs< / a > (71% documented)< / p >
2020-03-23 15:06:58 -07:00
< / div >
< / header >
< div class = "content-wrapper" >
< p id = "breadcrumbs" >
< a href = "../index.html" > ZcashLightClientKit Reference< / a >
< img id = "carat" src = "../img/carat.png" / >
CompactBlockProcessor Class Reference
< / p >
< / div >
< div class = "content-wrapper" >
< nav class = "sidebar" >
< ul class = "nav-groups" >
< li class = "nav-group-name" >
< a href = "../Classes.html" > Classes< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "../Classes/CompactBlockProcessor.html" > CompactBlockProcessor< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Classes/CompactBlockProcessor/Configuration.html" > – Configuration< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Classes/CompactBlockProcessor/State.html" > – State< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Classes/Initializer.html" > Initializer< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Classes/LightWalletGRPCService.html" > LightWalletGRPCService< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Classes/SDKSynchronizer.html" > SDKSynchronizer< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Classes/SDKSynchronizer/NotificationKeys.html" > – NotificationKeys< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Classes/ZcashSDK.html" > ZcashSDK< / a >
< / li >
< / ul >
< / li >
< li class = "nav-group-name" >
< a href = "../Enums.html" > Enumerations< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "../Enums/CompactBlockProcessorError.html" > CompactBlockProcessorError< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Enums/InitializerError.html" > InitializerError< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Enums/LightWalletServiceError.html" > LightWalletServiceError< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Enums/ResourceProviderError.html" > ResourceProviderError< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Enums/RustWeldingError.html" > RustWeldingError< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Enums/Status.html" > Status< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Enums/SynchronizerError.html" > SynchronizerError< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Enums/TransactionEncoderError.html" > TransactionEncoderError< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Enums/TransactionKind.html" > TransactionKind< / a >
< / li >
< / ul >
< / li >
< li class = "nav-group-name" >
< a href = "../Extensions.html" > Extensions< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "../Extensions/Array.html" > Array< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Extensions/BlockHeight.html" > BlockHeight< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Extensions/Collection.html" > Collection< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Extensions/CompactBlockRange.html" > CompactBlockRange< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Extensions/Data.html" > Data< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Extensions/Data/HexEncodingOptions.html" > – HexEncodingOptions< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Extensions/Notification.html" > Notification< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Extensions/Notification/Name.html" > – Name< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Extensions/String.html" > String< / a >
< / li >
< / ul >
< / li >
< li class = "nav-group-name" >
< a href = "../Protocols.html" > Protocols< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "../Protocols/AbstractTransaction.html" > AbstractTransaction< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/CompactBlockDownloading.html" > CompactBlockDownloading< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/ConfirmedTransactionEntity.html" > ConfirmedTransactionEntity< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/LightWalletService.html" > LightWalletService< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/LightWalletServiceResponse.html" > LightWalletServiceResponse< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/Logger.html" > Logger< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/MinedTransactionEntity.html" > MinedTransactionEntity< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/PaginatedTransactionRepository.html" > PaginatedTransactionRepository< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/PendingTransactionEntity.html" > PendingTransactionEntity< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/RawIdentifiable.html" > RawIdentifiable< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/ResourceProvider.html" > ResourceProvider< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/SeedProvider.html" > SeedProvider< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/SignedTransactionEntity.html" > SignedTransactionEntity< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/Synchronizer.html" > Synchronizer< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/TransactionEntity.html" > TransactionEntity< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Protocols/ZcashRustBackendWelding.html" > ZcashRustBackendWelding< / a >
< / li >
< / ul >
< / li >
< li class = "nav-group-name" >
< a href = "../Structs.html" > Structures< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "../Structs/CompactBlockProcessorNotificationKey.html" > CompactBlockProcessorNotificationKey< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Structs/DefaultResourceProvider.html" > DefaultResourceProvider< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Structs/LightWalletEndpoint.html" > LightWalletEndpoint< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Structs/WalletBirthday.html" > WalletBirthday< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Structs/ZcashCompactBlock.html" > ZcashCompactBlock< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Structs.html#/s:19ZcashLightClientKit0A27RustBackendWeldingConstantsV" > ZcashRustBackendWeldingConstants< / a >
< / li >
< / ul >
< / li >
< li class = "nav-group-name" >
< a href = "../Typealiases.html" > Type Aliases< / a >
< ul class = "nav-group-tasks" >
< li class = "nav-group-task" >
< a href = "../Typealiases.html#/s:19ZcashLightClientKit11BlockHeighta" > BlockHeight< / a >
< / li >
< li class = "nav-group-task" >
< a href = "../Typealiases.html#/s:19ZcashLightClientKit17CompactBlockRangea" > CompactBlockRange< / a >
< / li >
< / ul >
< / li >
< / ul >
< / nav >
< article class = "main-content" >
< section >
< section class = "section" >
< h1 > CompactBlockProcessor< / h1 >
< div class = "declaration" >
< div class = "language" >
< pre class = "highlight swift" > < code > < span class = "kd" > public< / span > < span class = "kd" > class< / span > < span class = "kt" > CompactBlockProcessor< / span > < / code > < / pre >
< / div >
< / div >
< p > The compact block processor is in charge of orchestrating the download and caching of compact blocks from a LightWalletEndpoint
when started the processor downloads does a download - validate - scan cycle until it reaches latest height on the blockchain.< / p >
< / section >
< section class = "section task-group-section" >
< div class = "task-group" >
< ul >
< li class = "item" >
< div >
< code >
< a name = "/s:19ZcashLightClientKit21CompactBlockProcessorC13ConfigurationV" > < / a >
< a name = "//apple_ref/swift/Struct/Configuration" class = "dashAnchor" > < / a >
< a class = "token" href = "#/s:19ZcashLightClientKit21CompactBlockProcessorC13ConfigurationV" > Configuration< / a >
< / code >
< / div >
< div class = "height-container" >
< div class = "pointer-container" > < / div >
< section class = "section" >
< div class = "pointer" > < / div >
< div class = "abstract" >
< p > Compact Block Processor configuration< / p >
< p > Property: cacheDbPath absolute file path of the DB where raw, unprocessed compact blocks are stored.
Property: dataDbPath absolute file path of the DB where all information derived from the cache DB is stored.< / p >
< a href = "../Classes/CompactBlockProcessor/Configuration.html" class = "slightly-smaller" > See more< / a >
< / div >
< div class = "declaration" >
< h4 > Declaration< / h4 >
< div class = "language" >
< p class = "aside-title" > Swift< / p >
< pre class = "highlight swift" > < code > < span class = "kd" > public< / span > < span class = "kd" > struct< / span > < span class = "kt" > Configuration< / span > < / code > < / pre >
< / div >
< / div >
< / section >
< / div >
< / li >
< li class = "item" >
< div >
< code >
< a name = "/s:19ZcashLightClientKit21CompactBlockProcessorC5StateO" > < / a >
< a name = "//apple_ref/swift/Enum/State" class = "dashAnchor" > < / a >
< a class = "token" href = "#/s:19ZcashLightClientKit21CompactBlockProcessorC5StateO" > State< / a >
< / code >
< / div >
< div class = "height-container" >
< div class = "pointer-container" > < / div >
< section class = "section" >
< div class = "pointer" > < / div >
< div class = "abstract" >
< p > Represents the possible states of a CompactBlockProcessor< / p >
< a href = "../Classes/CompactBlockProcessor/State.html" class = "slightly-smaller" > See more< / a >
< / div >
< div class = "declaration" >
< h4 > Declaration< / h4 >
< div class = "language" >
< p class = "aside-title" > Swift< / p >
< pre class = "highlight swift" > < code > < span class = "kd" > public< / span > < span class = "kd" > enum< / span > < span class = "kt" > State< / span > < / code > < / pre >
< pre class = "highlight swift" > < code > < span class = "kd" > extension< / span > < span class = "kt" > < a href = "../Classes/CompactBlockProcessor.html" > CompactBlockProcessor< / a > < / span > < span class = "o" > .< / span > < span class = "kt" > State< / span > < span class = "p" > :< / span > < span class = "kt" > Equatable< / span > < / code > < / pre >
< / div >
< / div >
< / section >
< / div >
< / li >
< li class = "item" >
< div >
< code >
< a name = "/s:19ZcashLightClientKit21CompactBlockProcessorC5stateAC5StateOvp" > < / a >
< a name = "//apple_ref/swift/Property/state" class = "dashAnchor" > < / a >
< a class = "token" href = "#/s:19ZcashLightClientKit21CompactBlockProcessorC5stateAC5StateOvp" > state< / a >
< / code >
< / div >
< div class = "height-container" >
< div class = "pointer-container" > < / div >
< section class = "section" >
< div class = "pointer" > < / div >
< div class = "abstract" >
< p > Undocumented< / p >
< / div >
< div class = "declaration" >
< h4 > Declaration< / h4 >
< div class = "language" >
< p class = "aside-title" > Swift< / p >
< pre class = "highlight swift" > < code > < span class = "kd" > public< / span > < span class = "kd" > private(set)< / span > < span class = "k" > var< / span > < span class = "nv" > state< / span > < span class = "p" > :< / span > < span class = "kt" > < a href = "../Classes/CompactBlockProcessor/State.html" > State< / a > < / span > < span class = "p" > {< / span > < span class = "k" > get< / span > < span class = "k" > set< / span > < span class = "p" > }< / span > < / code > < / pre >
< / div >
< / div >
< / section >
< / div >
< / li >
< li class = "item" >
< div >
< code >
< a name = "/s:19ZcashLightClientKit21CompactBlockProcessorC10downloader7backend6configAcA0eF11Downloading_p_AA0A18RustBackendWelding_pXpAC13ConfigurationVtcfc" > < / a >
< a name = "//apple_ref/swift/Method/init(downloader:backend:config:)" class = "dashAnchor" > < / a >
< a class = "token" href = "#/s:19ZcashLightClientKit21CompactBlockProcessorC10downloader7backend6configAcA0eF11Downloading_p_AA0A18RustBackendWelding_pXpAC13ConfigurationVtcfc" > init(downloader:backend:config:)< / a >
< / code >
< / div >
< div class = "height-container" >
< div class = "pointer-container" > < / div >
< section class = "section" >
< div class = "pointer" > < / div >
< div class = "abstract" >
< p > Initializes a CompactBlockProcessor instance< / p >
< / div >
< div class = "declaration" >
< h4 > Declaration< / h4 >
< div class = "language" >
< p class = "aside-title" > Swift< / p >
< pre class = "highlight swift" > < code > < span class = "kd" > public< / span > < span class = "nf" > init< / span > < span class = "p" > (< / span > < span class = "nv" > downloader< / span > < span class = "p" > :< / span > < span class = "kt" > < a href = "../Protocols/CompactBlockDownloading.html" > CompactBlockDownloading< / a > < / span > < span class = "p" > ,< / span > < span class = "nv" > backend< / span > < span class = "p" > :< / span > < span class = "kt" > < a href = "../Protocols/ZcashRustBackendWelding.html" > ZcashRustBackendWelding< / a > < / span > < span class = "o" > .< / span > < span class = "k" > Type< / span > < span class = "p" > ,< / span > < span class = "nv" > config< / span > < span class = "p" > :< / span > < span class = "kt" > < a href = "../Classes/CompactBlockProcessor/Configuration.html" > Configuration< / a > < / span > < span class = "p" > )< / span > < / code > < / pre >
< / div >
< / div >
< div >
< h4 > Parameters< / h4 >
< table class = "graybox" >
< tbody >
< tr >
< td >
< code >
< em > downloader< / em >
< / code >
< / td >
< td >
< div >
< p > an instance that complies to CompactBlockDownloading protocol< / p >
< / div >
< / td >
< / tr >
< tr >
< td >
< code >
< em > backend< / em >
< / code >
< / td >
< td >
< div >
< p > a class that complies to ZcashRustBackendWelding< / p >
< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
< / section >
< / div >
< / li >
< li class = "item" >
< div >
< code >
< a name = "/s:19ZcashLightClientKit21CompactBlockProcessorC5start5retryySb_tKF" > < / a >
< a name = "//apple_ref/swift/Method/start(retry:)" class = "dashAnchor" > < / a >
< a class = "token" href = "#/s:19ZcashLightClientKit21CompactBlockProcessorC5start5retryySb_tKF" > start(retry:)< / a >
< / code >
< / div >
< div class = "height-container" >
< div class = "pointer-container" > < / div >
< section class = "section" >
< div class = "pointer" > < / div >
< div class = "abstract" >
< p > Starts the CompactBlockProcessor instance and starts downloading and processing blocks< / p >
< p > triggers the blockProcessorStartedDownloading notification< / p >
< div class = "aside aside-important" >
< p class = "aside-title" > Important< / p >
subscribe to the notifications before calling this method
< / div >
< / div >
< div class = "declaration" >
< h4 > Declaration< / h4 >
< div class = "language" >
< p class = "aside-title" > Swift< / p >
< pre class = "highlight swift" > < code > < span class = "kd" > public< / span > < span class = "kd" > func< / span > < span class = "nf" > start< / span > < span class = "p" > (< / span > < span class = "nv" > retry< / span > < span class = "p" > :< / span > < span class = "kt" > Bool< / span > < span class = "o" > =< / span > < span class = "kc" > false< / span > < span class = "p" > )< / span > < span class = "k" > throws< / span > < / code > < / pre >
< / div >
< / div >
< / section >
< / div >
< / li >
< li class = "item" >
< div >
< code >
< a name = "/s:19ZcashLightClientKit21CompactBlockProcessorC4stop11cancelTasksySb_tF" > < / a >
< a name = "//apple_ref/swift/Method/stop(cancelTasks:)" class = "dashAnchor" > < / a >
< a class = "token" href = "#/s:19ZcashLightClientKit21CompactBlockProcessorC4stop11cancelTasksySb_tF" > stop(cancelTasks:)< / a >
< / code >
< / div >
< div class = "height-container" >
< div class = "pointer-container" > < / div >
< section class = "section" >
< div class = "pointer" > < / div >
< div class = "abstract" >
< p > Stops the CompactBlockProcessor< / p >
< p > Note: retry count is reset< / p >
< / div >
< div class = "declaration" >
< h4 > Declaration< / h4 >
< div class = "language" >
< p class = "aside-title" > Swift< / p >
< pre class = "highlight swift" > < code > < span class = "kd" > public< / span > < span class = "kd" > func< / span > < span class = "nf" > stop< / span > < span class = "p" > (< / span > < span class = "nv" > cancelTasks< / span > < span class = "p" > :< / span > < span class = "kt" > Bool< / span > < span class = "o" > =< / span > < span class = "kc" > true< / span > < span class = "p" > )< / span > < / code > < / pre >
< / div >
< / div >
< div >
< h4 > Parameters< / h4 >
< table class = "graybox" >
< tbody >
< tr >
< td >
< code >
< em > cancelTasks< / em >
< / code >
< / td >
< td >
< div >
< p > cancel the pending tasks. Defaults to true< / p >
< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
< / section >
< / div >
< / li >
< / ul >
< / div >
< / section >
< / section >
< section id = "footer" >
2020-04-06 10:06:13 -07:00
< p > © 2020 < a class = "link" href = "https://github.com/zcash/ZcashLightClientKit" target = "_blank" rel = "external" > Francisco Gindre and Jack Grigg< / a > . All rights reserved. (Last updated: 2020-04-06)< / p >
2020-03-23 15:06:58 -07:00
< p > Generated by < a class = "link" href = "https://github.com/realm/jazzy" target = "_blank" rel = "external" > jazzy ♪♫ v0.13.1< / a > , a < a class = "link" href = "https://realm.io" target = "_blank" rel = "external" > Realm< / a > project.< / p >
< / section >
< / article >
< / div >
< / body >
< / div >
< / html >