Oddbean new post about | logout
 Here's a mind-blowing gem of a little #bitcoin "hack" for node runners...

To massively speed up the time of initial block download, if you already have validated the blockchain, say if you're going to sync up a second node, then there really is no need to re-validate every bloody transaction on the Bitcoin blockchain. 

You can take your other node, because you trust it, get the most recent block, copy its hash, and tell your new node that this block is valid, no need to check every tx that comes before it.

This way, your new node will download all the blocks, it will still check that all the hashes match up, but it doesn't need to check if the transactions are not double spends or other things like that (because your node has already done that, and hashed the most recent block).

Method...

1. Stop your new node from syncing for the minute.
2. Get the hash of the latest block from your node; in terminal type:
bitcoin-cli getblockchain info, and you'll see a string for "best hash".
3. Open bitcoin.conf file for the new node and add the line ...

assumevalid=00000000000000000003aab3294 (etc)

That's the hash after the equals sign.
Then restart Bitcoin Core and enjoy the benefits.

Full disclosure - I haven't taken any measurements about how much faster this is, I'm trying it for the first time now.

More possibilities...

If you're setting up a node for someone, obviously they're trusting you, so you could given them the hash from your node; but it's only useful if they want to save time.

(sned sats)