An alternative full node bitcoin cash implementation written in Go (golang)
Clone or download
Latest commit 75a8e36 Nov 14, 2018
Permalink
Failed to load latest commit information.
addrmgr Add delete method to database interface and implementation Nov 10, 2018
bchec Merge pull request #80 from gcash/validate-pkcs7 Oct 27, 2018
blockchain Fix godoc comment on prune() Nov 12, 2018
btcjson Enhancement: Implemented output for block sync VerificationProgress o… Nov 6, 2018
chaincfg Add seed.bchd.cash to the seed list (#103) Oct 31, 2018
cmd Merge pull request #21 from gcash/utxocache Nov 10, 2018
connmgr On connection retry check canceled state Oct 28, 2018
database Update toDelete slice creation Nov 12, 2018
docs Update README.md Nov 10, 2018
integration [FIX] Make node errors visible in integration tests and always clean … Nov 13, 2018
kube Increase graceful termination timeout to 10 minutes to support large … Nov 8, 2018
limits Rebrand limits package Sep 13, 2018
mempool Remove unused utxocache method Nov 3, 2018
mining Remove unused utxocache method Nov 3, 2018
netsync Fix issues from merge Nov 8, 2018
peer remove alerts (#133) Nov 13, 2018
rpcclient added rpcclient functions for command getmempoolinfo Nov 11, 2018
txscript Rebase to master Nov 2, 2018
version [FIX] Dry versioning (#121) Nov 9, 2018
wire Merge pull request #126 from gcash/pruning Nov 14, 2018
.gitignore Add Makefile and travis based release system Oct 22, 2018
.travis.yml Require Go 1.9 Oct 23, 2018
CHANGES Rebrand wire package Sep 13, 2018
Dockerfile Update kubernetes and docker configs Oct 3, 2018
Gopkg.lock Update dependencies to latest versions Oct 28, 2018
Gopkg.toml Remove glide and replace with dep Sep 13, 2018
LICENSE txscript: Significantly improve errors. Jan 12, 2017
Makefile fix documentation and build to use original sample-bchd.conf Oct 26, 2018
README.md fix documentation and build to use original sample-bchd.conf Oct 26, 2018
bchd.go [FIX] Make node errors visible in integration tests and always clean … Nov 13, 2018
bindata.go fix bindata.go to fit required project style Oct 26, 2018
config.go Use minPruneDepth in error string Nov 12, 2018
config_test.go minimally replace static default-conf with a constant Oct 26, 2018
doc.go Rebrand main package Sep 13, 2018
goclean.sh Update .travis.yml and goclean.sh Sep 22, 2018
log.go Rebrand main package Sep 13, 2018
params.go Add testnet1 params and config option Oct 1, 2018
rpcadapters.go Enhancement: Implemented output for block sync VerificationProgress o… Nov 6, 2018
rpcserver.go [FIX] Dry versioning (#121) Nov 9, 2018
rpcserverhelp.go Enhancement: Implemented output for block sync VerificationProgress o… Nov 6, 2018
rpcserverhelp_test.go Relicense to the btcsuite developers. May 1, 2015
rpcwebsocket.go Gofmt project Sep 13, 2018
sample-bchd.conf use go-bindata instead of embedding sample-conf in a source file Oct 26, 2018
server.go Merge pull request #126 from gcash/pruning Nov 14, 2018
service_windows.go Rebrand main package Sep 13, 2018
signal.go Rebrand main package Sep 13, 2018
signalsigterm.go btcd: Simplify shutdown signal handling logic. (#733) Aug 11, 2016
upgrade.go Rebrand main package Sep 13, 2018
upnp.go Fix a ton of typos accumulated over time May 30, 2017

README.md

bchd

Build Status Go Report Card ISC License GoDoc

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

Requirements

Go 1.9 or newer.

Install

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 btcd, all dependencies, and install it:

$ go get github.com/gcash/bchd

This will download and compile bchd and put it in your path.

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

Getting Started

To start bchd with default options just run:

$ ./bchd

You'll find a large number of runtime options on the help menu. All of which can also be set in a config file. See the sample config file for an example of how to use it.

Docker

Building and running bchd in docker is quite painless. To build the image:

docker build . -t bchd

To run the image:

docker run bchd

To run bchctl and connect to your bchd instance:

# Find the running bchd container.
docker ps

# Exec bchctl.
docker exec <container> bchctl <command>

Documentation

The documentation is a work-in-progress. It is located in the docs folder.

Contributing

Contributions are definitely welcome! Please read the contributing guidelines before starting.

Security Disclosures

To report security issues please contact:

Chris Pacia (ctpacia@gmail.com) - GPG Fingerprint: 0150 2502 DD3A 928D CE52 8CB9 B895 6DBF EE7C 105C

or

Josh Ellithorpe (quest@mac.com) - GPG Fingerprint: B6DE 3514 E07E 30BB 5F40 8D74 E49B 7E00 0022 8DDD

License

bchd is licensed under the copyfree ISC License.