v7.1.3 - 2026-03-18
This release brings extensive Gloas (next fork) groundwork, a major logging infrastructure overhaul, and numerous performance optimizations across the beacon chain. A security update to go-ethereum v1.16.8 is also included. Operators are encouraged to update at their convenience.
Release highlights:
- Logging revamp: New ephemeral debug logfile (24h retention, enabled by default), per-package loggers with CI enforcement, per-hook verbosity control (
--log.vmodule), and a version banner at startup. - Performance: Forkchoice updates moved to background, post-Electra attestation data cached per slot, parallel data column cache warmup, reduced heap allocations in SSZ marshaling and
MixInLength, and proposer preprocessing behind a feature flag. - Validator client: gRPC fallback now matches the REST API implementation — both connect only to fully synced nodes. The gRPC health endpoint returns an error on syncing/optimistic status.
- Security: go-ethereum updated to v1.16.8; fixed an authentication bypass on
/v2/validator/*endpoints.
There are no known security issues in this release.
Added
- Use the head state to validate attestations for the previous epoch if head is compatible with the target checkpoint. [PR]
- Added separate logrus hooks for handling the formatting and output of terminal logs vs log-file logs, instead of the. [PR]
- Batch publish data columns for faster data propogation. [PR]
--disable-get-blobs-v2flag. [PR]- Update spectests to v1.7.0-alpha.0. [PR]
- Added basic Gloas builder support (
Buildermessage andBeaconStateGloasbuilders/next_withdrawal_builder_indexfields). [PR] - Added an ephemeral debug logfile that for beacon and validator nodes that captures debug-level logs for 24 hours. It. [PR]
- Add a feature flag to pass spectests with low validator count. [PR]
- Add feature flag
--enable-proposer-preprocessingto process the block and verify signatures before proposing. [PR] - Add
ProofByFieldIndexto generalize merkle proof generation forBeaconState. [PR] - Update spectests to v1.7.0-alpha-1. [PR]
- Add feature flag to use hashtree instead of gohashtre. [PR]
- Migrate to cold with the hdiff feature. [PR]
- Adding basic fulu fork transition support for mainnet and minimal e2e tests (multi scenario is not included). [PR]
commitment_count_in_gossip_processed_blocksgauge metric to track the number of blob KZG commitments in processed beacon blocks. [PR]- Add Gloas latest execution bid processing. [PR]
- Added shell completion support for
beacon-chainandvalidatorCLI tools. [PR] - add pending payments processing and quorum threshold, plus spectests and state hooks (rotate/append). [PR]
- Add slot processing with execution payload availability updates. [PR]
- Implement modified proposer slashing for gloas. [PR]
- Added missing beacon config in fulu so that the presets don't go missing in /eth/v1/config/spec beacon api. [PR]
- Close opened file in data_column.go. [PR]
- Flag
--log.vmoduleto set per-package verbosity levels for logging. [PR] - Added a version log at startup to display the version of the build. [PR]
- gloas block return support for /eth/v2/beacon/blocks/{block_id} and /eth/v1/beacon/blocks/{block_id}/root endpoints. [PR]
- Add Gloas process payload attestation. [PR]
- Initialize db with state-diff feature flag. [PR]
- Gloas-specific timing intervals for validator attestation, aggregation, and sync duties. [PR]
- Added new proofCollector type to ssz-query. [PR]
- Added README for maintaining specrefs. [PR]
- The ability to download the nightly reference tests from a specific day. [PR]
- Set beacon node options after reading the config file. [PR]
- Implement finalization-based eviction for
CheckpointStateCache. [PR]
Changed
- Performance improvement in ProcessConsolidationRequests: Use more performance HasPendingBalanceToWithdraw instead of PendingBalanceToWithdraw as no need to calculate full total pending balance. [PR]
- Extend
httperroranalyzer to more functions. [PR] - Do not check block signature on state transition. [PR]
- Notify the engine about forkchoice updates in the background. [PR]
- Use a separate context when updating the slot cache. [PR]
- Data column sidecars cache warmup: Process in parallel all sidecars for a given epoch. [PR]
- Use lookahead to validate data column sidecar proposer index. [PR]
- Summarize DEBUG log corresponding to incoming via gossip data column sidecar. [PR]
- Added a log.go file for every important package with a logger variable containing a
packagefield set to the package. [PR] - Added a CI check to ensure every important package has a log.go file with the correct
packagefield. [PR] - Changed the log formatter to use this
packagefield instead of the previousprefixfield. [PR] - Replaced
time.Sleepwithrequire.Eventuallypolling in tests to fix flaky behavior caused by race conditions between goroutines and assertions. [PR] - changed IsHealthy check to IsReady for validator client's interpretation from /eth/v1/node/health, 206 will now return false as the node is syncing. [PR]
- Performance improvement in state (MarshalSSZTo): use copy() instead of byte-by-byte loop which isn't required. [PR]
- Moved verbosity settings to be configurable per hook, rather than just globally. This allows us to control the. [PR]
- updated go ethereum to 1.16.7. [PR]
- Use dependent root and target root to verify data column proposer index. [PR]
- post electra we now call attestation data once per slot and use a cache for subsequent requests. [PR]
- Avoid unnessary heap allocation while calling MixInLength. [PR]
- Log commitments instead of indices in missingCommitError. [PR]
- Added some defensive checks to prevent overflows in block batch requests. [PR]
- gRPC health endpoint will now return an error on syncing or optimistic status showing that it's unavailable. [PR]
- Sample PTC per committee to reduce allocations. [PR]
- gRPC fallback now matches rest api implementation and will also check and connect to only synced nodes. [PR]
- Improved node fallback logs. [PR]
- Improved integrations with ethspecify so specrefs can be used throughout the codebase. [PR]
- Fixed the logging issue described in #16314. [PR]
Removed
- removed github.com/MariusVanDerWijden/FuzzyVM and github.com/MariusVanDerWijden/tx-fuzz due to lack of support post 1.16.7, only used in e2e for transaction fuzzing. [PR]
- Remove unused
delayparameter fromfetchOriginDataColumnSidecarsfunction. [PR] - Batching of KZG verification for incoming via gossip data column sidecars. [PR]
--disable-get-blobs-v2flag from help. [PR]- gRPC resolver for load balancing, the new implementation matches rest api's so we should remove the resolver so it's handled the same way for consistency. [PR]
Fixed
- avoid panic when fork schedule is empty #16175. [PR]
- Fix validation logic for
--backfill-oldest-slot, which was rejecting slots newer than 1056767. [PR] - Don't call trace.WithMaxExportBatchSize(trace.DefaultMaxExportBatchSize) twice. [PR]
- When adding the
--[semi-]supernodeflag, update the ealiest available slot accordingly. [PR] - fixed broken and old links to actual. [PR]
- stop SlotIntervalTicker goroutine leaks #16241. [PR]
- Fix
prysmctl testnet generate-genesisto use the timestamp from--geth-genesis-json-inwhen--genesis-timeis not explicitly provided. [PR] - Prevent authentication bypass on direct
/v2/validator/*endpoints by enforcing auth checks for non-public routes. [PR] - Fixed a typo: AggregrateDueBPS -> AggregateDueBPS. [PR]
- Fixed a bug in
hack/check-logs.shwhere untracked files were ignored. [PR] - Fix hashtree release builds. [PR]
- Fix Bazel build failure on macOS x86_64 (darwin_amd64) (adds missing assembly stub to hashtree patch). [PR]
- a potential race condition when switching hosts quickly and reconnecting to same host on an old connection. [PR]
- Fixed a bug where
cmd/beacon-chain/executionwas being ignored byhack/gen-logs.shdue to a.gitignorerule. [PR]
Security
- Update go-ethereum to v1.16.8. [PR]