0

I've seen some guides that suggest that initial sync time for a new full node can be accelerated by setting checkpoints: false but I don't understand why that would be the case. My thinking is the opposite would be true, because bitcoind won't bother fully verifying blocks below checkpoint height?

  • What software is this question about? – Pieter Wuille Feb 7 at 22:20
  • I'm asking about Bitcoin Core. Although the speedup I heard about was in reference to lcoin (the litecoin fork of bcoin). In that case I think checkpoints actually prevented the node from getting blocks from peers since the network is so much smaller and the checkpoints are "too far apart" – pinhead Feb 8 at 1:50
1

A Checkpoint is the header hash permitted at a given height, thereby hardcoding the chain that the validating node must follow. If a node follows an alternative chain branch which reaches the same height, this branch can now be identified as such and rejected. This was initially designed to protect a node from following an alternative long branch, especially generated with low difficulty, which could be so long that it would challenge the available resources of the validating node.

Validation used to be skipped prior to checkpoints, but that is no longer the case. Validation is skipped up to "known blocks", but only if these are found in the strongest chain. Today, checkpoints don't reduce chain sync time.

  • What's "known blocks"? Is that a separate list from checkpoints? – pinhead Feb 7 at 20:44
  • 1
    Yes. When syncing the node will first build the strongest header chain, and if known blocks are included, it will download all blocks but skip validation up to the known block. However, unlike checkpoints, if the strong header chain does not include any known blocks, this is ok and validation will begin from genesis. – James C. Feb 7 at 20:47
  • Its confusing, checkpoints guard against following chain branches other than ones formed thru checkpoints. Known blocks are from known branches so validation can be skipped, but a node mustn’t necessarily follow known branches. – James C. Feb 7 at 20:58
  • 1
    @JamesC. In Bitcoin Core (assuming that's what the question is about), the "known blocks" feature is called "assumevalid", and you can configure it yourself. It is indeed independent from checkpoints. – Pieter Wuille Feb 7 at 22:21

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.