We’d like to announce the first beta release of the bchd Bitcoin Cash full node implementation. It has been a little over two months since bchd was forked from btcd and in that time it’s undergone a large amount of development.
We’ve implemented all four of the Bitcoin Cash hardforks and removed a major softfork (segwit) from the codebase. This release contains a number features and improvements over btcd including a utxo memory cache, prune mode, and bip159
NODE_NETWORK_LIMITED to allow pruned nodes to offer blockchain services to the network.
We were waiting until after the hardfork to release this beta version because we wanted to make sure there were no issues transitioning to the new consensus rules, but we had no issues at all as bchd operated incredibly smooth right through the fork.
Bchd is currently the only full node implementation running on the network that supports bip157/158
NODE_CF in which the node maintains a compact filter index to serve to lite clients. This allows developers to build a new type of P2P SPV wallet that uses client side filtering to provide SPV users with unmatched privacy.
To that end we’ve also ported the Neutrino wallet backend to BCH so we actually have an SPV wallet that makes use of this functionality. At present it’s the most private SPV codebase on the market. There really isn’t a close second in terms of privacy. We’ll have more information about neutrino in an upcoming blog post.
What’s in the box
The release consists of three separate software programs:
bchd is the blockchain server. It connects to the peer network and handles all of the blockchain processing. It offers an optional transaction index and address index that give access to additional RPC calls when turned on. It’s also the only full node that automatically sets up SSL for the RPC connection to allow you to easily run it on a remote machine.
bchd has no wallet. This is different from the c++ implementations which bundle the wallet together with the node software. By decoupling the two we create a much easier to manage codebase.
bchwallet is wallet software that connects to your running instance of
bchdto scan for relevant transactions. This software also allows you to switch to the neutrino backend (mentioned above) if you want to run in SPV mode.
bchctl is the command line interface for controlling both
bchwallet. If you connect it to the
bchwallet you will not only have access to the wallet RPCs, but it will proxy the blockchain RPCs from
There are binaries available for a wide variety of operating systems including BSD*, Plan 9, and Solaris.
Please keep in mind this is beta software and probably not ready for production usage, though it is in pretty good shape right now. Please help us test it out by downloading it and taking it for a test drive. You can report issues and bugs to us on github.
We’d like to thank the following people who contributed their time and code to making bchd happen.
cpacia, zquestz, tyler-smith, romainPellerin, emergent-reasons, swdee, Shanon Denize, nhandl3, DYDYSY, and all of the btcd contributors who created the codebase we forked from.