We are happy to announce the release of our second beta version of bchd. This release brings three new RPC calls ― reconsiderblock (zquestz), gettxoutproof (swdee), and verifytxoutproof (swdee) ― as well as the reindexchainstate startup option (cpacia).

The big new addition, however, is fast sync mode. Bchd is now the first and only implementation (between both Bitcoin Cash and Bitcoin) to offer a fast sync option to users.

Prior to this release the only way to get a full node running was to download and validate the full 140 GB blockchain from genesis. This process usually takes about a half a day or longer depending on your system.

With this release you can run bchd using the --fastsync option and it will download only about 3 GB of data and be up and running in a little over an hour.

The way it works is this:

Download a snapshotted copy of the UTXO set at block height 556767 from IPFS.

Validate the ECMH hash of the UTXO against a hardcoded checkpoint to ensure validity.

Then sync full blocks to the tip.

If you have the IPFS daemon running on localhost, it will download the UTXO set via IPFS (and seed it to other users!). If you don’t have IPFS running locally it will download it from an IPFS gateway.

We also are releasing a utxotool that lets any bchd user with a full node (synced from genesis) independently verify the hash of the UTXO set that we included in the checkpoint is correct.

Fast sync mode operates like a quasi pruned node in that it does not have a full copy of the blockchain going back to genesis. But unlike pruned mode it will not delete old historical blocks as it goes. If you want that functionality you can run the --prune option in addition to the --fastsync option.

We’d like to thank the following people who contributed their time and code to this release.

cpacia, zquestz, tyler-smith, romainPellerin, emergent-reasons, swdee, gubatron and amanusk.