<!--
{
  "availability" : [

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

# remoteTip

The source’s best block as of the most recent
[`bestTip()`](/documentation/BitcoinKernel/BlockSource/bestTip()) call.

```
let remoteTip: BlockTip
```

## Discussion

Not monotonic within a sync run: the sync engine re-polls the
source each time `tip.height` catches up to `remoteTip.height`,
and if the source has advanced, `remoteTip` jumps forward.
During the initial [`BlockchainSync.Update.State.preparing`](/documentation/BitcoinKernel/BlockchainSync/Update/State-swift.enum/preparing) emission — before
the first `bestTip()` call succeeds — `remoteTip` is a placeholder
with `height == 0`.