Skip to content

Releases: sigp/lighthouse

EXPERIMENTAL Tree States v4.6.222

31 Jan 04:30
v4.6.222-exp
25bcd2a
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 v4.6.0 including Deneb on Sepolia, Holesky and Chiado. Check out the release notes for v4.6.0 for more information.

In terms of tree-states specific changes, we have:

  • Support for lighthouse db prune-states (#5097).
  • Support for changing the hierarchy-exponents after pruning states.
  • Support for hierarchy-exponents that do diffs within a single epoch (e.g. --hierarchy-exponents "0,2,4,6,8").
  • Bugfix for database corruption during backfill sync (#5144).

⚠️ Backwards Compatibility ⚠️

This release is backwards compatible with 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 v4.6.222-exp tag.

All Changes

  • Tree states v4.6.222-exp (#5147)
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • fsync during backfill to prevent DB corruption (#5144)
  • Fix tree-states sub-epoch diffs (#5097)
  • 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)
  • Fix new CLI tests for tree-states (#5132)
  • Update Mergify commit message template (#5126)
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • Replace backticks with single quotes (#5121)
  • Bump versions (#5123)
  • Expose additional builder booster related flags in the vc (#5086)
  • Prevent rolling file appender panic (#5117)
  • Correct multiple dial bug (#5113)
  • Fix indices filter in blobs_sidecar http endpoint (#5118)
  • Backfill blob storage fix (#5119)
  • Correct discovery logic (#5111)
  • Gossipsub fanout correction (#5110)
  • Reduce size of futures in HTTP API to prevent stack overflows (#5104)
  • Small Readability Improvement in Networking Code (#5098)
  • Upgrade shlex to 1.3.0 (#5108)
  • Stop Penalizing Peers in Parent SingleBlobLookup (#5096)
  • set deneb fork on testnets (#5089)
  • Hold HeadTracker lock until persisting to disk (#5084)
  • Fix PublishBlockRequest SSZ decoding (#5078)
  • Bump h2 (#5085)
  • Remove blobs_db when purge-db (#5081)
  • Add Deneb readiness logging (#5074)
  • Critical dependency logging (#4988)
  • add tracing metrics layer for dependency logging (#4979)
  • Fix zero port error (#5021)
  • docs: fix typos (#5059)
  • Update teku's bootnodes (#5052)
  • add content-type octet stream helper fn (#5062)
  • Fix asset paths in release CI upload job (#5056)
  • Don't error on inactive indices in att. rewards

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

Time Bird

25 Jan 02:13
v4.6.0
1be5253
Compare
Choose a tag to compare

Summary

This medium-priority release provides valuable features, performance improvements and bug fixes for mainnet users. It also enables the Deneb upgrade on the Sepolia, Holesky and Chiado testnets.

The Deneb upgrades are scheduled for:

  • Sepolia: Jan 30 2024 @ 22:51:12 (GMT+0)
  • Chiado: Jan 31 2024 @ 18:15:40 (GMT+0)
  • Holesky: Feb 7 2024 @ 11:34:24 (GMT+0)

All Sepolia, Holesky and Chiado users must upgrade both their testnet VCs and BNs before the respective upgrade time. Failing to upgrade will require the user to manually resync their nodes.

This release also includes a variety of new features and a few breaking changes. Please see the section on Breaking Changes below.

Users who rely exclusively on builder blocks (e.g., RocketPool) should be sure to read the "Standard block V3 endpoint" section.

Standard block V3 endpoint

The new produce block V3 API has been standardized across clients (ethereum/beacon-APIs#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. This mode will be enabled by default in the future. With the advent of V3, the following BN flags will no longer be supported:

  • --builder-profit-threshold
  • --always-prefer-builder-payload

Please refer to the Breaking Changes section below for detailed information and necessary actions.

Per-validator configuration of whether to use an external builder is still possible via the builder_proposals field. This has been extended to allow each validator to specify one of the following:

  • builder_boost_factor: a percentage multiplier to apply to the builder's payload value when choosing between a builder proposal and a local proposal.
  • prefer_builder_proposals: a boolean flag to indicate preference for blocks constructed by builders, regardless of payload value.

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.

NOTE: If you are using --builder-proposals you must also set --builder-boost-factor 100 to work around a bug, see below.

Known Issues 🐞

There is a bug in the validator client flag --builder-proposals which causes the VC not to use builder proposals when the following conditions are met:

  • The flag --builder-proposals is set, and
  • The --produce-block-v3 flag is set, and
  • No other flags or configuration affecting the builder-boost-factor are set, e.g. --builder-boost-factor, --prefer-builder-proposals, or per-validator builder_boost_factor.

The bug has been identified and fixed in this PR which will part of our next release: #5151.

Until then, the workaround is to add --builder-boost-factor 100 to the validator client flags. The 100% setting is the intended default, and will cause Lighthouse to use the builder payload only when it is more profitable than a local payload. You may also set a different value (see Breaking Changes for more information on this flag).

Execution layer payload selection input

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 broadcast

Validator clients can now be configured to publish messages to all connected beacon nodes using the --broadcast flag. This allows users to improve redundancy when publishing messages related to validator duties. The flag can be configured with specific message types (attestations,sync-committee,blocks, subscriptions). It can also be configured to make sure subscriptions are not sent to all beacon nodes (--broadcast none). This replaces the now deprecated --disable-run-on-all flag. Thanks @uvizhe for the contribution!

More information is available in the Redundancy section of the Lighthouse book.

(see #4920)

Networking Improvements

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 (#4918). An overview of the primary changes are:

  • Removed gossipsub flood publishing (#4383) - Aimed to reduce message propagation latency and lighten the memory footprint
  • Upgraded libp2p to v0.53.* (#4935)
  • Enabled concurrent discovery RPC requests
  • Improved handling of slow peers at the gossipsub level
  • Handled memory allocations in message transmission in gossipsub
  • Improved prioritisation of messages in gossipsub

Standard Liveness Endpoint

The validator client now uses the standard liveness endpoint for doppelganger protection (see #4853). This makes the Lighthouse VC's doppelganger protection compatible with any beacon node that implements the standard liveness endpoint.

Major Changes

  • Deneb support, enabled on Sepolia, Holesky and Chiado (#5089)
  • Deneb support, enabled on Goerli (#5036)
  • Fix an OOM crash caused by a build-up of messages in gossipsub send queues (#4918)
  • Changes to builder vs local block preference flags (#4629, #5086)
  • Fixes an issue with blob storage after checkpoint sync (#5119)
  • Prevent database corruption that could occur while shutting down (#5084)
  • Other networking improvements (libp2p upgrade, disable flood publishing)
  • Checkpoint sync required by default (#5038)
  • New HTTP APIs
  • Database fixes for Holesky nodes (#4820, #4985)
  • Faster fork choice by default (#4971)
  • Faster block production, decreasing the chance of being reorged (#4925)
  • Validator client broadcast feature (#4920, https://lighthouse-book.sigmaprime.io/redundancy.html#broadcast-modes)
  • More efficient subscriptions in the validator client, which reduces load on machines with large numbers of validators (#4806)
  • Attestation simulator (#4880)
  • Missed block tracking (#4731)
  • Command to prune states from the database (#4835)
  • Fixes to rewards APIs (#4807, #4877)

New HTTP APIs

The Lighthouse BN supports the following new HTTP APIs:

⚠️ Breaking Changes ⚠️

VC and BN Compatibility

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).

Database Migration v19

To support Deneb, this release includes an automatic upgrade from v17 to v19.

Some Goerli users might notice a delay of one or two minutes when starting up for the first time after the upgrade. Lighthouse is correcting a issue with blob storage after checkpoint sync, no user intervention is required (see: #5119).

To downgrade, follow the instructions in the book for Database Migrations.

Checkpoint sync is required by default

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 a...

Read more

EXPERIMENTAL Tree States v4.6.111

12 Jan 04:14
v4.6.111-exp
9cd9243
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, <150GB 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 v4.6.0-rc.0 including Deneb-on-Goerli and a fix for the networking OOM. Check out the release notes for v4.6.0-rc.0 for more information.

In terms of tree-states specific changes, we have:

  • Bugfix to prevent database corruption caused by non-atomic writes & shutdown (#4975).
  • Optimisations for the HTTP API to better handle concurrent requests for the same data (#4879).
  • Bugfix for the rewards API (#4960).

⚠️ Backwards Compatibility ⚠️

This release is backwards compatible with 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.

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

Building from source

Build the v4.6.111-exp tag.

All Changes

  • Tree states release v4.6.111-exp
  • Add cache for parallel HTTP requests (#4879)
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • Remove stray println
  • Restore crash safety for database pruning (#4975)
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • Fix cache initialization in block rewards API (#4960)
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • Handle out-of-order forks in epoch cache (#4881)

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

Concerto

11 Jan 02:42
v4.6.0-rc.0
2e8e160
Compare
Choose a tag to compare
Concerto Pre-release
Pre-release

Disclaimer

⚠️ You should not run this pre-release supporting mainnet validators. This pre-release is, however, required for Goerli validators ⚠️

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.

Summary

This is a pre-release that enables the Deneb hard fork on Goerli (#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.

Networking Improvements

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 (#4918). An overview of the primary changes are:

  • Removed gossipsub flood publishing (#4383) - Aimed to reduce message propagation latency and lighten the memory footprint
  • Upgraded libp2p to v0.53.* (#4935)
  • Enabled concurrent discovery RPC requests
  • Improved handling of slow peers at the gossipsub level
  • Handled memory allocations in message transmission in gossipsub
  • Improved prioritisation of messages in gossipsub

Standard block V3 endpoint

The new produce block V3 API has been standardized across clients (ethereum/beacon-APIs#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 (#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 (#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.

Execution layer payload selection input

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 broadcast

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 #4920)

Standard Liveness Endpoint

The validator client now uses the standard liveness endpoint for doppelganger protection (see #4853). This makes the Lighthouse VC's doppelganger protection compatible with any beacon node that implements the standard liveness endpoint.

Major Changes

  • Deneb support, enabled on Goerli (#5036)
  • Fix an OOM crash caused by a build-up of messages in gossipsub send queues (#4918)
  • Other networking improvements (libp2p upgrade, disable flood publishing)
  • Checkpoint sync required by default (#5038)
  • New HTTP APIs
  • Database fixes for Holesky nodes (#4820, #4985)
  • Faster fork choice by default (#4971)
  • Faster block production, decreasing the chance of being reorged (#4925)
  • Validator client broadcast feature (#4920, https://lighthouse-book.sigmaprime.io/redundancy.html#broadcast-modes)
  • More efficient subscriptions in the validator client, which reduces load on machines with large numbers of validators (#4806)
  • Attestation simulator (#4880)
  • Missed block tracking (#4731)
  • Command to prune states from the database (#4835)
  • Fixes to rewards APIs (#4807, #4877)

New HTTP APIs

The Lighthouse BN supports the following new HTTP APIs:

⚠️ Breaking Changes ⚠️

VC and BN Compatibility

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).

Database Migration v18

To support Deneb, this release includes an automatic upgrade from v17 to v18.

To downgrade, follow the instructions in the book for Database Migrations.

Checkpoint sync is required by default

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.

Removed flags

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 #4906)

Deprecated flags

The following flags should be removed from setups. If they are not removed, they will have no effect.

Deprecated: --builder-profit-threshold flag

Prefer using the -min-bid flag in mev-boost. An alternative flag in Lighthouse will be provided in an upcoming release (see #5039).

Deprecated: --always-prefer-builder-payload flag

An alternative flag in Lighthouse will be provided in an upcoming rele...

Read more

EXPERIMENTAL Tree States v4.5.444

20 Oct 04:59
v4.5.444-exp
1aca484
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, <150GB 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 important bugfixes compared to the previous v4.5.222-exp release, and a few new features:

  • Fix for 3 potential consensus faults (d4f87ef). Only one could be triggered on a real network, and to our knowledge it has not yet been triggered. We are rolling out more fuzzing to ensure the new consensus code is bug-free prior to stabilisation.
  • ARM support restored! 🎉
  • Fix for Holesky state reconstruction after checkpoint sync (#4817).
  • Even better state caching, resulting in lower memory usage and less cache misses (#4833).
  • Deneb support (from unstable).

Compared to the v4.2.990-exp release the main changes are:

  • Updates to the freezer database schema. There are now less reads required per historic state, at the cost of greater disk usage. A mainnet archive node with the default configuration is now ~140GB. Historic state loads are around 5x faster in testing: 400ms instead of 2s in the worst case. A re-sync is required due to this change.
  • Configurable storage hierarchy. Diffs can now be stored on a per-slot basis, or less frequently than every epoch. We recommend using the default configuration, and haven't done enough testing of other configurations to provide space/speed estimates. See --hierarchy-exponents in lighthouse bn --help.
  • No historic states stored by default (same as v4.4.1). Please use --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.
  • Lots of optimisations, particularly to epoch-processing, block-processing and the underlying state library (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.

⚠️ Backwards Compatibility ⚠️

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:

  • 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 upstream).

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.

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

Building from source

Build the v4.5.444-exp tag.

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

EXPERIMENTAL Tree States v4.5.222

26 Sep 04:04
v4.5.222-exp
f1f76f2
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, <150GB 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 just a handful of changes compared to the previous v4.4.111-exp release:

  • Better state caching, resulting in lower memory usage and less cache misses (#4762)
  • Holesky 2.0 testnet support (from v4.5.0 upstream)
  • QUIC support (from v4.5.0 upstream)

Compared to the v4.2.990-exp release the main changes are:

  • Updates to the freezer database schema. There are now less reads required per historic state, at the cost of greater disk usage. A mainnet archive node with the default configuration is now ~140GB. Historic state loads are around 5x faster in testing: 400ms instead of 2s in the worst case. A re-sync is required due to this change.
  • Configurable storage hierarchy. Diffs can now be stored on a per-slot basis, or less frequently than every epoch. We recommend using the default configuration, and haven't done enough testing of other configurations to provide space/speed estimates. See --hierarchy-exponents in lighthouse bn --help.
  • No historic states stored by default (same as v4.4.1). Please use --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.
  • Lots of optimisations, particularly to epoch-processing, block-processing and the underlying state library (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.

⚠️ Backwards Compatibility ⚠️

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:

  • 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 upstream).

Known Issues

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!

Building from source

Build the v4.5.222-exp tag.

All Changes

  • Tree states release v4.5.222-exp (#4782)
  • Merge tag 'v4.5.0' into tree-states
  • Release v4.5.0 (#4768)
  • Fix cli options (#4772)
  • Fix release CI for self-hosted runners (#4770)
  • Move dependencies to workspace (#4650)

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

Little Dipper

25 Sep 08:13
v4.5.0
Compare
Choose a tag to compare

Summary

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:

  • Experimental QUIC support (#4577)
  • Start the VC HTTP API before genesis (#4714)
  • More checks and logging whilst waiting for genesis (#4730)
  • More SSZ support for BN HTTP API endpoints (#4534)
  • Update Holesky configs for re-launch (#4760)
  • Fix block and state queries whilst waiting for genesis (#4761)
  • Require the --http flag (or equivalent) when dependant flags are used (#4674, #4772)
  • Update the voluntary exit HTTP API method to comply with beaconAPIs (#4679)
  • Add new mainnet Teku bootnodes (#4724)

QUIC Support

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.

Compiling from Source

Users who compile from source should ensure they update Rust and checkout and pull the stable branch before building:

  • Most users can update Rust with rustup update
  • Checkout and pull the stable branch with git checkout stable && git pull

Holesky Re-launch

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.

Breaking Changes

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

Breaking Change: Add a data wrapper to the voluntary exit HTTP API endpoint

As 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.

Breaking Change: The --http (or equivalent) flag is required if dependant flags are used

Previously, 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.

Breaking Change: Minimum Supported Rust Version 1.69.0

The minimum supported Rust version has been set to 1.69.0. See "Compiling from Source" for directives.

Update Priority

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.

All Changes

  • Release v4.5.0 (#4768)
  • Fix cli options (#4772)
  • Fix release CI for self-hosted runners (#4770)
  • Move dependencies to workspace (#4650)
  • Use release workflow runners (#4765)
  • Add new teku bootnodes (#4724)
  • Update the voluntary exit endpoint to comply with the key manager specification (#4679)
  • require http and metrics for respective flags (#4674)
  • Bump quinn-proto to address rustsec vuln (#4767)
  • Update Holesky boot ENR (#4763)
  • Fix block & state queries prior to genesis (#4761)
  • Update holesky config for relaunch (#4760)
  • Add SSZ support to validator block production endpoints (#4534)
  • Fix genesis state download panic when running in debug mode (#4753)
  • Self hosted docker builds (#4592)
  • Fix local testnet to generate keys in the correct folders (#4752)
  • Update local testnet script (#4733)
  • Add more checks and logging before genesis (#4730)
  • Reuse fork choice read lock instead of re-acquiring it immediately (#4688)
  • Prevent port re-use in HTTP API tests (#4745)

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

EXPERIMENTAL Tree States v4.4.111

14 Sep 01:52
v4.4.111-exp
1b4bc88
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, <150GB 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.

Compared to the previous v4.2.990-exp release the main changes are:

  • Updates to the freezer database schema. There are now less reads required per historic state, at the cost of greater disk usage. A mainnet archive node with the default configuration is now ~140GB. Historic state loads are around 5x faster in testing: 400ms instead of 2s in the worst case. A re-sync is required due to this change.
  • Configurable storage hierarchy. Diffs can now be stored on a per-slot basis, or less frequently than every epoch. We recommend using the default configuration, and haven't done enough testing of other configurations to provide space/speed estimates. See --hierarchy-exponents in lighthouse bn --help.
  • Holesky testnet support (from v4.4.1 upstream).
  • No historic states stored by default (same as v4.4.1). Please use --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.
  • Lots of optimisations, particularly to epoch-processing, block-processing and the underlying state library (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).

⚠️ Backwards Compatibility ⚠️

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:

  • 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 the previous tree-states release is gone and has been replaced by --epochs-per-migration (same name as upstream).

Known Issues

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!

Building from source

Build the v4.4.111-exp tag.

Binaries

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

All Changes

  • Release v4.4.111-exp (#4729)
  • Restore custom image for Cross
  • Bump schema version to v24
  • Change default epochs-per-state-diff to 16
  • Attempt to fix flaky test
  • Disable ARM docker builds
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • Await listening address from libp2p in RPC tests setup (#4705)
  • Tree states to support per-slot state diffs (#4652)
  • Remove Node.js from release-tests CI job since we no longer use ganache (#4691)
  • Feat: siren faq update (#4685)
  • Fix some typos in "Advanced Networking" documentation (#4672)
  • Minor revision to Lighthouse Book on validator-manager (#4638)
  • Fix genesis state storage for genesis sync (#4589)
  • Fix deadlock in finalization migration (#4576)
  • Optimise mutations in single-pass epoch processing (#4573)
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • Single-pass epoch processing (#4483)
  • Merge remote-tracking branch 'origin/tree-states' into tree-states
  • Merge remote-tracking branch 'origin/unstable' into tree-states
  • Implement activation queue cache
  • Fix EpochCache handling in ef-tests (#4454)
  • Fix EpochCache handling in ef-tests
  • Tree states optimization using EpochCache (#4429)
  • Fix db-migration-period default (#4441)

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

Previous Leon

04 Sep 07:29
v4.4.1
Compare
Choose a tag to compare

Summary

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:

  • [NEW] Introduction of the 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.
  • Improved scheduling for HTTP requests (#4462). Lighthouse will now balance the load of HTTP requests against other important duties, and avoid becoming overwhelmed. We hope that this improves stability for nodes supporting a large number of validators or processing frequent HTTP queries.
  • Disk space savings for new nodes through state pruning (#4610, #4663).
  • Bugfix for backfill sync erroring upon completion (#4465).
  • Support for the Holešky testnet via --network holesky (#4653).
  • Support for the Chiado Gnosis testnet via --network chiado (#4530).

🐞 Known Issues 🐞

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 #4697.

⚠️ Breaking Changes ⚠️

Breaking Change: State pruning for new nodes

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.

Breaking Change: Inclusion delay in HTTP rewards API

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.

Breaking Change: HTTP status code for duplicate blocks

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 #4655 for details.

New HTTP APIs

The Lighthouse BN supports the following new HTTP APIs:

  • SSZ variant of POST /eth/v{1,2}/beacon/blocks (#4479).
  • SSZ variant of 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).

Update Priority

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.

All Changes

  • Release v4.4.1 (#4690)
  • Remove double-locking deadlock from HTTP API (#4687)
  • Release v4.4.0 (#4673)
  • Pin foundry toolchain version to fix stuck CI jobs
  • feat: add chiado (#4530)
  • Fix bug in block root storage (#4663)
  • Add Holesky (#4653)
  • Increase web3signer_tests timeouts (#4662)
  • Show --gui flag in help text (#4660)
  • Do not log slot clock error prior to genesis (#4657)
  • Send success code for duplicate blocks on HTTP (#4655)
  • update dependencies (#4639)
  • rust 1.72 lints (#4659)
  • Use lockfile with cross and fix audit fail (#4656)
  • Revive mplex (#4619)
  • Implement expected withdrawals endpoint (#4390)
  • Remove Antithesis docker build workflow (#4642)
  • Fix the link of anvil in lighthouse book (#4641)
  • Fix beacon-processor-max-workers (#4636)
  • ForkChoice: remove an impossible case for parent_checkpoints (#4626)
  • Remove checkpoint alignment requirements and enable historic state pruning (#4610)
  • Fix Prefer Builder Flag (#4622)
  • Update blst to 0.3.11 (#4624)
  • add metrics::VALIDATOR_DUTIES_SYNC_HTTP_POST for post_validator_duties_sync (#4617)
  • attester_duties: remove unnecessary case (#4614)
  • Don't kill SSE stream if channel fills up (#4500)
  • Fix disable backfill flag not working correctly (#4615)
  • Improve HTTP API error messages + tweaks (#4595)
  • ForkChoice: remove head_block_root field (#4590)
  • opt maybe_update_best_child_and_descendant: remove an impossible case (#4583)
  • Use the native concurrency property to cancel workflows (#4572)
  • Fix bug of init_from_beacon_node (#4613)
  • use account_manager::CMD instead of magic string (#4612)
  • remove optional_eth2_network_config (#4611)
  • minor optimize process_active_validator: avoid a call to state.get_validator (#4608)
  • align editorconfig with rustfmt (#4600)
  • Fix some typos (#4565)
  • Improve transport connection errors (#4540)
  • Use BeaconProcessor for API requests (#4462)
  • Add validator-manager (#3502)
  • Increase slashing protection test SQL timeout to 500ms (#4574)
  • Support SSZ request body for POST /beacon/blinded_blocks endpoints (v1 & v2) (#4504)
  • Update doppelganger note about sync committee contributions (#4425)
  • Shift networking configuration (#4426)
  • CommitteeCache.get_all_beacon_committees: set correct capacity to avoid realloc (#4557)
  • CommitteeCache.initialized: fail early if possible (#4556)
  • fix typo (#4555)
  • upgrade to libp2p 0.52 (#4431)
  • Deprecate exchangeTransitionConfiguration functionality (#4517)
  • Update Lighthouse book FAQ (#4510)
  • add ssz support in request body for /beacon/blocks endpoints (v1 & v2) (#4479)
  • Development feature flag - Disable backfill (#4537)
  • Add Eth Version Header (#4528)
  • Fix incorrect ideal rewards calculation (#4520)
  • Fix bug in lcli transition-blocks and improve pretty-ssz (#4513)
  • Restore upstream arbitrary (#4372)
  • Implement liveness BeaconAPI (#4343)
  • Add self-hosted runners v2 (#4506)
  • Phase 0 attestation rewards via Beacon API (#4474)
  • Cleanup unreachable code in lcli::generate_bootnode_enr and some tests (#4485)
  • Speed up CI by installing foundry with Github action (#4505)
  • Rust 1.71 lints (#4503)
  • CI fix: add retries to eth1 sim tests (#4501)
  • Clean up local testnet files without prompting (#4498)
  • Remove wget dependency (#4497)
  • Update mev-rs and remove patches (#4496)
  • Remove instances of required arguments with default values (#4489)
  • Use unique arg names for eth1-sim (#4463)
  • Fix HTTP state API bug and add --epochs-per-migration (#4236)
  • bump proc-macro2 (#4464)
  • Remove hidden re-exports to appease Rust 1.73 (#4495)
  • Add state-root command and network support to lcli (#4492)
  • Move the BeaconProcessor into a new crate (#4435)
  • Bump default checkpoint sync timeout to 3 minutes (#4466)
  • Correct checks for backfill completeness (#4465)

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-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
<img src="https://simpleicons.org/icons/linux.svg" style="w...
Read more

Priest Witherspoon

05 Jul 01:47
v4.3.0
Compare
Choose a tag to compare

Summary

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:

  • Add Sigma Prime IPv6 boot nodes (#4394)
  • Implement broadcast_validation APIs (#4316)
  • Schedule Capella for Gnosis chain (#4433)
  • Significantly reduce bandwidth by ignoring "aggregate subsets" (#3493)
  • Reduced bandwidth for nodes running multiple validators by subscribing to less subnets (#4304)
  • Allow setting validator graffiti via PATCH lighthouse/validators/{validator_pubkey} (#4417)
  • Add a CLI flag for the builder validator/register_validator batch size (#4399)
  • Re-enable maxperf for Windows releases (#4371)
  • Enable slasher broadcast by default (#4368)
  • Downgrade a CRIT log in the VC for builder timeouts (#4366)
  • Switch default slasher backend to LMDB (#4360)

Bandwidth Reductions

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.

Breaking Changes

The breaking changes in this release only apply to users who use the --slasher flag.

Breaking Change: Enable Slasher Broadcasting by Default

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.

Breaking Change: Use LMDB for the Default Slasher Backend

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.

Update Priority

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.

All Changes

  • Release v4.3.0 (#4452)
  • Ipv6 bootnodes update (#4394)
  • Cache target attester balances for unrealized FFG progression calculation (#4362)
  • Update node health endpoint (#4310)
  • added debounce to log (#4269)
  • Add broadcast validation routes to Beacon Node HTTP API (#4316)
  • avoid relocking head during builder health check (#4323)
  • Schedule Capella for Gnosis chain (#4433)
  • Tidy formatting of Reqwest errors (#4336)
  • Aggregate subsets (#3493)
  • Bump openssl deps (#4421)
  • Add lint-fix task to automatically fix some Clippy warnings. (#4419)
  • Add support for updating validator graffiti (#4417)
  • Configure the validator/register_validator batch size via the CLI (#4399)
  • Update Lighthouse book on Doppelganger Protection (#4418)
  • Remove legacy max-skip-slots checks (#4403)
  • Improve ENR logic for ipv6 (#4395)
  • Correct table formatting in Lighthouse book (#4407)
  • Remove CountUnrealized (#4357)
  • Use JSON by default for Deposit Snapshot Sync (#4397)
  • Rework internal rpc protocol handling (#4290)
  • Re-enable maxperf for Windows releases (#4371)
  • Minor revision in Lighthouse book (#4385)
  • Use MediaType accept header parser (#4216)
  • Update discv5 to expand ipv6 support (#4319)
  • Enable slasher broadcast by default (#4368)
  • Fix Anvil compilation on Windows (#4381)
  • feat: added new info about logs and config features (#4378)
  • Downgrade a CRIT in the VC for builder timeouts (#4366)
  • Switch default slasher backend to LMDB (#4360)
  • Always log the value of relay and local blocks for comparison (#4352)
  • Appease clippy in Rust 1.70 (#4365)
  • Update Nethermind (#4361)
  • Add an option to disable inbound rate limiter (#4327)
  • Expose execution block hash calculation (#4326)
  • Update Lighthouse Book API and Advanced Usage section (#4300)
  • Addition to Lighthouse Book faq.md (#4273)
  • Fix libpq typo in beacon.watch README (#4356)
  • Remove unused crate publishing Github action and script (#4347)
  • Add SSH tunneling in Lighthouse UI Siren (#4328)
  • Shift subnet backbone structure (attnets revamp) (#4304)
  • Add libpq-dev and docker to the to the list of additional requirements for developers in the Book (#4282)
  • Fix Rust 1.71.0 warnings (#4348)
  • Fix geth scripts (#4342)
  • swap unnecessary write lock to read lock in block_verification (#4340)
  • Add db inspect --output values option to support dumping raw db values (#4324)
  • Update blog link in README (#4322)
  • chore: Bellatrix occurred for Gnosis (#4301)
  • Keep payload cache idempotent (#4256)

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-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
<img src="h...
Read more