Key Changes
-
Support for historical exit event loading
ValidatorEjector can now load exit events over an arbitrary block range in the past, removing the previous ~33-hour limit.
➔ You can now safely set a larger BLOCKS_PRELOAD value, e.g., 100000, to load deep history on cold start.
➔ The BLOCKS_LOOP variable is no longer used.
➔ JOB_INTERVAL can now be safely reduced to 12_000, since only unprocessed block ranges are handled instead of full blocks from BLOCKS_LOOP. -
Support for multiple OperatorIds
A single ValidatorEjector instance can now handle multiple OperatorIds.
➔ Use the environment variable OPERATOR_IDENTIFIERS=[0,1,2] and remove OPERATOR_ID. -
Support for JWT token in Execution API requests
Added support for providing a JWT token when communicating with execution nodes that require authentication.
Bug Fixes / Technical Improvements
- Added tests for all affected modules, including a simple E2E test for block range processing.
- Updated dependencies according to Dependabot alerts.
- Merged lido-nanolib directly into the ejector repository; updated and cleaned up relevant tests.
- Refactored the execution-api module for better maintainability.
- Improved error handling for non-JSON node responses (e.g., HTML from load balancers) with clearer logging.
- Enhanced general log informativeness across multiple components.