Documentation ¶
Index ¶
- type Server
- func (vs *Server) CanonicalHead(ctx context.Context, req *ptypes.Empty) (*ethpb.SignedBeaconBlock, error)
- func (vs *Server) DomainData(ctx context.Context, request *ethpb.DomainRequest) (*ethpb.DomainResponse, error)
- func (vs *Server) ExitedValidators(ctx context.Context, req *pb.ExitedValidatorsRequest) (*pb.ExitedValidatorsResponse, error)
- func (vs *Server) GetAttestationData(ctx context.Context, req *ethpb.AttestationDataRequest) (*ethpb.AttestationData, error)
- func (vs *Server) GetBlock(ctx context.Context, req *ethpb.BlockRequest) (*ethpb.BeaconBlock, error)
- func (vs *Server) GetDuties(ctx context.Context, req *ethpb.DutiesRequest) (*ethpb.DutiesResponse, error)
- func (vs *Server) ProposeAttestation(ctx context.Context, att *ethpb.Attestation) (*ethpb.AttestResponse, error)
- func (vs *Server) ProposeBlock(ctx context.Context, blk *ethpb.SignedBeaconBlock) (*ethpb.ProposeResponse, error)
- func (vs *Server) ProposeExit(ctx context.Context, req *ethpb.SignedVoluntaryExit) (*ptypes.Empty, error)
- func (vs *Server) ValidatorIndex(ctx context.Context, req *ethpb.ValidatorIndexRequest) (*ethpb.ValidatorIndexResponse, error)
- func (vs *Server) ValidatorStatus(ctx context.Context, req *ethpb.ValidatorStatusRequest) (*ethpb.ValidatorStatusResponse, error)
- func (vs *Server) WaitForActivation(req *ethpb.ValidatorActivationRequest, ...) error
- func (vs *Server) WaitForChainStart(req *ptypes.Empty, stream ethpb.BeaconNodeValidator_WaitForChainStartServer) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Server ¶
type Server struct { Ctx context.Context BeaconDB db.Database AttestationCache *cache.AttestationCache HeadFetcher blockchain.HeadFetcher ForkFetcher blockchain.ForkFetcher CanonicalStateChan chan *pbp2p.BeaconState BlockFetcher powchain.POWBlockFetcher DepositFetcher depositcache.DepositFetcher ChainStartFetcher powchain.ChainStartFetcher Eth1InfoFetcher powchain.ChainInfoFetcher SyncChecker sync.Checker StateNotifier statefeed.Notifier P2P p2p.Broadcaster AttPool attestations.Pool BlockReceiver blockchain.BlockReceiver MockEth1Votes bool Eth1BlockFetcher powchain.POWBlockFetcher PendingDepositsFetcher depositcache.PendingDepositsFetcher OperationNotifier opfeed.Notifier GenesisTime time.Time }
Server defines a server implementation of the gRPC Validator service, providing RPC endpoints for obtaining validator assignments per epoch, the slots and committees in which particular validators need to perform their responsibilities, and more.
func (*Server) CanonicalHead ¶
func (vs *Server) CanonicalHead(ctx context.Context, req *ptypes.Empty) (*ethpb.SignedBeaconBlock, error)
CanonicalHead of the current beacon chain. This method is requested on-demand by a validator when it is their time to propose or attest.
func (*Server) DomainData ¶
func (vs *Server) DomainData(ctx context.Context, request *ethpb.DomainRequest) (*ethpb.DomainResponse, error)
DomainData fetches the current domain version information from the beacon state.
func (*Server) ExitedValidators ¶
func (vs *Server) ExitedValidators( ctx context.Context, req *pb.ExitedValidatorsRequest) (*pb.ExitedValidatorsResponse, error)
ExitedValidators queries validator statuses for a give list of validators and returns a filtered list of validator keys that are exited.
func (*Server) GetAttestationData ¶ added in v0.3.0
func (vs *Server) GetAttestationData(ctx context.Context, req *ethpb.AttestationDataRequest) (*ethpb.AttestationData, error)
GetAttestationData requests that the beacon node produce an attestation data object, which the validator acting as an attester will then sign.
func (*Server) GetBlock ¶ added in v0.3.0
func (vs *Server) GetBlock(ctx context.Context, req *ethpb.BlockRequest) (*ethpb.BeaconBlock, error)
GetBlock is called by a proposer during its assigned slot to request a block to sign by passing in the slot and the signed randao reveal of the slot.
func (*Server) GetDuties ¶ added in v0.3.0
func (vs *Server) GetDuties(ctx context.Context, req *ethpb.DutiesRequest) (*ethpb.DutiesResponse, error)
GetDuties returns the committee assignment response from a given validator public key. The committee assignment response contains the following fields for the current and previous epoch:
1.) The list of validators in the committee. 2.) The shard to which the committee is assigned. 3.) The slot at which the committee is assigned. 4.) The bool signaling if the validator is expected to propose a block at the assigned slot.
func (*Server) ProposeAttestation ¶ added in v0.3.0
func (vs *Server) ProposeAttestation(ctx context.Context, att *ethpb.Attestation) (*ethpb.AttestResponse, error)
ProposeAttestation is a function called by an attester to vote on a block via an attestation object as defined in the Ethereum Serenity specification.
func (*Server) ProposeBlock ¶ added in v0.3.0
func (vs *Server) ProposeBlock(ctx context.Context, blk *ethpb.SignedBeaconBlock) (*ethpb.ProposeResponse, error)
ProposeBlock is called by a proposer during its assigned slot to create a block in an attempt to get it processed by the beacon node as the canonical head.
func (*Server) ProposeExit ¶ added in v0.3.0
func (vs *Server) ProposeExit(ctx context.Context, req *ethpb.SignedVoluntaryExit) (*ptypes.Empty, error)
ProposeExit proposes an exit for a validator.
func (*Server) ValidatorIndex ¶
func (vs *Server) ValidatorIndex(ctx context.Context, req *ethpb.ValidatorIndexRequest) (*ethpb.ValidatorIndexResponse, error)
ValidatorIndex is called by a validator to get its index location in the beacon state.
func (*Server) ValidatorStatus ¶
func (vs *Server) ValidatorStatus( ctx context.Context, req *ethpb.ValidatorStatusRequest) (*ethpb.ValidatorStatusResponse, error)
ValidatorStatus returns the validator status of the current epoch. The status response can be one of the following:
PENDING_ACTIVE - validator is waiting to get activated. ACTIVE - validator is active. INITIATED_EXIT - validator has initiated an an exit request. WITHDRAWABLE - validator's deposit can be withdrawn after lock up period. EXITED - validator has exited, means the deposit has been withdrawn. EXITED_SLASHED - validator was forcefully exited due to slashing.
func (*Server) WaitForActivation ¶
func (vs *Server) WaitForActivation(req *ethpb.ValidatorActivationRequest, stream ethpb.BeaconNodeValidator_WaitForActivationServer) error
WaitForActivation checks if a validator public key exists in the active validator registry of the current beacon state, if not, then it creates a stream which listens for canonical states which contain the validator with the public key as an active validator record.
func (*Server) WaitForChainStart ¶
func (vs *Server) WaitForChainStart(req *ptypes.Empty, stream ethpb.BeaconNodeValidator_WaitForChainStartServer) error
WaitForChainStart queries the logs of the Deposit Contract in order to verify the beacon chain has started its runtime and validators begin their responsibilities. If it has not, it then subscribes to an event stream triggered by the powchain service whenever the ChainStart log does occur in the Deposit Contract on ETH 1.0.