Documentation ¶
Index ¶
- Constants
- type MessageHandler
- type Metrics
- type NonCommitteeValidator
- type NopMetrics
- func (n NopMetrics) DroppedQueueMessage(spectypes.MessageID)
- func (n NopMetrics) IncomingQueueMessage(spectypes.MessageID)
- func (n NopMetrics) MessageQueueCapacity(int)
- func (n NopMetrics) MessageQueueSize(int)
- func (n NopMetrics) MessageTimeInQueue(spectypes.MessageID, time.Duration)
- func (n NopMetrics) OutgoingQueueMessage(spectypes.MessageID)
- func (n NopMetrics) ValidatorError([]byte)
- func (n NopMetrics) ValidatorExiting([]byte)
- func (n NopMetrics) ValidatorInactive([]byte)
- func (n NopMetrics) ValidatorNoIndex([]byte)
- func (n NopMetrics) ValidatorNotActivated([]byte)
- func (n NopMetrics) ValidatorNotFound([]byte)
- func (n NopMetrics) ValidatorPending([]byte)
- func (n NopMetrics) ValidatorReady([]byte)
- func (n NopMetrics) ValidatorRemoved([]byte)
- func (n NopMetrics) ValidatorSlashed([]byte)
- func (n NopMetrics) ValidatorUnknown([]byte)
- type Options
- type State
- type Validator
- func (v *Validator) ConsumeQueue(logger *zap.Logger, msgID spectypes.MessageID, handler MessageHandler) error
- func (v *Validator) GetLastHeight(identifier spectypes.MessageID) specqbft.Height
- func (v *Validator) GetLastRound(identifier spectypes.MessageID) specqbft.Round
- func (v *Validator) HandleMessage(logger *zap.Logger, msg *queue.DecodedSSVMessage)
- func (v *Validator) OnExecuteDuty(logger *zap.Logger, msg types.EventMsg) error
- func (v *Validator) ProcessMessage(logger *zap.Logger, msg *queue.DecodedSSVMessage) error
- func (v *Validator) Start(logger *zap.Logger) (started bool, err error)
- func (v *Validator) StartDuty(logger *zap.Logger, duty *spectypes.Duty) error
- func (v *Validator) StartQueueConsumer(logger *zap.Logger, msgID spectypes.MessageID, handler MessageHandler)
- func (v *Validator) Stop()
Constants ¶
const (
DefaultQueueSize = 32
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MessageHandler ¶
type MessageHandler func(logger *zap.Logger, msg *queue.DecodedSSVMessage) error
MessageHandler process the msg. return error if exist
type Metrics ¶ added in v1.1.0
type Metrics interface { ValidatorInactive(publicKey []byte) ValidatorNoIndex(publicKey []byte) ValidatorError(publicKey []byte) ValidatorReady(publicKey []byte) ValidatorNotActivated(publicKey []byte) ValidatorExiting(publicKey []byte) ValidatorSlashed(publicKey []byte) ValidatorNotFound(publicKey []byte) ValidatorPending(publicKey []byte) ValidatorRemoved(publicKey []byte) ValidatorUnknown(publicKey []byte) queue.Metrics }
type NonCommitteeValidator ¶
type NonCommitteeValidator struct { Storage *storage.QBFTStores // contains filtered or unexported fields }
func (*NonCommitteeValidator) ProcessMessage ¶
func (ncv *NonCommitteeValidator) ProcessMessage(logger *zap.Logger, msg *queue.DecodedSSVMessage)
type NopMetrics ¶ added in v1.1.0
type NopMetrics struct{}
func (NopMetrics) DroppedQueueMessage ¶ added in v1.1.0
func (n NopMetrics) DroppedQueueMessage(spectypes.MessageID)
func (NopMetrics) IncomingQueueMessage ¶ added in v1.1.0
func (n NopMetrics) IncomingQueueMessage(spectypes.MessageID)
func (NopMetrics) MessageQueueCapacity ¶ added in v1.1.0
func (n NopMetrics) MessageQueueCapacity(int)
func (NopMetrics) MessageQueueSize ¶ added in v1.1.0
func (n NopMetrics) MessageQueueSize(int)
func (NopMetrics) MessageTimeInQueue ¶ added in v1.1.0
func (n NopMetrics) MessageTimeInQueue(spectypes.MessageID, time.Duration)
func (NopMetrics) OutgoingQueueMessage ¶ added in v1.1.0
func (n NopMetrics) OutgoingQueueMessage(spectypes.MessageID)
func (NopMetrics) ValidatorError ¶ added in v1.1.0
func (n NopMetrics) ValidatorError([]byte)
func (NopMetrics) ValidatorExiting ¶ added in v1.1.0
func (n NopMetrics) ValidatorExiting([]byte)
func (NopMetrics) ValidatorInactive ¶ added in v1.1.0
func (n NopMetrics) ValidatorInactive([]byte)
func (NopMetrics) ValidatorNoIndex ¶ added in v1.1.0
func (n NopMetrics) ValidatorNoIndex([]byte)
func (NopMetrics) ValidatorNotActivated ¶ added in v1.1.0
func (n NopMetrics) ValidatorNotActivated([]byte)
func (NopMetrics) ValidatorNotFound ¶ added in v1.1.0
func (n NopMetrics) ValidatorNotFound([]byte)
func (NopMetrics) ValidatorPending ¶ added in v1.1.0
func (n NopMetrics) ValidatorPending([]byte)
func (NopMetrics) ValidatorReady ¶ added in v1.1.0
func (n NopMetrics) ValidatorReady([]byte)
func (NopMetrics) ValidatorRemoved ¶ added in v1.1.0
func (n NopMetrics) ValidatorRemoved([]byte)
func (NopMetrics) ValidatorSlashed ¶ added in v1.1.0
func (n NopMetrics) ValidatorSlashed([]byte)
func (NopMetrics) ValidatorUnknown ¶ added in v1.1.0
func (n NopMetrics) ValidatorUnknown([]byte)
type Options ¶
type Options struct { Network specqbft.Network Beacon specssv.BeaconNode BeaconNetwork beacon.BeaconNetwork Storage *storage.QBFTStores Signer spectypes.KeyManager DutyRunners runner.DutyRunners NewDecidedHandler qbftctrl.NewDecidedHandler FullNode bool Exporter bool BuilderProposals bool QueueSize int GasLimit uint64 MessageValidator validation.MessageValidator Metrics Metrics }
Options represents options that should be passed to a new instance of Validator.
type Validator ¶
type Validator struct { DutyRunners runner.DutyRunners Network specqbft.Network Signer spectypes.KeyManager Storage *storage.QBFTStores Queues map[spectypes.BeaconRole]queueContainer // contains filtered or unexported fields }
Validator represents an SSV ETH consensus validator Share assigned, coordinates duty execution and more. Every validator has a validatorID which is validator's public key. Each validator has multiple DutyRunners, for each duty type.
func NewValidator ¶
NewValidator creates a new instance of Validator.
func (*Validator) ConsumeQueue ¶
func (v *Validator) ConsumeQueue(logger *zap.Logger, msgID spectypes.MessageID, handler MessageHandler) error
ConsumeQueue consumes messages from the queue.Queue of the controller it checks for current state
func (*Validator) GetLastHeight ¶
GetLastHeight returns the last height for the given identifier
func (*Validator) GetLastRound ¶
GetLastRound returns the last height for the given identifier
func (*Validator) HandleMessage ¶
func (v *Validator) HandleMessage(logger *zap.Logger, msg *queue.DecodedSSVMessage)
HandleMessage handles a spectypes.SSVMessage. TODO: accept DecodedSSVMessage once p2p is upgraded to decode messages during validation. TODO: get rid of logger, add context
func (*Validator) OnExecuteDuty ¶
func (*Validator) ProcessMessage ¶
ProcessMessage processes Network Message of all types
func (*Validator) StartQueueConsumer ¶
func (v *Validator) StartQueueConsumer(logger *zap.Logger, msgID spectypes.MessageID, handler MessageHandler)
StartQueueConsumer start ConsumeQueue with handler