2013-09-09 18:00:46 +02:00
|
|
|
btcd
|
|
|
|
====
|
|
|
|
|
2020-05-13 14:44:07 +02:00
|
|
|
[![Build Status](https://github.com/btcsuite/btcd/workflows/Build%20and%20Test/badge.svg)](https://github.com/btcsuite/btcd/actions)
|
2020-08-24 20:58:47 +02:00
|
|
|
[![Coverage Status](https://coveralls.io/repos/github/btcsuite/btcd/badge.svg?branch=master)](https://coveralls.io/github/btcsuite/btcd?branch=master)
|
2020-05-13 14:44:07 +02:00
|
|
|
[![ISC License](https://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org)
|
2021-03-04 23:12:45 +01:00
|
|
|
[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](https://pkg.go.dev/github.com/btcsuite/btcd)
|
2013-12-09 03:44:06 +01:00
|
|
|
|
2013-09-09 18:00:46 +02:00
|
|
|
btcd is an alternative full node bitcoin implementation written in Go (golang).
|
|
|
|
|
2014-05-23 18:18:08 +02:00
|
|
|
This project is currently under active development and is in a Beta state. It
|
2016-03-11 21:36:32 +01:00
|
|
|
is extremely stable and has been in production use since October 2013.
|
2014-05-23 18:18:08 +02:00
|
|
|
|
|
|
|
It properly downloads, validates, and serves the block chain using the exact
|
2016-09-14 01:11:12 +02:00
|
|
|
rules (including consensus bugs) for block acceptance as Bitcoin Core. We have
|
|
|
|
taken great care to avoid btcd causing a fork to the block chain. It includes a
|
|
|
|
full block validation testing framework which contains all of the 'official'
|
|
|
|
block acceptance tests (and some additional ones) that is run on every pull
|
|
|
|
request to help ensure it properly follows consensus. Also, it passes all of
|
|
|
|
the JSON test data in the Bitcoin Core code.
|
2014-05-23 18:18:08 +02:00
|
|
|
|
2016-09-14 01:11:12 +02:00
|
|
|
It also properly relays newly mined blocks, maintains a transaction pool, and
|
|
|
|
relays individual transactions that have not yet made it into a block. It
|
|
|
|
ensures all individual transactions admitted to the pool follow the rules
|
|
|
|
required by the block chain and also includes more strict checks which filter
|
|
|
|
transactions based on miner requirements ("standard" transactions).
|
2014-05-23 18:18:08 +02:00
|
|
|
|
|
|
|
One key difference between btcd and Bitcoin Core is that btcd does *NOT* include
|
|
|
|
wallet functionality and this was a very intentional design decision. See the
|
2019-09-09 17:24:56 +02:00
|
|
|
blog entry [here](https://web.archive.org/web/20171125143919/https://blog.conformal.com/btcd-not-your-moms-bitcoin-daemon)
|
2013-10-05 09:51:12 +02:00
|
|
|
for more details. This means you can't actually make or receive payments
|
2014-02-04 18:03:35 +01:00
|
|
|
directly with btcd. That functionality is provided by the
|
2015-01-17 07:27:28 +01:00
|
|
|
[btcwallet](https://github.com/btcsuite/btcwallet) and
|
2016-03-11 21:36:32 +01:00
|
|
|
[Paymetheus](https://github.com/btcsuite/Paymetheus) (Windows-only) projects
|
|
|
|
which are both under active development.
|
2013-10-05 05:59:05 +02:00
|
|
|
|
2014-02-13 18:39:17 +01:00
|
|
|
## Requirements
|
|
|
|
|
2020-09-17 07:38:18 +02:00
|
|
|
[Go](http://golang.org) 1.14 or newer.
|
2014-02-13 18:39:17 +01:00
|
|
|
|
2013-10-05 05:59:05 +02:00
|
|
|
## Installation
|
|
|
|
|
2015-01-17 07:48:13 +01:00
|
|
|
https://github.com/btcsuite/btcd/releases
|
2013-10-05 05:59:05 +02:00
|
|
|
|
2015-01-24 02:45:50 +01:00
|
|
|
#### Linux/BSD/MacOSX/POSIX - Build from Source
|
2013-10-05 05:59:05 +02:00
|
|
|
|
|
|
|
- Install Go according to the installation instructions here:
|
|
|
|
http://golang.org/doc/install
|
|
|
|
|
2015-05-29 22:25:52 +02:00
|
|
|
- Ensure Go was installed properly and is a supported version:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ go version
|
|
|
|
$ go env GOROOT GOPATH
|
|
|
|
```
|
|
|
|
|
|
|
|
NOTE: The `GOROOT` and `GOPATH` above must not be the same path. It is
|
|
|
|
recommended that `GOPATH` is set to a directory in your home directory such as
|
2016-05-06 17:47:53 +02:00
|
|
|
`~/goprojects` to avoid write permission issues. It is also recommended to add
|
|
|
|
`$GOPATH/bin` to your `PATH` at this point.
|
2015-05-29 22:25:52 +02:00
|
|
|
|
2016-05-06 17:47:53 +02:00
|
|
|
- Run the following commands to obtain btcd, all dependencies, and install it:
|
2015-02-08 19:00:36 +01:00
|
|
|
|
|
|
|
```bash
|
2016-05-06 17:47:53 +02:00
|
|
|
$ cd $GOPATH/src/github.com/btcsuite/btcd
|
2018-11-30 02:53:41 +01:00
|
|
|
$ GO111MODULE=on go install -v . ./cmd/...
|
2015-02-08 19:00:36 +01:00
|
|
|
```
|
2013-10-05 05:59:05 +02:00
|
|
|
|
2016-05-06 17:47:53 +02:00
|
|
|
- btcd (and utilities) will now be installed in ```$GOPATH/bin```. If you did
|
|
|
|
not already add the bin directory to your system path during Go installation,
|
|
|
|
we recommend you do so now.
|
2013-10-05 05:59:05 +02:00
|
|
|
|
2013-10-08 20:30:36 +02:00
|
|
|
## Updating
|
|
|
|
|
2015-01-24 02:45:50 +01:00
|
|
|
#### Linux/BSD/MacOSX/POSIX - Build from Source
|
2013-10-08 20:30:36 +02:00
|
|
|
|
2016-05-06 17:47:53 +02:00
|
|
|
- Run the following commands to update btcd, all dependencies, and install it:
|
2015-02-08 19:00:36 +01:00
|
|
|
|
|
|
|
```bash
|
2016-05-06 17:47:53 +02:00
|
|
|
$ cd $GOPATH/src/github.com/btcsuite/btcd
|
2018-11-30 02:53:41 +01:00
|
|
|
$ git pull
|
|
|
|
$ GO111MODULE=on go install -v . ./cmd/...
|
2015-02-08 19:00:36 +01:00
|
|
|
```
|
2013-10-08 20:30:36 +02:00
|
|
|
|
2013-10-05 05:59:05 +02:00
|
|
|
## Getting Started
|
|
|
|
|
2017-10-29 20:56:03 +01:00
|
|
|
btcd has several configuration options available to tweak how it runs, but all
|
2013-10-05 05:59:05 +02:00
|
|
|
of the basic operations described in the intro section work with zero
|
|
|
|
configuration.
|
|
|
|
|
|
|
|
#### Linux/BSD/POSIX/Source
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ ./btcd
|
2016-09-13 21:10:19 +02:00
|
|
|
```
|
2014-03-04 18:58:59 +01:00
|
|
|
|
2015-05-12 20:01:58 +02:00
|
|
|
## IRC
|
2014-03-04 18:58:59 +01:00
|
|
|
|
2015-05-12 20:01:58 +02:00
|
|
|
- irc.freenode.net
|
2014-03-04 18:58:59 +01:00
|
|
|
- channel #btcd
|
2015-05-12 20:01:58 +02:00
|
|
|
- [webchat](https://webchat.freenode.net/?channels=btcd)
|
2014-03-04 18:58:59 +01:00
|
|
|
|
2014-02-04 18:03:35 +01:00
|
|
|
## Issue Tracker
|
2013-09-09 18:00:46 +02:00
|
|
|
|
2015-01-17 07:48:13 +01:00
|
|
|
The [integrated github issue tracker](https://github.com/btcsuite/btcd/issues)
|
2014-02-04 18:03:35 +01:00
|
|
|
is used for this project.
|
2013-10-05 05:59:05 +02:00
|
|
|
|
2014-02-04 18:06:39 +01:00
|
|
|
## Documentation
|
|
|
|
|
2015-01-18 18:16:43 +01:00
|
|
|
The documentation is a work-in-progress. It is located in the [docs](https://github.com/btcsuite/btcd/tree/master/docs) folder.
|
2014-02-04 18:06:39 +01:00
|
|
|
|
2019-10-11 01:17:57 +02:00
|
|
|
## Release Verification
|
2013-10-05 05:59:05 +02:00
|
|
|
|
2019-10-11 01:17:57 +02:00
|
|
|
Please see our [documentation on the current build/verification
|
|
|
|
process](https://github.com/btcsuite/btcd/tree/master/release) for all our
|
|
|
|
releases for information on how to verify the integrity of published releases
|
|
|
|
using our reproducible build system.
|
2013-10-05 05:59:05 +02:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
2014-01-15 17:19:51 +01:00
|
|
|
btcd is licensed under the [copyfree](http://copyfree.org) ISC License.
|