Skip to content

Release v1.12.0

Compare
Choose a tag to compare
@github-actions github-actions released this 09 Nov 07:39
7000473

UPDATE (Dec 1, 2023)
Attn using Lodestar v1.12, we’ve discovered an issue with local block production seen on some validators. We recommend that you downgrade or continue using v1.11.3 until we’ve pushed out a hotfix release to address the issue. Thanks for your understanding!


Hey Lodestar users! We've just released v1.12.0 packed with a bunch of updates! We recommend all users to upgrade when possible and ensure to upgrade both your validator and beacon node clients together. More information below about notable changes:

produceBlockV2 builder/execution race moved from validator to beacon: You will have issues building blocks if you do not upgrade the Lodestar beacon and validator together to v1.12.0. You can continue using the --builder flag on your validator client, but it will default to --builder.selection maxprofit. If you do not want to use the builder on a validator that might still be hooked onto a builder enabled beacon, you may provide the --builder.selection executiononly or skip --builder. DVTs which are based off on only builder based block production can still continue using --builder.selection builderonly.

Ephemery Network: v1.12 supports using the --network ephemery flag to configure Lodestar for the Ephemery network. To see additional details, please see the PR here: #6054

IDs for JWT claims: We've added --jwtId to allow for auth + id of Lodestar being sent to execution clients. This allows for more flexibility than the 1-1 connection between the consensus and execution clients by using multiplexers such as eleel. It is now compliant with the execution spec identified here: https://github.com/ethereum/execution-apis/blob/main/src/engine/authentication.md#jwt-claims

Swagger UI on root endpoint of REST API: If you would like to enable a REST swagger API, you can now add --rest.swaggerUI to enable and it will be served under http://localhost:9596/documentation

Validator monitor logs: It is now possible to log validator monitor events on the beacon node as info to get detailed information about validator performance. This can be enabled by setting the --validatorMonitorLogs flag, please see the PR for details and log examples: #6009

For Rocket Pool users: v1.12 now supports the metric used by Rocket Pool Dashboard v1.3.0 to display the time until the next attestation duty.

Restart aware doppelganger protection: There is now almost no downside to using doppelganger protection while still getting all security benefits. The only time doppelganger detection will run is if validator is imported for the first time or has not been active for more than one epoch due to a longer downtime / maintenance.

Support for q-value weighting in Accept headers: #6014

Some additional support for keymanager-API: Added validator voluntary exit endpoint (https://github.com/ethereum/keymanager-APIs/blob/master/apis/voluntary_exit.yaml) and allow graffiti configuration per validator (ethereum/keymanager-APIs#63)

Changelog

Full Changelog

Features

Bug Fixes

  • correctly append LodestarError metadata in logs (#6086) (@nflaig)
  • handle uncaught exceptions when getting proposer duties (#6073) (@nflaig)
  • fix publishing blsToExecutionChange on post capella forks (#6070) (@g11tech)
  • wrap libp2p stop call with a timeout (#6062) (@nflaig)
  • skip only proofs validation on individually validated gossip blobs (#6066) (@g11tech)
  • close REST API server before closing network (#6061) (@nflaig)
  • remove extra white space in logs if context is empty (#6046) (@nflaig)
  • the unknown block sync timeout (#6031) (@nazarhussain)
  • chunkIntoN to chunk correctly (#6035) (@nazarhussain)
  • remove duplicate validator registration calls (#5993) (@nflaig)
  • update cache with newly discovered attester duties (#6013) (@nflaig)
  • more clearly separate log and error message (#5992) (@nflaig)
  • improve jsonRPC error UX for eth1 + execution (#5949) (@nazarhussain)
  • run sync notifier once every slot pre-genesis (#6002) (@nflaig)
  • skip validator monitoring pre-genesis (#6001) (@nflaig)
  • only check doppelganger liveness for relevant epochs (#5991) (@nflaig)
  • fix the validation of the forkchoice spec test (#6004) (@g11tech)
  • update the github workflow to work with multiple events (#6005) (@nazarhussain)
  • only concatenate non-empty api error messages (#5988) (@nflaig)
  • update engine_getPayloadBodiesByHashV1 params to pass array (#5957) (@matthewkeil)
  • correctly persist states based on archive epoch frequency (#5979) (@nflaig)
  • update holesky genesis time (#5972) (@nflaig)
  • update holesky config for new genesis (#5971) (@nflaig)
  • ignore lockfiles when loading keys for voluntary exit (#5950) (@nflaig)
  • epoch cache error should be treated with care in gossips validation (#5939) (@nazarhussain)
  • network worker not shutting down (#5946) (@nazarhussain)
  • fix breaking builder block production (#5928) (@g11tech)
  • mesh peers - inclusion and churn sum by reason metrics (#5918) (@tuyennhv)

Refactoring

  • shift usage to publishblock v2 endpoint, cleanup v1 post deneb (#6084) (@g11tech)
  • repurpose --builder flag to alias maxprofit builder.selection and turn builder off by default (#6081) (@g11tech)
  • cleanup some of the deneb todos (#6047) (@g11tech)
  • compute validator monitor log level only once (#6010) (@nflaig)
  • add type guard to builder pubkey filter (#5985) (@nflaig)
  • restructure to tests and CI workflow to reduce CI time (#5951) (@nazarhussain)
  • cleanup deneb types and use max blob commitments per block for deneb containers (#5929) (@g11tech)

Dependencies

Continuous Integration

  • set job status of e2e tests to passed after 15m timeout (#6017) (@nflaig)
  • enable mixed beacon-validator sim tests (#5940) (@nflaig)

Tests

Maintenance

Documentation