Summary
This release is a low-priority release for all users except for those using the Goerli test network.
For Goerli (aka Prater) users, this release includes the Capella fork parameters (#4044). Goerli will undergo the Capella upgrade (a.k.a "hardfork") on 14/03/2023 at 10:25:36 pm UTC. Goerli users must update to this version or later before the Capella upgrade. Users that fail to upgrade will cease to follow the chain and will be required to resync.
Users of Ethereum Mainnet or other networks/testnets (e.g., Sepolia, Gnosis Chain) may choose to update to this release to take advantage of various optimisations and bug fixes.
Notable changes in this release include:
- Add a flag to always use payloads from builders (#4052)
- Set Capella fork epoch for Goerli (#4044)
- Optimise signing in the VC to prevent late blocks (#4033)
- Add a BN latency measurement to the VC to help diagnose late blocks (#4024, #4051)
- Fix a bug where Lighthouse rejects an invalid block message from the EE (#4037)
- Delete Kiln and Ropsten configs (#4038)
- Improve compilation flexibility by allowing building without MDBX (#3888)
Breaking Changes
There are no breaking changes that affect Mainnet users.
⚠️ Breaking Change: Removal of Kiln and Ropsten Configs ⚠️
The --network kiln
and --network ropsten
flags are no longer supported. Kiln was deprecated Q3 2022 and Ropsten was deprecated in Q4 2022. Removing these networks has reduced the size of the Lighthouse binary by approximately 30MiB.
Dedicated Ropsten and Kiln users can still use these networks by manually obtaining the testnet configuration directories and using the --testnet-dir
flag.
Goerli Capella Hard Fork
Goerli is upgrading to Capella on 14/03/2023 at 10:25:36 pm UTC! 🎉
Goerli users must update both the Lighthouse beacon node and validator client before March 14. Failure to update will result in missed validator duties and a corrupt beacon node database (requiring a re-sync).
Goerli users must also ensure they are running a compatible execution engine. The Ethereum Foundation will publish a "Goerli Shapella Announcement" in the coming days which will contain more information and a list of compatible execution layer releases.
Lighthouse will emit INFO Ready for Capella
logs when both itself and the execution engine are ready for the Capella upgrade. Conversely, Lighthouse will emit WARN Not ready for Capella
logs when it detects a misconfiguration.
VC to BN Latency Measurements
In #4024 and #4051 we added new Prometheus metrics for monitoring the round-trip latency between a VC and the BN. The latency measurement is the time it takes the VC to send, receive and parse a call to the BN's eth/v1/node/version
endpoint.
There are two new metrics exposed by the VC:
vc_beacon_node_latency_primary_endpoint
: shows the latency for the primary BN.vc_beacon_node_latency
: shows the latency for all BNs, with the endpoint URL as theendpoint
label.
Producing a block requires two HTTP calls between the VC and the BN. Therefore, latency on this connection can contribute significantly to block publishing delays. Blocks which are published late are more likely to be orphaned.
Those using Grafana+Prometheus can use the following query to view the 99th percentile latency for their primary BN:
histogram_quantile(0.99, rate(vc_beacon_node_latency_primary_endpoint_bucket[$__rate_interval]))
Known Issues
The optimised maxperf
profile is currently not working on Windows due to a suspected regression in the Rust compiler. The pre-compiled Windows binaries have been built with the release
profile instead and may exhibit slightly reduced performance compared to previous versions. See #3964 for details.
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 | --- |
The Beacon Node may be updated without the Validator Client, however we recommend updating both components for completeness.
Goerli users must update both the beacon node and the validator client.
See Update Priorities for more information about this table.
All Changes
- Release v3.5.1 (#4049)
- Add a flag to always use payloads from builders (#4052)
- Set Capella fork epoch for Goerli (#4044)
- Add VC metric for primary BN latency (#4051)
- Log a
WARN
in the VC for a mismatched Capella fork epoch (#4050) - Update dependencies incl tempfile (#4048)
- Optimise attestation selection proof signing (#4033)
- Optimise payload attributes calculation and add SSE (#4027)
- Add latency measurement service to VC (#4024)
- Permit a
null
LVH from anINVALID
response tonewPayload
(#4037) - Log a debug message when a request fails for a beacon node candidate (#4036)
- Cleaner logic for gossip subscriptions for new forks (#4030)
- Delete Kiln and Ropsten configs (#4038)
- Clean capella (#4019)
- Add more logs in the BN HTTP API during block production (#4025)
- Docs for Siren (#4023)
- Use consensus-spec-tests
v1.3.0-rc.3
(#4021) - Add content-type header to metrics server response (#3970)
- Allow compilation with no slasher backend (#3888)
- Execution Integration Tests Correction (#4034)
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-v3.5.1-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.5.1-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.5.1-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.5.1-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.5.1-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v3.5.1-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.5.1-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v3.5.1-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v3.5.1 | sigp/lighthouse |