Skip to content

status-im/infra-role-lido-validator-ejector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

This role configures the Lido Validator Ejector

This is a daemon which monitors ValidatorsExitBusOracle events on a target network and broadcasts pre-generated validator exit messages when necessary (as users of the LIDO protocol request withdrawals).

On start-up, it loads exit messages from a specified folder in form of individual .json files and validates their format, structure and signature. Then, it fetches log events from the most recent ejector_blocks_preload blocks, checks whether any exits should be performed immediately and then enteres a polling loop that checks for new events every ejector_blocks_loop blocks.

For further details, please refer to the Validator Ejector Documentation.

Role Implementation Details

The software runs as a docker container from lidofinance/validator-ejector.

Docker compose file template is in templates/docker-compose.yml.j2.

Environment Variables

Options are configured via environment variables. They are defined at defaults/main.yml.

Warning: You cannot use ejector_validator_exit_webhook or the ejector_messages_location at the same time. Only one of the two variables must be set

Variable Required Description
ejector_execution_node Yes Ethereum Execution Node endpoint
ejector_consensus_node Yes Ethereum Consensus Node endpoint
ejector_locator_address Yes Address of the Locator contract Goerli / Mainnet
ejector_staking_module_id Yes Staking Module ID for which operator ID is set, currently only one exists - (NodeOperatorsRegistry) with id 1
ejector_operator_id Yes Operator ID in the Node Operators registry, easiest to get from Operators UI: Goerli/Mainnet
ejector_messages_location No Local folder or external storage bucket url to load json exit message files from. Required if you are using exit messages mode
ejector_validator_exit_webhook No POST validator info to an endpoint instead of sending out an exit message in order to initiate an exit. Required if you are using webhook mode
ejector_oracle_addresses_allowlist Yes Allowed Oracle addresses to accept transactions from Goerli / Mainnet
ejector_messages_password No Password to decrypt encrypted exit messages with. Needed only if the exit messages are encrypted
ejector_messages_password_file No Path to a file with password inside to decrypt exit messages with. Needed only if you have encrypted exit messages. If used, MESSAGES_PASSWORD (not MESSAGES_PASSWORD_FILE) needs to be added to LOGGER_SECRETS in order to be sanitized
ejector_blocks_preload No Amount of blocks to load events from on start. Increase if daemon was not running for some time. Defaults to a week of blocks
ejector_blocks_loop No Amount of blocks to load events from on every poll. Defaults to 3 hours of blocks
ejector_job_interval No Time interval in milliseconds to run checks. Defaults to time of 1 epoch
ejector_http_port No Port to serve metrics and health check on
ejector_run_metrics No Enable metrics endpoint
ejector_run_health_check No Enable health check endpoint
ejector_logger_level No Severity level from which to start showing errors eg info will hide debug messages
ejector_logger_format No Simple or JSON log output: simple/json
ejector_logger_secrets No JSON string array of either env var keys to sanitize in logs or exact values
ejector_dry_run No Run the service without actually sending out exit messages

Messages can also be loaded from remote storages: AWS S3 and Google Cloud Storage.

Simply set a url with an appropriate protocol in ejector_messages_location:

  • s3:// for S3
  • gs:// for GCS

Requirements

Hardware

  • 2-core CPU
  • 1GB RAM

About

This role configures the Lido Validator Ejector

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHEv2
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages