Releases: sigp/lighthouse
Stealy
Summary
This high-priority release contains important bug fixes, optimizations and a notable change to fork choice which incentivizes the timely production of blocks.
Other interesting changes include:
- Improved logging for debugging payloads from builders (#3725)
- Significantly improved syncing speeds (#3738, #3794)
- New custom Lighthouse API endpoints (#3756, #3760, #3779)
- Reduced log severity for late blocks and unrevealed builder blocks (#3775)
- Reduced log severity for validator monitor logs (#3727)
- Updated Gnosis bootnodes (#3793, #3855)
- Improved validator monitor for high validator counts (#3728)
- A fix for slow VC API performance with Web3Signer validators (#3801)
Proposer Boost Re-Orgs
Lighthouse nodes running this version (or later) will attempt to re-org blocks which arrive late and subsequently receive very few votes from other validators. Lighthouse will not attempt a re-org unless it is confident that its own block will become the head and the action is in the best interests of the Ethereum network.
It is expected that re-orging a late block will be significantly profitable for the entity which performs the re-org. The loss induced by the validator which produced the late block will incentivize performance improvements.
See Late Block Re-orgs in the Lighthouse Book for more information.
Breaking Changes
This release contains two breaking changes regarding the validator monitor on the BN.
1. Aggregate Validator Monitor Metric
A new flag has been added to the Beacon Node: --validator-monitor-individual-tracking-threshold
. The default value is 64
, which means that when the validator monitor is tracking more than 64 validators then it will stop tracking per-validator metrics and only track values via the new total
label. It will also stop logging per-validator logs and only emit aggregated logs (the exception being that exit and slashing logs are always emitted).
The new total
label tracks the aggregated metrics of all validators in the validator monitor (as opposed to each validator being tracking individually using its pubkey as the label). It only tracks values which are easily aggregated (e.g. total count of attestations seen) and omits values which are not easily aggregated (e.g. most recent inclusion distance).
These changes were introduced in #3728 to address issues with untenable Prometheus cardinality and log volume when using the validator monitor with high validator counts (e.g., 1000s of validators). Users with less than 65 validators will see no change in behavior (apart from the added total
metric). Users with more than 65 validators who wish to maintain the previous behavior can set something like --validator-monitor-individual-tracking-threshold 999999
.
2. Reduced Log Severity for Validator Monitor Logs
The validator monitor will no longer emit WARN
and ERRO
logs for sub-optimal attestation performance. The logs will now be emitted at INFO
level. This change was introduced to avoid cluttering the WARN
and ERRO
logs with alerts that are frequently triggered by the actions of other network participants (e.g., a missed block) and require no action from the user.
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 | Medium Priority |
Non-Staking Users | High Priority | --- |
The Beacon Node may be updated without the Validator Client, however we recommend updating both components for completeness.
See Update Priorities more information about this table.
All Changes
- Release v3.4.0 (#3862)
- Update dependencies incl Tokio (#3866)
- Web3 signer validator definitions reloading on any request (#3801)
- Improve validator monitor experience for high validator counts (#3728)
- Add more Gnosis bootnodes (#3855)
- Verify execution block hashes during finalized sync (#3794)
- Upgrade to libp2p v0.50.0 (#3764)
- Restructure code for libp2p upgrade (#3850)
- Various CI fixes (#3813)
- docs: remove mention of phases in voluntary exits (#3776)
- Clippy lints for rust 1.66 (#3810)
- send error answering bbrange requests when an error occurrs (#3800)
- Update Gnosis chain bootnodes (#3793)
- Enable proposer boost re-orging (#2860)
- Make all validator monitor logs
INFO
(#3727) - Adding light_client gossip topics (#3693)
- Reduce log severity for late and unrevealed blocks (#3775)
- Add API endpoint to get VC graffiti (#3779)
- Update book with missing Lighthouse endpoints (#3769)
- Expose certain
validator_monitor
metrics to the HTTP API (#3760) - Delete DB schema migrations for v11 and earlier (#3761)
- Add API endpoint to count statuses of all validators (#3756)
- Prioritise important parts of block processing (#3696)
- Ipv6 bootnodes (#3752)
- Optimize finalized chain sync by skipping newPayload messages (#3738)
- Improve debugging experience for builder proposals (#3725)
- Add Run a Node guide (#3681)
- Gossipsub fast message id change (#3755)
- Add CLI flag for gui requirements (#3731)
- Add CLI flag to opt in to world-readable log files (#3747)
- remove commas from comma-separated kv pairs (#3737)
- Added LightClientBootstrap V1 (#3711)
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.4.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.4.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.4.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.4.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.4.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.4.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.4.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.4.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v3.4.0 | sigp/lighthouse |
Mr. Frundles
Summary
This release is a low-priority release for all users, except those using the Gnosis Chain.
For Gnosis users, this release includes the Gnosis Merge parameters. Gnosis users will need to update to this release before November 30th or they will fail to go through the merge transition and will be left following the wrong chain. Therefore, this release is high-priority for Gnosis users.
Ethereum mainnet and Ethereum testnet (e.g., Goerli, Sepolia) users may choose to update to this release, but it is low-priority.
Alongside the Gnosis changes, this release includes:
⚠️ Database schema upgrade to v13⚠️ - Support for a new and upcoming improvement to checkpoint sync (#2915)
- Addition of the
--checkpoint-sync-url-timeout
flag (#3710) - Improvements to sync committee message signing with optimistic EEs (#3624)
Breaking Changes
⚠️ Breaking Change: Database Schema v13 ⚠️
To support new features the database schema has been upgraded to v13. 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.
Breaking Change: Sync Commmittee Fallback Behaviour
The signing of sync committee messages by the validator client has been improved in a way that is incompatible with old versions of the Lighthouse beacon node. We do not expect many users to be affected because only versions prior to v3.0.0 are incompatible.
For details please see: #3624
Gnosis Merge
Gnosis chain is merging! 🎉
The expected timeline is:
- November 30 2022: Bellatrix hard fork activated on the consensus layer.
- December 5-11 2022: Terminal total difficulty reached, merge completed.
You must update both the Lighthouse beacon node and validator client before November 30. Failure to update will result in missed validator rewards and a corrupt beacon node database (requiring a re-sync).
You must also ensure you're running a compatible verison of Nethermind (v1.14.6 or newer) and that it is correctly connected to your Lighthouse beacon node. For further instructions please see:
Deposit Snapshot Sync
We are pleased to announce the readiness of deposit snapshot sync, which enables nodes to quickly sync the deposit contract.
When setting up a new Lighthouse node using checkpoint sync, a snapshot of the deposit contract will be downloaded from the checkpoint sync provider. Initially the only supported provider is Lighthouse v3.3.0, although we expect checkpointz
and the other clients soon will roll out support soon.
If the checkpoint sync provider does not support the feature you'll see a pair of warning logs:
WARN Remote BN does not support EIP-4881 fast deposit sync
WARN Failed to finalize deposit cache
These warnings are harmless, and Lighthouse will gracefully fallback to syncing the deposit contract cache from the execution node.
Depsosit snapshot support is the result of many months of work by @ethDreamer, who not only implemented the feature in Lighthouse but also wrote the spec for it, EIP-4811.
For further details on the implementation see: #2915
Update Priority
This table provides priorities for which classes of mainnet users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Low Priority | Low Priority |
Non-Staking Users | Low Priority | --- |
Note: this update is high-priority for Gnosis chain users.
The Beacon Node may be updated without the Validator Client, however we recommend updating both components for completeness. Gnosis users must update both the beacon node and the validator client.
See Update Priorities for more information about this table.
All Changes
- v3.3.0 (#3741)
- Lower deposit finalization error to warning (#3739)
- Schedule gnosis merge (#3729)
- Super small improvement: Remove unnecessary
mut
(#3736) - Add metrics for subnet queries (#3721)
- Simplify GossipTopic -> String conversion (#3722)
- compile with beta compiler on CI (#3717)
- Health Endpoints for UI (#3668)
- CI gardening maintenance (#3706)
- Sync committee sign bn fallback (#3624)
- Add --light-client-server flag and state cache utils (#3714)
- add checkpoint-sync-url-timeout flag (#3710)
- Blinded block and RANDAO APIs (#3571)
- Register blocks in validator monitor (#3635)
- Added Merkle Proof Generation for Beacon State (#3674)
- Blocklookup data inconsistencies (#3677)
- Update stale sections of the book (#3671)
- Clarify error log when registering validators (#3650)
- Fix rust 1.65 lints (#3682)
- Deposit Cache Finalization & Fast WS Sync (#2915)
- Update discv5 (#3171)
- Book spelling and grammar corrections (#3659)
- Added lightclient server side containers (#3655)
Day Rick
Summary
This medium-priority release is a patch release for the recently released v3.2.0, fixing a performance regression.
Please see the release notes for v3.2.0 for a summary of included features and breaking changes:
https://github.com/sigp/lighthouse/releases/tag/v3.2.0
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Medium Priority | Medium Priority |
Non-Staking Users | Low Priority | --- |
The Beacon Node may be updated without the Validator Client and vice versa, as long as both BN and VC are running a v3.x release.
Beacon nodes and validator clients on pre-v3.0.0 versions have been unable to follow the chain since September 6 2022 when the Bellatrix hard fork was activated.
See Update Priorities for more information about this table.
All Changes
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.2.1-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.2.1-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.2.1-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.2.1-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.2.1-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.2.1-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.2.1-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.2.1-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v3.2.1 | sigp/lighthouse |
Night Summer
Summary
This medium-priority release contains bugfixes, optimisations and new features. We would like to see this release widely deployed on mainnet in the coming weeks.
Notable changes include:
- Bugfix for blocks being proposed with 0 attestations.
- Improvements to subscription handling when using fallback beacon nodes.
- Optimisations to attestation and block processing.
- New flags for tweaking interaction with the execution layer.
- Updated networking libraries with improved stability and performance.
There are also some minor breaking changes, described in Breaking Changes. In particular, users compiling from source must ensure that a Protobuf compiler is installed. The --eth1-endpoints
flag should also be removed.
Bugfix for blocks with 0 attestations
Prior versions of Lighthouse are affected by a bug which sometimes causes blocks with 0 attestations to be proposed, e.g. at slot 4992544. We estimate that around 1 in 700 blocks on mainnet are affected.
The impact of this bug is two-fold:
- Missed attestation inclusion rewards for the proposer of the block, around 0.025 ETH per faulty proposal.
- Missed attestation rewards for the attesters from the previous slot.
The bug was in validation code that was intended to prevent invalid attestations from being included in blocks, which was misfiring and blocking valid attestations.
We regret that this bug existed on mainnet as long as it did. It is present in all prior versions of Lighthouse except v2.4.0 and v2.5.0, meaning that all mainnet-capable releases are affected.
As more validators upgrade to v3.2.0 we hope to see improved attestation performance across the entire network, as well as increased block rewards for proposers running Lighthouse. Note that the bug does not result in decreased block rewards at the execution layer, as these rewards are due to included transactions rather than attestations.
For more detail on how the bugfix was implemented and tested please see this PR: #3629.
Thanks to Moshe Revah (@moshe-blox) for noticing the issue and bringing it to our attention.
Improved fallback behaviour
In a first step to improve the Lighthouse validator client's fallback behaviour we have implemented broadcast of subscriptions and preparation messages to fallback beacon nodes. This means that running fallback nodes with --subscribe-all-subnets
is no longer required.
The extra messages might impose some additional bandwidth and processing load on both the VC and the BN, but our testing indicates that it is quite minimal and significantly less than the overhead of running unnecessarily with --subscribe-all-subnets
.
If you are running multiple beacon nodes and would like to opt-out of the broadcast behaviour you can do so using --disable-run-on-all
as a flag to lighthouse vc
.
Users running a single beacon node with each validator client are unaffected and do not need to add any flags or take any action.
For implementation details please see this PR: #3529.
Block processing optimisations
This release includes two improvements to reduce block processing times by around 35%.
The first optimisation is algorithmic and nets a 20% improvement by avoiding re-calculation of the proposer index (see #3604).
The second improvement comes from enabling aggressive compiler optimisations, including LTO. These compiler optimisations are enabled in the pre-compiled binaries and Docker images, but are not be enabled for source builds by default due to the substantial increase in build time. Users building from source may opt-in via the maxperf
compilation profile.
New execution layer flags
There are no less than 3 new flags for controlling interaction with the execution layer client, all contributed by external contributors:
--disable-deposit-contract-sync
: prevent Lighthouse from syncing the deposit contract logs. This is useful if running an execution node for a purpose other than staking. It should not be used for staking nodes as it will cause missed block proposals.
--execution-timeout-multiplier N
: set a longer timeout for responses from the execution layer. This is useful for low-powered nodes which may struggle to follow the chain if they timeout continually. We don't recommend using this flag for staking as such low-powered nodes are unlikely to be able to support validators.
--execution-jwt-secret-key KEY
: set the JWT secret via the CLI rather than from a file. This comes at the cost of reduced security, as the secret will be leaked to other users on the same machine. It is intended for use in automated provisioning systems.
All flags apply to lighthouse bn
. For further documentation please see lighthouse bn --help
.
Thanks to @pinkiebell, @GeemoCandama and @mariuspod for these contributions!
Updated networking libraries
libp2p
has been updated to v0.48.0 which brings several improvements and lays the groundwork for further reductions in bandwidth. Please see #3547 for details.
Breaking Changes
Upgrading to v3.2.0 can be done with minimal changes to configuration. We expect most users will be able to upgrade without any changes. However, if you are still using multiple nodes with --eth1-endpoints
you must remove them, see below.
Downgrading to v3.1.2 after upgrading is also supported, so long as any new flags are removed before switching back (e.g. --execution-jwt-secret-key
).
Removal of fallbacks from --eth1-endpoints
We have simplified some code by the removal of fallback support from --eth1-endpoints
, which has been deprecated since The Merge.
If you are still using the --eth1-endpoints
flag with multiple endpoints we recommend that you remove the flag entirely. Failure to remove it before upgrading will result in lighthouse bn
failing to start.
If you are using --eth1-endpoint
or --eth1-endpoints
with a single argument then Lighthouse will still start, but the value of the flag will be ignored.
The only network that hasn't merged at time of writing is Gnosis Chain. If you would like to run a Gnosis node with fallback eth1 nodes we recommend remaining on a prior version such as v2.5.0 (which is also free of the block proposal bug).
For more information on the removal of fallback eth1 nodes please see #3594, and the Merge Migration guide in the book.
Protobuf dependency when building from source
Building from source now requires a Protobuf compiler (protoc
) to be installed. The Build from Source instructions in the book have been updated to document this change.
For example, on Ubuntu, protoc
can be installed with:
sudo apt install protobuf-compiler
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Medium Priority | Medium Priority |
Non-Staking Users | Low Priority | --- |
The Beacon Node may be updated without the Validator Client and vice versa, as long as both BN and VC are running a v3.x release.
Beacon nodes and validator clients on pre-v3.0.0 versions have been unable to follow the chain since September 6 2022 when the Bellatrix hard fork was activated.
See Update Priorities for more information about this table.
All Changes
- Release v3.2.0 (#3647)
- Ban and unban peers at the swarm level (#3653)
- bors: require slasher and syncing sim tests (#3645)
- beacon_node: add --disable-deposit-contract-sync flag (#3597)
- add execution-timeout-multiplier flag to optionally increase timeouts (#3631)
- Fix attestation shuffling filter (#3629)
- Consensus context with proposer index caching (#3604)
- Optimistic sync spec tests (v1.2.0) (#3564)
- Optimise HTTP validator lookups (#3559)
- Add a new bls test (#3235)
- Pass EL JWT secret key via cli flag (#3568)
- [DEV FEATURE] Deterministic long lived subnets (#3453)
- CLI tests for logging flags (#3609)
- Remove fallback support from eth1 service (#3594)
- Ensure protoc is installed for release CI (#3621)
- Changed http:// to https:// on mailing list link (#3610)
- Add maxperf build profile (#3608)
- Use #!/usr/bin/env everywhere for local testnets (#3606)
- Handle Lodestar's new agent string (#3620)
- Improve logging a little (#3619)
- Libp2p v0.48.0 upgrade (#3547)
- Publish subscriptions to all beacon nodes (#3529)
- Add guide to MEV logs (#3611)
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.2.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | [lighthouse-v3.2.0-x86_64-apple-darwin-portable.tar.gz](https://github.com/sigp/lighthouse/releases/download/v3.2.0/lighthouse-v3.2.0-x86... |
Roy
Summary
This low-priority release contains several optimisations to improve performance on the newly merged mainnet!
Notable changes include:
- Optional payload pruning to reduce execution node timeouts.
- Optimisations to attestation and block processing.
- More efficient attestation subnet subscriptions.
- New flags to control the use of external block builders for MEV.
There are also a few minor breaking changes, described in Breaking Changes.
Note that there is no v3.1.1 release due to a minor bug that was found and fixed before that release had been fully published.
Payload Pruning
One issue we've noticed on mainnet is that requests to the execution node sometimes time out.
ERRO Error fetching block for peer error: ExecutionLayerErrorPayloadReconstruction(0x4092070250431d93d6b0331ec940bf467407302038347382ab57d4e945527e08, EngineError(Api { error: Reqwest(reqwest::Error { kind: Request, url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(8551), path: "/", query: None, fragment: None }, source: TimedOut }) }))
To reduce the number of requests made to the execution node, we have made payload pruning optional in v3.1.2. Payload pruning is the process by which Lighthouse avoids storing execution payloads in its database. When enabled, Lighthouse will fetch payloads from the execution node on-demand. Although this saves disk space it imposes substantial load on the execution node when a syncing peer requests blocks from Lighthouse.
When upgrading to v3.1.2 you should make a choice to enable or disable payload pruning:
- Enable (default): Lighthouse will run a background pruning job on start-up that permanently removes payloads from its database. This pruning may take up to 30 minutes the first time it runs on machines with slower I/O. Lighthouse will continue to be available for validators while this job runs, but may exhibit slightly degraded performance. All future payloads will be deleted from the database and fetched on-demand if required. Although v3.1.0 and earlier also fetched payloads on-demand, the payloads were still stored in the database due to an oversight. Upgrading to v3.1.2 with pruning enabled will delete them permanently.
- Disable: Opt out of payload pruning with the
--prune-payloads false
flag on the beacon node. Lighthouse will keep all execution payloads in its database and serve them to peers directly. This will consume slightly more disk space but will reduce load on the execution node. This is recommended for users who have seen frequent timeouts and users running on constrained devices (particularly where I/O is scarce). We hope that this may be particularly helpful to users running Besu, which seems to timeout more frequently.
You may freely switch between --prune-payloads false
and the default configuration (equivalent to --prune-payloads true
). If you are unsure, we recommend starting out with --prune-payloads false
, as any payloads deleted after running with payload pruning enabled will remain deleted. Our medium-term goal is to make payload pruning efficient enough to be usable by all nodes, and we are collaborating with the execution client devs on this.
For more information on the implementation of this feature please see #3565, #3587.
Attestation and Block Processing Optimisations
This release includes a ~20% reduction in the time it takes to compute the merkle root of a beacon block (#3581). Since the merge introduced transactions to the beacon chain, computing the merkle root of a block has become more significant. This optimisation will result in faster block imports and therefore better attestation performance (i.e., more accurate head votes).
Additionally, the cache which stores information required to verify attestations has been modified to prevent duplicate work in some scenarios (#3574). Previously, it was possible for multiple attestations being processed on different threads to load the same BeaconState
from disk at the same time. This resulted in excess memory and CPU usage. With the new behaviour, the first attestation will load a single BeaconState
and other attestations will wait for that operation to complete.
Subscribe On-Demand
Reduces bandwidth by limiting the time we are subscribed to subnets to a smaller time frame when needed. Upgrades to libp2p have allowed us to reduce our subscription time period.
For more information see #3419.
MEV profit threshold
To give validators greater control over their interaction with external block builders, we have added a new flag --builder-profit-threshold
which filters out blocks from builders that pay the proposer less than a threshold value.
Please see the documentation for a full description: https://lighthouse-book.sigmaprime.io/builders.html#builder-profit-threshold
Note that this flag is for the beacon node, as the beacon node has lowest-latency access to both the builder payload and the local payload.
We hope that this feature compensates for the deprecation of --strict-fee-recipient
(see below).
Breaking Changes
You can upgrade to Lighthouse v3.1.2 without making any changes to your configuration, although you should be aware of the changes in behaviour listed below.
Downgrading to v3.1.0 after upgrading is also supported, so long as the new --prune-payloads
and --builder-profit-threshold
flags are removed before switching back to v3.1.0.
Deprecation of --strict-fee-recipient
The --strict-fee-recipient
flag for the validator client has been deprecated and no longer has any effect.
We took the decision to deprecate the flag for two reasons:
- There was a bug in the implementation that prevented block proposals before TTD was reached (no longer relevant on mainnet).
- Almost all block builders will use a transaction to pay the proposer, meaning that their blocks would be rejected if the
strict-fee-recipient
flag were used. This means the flag effectively disabled the external block builders entirely, which is not useful.
If you are using --strict-fee-recipient
in your Lighthouse VC flags you should remove it. However, if you don't remove it Lighthouse will still start, but will log a warning. In future we will likely remove the flag entirely.
Changes to block reward and block production APIs
Two breaking changes were made to non-standard APIs and parameters:
- The
/eth/v2/validator/blocks/{slot}
endpoint now uses the standardskip_randao_verification
parameter rather than the previously Lighthouse-only parameterverify_randao
. - The
POST /lighthouse/analysis/block_rewards
now accepts blinded blocks for improved efficiency and better compatibility with MEV builders.
We expect these changes will only affect a small number of expert users. For more information please see #3540.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Low Priority | Low Priority |
Non-Staking Users | Low Priority | --- |
The Beacon Node may be updated without the Validator Client, however both components must be updated to support the merge. Beacon nodes and validator clients on pre-v3.0.0 versions have been unable to follow the chain since September 6 2022 when the Bellatrix hard fork was activated.
See Update Priorities for more information about this table.
All Changes
- v3.1.2 (#3603)
- New rust lints for rustc 1.64.0 (#3602)
- send attnet unsubscription event on random subnet expiry (#3600)
- Make garbage collection test less failure prone (#3599)
- Fix ee integration tests (#3592)
- Deduplicate block root computation (#3590)
- Add disable-log-timestamp flag (#3101) (#3586)
- v3.1.1 (#3585)
- Fix concurrency issue with
oneshot_broadcast
(#3596) - Impl
oneshot_broadcast
for committee promises (#3595) - Avoid holding write-lock whilst waiting on shuffling cache promise (#3589)
- Refined payload pruning (#3587)
- Implement
skip_randao_verification
and blinded block rewards API (#3540) - Prune finalized execution payloads (#3565)
- Pre-allocate vectors in SSZ decoding (#3417)
- Use
SmallVec
forTreeHash
packed encoding (#3581) - Add
lcli block-root
tool (#3580) - Avoid duplicate committee cache loads (#3574)
- Add metric for re-org distance (#3566)
- Bump
axum
deps (#3570) - Fix builder gas limit docs (#3569)
- Fix ganache test endpoint for ipv6 machines (#3563)
- Support histogram buckets (#3391)
- Use generic domain for community checkpoint sync example (#3560)
- fix description for BALANCES_CACHE_MISSES metric (#3545)
- Add community checkpoint sync endpoints to book (#3558)
- Pin mev rs deps (#3557)
- Remove strict fee recipient (#3552)
- remove strict fee recipient docs (#3551)
- Add flag 'log-color' preserving color of log redirected to file. (#3538)
- Update graffiti.md (#3537)
- Configurable monitoring endpoint frequency (#3530)
- Builder profit threshold flag (#3534)
- Fixing a few typos / documentation (#3531)
- Strict count unrealized (#3522)
- Add timeout for --checkpoint-sync-url (#3521)
- Fix attestation performance API
InvalidValidatorIndex
error (#3503) - Subscribe to subnets only when needed (#3419)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
| S...
Unity
Summary
This high-priority release contains an important fix to ensure that Lighthouse does not attempt to produce invalid blocks. Furthermore, it improves block production efficiency, thereby increasing the likelihood of a Lighthouse-produced block being included in (and rewarded by) the canonical chain.
We recommend all mainnet users update before the Bellatrix upgrade on Sept 6, 2022, 11:34:47am UTC. Testnet users should upgrade at their next convenience.
Notable changes include:
- Improved handling of offline EEs during sync (#3428)
- Optimisations to block production (#3312)
- Improvements to how builder-enabled VCs interact with non-builder BNs (#3488)
- Easier recovery from EE consensus faults (#3498)
- Log suggested fee recipient addresses in the VC (#3526)
Merge Reminder
The Ethereum mainnet network will upgrade to proof-of-stake on or around the 15th of September 2022. Before that, the Beacon Chain will perform the "Bellatrix" upgrade on Sept 6, 2022, 11:34:47am UTC.
Users do not have until Sept 15th to be "ready for the merge", rather they must be ready by Sept 6th. There is less than a week before users must be merge ready. See Merge Migration for more information.
Breaking Changes
Breaking Change: Database Migration
There is one database migration in this release: v12 (#3312).
Older database versions will automatically upgrade to the latest version without user intervention. The migration may cause start-up to take a few minutes longer than usual, but subsequent restarts will be just as fast as previously.
Downgrading requires the user to use the lighthouse db
tool. See the Database Migrations documentation for detailed instructions.
Breaking Change: Keystore API
Lighthouse will now return readonly: true
rather than readonly: null
on the GET /eth/v1/keystores
endpoint. This does not affect any other behaviour beyond that return value. We do not expect this behaviour to have an adverse impact on users.
Breaking Change: --execution-jwt
flags
A bugfix was made to the --execution-jwt
flag such that it can only be provided if --execution-endpoint
is also provided. We hope that this has minimal impact on user setups as a node should either be configured with both flags (merge-ready) or neither (legacy). Full details are in #3494.
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
- v3.1.0 (#3525)
- Log fee recipients in VC (#3526)
- Separate committee subscriptions queue (#3508)
- Docker builds in GitHub actions (#3523)
- Harden slot notifier against clock drift (#3519)
- Add more logging for invalid payloads (#3515)
- Reset payload statuses when resuming fork choice (#3498)
- Validator registration request failures do not cause us to mark BNs offline (#3488)
- Refactor op pool for speed and correctness (#3312)
- More merge doc updates (#3509)
- Return
readonly: false
for local keystores (#3490) - Enable
block_lookup_failed
EF test (#3489) - don't register exited or slashed validators with the builder api (#3473)
- Pause sync when EE is offline (#3428)
- Update docs for mainnet merge release (#3494)
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.1.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.1.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.1.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.1.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.1.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.1.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.1.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.1.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v3.1.0 | sigp/lighthouse |
Rick Prime
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](https://github.co... |
Slippy
Summary
This high-priority release contains important fixes for mainnet users.
There were two separate bugs introduced into fork choice in v2.4.0 and v2.5.0.
The first bug results in a steady memory footprint increase of 100MB per month. It has been less than two weeks since that release so it's unlikely that a significant memory increase can be observed, yet. It was fixed in #3408.
The second bug can result in an error during fork choice. This error will only be triggered in rare timing-based circumstances and will resolve itself within seconds. It was fixed in #3402.
Furthermore, an incompatibility between Lighthouse VCs running v2.5.0 and BNs running a version prior to v2.5.0 (or Nimbus BNs) was detected and fixed in #3410.
Breaking Changes
There are no breaking changes in this release. If users have not already upgraded to v2.5.0 they should read the v2.5.0 release notes for the breaking changes in that release.
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 | Low Priority |
Non-Staking Users | High Priority | --- |
The Beacon Node may be updated without the Validator Client, however we recommend updating both components.
See Update Priorities for more information about this table.
All Changes
- Release v2.5.1 (#3406)
- Ignore RUSTSEC-2022-0040 -
owning_ref
soundness (#3415) - Restore backwards compatibility when using older BNs (#3410)
- Make fork choice prune again (#3408)
- Ensure FC uses the current slot from the store (#3402)
- Fix a few typos in option help strings (#3401)
- Add list of DB migrations to docs (#3399)
- Tidy eth1/deposit contract logging (#3397)
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-v2.5.1-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.1-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.1-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.1-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v2.5.1-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v2.5.1-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.1-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.1-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v2.5.1 | sigp/lighthouse |
Galactic Federation President
Summary
This medium-priority release contains a fix for mainnet users experiencing slow "eth1 cache" syncing times (several hours or more). A synced eth1 cache is required for reliable block production.
For Prater/Goerli users, this release contains several new features and bug fixes. The developers kindly request that all Prater/Goerli users update to this release before the Bellatrix upgrade (2022-08-04 12:24 pm UTC). This release is very close to what will be used for the mainnet merge (presently unscheduled). This release should get as much testing as possible during the Prater/Goerli upgrade. Any Prater/Goerli users on v2.3.1 must upgrade to this release before the Bellatrix upgrade or they will follow the wrong chain.
Improvements and fixes include:
- Add
execution_optimistic
flag to HTTP responses (#3070, #3374) - Fix slow eth1 cache syncing times (#3358)
- Full support for builder specs v0.2.0 (i.e.
mev-boost
support) (#3134) - Retrospective verification of optimistically-synced merge transition blocks (#3372)
- Improve peer management when the EL is offline (#3384)
Breaking Changes
Breaking Change: Database Migrations
There are two database migrations in this release; v10 (#3322) and v11 (#3371).
Older database versions will automatically upgrade to the latest version without user intervention.
Downgrading requires the user to use the lighthouse db
tool. See the Database Migrations documentation for detailed instructions.
Breaking Change: Addition of execution_optimistic
flag to HTTP API
The execution_optimistic
flag has been added alongside the data
field on some (but not all) HTTP API responses as per v2.3.0 of the standard Beacon API.
It is unclear if adding a field at this section of the API is truly a breaking change or not, however we list it here for completeness.
Example:
// Lighthouse v2.4.0
{ "data": "object" }
// Lighthouse v2.5.0
{ "data": "object", "execution_optimistic": "boolean" }
Reminder: CLI changes in v2.4.0
The previous release (v2.4.0) contained several changes to CLI flags relating to the merge. Whilst we expect these changes to be largely inconsequential, users on a pre-v2.4.0 release should read the v2.4.0 release notes to understand 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 | Medium Priority | Low Priority |
Non-Staking Users | Low Priority | --- |
The Beacon Node may be updated without the Validator Client, however we recommend updating both components.
See Update Priorities for more information about this table.
All Changes
- v2.5.0 (#3392)
- Indicate that invalid blocks are optimistic (#3383)
- Enable
count-unrealized
by default (#3389) - Fix penalties in sync methods (#3384)
- Initial Commit of Retrospective OTB Verification (#3372)
- Builder Specs v0.2.0 (#3134)
- Don't return errors when fork choice fails (#3370)
- Remove equivocating validators from fork choice (#3371)
- Downgrade Geth to v1.10.20 in EE integration tests (#3382)
- Fix antithesis docker builds (#3380)
- Allow setting web3signer version through environment (#3368)
- Return ResourceUnavailable if we are unable to reconstruct execution payloads (#3365)
- Allow syncing or accepted in integration test (#3378)
- Reformat tables and add borders (#3377)
- Fix some typos (#3376)
- Refuse to sign sync committee messages when head is optimistic (#3191)
- Add
is_optimistic
toeth/v1/node/syncing
response (#3374) - Strict fee recipient (#3363)
- Add merge transition docs (#3361)
- Fix Block Cache Range Math for Faster Syncing (#3358)
- Realized unrealized experimentation (#3322)
- Add
execution_optimistic
flag to HTTP responses (#3070)
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-v2.5.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v2.5.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v2.5.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v2.5.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v2.5.0 | sigp/lighthouse |
Geardude Clockberg
Summary
This low-priority release contains improvements for mainnet validators and support for the upcoming Goerli/Prater merge. This release is recommended for all validators on all networks.
Whilst this release is "low-priority" for mainnet, Prater users must upgrade to this release (or a subsequent release) before 2022-08-04 12:24 pm UTC for the Bellatrix fork. Failure to upgrade in time will leave nodes following the wrong chain.
Improvements and fixes include:
- Various bugfixes (#3258, #2911, #3287, #3331, #3350, #3347)
- Various optimisations (#3271, #3301, #3272, #3335)
- Support for the Sepolia network (#3268, #3288)
- Removal of support for multiple execution endpoints (#3257, #3283, #3284, #3324)
- Graceful recovery from
NonConsecutive
eth1 endpoint errors (#3273) - More information in block rewards APIs (#3290)
- Stabilisation of CLI flags for the merge (#3214)
- Addition of the
feerecipient
API (#3213) - Improvement to fallback BN behaviour for sync committees (#3291)
- Bump minimum supported Rust version to 1.62 (#3304)
- Bellatrix support for web3signer (#3318)
- Update Docker Rust version (#3353)
- Add TTD and Bellatrix epoch for Prater/Goerli (#3345)
- "Merge ready" logging and API endpoint (#3339, #3349)
- Add
--network goerli
flag (#3346)
Addition of --network goerli
Since Prater and Goerli will be merging, there is a consensus among the Ethereum community to begin to refer to the "Prater" beacon chain as the "Goerli" beacon chain. This helps convey the idea that the beacon chain and execution chain both form a single, unified chain.
To this end, this release supports the --network goerli
flag. Whilst this flag will connect to exactly the same network as when using --network prater
, it will result in a default data directory in ~/.lighthouse/goerli
, rather than ~/.lighthouse/prater
.
For users already using --network prater
, we recommend sticking with this value. Switching to --network goerli
will trigger Lighthouse to use a new data directory and therefore resync the beacon chain and ignore any existing validators. It's possible to migrate the prater
directory across to the goerli
name, however we do not have instructions for that at this stage.
In summary,
- The safest strategy for existing users should stick with
--network prater
- New users should use
--network goerli
The only difference is naming.
Breaking Changes
The breaking changes in this release should be inconsequential for mainnet users. However the changes may have some impact for users of post-merge testnets.
Breaking Change: Minimum Supported Rust Version (MSRV)
The MSRV was set to Rust 1.62 in #3304. Version 1.62 was released on June 30, 2022. If you are using an older version of Rust, please update before compiling.
Breaking Change: finalized_checkpoint
SSE event
In #3244, the state
field of the finalized_checkpoint
SSE endpoint now represents the state root of the finalized block, rather than the state root at the finalized slot. See #3244 for more information.
This change aligns Lighthouse with Teku's behaviour. It should be inconsequential for most users.
Breaking Change: Removal of --suggested-fee-recipient-file
The --suggested-fee-recipient-file
provided a path to a file which contained a mapping of validator public key to suggested fee recipient. With the addition of the feerecipient
API (#3213), this feature was deemed an unncessary burden to mainain. The feature has been removed in this release, the validator client will fail to start if --suggested-fee-recipient-file
is present.
The reasoning for this decision can be found at #3264.
Breaking Change: Stabilisation of CLI flags for the merge
This release stabilises the flags that will be used for the beacon node after the merge. Whilst there are some functional changes to the flags we have worked to ensure that the BN will still start even when using deprecated flags; deprecated flags or features will be ignored and a deprecation notice logged.
Details
The --merge
flag has been deprecated and no longer has any effect (it is permitted but ignored). Support for the merge will be enabled whenever --execution-endpoint
is supplied.
Support for multiple execution endpoints and payload builders has been removed. Only one value may be supplied for all related CLI flags. This has involved renaming some flags to remove the plural; the plural version now aliases to the singular version, but only supports a single value. Some jwt
flags have been renamed for clarity. The full list of renamed flags is below:
Old Flag (aliased to "New Flag") | New Flag |
---|---|
--execution-endpoints |
--execution-endpoint |
--jwt-secrets |
--execution-jwt |
--jwt-id |
--execution-jwt-id |
--jwt-version |
--execution-jwt-version |
--payload-builders |
--payload-builder |
Additionally, the --eth1-endpoints
flag will be ignored if the --execution-endpoint
flag is provided. Any requests that were sent to the --eth1-endpoints
will instead be sent to the --execution-endpoint
.
This list of changes does appear complex, however we believe that migration to the new format should be rather simple. We expect all existing CLI configurations to still work, but with some deprecated values ignored.
Here are some examples for demonstration:
# Still works exactly as before. Multiple eth1-endpoints will still be
# utilised since `--execution-endpoints` is not present.
lighthouse \
bn \
--eth1-endpoints http://localhost:8545,https://third-party.com
# Still works, however `--eth1-endpoints` will be ignored in favor
# of `--execution-endpoints`.
lighthouse \
bn \
--merge \
--execution-endpoints http://localhost:8551 \
--jwt-secrets jwt.hex \
--eth1-endpoints http://localhost:8545,https://third-party.com
# Still works, however only the `192.168.1.1` server will be used.
# The seconds will be ignored.
lighthouse \
bn \
--merge \
--execution-endpoints http://192.168.1.1:8551,http://192.168.1.2:8551 \
--jwt-secrets jwt-1.hex,jwt-2.hex
# These are the minimum ideal flags for the merge.
# The --http flag is also required for staking.
lighthouse \
bn \
--execution-endpoint http://192.168.1.1:8551 \
--execution-jwt jwt.hex
Reminder: Docker Base Image
In the penultimate release (v2.3.0), the Docker base image was updated from Ubuntu 20.04 to Ubuntu 22.04 LTS. Older versions of Docker are unable to run the new image due to an incompatibility, so please ensure that you update your Docker engine past version 20.10.10 (released Oct 2021). Please see #3230 for more information.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Low Priority | Low Priority |
Non-Staking Users | Low Priority | --- |
Please note: this update is high-priority for Prater users.
The Beacon Node may be updated without the Validator Client, however we recommend updating both components.
See Update Priorities for more information about this table.
All Changes
- v2.4.0 (#3360)
- Merge readiness endpoint (#3349)
- Set safe block hash to justified (#3347)
- Add Goerli
--network
flag as duplicate of Prater: Option A (#3346) - Log ttd (#3339)
- Fix Gossip Penalties During Optimistic Sync Window (#3350)
- Add TTD and Bellatrix epoch for Prater (#3345)
- debug tests rust version (#3354)
- docker rust version update (#3353)
- Share
reqwest::Client
between validators when using Web3Signer (#3335) - Don't create a execution payload with same timestamp as terminal block (#3331)
- Add merge support to simulator (#3292)
- Make transactions in execution layer integration tests (#3320)
- Improve block-lookup functionality (#3287)
- Add Merge support to web3signer validators (#3318)
- Upstream local testnet improvements (#3336)
- Add a u256_hex_be module to encode/decode U256 types (#3321)
- Ignored sync jobs 2 (#3317)
- Bump the MSRV to 1.62 and using
#[derive(Default)]
on enums (#3304) - Do not interpret "latest valid hash" as identifying a valid hash (#3327)
- Further remove EE redundancy (#3324)
- Add
--release
to disallowed-from-async lint (#3325) - add sync committee contribution timeout (#3291)
- Merge Engines and Engine struct in one in the
execution_layer
crate (#3284) - eth2_hashing: make
cpufeatures
dep optional (#3309) - Implement feerecipient API for keymanager (#3213)
- Fix RUSTSEC-2022-0032 (#3311)
- Document min CMake version (#3310)
- Ensure caches are built for block_rewards POST API (#3305)
- Remove unused method in HandlerNetworkContext (#3299)
- Simplify error handling after engines fallback removal (#3283)
- Optimize historic committee calculation for the HTTP API (#3272)
- Use latest tags for nethermind and geth in the execution engine integration test (#3303)
- Use async code when interacting with EL (#3244)
- Avoid growing Vec for sync committee indices (#3301)
- Remove builder redundancy (#3294)
- Fix clippy lints for rust 1.62 (#3300)
- Register validator api (#3194)
- Unify execution layer endpoints (#3214)
- Extend block reward APIs (#3290)
- Update Cross config for v0.2.2 (#3286)
- v2.3.2-rc.0 (#3289)
- Update Sepolia TTD (#3288)
- Recover from NonConsecutive eth1 errors (#3273)
- Test the pruning of excess peers using randomly generated input (#3248)
- Add more paths to HTTP API metrics (#3282)
- Add some debug logs for checkpoint sync (#3281)
- Deprecate step param in BlocksByRange RPC request (#3275)
- Initial work to remove engines fallback from the `executi...