Documentation
¶
Index ¶
- Constants
- Variables
- func SubmissionToKey(submission *types.BuilderSubmitBlockRequest) structs.PayloadKey
- type Auctioneer
- type Beacon
- type BlockValidationClient
- type Datastore
- type Relay
- func (r *Relay) AttachMetrics(m *metrics.Metrics)
- func (r *Relay) GetBlockReceived(ctx context.Context, query structs.HeaderTraceQuery) ([]structs.BidTraceWithTimestamp, error)
- func (rs *Relay) GetHeader(ctx context.Context, m *structs.MetricGroup, request structs.HeaderRequest) (structs.GetHeaderResponse, error)
- func (rs *Relay) GetPayload(ctx context.Context, m *structs.MetricGroup, ...) (structs.GetPayloadResponse, error)
- func (r *Relay) GetPayloadDelivered(ctx context.Context, query structs.PayloadTraceQuery) ([]structs.BidTraceExtended, error)
- func (rs *Relay) SubmitBlock(ctx context.Context, m *structs.MetricGroup, sbr structs.SubmitBlockRequest) error
- type RelayConfig
- type RelayMetrics
- type State
- type ValidatorCache
- type ValidatorStore
- type Verifier
Constants ¶
View Source
const (
StateRecheckDelay = time.Second
)
Variables ¶
View Source
var ( ErrUnknownValue = errors.New("value is unknown") ErrPayloadAlreadyDelivered = errors.New("slot payload already delivered") ErrNoPayloadFound = errors.New("no payload found") ErrMissingRequest = errors.New("req is nil") ErrMissingSecretKey = errors.New("secret key is nil") ErrNoBuilderBid = errors.New("no builder bid") ErrOldSlot = errors.New("requested slot is old") ErrBadHeader = errors.New("invalid block header from datastore") ErrInvalidSignature = errors.New("invalid signature") ErrStore = errors.New("failed to store") ErrMarshal = errors.New("failed to marshal") ErrInternal = errors.New("internal server error") ErrUnknownValidator = errors.New("unknown validator") ErrVerification = errors.New("failed to verify") ErrInvalidTimestamp = errors.New("invalid timestamp") ErrInvalidSlot = errors.New("invalid slot") ErrEmptyBlock = errors.New("block is empty") )
View Source
var ( ErrWrongFeeRecipient = errors.New("wrong fee recipient") ErrInvalidWithdrawalSlot = errors.New("invalid withdrawal slot") ErrInvalidWithdrawalRoot = errors.New("invalid withdrawal root") ErrInvalidRandao = errors.New("randao is invalid") )
View Source
var (
DurationPerSlot = time.Second * 12
)
Functions ¶
func SubmissionToKey ¶
func SubmissionToKey(submission *types.BuilderSubmitBlockRequest) structs.PayloadKey
Types ¶
type Auctioneer ¶ added in v0.3.4
type Auctioneer interface { AddBlock(block *structs.CompleteBlockstruct) bool MaxProfitBlock(slot structs.Slot) (*structs.CompleteBlockstruct, bool) }
type Beacon ¶ added in v0.3.9
type Beacon interface {
PublishBlock(block structs.SignedBeaconBlock) error
}
type BlockValidationClient ¶ added in v0.3.22
type Datastore ¶
type Datastore interface { CheckSlotDelivered(context.Context, uint64) (bool, error) PutDelivered(context.Context, structs.Slot, structs.DeliveredTrace, time.Duration) error GetDelivered(context.Context, structs.PayloadQuery) (structs.BidTraceWithTimestamp, error) PutPayload(context.Context, structs.PayloadKey, structs.BlockBidAndTrace, time.Duration) error GetPayload(context.Context, structs.ForkVersion, structs.PayloadKey) (structs.BlockBidAndTrace, bool, error) PutHeader(ctx context.Context, hd structs.HeaderData, ttl time.Duration) error CacheBlock(ctx context.Context, key structs.PayloadKey, block *structs.CompleteBlockstruct) error GetMaxProfitHeader(ctx context.Context, slot uint64) (structs.HeaderAndTrace, error) // to be changed GetHeadersBySlot(ctx context.Context, slot uint64) ([]structs.HeaderAndTrace, error) GetHeadersByBlockHash(ctx context.Context, hash types.Hash) ([]structs.HeaderAndTrace, error) GetHeadersByBlockNum(ctx context.Context, num uint64) ([]structs.HeaderAndTrace, error) GetLatestHeaders(ctx context.Context, limit uint64, stopLag uint64) ([]structs.HeaderAndTrace, error) GetDeliveredBatch(context.Context, []structs.PayloadQuery) ([]structs.BidTraceWithTimestamp, error) }
type Relay ¶
type Relay struct {
// contains filtered or unexported fields
}
func NewRelay ¶
func NewRelay(l log.Logger, config RelayConfig, beacon Beacon, cache ValidatorCache, vstore ValidatorStore, ver Verifier, beaconState State, d Datastore, a Auctioneer, bvc BlockValidationClient) *Relay
NewRelay relay service
func (*Relay) AttachMetrics ¶
func (*Relay) GetBlockReceived ¶ added in v0.3.9
func (r *Relay) GetBlockReceived(ctx context.Context, query structs.HeaderTraceQuery) ([]structs.BidTraceWithTimestamp, error)
func (*Relay) GetHeader ¶
func (rs *Relay) GetHeader(ctx context.Context, m *structs.MetricGroup, request structs.HeaderRequest) (structs.GetHeaderResponse, error)
GetHeader is called by a block proposer communicating through mev-boost and returns a bid along with an execution payload header
func (*Relay) GetPayload ¶
func (rs *Relay) GetPayload(ctx context.Context, m *structs.MetricGroup, payloadRequest structs.SignedBlindedBeaconBlock) (structs.GetPayloadResponse, error)
GetPayload is called by a block proposer communicating through mev-boost and reveals execution payload of given signed beacon block if stored
func (*Relay) GetPayloadDelivered ¶ added in v0.3.9
func (r *Relay) GetPayloadDelivered(ctx context.Context, query structs.PayloadTraceQuery) ([]structs.BidTraceExtended, error)
func (*Relay) SubmitBlock ¶
func (rs *Relay) SubmitBlock(ctx context.Context, m *structs.MetricGroup, sbr structs.SubmitBlockRequest) error
SubmitBlock Accepts block from trusted builder and stores
type RelayConfig ¶
type RelayMetrics ¶
type RelayMetrics struct {
MissHeaderCount *prometheus.CounterVec
}
type State ¶
type State interface { KnownValidators() structs.ValidatorsState HeadSlot() structs.Slot Genesis() structs.GenesisInfo Withdrawals() structs.WithdrawalsState Randao() string ForkVersion(slot structs.Slot) structs.ForkVersion }
type ValidatorCache ¶ added in v0.3.19
type ValidatorStore ¶ added in v0.3.19
Click to show internal directories.
Click to hide internal directories.