services

package
v1.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 17, 2025 License: GPL-3.0 Imports: 42 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitChainService added in v1.11.0

func InitChainService(ctx context.Context, logger logrus.FieldLogger)

InitChainService is used to initialize the global beaconchain service

func StartCallRateLimiter

func StartCallRateLimiter(proxyCount uint, rateLimit uint, burstLimit uint) error

StartFrontendCache is used to start the global frontend cache service

func StartFrontendCache

func StartFrontendCache() error

StartFrontendCache is used to start the global frontend cache service

func StartTxSignaturesService

func StartTxSignaturesService() error

StartTxSignaturesService is used to start the global transaction signatures service

Types

type CallRateLimiter

type CallRateLimiter struct {
	// contains filtered or unexported fields
}
var GlobalCallRateLimiter *CallRateLimiter

func (*CallRateLimiter) CheckCallLimit

func (crl *CallRateLimiter) CheckCallLimit(r *http.Request, callCost uint) error

type ChainService

type ChainService struct {
	// contains filtered or unexported fields
}
var GlobalBeaconService *ChainService

func (*ChainService) CheckBlockOrphanedStatus

func (bs *ChainService) CheckBlockOrphanedStatus(blockRoot phase0.Root) dbtypes.SlotStatus

func (*ChainService) GetBeaconIndexer added in v1.11.0

func (bs *ChainService) GetBeaconIndexer() *beacon.Indexer

func (*ChainService) GetBlobSidecarsByBlockRoot

func (bs *ChainService) GetBlobSidecarsByBlockRoot(ctx context.Context, blockroot []byte) ([]*deneb.BlobSidecar, error)

GetBlobSidecarsByBlockRoot retrieves the blob sidecars for a given block root. It first tries to find a client that has the block root in its cache, and if not found, it falls back to a random ready client. It then retrieves the blob sidecars for the block root and returns them.

func (*ChainService) GetBlockBlob added in v1.11.0

func (bs *ChainService) GetBlockBlob(ctx context.Context, blockroot phase0.Root, commitment deneb.KZGCommitment) (*deneb.BlobSidecar, error)

GetBlockBlob retrieves the blob sidecar for a given block root and commitment. It first tries to find a client that has the block root in its cache, and if not found, it falls back to a random ready client. It then retrieves the blob sidecars for the block root and checks if any of them match the given commitment. If a match is found, it returns the blob sidecar, otherwise it returns nil.

func (*ChainService) GetCanonicalForkIds added in v1.13.0

func (bs *ChainService) GetCanonicalForkIds() []uint64

func (*ChainService) GetCanonicalForkKeys added in v1.14.0

func (bs *ChainService) GetCanonicalForkKeys() []beacon.ForkKey

func (*ChainService) GetChainState added in v1.11.0

func (bs *ChainService) GetChainState() *consensus.ChainState

func (*ChainService) GetConsensusClientForks added in v1.11.0

func (bs *ChainService) GetConsensusClientForks() []*ConsensusClientFork

func (*ChainService) GetConsensusClients added in v1.10.0

func (bs *ChainService) GetConsensusClients() []*consensus.Client

func (*ChainService) GetConsolidationIndexer added in v1.12.1

func (bs *ChainService) GetConsolidationIndexer() *execindexer.ConsolidationIndexer

func (*ChainService) GetConsolidationRequestOperationsByFilter added in v1.13.0

func (bs *ChainService) GetConsolidationRequestOperationsByFilter(filter *dbtypes.ConsolidationRequestFilter, pageOffset uint64, pageSize uint32) ([]*dbtypes.ConsolidationRequest, uint64)

func (*ChainService) GetConsolidationRequestsByFilter added in v1.12.0

func (bs *ChainService) GetConsolidationRequestsByFilter(filter *CombinedConsolidationRequestFilter, pageOffset uint64, pageSize uint32) ([]*CombinedConsolidationRequest, uint64, uint64)

func (*ChainService) GetDbBlocksByFilter

func (bs *ChainService) GetDbBlocksByFilter(filter *dbtypes.BlockFilter, pageIdx uint64, pageSize uint32, withScheduledCount uint64) []*dbtypes.AssignedSlot

