# Packages
Package filters specifies utilities for building a set of data attribute filters to be used when filtering data through database queries in practice.
Package iface defines the actual database interface used by a Prysm beacon node, also containing useful, scoped interfaces such as a ReadOnlyDatabase.
Package kv defines a bolt-db, key-value store implementation of the Database interface defined by a Prysm beacon node.
Package slasherkv defines a bolt-db, key-value store implementation of the slasher database interface for Prysm.
Package testing allows for spinning up a real bolt-db instance for unit tests throughout the Prysm repo.
# Functions
IsNotFound allows callers to treat errors from a flat-file database, where the file record is missing, as equivalent to db.ErrNotFound.
NewFileName uses the KVStoreDatafilePath so that if this layer of indirection between db.NewDB->kv.NewKVStore ever changes, it will be easy to remember to also change this filename indirection at the same time.
Restore a beacon chain database.
# Variables
ErrExistingGenesisState is an error when the user attempts to save a different genesis state when one already exists in a database.
ErrNotFound can be used to determine if an error from a method in the database package represents a "not found" error.
ErrNotFoundOriginBlockRoot wraps ErrNotFound for an error specific to the origin block root.
ErrNotFoundState wraps ErrNotFound for an error specific to a state not being found in the database.
# Type aliases
Database defines the necessary methods for Prysm's Ethereum backend which may be implemented by any key-value or relational database in practice.
HeadAccessDatabase exposes Prysm's Ethereum backend for read/write access with information about chain head information.
NoHeadAccessDatabase exposes Prysm's Ethereum data backend for read/write access, no information about head info.
ReadOnlyDatabase exposes Prysm's Ethereum data backend for read access only, no information about head info.
SlasherDatabase defines necessary methods for Prysm's slasher implementation.