validatorapi

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2022 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Overview

Package validatorapi defines validator facing API that serves the subset of endpoints related to distributed validation and reverse-proxies the rest to the upstream beacon client.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetDomain

func GetDomain(ctx context.Context, eth2Cl Eth2DomainProvider, name DomainName, epoch eth2p0.Epoch) (eth2p0.Domain, error)

GetDomain returns the beacon domain for the provided type.

func NewRouter

func NewRouter(h Handler, beaconNodeAddr string) (*mux.Router, error)

NewRouter returns a new validator http server router. The http router translates http requests related to the distributed validator to the validatorapi.Handler. All other requests are reserve-proxied to the beacon-node address.

Types

type Component

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

func NewComponent

func NewComponent(eth2Svc eth2client.Service, pubShareByKey map[*bls_sig.PublicKey]*bls_sig.PublicKey, shareIdx int) (*Component, error)

NewComponent returns a new instance of the validator API core workflow component.

func NewComponentInsecure

func NewComponentInsecure(eth2Svc eth2client.Service, shareIdx int) (*Component, error)

NewComponentInsecure returns a new instance of the validator API core workflow component that does not perform signature verification.

func (Component) AttestationData

func (c Component) AttestationData(parent context.Context, slot eth2p0.Slot, committeeIndex eth2p0.CommitteeIndex) (*eth2p0.AttestationData, error)

AttestationData implements the eth2client.AttesterDutiesProvider for the router.

func (Component) AttesterDuties

func (c Component) AttesterDuties(ctx context.Context, epoch eth2p0.Epoch, validatorIndices []eth2p0.ValidatorIndex) ([]*eth2v1.AttesterDuty, error)

func (*Component) ProposerDuties

func (*Component) RegisterAwaitAttestation

func (c *Component) RegisterAwaitAttestation(fn func(ctx context.Context, slot, commIdx int64) (*eth2p0.AttestationData, error))

RegisterAwaitAttestation registers a function to query attestation data. It only supports a single function, since it is an input of the component.

func (*Component) RegisterParSigDB

func (c *Component) RegisterParSigDB(fn func(context.Context, core.Duty, core.ParSignedDataSet) error)

RegisterParSigDB registers a partial signed data set store function. It supports functions multiple since it is the output of the component.

func (*Component) RegisterPubKeyByAttestation

func (c *Component) RegisterPubKeyByAttestation(fn func(ctx context.Context, slot, commIdx, valCommIdx int64) (core.PubKey, error))

RegisterPubKeyByAttestation registers a function to query pubkeys by attestation. It only supports a single function, since it is an input of the component.

func (Component) SubmitAttestations

func (c Component) SubmitAttestations(ctx context.Context, attestations []*eth2p0.Attestation) error

SubmitAttestations implements the eth2client.AttestationsSubmitter for the router.

func (Component) Validators

func (c Component) Validators(ctx context.Context, stateID string, validatorIndices []eth2p0.ValidatorIndex) (map[eth2p0.ValidatorIndex]*eth2v1.Validator, error)

func (Component) ValidatorsByPubKey

func (c Component) ValidatorsByPubKey(ctx context.Context, stateID string, pubshares []eth2p0.BLSPubKey) (map[eth2p0.ValidatorIndex]*eth2v1.Validator, error)

type DomainName

type DomainName string

DomainName as defined in eth2 spec. See "specs/[phase0|altair]/beacon-chain.md#domain-types" in https://github.com/ethereum/consensus-specs.

const (
	DomainBeaconProposer DomainName = "DOMAIN_BEACON_PROPOSER"
	DomainBeaconAttester DomainName = "DOMAIN_BEACON_ATTESTER"
)

type Eth2DomainProvider

type Eth2DomainProvider interface {
	eth2client.SpecProvider
	eth2client.DomainProvider
}

Eth2DomainProvider is the subset of eth2 beacon api provider required to get a signing domain.

type Handler

Handler defines the request handler providing the business logic for the validator API router.

type PubShareFunc

type PubShareFunc func(pubkey core.PubKey, shareIdx int) (*bls_sig.PublicKey, error)

PubShareFunc abstracts the mapping of validator root public key to tbls public share.

Jump to

Keyboard shortcuts

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