When you download Bitcoin blocks from day 1, and verify every single transaction, you only have to do it once – ever. Even if your node fails and you need to repeat.
1) What?
This bit can sound a bit techy, don’t worry, skip to the meat and potatoes if you want (next heading).
Simply copy down the hash of the latest block and store it somewhere. Then, if you ever find yourself downloading the blockchain/timechain again, or running a second node with the re-sync method, you can add ‘assumevalid=’ in the bitcoin.conf file, and you won’t need to cryptographically verify the validity of all the transactions. What does that mean exactly?
Every transaction has a signature. The transaction (message) and the public key of the spender and the signature are all verified on the secp256k1 elliptic curve to make sure the signatures are valid. This can take time and if you’ve done it, you don’t have to a second time.
The node will still download all the transactions, and produce a Merkle root hash, and then check the block header hashes link appropriately, but all of that depends on your previous checking of the exact same transactions. Even for Segwit transactions – the signatures are not part of the timechain, but the exact transactions were already checked, and that data contributes to the Merkel root hash, which is part of the block header.
So, you can just add:
assumevalid=0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5
to the bitcoin.conf file to tell your node that every block up to this particular hash can be assumed to have valid transactions.
Meat and Potatoes
If you want to take a shortcut, I am attesting that this hash is valid for block 840,000.
I have signed this with my public key, and you can verify it too. You can get the signature here from my GitHub…
https://raw.githubusercontent.com/ArmanTheParman/Parmanode/master/src/bitcoin/block-840k.asc

If it opens a page instead of downloading, just right-click to download.
Then, to verify, do this from the directory where you downloaded the file to, probably the downloads directory:
echo "0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5" | gpg --verify block-840k.asc
Look for “Good Signature” in the output to confirm it really was me signing this particular hash value.
You can also produce a signature for others (if you have a gpg private key) …
echo "0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5" | gpg --detached-sign --armour --output block-signed.asc
