Summary
This high-priority release contains the parameters to enable the mainnet merge scheduled for September 2022. All mainnet users must upgrade to this release (or a subsequent release) before the Bellatrix fork on Sept 6, 2022, 11:34:47am UTC.
Users who fail to upgrade their nodes before the Bellatrix fork (September 6th) will stop following the canonical chain. We recommend upgrading to v3.0.0 at your earliest convenience.
In addition to upgrading to v3.0.0 (or later), users will also need to make other changes to their nodes. These changes will be familiar to Goerli/Prater users. For more information, please see our Merge Migration documentation.
Users will also be required to ensure that their "execution layer" client (i.e. Besu, Erigon, Geth or Nethermind) is also on a version with the latest merge parameters. We expect all consensus and execution layer clients to have merge-ready releases by 2022-08-23 (UTC). We recommend that users who are already using the --execution-endpoint
flag to wait until their execution layer client has released a merge-compatible release and update both clients together. Updating Lighthouse before the execution layer is not harmful, but it will result in noisy ExchangeTransitionConfigurationFailed
errors. The Ethereum Foundation is expected to publish an announcement on 2022-08-23 (UTC) with detailed information about which client releases are mainnet-ready.
There are also other valuable improvements and fixes in this release making it relevant to Prater/Goerli users as well:
- Validator indices are included in attestation logs (#3393)
- Various fixes to the builder API (#3429, #3441, #3412)
- Improvements to
lcli
(#3252) - Do not return errors on the BN HTTP API for already-known messages (#3341)
- Addition of mainnet merge parameters (#3462, #3425)
- Improvements to how Lighthouse performs on the P2P network (#3439, #3485)
- Re-addition of the LMDB database for the slasher (#3443)
- Implementation of the standard VC
gas_limit
API (#3450) - Fixes to cache errors after checkpoint sync (#3466)
🐼 Special Message 🐼
This release marks the culmination of over four years hard work by Lighthouse contributors. Upgrading Ethereum to proof-of-stake has been an incredibly complex and challenging task requiring hundreds of individuals to collaborate across borders, timezones and languages.
This upgrade will do no less than change the world. It will show the blockchain industry that we can all do better. It will show the world that Ethereum is willing to risk its own existence for the sake of this planet and those who inhabit it.
To everyone who has contributed to Lighthouse by running testnets, reporting issues, building documentation, supporting users and writing code, this is your success. You built Lighthouse and you upgraded Ethereum.
Breaking Changes
The breaking changes in this release are not expected to have significant negative impact on users.
Breaking Change: Mainnet Merge Values
As previously mentioned, this release contains the "total terminal difficulty" and "Bellatrix fork epoch" parameters (#3462). The Lighthouse developers understand that there is wide-reaching and enthusiatic consensus about these values.
To support these changes, the /eth/v1/config/spec
now returns values related to Bellatrix. More detail can be found in #3425.
Breaking Change: blinded_blocks
API Changes
As per #3429:
- The
eth/v2/validator/blinded_blocks/{slot}
endpoint was removed since it did not exist in the beacon-API spec. - The
version
value is now returned for theeth/v1/validator/blinded_blocks/{slot}
endpoint, as per the beacon-API spec.
Breaking Change: Changes to lcli
The skip-slots
and transition-blocks
commands in lcli
were overhauled to provide additional functionality and improved UX in #3252. Since lcli
is a tool intended for developers we do not expect production users to be affected by these changes.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | High Priority | High Priority |
Non-Staking Users | High Priority | --- |
The Beacon Node may be updated without the Validator Client, however both components must be updated to support the merge. A validator client running a pre-v3.0.0 release will not produce blocks after the Bellatrix upgrade.
See Update Priorities for more information about this table.
All Changes
- Pin cargo-udeps
- Bump versions
- Run per-slot fork choice at a further distance from the head (#3487)
- Add metrics for EE
PayloadStatus
returns (#3486) - Revise EE peer penalites (#3485)
- Bump EF tests to
v1.2.0 rc.3
(#3483) - Unblock CI by updating git submodules directly in execution integration tests (#3479)
- Optimistic sync: remove justified block check (#3477)
- Add test for exits spanning epochs (#3476)
- Align engine API timeouts with spec (#3470)
- Add mainnet merge values 🐼 (#3462)
- Log if no execution endpoint is configured (#3467)
- Fix block verification and checkpoint sync caches (#3466)
- Increase merge-readiness lookhead (#3463)
- Standard gas limit api (#3450)
- Modularise slasher backend (#3443)
- Fix lints for Rust 1.63 (#3459)
- Handle processing results of non faulty batches (#3439)
- Linkcheck fix (#3452)
- lighthouse_version: Fix version string regex (#3451)
- Remove some "wontfix" TODOs for the merge (#3449)
- Serve Bellatrix preset in BN API (#3425)
- Remove INVALID_TERMINAL_BLOCK (#3385)
- Don't return errors on HTTP API for already-known messages (#3341)
- fix: incorrectly formatted MEV link in Lighthouse Book (#3434)
- Don't use the builder network if the head is optimistic (#3412)
- Update Prater ENRs (#3396)
- Add support for beaconAPI in
lcli
functions (#3252) - [Contribution docs] Add GitPOAP Badge to Display Number of Minted GitPOAPs for Contributors (#3343)
- Don't attempt to register validators that are pre-activation (#3441)
crypto/bls
: makeblst
dependency optional (#3387)- Update invalid head tests (#3400)
- Expand merge migration docs (#3430)
- Ensure
validator/blinded_blocks/{slot}
endpoint conforms to spec (#3429) - Include validator indices in attestation logs (#3393)
- Downgrade log for 204 from builder (#3411)
- Use latest Geth release in EE integration tests (#3395)
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-v3.0.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.0.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.0.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.0.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.0.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.0.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.0.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.0.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v3.0.0 | sigp/lighthouse |