This is a feature release for Vouch. It provides support for the Altair hard fork, currently live on Pyrmont and Prater and due to go live on mainnet on 27th October.
This is a production release and a required upgrade. Note that version 1.2.0 was an internal release, and as such this is the first release of the 1.2.x branch of Vouch. Please pay careful attention to the information below.
Client support
This release requires a client that is fully compatible with version 2.0.0 of the Ethereum API specification.
At time of release the following support is in place:
- lighthouse: fully supported as of version 2.0.0
- teku: fully supported as of version 21.9.2
- prysm: partially supported as of version 2.0.2
- attempts to propose blocks have been seen to fail (see this issue for details)
- attempts to create sync committee subscriptions fail; this is currently under investigation by the Prysm team
- nimbus: partially supported as of version 1.5.1
- the Nimbus API does not provide correct sync committee duties; this is currently under investigation by the Nimbus team
Due to the early nature of some of these API implementations it is currently recommended that you use a Teku or Lighthouse node to fetch sync committee information, and always use at least two different beacon node implementations to both obtain and submit data. See Vouch's documentation to understand how to configure Vouch to use multiple beacon nodes.
Please read the release notes of the beacon node(s) you will use with Vouch, particularly information on their REST API, to ensure that the node is suitably configured.
It is not expected that remediation of the above issues will require changes to Vouch, however it remains a possibility until the issues are fully resolved.
Note for Prysm users
Vouch no longer uses Prysm's GRPC interface, instead using the standard REST API. Please ensure that the REST API is available using the --grpc-gateway-port
and --grpc-gateway-host
Prysm configuration flags.
Changes in this release
- decrypt local accounts in parallel to reduce startup time
- add 'advanced' scheduler, designed to be more robust with higher parallel job load
- fetch wallet accounts from Dirk in parallel
- fetch process-concurrency configuration value from most specific point in hierarchy
- add metrics to track strategy operation results
- support Altair:
- support updated
go-eth2-client
for versioned data - manage sync committee operations:
- generate sync committee messages
- act as sync committee aggregator as required
- support updated
- add metrics to track strategy operation results
- provide release metric in
vouch_release
- provide ready metric in
vouch_ready
- handle chain reorganisations, updating duties as appropriate
- add
controller.max_attestation_delay
option - introduce aggregate attestation strategy, allowing selection of best or first aggregate attestation from a set
- add
epoch_slot
label tovouch_block_receipt_delay_seconds
metric - make advanced scheduler the default
- do not process empty sync committee messages
- avoid deadlock in advanced scheduler