Documentation ¶
Index ¶
- func LoadLocalEvents(logger *zap.Logger, handler eth1.SyncEventHandler, path string) error
- func ReportValidatorStatus(pk string, meta *beacon.ValidatorMetadata, logger *zap.Logger)
- func SetShareFeeRecipient(share *types.SSVShare, getRecipientData GetRecipientDataFunc) error
- func SetupRunners(ctx context.Context, logger *zap.Logger, options validator.Options) runner.DutyRunners
- func ShareFromValidatorEvent(event abiparser.ValidatorAddedEvent, ...) (*types.SSVShare, *bls.SecretKey, error)
- func UpdateShareMetadata(share *types.SSVShare, bc beaconprotocol.Beacon) (bool, error)
- type Controller
- type ControllerOptions
- type GetRecipientDataFunc
- type ShareEncryptionKeyProvider
- type ShareEventHandlerFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func LoadLocalEvents ¶ added in v0.4.0
func ReportValidatorStatus ¶
func ReportValidatorStatus(pk string, meta *beacon.ValidatorMetadata, logger *zap.Logger)
ReportValidatorStatus reports the current status of validator
func SetShareFeeRecipient ¶ added in v0.4.7
func SetShareFeeRecipient(share *types.SSVShare, getRecipientData GetRecipientDataFunc) error
func SetupRunners ¶ added in v0.4.0
func SetupRunners(ctx context.Context, logger *zap.Logger, options validator.Options) runner.DutyRunners
SetupRunners initializes duty runners for the given validator
func ShareFromValidatorEvent ¶
func ShareFromValidatorEvent( event abiparser.ValidatorAddedEvent, shareEncryptionKeyProvider ShareEncryptionKeyProvider, operatorData *registrystorage.OperatorData, ) (*types.SSVShare, *bls.SecretKey, error)
ShareFromValidatorEvent takes the contract event data and creates the corresponding validator share. share could return nil in case operator key is not present/ different
func UpdateShareMetadata ¶
UpdateShareMetadata will update the given share object w/o involving storage, it will be called only when a new share is created
Types ¶
type Controller ¶
type Controller interface { ListenToEth1Events(logger *zap.Logger, feed *event.Feed) StartValidators(logger *zap.Logger) GetValidatorsIndices(logger *zap.Logger) []phase0.ValidatorIndex GetValidator(pubKey string) (*validator.Validator, bool) UpdateValidatorMetaDataLoop(logger *zap.Logger) StartNetworkHandlers(logger *zap.Logger) Eth1EventHandler(logger *zap.Logger, ongoingSync bool) eth1.SyncEventHandler // GetValidatorStats returns stats of validators, including the following: // - the amount of validators in the network // - the amount of active validators (i.e. not slashed or existed) // - the amount of validators assigned to this operator GetValidatorStats(logger *zap.Logger) (uint64, uint64, uint64, error) GetOperatorData() *registrystorage.OperatorData }
Controller represent the validators controller, it takes care of bootstrapping, updating and managing existing validators and their shares
func NewController ¶
func NewController(logger *zap.Logger, options ControllerOptions) Controller
NewController creates a new validator controller instance
type ControllerOptions ¶
type ControllerOptions struct { Context context.Context DB basedb.IDb SignatureCollectionTimeout time.Duration `` /* 152-byte string literal not displayed */ MetadataUpdateInterval time.Duration `` /* 127-byte string literal not displayed */ HistorySyncBatchSize int `` /* 145-byte string literal not displayed */ MinPeers int `yaml:"MinimumPeers" env:"MINIMUM_PEERS" env-default:"2" env-description:"The required minimum peers for sync"` ETHNetwork beaconprotocol.Network Network network.P2PNetwork Beacon beaconprotocol.Beacon CleanRegistryData bool FullNode bool `yaml:"FullNode" env:"FULLNODE" env-default:"false" env-description:"Save decided history rather than just highest messages"` Exporter bool `yaml:"Exporter" env:"EXPORTER" env-default:"false" env-description:""` KeyManager spectypes.KeyManager OperatorData *registrystorage.OperatorData RegistryStorage nodestorage.Storage ForkVersion forksprotocol.ForkVersion NewDecidedHandler qbftcontroller.NewDecidedHandler DutyRoles []spectypes.BeaconRole // worker flags WorkersCount int `` /* 130-byte string literal not displayed */ QueueBufferSize int `yaml:"MsgWorkerBufferSize" env:"MSG_WORKER_BUFFER_SIZE" env-default:"1024" env-description:"Buffer size for message workers"` }
ControllerOptions for creating a validator controller
type GetRecipientDataFunc ¶ added in v0.4.7
type GetRecipientDataFunc func(owner common.Address) (*registrystorage.RecipientData, bool, error)
type ShareEncryptionKeyProvider ¶
type ShareEncryptionKeyProvider = func() (*rsa.PrivateKey, bool, error)
ShareEncryptionKeyProvider is a function that returns the operator private key
type ShareEventHandlerFunc ¶
ShareEventHandlerFunc is a function that handles event in an extended mode