Skip to content

Releases: sigp/lighthouse

Risotto Groupon

08 Aug 05:49
v5.3.0
d6ba8c3
Compare
Choose a tag to compare

Summary

This medium-priority release contains performance optimisations, bugfixes and new features. There are several breaking changes detailed below.

The main optimisations are:

  • Faster beacon node start-up due to an optimisation to the database schema (#5897). The schema migration is a backwards-incompatible change which is described in more detail below.
  • More reliable block proposals due to the use of the new v3 block production API (#5292).
  • Improvements to the validator client's broadcast mechanism (#5976, #6223).
  • Support for gossipsub IDONTWANT (#5422). This allows nodes to reduce their bandwidth usage by avoiding the download of duplicate messages.

The main bugfixes are:

  • Fix parsing of the VC proposer-nodes CLI flag (#6125).
  • Prevent connections from peers with a banned IP history (#6008).
  • Prevent UPnP queries when UPnP is disabled (#6170).
  • Corrections to lighthouse account CLI (#6153, #6091).
  • Update Sepolia bootnodes, fixing issues with 0 peers on Sepolia (#6037).

New features include:

  • A new Rust slasher database backend, redb (#4529). We still recommend running LMDB on mainnet, but encourage users to try redb on testnets using the flag --slasher-backend redb.
  • The default number of log files retained (logfile-max-number) has been increased from 5 to 10 to help with debugging issues (#6092).
  • Lots of code for the upcoming Electra and PeerDAS network upgrades (#5712, #5741, #5761, #5743).

Breaking Changes

🗑️ Removed CLI flags

The following CLI flags have been removed completely and will cause the BN to fail to start up if provided:

  • --builder-profit-threshold: This flag was already deprecated and has been incompatible since v5.2.0 (#6131).

You should remove any instances of these flags from your beacon node startup command.

👎 Deprecated CLI flags

Beacon node:

  • --disable-lock-timeouts: Lock timeouts are now disabled by default so this flag does nothing. It will be removed in a future release (#6048).
  • --self-limiter: The self limiter is now enabled by default. This flag will be removed in a future release. The purpose of this is to prevent Lighthouse from sending excessive requests to peers in case of bugs or edge case scenarios. The rate limit quotas can be configured via the existing --self-limiter-protocols flag (#6093).

Validator client:

  • --produce-block-v3: The produce block v3 API is now enabled by default and cannot be disabled, so this flag does nothing. It will be removed in a future release (#5292).

You should remove any instances of these flags from your BN/VC commands, although failing to do so will only result in a warning, not a failure to start.

🦀 Minimum Supported Rust Version 1.78.0 🦀

The minimum supported Rust version (MSRV) was updated to 1.78.0. Users who compile from source (i.e., not Docker or pre-built binary users) will receive the following error if they are using an earlier version of Rust:

lighthouse v5.3.0 (/home/sigp/lighthouse/lighthouse) cannot be built because it requires rustc 1.78 or newer

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

💾 Database Schema Upgrade

The beacon node database schema has been updated from v19 to v21. An automatic database schema upgrade will run when updating from a previous version. No manual intervention is required for upgrading.

The schema upgrade was required to prepare for the upcoming Electra fork, and to optimise how validator public keys are stored on disk. Public keys are now stored uncompressed, which uses twice as much space, but allows them to be loaded around 10x faster. This results in shorter start-up times after the initial start-up on v5.3.0.

If you decide to downgrade from v5.3.0, then a database schema downgrade is available. It must be run using the lighthouse db migrate command. For instructions on how to downgrade, see the Database Migrations section of the Lighthouse Book.

More details on the pubkey optimisation are found in the PR: #5897.

🐋 No more -portable tarballs or -modern images

There are no more -portable tarballs attached to this release, and the -modern Docker images on Docker Hub will no longer be updated. Both have been deprecated since v5.2.0 when portable builds became the default everywhere.

For portable binary users:

  • Download the latest .tar.gz for your platform. It will continue to work exactly as before.

For modern Docker image users:

  • Use the :latest tag, or the :v5.3.0 tag. It will be just as fast as the previously supplied -modern image.

📝 HTTP API /eth/v1/beacon/deposit_snapshot to use JSON response by default

The /eth/v1/beacon/deposit_snapshot now returns JSON response by default (instead of SSZ) if a header is not specified, for consistency with other beacon APIs.

See: #5813.

🐧 Jemalloc enabled by default on non-Windows targets

jemalloc is now necessary on Linux with the introduction of tree-states for performance reasons. The jemalloc feature is now enabled by default on non-Windows targets.

See: #5995.

🔓 Removal of signed validator client responses

Signing of validator client HTTP responses has been removed. This feature had limited utility and adoption, and removing it has simplified VC API token management. Unless you were relying on the Signature header in VC responses, no action is required.

See: #5529.

💵 Fee recipient required with --always-prepare-payload

The --suggested-fee-recipient flag is now required when --always-prepare-payload is set. This feature is likely only used by block builders and relays.

See: #6079.

Update Priority

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

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

See Update Priorities for more information about this table.

Lighthouse BNs and VCs from v5.0.0, v5.1.x, v5.2.x and v5.3.x are compatible. However, we recommend that users update both the VC and BN to v5.3.0 if upgrading.

All Changes

  • Release v5.3.0 (#6194)
  • Broadcast VC requests in parallel and fix subscription error (#6223)
  • Don't expect DAS config in HTTP spec response (#6221)
  • Downgrade re-org log to INFO (#6220)
  • patch quick-protobuf (#6217)
  • Work around UB in LMDB bindings (#6211)
  • Avoid acquiring another read lock while holding one to avoid potential deadlock (#6200)
  • Swap finalized chains based on processed batches (#6203)
  • Use upgradable read lock for pubkey cache (#6190)
  • default vc to block v3 endpoint and deprecate block-v3 flag (#5292)
  • Remove timeout locks (#6048)
  • limit dial concurrency on Swarm (#6184)
  • Fix lighthouse account validator subcommands help text (#6091)
  • Iterate expired components from the da_checker (#5895)
  • Rust 1.80.0 lints (#6183)
  • Fix unexpected Marking peer disconnected in DHT (#6140)
  • Add DataColumnSidecar gossip topic and message handling (#6147)
  • Use then instead of then_some when checking upnp_enabled to avoid useless UPnP query (#6170)
  • Remove backwards compatibility for el_offline and is_optimstic (#6168)
  • Show correct total validator count during validator recovery (#6153)
  • Update msrv to 1.78.0 (#6159)
  • Revert --image-download always flag to avoid CI getting rate limited (#6163)
  • Siren Docs Upgrade (#5979)
  • Remove use of ethers core (#5301)
  • level down libp2p quic accept and close errors (#6148)
  • Make proposer duties work pre-genesis (#4789)
  • Update is_available check to support PeerDAS. (#6076)
  • Add PeerDAS presets and configs. (#6127)
  • Upgrade openssl to address cargo audit issue (#6143)
  • Attempt to fix flaky basic sim test (#6134)
  • Delete --builder-profit-threshold flag (#6131)
  • Return syncing on HTTP when sync is stalled (#6129)
  • Add an option to keep existing enclave when starting local testnet (#6065)
  • Add requires suggested-fee-recipient flag when always-prepare-payload is set (#6079)
  • Disable slasher default features (#6115)
  • Fix proposer-nodes cli flag name (#6125)
  • chore: update the trusted setup to match the consensus-specs version (#6117)
  • Track store metrics by DB column (#6041)
  • Ef tests electra (#5758)
  • Remove VC response signing and fix HTTP error handling (#5529)
  • Remove trace logging (#6103)
  • Measure consensus verification time (#6089)
  • Add block_gossip Beacon API events (#5864)
  • Bump default logfile-max-number to 10 (#6092)
  • Beacon api + validator electra (#5744)
  • Enable the o...
Read more

Kyle

28 Jun 04:02
v5.2.1
9e12c21
Compare
Choose a tag to compare

Summary

This medium-priority release contains bugfixes for issues identified in v5.2.0. Users who have experienced sync issues with v5.2.0 are recommended to upgrade.

The list of bugfixes includes:

  • Prevention of forwards sync stalls after restarting, through more robust handling of peer disconnects and errors (#5969, #5945, #5993).
  • Prevention of backfill sync stalls (#5969).
  • Removal of unnecessary warnings for stale blobs propagated on gossip by other clients (#5935). The log message WARN Could not verify blob sidecar for gossip. Ignoring the blob sidecar should no longer be seen.
  • Correct sizing of the slasher database for the growing validator sets on mainnet and Holesky (#5934).

Breaking Changes

There are no breaking changes between v5.2.0 and v5.2.1. Please see the release notes for v5.2.0 if you are upgrading from a prior 5.x.x release.

Known Issues

Nethermind v1.26.0 and Reth v1.0.0 engine_getClientVersionV1 bug

Nethermind v1.26.0 and Reth v1.0.0 include an implementation of engine_getClientVersionV1 which is not compliant with the API specification and does not work with Lighthouse. We recommend upgrading Nethermind to v1.27.0. At time of writing there is no compatible Reth release available.

The warning generated by a non-compliant implementation is:

WARN Execution engine call failed error: InvalidClientVersion("Input must be exactly 8 characters long (excluding any '0x' prefix)"), service: exec

This warning can be safely ignored, although it may cause a slight degradation to node performance as Lighthouse flip-flops the EL's state between healthy and unhealthy.

See NethermindEth/nethermind#7013 and paradigmxyz/reth#9137 for details.

Source builds without jemalloc will OOM on Linux

We've become aware of OOM issues for Lighthouse builds from source that disable the jemalloc feature on Linux. This is due to GNU malloc not handling the allocation of many tree nodes as well as other allocators (jemalloc, the Windows allocator). If you are building from source for Linux ensure that you include jemalloc in FEATURES (enabled by default). If you build the Dockerfile use --build-arg FEATURES=jemalloc (not enabled by default).

This will be addressed in v5.3.0 by an already-merged PR: #5995

Update Priority

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

User Class Beacon Node Validator Client
Staking Users Medium Low
Non-Staking Users Medium ---

See Update Priorities for more information about this table.

Lighthouse BNs and VCs from v5.0.0, v5.1.x and v5.2.x are compatible. However, we recommend that users update both the VC and BN to v5.2.1 if upgrading.

All changes

  • Release v5.2.1 (testing branch) (#5989)
  • Attempt to continue lookups after adding peers (#5993)
  • Remove all batches related to a peer on disconnect (#5969)
  • Update slasher DB size and Lighthouse book (#5934)
  • Ensure all handler events are covered (#5945)
  • report failed requests from RPC after being clear from rate limiter but not yet sent. (#5942)
  • Lower tolerance of stale blobs on gossip (#5935)
  • chore: simplify method to generate a random valid blob (#5946)
  • chore: change impl Into<T> for U to impl From<U> for T (#5948)
  • Update CI nethermind and LLVM versions (#5933)
  • Fix cargo audit: update curve25519-dalek (#5959)
  • Update local testnet documentation (#5896)
  • Fix SelfRateLimiter breaks the sequence of delayed_requests. (#5903)
  • Verify inclusion proof should not be fallible (#5787)
  • Remove extern crate (#5922)
  • Add FUNDING.json for DRIPS (#5932)
  • Fix CommandLineTest port conflicts on CI (#5908)
  • Remove some easy Electra TODOs (#5928)
  • Rust 1.79 lints (#5927)
  • Fix panic on startup in debug build (#5917)
  • Fix skip-ci on stable (#5909)
  • Beta compiler fixes (#5916)

See full changelog here.

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

Tree People

11 Jun 03:20
v5.2.0
f1d88ba
Compare
Choose a tag to compare

Summary

This medium-priority release contains a major improvement to how states are managed in memory (tree-states) and an optimised epoch and block processing implementation. The beacon node now uses considerably less memory than the previous version thanks to more efficient state caching. It also includes other performance improvements, bug fixes and groundwork preparation for the upcoming Electra fork and PeerDAS upgrade.

memory

Notable changes in this release:

  • Epoch and block processing have been optimized, resulting in improved performance and security. The optimized epoch processing implementation is accompanied by a proof of correctness detailed in this post (#5279).
  • Introduce in-memory tree-states, providing more efficient state caching, improved overall performance and reduced memory usage (#5533).
  • Add server-sent events (SSE) for proposer slashing, attester slashing, and BLS to execution change (#5327, #5857).
  • Encode execution engine client version in block graffiti to probe execution layer client diversity, more details below (#5290).
  • Add new timing metrics for block availability to better reflect the actual delays caused by blob processing and other factors (#5510).
  • Update the proposer re-orgs feature to align with the latest spec (#5417).
  • Introduce new containers, presets, and configurations in preparation for the Electra fork (#5122, #5606, #5607, #5630, #5652, #5653).
  • Refactor and simplifications in sync and block lookup logic in preparation for PeerDAS (#5561, #5562, #5563, #5564, #5583, #5655).
  • Add a newbuilder-header-timeout flag, which allows for configuring timeouts for the get builder header API call (#5857)
  • Fix attestations not getting added to the aggregation pool. This improves the quality of aggregate attestations Lighthouse produces (#5863).

There are a few breaking changes. Please see the section on Breaking Changes below.

In-memory tree states (#5533)

This release introduces the memory-only portion of tree-states, marking a significant upgrade to state management. The beacon node can now hold ~64 times more states with approximately the same memory cost, significantly reducing memory usage and minimizing spikes. This enhancement also improves overall performance. Consequently, the default value for the --state-cache-size beacon node flag has been increased from 3 to 128. We recommend that users who had manually adjusted the state cache size try the new larger default.

This development brings us closer to the full implementation of tree-states (both in-memory and on-disk) in Lighthouse, an upgrade that has been in progress for over two years. Stay tuned for the remaining tree-states upgrades and their benefits in upcoming releases!

Encode execution engine client version in block graffiti (#5290)

To support better analysis of execution client diversity, Lighthouse now supports the engine_getClientVersionV1 API.

If no user graffiti is provided, and the method is supported by the execution node, then Lighthouse will use graffiti of the form:

  • GEab48LH5c2c

Here GE is the execution client shortcode corresponding to Geth, ab48 are the first 4 characters of Geth's commit hash, LH indicates Lighthouse, and 5c2c are the first 4 character's of Lighthouse's commit hash.

We expect execution clients to gradually gain support for this new API. Check your execution client's release notes for details. Note that the latest version of Nethermind (v1.26.0) includes a broken version of this API, so we recommend waiting until v1.27.0 is released before upgrading.

portable builds for Docker and binary releases (#5614, #5615)

All Lighthouse binaries and Docker images are now built using portable BLS. For backwards-compatibility *-modern Docker tags still exist as aliases. Similarly, binary tarballs for the -portable suffix are also attached to this release, but are identical to the unsuffixed binary tarballs. We recommend that automated update scripts switch over to using the :latest Docker image or the unsuffixed binary tarballs so we can remove the redundancy and streamline the available images and binaries in a future release.

The switch to portable is motivated by a change in the blst library to use runtime detection of hardware features. This puts portable builds on par for performance with modern builds, and simplifies the release update process for users and devs.

builder-header-timeout flag (#5857)

Lighthouse previously used a static timeout of 1.0s when requesting an execution payload header from an mev-boost relay. The new builder-header-timeout flag for the beacon node allows this value to be adjusted using a value in milliseconds, e.g. --builder-header-timeout 500 will set the timeout to 0.5s. This can be beneficial if communicating with a faraway relay which sometimes times out.

Breaking Changes

Several breaking changes have been made to CLI flags as part of a cleanup and modernisation effort. Please make sure to remove or update these flags as part of upgrading. The changes are described in detail below but the affected flags are:

  • VC: latency-measurement-service
  • BN: progressive-balances, http-spec-fork, http-allow-sync-stalled, self-limiter, inbound-rate-limiter.

We have avoided making breaking changes to the database schema in this release so that users can upgrade and downgrade more simply. The next release will include a number of on-disk changes.

🌲 If you were already running the tree-states beta (v5.1.222-exp), then the database schema for v5.2.0 is not compatible with your existing database. You need to either stay on that release, or wait for a new version that incorporates the on-disk changes (maybe v5.3.0). Unfortunately a re-sync will be required eventually, as the stable form of the tree-states DB will be different from the beta.

🦀 Minimum Supported Rust Version 1.77 🦀

The minimum supported Rust version (MSRV) has been updated to 1.77.0. Users who compile from source (i.e., not Docker or pre-built binary users) will receive the following error if they are using an earlier version of Rust:

lighthouse v5.2.0 (/home/sigp/lighthouse/lighthouse) cannot be built because it requires rustc 1.77 or newer

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

Deprecated latency-measurement-service flag

The validator client --latency-measurement-service flag is now deprecated in favour of --disable-latency-measurement-service. By default the latency measurement service is enabled, and can be disabled by providing the new --disable-latency-measurement-service flag. Using the prior --latency-measurement-service flag will have no effect and will become a hard error in a future release. This change was made as part of an upgrade to a new version of our CLI parsing library, Clap, in #5273.

Deprecated http-spec-fork and http-allow-sync-stalled flags (#5500)

Lighthouse now ignores the http-spec-fork value and keeps the default spec fork, as this option was rarely used.

The http-allow-sync-stalled flag has been deprecated and is now the default behaviour as Lighthouse now prioritises liveness for the HTTP API. These flags will be removed in upcoming releases.

See #5430 and #5500 for more details.

Deprecated --progressive-balances flag (#5279)

This optimisation (--progressive-balances=fast) is now the default and cannot be disabled. See #5279 for more details. A warning will be logged if the flag is provided, and in a future version we will remove the flag entirely.

Removed block processing metrics (#5510)

The block import metrics have been reworked to more accurately measure import delays and provide more insights into block availability and readiness for attestation.

The following block processing metrics have been removed:

  • beacon_block_observed_slot_start_delay_time
  • beacon_block_imported_observed_delay_time
  • beacon_block_head_imported_delay_time
  • beacon_block_head_slot_start_delay_time
  • beacon_block_head_slot_start_delay_exceeded_total
  • beacon_block_gossip_propagation_verification_delay_time
  • beacon_block_gossip_slot_start_delay_time
  • beacon_block_last_delay
  • beacon_block_gossip_arrived_late_total
  • beacon_blob_gossip_propagation_verification_delay_time
  • beacon_blob_gossip_slot_start_delay_time
  • beacon_blob_last_delay

For more details and the updated metrics, see #5510.

MDBX excluded from the Docker build (#5614)

The slasher-mdbx feature is no longer included as part of our standard Docker images.

The default slasher backend was changed from MDBX to LMDB in Lighthouse v4.3.0 for more stability and has been the recommended option. Advanced users can still use the slasher-mdbx feature with a custom Docker build.

Modified self-limiter flag

_This flag is mostly useful for developers and probably shouldn't be part of y...

Read more

Gul'karna

28 Mar 07:43
v5.1.3
3058b96
Compare
Choose a tag to compare

🔥 Hotfix 🔥

This hotfix release includes several bug fixes related to the handling of blobs. Upgrading to this release should result in less cache misses, lower peak memory usage, reduced bandwidth and greater stability.

This is a medium priority release.

We recommend that all users upgrade at their convenience. We particularly recommend upgrading if you are seeing either of these logs:

Mar 13 10:26:50.229 WARN Peer sent invalid response to parent request., reason: ExtraBlocksReturned, peer_id: ..., service: sync

Mar 24 23:20:56.001 WARN Did not advance head state reason: Err(HeadMissingFromSnapshotCache(...)), service: state_advance

Summary

Duplicate lookup bugfix

Since the release of v5.1.2 we have found a few more cases where Lighthouse could issue an excessive number of lookup requests for the same block. This would manifest as a warning log, followed by a loss of peers due to downscoring:

Mar 13 10:26:50.229 WARN Peer sent invalid response to parent request., reason: ExtraBlocksReturned, peer_id: ..., service: sync

The additional cases were related to concurrent lookups, and have been addressed in pull request #5488.

Blob RPC bugfix

We found that when Lighthouse imported a block after a blob RPC request, it was failing to run fork choice. This had several knock-on effects: the head state would be absent from the snapshot cache, which would lead to cache misses and further errors. In some instances, the cache misses would lead to a spike in memory usage while snapshots were reloaded from disk.

Fork choice now runs after all block imports (implemented in #5475). Some snapshot cache misses may still occur. We are planning to further improve snapshot handling in a future release.

Attestation cache size

The size of the seen-cache for attestation gossip has been updated in pull request #5493 to accomodate the wider validity window for attestations post-Deneb. This should result in reduced load by preventing old duplicate attestations from being reprocessed.

Light client server

The experimental light client server has been updated with Capella and Deneb support in pull request #4946. We do not yet recommend enabling it on mainnet. We will provide an update on the light client server in a future release.

Breaking Changes

None.

🐛 Known Issues 🐛

There is an outstanding bug in Lighthouse's UPnP implementation:

It can be worked around by running with --disable-upnp and manual port forwarding. We are planning another release containing a fix soon.

Update Priority

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

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

See Update Priorities for more information about this table.

Lighthouse BNs and VCs from v5.0.0 and v5.1.0/v5.1.1/v5.1.2/v5.1.3 are intercompatible. However, we recommend that users update both the VC and BN to v5.1.3 if upgrading.

All Changes

  • Release v5.1.3 (#5497)
  • Bump duplicate cache time (#5493)
  • Lookup log improvements (#5491)
  • Single lookup improvements (#5488)
  • Run fork choice after RPC blob import (#5475)
  • Move gossipsub into a separate crate (#5401)
  • Fix double counted metrics (#5476)
  • Add Capella & Deneb light client support (#4946)
  • Delete PRE_CAPELLA_ENGINE_CAPABILITIES (#5406)
  • Built-in documentation text width in Lighthouse book (#5394)
  • Verify whether validators really are unknown during sync committee duty API request (#5174)
  • Make sure all geth processes are killed when stopping a local testnet (#5383)
  • Delete unused incomplete_processing_components (#5418)
  • Fix one and hide all beacon-processor flags (#5397)
  • chore: reduce scope of commitment (#5426)
  • chore: remove stale comment (#5440)
  • fix: tail command typo (#5456)
  • Improve parent lookup logging (#5451)

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

Handsome Bigfoot

22 Mar 00:48
v5.1.2
5ce1619
Compare
Choose a tag to compare

🔥 Hotfix 🔥

This hotfix release includes a block lookup efficiency fix, a fix to stop propagation of slashings for attesters who have already been slashed, a fix to the --disable-upnp flag, and a couple of metric fixes.

This is a medium priority release.

We recommend you upgrade if you are seeing this log:

Mar 13 10:26:50.229 WARN Peer sent invalid response to parent request., reason: ExtraBlocksReturned, peer_id: ..., service: sync

Summary

We've had a couple reports of users seeing this log:

Mar 13 10:26:50.229 WARN Peer sent invalid response to parent request., reason: ExtraBlocksReturned, peer_id: ..., service: sync

This is a result of Lighthouse making duplicate requests to peers for the same block. This has been fixed in (#5432). If you are seeing this log, we recommend you upgrade.

Other client teams have notified us that Lighthouse propagates slashing messages for validators that have already been slashed. These messages are useless from the network's perspective so should be ignored (thanks @nisdas from Prysm). This has been resolved in (#5385).

The --disable-upnp was inneffective previously, but this has been fixed in (#5449).

Additionally this hotfix includes fixes to some metrics (#5404 and #5427).

Breaking Changes

None.

Update Priority

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

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

See Update Priorities for more information about this table.

Lighthouse BNs and VCs from v5.0.0 and v5.1.0/v5.1.1/v5.1.2 are intercompatible. However, we recommend that users update both the VC and BN to v5.1.2 if upgrading.

All Changes

Changes relative to v5.1.1:

  • Release v5.1.2 (#5453)
  • disable libp2p upnp (#5449)
  • Fix gossip verification of duplicate attester slashings (#5385)
  • fix NAT nat_open metrics report (#5427)
  • Fix peer count metrics (#5404)
  • Improvements and Fixes in Documentation, Including Corrected Command Usage (#4998)
  • Fix Rust beta compiler errors 1.78.0-beta.1 (#5439)
  • Dedup parent blob requests (#5432)
  • Add attestation simulator, blobs info and some updates to Lighthouse Book (#5364)

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

EXPERIMENTAL Tree States v5.1.222-exp

12 Mar 03:18
v5.1.222-exp
2cd0e60
Compare
Choose a tag to compare
Pre-release

Disclaimer

⚠️ You should not run this alpha release supporting mainnet validators ⚠️

If you are looking for the latest Lighthouse release please go to https://github.com/sigp/lighthouse/releases/latest.

Summary

This is an alpha release of upcoming changes to Lighthouse which improve disk usage and state management.

We are making this alpha release so that expert users may help us test these improvements. It is not backwards-compatible and not recommended for mainnet validators. Our current plan is to stabilise these changes shortly after the Deneb hard fork on mainnet.

For the adventurous, the main benefits are:

  • Smaller disk footprint for archive nodes, <200GB total. Use checkpoint sync, and set the flag --reconstruct-historic-states.
  • Smaller disk footprint for regular nodes, <30GB.
  • Faster handling of re-orgs.
  • Faster restarts.
  • Less disk I/O.

We hope that this is useful for running block explorers and supporting other beacon chain analytics. We are using it internally at SigP to run some of our analytics.

This release includes all the latest changes from v5.1.0 including Deneb on mainnet and the fixes for attestation performance. Check out the release notes for v5.1.0 for more information. Note that we do not recommend running mainnet validators using tree-states.

There are no substantial tree-states specific changes in this release, as we have been focussed on cleaning up the branch and preparing it for review & merge.

⚠️ Backwards Compatibility ⚠️

This release is backwards compatible with v5.0.111-exp, v4.6.222-exp, v4.6.111-exp, v4.5.444-exp, v4.5.222-exp and v4.4.111-exp.

This release is not backwards compatible with stable Lighthouse or tree-states releases prior to v4.4.111-exp. It uses a different database schema (v24) for which no automatic upgrade or downgrade is implemented. We intend to implement an automatic upgrade process once the new schema is finalized. A re-sync might be required to run future versions of tree-states. This release's schema might be the final iteration.

Please only run this release if you are willing to re-sync now, and again in several weeks/months.

There are several breaking changes to CLI flags:

  • The secret dummy flag --unsafe-and-dangerous-mode must be supplied. This is to prevent accidental upgrades to the release by users who don't know what they're getting themselves into. Unfortunately we found that far too many people accidentally ran previous tree-states releases on mainnet.
  • The flags --slots-per-restore-point and --historic-state-cache-size are deprecated and no longer necessary due to the freezer database using hierarchical diffs.
  • The flag --db-migration-period from tree-states v4.2.0-999-exp release is gone and has been replaced by --epochs-per-migration (same name as stable).

Known Issues

Expect a few sharp edges. Some things you may run into:

  • WARN Parent state is not advanced is logged excessively during sync. This is harmless, albeit annoying.
  • Memory usage may be a bit higher when using the parallel HTTP cache (see #5112).

If you observe any panics, crashes or major performance regressions, please open an issue!

Building from source

Build the v5.1.222-exp tag.

All Changes

  • Tree states release v5.1.222-exp
  • Fix macOS build by bumping cc (#5392)

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

Summer Bigfoot

12 Mar 05:55
v5.1.1
2a3c709
Compare
Choose a tag to compare

🔥 Hotfix 🔥

This hotfix release is identical to v5.1.0, with the exception of some build system fixes for macOS.

If you have already updated to v5.1.0 then you can ignore this release.

The rest of the release notes describe the changes relative to v5.0.0.

Summary

This high-priority release includes a fix to ensure validator's messages are published on the network (#5357). Additionally, out-of-memory crashes are prevented by reducing peak memory usage (#5270).

This release (v5.1.1) and the previous v5 releases (v5.1.0 and v5.0.0) support the Deneb upgrade on March 13, 2024 at 13:55 UTC. Users who are already running v5.0.0 are not required to upgrade to v5.1.0/v5.1.1 before Deneb, but it is recommended.

Notable changes in this release:

  • Lighthouse now caches 3 states by default, rather than 4. The value can be modified with --state-cache-size (#5270)
  • The PATCH /lighthouse/validators/{validator_pubkey} VC HTTP API endpoint has been optimised (#5064)
  • A bug that prevented messages from being published to peers has been fixed (#5357)
  • Performance for NAT'd nodes has been improved (#5345)
  • Concurrent block production has been optimised, providing benefits for SSV operators (#5365)
  • A bug in the validator client which resulted in WARN Not enough time for a discovery search has been fixed (#5305)

Breaking Changes

Breaking Change: Milagro BLS is no longer supported

Lighthouse no longer supports the Milagro BLS library (#5298). This library was not recommended for production use and had to be manually enabled at compile time. We do not expect this change to impact users.

Reminder: Minimum Supported Rust Version 1.75.0

The minimum supported Rust version (MSRV) was updated to 1.75.0 in a previous release (v5.0.0). Users who compile from source (i.e., not Docker or pre-built binary users) will receive the following error if they are using an earlier version of Rust:

lighthouse v5.1.0 (/home/sigp/lighthouse/lighthouse) cannot be built because it requires rustc 1.75 or newer

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

Update Priority

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

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

See Update Priorities for more information about this table.

Lighthouse BNs and VCs from v5.0.0 and v5.1.0/v5.1.1 are intercompatible. However, we recommend that users update both the VC and BN to v5.1.0/v5.1.1.

All Changes

Changes relative to v5.0.0:

  • Release v5.1.1 (#5396)
  • Fix macOS build by updating cc (#5393)
  • Release v5.1.0 (#5372)
  • Downgrade rate limited log (#5381)
  • Optimise concurrent block production (#5368)
  • Fix AddrInUse error in cli tests (#5266)
  • Explicit peers (#5333)
  • Improve peer performance for NAT'd nodes (#5345)
  • Reduce load on validator subscription channels (#5311)
  • Update CI actions to alleviate deprecation warnings (#5321)
  • Correct the metrics for topic subscriptions (#5344)
  • Attempt to publish to at least mesh_n peers (#5357)
  • Fix 5288: Doesn't POST if attestations is empty. (#5318)
  • Fix block v3 header decoding (#5366)
  • Delete milagro library (#5298)
  • Update dependency whoami (#5351)
  • Fix duties override bug in VC (#5305)
  • Improve logging around peer scoring (#5325)
  • bump ethereum_serde_utils (#5341)
  • Drop address_change_broadcast (#5287)
  • Optimise no-op PATCH ops in VC HTTP API (#5064)
  • Recognize the Caplin consensus client (#5304)
  • improve libp2p connected peer metrics (#5314)
  • remove exit-future (#5183)
  • remove nat module and use libp2p upnp (#4840)
  • Track multiaddr in connection status (#5308)
  • Fix typos and make block hash calculation public (#5275)
  • Add a cli option for the snapshot cache size (#5270)
  • Delete ancient, unused HTTP docs (#5281)
  • Run apt update before install. (#5295)
  • Add build instructions for Fedora/RHEL/CentOS (#5225)

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

Bigfoot

11 Mar 02:27
v5.1.0
10a38a8
Compare
Choose a tag to compare

Summary

This high-priority release includes a fix to ensure validator's messages are published on the network (#5357). Additionally, out-of-memory crashes are prevented by reducing peak memory usage (#5270).

This release (v5.1.0) and the previous release (v5.0.0) both support the Deneb upgrade on March 13, 2024 at 13:55 UTC. Users who are already running v5.0.0 are not required to upgrade to v5.1.0 before Deneb, but it is recommended.

Notable changes in this release:

  • Lighthouse now caches 3 states by default, rather than 4. The value can be modified with --state-cache-size (#5270)
  • The PATCH /lighthouse/validators/{validator_pubkey} VC HTTP API endpoint has been optimised (#5064)
  • A bug that prevented messages from being published to peers has been fixed (#5357)
  • Performance for NAT'd nodes has been improved (#5345)
  • Concurrent block production has been optimised, providing benefits for SSV operators (#5365)
  • A bug in the validator client which resulted in WARN Not enough time for a discovery search has been fixed (#5305)

Breaking Changes

Breaking Change: Milagro BLS is no longer supported

Lighthouse no longer supports the Milagro BLS library (#5298). This library was not recommended for production use and had to be manually enabled at compile time. We do not expect this change to impact users.

Reminder: Minimum Supported Rust Version 1.75.0

The minimum supported Rust version (MSRV) was updated to 1.75.0 in a previous release (v5.0.0). Users who compile from source (i.e., not Docker or pre-built binary users) will receive the following error if they are using an earlier version of Rust:

lighthouse v5.1.0 (/home/sigp/lighthouse/lighthouse) cannot be built because it requires rustc 1.75 or newer

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

Update Priority

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

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

See Update Priorities for more information about this table.

Lighthouse BNs and VCs from v5.0.0 and v5.1.0 are intercompatible. However, we recommend that users update both the VC and BN to v5.1.0.

All Changes

  • Release v5.1.0 (#5372)
  • Downgrade rate limited log (#5381)
  • Optimise concurrent block production (#5368)
  • Fix AddrInUse error in cli tests (#5266)
  • Explicit peers (#5333)
  • Improve peer performance for NAT'd nodes (#5345)
  • Reduce load on validator subscription channels (#5311)
  • Update CI actions to alleviate deprecation warnings (#5321)
  • Correct the metrics for topic subscriptions (#5344)
  • Attempt to publish to at least mesh_n peers (#5357)
  • Fix 5288: Doesn't POST if attestations is empty. (#5318)
  • Fix block v3 header decoding (#5366)
  • Delete milagro library (#5298)
  • Update dependency whoami (#5351)
  • Fix duties override bug in VC (#5305)
  • Improve logging around peer scoring (#5325)
  • bump ethereum_serde_utils (#5341)
  • Drop address_change_broadcast (#5287)
  • Optimise no-op PATCH ops in VC HTTP API (#5064)
  • Recognize the Caplin consensus client (#5304)
  • improve libp2p connected peer metrics (#5314)
  • remove exit-future (#5183)
  • remove nat module and use libp2p upnp (#4840)
  • Track multiaddr in connection status (#5308)
  • Fix typos and make block hash calculation public (#5275)
  • Add a cli option for the snapshot cache size (#5270)
  • Delete ancient, unused HTTP docs (#5281)
  • Run apt update before install. (#5295)
  • Add build instructions for Fedora/RHEL/CentOS (#5225)

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

EXPERIMENTAL Tree States v5.0.111

23 Feb 05:11
v5.0.111-exp
20f53e7
Compare
Choose a tag to compare
Pre-release

Disclaimer

⚠️ You should not run this alpha release supporting mainnet validators ⚠️

If you are looking for the latest Lighthouse release please go to https://github.com/sigp/lighthouse/releases/latest.

Summary

This is an alpha release of upcoming changes to Lighthouse which improve disk usage and state management.

We are making this alpha release so that expert users may help us test these improvements. It is not backwards-compatible and not recommended for mainnet validators. Our current plan is to stabilise these changes shortly after the Deneb hard fork on mainnet.

For the adventurous, the main benefits are:

  • Smaller disk footprint for archive nodes, <200GB total. Use checkpoint sync, and set the flag --reconstruct-historic-states.
  • Smaller disk footprint for regular nodes, <30GB.
  • Faster handling of re-orgs.
  • Faster restarts.
  • Less disk I/O.

We hope that this is useful for running block explorers and supporting other beacon chain analytics. We are using it internally at SigP to run some of our analytics.

This release includes all the latest changes from v5.0.0 including Deneb on mainnet. Check out the release notes for v5.0.0 for more information. Note that we do not recommend running mainnet validators using tree-states.

There are no substantial tree-states specific changes in this release, as we have been focussed on cleaning up the branch and preparing it for review & merge.

⚠️ Backwards Compatibility ⚠️

This release is backwards compatible with v4.6.222-exp, v4.6.111-exp, v4.5.444-exp, v4.5.222-exp and v4.4.111-exp.

This release is not backwards compatible with stable Lighthouse or tree-states releases prior to v4.4.111-exp. It uses a different database schema (v24) for which no automatic upgrade or downgrade is implemented. We intend to implement an automatic upgrade process once the new schema is finalized. A re-sync might be required to run future versions of tree-states. This release's schema might be the final iteration.

Please only run this release if you are willing to re-sync now, and again in several weeks/months.

There are several breaking changes to CLI flags:

  • The secret dummy flag --unsafe-and-dangerous-mode must be supplied. This is to prevent accidental upgrades to the release by users who don't know what they're getting themselves into. Unfortunately we found that far too many people accidentally ran previous tree-states releases on mainnet.
  • The flags --slots-per-restore-point and --historic-state-cache-size are deprecated and no longer necessary due to the freezer database using hierarchical diffs.
  • The flag --db-migration-period from tree-states v4.2.0-999-exp release is gone and has been replaced by --epochs-per-migration (same name as stable).

Known Issues

Expect a few sharp edges. Some things you may run into:

  • WARN Parent state is not advanced is logged excessively during sync. This is harmless, albeit annoying.
  • Memory usage may be a bit higher when using the parallel HTTP cache (see #5112).

If you observe any panics, crashes or major performance regressions, please open an issue!

Building from source

Build the v5.0.111-exp tag.

All Changes

  • Tree states release v5.0.111-exp (#5276)
  • Fix tree-states tests (#5277)
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • Remove progressive balances mode (#5224)
  • Use epoch cache in block packing (#5223)
  • Delete unused epoch processing code (#5170)
  • Delete lighthouse db diff (#5171)

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

Diablo Verde

21 Feb 04:02
v5.0.0
b5bae6e
Compare
Choose a tag to compare

Summary

This release is mandatory for all Mainnet and Gnosis users. It enables the Deneb/Cancun ("Dencun") upgrade on:

  • Mainnet (#5233), which will occur on March 13, 2024, at 01:55:35 pm UTC; and
  • Gnosis (#5242), which will occur on March 11, 2024, at 06:30:20 pm UTC.

Any node which is not updated to a Lighthouse v5.x.x release by this time will stop following the chain and will need to be resynced. For stakers, this would result in missed rewards and penalties.

All Mainnet Lighthouse users must update their BNs and VCs to v5.0.0 by March 13, 2024, 01:55:35pm UTC.

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

  • Improve network parameters and increase target peer count to 100 (#5177)
  • Address high memory usage and out of memory issue (#5175,#5250)
  • Fix bug in --builder-proposals (#5151)
  • Optional slashing protection for remote keys (#4981)
  • Add distributed flag to VC to enable support for DVT (#4867)
  • Fix backfill stalling (#5192)
  • Fix off-by-one in backfill signature verification (#5120)
  • Handle unknown head during attestation publishing (#5010)

There are a few breaking changes. Please see the section on Breaking Changes below.

Mainnet Deneb/Cancun ("Dencun") Upgrade

The Deneb/Cancun ("Dencun") upgrade will occur on mainnet at:

  • Epoch 269568
  • March 13, 2024, 01:55:35pm UTC

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

Release Is Reliable, Dencun-Ready v5.x.x Release
v4.6.0 ❌ No
v5.0.0 ✅ Yes
Any release after v5.0.0 ✅ Yes

To be Dencun ready, user will need to:

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

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

Lighthouse will start periodically emitting the following logs two weeks before the Dencun upgrade (28th of February):

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

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

Note that with blobs (EIP-4844) being added in Dencun, each node is expected to consume additional disk space, with an expected average of 50 GiB, up to a maximum of 103GiB for blobs.

Fix bug in VC flag --builder-proposals (#5151)

There was a bug in the logic for the --builder-proposals VC flag introduced in Lighthouse v4.6.0. Rather than setting the boost to 0 when builder-propsals was false, it was setting it to 0 when builder-proposals was true. Users have been using --builder-boost-factor 100 as a workaround until now.

This issue has been resolved and the preference can now be enabled with the --builder-proposals.

See #5151.

⚠️ Breaking Changes ⚠️

This release contains breaking changes, all of which are detailed below.

Validator Liveness endpoint now accepts string encoded indices

The standard liveness endpoint (/eth/v1/validator/liveness) was introduced in the previous version of Lighthouse but did not accept string-encoded validator indices, which is part of the specification. This has been fixed and will require updating both BN and VC to the latest version.

See #5184.

Minimum Supported Rust Version 1.75.0

The minimum supported Rust version (MSRV) has been updated to 1.75.0. Users who compile from source (i.e., not Docker or pre-built binary users) will receive the following error if they are using an earlier version of Rust:

lighthouse v5.0.0 (/home/sigp/lighthouse/lighthouse) cannot be built because it requires rustc 1.75 or newer

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

Deleted custom endpoint lighthouse/beacon/states/{state_id}/ssz

This endpoint is redundant and no longer required, because equivalent endpoints now exist in the standard beacon API.

See #5065.

New mandatory --checkpoint-blobs flag for manual checkpoint syncing

For users checkpoint syncing manually (previously using --checkpoint-block and --checkpoint-state), there is now an additional mandatory --checkpoint-blobs flag for users to supply the checkpoint blobs. Users using the --checkpoint-sync flag are not affected.

See #5252.

Deprecated BN flag --disable-duplicate-warn-logs

This BN flag was introduced in Lighthouse v4.6.0. It has now become the default behaviour in this version, where gossipsub duplicate logs are debug level instead of warn, thus deprecating this flag.

See #5163.

Update Priority

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

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

See Update Priorities more information about this table.

All Changes

  • Release v5.0.0 (#5254)
  • Revert libp2p metrics (#4870) (#5265)
  • Deactivate RPC Connection Handler after goodbye message is sent (#5250)
  • Deprecate env_log flag in tracing layer (#5228)
  • Download checkpoint blobs during checkpoint sync (#5252)
  • Add Deneb fork epoch for Gnosis (#5242)
  • check the da cache and the attester cache in responding to RPC requests (#5138)
  • Verify Versioned Hashes During Optimistic Sync (#4832)
  • enable doppelganger tests for deneb (#5137)
  • Handle unknown head during attestation publishing (#5010)
  • Add distributed flag to VC to enable support for DVT (#4867)
  • Schedule Deneb on mainnet (#5233)
  • Quieten gossip republish logs (#5235)
  • Drop gossipsub stale messages when polling ConnectionHandler. (#5175)
  • validator liveness endpoint should accept string encoded indices (#5184)
  • Update to consensus spec v1.4.0-beta.6 (#5094)
  • Update to warp v0.3.6 (#5172)
  • Remove curve25519-dalek patch (#5214)
  • Improve database compaction and prune-states (#5142)
  • chore(docs): amend port guidance to enable QUIC support (#5029)
  • improve libp2p connected peer metrics (#4870)
  • Fix backfill stalling (#5192)
  • Improve network parameters (#5177)
  • increment peer per topic count on graft messages (#5212)
  • Downgrade gossipsub duplicate logs (#5163)
  • Fix failing cargo-udeps (#5203)
  • Update external LLVM version in preparation for Rust 1.76. (#5179)
  • Small typo in testing config (#5178)
  • Optional slashing protection for remote keys (#4981)
  • Remove unused js file in Lighthouse book (#5164)
  • Fix incorrect value set for blobs_by_root_request rpc limit. (#5181)
  • Fix Rust beta compiler errors (1.77) (#5180)
  • Config for web3signer keep-alive (#5007)
  • Re-disable block verification tests in debug (#5155)
  • Update gnosis bootnodes (#4986)
  • feat(config): add chiado bootnodes ENRs (#4727)
  • Properly log panics with slog (#5075)
  • Some updates in Lighthouse Book (#5000)
  • Prevent QUIC logs when quic is disabled (#5071)
  • Test backfill (#5109)
  • Add a note about validator monitoring in Lighthouse book (#5143)
  • Add gossipsub as a Lighthouse behaviour (#5066)
  • Move from igd to igd-next (#5068)
  • Update deterministic subnets upgrade to allow prefix computation (#4959)
  • Fix bug in --builder-proposals (#5151)
  • Compute recent lightclient updates (#4969)
  • Assume Content-Type is json for endpoints that require json (#4575)
  • Delete temporary mitigation for equivocation via RPC (#5037)
  • Make lcli docker image portable (#5069)
  • Update to the docs (#5106)
  • fix: update outdated links to external resources (#5018)
  • Remove custom SSZ beacon states route (#5065)
  • Fix off-by-one in backfill sig verification (#5120)
  • Increase attestation cache sizes (#5135)
  • #5102 Fix load_state_for_block_production metric mapping (#5103)
  • Update Mergify commit message template (#5126)
  • Replace backticks with single quotes (#5121)

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-v5.0.0-x86_64-apple-darwin.tar.gz [PGP Sign...
Read more