Package database provides a block and metadata storage database.
Please note that this package is intended to enable bchd to support different database backends and is not something that a client can directly access as only one entity can have the database open at a time (for most database backends), and that entity will be bchd.
When a client wants programmatic access to the data provided by bchd, they'll likely want to use the rpcclient package which makes use of the JSON-RPC API.
However, this package could be extremely useful for any applications requiring Bitcoin block storage capabilities.
The default backend, ffldb, has a strong focus on speed, efficiency, and robustness. It makes use of leveldb for the metadata, flat files for block storage, and strict checksums in key areas to ensure data integrity.
- Key/value metadata store
- Bitcoin block storage
- Efficient retrieval of block headers and regions (transactions, scripts, etc)
- Read-only and read-write transactions with both manual and managed modes
- Nested buckets
- Iteration support including cursors with seek capability
- Supports registration of backend databases
- Comprehensive test coverage
$ go get -u github.com/gcash/bchd/database
-
Basic Usage Example
Demonstrates creating a new database and using a managed read-write transaction to store and retrieve metadata. -
Block Storage and Retrieval Example
Demonstrates creating a new database, using a managed read-write transaction to store a block, and then using a managed read-only transaction to fetch the block.
Package database is licensed under the copyfree ISC License.