Skip to content

Releases: sigp/lighthouse

Galactic Federation President

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

Summary

This medium-priority release contains a fix for mainnet users experiencing slow "eth1 cache" syncing times (several hours or more). A synced eth1 cache is required for reliable block production.

For Prater/Goerli users, this release contains several new features and bug fixes. The developers kindly request that all Prater/Goerli users update to this release before the Bellatrix upgrade (2022-08-04 12:24 pm UTC). This release is very close to what will be used for the mainnet merge (presently unscheduled). This release should get as much testing as possible during the Prater/Goerli upgrade. Any Prater/Goerli users on v2.3.1 must upgrade to this release before the Bellatrix upgrade or they will follow the wrong chain.

Improvements and fixes include:

  • Add execution_optimistic flag to HTTP responses (#3070, #3374)
  • Fix slow eth1 cache syncing times (#3358)
  • Full support for builder specs v0.2.0 (i.e. mev-boost support) (#3134)
  • Retrospective verification of optimistically-synced merge transition blocks (#3372)
  • Improve peer management when the EL is offline (#3384)

Breaking Changes

Breaking Change: Database Migrations

There are two database migrations in this release; v10 (#3322) and v11 (#3371).

Older database versions will automatically upgrade to the latest version without user intervention.

Downgrading requires the user to use the lighthouse db tool. See the Database Migrations documentation for detailed instructions.

Breaking Change: Addition of execution_optimistic flag to HTTP API

The execution_optimistic flag has been added alongside the data field on some (but not all) HTTP API responses as per v2.3.0 of the standard Beacon API.

It is unclear if adding a field at this section of the API is truly a breaking change or not, however we list it here for completeness.

Example:

// Lighthouse v2.4.0
{ "data": "object" }

// Lighthouse v2.5.0
{ "data": "object", "execution_optimistic": "boolean" }

Reminder: CLI changes in v2.4.0

The previous release (v2.4.0) contained several changes to CLI flags relating to the merge. Whilst we expect these changes to be largely inconsequential, users on a pre-v2.4.0 release should read the v2.4.0 release notes to understand these changes.

Update Priority

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

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

The Beacon Node may be updated without the Validator Client, however we recommend updating both components.

See Update Priorities for more information about this table.

All Changes

  • v2.5.0 (#3392)
  • Indicate that invalid blocks are optimistic (#3383)
  • Enable count-unrealized by default (#3389)
  • Fix penalties in sync methods (#3384)
  • Initial Commit of Retrospective OTB Verification (#3372)
  • Builder Specs v0.2.0 (#3134)
  • Don't return errors when fork choice fails (#3370)
  • Remove equivocating validators from fork choice (#3371)
  • Downgrade Geth to v1.10.20 in EE integration tests (#3382)
  • Fix antithesis docker builds (#3380)
  • Allow setting web3signer version through environment (#3368)
  • Return ResourceUnavailable if we are unable to reconstruct execution payloads (#3365)
  • Allow syncing or accepted in integration test (#3378)
  • Reformat tables and add borders (#3377)
  • Fix some typos (#3376)
  • Refuse to sign sync committee messages when head is optimistic (#3191)
  • Add is_optimistic to eth/v1/node/syncing response (#3374)
  • Strict fee recipient (#3363)
  • Add merge transition docs (#3361)
  • Fix Block Cache Range Math for Faster Syncing (#3358)
  • Realized unrealized experimentation (#3322)
  • Add execution_optimistic flag to HTTP responses (#3070)

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v2.5.0-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v2.5.0-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.5.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v2.5.0-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v2.5.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v2.5.0-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.5.0-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v2.5.0-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v2.5.0 sigp/lighthouse

Geardude Clockberg

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

Summary

This low-priority release contains improvements for mainnet validators and support for the upcoming Goerli/Prater merge. This release is recommended for all validators on all networks.

Whilst this release is "low-priority" for mainnet, Prater users must upgrade to this release (or a subsequent release) before 2022-08-04 12:24 pm UTC for the Bellatrix fork. Failure to upgrade in time will leave nodes following the wrong chain.

Improvements and fixes include:

  • Various bugfixes (#3258, #2911, #3287, #3331, #3350, #3347)
  • Various optimisations (#3271, #3301, #3272, #3335)
  • Support for the Sepolia network (#3268, #3288)
  • Removal of support for multiple execution endpoints (#3257, #3283, #3284, #3324)
  • Graceful recovery from NonConsecutive eth1 endpoint errors (#3273)
  • More information in block rewards APIs (#3290)
  • Stabilisation of CLI flags for the merge (#3214)
  • Addition of the feerecipient API (#3213)
  • Improvement to fallback BN behaviour for sync committees (#3291)
  • Bump minimum supported Rust version to 1.62 (#3304)
  • Bellatrix support for web3signer (#3318)
  • Update Docker Rust version (#3353)
  • Add TTD and Bellatrix epoch for Prater/Goerli (#3345)
  • "Merge ready" logging and API endpoint (#3339, #3349)
  • Add --network goerli flag (#3346)

Addition of --network goerli

Since Prater and Goerli will be merging, there is a consensus among the Ethereum community to begin to refer to the "Prater" beacon chain as the "Goerli" beacon chain. This helps convey the idea that the beacon chain and execution chain both form a single, unified chain.

To this end, this release supports the --network goerli flag. Whilst this flag will connect to exactly the same network as when using --network prater, it will result in a default data directory in ~/.lighthouse/goerli, rather than ~/.lighthouse/prater.

For users already using --network prater, we recommend sticking with this value. Switching to --network goerli will trigger Lighthouse to use a new data directory and therefore resync the beacon chain and ignore any existing validators. It's possible to migrate the prater directory across to the goerli name, however we do not have instructions for that at this stage.

In summary,

  • The safest strategy for existing users should stick with --network prater
  • New users should use --network goerli

The only difference is naming.

Breaking Changes

The breaking changes in this release should be inconsequential for mainnet users. However the changes may have some impact for users of post-merge testnets.

Breaking Change: Minimum Supported Rust Version (MSRV)

The MSRV was set to Rust 1.62 in #3304. Version 1.62 was released on June 30, 2022. If you are using an older version of Rust, please update before compiling.

Breaking Change: finalized_checkpoint SSE event

In #3244, the state field of the finalized_checkpoint SSE endpoint now represents the state root of the finalized block, rather than the state root at the finalized slot. See #3244 for more information.

This change aligns Lighthouse with Teku's behaviour. It should be inconsequential for most users.

Breaking Change: Removal of --suggested-fee-recipient-file

The --suggested-fee-recipient-file provided a path to a file which contained a mapping of validator public key to suggested fee recipient. With the addition of the feerecipient API (#3213), this feature was deemed an unncessary burden to mainain. The feature has been removed in this release, the validator client will fail to start if --suggested-fee-recipient-file is present.

The reasoning for this decision can be found at #3264.

Breaking Change: Stabilisation of CLI flags for the merge

This release stabilises the flags that will be used for the beacon node after the merge. Whilst there are some functional changes to the flags we have worked to ensure that the BN will still start even when using deprecated flags; deprecated flags or features will be ignored and a deprecation notice logged.

Details

The --merge flag has been deprecated and no longer has any effect (it is permitted but ignored). Support for the merge will be enabled whenever --execution-endpoint is supplied.

Support for multiple execution endpoints and payload builders has been removed. Only one value may be supplied for all related CLI flags. This has involved renaming some flags to remove the plural; the plural version now aliases to the singular version, but only supports a single value. Some jwt flags have been renamed for clarity. The full list of renamed flags is below:

Old Flag (aliased to "New Flag") New Flag
--execution-endpoints --execution-endpoint
--jwt-secrets --execution-jwt
--jwt-id --execution-jwt-id
--jwt-version --execution-jwt-version
--payload-builders --payload-builder

Additionally, the --eth1-endpoints flag will be ignored if the --execution-endpoint flag is provided. Any requests that were sent to the --eth1-endpoints will instead be sent to the --execution-endpoint.

This list of changes does appear complex, however we believe that migration to the new format should be rather simple. We expect all existing CLI configurations to still work, but with some deprecated values ignored.

Here are some examples for demonstration:

# Still works exactly as before. Multiple eth1-endpoints will still be 
# utilised since `--execution-endpoints` is not present.
lighthouse \
    bn \
    --eth1-endpoints http://localhost:8545,https://third-party.com

# Still works, however `--eth1-endpoints` will be ignored in favor
# of `--execution-endpoints`.
lighthouse \
    bn \
    --merge \
    --execution-endpoints http://localhost:8551 \
    --jwt-secrets jwt.hex \
    --eth1-endpoints http://localhost:8545,https://third-party.com

# Still works, however only the `192.168.1.1` server will be used.
# The seconds will be ignored.
lighthouse \
    bn \
    --merge \
    --execution-endpoints http://192.168.1.1:8551,http://192.168.1.2:8551 \
    --jwt-secrets jwt-1.hex,jwt-2.hex

# These are the minimum ideal flags for the merge.
# The --http flag is also required for staking.
lighthouse \
    bn \
    --execution-endpoint http://192.168.1.1:8551 \
    --execution-jwt jwt.hex

Reminder: Docker Base Image

In the penultimate release (v2.3.0), the Docker base image was updated from Ubuntu 20.04 to Ubuntu 22.04 LTS. Older versions of Docker are unable to run the new image due to an incompatibility, so please ensure that you update your Docker engine past version 20.10.10 (released Oct 2021). Please see #3230 for more information.

Update Priority

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

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

Please note: this update is high-priority for Prater users.

The Beacon Node may be updated without the Validator Client, however we recommend updating both components.

See Update Priorities for more information about this table.

All Changes

  • v2.4.0 (#3360)
  • Merge readiness endpoint (#3349)
  • Set safe block hash to justified (#3347)
  • Add Goerli --network flag as duplicate of Prater: Option A (#3346)
  • Log ttd (#3339)
  • Fix Gossip Penalties During Optimistic Sync Window (#3350)
  • Add TTD and Bellatrix epoch for Prater (#3345)
  • debug tests rust version (#3354)
  • docker rust version update (#3353)
  • Share reqwest::Client between validators when using Web3Signer (#3335)
  • Don't create a execution payload with same timestamp as terminal block (#3331)
  • Add merge support to simulator (#3292)
  • Make transactions in execution layer integration tests (#3320)
  • Improve block-lookup functionality (#3287)
  • Add Merge support to web3signer validators (#3318)
  • Upstream local testnet improvements (#3336)
  • Add a u256_hex_be module to encode/decode U256 types (#3321)
  • Ignored sync jobs 2 (#3317)
  • Bump the MSRV to 1.62 and using #[derive(Default)] on enums (#3304)
  • Do not interpret "latest valid hash" as identifying a valid hash (#3327)
  • Further remove EE redundancy (#3324)
  • Add --release to disallowed-from-async lint (#3325)
  • add sync committee contribution timeout (#3291)
  • Merge Engines and Engine struct in one in the execution_layer crate (#3284)
  • eth2_hashing: make cpufeatures dep optional (#3309)
  • Implement feerecipient API for keymanager (#3213)
  • Fix RUSTSEC-2022-0032 (#3311)
  • Document min CMake version (#3310)
  • Ensure caches are built for block_rewards POST API (#3305)
  • Remove unused method in HandlerNetworkContext (#3299)
  • Simplify error handling after engines fallback removal (#3283)
  • Optimize historic committee calculation for the HTTP API (#3272)
  • Use latest tags for nethermind and geth in the execution engine integration test (#3303)
  • Use async code when interacting with EL (#3244)
  • Avoid growing Vec for sync committee indices (#3301)
  • Remove builder redundancy (#3294)
  • Fix clippy lints for rust 1.62 (#3300)
  • Register validator api (#3194)
  • Unify execution layer endpoints (#3214)
  • Extend block reward APIs (#3290)
  • Update Cross config for v0.2.2 (#3286)
  • v2.3.2-rc.0 (#3289)
  • Update Sepolia TTD (#3288)
  • Recover from NonConsecutive eth1 errors (#3273)
  • Test the pruning of excess peers using randomly generated input (#3248)
  • Add more paths to HTTP API metrics (#3282)
  • Add some debug logs for checkpoint sync (#3281)
  • Deprecate step param in BlocksByRange RPC request (#3275)
  • Initial work to remove engines fallback from the `executi...
Read more

Man Painted Silver Who Makes Robot Noises

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

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

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

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

Summary

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

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

All Changes

  • v2.3.2-rc.0 (#3289)
  • Update Sepolia TTD (#3288)
  • Recover from NonConsecutive eth1 errors (#3273)
  • Test the pruning of excess peers using randomly generated input (#3248)
  • Add more paths to HTTP API metrics (#3282)
  • Add some debug logs for checkpoint sync (#3281)
  • Deprecate step param in BlocksByRange RPC request (#3275)
  • Initial work to remove engines fallback from the execution_layer crate (#3257)
  • Enable malloc metrics for the VC (#3279)
  • Avoid cloning snapshots during sync (#3271)
  • Fix validator_monitor_prev_epoch_ metrics (#2911)
  • Do not penalize peers on execution layer offline errors (#3258)
  • Update cargo lockfile to fix RUSTSEC-2022-0025, RUSTSEC-2022-0026 and RUSTSEC-2022-0027 (#3278)
  • Add sepolia config (#3268)

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v2.3.2-rc.0-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v2.3.2-rc.0-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.3.2-rc.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v2.3.2-rc.0-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v2.3.2-rc.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v2.3.2-rc.0-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.3.2-rc.0-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v2.3.2-rc.0-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v2.3.2-rc.0 sigp/lighthouse

Butter Robot

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

Summary

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

Notable changes include:

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

Breaking Changes

There are no known breaking changes in this release.

Reminder: Docker Base Image

In the previous release (v2.3.0), the Docker base image was updated from Ubuntu 20.04 to Ubuntu 22.04 LTS. Older versions of Docker are unable to run the new image due to an incompatibility, so please ensure that you update your Docker engine past version 20.10.10 (released Oct 2021). Please see #3230 for more information.

Update Priority

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

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

The Beacon Node may be updated without the Validator Client, however we recommend updating both components.

See Update Priorities for more information about this table.

All Changes

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

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v2.3.1-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v2.3.1-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.3.1-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v2.3.1-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v2.3.1-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v2.3.1-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.3.1-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v2.3.1-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v2.3.1 sigp/lighthouse

Baby Wizard

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

Summary

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

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

Notable changes include:

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

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

Ropsten

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

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

Breaking Changes

❗ Database Schema Upgrade ❗

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

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

See the Database Migrations documentation for more information on downgrading.

Docker Base Image

The Docker base image has been updated from Ubuntu 20.04 to Ubuntu 22.04 LTS. Older versions of Docker are unable to run the new image due to an incompatibility, so please ensure that you update your Docker engine past version 20.10.10 (released Oct 2021). Please see #3230 for more information.

Update Priority

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

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

The Beacon Node may be updated without the Validator Client, however we recommend updating both components.

See Update Priorities for more information about this table.

All Changes

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

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v2.3.0-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v2.3.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v2.3.0-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v2.3.0 sigp/lighthouse

Robobros

25 May 09:44
v2.3.0-rc.0
Compare
Choose a tag to compare
Robobros Pre-release
Pre-release

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

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

Whilst we do not recommend this release for critical and/or mainnet use, we would appreciate help testing this release on testnets.

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

Summary

This release candidate introduces support for the Ropsten Beacon Chain, among other changes.

The Ropsten Beacon Chain will launch on Monday, May 30th, 2022 3:00:00 PM +UTC. The long-standing Ropsten testnet is expected to undergo "the merge" in early June 2022. Any user that wishes to participate in the Ropsten merge must use this release candidate (or any following release).

Ropsten

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

Breaking Changes

❗ Database Schema Upgrade ❗

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

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

All Changes

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

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v2.3.0-rc.0-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-rc.0-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-rc.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-rc.0-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v2.3.0-rc.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v2.3.0-rc.0-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-rc.0-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v2.3.0-rc.0-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v2.3.0-rc.0 sigp/lighthouse

Talking Cat

12 Apr 06:32
v2.2.1
Compare
Choose a tag to compare

Summary

This release fixes a bug in Lighthouse v2.2.0 that prevented some nodes from completing sync.

The majority of nodes running v2.2.0 will not have been affected by the bug, but nodes attempting to sync from genesis would get stuck at slot 0 forever, and nodes performing checkpoint sync would fail to download blocks from before the Altair hard fork (Oct 2021). The bug occurred as a result of changes made to RPC limits in preparation for the Merge, and has been fixed in PR #3146. Please see that pull request for more detail.

Users upgrading from v2.1 should also read the release notes for v2.2.0 to understand a new protocol feature called proposer boost which has been enabled in v2.2: https://github.com/sigp/lighthouse/releases/tag/v2.2.0

Backwards Compatibility

This release is fully backwards-compatible with the previous releases v2.2.0 and v2.1.x.

Downgrading from v2.2.1 to v2.1.x is also supported without any manual intervention.

Update Priority

This update is a Medium Priority update for users of Lighthouse v2.2.0, and a Low Priority update for v2.1.x.

User Class Beacon Node Validator Client
Staking Users Low Priority* Low Priority*
Non-Staking Users Low Priority* ---

See Update Priorities for more information about this table.

All Changes

  • v2.2.1 (#3149)
  • Don't log crits for missing EE before Bellatrix (#3150)
  • Fix rpc limits version 2 (#3146)
  • Transition Block Proposer Preparation (#3088)
  • Fix SPRP default value in cli (#3145)
  • Ensure VALID response from fcU updates protoarray (#3126)
  • Add tests for importing blocks on invalid parents (#3123)

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v2.2.1-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v2.2.1-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.2.1-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v2.2.1-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v2.2.1-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v2.2.1-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.2.1-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v2.2.1-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v2.2.1 sigp/lighthouse

Balthromaw

05 Apr 07:10
v2.2.0
Compare
Choose a tag to compare

Summary

This release includes a minor protocol upgrade named proposer boost, which is designed to mitigate several attacks against fork choice.

It is recommended that all users upgrade over the course of the next few weeks.

Proposer Boost

Background

Proposer boost mitigates attacks involving the delayed publishing of blocks and attestations. By creating disagreement amongst honest nodes, an attacker could frustrate consensus and cause re-orgs. For more detail on the attacks mitigated, please see Three Attacks on Proof-of-Stake Ethereum by researchers from the Ethereum Foundation and Stanford University.

Mitigation

Proposer boost mitigates the attacks by granting additional power to the proposer of each block, equal to 70% of the weight of the attesters in a single slot. This 70% "boost" is only granted to timely blocks, which prevents the delayed-publishing attack while also incentivizing on-time block publication in general. For more information please see the accompanying pull request to the beacon chain specification: ethereum/consensus-specs#2730.

Upgrade Strategy

By virtue of being a protocol change, proposer boost needs to be rolled out by a large fraction of the nodes on the network in order to be effective. This Lighthouse release is coordinated with forthcoming releases from the other consensus clients.

Although it's best for all nodes on the network to adopt proposer boost within a short time frame, we estimate that the impact of upgrades spaced over the course of a few weeks will be minimal. For more detailed analysis please see #3131.

In addition to theoretical analysis and unit testing, proposer boost has also undergone extensive testing on the Prater testnet, where it has been enabled for several months.

Other New Features

  • The beacon node and validator client HTTP APIs can now be hosted on IPv6 addresses (#3104).
  • The concurrency of request handling during sync was improved (#3036).
  • A command for manually inspecting the beacon node's database was added (#3129).
  • Lots of progress was made towards The Merge, including:

Backwards Compatibility

This release is fully backwards-compatible with the previous release.

Downgrading from v2.2.0 to v2.1.x is also supported without any manual intervention.

Update Priority

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

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

See Update Priorities for more information about this table.

All Changes

  • v2.2.0 (#3139)
  • Update mdbook runner to Ubuntu 20.04 (#3138)
  • Update and consolidate dependencies (#3136)
  • Fix merge rpc length limits (#3133)
  • Conserve disk space by raising default SPRP (#3137)
  • Enable proposer boost on mainnet and GBC (#3131)
  • Strip newline from jwt secrets (#3132)
  • Add lighthouse db command (#3129)
  • Kiln mev boost (#3062)
  • json rpc id to value (#3110)
  • Increase timeouts for EEs (#3125)
  • Update engine state in broadcast (#3071)
  • Improve slashing import log (#3122)
  • Fix typos in docs (#3121)
  • Target geth master in integration testing (#3120)
  • Optionally skip RANDAO verification during block production (#3116)
  • Add merge objects to lcli parse-ssz subcommand (#3119)
  • feat: Update ASCII art (#3113)
  • Support IPv6 in BN and VC HTTP APIs (#3104)
  • Add Nethermind integration tests (#3100)
  • Remove sync await points (#3036)
  • Add Proposer Cache Pruning & POS Activated Banner (#3109)
  • Fix ganache windows CI attempt 2 (#3107)
  • Fix ganache in windows CI (#3105)
  • Correct typos book (#3099)
  • Updates to tests and local testnet for Ganache 7 (#3056)

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v2.2.0-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v2.2.0-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.2.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v2.2.0-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v2.2.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v2.2.0-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.2.0-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v2.2.0-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v2.2.0 sigp/lighthouse

Hydrogen-F

18 Mar 04:34
v2.1.5
Compare
Choose a tag to compare

Summary

This is a security-focussed release to address a denial-of-service vulnerability in OpenSSL (CVE-2022-0778).

Lighthouse does not rely on OpenSSL for any of its P2P functionality, but does make use of OpenSSL TLS when making HTTPS connections. We recommend that users upgrade to this release from v2.1.4 if they are using HTTPS URLs in their configuration and are concerned about the denial-of-service risk, see below for details.

OpenSSL Vulnerability Detail

If configured, Lighthouse will use HTTPS to connect to URLs passed to --eth1-endpoints, --checkpoint-sync-url or --beacon-nodes (from the validator client). These URLs typically correspond to servers trusted by the user, but still pose a denial-of-service risk if the connection is intercepted by an intermediary (e.g. an ISP or public hotspot router). We believe that attacks are unlikely to occur in practice, and that their impact would be relatively minor — lighthouse would hang, but there would be no slashing risk nor risk of signing keys being compromised.

For more information please see:

Backwards Compatibility

Other than the OpenSSL fix, this release is functionally equivalent to the previous release, and is 100% backward compatible.

Update Priority

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

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

See Update Priorities for more information about this table.

All Changes

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v2.1.5-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v2.1.5-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.1.5-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v2.1.5-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v2.1.5-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v2.1.5-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.1.5-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v2.1.5-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v2.1.5 sigp/lighthouse

Magnesium-J

15 Mar 06:20
v2.1.4
Compare
Choose a tag to compare

Summary

This release contains optimisations to P2P networking to improve validator performance. It also contains new functionality for The Merge and out-of-the-box support for the Kiln testnet via the --network kiln flag.

This release will increase the default peer count from 50 to 80. Users who don't specify a custom --target-peers value should see an increased peer count after updating. This is normal and expected.

Other notable features include:

  • Ignore non-routable IPs in discovery (#3023)
    • See the "Breaking Changes" section for more details.
  • Removal of unnecessary error/warning logs related to sync committees (#2999, #3086)
  • Support for requesting proposer duties for the next epoch via the HTTP API (#2963)
  • Addition of an API to compute block packing efficiency (#2879)
  • Improved performance when a VC encounters timeout errors for a BN (#3022)
  • Addition of --validator-dir alias, to aid usability (#3034)
  • Fixes to missing quotes on integer values on the API (#3074, #3080)

Increased Peer Count

Ensuring peak performance on the P2P network frequently involves trade-offs between bandwidth usage and ensuring there is a diverse and useful set of peers. The trade-off space varies over time as the network increases in size and as different implementations evolve.

As described in this comment, increasing the default peer count from 50 to 80 has shown to provide significant benefits in peer management whilst making a less significant impact on network bandwidth.

The upside of this change is that we expect less "InsufficientPeers" errors, therefore reducing penalties caused by missed/late attestations or sync messages. The downside is that we expect users to notice a ~50% increase in bytes transmitted on the network and a ~15% increase in bytes recieved (mileage may vary).

Users who prefer minimal bandwidth are free to use --target-peers 50 and maintain the status-quo. That being said, we expect most users will be happy with the new default value of 80.

Breaking Changes

Discovery and Non-Routable IPs

In #3032, Lighthouse now ignores non-globally-routable IP addresses during discovery. This prevents some cloud providers (e.g., Hetzner) from banning Lighthouse under the (false) premise that it is maliciously scanning the private network.

We only expect this to impact developers running local testnets and enterprise users with sophisticated internal P2P routing. This change can be reverted by adding the --enable-private-discovery flag to the BN.

Kintsugi

The Kintsugi testnet is not supported by this release. Users should prefer Kiln.

VC and BN Update Procedure

The VC and BN between this release and the previous are compatible. You may update them independently.

Update Priority

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

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

See Update Priorities for more information about this table.

All Changes

  • v2.1.4 (#3076)
  • Ignore attestations to finalized blocks (don't reject) (#3052)
  • Lower debug! logs to trace! (#3053)
  • Rename random to prev_randao (#3040)
  • Custom RPC request management for sync (#3029)
  • Update libp2p (#3039)
  • Filter non global ips from discovery (#3023)
  • Rename Eth1/Eth2 in documents (#3021)
  • Increase default target-peer count to 80 (#3005)
  • Enforce Optimistic Sync Conditions & CLI Tests (v2) (#3050)
  • Cleanup small issues (#3027)
  • Retrospective invalidation of exec. payloads for opt. sync (#2837)
  • Update to Rust 1.59 and 2021 edition (#3038)
  • Ensure logfile respects the validators-dir CLI flag (#3003)
  • Add aliases for validator-dir flags (#3034)
  • Avoid hogging the fallback status lock in the VC (#3022)
  • Increase Bors timeout, refine target-branch-check (#3035)
  • Add API to compute block packing efficiency data (#2879)
  • Allow proposer duties request for the next epoch (#2963)
  • Fix sync committee polling for 0 validators (#2999)
  • Improved peer management (#2993)
  • Use SmallVec in Bitfield (#3025)
  • Engine API v1.0.0.alpha.6 + interop tests (#3024)
  • Update to consensus-specs v1.1.9 (#3016)
  • Update block reward API docs (#3013)

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v2.1.4-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v2.1.4-x86_64-apple-darwin-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.1.4-x86_64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v2.1.4-x86_64-unknown-linux-gnu-portable.tar.gz PGP Signature
aarch64 lighthouse-v2.1.4-aarch64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v2.1.4-aarch64-unknown-linux-gnu-portable.tar.gz PGP Signature
x86_64 lighthouse-v2.1.4-x86_64-windows.tar.gz PGP Signature
x86_64 lighthouse-v2.1.4-x86_64-windows-portable.tar.gz PGP Signature
System Option - Resource
Docker v2.1.4 sigp/lighthouse