Changelog
Features
- allow block import after NUMBER_OF_COLUMNS / 2 (#8818) (@wemeetagain)
- implement ePBS gossip topics (#8616) (@ensi321)
- async block import persistence (#8784) (@wemeetagain)
- add API and logs to display monitored validator indices (#8702) (@dik654)
- make builders non-validating staked actors (#8759) (@ensi321)
- enable specref features & remove unnecessary spec items (#8788) (@jtraglia)
- add spec references, a mapping of spec to implementation (#8778) (@jtraglia)
- support single db batch operation (#8268) (@nazarhussain)
- api: add runtime direct peer management endpoints (#8853) (@lodekeeper)
- api: add custody info endpoint for PeerDAS (#8826) (@lodekeeper)
- network: add directPeers support for GossipSub (#8831) (@catwith1hat)
Bug Fixes
- consistently check block input cache before checking hot db for blocks (#8823) (@nflaig)
- remove index label from validator_monitor_prev_epoch_on_chain_balance metric (#8824) (@lodekeeper)
- make column reconstruction delay a function of slot time (#8827) (@lodekeeper)
- remove docker build stage to rebuild native dependencies (#8819) (@nflaig)
- revert changes to
getPendingBalanceToWithdraw(#8812) (@ensi321) - handle slot 0 correctly in data column sidecar RPC handler (#8783) (@qu0b)
- avoid BeaconState commit() clone() in beacon-node (#8728) (@twoeths)
- pass fork info used to compute domain to remote signer (#8776) (@nflaig)
- return reward delta instead of validator balance as sync committee rewards (#8774) (@nflaig)
- api: allow duplicate columns/blobs in publishBlock for multi-BN setups (#8849) (@lodekeeper)
- network: handle invalid peer public key in onLibp2pPeerConnect (#8829) (@lodekeeper)
- docker: reinstall dependencies on target platform (#8816) (@wemeetagain)
Performance
- optimize byteArrayEquals with hybrid loop/Buffer.compare (#8846) (@lodekeeper)
Refactoring
- update signature sets to use validator indices instead of pubkeys (#8803) (@wemeetagain)
- getBlockSlotState() (#8806) (@twoeths)
- generalize state repositories (#8732) (@twoeths)
- query ShufflingCache for shuffling data (#8743) (@twoeths)
- remove build() and async shuffling calculation (#8688) (@guha-rahul)
- simplify assertValidAttesterSlashing() assertValidProposerSlashing() (#8744) (@twoeths)
- simplify isValidBlsToExecutionChange() (#8746) (@twoeths)
Continuous Integration
- disable bun unit tests in code (#8851) (@philknows)
Tests
- add e2e test to ensure chainConfig values match consensus-specs (#8859) (@lodekeeper)
- increase timeouts for flaky E2E tests on slow CI (#8860) (@lodekeeper)
- increase lightclient e2e test timeout to prevent flaky failures (#8841) (@lodekeeper)
- correct lightclient committee root test for electra (#8825) (@lodekeeper)
- allow custom db path and
resumeFromDbingetDevBeaconNode(#8742) (@vedant-asati)
Maintenance
- drop support for node v22 (#8872) (@nflaig)
- upgrade fastify to 5.7.4 (#8842) (@lodekeeper)
- cleanup bigint buffer utils (#8863) (@lodekeeper)
- rename adhoc docker workflow to manual and reuse docker.yml (#8862) (@lodekeeper)
- add manually triggered workflow for ad-hoc Docker image tagging (#8840) (@lodekeeper)
- update bigint-buffer2 to v1.0.5 and re-enable bun CI (#8855) (@lodekeeper)
- fix lint warnings (#8854) (@lodekeeper)
- add .venv and checkpoint_states to .gitignore (#8852) (@lodekeeper)
- remove in-memory state caches (#8813) (@twoeths)
- remove stale references to merge block (#8834) (@nflaig)
- use native arm64 runners instead of qemu for docker builds (#8821) (@nflaig)
- replace bigint-buffer (#8789) (@rnfairchild)
- avoid passing CachedBeaconStateGloas to state-transition apis from beacon-node (#8833) (@twoeths)
- merge v1.39.1 back to unstable (#8820) (@philknows)
- fix lint warnings (#8815) (@nflaig)
- add axios to root package.json to fix downloading dashboards (#8807) (@nflaig)
- add assertions to check prior withdrawals against limit (#8802) (@nflaig)
- fix deploy docs workflow (#8799) (@nflaig)
- merge stable v1.39.0 back to unstable (#8798) (@philknows)
- improve archiveBlocks log (#8795) (@twoeths)
- skip Map benchmarks (#8787) (@twoeths)
- skip snappy benchmarks (#8786) (@twoeths)
- update test current file launch config to work with pnpm (#8775) (@nflaig)
- remove getAttestationsForBlockPreElectra (#8721) (@twoeths)
- deps: bump qs from 6.11.1 to 6.14.1 (#8724) (@dependabot[bot])
- deps: bump js-yaml from 4.1.0 to 4.1.1 (#8733) (@dependabot[bot])
- deps: bump axios from 1.8.2 to 1.12.0 (#8681) (@dependabot[bot])
- deps: bump systeminformation from 5.23.8 to 5.27.14 (#8734) (@dependabot[bot])
Documentation
- add AGENTS.md for AI coding assistants (#8844) (@lodekeeper)
- clarify release note step (#8800) (@philknows)