Summary
Lighthouse v7.1.0 is a low-priority maintenance release containing several optimisations and new features.
- Hierarchical state diffs for hot state: 4x less disk I/O while running, and 10x less data on disk during non-finality.
- Optimised processing of Electra
SingleAttestation
messages. - Removal of legacy eth1 deposit contract logic.
- Default gas limit of 45M.
- Broadcast of light client updates from nodes with validators in the current sync committee, improving availability on the gossip network.
- Pre-built binaries for Apple Silicon (M1, etc).
β οΈ Breaking Changes β οΈ
Upgrading to Lighthouse v7.1.0 should require no manual intervention for most users (aside from updating the binary/Docker image). However, some CLI flags have undergone changes.
See the sections below for details on other backwards-incompatible changes:
- Removed CLI flags
- Deprecated CLI flags
- Database schema upgrade
- Logfile format (for developers)
- Modified HTTP APIs (for developers)
- Bootnode configuration (for developers)
β οΈ Removed CLI flags β οΈ
The following CLI flags which were previously deprecated have been removed from the beacon node. If you are still using them you need to delete them in order to run v7.1.0:
--eth1
--dummy-eth1
In addition, the crit
log level can no longer be provided to the flags --debug-level
or --logfile-debug-level
. We do not anticipate that this affects many users, as logging just CRIT
s is an extremely unusual configuration.
π’ Deprecated CLI flags π’
The following CLI flags have been deprecated and will result in warning logs if provided. You do not have to remove them immediately, but they are no longer functional and will trigger an error in a future version:
--logfile
(replaced by--logfile-dir
)--eth1-blocks-per-log-query
--eth1-purge-cache
--eth1-cache-follow-distance
--disable-deposit-contract-sync
Database Schema Upgrade
The beacon node database schema has been updated from v22 to v26 in order to support hot hierarchical state diffs and the upcoming Fulu fork. An automatic database migration will be applied upon upgrading to v7.1.0, and requires no manual intervention.
If you wish to downgrade to v7.0.1 you will have to manually migrate the database to schema v22 following the instructions for Database Migrations.
Breaking Changes For Developers π»
Logfile Format
Lighthouse's text logging format has been changed slightly as we upgrade to tracing
. We have endeavoured to keep things as similar as possible, but you may notice some differences, and any custom log parsers may need to be adjusted. We recommend using JSON logs for automated analysis.
Modified HTTP APIs
- Removed deprecated
POST /eth/v1/beacon/pool/attestations
. - Removed legacy
Attestation
support fromPOST /eth/v2/beacon/pool/attestations
. OnlySingleAttestation
s are now supported. - Fixed handling of
[]
requests on thePOST /eth/v1/beacon/states/{state_id}/validator_balances
endpoint. See: #7474.
Bootnode Configuration
Lighthouse now uses the more standard bootstap_nodes.yaml
filename for bootnodes instead of boot_enr.yaml
. See: #6956
Hierarchical State Diffs
Lighthouse's database has undergone another major upgrade, with the application of our hierarchical state diff scheme to the hot database. The result is greatly reduced I/O during normal operation (~4x reduction) due to less data stored on disk. As a trade-off, a little more CPU time is spent computing diffs. Overall total block import times should remain similar, but the reduction in I/O should help reduce 2nd order slowdowns (e.g. competition with the EL for IOPS) and improve attestation accuracy.
In addition, Lighthouse's database is now much more well-suited to periods of non-finality -- Lighthouse nodes should no longer run out of disk space, even with multiple weeks of non-finality.
The hot DB uses the same hierarchy configuration as the freezer DB, which keeps things simple and also enables some nice optimisations (like not re-computing diffs). For information on diff config, see the Database Configuration section of the book.
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 for more information about this table.
Lighthouse v7.1.0 is fully interoperable with Lighthouse v7.0.x, so you can update BN and VC separately.
All Changes
- Release v7.1.0 (#7609)
- Error from RPC
send_response
when request doesn't exist on the active inbound requests (#7663) - Reintroduce
--logfile
with deprecation warning (#7723) - Merge remote-tracking branch 'origin/stable' into release-v7.1.0
- Gossip recently computed light client data (#7023)
- Remove unneeded spans that caused debug logs to appear when level is set to
info
(#7707) - Bump default gas limit (#7695)
- Fix lookups of the block at
oldest_block_slot
(#7693) - Record v2 beacon blocks http api metrics separately (#7692)
- Fix and test checkpoint sync from genesis (#7689)
- Update fulu network configs and add
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS
(#7646) - Use prepare_beacon_proposer endpoint for validator custody registration (#7681)
- Update
SAMPLES_PER_SLOT
to be number of custody groups instead of data columns (#7683) - Custody persist fix (#7661)
- Add voluntary exit via validator manager (#6612)
- Test database schema stability (#7669)
- Add Michael as codeowner for store crate (#7667)
- Increase http client default timeout to 2s in
http-api
tests. (#7673) - Bump DB schema to v25 (#7666)
- Fix beacon_chain metrics descriptions (#6576)
- feat: better error message for light_client/bootstrap endpoint (#7597)
- Fix incorrect
waker
update condition (#7656) - Fix Rust 1.88 clippy errors & execution engine tests (#7657)
- Add gossip check (#7652)
- Do not compute sync selection proofs for the sync duty at the current slot (#7551)
- Rust 1.89 compiler lint fix (#7644)
- Remove instrumenting log level (#7636)
- Un-ignore EF test for v1.6.0-alpha.1 (#7632)
- Implement
validator_identities
Beacon API endpoint (#7462) - Send byrange responses in the correct requested range (#7611)
- Allow the
--beacon-nodes
list to be updated at runtime (#6551) - Remove all prod eth1 related code (#7133)
- Remove instrumenting log level (#7620)
- Remove reprocess channel (#7437)
- Hierarchical state diffs in hot DB (#6750)
- Single attestation "Full" implementation (#7444)
- Advertise
--advertise-false-custody-group-count
for testing PeerDAS (#7593) - Add data columns sidecars debug beacon API (#7591)
- Add more context to Late Block Re-orgs (#7592)
- Fix flaky test_rpc_block_reprocessing (#7595)
- Wait before column reconstruction (#7588)
- Drop stale registrations without reducing CGC (#7594)
- Batch verify KZG proofs for getBlobsV2 (#7582)
- Implement status v2 version (#7590)
- Implement basic validator custody framework (no backfill) (#7578)
- Data column sidecar event (#7587)
- Add genesis sync test to CI (#7561)
- Optimise parallelism in compute cells operations by zipping first (#7574)
- Changes for
fusaka-devnet-1
(#7559) - Store the libp2p/discv5 logs when stopping local-testnet (#7579)
- Reduce number of basic sim test nodes from 7 to 4 (#7566)
- Update kurtosis config and EL images (#7570)
- Add support for nightly tests (#7538)
- Don't create child lookup if parent is faulty (#7118)
- Add e2e sync tests to CI (#7530)
- Update key generation in validator manager (#7548)
- Fulu EF tests v1.6.0-alpha.0 (#7540)
- Checkpoint sync without the blobs from Fulu (#7549)
- Add a name to the Tokio task (#7544)
- Update
staking-deposit-cli
toethstaker-deposit-cli
(#7518) - Implement EIP-7892 BPO hardforks (#7521)
- Fix unexpected blob error and duplicate import in fetch blobs (#7541)
- Run Assertoor tests in CI (#6882)
- Add
console-subscriber
feature for debugging (#7529) - simulator: Fix
Failed to initialize dependency logging
(#7393) - Prevent
AvailabilityCheckError
when there's no new custody columns to import (#7533) - Mitigate flakiness in test_delayed_rpc_response (#7522)
- Remove support for database migrations prior to schema version v22 (#7332)
- Merge pull request #7525 from jimmygchen/mergify-again
- Remove redundant
and
- Fix condition
- Enable arithmetic lint in rate-limiter (#7025)
- Update mergify rules so that I can add
waiting-on-author
on a PR that's passing CI. Remove noisy comments. - Handle attestation validation errors (#7382)
- Verify
getBlobsV2
response and avoid reprocessing imported data columns (#7493) - Update
engine_getBlobsV2
response type and addgetBlobsV2
tests (#7505) - Fix formatting errors from cargo-sort (#7512)
- Publish EL Info in Metrics (#7052)
- Ensure logfile permissions are maintained after rotation (#7246)
- Improve log readability during rpc_tests (#7180)
- Revive network-test logs files in CI (#7459)
- Send execution_requests in fulu (#7500)
- Enable stdout logging in rpc_tests (#7506)
- Use slice.is_sorted now that it's stable (#7507)
- Update mergify rule to not evaluate PRs that are not ready for review - to reduce noise and avoid updating stale PRs. (#7494)
- Move notifier and latency service to
validator_services
(#7427) - Pass blobs into
ValidatorStore::sign_block
(#7497) - Fix blob download from checkpointz servers (#7495)
- Empty list
[]
to return all validators balances (#7474) - Correct reward denominator in op pool (#5047)
- Move MD059 rule to configuration file (#7484)
- Some updates to Lighthouse book (#7455)
- feat: Add docker reproducible builds (#6799)
- Silence
Uninitialized
warn log on start-up (#7411) - ContextDeserialize and Beacon API Improvements (#7372)
- Update mdlint to disable descriptive-link-text (#7481)
- Change default EngineState to online (#7417)
- impl from hash256 for
ExecutionBlockHash
(#7369) - Delete
at-most
inlighthouse vm create
(#7469) - Rust clippy 1.87 lint fixes (#7471)
- One more attempt to fix mergify condition. (#7472)
- Prevent mergify from updating labels while CI is still running. (#7470)
- simulator: Write dependency logs to separate files (#7433)
- Added E::slots_per_epoch() to deneb time calculation (#7458)
- Fix mergify infinite loop. (#7463)
- Add additional mergify rules to automate triaging (#7451)
- Make DAG construction more permissive (#7460)
- Extract get_domain for VoluntaryExit (#7454)
- Next sync committee branch bug (#7443)
- impl test random for some types (#7370)
- Siren Pectra Feature Updates (#7396)
- Siren installation improvement (#7404)
peerdas-devnet-7
: updateDataColumnSidecarsByRoot
request to useDataColumnsByRootIdentifier
(#7399)- update gossipsub to the latest upstream revision (#7284)
- simulator: Persist beacon logs (#7394)
- Retry custody requests after peer metadata updates (#6975)
- Add Electra forks to basic sim tests (#7199)
- Add ARM binary for macOS in release (#7416)
- Add a default timeout to all
BeaconNodeHttpClient
requests (#7400) - Don't publish data columns reconstructed from RPC columns to the gossip network (#7409)
- Add requires --http when using vc subcommands --http-port (#7405)
- Modularize validator store (#6705)
- Make range sync peer loadbalancing PeerDAS-friendly (#6922)
- Change slog to tracing in comments (#7378)
- docs: fix broken link to voluntary exit guide (#7387)
- Make sure to log SyncingChain ID (#7359)
- Compute proposer shuffling only once in gossip verification (#7304)
- Optimize
validate_data_columns
(#7326) - Add documentation for VC API
/lighthouse/beacon/health
(#6653) - vc: increase default gas limit (#6897)
- Changing
boot_enr.yaml
to expectbootstap_nodes.yaml
for pectra devnet (#6956) - Revise consolidation info in Lighthouse book (#7351)
- feat: presign for validator account (#6747)
- Delayed RPC Send Using Tokens (#5923)
- Fix Kurtosis testnet (#7350)
- Enable cross-compiling for riscv64 architecture (#7346)
- Revise logging when
queue is full
(#7324) - Fix GitHub releases page looks bad in GitHub dark theme (#7340)
- Merge remote-tracking branch 'origin/stable' into unstable
- Fix Kurtosis doppelganger CI (#7343)
- Update Lighthouse Book for Electra features (#7280)
- feat: update mainnet bootnodes (#7279)
- Restore HTTP API logging and add more metrics (#7225)
- Add
MAX_BLOBS_PER_BLOCK_FULU
config (#7161) - Fix execution engine integration tests with latest geth version (#6996)
- Fix wrong custody column count for lookup blocks (#7281)
- Add riscv64 build support (#7309)
- Merge branch 'release-v7.0.0' into unstable
- Fix for #6296: Deterministic RNG in peer DAS publish block tests (#7192)
- Offloading KZG Proof Computation from the beacon node (#7117)
- Fullnodes to publish data columns from EL
getBlobs
(#7258) - Bump version to v7.1.0-beta.0 (not a release) (#7269)
- Drop head tracker for summaries DAG (#6744)
- Align logs (#7256)
- Remove CLI conflict for secrets-dir and datadir (#7265)
- Merge branch 'release-v7.0.0' into backmerge-for-openssl
- Add missing error log and remove redundant id field from lookup logs (#6990)
- Fix the
getBlobs
metric and ensure it is recorded promptly to prevent miscounts (#7188) - Disable log color when running in non-interactive mode (#7240)
- Merge branch 'release-v7.0.0' into v7-backmerge
- RPC RequestId Cleanup (#7238)
- Attempt to fix flaky network tests (#7244)
- Merge remote-tracking branch 'origin/release-v7.0.0' into backmerge-apr-2
- Tracing cleanup (#7168)
- Change
genesis-state-url-timeout
(#7112) - Merge remote-tracking branch 'origin/release-v7.0.0' into unstable
- Remove
crit
as an option from the CLI entirely (#7169) - Remove CGC from data_availability checker (#7033)
- Ensure sqlite and rusqlite are optional in
consensus/types
(#7182) - Some updates to Lighthouse book (#6995)
- Fix more merge conflicts between unstable and release-v7.0.0
- resolve merge conflicts between untstable and release-v7.0.0
- Add missing
osaka-time
lcli param (#7183) - Track request IDs in RangeBlockComponentsRequest (#6998)
- Remove
discv5
logs from logfile output (#7150) - Remove unnecessary
filter_layer
in logger builder (#7149) - Log
file appender
initialization errors properly (#7137) - update gossipsub to the latest upstream revision (#7130)
- decouple
eth2
fromstore
andlighthouse_network
(#6680) - Log range sync download errors (#6991)
- Integrate tracing (#6339)
- switch to upstream gossipsub (#7057)
- Remove duplicate sync_tolerance_epochs config (#7109)
- chore: update to rust-eth-kzg to 0.5.4 (#7020)
- Bump SSZ version for larger bitfield
SmallVec
(#6915) - Merge remote-tracking branch 'origin/release-v7.0.0' into unstable
- Validator Registration ssz support (#7081)
- Remove
watch
(#7048) - Cache validator registration only after successful publish (#7034)
- Merge remote-tracking branch 'origin/release-v7.0.0' into unstable
- Add test flag to override
SYNC_TOLERANCE_EPOCHS
for range sync testing (#7030) - Remove LC server config from HTTP API (#7017)
- feat: adds CLI flags to delay publishing for edge case testing on PeerDAS devnets (#6947)
- Block availability data enum (#6866)
- Expose blst internals (#6829)
- update codeowners, to be more specific (#7021)
- Add spamoor_blob in network_params.yaml (#7012)
- Merge remote-tracking branch 'origin/release-v7.0.0' into unstable
- Use RpcSend on RPC::self_limiter::ready_requests (#6634)
- Merge remote-tracking branch 'origin/release-v7.0.0-beta.0' into unstable
- Unsubscribe blob topics at Fulu fork (#6932)
- Remove un-used batch sync error condition (#6917)
- Add PeerDAS metrics to track subnets without peers (#6928)
- Fix misc PeerDAS todos (#6862)
- Merge remote-tracking branch 'origin/release-v7.0.0-beta.0' into unstable
- Add more range sync tests (#6872)
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-v7.1.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | lighthouse-v7.1.0-aarch64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v7.1.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v7.1.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v7.1.0-x86_64-windows.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v7.1.0 | sigp/lighthouse |