getconsensusvalidators

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2026 License: GPL-3.0 Imports: 8 Imported by: 0

README

get_consensus_validators Task

This task retrieves validators from the consensus layer that match specified filtering criteria. It's useful for finding validators associated with specific clients, status conditions, or other attributes.

Configuration

Client/Name Filtering
  • clientPattern (string): Regex pattern to match client names in validator names
  • validatorNamePattern (string): Regex pattern to match validator names directly
Status Filtering
  • validatorStatus ([]string): Array of allowed validator statuses (default: all statuses)
    • Possible values: pending_initialized, pending_queued, active_ongoing, active_exiting, active_slashed, exited_unslashed, exited_slashed, withdrawal_possible, withdrawal_done
Balance Filtering
  • minValidatorBalance (uint64): Minimum validator balance in Gwei
  • maxValidatorBalance (uint64): Maximum validator balance in Gwei
Index Filtering
  • minValidatorIndex (uint64): Minimum validator index
  • maxValidatorIndex (uint64): Maximum validator index
Other Filtering
  • withdrawalCredsPrefix (string): Required prefix for withdrawal credentials (e.g., "0x01", "0x02")
Output Options
  • maxResults (int): Maximum number of validators to return (default: 100)
  • outputFormat (string): Output format - "full", "pubkeys", or "indices" (default: "full")

Outputs

Depending on outputFormat, the task exports:

Format: "full" (default)
  • validators: Array of full validator information objects
  • count: Number of matching validators

Each validator object includes:

  • index: Validator index
  • pubkey: Validator public key (0x prefixed hex)
  • balance: Current balance in Gwei
  • status: Validator status string
  • effectiveBalance: Effective balance in Gwei
  • withdrawalCredentials: Withdrawal credentials (0x prefixed hex)
  • activationEpoch: Activation epoch
  • exitEpoch: Exit epoch
  • withdrawableEpoch: Withdrawable epoch
  • slashed: Boolean indicating if validator is slashed
Format: "pubkeys"
  • pubkeys: Array of validator public keys as hex strings
  • count: Number of matching validators
Format: "indices"
  • indices: Array of validator indices as integers
  • count: Number of matching validators

Example Configurations

Find Validators for Specific Client
- name: find_lighthouse_validators
  task: get_consensus_validators
  config:
    clientPattern: "lighthouse.*"
    validatorStatus: ["active_ongoing"]
    maxResults: 10
    outputFormat: "full"
Get Validator Pubkeys for BLS Changes
- name: get_validator_pubkeys
  task: get_consensus_validators
  config:
    validatorNamePattern: "validator_[0-9]+"
    validatorStatus: ["active_ongoing"]
    withdrawalCredsPrefix: "0x01"
    outputFormat: "pubkeys"
    maxResults: 5
Find Validators by Balance Range
- name: find_rich_validators
  task: get_consensus_validators
  config:
    clientPattern: "prysm.*"
    minValidatorBalance: 40000000000  # > 40 ETH
    validatorStatus: ["active_ongoing"]
    maxResults: 20
Get Validator Indices for Operations
- name: get_validator_indices
  task: get_consensus_validators
  config:
    validatorNamePattern: "test_validator_.*"
    validatorStatus: ["pending_initialized", "pending_queued"]
    outputFormat: "indices"
    maxResults: 2

Use Cases

  1. Client-Specific Operations: Find validators belonging to specific consensus clients
  2. BLS Changes: Identify validators that need withdrawal credential updates
  3. Deposit Operations: Find validators for top-up deposits
  4. Status Monitoring: Track validators in specific states
  5. Balance Analysis: Identify validators by balance criteria
  6. Bulk Operations: Get validator sets for matrix operations

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	TaskName       = "get_consensus_validators"
	TaskDescriptor = &types.TaskDescriptor{
		Name:        TaskName,
		Description: "Retrieves validators from the consensus layer matching specified criteria.",
		Category:    "consensus",
		Config:      DefaultConfig(),
		Outputs: []types.TaskOutputDefinition{
			{
				Name:        "validators",
				Type:        "array",
				Description: "Array of validator info objects (when outputFormat is 'full').",
			},
			{
				Name:        "pubkeys",
				Type:        "array",
				Description: "Array of validator public keys (when outputFormat is 'pubkeys').",
			},
			{
				Name:        "indices",
				Type:        "array",
				Description: "Array of validator indices (when outputFormat is 'indices').",
			},
			{
				Name:        "count",
				Type:        "int",
				Description: "Number of matching validators found.",
			},
		},
		NewTask: NewTask,
	}
)

Functions

func NewTask

func NewTask(ctx *types.TaskContext, options *types.TaskOptions) (types.Task, error)

Types

type Config

type Config struct {
	ClientPattern         string   `` /* 137-byte string literal not displayed */
	ValidatorNamePattern  string   `yaml:"validatorNamePattern" json:"validatorNamePattern" require:"A.2" desc:"Regex pattern to filter validators by name."`
	ValidatorStatus       []string `yaml:"validatorStatus" json:"validatorStatus" desc:"List of validator statuses to include in results."`
	MinValidatorBalance   *uint64  `yaml:"minValidatorBalance" json:"minValidatorBalance" desc:"Minimum validator balance to include in results."`
	MaxValidatorBalance   *uint64  `yaml:"maxValidatorBalance" json:"maxValidatorBalance" desc:"Maximum validator balance to include in results."`
	WithdrawalCredsPrefix string   `yaml:"withdrawalCredsPrefix" json:"withdrawalCredsPrefix" desc:"Prefix of withdrawal credentials to filter validators."`
	MinValidatorIndex     *uint64  `yaml:"minValidatorIndex" json:"minValidatorIndex" desc:"Minimum validator index to include in results."`
	MaxValidatorIndex     *uint64  `yaml:"maxValidatorIndex" json:"maxValidatorIndex" desc:"Maximum validator index to include in results."`
	MaxResults            int      `yaml:"maxResults" json:"maxResults" desc:"Maximum number of validators to return."`

	// Output format options
	OutputFormat string `` /* 164-byte string literal not displayed */
}

func DefaultConfig

func DefaultConfig() Config

func (*Config) Validate

func (c *Config) Validate() error

type Task

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

func (*Task) Config

func (t *Task) Config() interface{}

func (*Task) Execute

func (t *Task) Execute(_ context.Context) error

func (*Task) LoadConfig

func (t *Task) LoadConfig() error

func (*Task) Timeout

func (t *Task) Timeout() time.Duration

type ValidatorInfo

type ValidatorInfo struct {
	Index                 uint64 `json:"index"`
	Pubkey                string `json:"pubkey"`
	Balance               uint64 `json:"balance"`
	Status                string `json:"status"`
	EffectiveBalance      uint64 `json:"effectiveBalance"`
	WithdrawalCredentials string `json:"withdrawalCredentials"`
	ActivationEpoch       uint64 `json:"activationEpoch"`
	ExitEpoch             uint64 `json:"exitEpoch"`
	WithdrawableEpoch     uint64 `json:"withdrawableEpoch"`
	Slashed               bool   `json:"slashed"`
}

Jump to

Keyboard shortcuts

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