Skip to content

Releases: sigp/lighthouse

Stealy

12 Jan 00:31
v3.4.0
Compare
Choose a tag to compare

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

24 Nov 05:18
v3.3.0
Compare
Choose a tag to compare

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

27 Oct 04:58
v3.2.1
Compare
Choose a tag to compare

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

  • Release v3.2.1 (#3660)
  • Revert "Optimise HTTP validator lookups" (#3658)

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

26 Oct 02:05
v3.2.0
Compare
Choose a tag to compare

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...
Read more

Roy

26 Sep 05:17
v3.1.2
Compare
Choose a tag to compare
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 standard skip_randao_verification parameter rather than the previously Lighthouse-only parameter verify_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 for TreeHash 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...

Read more

Unity

01 Sep 03:32
v3.1.0
Compare
Choose a tag to compare

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

22 Aug 07:36
v3.0.0
Compare
Choose a tag to compare

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 the eth/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: make blst 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...
Read more

Slippy

03 Aug 08:54
v2.5.1
Compare
Choose a tag to compare

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

01 Aug 07:14
v2.5.0
Compare
Choose a tag to compare

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 to eth/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

22 Jul 04:12
v2.4.0
Compare
Choose a tag to compare

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...
Read more