Documentation ¶
Overview ¶
Package cache includes all important caches for the runtime of an eth2 beacon node, ensuring the node does not spend resources computing duplicate operations such as committee calculations for validators during the same epoch, etc.
Index ¶
- Variables
- type AttestationCache
- func (c *AttestationCache) Get(ctx context.Context, req *ethpb.AttestationDataRequest) (*ethpb.AttestationData, error)
- func (c *AttestationCache) MarkInProgress(req *ethpb.AttestationDataRequest) error
- func (c *AttestationCache) MarkNotInProgress(req *ethpb.AttestationDataRequest) error
- func (c *AttestationCache) Put(ctx context.Context, req *ethpb.AttestationDataRequest, ...) error
- type CheckpointState
- type CheckpointStateCache
- type CommitteeCache
- func (c *CommitteeCache) ActiveIndices(seed [32]byte) ([]uint64, error)
- func (c *CommitteeCache) AddCommitteeShuffledList(committees *Committees) error
- func (c *CommitteeCache) AddProposerIndicesList(seed [32]byte, indices []uint64) error
- func (c *CommitteeCache) Committee(slot uint64, seed [32]byte, index uint64) ([]uint64, error)
- func (c *CommitteeCache) ProposerIndices(seed [32]byte) ([]uint64, error)
- type Committees
- type HotStateCache
- func (c *HotStateCache) Delete(root [32]byte) bool
- func (c *HotStateCache) Get(root [32]byte) *stateTrie.BeaconState
- func (c *HotStateCache) GetWithoutCopy(root [32]byte) *stateTrie.BeaconState
- func (c *HotStateCache) Has(root [32]byte) bool
- func (c *HotStateCache) Put(root [32]byte, state *stateTrie.BeaconState)
- type SkipSlotCache
- func (c *SkipSlotCache) Disable()
- func (c *SkipSlotCache) Enable()
- func (c *SkipSlotCache) Get(ctx context.Context, slot uint64) (*stateTrie.BeaconState, error)
- func (c *SkipSlotCache) MarkInProgress(slot uint64) error
- func (c *SkipSlotCache) MarkNotInProgress(slot uint64) error
- func (c *SkipSlotCache) Put(ctx context.Context, slot uint64, state *stateTrie.BeaconState) error
- type StateSummaryCache
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotCommittee will be returned when a cache object is not a pointer to // a Committee struct. ErrNotCommittee = errors.New("object is not a committee struct") // CommitteeCacheMiss tracks the number of committee requests that aren't present in the cache. CommitteeCacheMiss = promauto.NewCounter(prometheus.CounterOpts{ Name: "committee_cache_miss", Help: "The number of committee requests that aren't present in the cache.", }) // CommitteeCacheHit tracks the number of committee requests that are in the cache. CommitteeCacheHit = promauto.NewCounter(prometheus.CounterOpts{ Name: "committee_cache_hit", Help: "The number of committee requests that are present in the cache.", }) )
var CommitteeIDs = newCommitteeIDs()
CommitteeIDs for attester and aggregator.
var ErrAlreadyInProgress = errors.New("already in progress")
ErrAlreadyInProgress appears when attempting to mark a cache as in progress while it is already in progress. The client should handle this error and wait for the in progress data to resolve via Get.
var ( // ErrNotCheckpointState will be returned when a cache object is not a pointer to // a CheckpointState struct. ErrNotCheckpointState = errors.New("object is not a state by check point struct") )
Functions ¶
This section is empty.
Types ¶
type AttestationCache ¶
type AttestationCache struct {
// contains filtered or unexported fields
}
AttestationCache is used to store the cached results of an AttestationData request.
func NewAttestationCache ¶
func NewAttestationCache() *AttestationCache
NewAttestationCache initializes the map and underlying cache.
func (*AttestationCache) Get ¶
func (c *AttestationCache) Get(ctx context.Context, req *ethpb.AttestationDataRequest) (*ethpb.AttestationData, error)
Get waits for any in progress calculation to complete before returning a cached response, if any.
func (*AttestationCache) MarkInProgress ¶
func (c *AttestationCache) MarkInProgress(req *ethpb.AttestationDataRequest) error
MarkInProgress a request so that any other similar requests will block on Get until MarkNotInProgress is called.
func (*AttestationCache) MarkNotInProgress ¶
func (c *AttestationCache) MarkNotInProgress(req *ethpb.AttestationDataRequest) error
MarkNotInProgress will release the lock on a given request. This should be called after put.
func (*AttestationCache) Put ¶
func (c *AttestationCache) Put(ctx context.Context, req *ethpb.AttestationDataRequest, res *ethpb.AttestationData) error
Put the response in the cache.
type CheckpointState ¶
type CheckpointState struct { Checkpoint *ethpb.Checkpoint State *stateTrie.BeaconState }
CheckpointState defines the active validator indices per epoch.
type CheckpointStateCache ¶
type CheckpointStateCache struct {
// contains filtered or unexported fields
}
CheckpointStateCache is a struct with 1 queue for looking up state by checkpoint.
func NewCheckpointStateCache ¶
func NewCheckpointStateCache() *CheckpointStateCache
NewCheckpointStateCache creates a new checkpoint state cache for storing/accessing processed state.
func (*CheckpointStateCache) AddCheckpointState ¶
func (c *CheckpointStateCache) AddCheckpointState(cp *CheckpointState) error
AddCheckpointState adds CheckpointState object to the cache. This method also trims the least recently added CheckpointState object if the cache size has ready the max cache size limit.
func (*CheckpointStateCache) CheckpointStateKeys ¶
func (c *CheckpointStateCache) CheckpointStateKeys() []string
CheckpointStateKeys returns the keys of the state in cache.
func (*CheckpointStateCache) StateByCheckpoint ¶
func (c *CheckpointStateCache) StateByCheckpoint(cp *ethpb.Checkpoint) (*stateTrie.BeaconState, error)
StateByCheckpoint fetches state by checkpoint. Returns true with a reference to the CheckpointState info, if exists. Otherwise returns false, nil.
type CommitteeCache ¶
CommitteeCache is a struct with 1 queue for looking up shuffled indices list by seed.
func NewCommitteesCache ¶
func NewCommitteesCache() *CommitteeCache
NewCommitteesCache creates a new committee cache for storing/accessing shuffled indices of a committee.
func (*CommitteeCache) ActiveIndices ¶
func (c *CommitteeCache) ActiveIndices(seed [32]byte) ([]uint64, error)
ActiveIndices returns the active indices of a given seed stored in cache.
func (*CommitteeCache) AddCommitteeShuffledList ¶
func (c *CommitteeCache) AddCommitteeShuffledList(committees *Committees) error
AddCommitteeShuffledList adds Committee shuffled list object to the cache. T his method also trims the least recently list if the cache size has ready the max cache size limit.
func (*CommitteeCache) AddProposerIndicesList ¶
func (c *CommitteeCache) AddProposerIndicesList(seed [32]byte, indices []uint64) error
AddProposerIndicesList updates the committee shuffled list with proposer indices.
func (*CommitteeCache) Committee ¶
Committee fetches the shuffled indices by slot and committee index. Every list of indices represent one committee. Returns true if the list exists with slot and committee index. Otherwise returns false, nil.
func (*CommitteeCache) ProposerIndices ¶
func (c *CommitteeCache) ProposerIndices(seed [32]byte) ([]uint64, error)
ProposerIndices returns the proposer indices of a given seed.
type Committees ¶
type Committees struct { CommitteeCount uint64 Seed [32]byte ShuffledIndices []uint64 SortedIndices []uint64 ProposerIndices []uint64 }
Committees defines the shuffled committees seed.
type HotStateCache ¶
type HotStateCache struct {
// contains filtered or unexported fields
}
HotStateCache is used to store the processed beacon state after finalized check point..
func NewHotStateCache ¶
func NewHotStateCache() *HotStateCache
NewHotStateCache initializes the map and underlying cache.
func (*HotStateCache) Delete ¶
func (c *HotStateCache) Delete(root [32]byte) bool
Delete deletes the key exists in the cache.
func (*HotStateCache) Get ¶
func (c *HotStateCache) Get(root [32]byte) *stateTrie.BeaconState
Get returns a cached response via input block root, if any. The response is copied by default.
func (*HotStateCache) GetWithoutCopy ¶
func (c *HotStateCache) GetWithoutCopy(root [32]byte) *stateTrie.BeaconState
GetWithoutCopy returns a non-copied cached response via input block root.
func (*HotStateCache) Has ¶
func (c *HotStateCache) Has(root [32]byte) bool
Has returns true if the key exists in the cache.
func (*HotStateCache) Put ¶
func (c *HotStateCache) Put(root [32]byte, state *stateTrie.BeaconState)
Put the response in the cache.
type SkipSlotCache ¶
type SkipSlotCache struct {
// contains filtered or unexported fields
}
SkipSlotCache is used to store the cached results of processing skip slots in state.ProcessSlots.
func NewSkipSlotCache ¶
func NewSkipSlotCache() *SkipSlotCache
NewSkipSlotCache initializes the map and underlying cache.
func (*SkipSlotCache) Get ¶
func (c *SkipSlotCache) Get(ctx context.Context, slot uint64) (*stateTrie.BeaconState, error)
Get waits for any in progress calculation to complete before returning a cached response, if any.
func (*SkipSlotCache) MarkInProgress ¶
func (c *SkipSlotCache) MarkInProgress(slot uint64) error
MarkInProgress a request so that any other similar requests will block on Get until MarkNotInProgress is called.
func (*SkipSlotCache) MarkNotInProgress ¶
func (c *SkipSlotCache) MarkNotInProgress(slot uint64) error
MarkNotInProgress will release the lock on a given request. This should be called after put.
func (*SkipSlotCache) Put ¶
func (c *SkipSlotCache) Put(ctx context.Context, slot uint64, state *stateTrie.BeaconState) error
Put the response in the cache.
type StateSummaryCache ¶
type StateSummaryCache struct {
// contains filtered or unexported fields
}
StateSummaryCache caches state summary object.
func NewStateSummaryCache ¶
func NewStateSummaryCache() *StateSummaryCache
NewStateSummaryCache creates a new state summary cache.
func (*StateSummaryCache) Clear ¶
func (s *StateSummaryCache) Clear()
Clear clears out the initial sync state summaries cache.
func (*StateSummaryCache) Get ¶
func (s *StateSummaryCache) Get(r [32]byte) *pb.StateSummary
Get retrieves a state summary from the initial sync state summaries cache using the root of the block.
func (*StateSummaryCache) GetAll ¶
func (s *StateSummaryCache) GetAll() []*pb.StateSummary
GetAll retrieves all the beacon state summaries from the initial sync state summaries cache, the returned state summaries are unordered.
func (*StateSummaryCache) Has ¶
func (s *StateSummaryCache) Has(r [32]byte) bool
Has checks if a state summary exists in the initial sync state summaries cache using the root of the block.
func (*StateSummaryCache) Put ¶
func (s *StateSummaryCache) Put(r [32]byte, b *pb.StateSummary)
Put saves a state summary to the initial sync state summaries cache.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
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.
|
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. |