GetDbBlocksByFilter retrieves a filtered range of blocks from cache & database. The filter parameter specifies the filter criteria. The pageIdx parameter specifies the page index. The pageSize parameter specifies the page size. The withScheduledCount parameter specifies the number of scheduled slots to include. The returned slice contains the retrieved blocks.

func (*ChainService) GetDbBlocksByParentRoot

func (bs *ChainService) GetDbBlocksByParentRoot(parentRoot phase0.Root) []*dbtypes.Slot

func (*ChainService) GetDbBlocksForSlots

func (bs *ChainService) GetDbBlocksForSlots(firstSlot uint64, slotLimit uint32, withMissing bool, withOrphaned bool) []*dbtypes.Slot

GetDbBlocksForSlots retrieves blocks for a range of slots from cache & database. The firstSlot parameter specifies the starting slot. The slotLimit parameter limits the number of slots to retrieve. The withMissing parameter indicates whether to include missing blocks. The withOrphaned parameter indicates whether to include orphaned blocks. The returned slice contains the retrieved blocks.

func (*ChainService) GetDbEpochs

func (bs *ChainService) GetDbEpochs(firstEpoch uint64, limit uint32) []*dbtypes.Epoch

func (*ChainService) GetExecutionClients added in v1.10.0

func (bs *ChainService) GetExecutionClients() []*execution.Client

func (*ChainService) GetFilteredValidatorSet added in v1.14.0

func (bs *ChainService) GetFilteredValidatorSet(filter *dbtypes.ValidatorFilter, withBalance bool) ([]v1.Validator, uint64)

getValidatorsByWithdrawalAddressForRoot returns validators with a specific withdrawal address for a given blockRoot

func (*ChainService) GetFinalizedEpoch

func (bs *ChainService) GetFinalizedEpoch() (phase0.Epoch, phase0.Root)

func (*ChainService) GetGenesis

func (bs *ChainService) GetGenesis() (*v1.Genesis, error)

func (*ChainService) GetHeadForks

func (bs *ChainService) GetHeadForks(readyOnly bool) []*beacon.ForkHead

func (*ChainService) GetHighestElBlockNumber added in v1.14.0

func (bs *ChainService) GetHighestElBlockNumber(overrideForkId *beacon.ForkKey) uint64

func (*ChainService) GetIncludedDepositsByFilter

func (bs *ChainService) GetIncludedDepositsByFilter(filter *dbtypes.DepositFilter, pageIdx uint64, pageSize uint32) ([]*dbtypes.Deposit, uint64)

func (*ChainService) GetParentForkIds added in v1.12.1

func (bs *ChainService) GetParentForkIds(forkId beacon.ForkKey) []beacon.ForkKey

func (*ChainService) GetSlashingsByFilter

func (bs *ChainService) GetSlashingsByFilter(filter *dbtypes.SlashingFilter, pageIdx uint64, pageSize uint32) ([]*dbtypes.Slashing, uint64)

func (*ChainService) GetSlotDetailsByBlockroot

func (bs *ChainService) GetSlotDetailsByBlockroot(ctx context.Context, blockroot phase0.Root) (*CombinedBlockResponse, error)

GetSlotDetailsByBlockroot retrieves the combined block details for a given block root. It first checks if the block root is present in the beacon indexer's block cache. If found, it constructs a CombinedBlockResponse using the block information from the cache. If not found, it checks if the block root is present in the orphaned block database. If found, it constructs a CombinedBlockResponse with the orphaned block information. If not found in either cache or db, it retrieves the block header and block body from a random ready client and constructs a CombinedBlockResponse with the retrieved information.

func (*ChainService) GetSlotDetailsBySlot

func (bs *ChainService) GetSlotDetailsBySlot(ctx context.Context, slot phase0.Slot) (*CombinedBlockResponse, error)

GetSlotDetailsBySlot retrieves the combined block details for a given slot. It first checks if there are any blocks in the beacon indexer's block cache for the given slot. If found, it constructs a CombinedBlockResponse using the block information from the cache. If not found, it retrieves the block header and block body from a random ready client using the slot and constructs a CombinedBlockResponse with the retrieved information.

func (*ChainService) GetValidatorByIndex added in v1.13.0

