Skip to content

Fast Aging Alien

Compare
Choose a tag to compare
@github-actions github-actions released this 23 May 06:04
· 1488 commits to stable since this release
v4.2.0

Summary

This is a medium-priority release for Mainnet users. It contains important improvements to the resilience of Lighthouse, however there is no immediate urgency to upgrade.

Users who connect their VC to multiple BNs will have reduced risk of missed attestations and orphaned blocks when there is an offline EE (#4295).

Support for "proposer-only" BNs has been added to Lighthouse. Although we don't recommend this functionality for most stakers, it may be useful for enterprise operations or in the case of a large-scale attack on Ethereum. Read about this advanced feature in the documentation.

This release contains many notable features, optimisations and bug fixes:

  • Add a lighthouse/logs SSE endpoint to the VC API to expose logging (#4074)
  • Update Gnosis Capella preset (#4302)
  • Update Sepolia bootnodes (#4297)
  • Prioritise the head state in the shuffling cache (#4296)
  • Improve VC fallback behaviour when an EE is offline (#4295)
  • Add a flag for storing invalid blocks as SSZ files (#4194)
  • Fix bug with attestation verification on fork boundaries (#4263)
  • Reduce bandwidth over the VC<>BN API using dependant roots (#4170)
  • Fix bug when computing withdrawals root (#4249)
  • Backfill blocks only to the WSP by default (#4082)
  • Massively improve historic state lookup performance via the API (#4228)
  • Enable build profiles for Docker source builds (#4237)
  • Prevent disconnection from trusted peers (#4159)
  • Provide support for "proposer-only" BNs to mitigate targeted DoS attacks (#4182)
  • Add attestation inclusion distance to the HTTP API (#4148)

Breaking Changes

Breaking Change: Database Schema V17

To reduce complexity in the fork choice algorithm, the database schema has been upgraded to v17 (#4265). The schema upgrade will be applied automatically upon upgrading and should not take more than a few seconds.

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

Users may downgrade at any time.

Breaking Change: Backfilling

After a checkpoint sync, Lighthouse will only backfill to the most recent weak subjectivity checkpoint unless the --genesis-backfill flag is provided (#4082). The previous behaviour was to always backfill to the genesis block.

The --genesis-backfill flag is not required for staking. Nodes performing "archive" duties may wish to add this flag so they may download and store the entire history of the chain.

Omitting the --genesis-backfill flag for new BN databases will result in reduced disk usage and reduced network bandwidth during sync. Nodes which are already synced to genesis will maintain their history, even if the --genesis-backfill flag is not present. In a future release we will enable existing nodes to prune old blocks from their database so that they can achieve reduced disk usage without a re-sync.

Breaking Change: Graceful Handling of Offline EEs

The Lighthouse VC will now detect when the BN indicates that its EE (e.g., Geth, Nethermind, Besu, Erigon, etc) is offline. The VC will then prefer a BN with an online EE (#4295).

This functionality is only possible when the VC has multiple (aka "fallback") BNs provided via the --beacon-nodes flag.

If there is no alternative BN with an online EE, the VC will go back to the previous behaviour of attempting to perform its duties regardless of the EE status.

Breaking Change: Updated LLVM Version

Windows users may fail to compile Lighthouse if their LLVM version is earlier than 15.0 (#4220). Upgrading can typically be achieved with choco upgrade llvm.

Update Priority

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

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

See Update Priorities 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

  • v4.2.0 (#4309)
  • Logging via the HTTP API (#4074)
  • Avoid excessive logging of BN online status (#4315)
  • Update gnosis capella preset (#4302)
  • add more sepolia bootnodes (#4297)
  • Add more metrics for tracking sync messages (#4308)
  • Enshrine head state shuffling in the shuffling_cache (#4296)
  • Implement el_offline and use it in the VC (#4295)
  • Fix PERSIST_ETH1_CACHE / PERSIST_OP_POOL Metrics (#4278)
  • Post merge local testnets (#3807)
  • Remove redundant gossipsub tests (#4294)
  • Don't requeue already-known RPC blocks (#4214)
  • Add a flag for storing invalid blocks (#4194)
  • Replace ganache-cli with anvil (#3555)
  • DB migration for fork choice cleanup (#4265)
  • Attestation verification uses head state fork (#4263)
  • Reduce bandwidth over the VC<>BN API using dependant roots (#4170)
  • Update links in Lighthouse Book (#4279)
  • Fix attestation withdrawals root mismatch (#4249)
  • Fix log on initializing external block builder (#4267)
  • Add branching instructions to the contribution guide (#4272)
  • Do not attempt to resubscribe to core topics (#4271)
  • Backfill blocks only to the WSP by default (#4082)
  • improve api-bn.md (#4244)
  • use state cache to optimise historical state lookup (#4228)
  • Update Lighthouse book Sec 3-6 and FAQ (#4221)
  • simplify calculate_committee_fraction (#4213)
  • Update igd to v0.12.1 (#4257)
  • Un-deprecate test utils functions such as extend_chain (#4255)
  • Enable build profiles for Docker source builds (#4237)
  • Maintain trusted peers (#4159)
  • Prepare CI for merge queues (#4252)
  • remove withdrawal warning (#4207)
  • Logfile no restrict help text for windows (#4165)
  • Feat: lighthouse book - ui authentication (#4232)
  • Split common crates out into their own repos (#3890)
  • Separate BN for block proposals (#4182)
  • add attestation inclusion distance in http api (#4148)
  • Fix Rust 1.69 lints (#4222)
  • Update LLVM version to 15.0 in CI workflows (#4220)

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