github.com/btcsuite/btcd@v0.24.0/README.md (about)

     1  btcd
     2  ====
     3  
     4  [![Build Status](https://github.com/btcsuite/btcd/workflows/Build%20and%20Test/badge.svg)](https://github.com/btcsuite/btcd/actions)
     5  [![Coverage Status](https://coveralls.io/repos/github/btcsuite/btcd/badge.svg?branch=master)](https://coveralls.io/github/btcsuite/btcd?branch=master)
     6  [![ISC License](https://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org)
     7  [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](https://pkg.go.dev/github.com/btcsuite/btcd)
     8  
     9  btcd is an alternative full node bitcoin implementation written in Go (golang).
    10  
    11  This project is currently under active development and is in a Beta state.  It
    12  is extremely stable and has been in production use since October 2013.
    13  
    14  It properly downloads, validates, and serves the block chain using the exact
    15  rules (including consensus bugs) for block acceptance as Bitcoin Core.  We have
    16  taken great care to avoid btcd causing a fork to the block chain.  It includes a
    17  full block validation testing framework which contains all of the 'official'
    18  block acceptance tests (and some additional ones) that is run on every pull
    19  request to help ensure it properly follows consensus.  Also, it passes all of
    20  the JSON test data in the Bitcoin Core code.
    21  
    22  It also properly relays newly mined blocks, maintains a transaction pool, and
    23  relays individual transactions that have not yet made it into a block.  It
    24  ensures all individual transactions admitted to the pool follow the rules
    25  required by the block chain and also includes more strict checks which filter
    26  transactions based on miner requirements ("standard" transactions).
    27  
    28  One key difference between btcd and Bitcoin Core is that btcd does *NOT* include
    29  wallet functionality and this was a very intentional design decision.  See the
    30  blog entry [here](https://web.archive.org/web/20171125143919/https://blog.conformal.com/btcd-not-your-moms-bitcoin-daemon)
    31  for more details.  This means you can't actually make or receive payments
    32  directly with btcd.  That functionality is provided by the
    33  [btcwallet](https://github.com/btcsuite/btcwallet) and
    34  [Paymetheus](https://github.com/btcsuite/Paymetheus) (Windows-only) projects
    35  which are both under active development.
    36  
    37  ## Requirements
    38  
    39  [Go](http://golang.org) 1.17 or newer.
    40  
    41  ## Installation
    42  
    43  https://github.com/btcsuite/btcd/releases
    44  
    45  #### Linux/BSD/MacOSX/POSIX - Build from Source
    46  
    47  - Install Go according to the installation instructions here:
    48    http://golang.org/doc/install
    49  
    50  - Ensure Go was installed properly and is a supported version:
    51  
    52  ```bash
    53  $ go version
    54  $ go env GOROOT GOPATH
    55  ```
    56  
    57  NOTE: The `GOROOT` and `GOPATH` above must not be the same path.  It is
    58  recommended that `GOPATH` is set to a directory in your home directory such as
    59  `~/goprojects` to avoid write permission issues.  It is also recommended to add
    60  `$GOPATH/bin` to your `PATH` at this point.
    61  
    62  - Run the following commands to obtain btcd, all dependencies, and install it:
    63  
    64  ```bash
    65  $ cd $GOPATH/src/github.com/btcsuite/btcd
    66  $ go install -v . ./cmd/...
    67  ```
    68  
    69  - btcd (and utilities) will now be installed in ```$GOPATH/bin```.  If you did
    70    not already add the bin directory to your system path during Go installation,
    71    we recommend you do so now.
    72  
    73  ## Updating
    74  
    75  #### Linux/BSD/MacOSX/POSIX - Build from Source
    76  
    77  - Run the following commands to update btcd, all dependencies, and install it:
    78  
    79  ```bash
    80  $ cd $GOPATH/src/github.com/btcsuite/btcd
    81  $ git pull
    82  $ go install -v . ./cmd/...
    83  ```
    84  
    85  ## Getting Started
    86  
    87  btcd has several configuration options available to tweak how it runs, but all
    88  of the basic operations described in the intro section work with zero
    89  configuration.
    90  
    91  #### Linux/BSD/POSIX/Source
    92  
    93  ```bash
    94  $ ./btcd
    95  ```
    96  
    97  ## IRC
    98  
    99  - irc.libera.chat
   100  - channel #btcd
   101  - [webchat](https://web.libera.chat/gamja/?channels=btcd)
   102  
   103  ## Issue Tracker
   104  
   105  The [integrated github issue tracker](https://github.com/btcsuite/btcd/issues)
   106  is used for this project.
   107  
   108  ## Documentation
   109  
   110  The documentation is a work-in-progress.  It is located in the [docs](https://github.com/btcsuite/btcd/tree/master/docs) folder.
   111  
   112  ## Release Verification
   113  
   114  Please see our [documentation on the current build/verification
   115  process](https://github.com/btcsuite/btcd/tree/master/release) for all our
   116  releases for information on how to verify the integrity of published releases
   117  using our reproducible build system.
   118  
   119  ## License
   120  
   121  btcd is licensed under the [copyfree](http://copyfree.org) ISC License.