func (bs *ChainService) GetValidatorByIndex(index phase0.ValidatorIndex, withBalance bool) *v1.Validator

func (*ChainService) GetValidatorIndexByPubkey added in v1.13.0

func (bs *ChainService) GetValidatorIndexByPubkey(pubkey phase0.BLSPubKey) (phase0.ValidatorIndex, bool)

func (*ChainService) GetValidatorLiveness added in v1.13.0

func (bs *ChainService) GetValidatorLiveness(validatorIndex phase0.ValidatorIndex, lookbackEpochs phase0.Epoch) uint64

func (*ChainService) GetValidatorName

func (bs *ChainService) GetValidatorName(index uint64) string

func (*ChainService) GetValidatorNamesCount

func (bs *ChainService) GetValidatorNamesCount() uint64

func (*ChainService) GetValidatorStatusMap added in v1.14.0

func (bs *ChainService) GetValidatorStatusMap() map[v1.ValidatorState]uint64

func (*ChainService) GetValidatorVotingActivity added in v1.13.0

func (bs *ChainService) GetValidatorVotingActivity(validatorIndex phase0.ValidatorIndex) ([]beacon.ValidatorActivity, phase0.Epoch)

func (*ChainService) GetVoluntaryExitsByFilter

func (bs *ChainService) GetVoluntaryExitsByFilter(filter *dbtypes.VoluntaryExitFilter, pageIdx uint64, pageSize uint32) ([]*dbtypes.VoluntaryExit, uint64)

func (*ChainService) GetWithdrawalIndexer added in v1.12.1

func (bs *ChainService) GetWithdrawalIndexer() *execindexer.WithdrawalIndexer

func (*ChainService) GetWithdrawalRequestOperationsByFilter added in v1.13.0

func (bs *ChainService) GetWithdrawalRequestOperationsByFilter(filter *dbtypes.WithdrawalRequestFilter, pageOffset uint64, pageSize uint32) ([]*dbtypes.WithdrawalRequest, uint64)

func (*ChainService) GetWithdrawalRequestsByFilter added in v1.12.0

func (bs *ChainService) GetWithdrawalRequestsByFilter(filter *CombinedWithdrawalRequestFilter, pageOffset uint64, pageSize uint32) ([]*CombinedWithdrawalRequest, uint64, uint64)

func (*ChainService) StartService added in v1.11.0

func (cs *ChainService) StartService() error

StartService is used to start the beaconchain service

func (*ChainService) StopService added in v1.14.0

func (bs *ChainService) StopService()

func (*ChainService) StreamActiveValidatorData added in v1.14.0

func (bs *ChainService) StreamActiveValidatorData(activeOnly bool, cb beacon.ValidatorSetStreamer) error

type CombinedBlockResponse

type CombinedBlockResponse struct {
	Root     phase0.Root
	Header   *phase0.SignedBeaconBlockHeader
	Block    *spec.VersionedSignedBeaconBlock
	Orphaned bool
}

type CombinedConsolidationRequest added in v1.13.0

type CombinedConsolidationRequest struct {
	Request             *dbtypes.ConsolidationRequest
	RequestOrphaned     bool
	Transaction         *dbtypes.ConsolidationRequestTx
	TransactionOrphaned bool
}

func (*CombinedConsolidationRequest) SourceAddress added in v1.13.0

func (ccr *CombinedConsolidationRequest) SourceAddress() []byte

func (*CombinedConsolidationRequest) SourceIndex added in v1.13.0

func (ccr *CombinedConsolidationRequest) SourceIndex() *uint64

func (*CombinedConsolidationRequest) SourcePubkey added in v1.13.0

func (ccr *CombinedConsolidationRequest) SourcePubkey() []byte

func (*CombinedConsolidationRequest) TargetIndex added in v1.13.0

func (ccr *CombinedConsolidationRequest) TargetIndex() *uint64

func (*CombinedConsolidationRequest) TargetPubkey added in v1.13.0

func (ccr *CombinedConsolidationRequest) TargetPubkey() []byte

type CombinedConsolidationRequestFilter added in v1.13.0

type CombinedConsolidationRequestFilter struct {
	Filter  *dbtypes.ConsolidationRequestFilter
	Request uint8 // 0: all, 1: tx only, 2: request only
}

