Documentation ¶
Overview ¶
Package depositcache is the source of validator deposits maintained in-memory by the beacon node – deposits processed from the eth1 powchain are then stored in this cache to be accessed by any other service during a beacon node's runtime.
Index ¶
- type DepositCache
- func (dc *DepositCache) AllDepositContainers(ctx context.Context) []*dbpb.DepositContainer
- func (dc *DepositCache) AllDeposits(ctx context.Context, untilBlk *big.Int) []*ethpb.Deposit
- func (dc *DepositCache) DepositByPubkey(ctx context.Context, pubKey []byte) (*ethpb.Deposit, *big.Int)
- func (dc *DepositCache) DepositsNumberAndRootAtHeight(ctx context.Context, blockHeight *big.Int) (uint64, [32]byte)
- func (dc *DepositCache) FinalizedDeposits(ctx context.Context) *FinalizedDeposits
- func (dc *DepositCache) InsertDeposit(ctx context.Context, d *ethpb.Deposit, blockNum uint64, index int64, ...)
- func (dc *DepositCache) InsertDepositContainers(ctx context.Context, ctrs []*dbpb.DepositContainer)
- func (dc *DepositCache) InsertFinalizedDeposits(ctx context.Context, eth1DepositIndex int64)
- func (dc *DepositCache) InsertPendingDeposit(ctx context.Context, d *ethpb.Deposit, blockNum uint64, index int64, ...)
- func (dc *DepositCache) MarkPubkeyForChainstart(ctx context.Context, pubkey string)
- func (dc *DepositCache) NonFinalizedDeposits(ctx context.Context, untilBlk *big.Int) []*ethpb.Deposit
- func (dc *DepositCache) PendingContainers(ctx context.Context, untilBlk *big.Int) []*dbpb.DepositContainer
- func (dc *DepositCache) PendingDeposits(ctx context.Context, untilBlk *big.Int) []*ethpb.Deposit
- func (dc *DepositCache) PrunePendingDeposits(ctx context.Context, merkleTreeIndex int64)
- func (dc *DepositCache) PubkeyInChainstart(ctx context.Context, pubkey string) bool
- func (dc *DepositCache) RemovePendingDeposit(ctx context.Context, d *ethpb.Deposit)
- type DepositFetcher
- type FinalizedDeposits
- type PendingDepositsFetcher
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DepositCache ¶
type DepositCache struct {
// contains filtered or unexported fields
}
DepositCache stores all in-memory deposit objects. This stores all the deposit related data that is required by the beacon-node.
func NewDepositCache ¶
func NewDepositCache() *DepositCache
NewDepositCache instantiates a new deposit cache
func (*DepositCache) AllDepositContainers ¶ added in v0.3.0
func (dc *DepositCache) AllDepositContainers(ctx context.Context) []*dbpb.DepositContainer
AllDepositContainers returns all historical deposit containers.
func (*DepositCache) AllDeposits ¶
AllDeposits returns a list of historical deposits until the given block number (inclusive). If no block is specified then this method returns all historical deposits.
func (*DepositCache) DepositByPubkey ¶
func (dc *DepositCache) DepositByPubkey(ctx context.Context, pubKey []byte) (*ethpb.Deposit, *big.Int)
DepositByPubkey looks through historical deposits and finds one which contains a certain public key within its deposit data.
func (*DepositCache) DepositsNumberAndRootAtHeight ¶
func (dc *DepositCache) DepositsNumberAndRootAtHeight(ctx context.Context, blockHeight *big.Int) (uint64, [32]byte)
DepositsNumberAndRootAtHeight returns number of deposits made prior to blockheight and the root that corresponds to the latest deposit at that blockheight.
func (*DepositCache) FinalizedDeposits ¶ added in v1.0.0
func (dc *DepositCache) FinalizedDeposits(ctx context.Context) *FinalizedDeposits
FinalizedDeposits returns the finalized deposits trie.
func (*DepositCache) InsertDeposit ¶
func (dc *DepositCache) InsertDeposit(ctx context.Context, d *ethpb.Deposit, blockNum uint64, index int64, depositRoot [32]byte)
InsertDeposit into the database. If deposit or block number are nil then this method does nothing.
func (*DepositCache) InsertDepositContainers ¶ added in v0.3.0
func (dc *DepositCache) InsertDepositContainers(ctx context.Context, ctrs []*dbpb.DepositContainer)
InsertDepositContainers inserts a set of deposit containers into our deposit cache.
func (*DepositCache) InsertFinalizedDeposits ¶ added in v1.0.0
func (dc *DepositCache) InsertFinalizedDeposits(ctx context.Context, eth1DepositIndex int64)
InsertFinalizedDeposits inserts deposits up to eth1DepositIndex (exclusive) into the finalized deposits cache.
func (*DepositCache) InsertPendingDeposit ¶
func (dc *DepositCache) InsertPendingDeposit(ctx context.Context, d *ethpb.Deposit, blockNum uint64, index int64, depositRoot [32]byte)
InsertPendingDeposit into the database. If deposit or block number are nil then this method does nothing.
func (*DepositCache) MarkPubkeyForChainstart ¶
func (dc *DepositCache) MarkPubkeyForChainstart(ctx context.Context, pubkey string)
MarkPubkeyForChainstart sets the pubkey deposit status to true.
func (*DepositCache) NonFinalizedDeposits ¶ added in v1.0.0
func (dc *DepositCache) NonFinalizedDeposits(ctx context.Context, untilBlk *big.Int) []*ethpb.Deposit
NonFinalizedDeposits returns the list of non-finalized deposits until the given block number (inclusive). If no block is specified then this method returns all non-finalized deposits.
func (*DepositCache) PendingContainers ¶
func (dc *DepositCache) PendingContainers(ctx context.Context, untilBlk *big.Int) []*dbpb.DepositContainer
PendingContainers returns a list of deposit containers until the given block number (inclusive).
func (*DepositCache) PendingDeposits ¶
PendingDeposits returns a list of deposits until the given block number (inclusive). If no block is specified then this method returns all pending deposits.
func (*DepositCache) PrunePendingDeposits ¶
func (dc *DepositCache) PrunePendingDeposits(ctx context.Context, merkleTreeIndex int64)
PrunePendingDeposits removes any deposit which is older than the given deposit merkle tree index.
func (*DepositCache) PubkeyInChainstart ¶
func (dc *DepositCache) PubkeyInChainstart(ctx context.Context, pubkey string) bool
PubkeyInChainstart returns bool for whether the pubkey passed in has deposited.
func (*DepositCache) RemovePendingDeposit ¶
func (dc *DepositCache) RemovePendingDeposit(ctx context.Context, d *ethpb.Deposit)
RemovePendingDeposit from the database. The deposit is indexed by the Index. This method does nothing if deposit ptr is nil.
type DepositFetcher ¶
type DepositFetcher interface { AllDeposits(ctx context.Context, untilBlk *big.Int) []*ethpb.Deposit DepositByPubkey(ctx context.Context, pubKey []byte) (*ethpb.Deposit, *big.Int) DepositsNumberAndRootAtHeight(ctx context.Context, blockHeight *big.Int) (uint64, [32]byte) FinalizedDeposits(ctx context.Context) *FinalizedDeposits NonFinalizedDeposits(ctx context.Context, untilBlk *big.Int) []*ethpb.Deposit }
DepositFetcher defines a struct which can retrieve deposit information from a store.
type FinalizedDeposits ¶ added in v1.0.0
type FinalizedDeposits struct { Deposits *trieutil.SparseMerkleTrie MerkleTrieIndex int64 }
FinalizedDeposits stores the trie of deposits that have been included in the beacon state up to the latest finalized checkpoint.
type PendingDepositsFetcher ¶
type PendingDepositsFetcher interface {
PendingContainers(ctx context.Context, untilBlk *big.Int) []*dbpb.DepositContainer
}
PendingDepositsFetcher specifically outlines a struct that can retrieve deposits which have not yet been included in the chain.