Package database provides a block and metadata storage database.
Please note that this package is intended to enable pktd 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 pktd.
When a client wants programmatic access to the data provided by pktd, 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 GoLevelDB for the metadata, flat files for block storage, and 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
Package database is licensed under the Copyfree ISC License.