Documentation ¶
Overview ¶
Package beacon defines a gRPC beacon service implementation, providing useful endpoints for checking fetching chain-specific data such as blocks, committees, validators, assignments, and more.
Index ¶
- type Server
- func (bs *Server) AttestationPool(_ context.Context, req *ethpb.AttestationPoolRequest) (*ethpb.AttestationPoolResponse, error)
- func (bs *Server) AttestationPoolElectra(_ context.Context, req *ethpb.AttestationPoolRequest) (*ethpb.AttestationPoolElectraResponse, error)
- func (_ *Server) GetBeaconConfig(_ context.Context, _ *emptypb.Empty) (*ethpb.BeaconConfig, error)
- func (bs *Server) GetChainHead(ctx context.Context, _ *emptypb.Empty) (*ethpb.ChainHead, error)
- func (bs *Server) GetIndividualVotes(ctx context.Context, req *ethpb.IndividualVotesRequest) (*ethpb.IndividualVotesRespond, error)
- func (bs *Server) GetValidator(ctx context.Context, req *ethpb.GetValidatorRequest) (*ethpb.Validator, error)
- func (bs *Server) GetValidatorActiveSetChanges(ctx context.Context, req *ethpb.GetValidatorActiveSetChangesRequest) (*ethpb.ActiveSetChanges, error)
- func (bs *Server) GetValidatorParticipation(ctx context.Context, req *ethpb.GetValidatorParticipationRequest) (*ethpb.ValidatorParticipationResponse, error)
- func (bs *Server) GetValidatorPerformance(ctx context.Context, req *ethpb.ValidatorPerformanceRequest) (*ethpb.ValidatorPerformanceResponse, error)
- func (bs *Server) GetValidatorQueue(ctx context.Context, _ *emptypb.Empty) (*ethpb.ValidatorQueue, error)
- func (bs *Server) ListAttestations(ctx context.Context, req *ethpb.ListAttestationsRequest) (*ethpb.ListAttestationsResponse, error)
- func (bs *Server) ListAttestationsElectra(ctx context.Context, req *ethpb.ListAttestationsRequest) (*ethpb.ListAttestationsElectraResponse, error)
- func (bs *Server) ListBeaconBlocks(ctx context.Context, req *ethpb.ListBlocksRequest) (*ethpb.ListBeaconBlocksResponse, error)
- func (bs *Server) ListBeaconCommittees(ctx context.Context, req *ethpb.ListCommitteesRequest) (*ethpb.BeaconCommittees, error)
- func (bs *Server) ListIndexedAttestations(ctx context.Context, req *ethpb.ListIndexedAttestationsRequest) (*ethpb.ListIndexedAttestationsResponse, error)
- func (bs *Server) ListIndexedAttestationsElectra(ctx context.Context, req *ethpb.ListIndexedAttestationsRequest) (*ethpb.ListIndexedAttestationsElectraResponse, error)
- func (bs *Server) ListValidatorAssignments(ctx context.Context, req *ethpb.ListValidatorAssignmentsRequest) (*ethpb.ValidatorAssignments, error)
- func (bs *Server) ListValidatorBalances(ctx context.Context, req *ethpb.ListValidatorBalancesRequest) (*ethpb.ValidatorBalances, error)
- func (bs *Server) ListValidators(ctx context.Context, req *ethpb.ListValidatorsRequest) (*ethpb.Validators, error)
- func (bs *Server) SubmitAttesterSlashing(ctx context.Context, req *ethpb.AttesterSlashing) (*ethpb.SubmitSlashingResponse, error)
- func (bs *Server) SubmitAttesterSlashingElectra(ctx context.Context, req *ethpb.AttesterSlashingElectra) (*ethpb.SubmitSlashingResponse, error)
- func (bs *Server) SubmitProposerSlashing(ctx context.Context, req *ethpb.ProposerSlashing) (*ethpb.SubmitSlashingResponse, error)
- type SlotToCommiteesMap
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Server ¶
type Server struct { BeaconDB db.ReadOnlyDatabase Ctx context.Context ChainStartFetcher execution.ChainStartFetcher HeadFetcher blockchain.HeadFetcher CanonicalFetcher blockchain.CanonicalFetcher FinalizationFetcher blockchain.FinalizationFetcher DepositFetcher cache.DepositFetcher BlockFetcher execution.POWBlockFetcher GenesisTimeFetcher blockchain.TimeFetcher StateNotifier statefeed.Notifier BlockNotifier blockfeed.Notifier AttestationNotifier operation.Notifier Broadcaster p2p.Broadcaster AttestationsPool attestations.Pool SlashingsPool slashings.PoolManager ChainStartChan chan time.Time ReceivedAttestationsBuffer chan *ethpb.Attestation CollectedAttestationsBuffer chan []*ethpb.Attestation StateGen stategen.StateManager SyncChecker sync.Checker ReplayerBuilder stategen.ReplayerBuilder OptimisticModeFetcher blockchain.OptimisticModeFetcher CoreService *core.Service }
Server defines a server implementation of the gRPC Beacon Chain service, providing RPC endpoints to access data relevant to the Ethereum beacon chain.
func (*Server) AttestationPool ¶
func (bs *Server) AttestationPool(_ context.Context, req *ethpb.AttestationPoolRequest) (*ethpb.AttestationPoolResponse, error)
AttestationPool retrieves pending attestations.
The server returns a list of attestations that have been seen but not yet processed. Pool attestations eventually expire as the slot advances, so an attestation missing from this request does not imply that it was included in a block. The attestation may have expired. Refer to the ethereum consensus specification for more details on how attestations are processed and when they are no longer valid. https://github.com/ethereum/consensus-specs/blob/dev/specs/core/0_beacon-chain.md#attestations
func (*Server) AttestationPoolElectra ¶ added in v5.1.0
func (bs *Server) AttestationPoolElectra(_ context.Context, req *ethpb.AttestationPoolRequest) (*ethpb.AttestationPoolElectraResponse, error)
func (*Server) GetBeaconConfig ¶
GetBeaconConfig retrieves the current configuration parameters of the beacon chain.
func (*Server) GetChainHead ¶
GetChainHead retrieves information about the head of the beacon chain from the view of the beacon chain node.
This includes the head block slot and root as well as information about the most recent finalized and justified slots. DEPRECATED: This endpoint is superseded by the /eth/v1/beacon API endpoint
func (*Server) GetIndividualVotes ¶
func (bs *Server) GetIndividualVotes( ctx context.Context, req *ethpb.IndividualVotesRequest, ) (*ethpb.IndividualVotesRespond, error)
GetIndividualVotes retrieves individual voting status of validators.
func (*Server) GetValidator ¶
func (bs *Server) GetValidator( ctx context.Context, req *ethpb.GetValidatorRequest, ) (*ethpb.Validator, error)
GetValidator information from any validator in the registry by index or public key.
func (*Server) GetValidatorActiveSetChanges ¶
func (bs *Server) GetValidatorActiveSetChanges( ctx context.Context, req *ethpb.GetValidatorActiveSetChangesRequest, ) (*ethpb.ActiveSetChanges, error)
GetValidatorActiveSetChanges retrieves the active set changes for a given epoch.
This data includes any activations, voluntary exits, and involuntary ejections.
func (*Server) GetValidatorParticipation ¶
func (bs *Server) GetValidatorParticipation( ctx context.Context, req *ethpb.GetValidatorParticipationRequest, ) (*ethpb.ValidatorParticipationResponse, error)
GetValidatorParticipation retrieves the validator participation information for a given epoch, it returns the information about validator's participation rate in voting on the proof of stake rules based on their balance compared to the total active validator balance.
func (*Server) GetValidatorPerformance ¶
func (bs *Server) GetValidatorPerformance( ctx context.Context, req *ethpb.ValidatorPerformanceRequest, ) (*ethpb.ValidatorPerformanceResponse, error)
GetValidatorPerformance reports the validator's latest balance along with other important metrics on rewards and penalties throughout its lifecycle in the beacon chain.
func (*Server) GetValidatorQueue ¶
func (bs *Server) GetValidatorQueue( ctx context.Context, _ *emptypb.Empty, ) (*ethpb.ValidatorQueue, error)
GetValidatorQueue retrieves the current validator queue information.
func (*Server) ListAttestations ¶
func (bs *Server) ListAttestations( ctx context.Context, req *ethpb.ListAttestationsRequest, ) (*ethpb.ListAttestationsResponse, error)
ListAttestations retrieves attestations by block root, slot, or epoch. Attestations are sorted by data slot by default.
The server may return an empty list when no attestations match the given filter criteria. This RPC should not return NOT_FOUND. Only one filter criteria should be used.
func (*Server) ListAttestationsElectra ¶ added in v5.1.0
func (bs *Server) ListAttestationsElectra(ctx context.Context, req *ethpb.ListAttestationsRequest) (*ethpb.ListAttestationsElectraResponse, error)
ListAttestationsElectra retrieves attestations by block root, slot, or epoch. Attestations are sorted by data slot by default.
The server may return an empty list when no attestations match the given filter criteria. This RPC should not return NOT_FOUND. Only one filter criteria should be used.
func (*Server) ListBeaconBlocks ¶
func (bs *Server) ListBeaconBlocks( ctx context.Context, req *ethpb.ListBlocksRequest, ) (*ethpb.ListBeaconBlocksResponse, error)
ListBeaconBlocks retrieves blocks by root, slot, or epoch.
The server may return multiple blocks in the case that a slot or epoch is provided as the filter criteria. The server may return an empty list when no blocks in their database match the filter criteria. This RPC should not return NOT_FOUND. Only one filter criteria should be used.
func (*Server) ListBeaconCommittees ¶
func (bs *Server) ListBeaconCommittees( ctx context.Context, req *ethpb.ListCommitteesRequest, ) (*ethpb.BeaconCommittees, error)
ListBeaconCommittees for a given epoch.
If no filter criteria is specified, the response returns all beacon committees for the current epoch. The results are paginated by default.
func (*Server) ListIndexedAttestations ¶
func (bs *Server) ListIndexedAttestations( ctx context.Context, req *ethpb.ListIndexedAttestationsRequest, ) (*ethpb.ListIndexedAttestationsResponse, error)
ListIndexedAttestations retrieves indexed attestations by block root. IndexedAttestationsForEpoch are sorted by data slot by default. Start-end epoch filter is used to retrieve blocks with.
The server may return an empty list when no attestations match the given filter criteria. This RPC should not return NOT_FOUND.
func (*Server) ListIndexedAttestationsElectra ¶ added in v5.1.0
func (bs *Server) ListIndexedAttestationsElectra( ctx context.Context, req *ethpb.ListIndexedAttestationsRequest, ) (*ethpb.ListIndexedAttestationsElectraResponse, error)
ListIndexedAttestationsElectra retrieves indexed attestations by block root. IndexedAttestationsForEpoch are sorted by data slot by default. Start-end epoch filter is used to retrieve blocks with.
The server may return an empty list when no attestations match the given filter criteria. This RPC should not return NOT_FOUND.
func (*Server) ListValidatorAssignments ¶
func (bs *Server) ListValidatorAssignments( ctx context.Context, req *ethpb.ListValidatorAssignmentsRequest, ) (*ethpb.ValidatorAssignments, error)
ListValidatorAssignments retrieves the validator assignments for a given epoch, optional validator indices or public keys may be included to filter validator assignments.
func (*Server) ListValidatorBalances ¶
func (bs *Server) ListValidatorBalances( ctx context.Context, req *ethpb.ListValidatorBalancesRequest, ) (*ethpb.ValidatorBalances, error)
ListValidatorBalances retrieves the validator balances for a given set of public keys. An optional Epoch parameter is provided to request historical validator balances from archived, persistent data.
func (*Server) ListValidators ¶
func (bs *Server) ListValidators( ctx context.Context, req *ethpb.ListValidatorsRequest, ) (*ethpb.Validators, error)
ListValidators retrieves the current list of active validators with an optional historical epoch flag to retrieve validator set in time.
func (*Server) SubmitAttesterSlashing ¶
func (bs *Server) SubmitAttesterSlashing(ctx context.Context, req *ethpb.AttesterSlashing) (*ethpb.SubmitSlashingResponse, error)
func (*Server) SubmitAttesterSlashingElectra ¶ added in v5.1.0
func (bs *Server) SubmitAttesterSlashingElectra(ctx context.Context, req *ethpb.AttesterSlashingElectra) (*ethpb.SubmitSlashingResponse, error)
SubmitAttesterSlashingElectra receives an attester slashing object via RPC and injects it into the beacon node's operations pool. Submission into this pool does not guarantee inclusion into a beacon block.
func (*Server) SubmitProposerSlashing ¶
func (bs *Server) SubmitProposerSlashing( ctx context.Context, req *ethpb.ProposerSlashing, ) (*ethpb.SubmitSlashingResponse, error)
SubmitProposerSlashing receives a proposer slashing object via RPC and injects it into the beacon node's operations pool. Submission into this pool does not guarantee inclusion into a beacon block.
type SlotToCommiteesMap ¶
type SlotToCommiteesMap map[primitives.Slot]*ethpb.BeaconCommittees_CommitteesList
SlotToCommiteesMap represents <slot, CommitteeList> map.
func (SlotToCommiteesMap) SlotToUint64 ¶
func (m SlotToCommiteesMap) SlotToUint64() map[uint64]*ethpb.BeaconCommittees_CommitteesList
SlotToUint64 updates map keys to slots (workaround which will be unnecessary if we can cast map<uint64, CommitteesList> correctly in beacon_chain.proto)