Skip to content

Releases: 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

Man Painted Silver Who Makes Robot Noises

28 Jun 08:41
v2.3.2-rc.0
Compare
Choose a tag to compare

🧑‍🔧 Release Candidate: Not for Production Use 🧑‍🔧

This is a release candidate. It is not production-ready and not recommended for mainnet use.

For more information on release candidates, see: https://lighthouse-book.sigmaprime.io/advanced-release-candidates.html

Summary

This release-candidate provides the updated total terminal difficulty (TTD) value for the Sepolia testnet. We recommend all users who wish to participate in the Sepolia merge to upgrade to this release.

Users on other networks (Mainnet, Prater, Ropsten, etc) do not need to upgrade to this release.

All Changes

  • 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 execution_layer crate (#3257)
  • Enable malloc metrics for the VC (#3279)
  • Avoid cloning snapshots during sync (#3271)
  • Fix validator_monitor_prev_epoch_ metrics (#2911)
  • Do not penalize peers on execution layer offline errors (#3258)
  • Update cargo lockfile to fix RUSTSEC-2022-0025, RUSTSEC-2022-0026 and RUSTSEC-2022-0027 (#3278)
  • Add sepolia config (#3268)

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

Butter Robot

14 Jun 09:28
v2.3.1
Compare
Choose a tag to compare

Summary

This high-priority release contains important bug-fixes and improvements that we recommend for all users.

Notable changes include:

  • Fix to prevent clock drift interfering with fork choice (#3243)
  • Significant optimisations to reduce likelihood of missed head/target attestations (#3254, #3229)
  • Fixes to networking issues (#3236, #3233, #3259, #2361)
  • Improvements for the Ropsten testnet (#2340, #3234)

Breaking Changes

There are no known breaking changes in this release.

Reminder: Docker Base Image

In the previous 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 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

  • v2.3.1 (#3262)
  • Improve substream management (#3261)
  • Optimise per_epoch_processing low-hanging-fruit (#3254)
  • Lint against panicky calls in async functions (#3250)
  • Pin MDBX at last version with Win/Mac support (#3246)
  • minor libp2p upgrade (#3259)
  • Only use authenticated endpoints during EE integration testing (#3253)
  • do not count sync batch attempts when peer is not at fault (#3245)
  • update libp2p (#3233)
  • Fix per-slot timer in presence of clock changes (#3243)
  • reduce reprocess queue/channel sizes (#3239)
  • Fix: PeerManager doesn't remove "outbound only" peers which should be pruned (#3236)
  • Update Ropsten TTD (#3240)
  • Improve eth1 block cache sync (for Ropsten) (#3234)
  • Switch Nethermind integration tests to use master branch (#3228)
  • Emit log when fee recipient values are inconsistent (#3202)
  • Use a stable tag for ubuntu in dockerfile (#3231)
  • Inline safe_arith methods (#3229)
  • Use genesis slot for node/syncing (#3226)
  • Fix typo in peer state transition log (#3224)
  • Add lcli indexed-attestations (#3221)
  • Fix links in docs (#3219)

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

Baby Wizard

30 May 06:32
v2.3.0
Compare
Choose a tag to compare

Summary

This high priority release contains important bug-fixes and improvements that we recommend for all users. Importantly, fixes are included for the recent 7-block re-org on mainnet. Fast and widespread adoption of this release will help protect the network from repetition of this event.

This release also contains fixes to increase the chances of getting head votes and producing blocks during degenerate scenarios.

Notable changes include:

  • Bug-fix to increase likelihood of block production in degenerate cases (#3188)
  • Bug-fix to prevent missed head votes in degenerate cases (#3183)
  • Running fork choice before proposing a block (#3168)
  • Proposer boost reduced to 40% (#3201)
  • Optimisation to lessen impact of backfill resource hogging (#3215)
  • Support for the Ropsten Beacon Chain (#3184, #3225)
  • Support for the Remote Key Manager API (#3162)
  • Various improvements to syncing and networking (#3142, #3153, #3182)
  • Bug-fix for HTTP Accept header parsing (#3185)
  • Client authentication for Web3Signer (#3170)
  • Smaller intermediate images during Docker builds (#3174)
  • Fixes for merge testnets (#3165)

Thanks to external contributors @ackintosh, @huitseeker, @zsluedem and @petertdavies. Special shout-out to @tthebst who contributed two important PRs to this release (#3162, #3188).

Ropsten

Use the --network ropsten flag to join the Ropsten testnet.

This release introduces support for the Ropsten Beacon Chain with the updated total terminal difficulty (TTD) value of 1e32. We recommend all Ropsten users running v2.3.0-rc.0 to upgrade to this version before the Ropsten beacon chain genesis (less than 12 hours away, at the time of writing).

Breaking Changes

❗ Database Schema Upgrade ❗

This release contains a backwards-incompatible database schema migration for any network that has undergone "the merge" (see #3157). At the time of writing, this includes Kiln and Kintsugi but excludes Prater and Mainnet. For clarity:

  • Prater, Mainnet: users who upgrade to v2.3.0 are able to downgrade to v2.2.x and v2.1.x releases using lighthouse db
  • Kiln, Kinstugi: users who upgrade to v2.3.0 are not able to downgrade to any prior release

See the Database Migrations documentation for more information on downgrading.

Docker Base Image

The Docker base image has been 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 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.

See Update Priorities for more information about this table.

All Changes

  • v2.3.0 (#3222)
  • Set Ropsten TTD to unrealistically high value (#3225)
  • move backfill sync jobs from highest priority to lowest (#3215)
  • Add new VC metrics for beacon node availability (#3193)
  • v2.3.0-rc.0 (#3218)
  • Avoid parallel fork choice runs during sync (#3217)
  • Document database migrations (#3203)
  • Decrease proposer boost to 40% (#3201)
  • Call per_slot_task from a blocking thread (v2) (#3199)
  • Remove build status badge from README (#3195)
  • Fix Rust 1.61 clippy lints (#3192)
  • Add Ropsten configuration (#3184)
  • Run fork choice before block proposal (#3168)
  • Log out response status when we hit PayloadIdUnavailable (#3190)
  • Tiny improvement: PeerManager and maximum discovery query (#3182)
  • Add client authentication to Web3Signer validators (#3170)
  • Avoid unnecessary slashing protection when publishing blocks (#3188)
  • Fix http header accept parsing problem (#3185)
  • Remove DB migrations for legacy database schemas (#3181)
  • Prevent attestation to future blocks from early attester cache (#3183)
  • Allow TaskExecutor to be used in async tests (#3178)
  • [refactor] Refactor Option/Result combinators (#3180)
  • Remove lcli block packing analysis (#3179)
  • Separate execution payloads in the DB (#3157)
  • Exclude EE build dirs from Docker context (#3174)
  • Add remotekey API support (#3162)
  • Fix: no version info in homebrew package (#3167)
  • Don't panic in forkchoiceUpdated handler (#3165)
  • Fix Execution Engine integration tests (#3163)
  • Change the url of the blog post (#3161)
  • Poll shutdown timeout in rpc handler (#3153)
  • log upgrades + prevent dialing of disconnecting peers (#3148)
  • Disallow attesting to optimistic head (#3140)
  • keep failed finalized chains to avoid retries (#3142)

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