Ethereum consensus client in Rust
:warning: You should not run this pre-release supporting mainnet validators. This pre-release is, however, required for Goerli validators :warning:
If you are looking for the latest Lighthouse release please go to https://github.com/sigp/lighthouse/releases/latest.
Something went wrong with signing this particular release, but the signatures have now been fixed and the binaries are provided in .tar.gz
format as usual.
This is a pre-release that enables the Deneb hard fork on Goerli (https://github.com/sigp/lighthouse/pull/5036). The Deneb hard fork will occur at epoch 231680 on Goerli, which is Jan 17th, 2024 06:32:00 AM UTC.
All Goerli users must update their nodes to v4.6.0-rc.0 by Jan 17th, 2024 06:32:00 AM UTC.
This release also includes a variety of new features and a few breaking changes. Please see the section on Breaking Changes below.
Some extensive changes have been made to the networking components in this release. We have focused on a number of performance and structural changes to the gossipsub protocol and discovery mechanism. Some of the main gossipsub changes are listed in issue (https://github.com/sigp/lighthouse/issues/4918). An overview of the primary changes are:
The new produce block V3 API has been standardized across clients (https://github.com/ethereum/beacon-APIs/pull/339). This endpoint allows us to give validators more control over whether to prefer a local or builder payload during proposals. The validator client will not use this new endpoint by default, it must be enabled by adding --produce-block-v3
to the validator client. With the advent of V3, the following flag will no longer be supported:
--builder-profit-threshold
Users of mev-boost
can use the -min-bid
flag to achieve the same functionality. An equivalent but more expressive config will be possible in an upcoming Lighthouse release (https://github.com/sigp/lighthouse/issues/5039). This config will also be able to restore functionality of the following flag, which is also being deprecated:
--always-prefer-builder-payload
Per-validator configuration of whether to use an external builder is still possible via the builder_proposals
field. This will be extended to allow each validator to specify at what profit threshold a builder payload should be used in an upcoming release (https://github.com/sigp/lighthouse/issues/5039).
The block V3 endpoint also allows validators working with multiple beacon nodes (e.g. via Vouch) to compare rewards between beacon nodes before selecting payloads. This is done by exposing the consensus rewards of the block, as well as the execution rewards of the payload directly to the validator.
On the block V2 endpoints, if a validator is using the blinded block flow and gets exceptionally unlucky, falling back to another beacon node at an inopportune time, it could miss its proposal. This is no longer possible with the V3 endpoint.
Recent changes in the execution APIs have also provided a new should_override_builder
field along with each local payload. Lighthouse will check if this is set to true
and return a local payload if it is. This field allows the execution layer to monitor the mempool and look for signs of ongoing censorship from block builders. It can signal its suggestion to use a local payload to combat censorship to the consensus layer to select a local payload in these scenarios.
Validator clients can now be configured to publish messages to all connected beacon nodes using the --broadcast
flag. This allows users to improve redundency when publishing messages related to validator duties. The flag can be configured with specific message types (attestations
,sync-committe
,blocks
, subscriptions
). It can also be configured to make sure subscriptions are not sent to all beacon nodes (--broadcast none
). This is equivalent to the --disable-run-on-all
flag. Thanks @uvizhe for the contribution!
More information is available in the Redundancy section of the Lighthouse book.
(see https://github.com/sigp/lighthouse/pull/4920)
The validator client now uses the standard liveness endpoint for doppelganger protection (see https://github.com/sigp/lighthouse/pull/4853). This makes the Lighthouse VC's doppelganger protection compatible with any beacon node that implements the standard liveness endpoint.
The Lighthouse BN supports the following new HTTP APIs:
POST
APIs for fetching validators & balances in bulk: https://github.com/sigp/lighthouse/pull/4872
GET /eth/v1/beacon/blob_sidecars
for Deneb (https://ethereum.github.io/beacon-APIs/#/Beacon/getBlobSidecars)The Lighthouse VC now uses the liveness endpoint from the standard API, rather than a custom Lightouse endpoint (#4853). This only affects the --enable-doppelganger-protection
feature.
When Doppelganger protection is enabled, Lighthouse VCs from this version will not work with Lighthouse BNs prior to v4.4.1 (released Sept. 2023).
To support Deneb, this release includes an automatic upgrade from v17 to v18.
To downgrade, follow the instructions in the book for Database Migrations.
Genesis sync will no longer work without the use of --allow-insecure-genesis-sync
. Checkpoint sync should always be preferred to protect yourself from long-range attacks. Additionally, genesis sync is not compatible with data availability checks that are added in Deneb. On chains that have been running for less than ~2 weeks, genesis sync will still work without --allow-insecure-genesis-sync
, so this change won't impact local testnets or short-lived testnets.
In order to support archive nodes via checkpoint sync, both of the following flags should be used: --reconstruct-historic-states
and --genesis-backfill
, along with any other flags normally used for database customization.
The following flags have been deprecated in prior releases and are being removed. Lighthouse will not start up if any are included in the startup command.
--spec
for lighthouse bn
--eth1-endpoint
for lighthouse bn
--eth1-endpoints
for lighthouse bn
--beacon-node
for lighthouse vc
--server
for lighthouse vc
--delete-lockfiles
for lighthouse vc
--allow-unsynced
for lighthouse vc
--strict-fee-recipient
for lighthouse vc
--merge
for lighthouse bn
--count-unrealized
for lighthouse bn
--count-unrealized-full
for lighthouse bn
--http-disable-legacy-spec
for lighthouse bn
--minify
for lighthouse account validator slashing-protection import/export
(see https://github.com/sigp/lighthouse/pull/4906)
The following flags should be removed from setups. If they are not removed, they will have no effect.
--builder-profit-threshold
flagPrefer using the -min-bid
flag in mev-boost
. An alternative flag in Lighthouse will be provided in an upcoming release (see https://github.com/sigp/lighthouse/issues/5039).
--always-prefer-builder-payload
flagAn alternative flag in Lighthouse will be provided in an upcoming release (see https://github.com/sigp/lighthouse/issues/5039).
--disable-run-on-all
flagThis flag has been superseded by the --broadcast
flag. Use --broadcast none
to disable broadcast to all nodes (see https://github.com/sigp/lighthouse/pull/4920).
The minimum supported Rust version has been udpated from 1.69.0 to 1.73.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 v4.6.0-rc.0 (/home/sigp/lighthouse/lighthouse)` cannot be built because it requires rustc 1.73.0 or newer
Users can typically obtain the latest version of Rust by running rustup update
.
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Low | Low |
Non-Staking Users | Low | --- |
See Update Priorities more information about this table.
The Beacon Node must be running v4.4.1 or later to support a VC running this release. We recommend updating both the VC and BN to the same release.
This release is high-priority for Goerli users. Goerli users must update both the VC and BN.
IncorrectAttestationSource
error in attn. simulator (#5048)Dockerfile
. (#5002)mergify
merge queue configuration file (#4917)lcli mock-el
(#4587)LightClientBootstrap
, LightClientFinalityUpdate
, LightClientOptimisticUpdate
and light client events (#3954)MAX_BLOBS_PER_BLOCK
from Holesky config. (#4955)clippy::manual_let_else
lint (#4889)--builder
(#4754)lcli
on self-hosted runners (#4874)make lint
to development environment section in Book (#4866).github
(CI cleanup) (#4696)vendor
directory to .gitignore
(#4819)blob_sidecar
event to SSE (#4790)bors.toml
(#4795)serde(default)
to max_per_epoch_activation_churn_limit
in spec config so that VC is compatible to older BN versions. (#4783)See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.6.0-rc.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.0-rc.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.0-rc.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.0-rc.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.6.0-rc.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.6.0-rc.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.0-rc.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.0-rc.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.6.0-rc.0 | sigp/lighthouse |
:warning: You should not run this alpha release supporting mainnet validators :warning:
If you are looking for the latest Lighthouse release please go to https://github.com/sigp/lighthouse/releases/latest.
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:
--reconstruct-historic-states
.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 important bugfixes compared to the previous v4.5.222-exp release, and a few new features:
unstable
).Compared to the v4.2.990-exp release the main changes are:
--hierarchy-exponents
in lighthouse bn --help
.--reconstruct-historic-states
to store historic states, even when syncing from genesis. For more information see the section of the v4.4.1 release notes on State Pruning.milhouse
). This release should now be on-par or faster than stable
Lighthouse when it comes to importing blocks.This release is based on v4.5.0, and also includes the other features from v4.5.0 (and v4.4.1, and v4.3.0). Please see the v4.5.0 release notes for details of breaking changes: https://github.com/sigp/lighthouse/releases/tag/v4.5.0.
This release is backwards compatible with 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:
--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.--slots-per-restore-point
and --historic-state-cache-size
are deprecated and no longer necessary due to the freezer database using hierarchical diffs.--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 upstream).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.If you observe any panics, crashes or major performance regressions, please open an issue!
Build the v4.5.444-exp
tag.
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.5.444-exp-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.444-exp-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.444-exp-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.444-exp-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.5.444-exp-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.5.444-exp-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.444-exp-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.444-exp-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.5.444-exp | sigp/lighthouse |
:warning: You should not run this alpha release supporting mainnet validators :warning:
If you are looking for the latest Lighthouse release please go to https://github.com/sigp/lighthouse/releases/latest.
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:
--reconstruct-historic-states
.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 just a handful of changes compared to the previous v4.4.111-exp release:
Compared to the v4.2.990-exp release the main changes are:
--hierarchy-exponents
in lighthouse bn --help
.--reconstruct-historic-states
to store historic states, even when syncing from genesis. For more information see the section of the v4.4.1 release notes on State Pruning.milhouse
). This release should now be on-par or faster than stable
Lighthouse when it comes to importing blocks.This release is based on v4.5.0, and also includes the other features from v4.5.0 (and v4.4.1, and v4.3.0). Please see the v4.5.0 release notes for details of breaking changes: https://github.com/sigp/lighthouse/releases/tag/v4.5.0.
This release is backwards compatible with 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:
--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.--slots-per-restore-point
and --historic-state-cache-size
are deprecated and no longer necessary due to the freezer database using hierarchical diffs.--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 upstream).Expect a few sharp edges. Some things you may run into:
aarch64
(ARM) support is currently broken. As a result there are no binaries or Docker images for ARM.WARN Parent state is not advanced
is logged excessively during sync. This is harmless, albeit annoying.If you observe any panics, crashes or major performance regressions, please open an issue!
Build the v4.5.222-exp
tag.
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.5.222-exp-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.5.222-exp | sigp/lighthouse |
This is a low-priority release which primarily contains the Holesky re-launch configurations. Some minor features and fixes are also available for mainnet and testnet users.
Feature and bugfixes include:
--http
flag (or equivalent) when dependant flags are used (#4674, #4772)Experimental QUIC support has been added to Lighthouse with #4577.
By default Lighthouse will attempt to use QUIC on the UDP port one higher than the --port
value. For example, the default value for --port
is 9000, so Lighthouse will open port 9001 for QUIC. Although it's not required, we encourage users to update their port-forwarding to include this UDP port, too.
Lighthouse's use of QUIC should be transparent to users, but it maybe disabled with the --disable-quic
flag.
Users who compile from source should ensure they update Rust and checkout and pull the stable
branch before building:
rustup update
git checkout stable && git pull
The Holesky testnet experienced a failed genesis on the 15th of September 2023 due to a misconfiguration. The configuration issue has been fixed and a new Holesky launch is planned for September 28th 11:55am (UTC). This release contains the fixed configuration.
Users who participated in the failed Holesky launch should delete their existing data directories (e.g. ~/.lighthouse/holeksy
) before running v4.5.0 otherwise they may fail to follow the new chain. It is particularily important to ensure that any existing Holesky validator slashing protection database (slashing_protection.sqlite
) is removed to prevent it interfering with the new chain.
Mainnet users do not need to take any action for the Holesky relaunch.
This release contains breaking changes, all of which are detailed below.
data
wrapper to the voluntary exit HTTP API endpointAs per #4635, Lighthouse was divergent from the beaconAPIs specification for the /eth/v1/validator/<pubkey>/voluntary_exit
endpoint. This was fixed in #4679 by ensuring the JSON response is wrapped in a top-level data
object.
--http
(or equivalent) flag is required if dependant flags are usedPreviously, Lighthouse would allow HTTP server configurations flags like --http-address
if the HTTP server was not enabled. The flags would be ignored and cause confusion for users and developers.
With #4674 Lighthosue will now return an error on startup if HTTP server configuration flags are provided when the HTTP server is not enabled. The HTTP server can be enabled using the --http
, --staking
or --gui
flags.
The minimum supported Rust version has been set to 1.69.0. See "Compiling from Source" for directives.
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Low | Low |
Non-Staking Users | Low | --- |
See Update Priorities more information about this table.
The Beacon Node may be updated without also updating the Validator Client. However we recommend upgrading both components for consistency. Holesky users must update both the BN and VC.
quinn-proto
to address rustsec vuln (#4767)See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.5.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.5.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.5.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.5.0 | sigp/lighthouse |
:warning: You should not run this alpha release supporting mainnet validators :warning:
If you are looking for the latest Lighthouse release please go to https://github.com/sigp/lighthouse/releases/latest.
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:
--reconstruct-historic-states
.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.
Compared to the previous v4.2.990-exp release the main changes are:
--hierarchy-exponents
in lighthouse bn --help
.--reconstruct-historic-states
to store historic states, even when syncing from genesis. For more information see the section of the v4.4.1 release notes on State Pruning.milhouse
). This release should now be on-par or faster than stable
Lighthouse when it comes to importing blocks.This release is based on v4.4.1, and also includes the other features from v4.4.1 (and v4.3.0).
This release is not backwards compatible with stable Lighthouse or prior tree-states
releases. 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:
--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.--slots-per-restore-point
and --historic-state-cache-size
are deprecated and no longer necessary due to the freezer database using hierarchical diffs.--db-migration-period
from the previous tree-states
release is gone and has been replaced by --epochs-per-migration
(same name as upstream).Expect a few sharp edges. Some things you may run into:
aarch64
(ARM) support is currently broken. As a result there are no binaries or Docker images for ARM.WARN Parent state is not advanced
is logged excessively during sync. This is harmless, albeit annoying.If you observe any panics, crashes or major performance regressions, please open an issue!
Build the v4.4.111-exp
tag.
See pre-built binaries documentation.
A Docker image for x86_64 only is available on DockerHub as sigp/lighthouse:v4.4.111-exp
.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
EpochCache
(#4429)See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.4.111-exp-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.111-exp-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.111-exp-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.111-exp-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.111-exp-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.111-exp-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.4.111-exp | sigp/lighthouse |
This is a low-priority release. It contains several minor bug fixes and performance improvements which we recommend rolling out on mainnet nodes at your convenience. This release also includes support for the Holešky testnet, with genesis on 15 September 2023.
Note that there is no v4.4.0 release due to a bug found late in the release cycle. The bug was fixed in PR #4687, which is included in this release.
The highlights of v4.4.1 are:
lighthouse validator-manager
command for managing validators on a running validator client. Documentation can be found in a new chapter of the Lighthouse book: https://lighthouse-book.sigmaprime.io/validator-manager.html.--network holesky
(#4653).--network chiado
(#4530).We have identified a minor bug in the code related to state pruning that can cause an error message to be logged for a limited time after upgrading:
ERRO Missing chunk in forwards iterator
It can be safely ignored, as it does not impact the node's ability to follow the chain or perform validator duties. However, API queries for historic blocks & states may fail until the issue resolves itself. This only affects nodes with an existing database. Nodes with lower --slots-per-restore-point
will heal faster, and we expect the maximum time to heal to be around 8192 slots (~27 hours). The issue is being tracked in https://github.com/sigp/lighthouse/issues/4697.
Newly synced nodes will no longer store historic states by default. This applies both to checkpoint sync and genesis sync. Node operators may opt-in to historic state storage by reconstructing states with the --reconstruct-historic-states
flag.
Existing nodes will continue storing historic states newer than the checkpoint from which they synced. We are working on a command to prune historic states from existing nodes, which will likely be available in the next release.
The pruned status of a node can be determined using the /lighthouse/database/info
API, which will show the value of state_upper_limit
as 18446744073709551615
. For more details see #4610, #4663.
Support for the phase0
hard fork was added to the attestation rewards API. This required the addition of a new field for the inclusion_delay
, which has been standardised upstream in beacon-APIs
: https://ethereum.github.io/beacon-APIs/#/Rewards/getAttestationsRewards.
See #4474, #4520 for details.
Lighthouse will now return an HTTP 202 ACCEPTED
response when attempting to publish a block that is already known. This behaviour goes against the current beacon-APIs
spec, but is likely better for the majority of API consumers. Previously, a 400 BAD REQUEST
response could cause the caller (usually a validator client) to think that block publication had failed when it had not. We have begun a discussion to change the spec to allow the new error code.
The status code can also be set to a custom value using the flag --http-duplicate-block-status
. See https://github.com/sigp/lighthouse/pull/4655 for details.
The Lighthouse BN supports the following new HTTP APIs:
POST /eth/v{1,2}/beacon/blocks
(#4479).POST /eth/v{1,2}/beacon/blinded_blocks
(#4504).POST /eth/v1/validator/liveness/{epoch}
(#4343).GET /eth/v1/builder/states/{state_id}/expected_withdrawals
(#4390).This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Low | Low |
Non-Staking Users | Low | --- |
See Update Priorities more information about this table.
The Beacon Node may be updated without also updating the Validator Client. However we recommend upgrading both components for consistency.
web3signer_tests
timeouts (#4662)--gui
flag in help text (#4660)ForkChoice
: remove an impossible case for parent_checkpoints
(#4626)metrics::VALIDATOR_DUTIES_SYNC_HTTP_POST
for post_validator_duties_sync
(#4617)attester_duties
: remove unnecessary case (#4614)head_block_root
field (#4590)maybe_update_best_child_and_descendant
: remove an impossible case (#4583)concurrency
property to cancel workflows (#4572)init_from_beacon_node
(#4613)optional_eth2_network_config
(#4611)state.get_validator
(#4608)BeaconProcessor
for API requests (#4462)validator-manager
(#3502)exchangeTransitionConfiguration
functionality (#4517)lcli::generate_bootnode_enr
and some tests (#4485)--epochs-per-migration
(#4236)BeaconProcessor
into a new crate (#4435)See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.4.1-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.1-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.1-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.1-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.4.1-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.4.1-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.1-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.4.1-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.4.1 | sigp/lighthouse |
This is a low-priority release for Mainnet, Goerli and Sepolia users. However, this release schedules the Capella upgrade for Gnosis (#4433) on UTC Tue 01/08/2023, 11:34:20, therefore this release is high-priority for Gnosis users.
For all networks, this release contains new features, bug-fixes and optimisations including:
broadcast_validation
APIs (#4316)PATCH lighthouse/validators/{validator_pubkey}
(#4417)validator/register_validator
batch size (#4399)There are two major reductions to bandwidth use in this release. The first change in #3493 benefits all nodes, and works by ignoring redundant attestation aggregates received via gossip. This brings Lighthouse to parity with other clients which had already implemented this change.
The second change in #4304 overhauls the handling of attestation subnet subscriptions. Previously Lighthouse would subscribe to 1 attestation subnet for each connected validator, up to the total of 64. Now, every Lighthouse node will subscribe to 2 subnets total. For nodes with 0-2 validators, this is a minor change, while for nodes with multiple validators this represents a significant reduction.
Large staking operators who are accustomed to being subscribed to all subnets may want to opt back in using the --subscribe-all-subnets
flag. Although this increases bandwidth significantly, it also improves block rewards by a few percent, and can provide stability for the node and the network.
The breaking changes in this release only apply to users who use the --slasher
flag.
Lighthouse will now set --slasher-broadcast true
by default. This only applies to users who run with the --slasher
flag and means that any slashings detected will be broadcast to the network immediately.
Previously, Lighthouse would store the slashing privately in the hope that it may include it in a block of its own. Whilst this behaviour is profit-maximising, it is only effective if there are no slashers on the network running with --slasher-broadcast true
. In practice we've observed that almost all slashings are immediately broadcast, so the profit-maximising strategy is unlikely to yield any additional rewards. Broadcasting by default prioritises network health and resilience, and we recommend that users switch from profit-maximising to broadcasting.
The old behaviour can be achieved with --slasher-broadcast false
.
The default slasher backend has been changed back to LMDB. This only applies to users who run with the --slasher
flag.
If an MDBX database exists and the MDBX backend is enabled then MDBX will continue to be used. Our release binaries and Docker images will continue to include MDBX for as long as it is practical, so users of these should not notice any difference.
The main benefit is for users compiling from source. These users no longer have to struggle to compile MDBX and deal with the compatibility issues that arise.
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Low | Low |
Non-Staking Users | Low | --- |
See Update Priorities more information about this table.
This release is high-priority for Gnosis users. Gnosis users must update both the Beacon Node and Validator Client.
For mainnet users, the Beacon Node may be updated without also updating the Validator Client. However we recommend upgrading both components for consistency.
Reqwest
errors (#4336)openssl
deps (#4421)lint-fix
task to automatically fix some Clippy warnings. (#4419)validator/register_validator
batch size via the CLI (#4399)max-skip-slots
checks (#4403)CountUnrealized
(#4357)CRIT
in the VC for builder timeouts (#4366)libpq
typo in beacon.watch README (#4356)libpq-dev
and docker
to the to the list of additional requirements for developers in the Book (#4282)db inspect --output values
option to support dumping raw db values (#4324)See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.3.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.3.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.3.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.3.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.3.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.3.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.3.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.3.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.3.0 | sigp/lighthouse |
:warning: You should not run this alpha release supporting mainnet validators :warning:
If you are looking for the latest Lighthouse release please go to https://github.com/sigp/lighthouse/releases/latest.
This is an alpha release of upcoming changes to Lighthouse which improve disk usage and state management.
For more information about this family of releases, please see the v3.4.0-tree.1
release notes.
Compared to the previous release the main changes are:
This release is not backwards compatible with stable Lighthouse or prior tree-states
releases. It uses a different database schema (v23) 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 will be required to run future versions of tree-states
.
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:
--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.--slots-per-restore-point
and --historic-state-cache-size
are deprecated and no longer necessary due to the freezer database using hierarchical diffs.Expect a few sharp edges. Some things you may run into:
aarch64
(ARM) support is currently broken. As a result there are no binaries for ARM.WARN Parent state is not advanced
is logged excessively during sync. This is harmless, albeit annoying.If you observe any panics, crashes or major performance regressions, please open an issue!
Build the v4.2.990-exp
tag.
See pre-built binaries documentation.
A Docker image for x86_64 only is available on DockerHub as sigp/lighthouse:v4.2.990
.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
This is a medium-priority release for Mainnet users. It contains important improvements to the resilience of Lighthouse, however there is no immediate urgency to upgrade.
Users who connect their VC to multiple BNs will have reduced risk of missed attestations and orphaned blocks when there is an offline EE (#4295).
Support for "proposer-only" BNs has been added to Lighthouse. Although we don't recommend this functionality for most stakers, it may be useful for enterprise operations or in the case of a large-scale attack on Ethereum. Read about this advanced feature in the documentation.
This release contains many notable features, optimisations and bug fixes:
lighthouse/logs
SSE endpoint to the VC API to expose logging (#4074)To reduce complexity in the fork choice algorithm, the database schema has been upgraded to v17 (#4265). The schema upgrade will be applied automatically upon upgrading and should not take more than a few seconds.
To downgrade, follow the instructions in the book for Database Migrations.
Users may downgrade at any time.
After a checkpoint sync, Lighthouse will only backfill to the most recent weak subjectivity checkpoint unless the --genesis-backfill
flag is provided (#4082). The previous behaviour was to always backfill to the genesis block.
The --genesis-backfill
flag is not required for staking. Nodes performing "archive" duties may wish to add this flag so they may download and store the entire history of the chain.
Omitting the --genesis-backfill
flag for new BN databases will result in reduced disk usage and reduced network bandwidth during sync. Nodes which are already synced to genesis will maintain their history, even if the --genesis-backfill
flag is not present. In a future release we will enable existing nodes to prune old blocks from their database so that they can achieve reduced disk usage without a re-sync.
The Lighthouse VC will now detect when the BN indicates that its EE (e.g., Geth, Nethermind, Besu, Erigon, etc) is offline. The VC will then prefer a BN with an online EE (#4295).
This functionality is only possible when the VC has multiple (aka "fallback") BNs provided via the --beacon-nodes
flag.
If there is no alternative BN with an online EE, the VC will go back to the previous behaviour of attempting to perform its duties regardless of the EE status.
Windows users may fail to compile Lighthouse if their LLVM version is earlier than 15.0 (#4220). Upgrading can typically be achieved with choco upgrade llvm
.
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 more information about this table.
The Beacon Node may be updated without also updating the Validator Client. However we recommend upgrading both components for consistency.
shuffling_cache
(#4296)el_offline
and use it in the VC (#4295)See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.2.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.2.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.2.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.2.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.2.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.2.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.2.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.2.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.2.0 | sigp/lighthouse |
This is a high-priority release for Mainnet users. It fixes an issue which caused excessive CPU usage shortly after the Mainnet Capella upgrade (#4183).
Users on v4.0.1 or earlier should upgrade as soon as possible. This release is less important for users already running v4.0.2-rc.0; that release already contains an effective fix. However the fix in this release is more accurate so we recommend that v4.0.2-rc.0 users upgrade to this release at their next convenience.
We expect the conditions that caused excessive CPU usage are unlikely to return, however we recommend users upgrade to bolster the resilience of the Ethereum network.
This release also contains new improvements that were not present in v4.0.1 or v4.0.2-rc.0:
/eth/v1/debug/fork_choice
HTTP endpoint was added (#4003)PATCH lighthouse/validators/{pubkey}
endpoint has been optimised (#4126)--disable-backfill-rate-limiting
flag (#3936)--disable-peer-scoring
flag has been added for developer usage (#4135)With this release we are also encouraging users to re-enable mev-boost and re-orgs if they had previously disabled them. The latency issues with the MEV relays have resolved, and re-orgs should be more reliable now that improvements to gossip have been rolled out by other clients. If you experience a missed block or failed re-org running Lighthouse v4.1.0 please reach out.
Users who compile from source should ensure they update Rust and checkout and pull the stable
branch before building:
rustup update
git checkout stable && git pull
The minimum supported Rust version has been set to 1.68.2 to address a serious bug in prior Rust releases (see #4204 for more information).
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 v4.1.0 (/home/karlm/lighthouse/lighthouse)` cannot be built because it requires rustc 1.68.2 or newer
Users can typically obtain the latest version of Rust by running rustup update
.
The HTTP API has been updated to include references to the finalized checkpoint (#3753).
This aligns Lighthouse with the standard BeaconAPIs, which added these fields in https://github.com/ethereum/beacon-APIs/pull/254.
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | High | Low |
Non-Staking Users | Medium | --- |
See Update Priorities more information about this table.
The Beacon Node may be updated without also updating the Validator Client. However we recommend upgrading both components for consistency.
ExecutionOptimisticForkVersionedResponse
type (#4160)beacon.watch
(#3362)finalized
to HTTP API responses (#3753)update_validators
by decrypting key cache only when necessary (#4126)See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v4.1.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.1.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.1.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.1.0-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.1.0 | sigp/lighthouse |