2015-01-27 11:45:10 -06:00
|
|
|
database
|
|
|
|
========
|
2013-05-28 19:03:53 -05:00
|
|
|
|
2017-05-25 11:29:23 -05:00
|
|
|
[![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org)
|
2013-12-10 19:17:44 -06:00
|
|
|
|
2015-08-26 04:54:55 -05:00
|
|
|
Package database provides a block and metadata storage database.
|
2013-05-28 19:07:21 -05:00
|
|
|
|
2015-01-27 18:58:27 -06:00
|
|
|
Please note that this package is intended to enable btcd 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 btcd.
|
|
|
|
|
|
|
|
When a client wants programmatic access to the data provided by btcd, they'll
|
2018-01-26 01:43:53 -03:00
|
|
|
likely want to use the [rpcclient](https://github.com/btcsuite/btcd/tree/master/rpcclient)
|
2017-05-25 11:29:23 -05:00
|
|
|
package which makes use of the [JSON-RPC API](https://github.com/btcsuite/btcd/tree/master/docs/json_rpc_api.md).
|
2015-01-27 18:58:27 -06:00
|
|
|
|
2015-08-26 04:54:55 -05:00
|
|
|
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.
|
|
|
|
|
|
|
|
## Feature Overview
|
|
|
|
|
|
|
|
- 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
|
2021-08-31 15:53:55 -04:00
|
|
|
- Comprehensive test coverage
|