Skip to content

Release v1.50.0

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Oct 13:02
· 15 commits to unstable since this release
Immutable release. Only release title and notes can be modified.
v1.50.0
003bd66

Good day Lodestar operators! We've just released v1.50.0. It is mandatory for Hoodi operators and recommended for mainnet users. Hoodi operators must also upgrade their execution client to a Glamsterdam-ready release before the fork. Building is done differently with Gloas so please read the docs linked below so you can configure your setup correctly

  • Hoodi Glamsterdam fork scheduled. Adds the fork epoch and the 200M gas limit schedule
  • Validator clients from Gloas. Fee recipient and gas limit come from signed proposer preferences. From the Gloas fork onwards, the beacon node rejects prepare_beacon_proposer and register_validator with 410 error response. Upgrade the Lodestar beacon node and validator client together. If you run another validator client against a Lodestar beacon node, make sure it supports proposer preferences
  • Builders from Gloas. Builder bids arrive in-protocol over p2p. External builders are configured on the validator client (--builder.urls, or per key in the proposer config) instead of through relays on the beacon node. Pre-Gloas builder settings keep working until the fork. Setup guides:
  • SSZ engine API. When the execution client advertises the REST/SSZ engine API, Lodestar uses it automatically, otherwise it keeps using JSON-RPC. Override with --execution.engineApi
  • Metrics note. The notifyNewPayload engine timing metric now reflects execution client time more accurately. Previously it included part of Lodestar's own block processing, so values will read lower after upgrading. This is a measurement change, not a change in block import time.

Full Changelog

Features

Bug Fixes

  • keep proposer boost root for the payload tiebreak when boost is withheld (#10339) (@nflaig)
  • handle partial failures when submitting proposal preferences (#10325) (@nflaig)
  • cancel req/resp bridge iterators when the consumer returns early (#10304) (@nflaig)
  • resubmit proposal preferences after the beacon node resynced (#10326) (@nflaig)
  • send a zero commit in engine_getClientVersionV1 when git data is missing (#10324) (@nflaig)
  • align beacon api with v5.0.0-beta.0 (#10302) (@nflaig)
  • retry proposer preferences submission on error response (#10317) (@nflaig)
  • prune shuffling cache by smallest epoch (#10294) (@twoeths)
  • recreate the dangling parent payload entry in range sync (#10311) (@nflaig)
  • reject range sync envelopes whose block hash does not match the bid (#10251) (@nflaig)
  • prevent unknown block sync stall when rate limit backoff expires (#10250) (@nflaig)
  • inherit gloas block execution status from the parent variant it builds on (#10268) (@nflaig)
  • cache gossip blocks only after proposer signature verification (#10279) (@twoeths)
  • handle missing shuffling in block production (#10295) (@twoeths)
  • honor group validator statuses when filtering by ids (#10261) (@b0a7)
  • align fork choice v2 with beacon api spec (#10191) (@nflaig)
  • serve archived genesis state by root (#10277) (@lodekeeper)
  • retry rate-limited peers after a sync chain restart (#10252) (@nflaig)
  • report builder circuit breaker as block selection reason (#10254) (@nflaig)
  • prevent range sync stall when rate limit backoff expires (#10249) (@nflaig)
  • discount empty slot support by fork choice node (#10211) (@nazarhussain)
  • serve finalized state by root from checkpoint cache (#10273) (@lodekeeper)
  • settle builder payment before processing parent execution requests (#10180) (@nflaig)
  • optimize builder flows (#10263) (@twoeths)
  • request the whole range sync batch again after a processing error (#10266) (@nflaig)
  • apply epoch updates before computing attestation rewards (#10224) (@ensi321)
  • surface archived envelopes the EL cannot serve (#10248) (@markolazic01)
  • replace latest messages by slot from gloas (#10128) (@nflaig)
  • ignore messages from FATAL peer (#10239) (@twoeths)
  • evict invalid payload envelopes from the seen cache (#10246) (@nflaig)
  • do not miss PTC duties in the first Gloas epoch (#10242) (@nflaig)
  • reject null slot gossip messages (#10241) (@twoeths)
  • fall back to db and check fork for unfinalized checkpoint states (#10230) (@nflaig)
  • reject checkpoint sync state with mismatching fork (#10228) (@nflaig)
  • track slashing signature domains across forks (#10217) (@nflaig)
  • removeAndDownScoreAllDescendants of unknown sync (#10221) (@twoeths)
  • init BeaconStateView from state bytes (#10227) (@twoeths)
  • prune legacy hot data columns on startup (#10223) (@wemeetagain)
  • deduplicate and stream execution payload envelopes by root (#10207) (@nflaig)
  • revert fast confirmation to finalized on error (#10220) (@nazarhussain)
  • merge attester duties for newly discovered validators (#10213) (@lodekeeper)
  • merge PTC duties for newly discovered validators (#10197) (@GrapeBaBa)
  • use fork inactivity quotient in rewards (#10183) (@GrapeBaBa)
  • use preallocated buffers in getBlobsV2 (#10203) (@nflaig)
  • floor attestation reward and penalty values (#10182) (@GrapeBaBa)
  • initialize earliestAvailableSlot from retained history on startup (#10185) (@lodekeeper)

Performance

Refactoring

Dependencies

Continuous Integration

Tests

Maintenance

Documentation