beacon

package
v2.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2021 License: GPL-3.0 Imports: 48 Imported by: 0

Documentation

Overview

Package beacon defines a gRPC beacon service implementation, following the official API standards https://ethereum.github.io/beacon-apis/#/. This package includes the beacon and config endpoints.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Server

type Server struct {
	BeaconDB                db.ReadOnlyDatabase
	ChainInfoFetcher        blockchain.ChainInfoFetcher
	GenesisTimeFetcher      blockchain.TimeFetcher
	BlockReceiver           blockchain.BlockReceiver
	BlockNotifier           blockfeed.Notifier
	OperationNotifier       operation.Notifier
	Broadcaster             p2p.Broadcaster
	AttestationsPool        attestations.Pool
	SlashingsPool           slashings.PoolManager
	VoluntaryExitsPool      voluntaryexits.PoolManager
	StateGenService         stategen.StateManager
	StateFetcher            statefetcher.Fetcher
	HeadFetcher             blockchain.HeadFetcher
	V1Alpha1ValidatorServer *v1alpha1validator.Server
}

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) GetBlock

func (bs *Server) GetBlock(ctx context.Context, req *ethpbv1.BlockRequest) (*ethpbv1.BlockResponse, error)

GetBlock retrieves block details for given block ID.

func (*Server) GetBlockHeader

func (bs *Server) GetBlockHeader(ctx context.Context, req *ethpbv1.BlockRequest) (*ethpbv1.BlockHeaderResponse, error)

GetBlockHeader retrieves block header for given block id.

func (*Server) GetBlockRoot

func (bs *Server) GetBlockRoot(ctx context.Context, req *ethpbv1.BlockRequest) (*ethpbv1.BlockRootResponse, error)

GetBlockRoot retrieves hashTreeRoot of BeaconBlock/BeaconBlockHeader.

func (*Server) GetBlockSSZ

func (bs *Server) GetBlockSSZ(ctx context.Context, req *ethpbv1.BlockRequest) (*ethpbv1.BlockSSZResponse, error)

GetBlockSSZ returns the SSZ-serialized version of the becaon block for given block ID.

func (*Server) GetBlockSSZV2

func (bs *Server) GetBlockSSZV2(ctx context.Context, req *ethpbv2.BlockRequestV2) (*ethpbv2.BlockSSZResponseV2, error)

GetBlockSSZV2 returns the SSZ-serialized version of the beacon block for given block ID.

func (*Server) GetBlockV2

func (bs *Server) GetBlockV2(ctx context.Context, req *ethpbv2.BlockRequestV2) (*ethpbv2.BlockResponseV2, error)

GetBlockV2 retrieves block details for given block ID.

func (*Server) GetDepositContract

func (bs *Server) GetDepositContract(ctx context.Context, _ *emptypb.Empty) (*ethpb.DepositContractResponse, error)

GetDepositContract retrieves deposit contract address and genesis fork version.

func (*Server) GetFinalityCheckpoints

func (bs *Server) GetFinalityCheckpoints(ctx context.Context, req *ethpb.StateRequest) (*ethpb.StateFinalityCheckpointResponse, error)

GetFinalityCheckpoints returns finality checkpoints for state with given 'stateId'. In case finality is not yet achieved, checkpoint should return epoch 0 and ZERO_HASH as root.

func (*Server) GetForkSchedule

func (bs *Server) GetForkSchedule(ctx context.Context, _ *emptypb.Empty) (*ethpb.ForkScheduleResponse, error)

GetForkSchedule retrieve all scheduled upcoming forks this node is aware of.

func (*Server) GetGenesis

func (bs *Server) GetGenesis(ctx context.Context, _ *emptypb.Empty) (*ethpb.GenesisResponse, error)

GetGenesis retrieves details of the chain's genesis which can be used to identify chain.

func (*Server) GetSpec

func (bs *Server) GetSpec(ctx context.Context, _ *emptypb.Empty) (*ethpb.SpecResponse, error)

GetSpec retrieves specification configuration (without Phase 1 params) used on this node. Specification params list Values are returned with following format: - any value starting with 0x in the spec is returned as a hex string. - all other values are returned as number.

func (*Server) GetStateFork

func (bs *Server) GetStateFork(ctx context.Context, req *ethpb.StateRequest) (*ethpb.StateForkResponse, error)

GetStateFork returns Fork object for state with given 'stateId'.

func (*Server) GetStateRoot

func (bs *Server) GetStateRoot(ctx context.Context, req *ethpb.StateRequest) (*ethpb.StateRootResponse, error)

GetStateRoot calculates HashTreeRoot for state with given 'stateId'. If stateId is root, same value will be returned.

