Skip to content

Fantabulous

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 10 Jul 03:47
v7.1.0
cfb1f73

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 CRITs 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 from POST /eth/v2/beacon/pool/attestations. Only SingleAttestations are now supported.
  • Fixed handling of [] requests on the POST /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 to ethstaker-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 add getBlobsV2 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 in lighthouse 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: update DataColumnSidecarsByRoot request to use DataColumnsByRootIdentifier (#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 expect bootstap_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 from store and lighthouse_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
Apple logo x86_64 lighthouse-v7.1.0-x86_64-apple-darwin.tar.gz PGP Signature
Apple logo aarch64 lighthouse-v7.1.0-aarch64-apple-darwin.tar.gz PGP Signature
Linux logo x86_64 lighthouse-v7.1.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
Raspberrypi logo aarch64 lighthouse-v7.1.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
Windows logo x86_64 lighthouse-v7.1.0-x86_64-windows.tar.gz PGP Signature
System Option - Resource
Docker logo Docker v7.1.0 sigp/lighthouse