The v0.9.0 release introduces numerous improvements, optimizations, and new features! If you're updating from v0.8.x, please read on carefully, as there are some breaking changes.
❗️[Breaking Change] Added --network CLI parameter
Vero now requires the --network CLI parameter to be specified and set to one of the supported networks: mainnet, gnosis, or holesky. Vero v0.9.0 includes predefined values for all these networks, encompassing both specification values and defaults like gas limits.
Default --gas-limit for Holesky set to 36M
The default gas limit on the Holesky network is now set to 36M. Note: This value is only applied to validator registrations forwarded to external block builders. For locally built blocks, ensure you also adjust your Execution Layer (EL) client settings.
Block value tracking
You can now view the value of the consensus layer block and the execution payload in Vero's metrics and trace data:
| Metrics | Trace Data |
|---|---|
|
|
Improved Shutdown Handling
Starting with v0.9.0, Vero has enhanced its shutdown process to minimize the risk of missing any validator duties. To fully benefit from this improvement, we recommend configuring your system to allow at least one minute before terminating the Vero process ( terminationGracePeriodSeconds/stop_grace_period/TimeoutStopSec ).
Here's how the improved shutdown process works:
- Vero waits until any upcoming block proposal duties (within the next three slots) are finished.
- Vero waits for the next slot and ensures all attester and sync duties for that slot are completed before shutting down.
Attestation Consensus Contributions
A new metric now tracks the contributions made by each connected beacon node to the attestation consensus process. This feature can help node operators identify underperforming beacon nodes or detect performance regressions across client releases.
Features
- Improve duty scheduling if preceding publish operation takes long by @eth2353 in #29
- Indicate tracing/profiling is enabled correctly in logs during init by @eth2353 in #35
- Track produced block value per beacon node by @eth2353 in #36
- Scheduler improvements by @eth2353 in #42
- Make attestation consensus threshold configurable by @eth2353 in #43
- Add
--networkCLI parameter by @eth2353 in #45 - Adjust log message for validator registrations by @eth2353 in #47
- Improve shutdown handling by @eth2353 in #48
- Track all validator statuses by @eth2353 in #50
- Track contributions to attestation consensus by @eth2353 in #52
- Improve detailed Grafana dashboard by @eth2353 in #53
- Track consensus contributions without a head event too by @eth2353 in #56
- Optimize
_produce_attestation_data_without_head_eventby @eth2353 in #57 MultiBeaconNode- addinitialized_beacon_nodesproperty by @eth2353 in #58- Do not store empty list when updating sync duties by @eth2353 in #59
- Add high-level attestation consensus tracing events by @eth2353 in #60
- Add head block root to HeadBlockRoot tracing event by @eth2353 in #61
- Scheduler improvements by @eth2353 in #62
- Adjust default values for
--gas-limit- Holesky 36M by @eth2353 in #63 - Improve shutdown handling by @eth2353 in #64
- Adjust scheduler job ids for duty aggregation by @eth2353 in #69
- Conditionally create tracing spans to avoid unnecessary tracing by @eth2353 in #70
Bug Fixes
- Fix expression for the dashboard event loop lag chart by @eth2353 in #32
- Adhere to Beacon API spec when subscribing to SSE stream by @eth2353 in #41
- Fix
%character in--helpstring by @eth2353 in #44 - Fix sync duty handling during shutdown by @eth2353 in #49
- Fix typo by @eth2353 in #51
- Skip call to
/beacon_committee_subscriptionswith empty list by @eth2353 in #65 - Ensure job id uniqueness for
aggregate_sync_messagesby @eth2353 in #68
Maintenance
- Improve logging by @eth2353 in #30
- Use msgspec instead of Pydantic by @eth2353 in #31
- Fix block value in tracing data by @eth2353 in #33
- Bump dependencies by @eth2353 in #34
- Bump dependencies by @eth2353 in #37
- Change scheduler log level to warning by @eth2353 in #46
- Update astral-sh/setup-uv GitHub action to v5 by @eth2353 in #54
- Bump dependencies by @eth2353 in #55
- Replace
pytzwith stdlibzoneinfoby @eth2353 in #66 - Bump dependencies by @eth2353 in #67
Full Changelog: v0.8.3...v0.9.0