func (*Server) GetValidator

GetValidator returns a validator specified by state and id or public key along with status and balance.

func (*Server) ListBlockAttestations

func (bs *Server) ListBlockAttestations(ctx context.Context, req *ethpbv1.BlockRequest) (*ethpbv1.BlockAttestationsResponse, error)

ListBlockAttestations retrieves attestation included in requested block.

func (*Server) ListBlockHeaders

func (bs *Server) ListBlockHeaders(ctx context.Context, req *ethpbv1.BlockHeadersRequest) (*ethpbv1.BlockHeadersResponse, error)

ListBlockHeaders retrieves block headers matching given query. By default it will fetch current head slot blocks.

func (*Server) ListCommittees

ListCommittees retrieves the committees for the given state at the given epoch. If the requested slot and index are defined, only those committees are returned.

func (*Server) ListPoolAttestations

ListPoolAttestations retrieves attestations known by the node but not necessarily incorporated into any block. Allows filtering by committee index or slot.

func (*Server) ListPoolAttesterSlashings

func (bs *Server) ListPoolAttesterSlashings(ctx context.Context, _ *emptypb.Empty) (*ethpbv1.AttesterSlashingsPoolResponse, error)

ListPoolAttesterSlashings retrieves attester slashings known by the node but not necessarily incorporated into any block.

func (*Server) ListPoolProposerSlashings

func (bs *Server) ListPoolProposerSlashings(ctx context.Context, _ *emptypb.Empty) (*ethpbv1.ProposerSlashingPoolResponse, error)

ListPoolProposerSlashings retrieves proposer slashings known by the node but not necessarily incorporated into any block.

func (*Server) ListPoolVoluntaryExits

func (bs *Server) ListPoolVoluntaryExits(ctx context.Context, _ *emptypb.Empty) (*ethpbv1.VoluntaryExitsPoolResponse, error)

ListPoolVoluntaryExits retrieves voluntary exits known by the node but not necessarily incorporated into any block.

func (*Server) ListSyncCommittees

ListSyncCommittees retrieves the sync committees for the given epoch. If the epoch is not passed in, then the sync committees for the epoch of the state will be obtained.

func (*Server) ListValidatorBalances

func (bs *Server) ListValidatorBalances(ctx context.Context, req *ethpb.ValidatorBalancesRequest) (*ethpb.ValidatorBalancesResponse, error)

ListValidatorBalances returns a filterable list of validator balances.

func (*Server) ListValidators

ListValidators returns filterable list of validators with their balance, status and index.

func (*Server) SubmitAttestations

func (bs *Server) SubmitAttestations(ctx context.Context, req *ethpbv1.SubmitAttestationsRequest) (*emptypb.Empty, error)

SubmitAttestations submits Attestation object to node. If attestation passes all validation constraints, node MUST publish attestation on appropriate subnet.

func (*Server) SubmitAttesterSlashing

func (bs *Server) SubmitAttesterSlashing(ctx context.Context, req *ethpbv1.AttesterSlashing) (*emptypb.Empty, error)

SubmitAttesterSlashing submits AttesterSlashing object to node's pool and if passes validation node MUST broadcast it to network.

func (*Server) SubmitBlock

SubmitBlock instructs the beacon node to broadcast a newly signed beacon block to the beacon network, to be included in the beacon chain. The beacon node is not required to validate the signed BeaconBlock, and a successful response (20X) only indicates that the broadcast has been successful. The beacon node is expected to integrate the new block into its state, and therefore validate the block internally, however blocks which fail the validation are still broadcast but a different status code is returned (202).

func (*Server) SubmitPoolSyncCommitteeSignatures

func (bs *Server) SubmitPoolSyncCommitteeSignatures(ctx context.Context, req *ethpbv2.SubmitPoolSyncCommitteeSignatures) (*empty.Empty, error)

SubmitPoolSyncCommitteeSignatures submits sync committee signature objects to the node.

func (*Server) SubmitProposerSlashing

func (bs *Server) SubmitProposerSlashing(ctx context.Context, req *ethpbv1.ProposerSlashing) (*emptypb.Empty, error)

SubmitProposerSlashing submits AttesterSlashing object to node's pool and if passes validation node MUST broadcast it to network.

func (*Server) SubmitVoluntaryExit

func (bs *Server) SubmitVoluntaryExit(ctx context.Context, req *ethpbv1.SignedVoluntaryExit) (*emptypb.Empty, error)

SubmitVoluntaryExit submits SignedVoluntaryExit object to node's pool and if passes validation node MUST broadcast it to network.

Jump to

Keyboard shortcuts

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