Documentation ¶
Overview ¶
Package kv defines a bolt-db, key-value store implementation of the Database interface defined by a Prysm beacon node.
Index ¶
- Constants
- Variables
- type Store
- func (kv *Store) ArchivedPointRoot(ctx context.Context, slot uint64) [32]byte
- func (kv *Store) AttesterSlashing(ctx context.Context, slashingRoot [32]byte) (*ethpb.AttesterSlashing, error)
- func (kv *Store) Backup(ctx context.Context) error
- func (kv *Store) Block(ctx context.Context, blockRoot [32]byte) (*ethpb.SignedBeaconBlock, error)
- func (kv *Store) BlockRoots(ctx context.Context, f *filters.QueryFilter) ([][32]byte, error)
- func (kv *Store) Blocks(ctx context.Context, f *filters.QueryFilter) ([]*ethpb.SignedBeaconBlock, error)
- func (kv *Store) ClearDB() error
- func (kv *Store) Close() error
- func (kv *Store) DatabasePath() string
- func (kv *Store) DeleteState(ctx context.Context, blockRoot [32]byte) error
- func (kv *Store) DeleteStates(ctx context.Context, blockRoots [][32]byte) error
- func (kv *Store) DepositContractAddress(ctx context.Context) ([]byte, error)
- func (kv *Store) FinalizedCheckpoint(ctx context.Context) (*ethpb.Checkpoint, error)
- func (kv *Store) GenesisBlock(ctx context.Context) (*ethpb.SignedBeaconBlock, error)
- func (kv *Store) GenesisState(ctx context.Context) (*state.BeaconState, error)
- func (kv *Store) HasArchivedPoint(ctx context.Context, slot uint64) bool
- func (kv *Store) HasAttesterSlashing(ctx context.Context, slashingRoot [32]byte) bool
- func (kv *Store) HasBlock(ctx context.Context, blockRoot [32]byte) bool
- func (kv *Store) HasProposerSlashing(ctx context.Context, slashingRoot [32]byte) bool
- func (kv *Store) HasState(ctx context.Context, blockRoot [32]byte) bool
- func (kv *Store) HasStateSummary(ctx context.Context, blockRoot [32]byte) bool
- func (kv *Store) HasVoluntaryExit(ctx context.Context, exitRoot [32]byte) bool
- func (kv *Store) HeadBlock(ctx context.Context) (*ethpb.SignedBeaconBlock, error)
- func (kv *Store) HeadState(ctx context.Context) (*state.BeaconState, error)
- func (kv *Store) HighestSlotBlocksBelow(ctx context.Context, slot uint64) ([]*ethpb.SignedBeaconBlock, error)
- func (kv *Store) HighestSlotStatesBelow(ctx context.Context, slot uint64) ([]*state.BeaconState, error)
- func (kv *Store) HistoricalStatesDeleted(ctx context.Context) error
- func (kv *Store) IsFinalizedBlock(ctx context.Context, blockRoot [32]byte) bool
- func (kv *Store) JustifiedCheckpoint(ctx context.Context) (*ethpb.Checkpoint, error)
- func (kv *Store) LastArchivedRoot(ctx context.Context) [32]byte
- func (kv *Store) LastArchivedSlot(ctx context.Context) (uint64, error)
- func (kv *Store) PowchainData(ctx context.Context) (*db.ETH1ChainData, error)
- func (kv *Store) ProposerSlashing(ctx context.Context, slashingRoot [32]byte) (*ethpb.ProposerSlashing, error)
- func (s *Store) RunMigrations(ctx context.Context) error
- func (kv *Store) SaveAttesterSlashing(ctx context.Context, slashing *ethpb.AttesterSlashing) error
- func (kv *Store) SaveBlock(ctx context.Context, signed *ethpb.SignedBeaconBlock) error
- func (kv *Store) SaveBlocks(ctx context.Context, blocks []*ethpb.SignedBeaconBlock) error
- func (kv *Store) SaveDepositContractAddress(ctx context.Context, addr common.Address) error
- func (kv *Store) SaveFinalizedCheckpoint(ctx context.Context, checkpoint *ethpb.Checkpoint) error
- func (kv *Store) SaveGenesisBlockRoot(ctx context.Context, blockRoot [32]byte) error
- func (kv *Store) SaveHeadBlockRoot(ctx context.Context, blockRoot [32]byte) error
- func (kv *Store) SaveJustifiedCheckpoint(ctx context.Context, checkpoint *ethpb.Checkpoint) error
- func (kv *Store) SavePowchainData(ctx context.Context, data *db.ETH1ChainData) error
- func (kv *Store) SaveProposerSlashing(ctx context.Context, slashing *ethpb.ProposerSlashing) error
- func (kv *Store) SaveState(ctx context.Context, st *state.BeaconState, blockRoot [32]byte) error
- func (kv *Store) SaveStateSummaries(ctx context.Context, summaries []*pb.StateSummary) error
- func (kv *Store) SaveStateSummary(ctx context.Context, summary *pb.StateSummary) error
- func (kv *Store) SaveStates(ctx context.Context, states []*state.BeaconState, blockRoots [][32]byte) error
- func (kv *Store) SaveVoluntaryExit(ctx context.Context, exit *ethpb.VoluntaryExit) error
- func (kv *Store) State(ctx context.Context, blockRoot [32]byte) (*state.BeaconState, error)
- func (kv *Store) StateSummary(ctx context.Context, blockRoot [32]byte) (*pb.StateSummary, error)
- func (kv *Store) VoluntaryExit(ctx context.Context, exitRoot [32]byte) (*ethpb.VoluntaryExit, error)
Constants ¶
const ( // VotesCacheSize with 1M validators will be 8MB. VotesCacheSize = 1 << 23 // NumOfVotes specifies the vote cache size. NumOfVotes = 1 << 20 )
Variables ¶
var BlockCacheSize = int64(1 << 21)
BlockCacheSize specifies 1000 slots worth of blocks cached, which would be approximately 2MB
Functions ¶
This section is empty.
Types ¶
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store defines an implementation of the Prysm Database interface using BoltDB as the underlying persistent kv-store for eth2.
func NewKVStore ¶
func NewKVStore(dirPath string, stateSummaryCache *cache.StateSummaryCache) (*Store, error)
NewKVStore initializes a new boltDB key-value store at the directory path specified, creates the kv-buckets based on the schema, and stores an open connection db object as a property of the Store struct.
func (*Store) ArchivedPointRoot ¶ added in v0.3.2
ArchivedPointRoot returns the block root of an archived point from the DB. This is essential for cold state management and to restore a cold state.
func (*Store) AttesterSlashing ¶
func (kv *Store) AttesterSlashing(ctx context.Context, slashingRoot [32]byte) (*ethpb.AttesterSlashing, error)
AttesterSlashing retrieval by hash tree root.
func (*Store) Backup ¶
Backup the database to the datadir backup directory. Example for backup at slot 345: $DATADIR/backups/prysm_beacondb_at_slot_0000345.backup
func (*Store) BlockRoots ¶
BlockRoots retrieves a list of beacon block roots by filter criteria.
func (*Store) Blocks ¶
func (kv *Store) Blocks(ctx context.Context, f *filters.QueryFilter) ([]*ethpb.SignedBeaconBlock, error)
Blocks retrieves a list of beacon blocks by filter criteria.
func (*Store) DatabasePath ¶
DatabasePath at which this database writes files.
func (*Store) DeleteState ¶
DeleteState by block root.
func (*Store) DeleteStates ¶
DeleteStates by block roots.
Note: bkt.Delete(key) uses a binary search to find the item in the database. Iterating with a cursor is faster when there are a large set of keys to delete. This method is O(n) deletion where n is the number of keys in the database. The alternative of calling bkt.Delete on each key to delete would be O(m*log(n)) which would be much slower given a large set of keys to delete.
func (*Store) DepositContractAddress ¶
DepositContractAddress returns contract address is the address of the deposit contract on the proof of work chain.
func (*Store) FinalizedCheckpoint ¶
FinalizedCheckpoint returns the latest finalized checkpoint in beacon chain.
func (*Store) GenesisBlock ¶ added in v0.3.0
GenesisBlock retrieves the genesis block of the beacon chain.
func (*Store) GenesisState ¶
GenesisState returns the genesis state in beacon chain.
func (*Store) HasArchivedPoint ¶ added in v0.3.2
HasArchivedPoint returns true if an archived point exists in DB.
func (*Store) HasAttesterSlashing ¶
HasAttesterSlashing verifies if a slashing is stored in the db.
func (*Store) HasProposerSlashing ¶
HasProposerSlashing verifies if a slashing is stored in the db.
func (*Store) HasStateSummary ¶ added in v0.3.2
HasStateSummary returns true if a state summary exists in DB.
func (*Store) HasVoluntaryExit ¶
HasVoluntaryExit verifies if a voluntary exit is stored in the db by its signing root.
func (*Store) HighestSlotBlocksBelow ¶ added in v0.3.8
func (kv *Store) HighestSlotBlocksBelow(ctx context.Context, slot uint64) ([]*ethpb.SignedBeaconBlock, error)
HighestSlotBlocksBelow returns the block with the highest slot below the input slot from the db.
func (*Store) HighestSlotStatesBelow ¶ added in v0.3.9
func (kv *Store) HighestSlotStatesBelow(ctx context.Context, slot uint64) ([]*state.BeaconState, error)
HighestSlotStatesBelow returns the states with the highest slot below the input slot from the db. Ideally there should just be one state per slot, but given validator can double propose, a single slot could have multiple block roots and results states. This returns a list of states.
func (*Store) HistoricalStatesDeleted ¶
HistoricalStatesDeleted verifies historical states exist in DB.
func (*Store) IsFinalizedBlock ¶ added in v0.2.3
IsFinalizedBlock returns true if the block root is present in the finalized block root index. A beacon block root contained exists in this index if it is considered finalized and canonical. Note: beacon blocks from the latest finalized epoch return true, whether or not they are considered canonical in the "head view" of the beacon node.
func (*Store) JustifiedCheckpoint ¶
JustifiedCheckpoint returns the latest justified checkpoint in beacon chain.
func (*Store) LastArchivedRoot ¶ added in v1.0.0
LastArchivedRoot from the db.
func (*Store) LastArchivedSlot ¶ added in v1.0.0
LastArchivedSlot from the db.
func (*Store) PowchainData ¶ added in v0.3.0
PowchainData retrieves the powchain data.
func (*Store) ProposerSlashing ¶
func (kv *Store) ProposerSlashing(ctx context.Context, slashingRoot [32]byte) (*ethpb.ProposerSlashing, error)
ProposerSlashing retrieval by slashing root.
func (*Store) RunMigrations ¶ added in v1.0.0
RunMigrations defined in the migrations array.
func (*Store) SaveAttesterSlashing ¶
SaveAttesterSlashing to the db by its hash tree root.
func (*Store) SaveBlocks ¶
SaveBlocks via bulk updates to the db.
func (*Store) SaveDepositContractAddress ¶
SaveDepositContractAddress to the db. It returns an error if an address has been previously saved.
func (*Store) SaveFinalizedCheckpoint ¶
SaveFinalizedCheckpoint saves finalized checkpoint in beacon chain.
func (*Store) SaveGenesisBlockRoot ¶
SaveGenesisBlockRoot to the db.
func (*Store) SaveHeadBlockRoot ¶
SaveHeadBlockRoot to the db.
func (*Store) SaveJustifiedCheckpoint ¶
SaveJustifiedCheckpoint saves justified checkpoint in beacon chain.
func (*Store) SavePowchainData ¶ added in v0.3.0
SavePowchainData saves the pow chain data.
func (*Store) SaveProposerSlashing ¶
SaveProposerSlashing to the db by its hash tree root.
func (*Store) SaveState ¶
SaveState stores a state to the db using block's signing root which was used to generate the state.
func (*Store) SaveStateSummaries ¶ added in v0.3.9
SaveStateSummaries saves state summary objects to the DB.
func (*Store) SaveStateSummary ¶ added in v0.3.2
SaveStateSummary saves a state summary object to the DB.
func (*Store) SaveStates ¶ added in v0.3.2
func (kv *Store) SaveStates(ctx context.Context, states []*state.BeaconState, blockRoots [][32]byte) error
SaveStates stores multiple states to the db using the provided corresponding roots.
func (*Store) SaveVoluntaryExit ¶
SaveVoluntaryExit to the db by its signing root.
func (*Store) State ¶
State returns the saved state using block's signing root, this particular block was used to generate the state.
func (*Store) StateSummary ¶ added in v0.3.2
StateSummary returns the state summary object from the db using input block root.
func (*Store) VoluntaryExit ¶
func (kv *Store) VoluntaryExit(ctx context.Context, exitRoot [32]byte) (*ethpb.VoluntaryExit, error)
VoluntaryExit retrieval by signing root.
Source Files ¶
- archived_point.go
- backup.go
- blocks.go
- check_historical_state.go
- checkpoint.go
- deposit_contract.go
- encoding.go
- finalized_block_roots.go
- kv.go
- migration.go
- migration_archived_index.go
- migration_block_slot_index.go
- operations.go
- powchain.go
- regen_historical_states.go
- schema.go
- slashings.go
- state.go
- state_summary.go
- utils.go