Documentation ¶
Index ¶
- func FetchValidatorsMetadata(bc Beacon, pubKeys [][]byte) (map[string]*ValidatorMetadata, error)
- func UpdateValidatorsMetadata(pubKeys [][]byte, collection ValidatorMetadataStorage, bc Beacon, ...) error
- func UpdateValidatorsMetadataBatch(pubKeys [][]byte, queue tasks.Queue, collection ValidatorMetadataStorage, ...)
- type Beacon
- type Duty
- type DutyData
- type InputValueAttestation
- type InputValueAttestationData
- type IsInputValueData
- type IsInputValueSignedData
- type KeyManager
- type OnUpdated
- type Options
- type RoleType
- type Signer
- type SigningUtil
- type ValidatorMetadata
- type ValidatorMetadataStorage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FetchValidatorsMetadata ¶ added in v0.0.20
func FetchValidatorsMetadata(bc Beacon, pubKeys [][]byte) (map[string]*ValidatorMetadata, error)
FetchValidatorsMetadata is fetching validators data from beacon
func UpdateValidatorsMetadata ¶ added in v0.0.20
func UpdateValidatorsMetadata(pubKeys [][]byte, collection ValidatorMetadataStorage, bc Beacon, onUpdated OnUpdated) error
UpdateValidatorsMetadata updates validator information for the given public keys
func UpdateValidatorsMetadataBatch ¶ added in v0.1.2
func UpdateValidatorsMetadataBatch(pubKeys [][]byte, queue tasks.Queue, collection ValidatorMetadataStorage, bc Beacon, onUpdated OnUpdated, batchSize int)
UpdateValidatorsMetadataBatch updates the given public keys in batches
Types ¶
type Beacon ¶
type Beacon interface { KeyManager SigningUtil // ExtendIndexMap extanding the pubkeys map of the client (in order to prevent redundant call to fetch pubkeys from node) ExtendIndexMap(index spec.ValidatorIndex, pubKey spec.BLSPubKey) // GetDuties returns duties for the passed validators indices GetDuties(epoch spec.Epoch, validatorIndices []spec.ValidatorIndex) ([]*Duty, error) // GetValidatorData returns metadata (balance, index, status, more) for each pubkey from the node GetValidatorData(validatorPubKeys []spec.BLSPubKey) (map[spec.ValidatorIndex]*api.Validator, error) // GetAttestationData returns attestation data by the given slot and committee index GetAttestationData(slot spec.Slot, committeeIndex spec.CommitteeIndex) (*spec.AttestationData, error) // SubmitAttestation submit the attestation to the node SubmitAttestation(attestation *spec.Attestation) error // SubscribeToCommitteeSubnet subscribe committee to subnet (p2p topic) SubscribeToCommitteeSubnet(subscription []*api.BeaconCommitteeSubscription) error }
Beacon represents the behavior of the beacon node connector
type Duty ¶ added in v0.0.7
type Duty struct { // Type is the duty type (attest, propose) Type RoleType // PubKey is the public key of the validator that should attest. PubKey spec.BLSPubKey // Slot is the slot in which the validator should attest. Slot spec.Slot // ValidatorIndex is the index of the validator that should attest. ValidatorIndex spec.ValidatorIndex // CommitteeIndex is the index of the committee in which the attesting validator has been placed. CommitteeIndex spec.CommitteeIndex // CommitteeLength is the length of the committee in which the attesting validator has been placed. CommitteeLength uint64 // CommitteesAtSlot is the number of committees in the slot. CommitteesAtSlot uint64 // ValidatorCommitteeIndex is the index of the validator in the list of validators in the committee. ValidatorCommitteeIndex uint64 }
Duty represent data regarding the duty type with the duty data
type DutyData ¶ added in v0.0.7
type DutyData struct { // Types that are valid to be assigned to Data: // *InputValueAttestationData // *InputValue_AggregationData // *InputValue_BeaconBlock Data IsInputValueData `protobuf_oneof:"data"` // Types that are valid to be assigned to SignedData: // *InputValueAttestation // *InputValue_Aggregation // *InputValue_Block SignedData IsInputValueSignedData `protobuf_oneof:"signed_data"` }
DutyData represent unified duty types data
func (*DutyData) GetAttestation ¶ added in v0.0.7
func (m *DutyData) GetAttestation() *phase0.Attestation
GetAttestation return cast attestation input data
func (*DutyData) GetAttestationData ¶ added in v0.0.7
func (m *DutyData) GetAttestationData() *phase0.AttestationData
GetAttestationData return cast input data
func (*DutyData) GetData ¶ added in v0.0.7
func (m *DutyData) GetData() IsInputValueData
GetData returns input data
func (*DutyData) GetSignedData ¶ added in v0.0.7
func (m *DutyData) GetSignedData() IsInputValueSignedData
GetSignedData returns input data
type InputValueAttestation ¶ added in v0.0.7
type InputValueAttestation struct {
Attestation *phase0.Attestation
}
InputValueAttestation implementing IsInputValueSignedData
type InputValueAttestationData ¶ added in v0.0.7
type InputValueAttestationData struct {
AttestationData *phase0.AttestationData
}
InputValueAttestationData implementing IsInputValueData
type IsInputValueData ¶ added in v0.0.7
type IsInputValueData interface {
// contains filtered or unexported methods
}
IsInputValueData interface representing input data
type IsInputValueSignedData ¶ added in v0.0.7
type IsInputValueSignedData interface {
// contains filtered or unexported methods
}
IsInputValueSignedData interface representing input signed data
type KeyManager ¶ added in v0.1.4
KeyManager is an interface responsible for all key manager functions
type OnUpdated ¶ added in v0.0.20
type OnUpdated func(pk string, meta *ValidatorMetadata)
OnUpdated represents a function to be called once validator's metadata was updated
type Options ¶ added in v0.0.7
type Options struct { Context context.Context Logger *zap.Logger Network string `yaml:"Network" env:"NETWORK" env-default:"prater"` BeaconNodeAddr string `yaml:"BeaconNodeAddr" env:"BEACON_NODE_ADDR" env-required:"true"` Graffiti []byte DB basedb.IDb }
Options for controller struct creation
type RoleType ¶ added in v0.0.7
type RoleType int
RoleType type of the validator role for a specific duty
List of roles
type Signer ¶ added in v0.1.4
type Signer interface { // SignIBFTMessage signs a network iBFT msg SignIBFTMessage(message *proto.Message, pk []byte) ([]byte, error) // SignAttestation signs the given attestation SignAttestation(data *spec.AttestationData, duty *Duty, pk []byte) (*spec.Attestation, []byte, error) }
Signer is an interface responsible for all signing operations
type SigningUtil ¶ added in v0.1.4
type SigningUtil interface { GetDomain(data *spec.AttestationData) ([]byte, error) ComputeSigningRoot(object interface{}, domain []byte) ([32]byte, error) }
SigningUtil is an interface for beacon node signing specific methods
type ValidatorMetadata ¶ added in v0.0.20
type ValidatorMetadata struct { Balance spec.Gwei `json:"balance"` Status v1.ValidatorState `json:"status"` Index spec.ValidatorIndex `json:"index"` // pointer in order to support nil }
ValidatorMetadata represents validator metdata from beacon
func (*ValidatorMetadata) Activated ¶ added in v0.0.20
func (m *ValidatorMetadata) Activated() bool
Activated returns true if the validator is not unknown. It might be pending activation or active
func (*ValidatorMetadata) Equals ¶ added in v0.1.2
func (m *ValidatorMetadata) Equals(other *ValidatorMetadata) bool
Equals returns true if the given metadata is equal to current
func (*ValidatorMetadata) Exiting ¶ added in v0.0.20
func (m *ValidatorMetadata) Exiting() bool
Exiting returns true if the validator is existing or exited
func (*ValidatorMetadata) Pending ¶ added in v0.1.3
func (m *ValidatorMetadata) Pending() bool
Pending returns true if the validator is pending
func (*ValidatorMetadata) Slashed ¶ added in v0.0.20
func (m *ValidatorMetadata) Slashed() bool
Slashed returns true if the validator is existing or exited due to slashing
type ValidatorMetadataStorage ¶ added in v0.0.20
type ValidatorMetadataStorage interface {
UpdateValidatorMetadata(pk string, metadata *ValidatorMetadata) error
}
ValidatorMetadataStorage interface for validator metadata
func NewMockValidatorMetadataStorage ¶ added in v0.0.20
func NewMockValidatorMetadataStorage() ValidatorMetadataStorage
NewMockValidatorMetadataStorage creates a new mock implementation of ValidatorMetadataStorage