type CombinedWithdrawalRequest added in v1.13.0

type CombinedWithdrawalRequest struct {
	Request             *dbtypes.WithdrawalRequest
	RequestOrphaned     bool
	Transaction         *dbtypes.WithdrawalRequestTx
	TransactionOrphaned bool
}

func (*CombinedWithdrawalRequest) Amount added in v1.13.0

func (cwr *CombinedWithdrawalRequest) Amount() uint64

func (*CombinedWithdrawalRequest) SourceAddress added in v1.13.0

func (cwr *CombinedWithdrawalRequest) SourceAddress() []byte

func (*CombinedWithdrawalRequest) ValidatorIndex added in v1.13.0

func (cwr *CombinedWithdrawalRequest) ValidatorIndex() *uint64

func (*CombinedWithdrawalRequest) ValidatorPubkey added in v1.13.0

func (cwr *CombinedWithdrawalRequest) ValidatorPubkey() []byte

type CombinedWithdrawalRequestFilter added in v1.13.0

type CombinedWithdrawalRequestFilter struct {
	Filter  *dbtypes.WithdrawalRequestFilter
	Request uint8 // 0: all, 1: tx only, 2: request only
}

type ConsensusClientFork added in v1.11.0

type ConsensusClientFork struct {
	Slot phase0.Slot
	Root phase0.Root

	ReadyClients []*beacon.Client
	AllClients   []*beacon.Client
}

type FrontendCachePageError

type FrontendCachePageError struct {
	// contains filtered or unexported fields
}

func (FrontendCachePageError) Error

func (e FrontendCachePageError) Error() string

func (FrontendCachePageError) Name

func (e FrontendCachePageError) Name() string

func (FrontendCachePageError) Stack

func (e FrontendCachePageError) Stack() string

type FrontendCacheProcessingPage

type FrontendCacheProcessingPage struct {
	CallCtx context.Context

	PageKey      string
	CacheTimeout time.Duration
	// contains filtered or unexported fields
}

type FrontendCacheService

type FrontendCacheService struct {
	// contains filtered or unexported fields
}
var GlobalFrontendCache *FrontendCacheService

func (*FrontendCacheService) ProcessCachedPage

func (fc *FrontendCacheService) ProcessCachedPage(pageKey string, caching bool, returnValue interface{}, buildFn PageDataHandlerFn) (interface{}, error)

type PageDataHandlerFn

type PageDataHandlerFn = func(pageCall *FrontendCacheProcessingPage) interface{}

type TxSignaturesLookup

type TxSignaturesLookup struct {
	Bytes     types.TxSignatureBytes
	Signature string
	Name      string
	Status    types.TxSignatureLookupStatus
}

type TxSignaturesService

type TxSignaturesService struct {
}
var GlobalTxSignaturesService *TxSignaturesService

func (*TxSignaturesService) LookupSignatures

func (tss *TxSignaturesService) LookupSignatures(sigBytes []types.TxSignatureBytes) map[types.TxSignatureBytes]*TxSignaturesLookup

type ValidatorNames

type ValidatorNames struct {
	// contains filtered or unexported fields
}

func NewValidatorNames

func NewValidatorNames(beaconIndexer *beacon.Indexer, chainState *consensus.ChainState) *ValidatorNames

func (*ValidatorNames) GetValidatorName

func (vn *ValidatorNames) GetValidatorName(index uint64) string

func (*ValidatorNames) GetValidatorNameByPubkey

func (vn *ValidatorNames) GetValidatorNameByPubkey(pubkey []byte) string

func (*ValidatorNames) GetValidatorNamesCount

func (vn *ValidatorNames) GetValidatorNamesCount() uint64

func (*ValidatorNames) LoadValidatorNames

func (vn *ValidatorNames) LoadValidatorNames() chan bool

func (*ValidatorNames) StartUpdater

func (vn *ValidatorNames) StartUpdater()

func (*ValidatorNames) UpdateDb added in v1.11.0

func (vn *ValidatorNames) UpdateDb() error

type ValidatorWithIndex added in v1.14.0

type ValidatorWithIndex struct {
	Index     phase0.ValidatorIndex
	Validator *phase0.Validator
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL