Skip to content

Campaign Manager Morty

Compare
Choose a tag to compare
@github-actions github-actions released this 27 Mar 05:20
· 1148 commits to stable since this release
v4.0.1

Summary

This release is mandatory for all mainnet users (except for those running v4.0.1-rc.0). It enables the Capella/Shanghai ("Shapella") upgrade (#4111), which will occur at April 12, 2023, 10:27:35pm UTC. Any node which is not updated to Lighthouse a v4.x.x release before 10:27pm on April 12th (UTC) will stop following the chain and will need to be resynced. For stakers, this would result in missed rewards and penalties.

For clarity, all mainnet Lighthouse users must be running a v4.x.x release on their BNs and VCs by April 12, 2023, 10:27:35pm UTC.

This release also contains various bug-fixes, optimisations and new features:

  • Improve the resilience of the fork choice algorithm (#3962)
  • Add a flag to speed up responses to the committees HTTP API (#4081)
  • Improve payload reconstruction by utilising a new execution engine API endpoint (#4028)
  • Reduce false-positive ERRO logs claiming that builder blocks were published late (#4073)
  • Fix a bug that resulted in a harmless ERRO Dialing an already dialing peer log (#4056)
  • Add support for IPv6 (#4046)

v4.0.0 Release Retracted

This release replaces the v4.0.0 release which was retracted due to the discovery of a bug. A v4.0.1-rc.0 hot-fix was published to patch that bug. That bug fix is also included in this release.

This release (v4.0.1) replaces both v4.0.0 and v4.0.1-rc.0.

We have the following advice for users:

  • Any node running v4.0.0 should immediately upgrade to this release since v4.0.0 is not reliable.
  • Any node running v4.0.1-rc.0 may choose to continue on that release or upgrade to this release. This release and the rc.0 release are functionally identical.
  • Any node running v3.5.1 or earlier should upgrade to this release at their next convenience (certainly before the Capella upgrade).

These release notes have been written with respect to v3.5.1 rather than the previous retracted release of v4.0.0.

Mainnet Capella/Shanghai ("Shapella") Upgrade

The Capella/Shanghai ("Shapella") upgrade will occur on mainnet at:

  • Epoch 194048
  • April 12, 2023, 10:27:35pm UTC

All Lighthouse Beacon Nodes and Validator Clients must be upgraded to a reliable v4.x.x release to ensure they follow the correct chain. The following table demonstrates which releases are reliable, Shapella-ready releases:

Release Is Reliable, Shapella-Ready v4.x.x Release
v3.5.1 ❌ No
v4.0.0 ❌ No
v4.0.1-rc.0 ✅ Yes
v4.0.1 ✅ Yes
Any release after v4.0.1 ✅ Yes

Preparation for the Shapella upgrade is much simpler than the preparation required for "The Merge" (Bellatrix). To be Shapella ready, users just need to:

  • Upgrade their Lighthouse BN(s) to a v4.x.x release.
  • Upgrade their Lighthouse VC(s) to v4.x.x release.
  • Upgrade their Execution Engine(s) to a Shanghai-ready release:

If your execution engine does not yet have a Shanghai-ready release then it is safe to upgrade Lighthouse to v4.x.x without also upgrading the execution engine. An up-to-date execution engine will be required before April 12th, though.

There are no new flags to be added or removed for the Shapella upgrade, simply upgrade and wait.

Lighthouse will start periodically emitting the following logs two weeks before the Shapella upgrade (29th of March):

  • Not ready for Capella if Lighthouse has detected that the execution engine is too outdated to support Shanghai.
  • Ready for Capella if Lighthouse has detected a modern execution engine release.

Just because Lighthouse is logging Ready for Capella does not indicate that your execution engine is on the correct version. There is no way for Lighthouse to determine this exactly and users are responsible for ensuring that their execution engine is using the latest release.

🐛 Known Issues 🐛

Fixed as of Erigon v2.42.0

There was a bug in Erigon v2.41.0 and earlier which caused Erigon to time out when paired with Lighthouse v4.0.1. This was reflected in the Lighthouse logs as an error log containing the phrase TimedOut, like this:

ERRO Error during execution engine upcheck error: Reqwest(reqwest::Error { kind: Request, url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(127.0.0.1)), port: Some(8551), path: "/", query: None, fragment: None }, source: TimedOut }), service: exec

The issue is resolved in Erigon v2.42.0 and later, see this issue for details: ledgerwatch/erigon#7172.

Breaking Changes

There are no breaking changes between this release and v4.0.0 and v4.0.1-rc.0. The following changes are with reference to v3.5.1.

Breaking Change: Database Schema V16

To support changes to the fork choice algorithm, the database schema has been upgraded to v16. The schema upgrade will be applied automatically upon upgrading and should not take more than a few seconds.

To downgrade, follow the instructions in the book for Database Migrations.

Users may downgrade anytime before the Capella upgrade. Prior Lighthouse releases are not compatible with Capella, so downgrading is fundamentally impossible after the upgrade occurs.

Breaking Change: Minimum Supported Rust Version 1.66

The minimum supported Rust version has been set to 1.66. 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.0.0 (/home/karlm/lighthouse/lighthouse)` cannot be built because it requires rustc 1.66 or newer

Users can typically obtain the latest version of Rust by running rustup update.

Update Priority

This table provides priorities for which classes of users should update particular components.

User Class Beacon Node Validator Client
Staking Users High High
Non-Staking Users High ---

See Update Priorities more information about this table.

All Changes

  • Release v4.0.1 (#4125)
  • Release Candidate v4.0.1-rc.0 (#4123)
  • Fix fork choice error message (#4122)
  • Release v4.0.0 (#4112)
  • Fork choice modifications and cleanup (#3962)
  • Set Capella fork epoch for Mainnet (#4111)
  • Reduce verbosity of reprocess queue logs (#4101)
  • Customisable shuffling cache size (#4081)
  • Improve Lighthouse Connectivity Via ENR TCP Update (#4057)
  • Ignore self as a bootnode (#4110)
  • Reconstruct Payloads using Payload Bodies Methods (#4028)
  • Clarify "Ready for Capella" (#4095)
  • Reduce false positive logging for late builder blocks (#4073)
  • Make more noise when the EL is broken (#3986)
  • Siren Ui Lighthouse Version Requirments (#4093)
  • Correct a race condition when dialing peers (#4056)
  • Remove Router/Processor Code (#4002)
  • Complete match for has_context_bytes (#3972)
  • Add parent_block_number to payload SSE (#4053)
  • Support for Ipv6 (#4046)
  • Correct /lighthouse/nat implementation (#4069)
  • Added warning when new jwt is generated (#4000)
  • Appease Clippy 1.68 and refactor http_api (#4068)
  • Fix order of arguments to log_count (#4060)

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.0.1-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v4.0.1-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v4.0.1-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v4.0.1-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v4.0.1-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v4.0.1-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v4.0.1-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v4.0.1-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v4.0.1 sigp/lighthouse