bchd is an alternative full node bitcoin cash implementation written in Go (golang).
This project is a port of the btcd codebase to Bitcoin Cash. It provides a high powered and reliable blockchain server which makes it a suitable backend to serve blockchain data to lite clients and block explorers or to power your local wallet.
bchd does not include any wallet functionality by design as it makes the codebase more modular and easy to maintain. The bchwallet is a separate application that provides a secure Bitcoin Cash wallet that communicates with your running bchd instance via the API.
Table of Contents
- Getting Started
Go 1.12.17 or newer.
Install Pre-built Packages
The easiest way to run the server is to download a pre-built binary. You can find binaries of our latest release for each operating system at the releases page.
Build from Source
If you prefer to install from source do the following:
Install Go according to the installation instructions here: http://golang.org/doc/install
Run the following commands to obtain bchd, all dependencies, and install it:
go get github.com/gcash/bchd
This will download the source code into your GOPATH and compile
bchd and install it in your path.
For developers if you wish to place the working directory outside your GOPATH you can do so with Go >=1.12.x as follows:
mkdir workspace cd workspace git clone https://github.com/gcash/bchd.git cd bchd go install (or build or run, etc)
Dependencies will be automatically installed to
If you are a bchd contributor and would like to change the default config file (
bchd.conf), make any changes to
sample-bchd.conf and then run the following commands:
go-bindata sample-bchd.conf # requires github.com/go-bindata/go-bindata/ gofmt -s -w bindata.go
To start bchd with default options just run:
You'll find a large number of runtime options with the help flag. All of them can also be set in a config file. See the sample config file for an example of how to use it.
You can use the common json RPC interface through the
./bchctl --help ./bchctl --listcommands
Bchd separates the node and the wallet. Commands for the wallet will work when you are also running bchwallet:
./bchctl -u username -P password --wallet getnewaddress
Building and running
bchd in docker is quite painless. To build the image:
docker build . -t bchd
To run the image:
docker run bchd
bchctl and connect to your
# Find the running bchd container. docker ps # Exec bchctl. docker exec <container> bchctl <command>
The documentation is a work-in-progress. It is located in the docs folder.
Contributions are definitely welcome! Please read the contributing guidelines before starting.
To report security issues please contact:
Chris Pacia (firstname.lastname@example.org) - GPG Fingerprint: 0150 2502 DD3A 928D CE52 8CB9 B895 6DBF EE7C 105C
Josh Ellithorpe (email@example.com) - GPG Fingerprint: B6DE 3514 E07E 30BB 5F40 8D74 E49B 7E00 0022 8DDD
bchd is licensed under the copyfree ISC License.