2013-05-29 02:03:53 +02:00
|
|
|
btcdb
|
|
|
|
=====
|
|
|
|
|
2013-05-29 02:07:21 +02:00
|
|
|
Package btcdb provides a database interface for the bitcoin block chain and
|
2013-05-30 01:11:27 +02:00
|
|
|
transactions. There is a test suite with a high percentage of code coverage.
|
|
|
|
See `test_coverage.txt` for the current coverage (using gocov). Alternatively,
|
|
|
|
if you are running a POSIX OS, you can run the cov_report.sh script for a
|
|
|
|
real-time report. Package btcdb is licensed under the liberal ISC license.
|
2013-05-29 02:07:21 +02:00
|
|
|
|
2013-05-29 23:41:51 +02:00
|
|
|
Note that the main `Db` interface is not yet finalized, so it is subject to
|
|
|
|
change.
|
|
|
|
|
2013-05-29 02:07:21 +02:00
|
|
|
## Sample Use
|
|
|
|
|
|
|
|
```Go
|
2013-07-25 23:44:18 +02:00
|
|
|
// Import packages.
|
|
|
|
import (
|
|
|
|
"github.com/conformal/btcdb"
|
|
|
|
_ "github.com/conformal/btcdb/sqlite3"
|
|
|
|
"github.com/conformal/btcutil"
|
|
|
|
"github.com/conformal/btcwire"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Create a database and schedule it to be closed on exit.
|
|
|
|
dbName := "example.db"
|
|
|
|
db, err := btcdb.CreateDB("sqlite", dbName)
|
|
|
|
if err != nil {
|
|
|
|
// Log and handle the error
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
|
|
|
|
// Insert the main network genesis block.
|
2013-08-05 20:03:41 +02:00
|
|
|
genesis := btcutil.NewBlock(&btcwire.GenesisBlock)
|
2013-07-29 19:41:30 +02:00
|
|
|
newHeight, err := db.InsertBlock(genesis)
|
2013-07-25 23:44:18 +02:00
|
|
|
if err != nil {
|
|
|
|
// Log and handle the error
|
|
|
|
}
|
2013-05-29 02:07:21 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
|
|
|
Full `go doc` style documentation for the project can be viewed online without
|
|
|
|
installing this package by using the GoDoc site
|
|
|
|
[here](http://godoc.org/github.com/conformal/btcdb).
|
|
|
|
|
|
|
|
You can also view the documentation locally once the package is installed with
|
|
|
|
the `godoc` tool by running `godoc -http=":6060"` and pointing your browser to
|
|
|
|
http://localhost:6060/pkg/github.com/conformal/btcdb
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ go get github.com/conformal/btcdb
|
|
|
|
```
|
|
|
|
|
|
|
|
## TODO
|
|
|
|
- Increase test coverage to 100%
|
|
|
|
- Allow other database backends
|
|
|
|
|
|
|
|
## GPG Verification Key
|
|
|
|
|
|
|
|
All official release tags are signed by Conformal so users can ensure the code
|
|
|
|
has not been tampered with and is coming from Conformal. To verify the
|
|
|
|
signature perform the following:
|
|
|
|
|
|
|
|
- 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
|
|
|
|
|
|
|
|
Package btcdb is licensed under the liberal ISC License.
|