2015-02-06 04:36:42 +01:00
|
|
|
chaincfg
|
|
|
|
========
|
2014-05-22 19:45:08 +02:00
|
|
|
|
2021-03-04 23:12:45 +01:00
|
|
|
[![Build Status](https://github.com/btcsuite/btcd/workflows/Build%20and%20Test/badge.svg)](https://github.com/btcsuite/btcd/actions)
|
2017-05-25 18:29:23 +02:00
|
|
|
[![ISC License](http://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/chaincfg)
|
2014-06-13 01:37:35 +02:00
|
|
|
|
2015-02-06 04:36:42 +01:00
|
|
|
Package chaincfg defines chain configuration parameters for the three standard
|
|
|
|
Bitcoin networks and provides the ability for callers to define their own custom
|
2014-05-22 19:45:08 +02:00
|
|
|
Bitcoin networks.
|
|
|
|
|
2015-02-06 04:36:42 +01:00
|
|
|
Although this package was primarily written for btcd, it has intentionally been
|
2014-05-22 19:45:08 +02:00
|
|
|
designed so it can be used as a standalone package for any projects needing to
|
|
|
|
use parameters for the standard Bitcoin networks or for projects needing to
|
|
|
|
define their own network.
|
|
|
|
|
|
|
|
## Sample Use
|
|
|
|
|
|
|
|
```Go
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"flag"
|
|
|
|
"fmt"
|
2014-05-28 03:41:30 +02:00
|
|
|
"log"
|
2014-05-22 19:45:08 +02:00
|
|
|
|
2021-12-25 01:43:16 +01:00
|
|
|
"github.com/btcsuite/btcd/btcutil"
|
2015-02-06 04:36:42 +01:00
|
|
|
"github.com/btcsuite/btcd/chaincfg"
|
2014-05-22 19:45:08 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
var testnet = flag.Bool("testnet", false, "operate on the testnet Bitcoin network")
|
|
|
|
|
|
|
|
// By default (without -testnet), use mainnet.
|
2015-02-06 04:36:42 +01:00
|
|
|
var chainParams = &chaincfg.MainNetParams
|
2014-05-22 19:45:08 +02:00
|
|
|
|
|
|
|
func main() {
|
|
|
|
flag.Parse()
|
|
|
|
|
|
|
|
// Modify active network parameters if operating on testnet.
|
|
|
|
if *testnet {
|
2015-02-06 04:36:42 +01:00
|
|
|
chainParams = &chaincfg.TestNet3Params
|
2014-05-22 19:45:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// later...
|
|
|
|
|
|
|
|
// Create and print new payment address, specific to the active network.
|
|
|
|
pubKeyHash := make([]byte, 20)
|
2015-02-06 04:36:42 +01:00
|
|
|
addr, err := btcutil.NewAddressPubKeyHash(pubKeyHash, chainParams)
|
2014-05-22 19:45:08 +02:00
|
|
|
if err != nil {
|
2014-05-28 03:41:30 +02:00
|
|
|
log.Fatal(err)
|
2014-05-22 19:45:08 +02:00
|
|
|
}
|
|
|
|
fmt.Println(addr)
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2015-10-23 18:34:50 +02:00
|
|
|
## Installation and Updating
|
2014-05-22 19:45:08 +02:00
|
|
|
|
|
|
|
```bash
|
2015-10-23 18:34:50 +02:00
|
|
|
$ go get -u github.com/btcsuite/btcd/chaincfg
|
2014-05-22 19:45:08 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
## GPG Verification Key
|
|
|
|
|
|
|
|
All official release tags are signed by Conformal so users can ensure the code
|
2015-05-01 08:28:01 +02:00
|
|
|
has not been tampered with and is coming from the btcsuite developers. To
|
|
|
|
verify the signature perform the following:
|
2014-05-22 19:45:08 +02:00
|
|
|
|
|
|
|
- Download the public key from the Conformal website at
|
|
|
|
https://opensource.conformal.com/GIT-GPG-KEY-conformal.txt
|
|
|
|
|
|
|
|
- Import the public key into your GPG keyring:
|
|
|
|
```bash
|
|
|
|
gpg --import GIT-GPG-KEY-conformal.txt
|
|
|
|
```
|
|
|
|
|
|
|
|
- Verify the release tag with the following command where `TAG_NAME` is a
|
|
|
|
placeholder for the specific tag:
|
|
|
|
```bash
|
|
|
|
git tag -v TAG_NAME
|
|
|
|
```
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
2015-02-06 04:36:42 +01:00
|
|
|
Package chaincfg is licensed under the [copyfree](http://copyfree.org) ISC
|
2014-12-23 05:02:26 +01:00
|
|
|
License.
|