Summary
This is a high-priority release for Mainnet users. It fixes an issue which caused excessive CPU usage shortly after the Mainnet Capella upgrade (#4183).
Users on v4.0.1 or earlier should upgrade as soon as possible. This release is less important for users already running v4.0.2-rc.0; that release already contains an effective fix. However the fix in this release is more accurate so we recommend that v4.0.2-rc.0 users upgrade to this release at their next convenience.
We expect the conditions that caused excessive CPU usage are unlikely to return, however we recommend users upgrade to bolster the resilience of the Ethereum network.
This release also contains new improvements that were not present in v4.0.1 or v4.0.2-rc.0:
- The
/eth/v1/debug/fork_choice
HTTP endpoint was added (#4003) - The
PATCH lighthouse/validators/{pubkey}
endpoint has been optimised (#4126) - The HTTP API has been updated to include references to the finalized checkpoint (#3753)
- Backfilling has been rate-limited to mitigate validator performance issues after a recent checkpoint sync. The old behaviour can be obtained with the
--disable-backfill-rate-limiting
flag (#3936) - The Lighthouse VC can now create signed voluntary exit messages via the HTTP API (#4119)
- The
--disable-peer-scoring
flag has been added for developer usage (#4135) - The proposer boost re-orging strategy is now configurable and more cautious by default (#4151)
- Payload reconstruction via the HTTP API now uses the dedicated EE endpoint, addressing an issue with Erigon compatibility (#4102)
- Lighthouse now supplies a user-agent to builders (#4199)
With this release we are also encouraging users to re-enable mev-boost and re-orgs if they had previously disabled them. The latency issues with the MEV relays have resolved, and re-orgs should be more reliable now that improvements to gossip have been rolled out by other clients. If you experience a missed block or failed re-org running Lighthouse v4.1.0 please reach out.
Compiling from Source
Users who compile from source should ensure they update Rust and checkout and pull the stable
branch before building:
- Most users can update Rust with
rustup update
- Checkout and pull the stable branch with
git checkout stable && git pull
Breaking Changes
Breaking Change: Minimum Supported Rust Version 1.68.2
The minimum supported Rust version has been set to 1.68.2 to address a serious bug in prior Rust releases (see #4204 for more information).
Users who compile from source (i.e., not Docker or pre-built binary users) will receive the following error if they are using an earlier version of Rust:
lighthouse v4.1.0 (/home/karlm/lighthouse/lighthouse)` cannot be built because it requires rustc 1.68.2 or newer
Users can typically obtain the latest version of Rust by running rustup update
.
Breaking Change: New Fields Added to HTTP API Responses
The HTTP API has been updated to include references to the finalized checkpoint (#3753).
This aligns Lighthouse with the standard BeaconAPIs, which added these fields in ethereum/beacon-APIs#254.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | High | Low |
Non-Staking Users | Medium | --- |
See Update Priorities more information about this table.
The Beacon Node may be updated without also updating the Validator Client. However we recommend upgrading both components for consistency.
All Changes
- Release v4.1.0 (#4191)
- Check lateness of block before requeuing it (#4208)
- Bump Rust version (MSRV) (#4204)
- Set user agent on requests to builder (#4199)
- Use efficient payload reconstruction for HTTP API (#4102)
- Address observed proposers behaviour (#4192)
- Use head state for exit verification (#4183)
- Update Lighthouse book and some FAQs (#4178)
- Avoid processing redundant RPC blocks (#4179)
- Make re-org strat more cautious and add more config (#4151)
- Remove Redundant Trait Bound (#4169)
- Remove the unused
ExecutionOptimisticForkVersionedResponse
type (#4160) - Add a flag to disable peer scoring (#4135)
- CI fix: move download web3signer binary out of build script (#4163)
- Add
beacon.watch
(#3362) - remove dup log (#4155)
- Ban peer race condition (#4140)
- Add new validator API for voluntary exit (#4119)
- Rate limiting backfill sync (#3936)
- Update database-migrations.md (#4149)
- update README of local_testnet (#4114)
- Test failing CI tests due to port conflicts (#4134)
- Add
finalized
to HTTP API responses (#3753) - Correct log for ENR (#4133)
- Optimise
update_validators
by decrypting key cache only when necessary (#4126) - Add debug fork choice api (#4003)
- improve error message (#4141)
- Update Rust version in lcli Dockerfile (#4121)
- Update arbitrary (#4139)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.1.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.1.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.1.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.1.0 | sigp/lighthouse |