Documentation ¶
Overview ¶
Package db defines the ability to create a new database for an Ethereum Beacon Node.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrExistingGenesisState = iface.ErrExistingGenesisState
ErrExistingGenesisState is an error when the user attempts to save a different genesis state when one already exists in a database.
var ErrNotFound = kv.ErrNotFound
ErrNotFound can be used to determine if an error from a method in the database package represents a "not found" error. These often require different handling than a low-level i/o error. This variable copies the value in the kv package to the same scope as the Database interfaces, so that it is available to code paths that do not interact directly with the kv package.
var ErrNotFoundOriginBlockRoot = kv.ErrNotFoundOriginBlockRoot
ErrNotFoundOriginBlockRoot wraps ErrNotFound for an error specific to the origin block root.
var ErrNotFoundState = kv.ErrNotFoundState
ErrNotFoundState wraps ErrNotFound for an error specific to a state not being found in the database.
Functions ¶
func IsNotFound ¶
IsNotFound allows callers to treat errors from a flat-file database, where the file record is missing, as equivalent to db.ErrNotFound.
func NewFileName ¶
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.
Types ¶
type Database ¶
Database defines the necessary methods for Prysm's Ethereum backend which may be implemented by any key-value or relational database in practice. This is the full database interface which should not be used often. Prefer a more restrictive interface in this package.
type HeadAccessDatabase ¶
type HeadAccessDatabase = iface.HeadAccessDatabase
HeadAccessDatabase exposes Prysm's Ethereum backend for read/write access with information about chain head information. This interface should be used sparingly as the HeadFetcher is the source of truth around chain head information while this interface serves as persistent storage for the head fetcher.
See github.com/prysmaticlabs/prysm/blockchain.HeadFetcher
type NoHeadAccessDatabase ¶
type NoHeadAccessDatabase = iface.NoHeadAccessDatabase
NoHeadAccessDatabase exposes Prysm's Ethereum data backend for read/write access, no information about head info. For head info, use github.com/prysmaticlabs/prysm/blockchain.HeadFetcher.
type ReadOnlyDatabase ¶
type ReadOnlyDatabase = iface.ReadOnlyDatabase
ReadOnlyDatabase exposes Prysm's Ethereum data backend for read access only, no information about head info. For head info, use github.com/prysmaticlabs/prysm/blockchain.HeadFetcher.
type SlasherDatabase ¶
type SlasherDatabase = iface.SlasherDatabase
SlasherDatabase defines necessary methods for Prysm's slasher implementation.
Directories ¶
Path | Synopsis |
---|---|
Package filters specifies utilities for building a set of data attribute filters to be used when filtering data through database queries in practice.
|
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 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 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 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.
|
Package testing allows for spinning up a real bolt-db instance for unit tests throughout the Prysm repo. |