<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "BitcoinKernel",
  "identifier" : "/documentation/BitcoinKernel/BlockchainSync/Update/verificationProgress",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "BitcoinKernel"
    ],
    "preciseIdentifier" : "s:13BitcoinKernel14BlockchainSyncV6UpdateV20verificationProgressSdvp"
  },
  "title" : "verificationProgress"
}
-->

# verificationProgress

Fraction of the remote chain validated locally, in `0.0...1.0`.

```
var verificationProgress: Double { get }
```

## Return Value

`0.0` when remote height is unknown (initial
[`BlockchainSync.Update.State.preparing`](/documentation/BitcoinKernel/BlockchainSync/Update/State-swift.enum/preparing)); `1.0` when local has reached
or exceeds remote (terminal [`BlockchainSync.Update.State.finished`](/documentation/BitcoinKernel/BlockchainSync/Update/State-swift.enum/finished) or
transient reorg where local briefly sits ahead); otherwise the
clamped ratio.

## Discussion

Mirrors Bitcoin Core’s
[`GetVerificationProgress`](https://github.com/bitcoin/bitcoin/blob/master/src/validation.h)
conceptually, using a simple `localHeight / remoteHeight` ratio.
The time-weighted refinement Bitcoin Core uses — accounting for
variable average block time — is reserved for potential future
improvement.