Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lighthouse 5.0.0 #163659

Merged
merged 2 commits into from
Feb 28, 2024
Merged

lighthouse 5.0.0 #163659

merged 2 commits into from
Feb 28, 2024

Conversation

chenrui333
Copy link
Member

Created by brew bump


Created with brew bump-formula-pr.

release notes
## Summary

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

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

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

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

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

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

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

Mainnet Deneb/Cancun ("Dencun") Upgrade

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

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

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

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

To be Dencun ready, user will need to:

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

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

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

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

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

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

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

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

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

See sigp/lighthouse#5151.

:warning: Breaking Changes :warning:

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

Validator Liveness endpoint now accepts string encoded indices

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

See sigp/lighthouse#5184.

Minimum Supported Rust Version 1.75.0

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

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

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

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

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

See sigp/lighthouse#5065.

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

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

See sigp/lighthouse#5252.

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

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

See sigp/lighthouse#5163.

Update Priority

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

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

See Update Priorities more information about this table.

All Changes

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

Binaries

See pre-built binaries documentation.

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

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

@github-actions github-actions bot added rust Rust use is a significant feature of the PR or issue bump-formula-pr PR was created using `brew bump-formula-pr` labels Feb 22, 2024
@chenrui333 chenrui333 added the CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. label Feb 22, 2024
Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a help wanted or in progress label.

@github-actions github-actions bot added the stale No recent activity label Feb 24, 2024
@chenrui333
Copy link
Member Author

==> /opt/homebrew/Cellar/lighthouse/5.0.0/bin/lighthouse --version
  Feb 22 04:33:30.380 INFO Logging to file                         path: "/private/tmp/lighthouse-test-20240221-11004-6p2hmw/.lighthouse/mainnet/beacon/logs/beacon.log"
  Feb 22 04:33:30.382 INFO Lighthouse started                      version: Lighthouse/v5.0.0
  Feb 22 04:33:30.382 INFO Configured for network                  name: mainnet
  Feb 22 04:33:30.383 INFO Data directory initialised              datadir: /private/tmp/lighthouse-test-20240221-11004-6p2hmw/.lighthouse/mainnet
  Feb 22 04:33:30.386 INFO Deposit contract                        address: 0x00000000219ab540356cbb839cbe05303d7705fa, deploy_block: 11184[52](https://github.com/Homebrew/homebrew-core/actions/runs/7999388159/job/21847204447?pr=163659#step:3:53)4
  Feb 22 04:33:30.610 INFO Blob DB initialized                     oldest_blob_slot: Some(Slot(8626176)), path: "/private/tmp/lighthouse-test-20240221-11004-6p2hmw/.lighthouse/mainnet/beacon/blobs_db", service: freezer_db
  Feb 22 04:33:30.610 INFO Starting from known genesis state       service: beacon
  Feb 22 04:33:30.615 CRIT Failed to start beacon node             reason: Syncing from genesis is insecure and incompatible with data availability checks. You should instead perform a checkpoint sync from a trusted node using the --checkpoint-sync-url option. For a list of public endpoints, see: https://eth-clients.github.io/checkpoint-sync-endpoints/ Alternatively, use --allow-insecure-genesis-sync if the risks are understood.
  Feb 22 04:33:30.615 INFO Internal shutdown received              reason: Failed to start beacon node
  Feb 22 04:33:30.[61](https://github.com/Homebrew/homebrew-core/actions/runs/7999388159/job/21847204447?pr=163659#step:3:62)5 INFO Shutting down..                         reason: Failure("Failed to start beacon node")
  Failed to start beacon node
  ==> curl -sS -XGET http://127.0.0.1:49350/eth/v1/node/syncing
  curl: (7) Failed to connect to 127.0.0.1 port 49350 after 9 ms: Connection refused

@chenrui333 chenrui333 added the test failure CI fails while running the test-do block label Feb 24, 2024
@github-actions github-actions bot removed the stale No recent activity label Feb 24, 2024
Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a help wanted or in progress label.

@github-actions github-actions bot added the stale No recent activity label Feb 27, 2024
Copy link
Contributor

@michaelsproul michaelsproul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chenrui333 To fix the startup failure add this flag to lighthouse bn:

--allow-insecure-genesis-sync

That is required when syncing from genesis now.

@github-actions github-actions bot removed the stale No recent activity label Feb 28, 2024
lighthouse: update sleep

lighthouse: update test

Co-authored-by: Rui Chen <rui@chenrui.dev>
@bevanjkay bevanjkay added ready to merge PR can be merged once CI is green and removed test failure CI fails while running the test-do block labels Feb 28, 2024
Copy link
Contributor

🤖 An automated task has requested bottles to be published to this PR.

@github-actions github-actions bot added the CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. label Feb 28, 2024
@BrewTestBot BrewTestBot added this pull request to the merge queue Feb 28, 2024
Merged via the queue into Homebrew:master with commit ba384f5 Feb 28, 2024
12 checks passed
@chenrui333 chenrui333 deleted the bump-lighthouse-5.0.0 branch March 4, 2024 17:40
@github-actions github-actions bot added the outdated PR was locked due to age label Apr 4, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bump-formula-pr PR was created using `brew bump-formula-pr` CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. outdated PR was locked due to age ready to merge PR can be merged once CI is green rust Rust use is a significant feature of the PR or issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants