Releases: ChainSafe/lodestar
Release v1.38.0
Good day Lodestar users! We just released v1.38.0 which introduces performance improvements for your post-Fusaka nodes. This upgrade is highly recommended if you've seen performance declines since the Fusaka fork.
Lodestar is now using nodeJS v24 by default, which introduces improved performance metrics, seen especially by supernodes. If you are building from source, we recommend that you use nodeJS v24, the current LTS as of October.
Note that holesky configurations have been removed and will no longer be a network configuration option.
Happy holidays and see you in 2026! 🚀
Changelog
Features
- use snappy-wasm (#6483) (#8647) (@wemeetagain)
- implement epbs state transition (#8507) (@ensi321)
- support and test node 24 (#8645) (@wemeetagain)
- track DataTransform metrics (#8639) (@twoeths)
Bug Fixes
- don't try to serve states for future slots (#8665) (@nflaig)
- avoid recomputing indexed attestations during block import (#8637) (@nflaig)
- skip genesis slot signature check when validating ERA files (#8642) (@guha-rahul)
Tests
Maintenance
- v1.38.0 release (#8687) (@philknows)
- update publish workflow for rc an stan;e (#8686) (@nazarhussain)
- pass secrets to nested publish workflows (#8684) (@nazarhussain)
- use github runners for publish workflow (#8683) (@nazarhussain)
- update publish workflow to use job syntax instead of steps (#8682) (@nazarhussain)
- use npm trusted publishing (#8675) (@nazarhussain)
- remove holesky configs and update tests to hoodi (#8622) (@KoxyG)
- display cgc in lodestar summary dashboard (#8668) (@nflaig)
- improve benchmark (#8664) (@twoeths)
- fix test current file launch args (#8632) (@nflaig)
- merge v1.37.0 stable back to unstable (#8643) (@philknows)
- deps: bump mdast-util-to-hast from 13.1.0 to 13.2.1 in /docs (#8649) (@dependabot[bot])
Documentation
- add ERA package to readme (#8644) (@guha-rahul)
Release v1.38.0-rc.0
Changelog
Features
- use snappy-wasm (#6483) (#8647) (@wemeetagain)
- implement epbs state transition (#8507) (@ensi321)
- support and test node 24 (#8645) (@wemeetagain)
- track DataTransform metrics (#8639) (@twoeths)
Bug Fixes
- don't try to serve states for future slots (#8665) (@nflaig)
- avoid recomputing indexed attestations during block import (#8637) (@nflaig)
- skip genesis slot signature check when validating ERA files (#8642) (@guha-rahul)
Tests
Maintenance
- update publish workflow for rc an stan;e (#8686) (@nazarhussain)
- pass secrets to nested publish workflows (#8684) (@nazarhussain)
- use github runners for publish workflow (#8683) (@nazarhussain)
- update publish workflow to use job syntax instead of steps (#8682) (@nazarhussain)
- use npm trusted publishing (#8675) (@nazarhussain)
- remove holesky configs and update tests to hoodi (#8622) (@KoxyG)
- display cgc in lodestar summary dashboard (#8668) (@nflaig)
- improve benchmark (#8664) (@twoeths)
- fix test current file launch args (#8632) (@nflaig)
- merge v1.37.0 stable back to unstable (#8643) (@philknows)
- deps: bump mdast-util-to-hast from 13.1.0 to 13.2.1 in /docs (#8649) (@dependabot[bot])
Documentation
- add ERA package to readme (#8644) (@guha-rahul)
Release v1.37.0
Happy December Lodestar users! We just published a recommended maintenance release v1.37.0 for all networks. This release includes a performance fix seen in other Fusaka testnets and also includes a validator client option to disable slot skipping for Obol users (enabled by default when using the --distributed flag).
Both versions, v1.36.0 and v1.37.0 remain compatible for the Fusaka mainnet hard fork on December 3rd.
See you in Fusaka! 🦓
Changelog
Features
- add validator client option to disable skipping slots (#8631) (@nflaig)
- cache serialized data column sidecars (#8627) (@wemeetagain)
- add Era File Reading and Writing (#8035) (@guha-rahul)
- enable gloas spec tests (#8609) (@ensi321)
- add proposer duties v2 endpoint (#8597) (@nflaig)
Bug Fixes
- compare signature bytes in proposer signature cache check (#8636) (@nflaig)
- verify proposer signatures once per slot (#8620) (@twoeths)
Refactoring
- introduce
safe-blockto fork-choice (#8618) (@nazarhussain)
Tests
- update web3signer e2e tests to fulu (#8635) (@nflaig)
- improve type check performance (#8611) (@nazarhussain)
- update to vitest 4 to use builtin bun support (#8599) (@nazarhussain)
Maintenance
- v1.37.0 release (#8640) (@philknows)
- ai disclosure on PR template (#8614) (@philknows)
- remove
bun:ffiusage across all packages (#8613) (@nazarhussain) - merge v1.36.0 back to unstable (#8608) (@philknows)
- deps: bump node-forge from 1.3.1 to 1.3.2 in /docs (#8633) (@dependabot[bot])
Release v1.37.0-rc.0
Changelog
Features
- add validator client option to disable skipping slots (#8631) (@nflaig)
- cache serialized data column sidecars (#8627) (@wemeetagain)
- add Era File Reading and Writing (#8035) (@guha-rahul)
- enable gloas spec tests (#8609) (@ensi321)
- add proposer duties v2 endpoint (#8597) (@nflaig)
Bug Fixes
- compare signature bytes in proposer signature cache check (#8636) (@nflaig)
- verify proposer signatures once per slot (#8620) (@twoeths)
Refactoring
- introduce
safe-blockto fork-choice (#8618) (@nazarhussain)
Tests
- update web3signer e2e tests to fulu (#8635) (@nflaig)
- improve type check performance (#8611) (@nazarhussain)
- update to vitest 4 to use builtin bun support (#8599) (@nazarhussain)
Maintenance
- ai disclosure on PR template (#8614) (@philknows)
- remove
bun:ffiusage across all packages (#8613) (@nazarhussain) - merge v1.36.0 back to unstable (#8608) (@philknows)
- deps: bump node-forge from 1.3.1 to 1.3.2 in /docs (#8633) (@dependabot[bot])
Release v1.36.0
Happy November Lodestar users! We are excited to announce our Fusaka mainnet release with version 1.36.0!
It is mandatory for all node operators to utilize this version or above to be Fusaka fork ready for the scheduled December 3rd hard fork and subsequent BPO forks: BPO1 (December 9th) and BPO2 (January 7th). A reminder for node operators that if you do not run Lodestar or any client with validators and wish to custody all data columns sidecars with your beacon node, you must use the --supernode flag to indicate this, otherwise your node will, by default, custody the minimum amount of 4 or higher depending on your attached validator count.
We have introduced a --semiSupernode flag for more efficient data availability with lower bandwidth and storage requirements. This will custody half the data column sidecar subnets to support blob reconstruction should you need them for other dependents. See #8568 for full details.
This release also increases the default gas limit to signal for 60 million gas blocks, up from the 45 million gas blocks currently on mainnet.
Other optimizations and performance enhancements found on testnets and from the Fusaka bug bounty have also been included with this version.
As usual, ensure you've updated your entire stack to mainnet-ready versions of Fusaka alongside your Lodestar beacon node/validator client. Happy Fusaka fork everyone ! 🍴🦓
Changelog
Features
- log agent, version and peerid for batched gossip errors (#8604) (@matthewkeil)
- include commit hash in network lodestar version (#8605) (@nflaig)
- signature verification for reqresp DA (#8580) (@matthewkeil)
- log clientAgent and clientVersion for gossip errors (#8601) (@matthewkeil)
- increase default gas limit to 60M (#8600) (@philknows)
- update
node-eth-kzgto 0.9.1 (#8594) (@kevaundray) - schedule fulu and BPOs on mainnet (#8590) (@nflaig)
- activate fulu on ephemery (#8587) (@nflaig)
- add option to prune persisted cp states (#8582) (@nflaig)
- enforce earliest available slot for incoming reqresp (#8553) (@matthewkeil)
- use classic-level in bun (#8575) (@wemeetagain)
- add semi supernode flag (#8568) (@nflaig)
- add partial blob reconstruction (#8567) (@nflaig)
- use bytes from lodestar-bun (#8562) (@wemeetagain)
- use snappy from lodestar-bun (#8557) (@wemeetagain)
- sync from unfinalized checkpoint state (#8527) (@nflaig)
- take Bun profile (#8515) (@twoeths)
- track computeDeltas metrics (#8531) (@twoeths)
- track performance of processFinalizedCheckpoint() (#8530) (@twoeths)
- add more specific error codes to voluntary exit error (#8486) (@phertyameen)
- update networking config to match CL spec (#8510) (@nflaig)
Bug Fixes
- prevent columns that arrive after block import from getting processed (#8598) (@matthewkeil)
- resubscribe to beacon subnets on current epoch reorg (#8570) (@phertyameen)
- refactor validateColumnsByRangeResponse (#8482) (@matthewkeil)
- update local status fork digest on fork boundary transition (#8561) (@nflaig)
- remove extraneous fields from
/eth/v1/node/peersresponse (#8554) (@nflaig) - ignore already known data column sidecars (#8542) (@nflaig)
- respect
reverseandlimitin bun leveldb controller (#8529) (@wemeetagain) - only trigger get blobs and data column reconstruction if missing data (#8536) (@nflaig)
- ensure data column sidecars respect blob limit (#8534) (@nflaig)
- do not create default cache entry for unknown proposers (#8532) (@nflaig)
- avoid emitting stale light client updates (#8522) (@nflaig)
- avoid Set.has() in computeDeltas() (#8525) (@twoeths)
- improve heap size limit log (#8516) (@twoeths)
Refactoring
Tests
- fix broken spec tests for merkle proofs (#8469) (@nazarhussain)
Maintenance
- release v1.36.0 (#8607) (@philknows)
- include block slot in proposal signature errors (#8603) (@nflaig)
- update gnosis preset (#8593) (@nflaig)
- remove usage of
prettyBytesin errors (#8589) (@nflaig) - migrate to
consensus-specsfor spec tests (#8591) (@ensi321) - downgrade enr without tcp multiaddr log to warning (#8586) (@nflaig)
- new BeaconChain dashboard (#8581) (@twoeths)
- unbreak lodestar dev command (#8577) (@nflaig)
- #8562 cleanup (#8563) (@wemeetagain)
- fix build after merge to unstable (#8558) (@nflaig)
- update execution payload and blobs bundle for fulu (#8556) (@nflaig)
- decompose VoteTracker (#8549) (@twoeths)
- update lodestar-bun (#8555) (@wemeetagain)
- add bunfig.toml (#8551) (@wemeetagain)
- fix type checks in merkle proof test (#8550) (@nflaig)
- unhide prune history option (#8547) (@nflaig)
- cleanup types exports for all packages (#8434) (@nazarhussain)
- more logs for maybeArchiveState() (#8541) (@twoeths)
- track computeDeltas() metrics on Grafana (#8539) (@twoeths)
- simplify start epoch in head chain range sync (#8535) (@nflaig)
- remove listener of blob sidecars chain event on close (#8520) (@nflaig)
- merge v1.35.0 back to unstable (#8514) (@philknows)
Release v1.36.0-rc.4
Changelog
Features
- log agent, version and peerid for batched gossip errors (#8604) (@matthewkeil)
- include commit hash in network lodestar version (#8605) (@nflaig)
- signature verification for reqresp DA (#8580) (@matthewkeil)
- log clientAgent and clientVersion for gossip errors (#8601) (@matthewkeil)
- increase default gas limit to 60M (#8600) (@philknows)
- update
node-eth-kzgto 0.9.1 (#8594) (@kevaundray) - schedule fulu and BPOs on mainnet (#8590) (@nflaig)
- activate fulu on ephemery (#8587) (@nflaig)
- add option to prune persisted cp states (#8582) (@nflaig)
- enforce earliest available slot for incoming reqresp (#8553) (@matthewkeil)
- use classic-level in bun (#8575) (@wemeetagain)
- add semi supernode flag (#8568) (@nflaig)
- add partial blob reconstruction (#8567) (@nflaig)
- use bytes from lodestar-bun (#8562) (@wemeetagain)
- use snappy from lodestar-bun (#8557) (@wemeetagain)
- sync from unfinalized checkpoint state (#8527) (@nflaig)
- take Bun profile (#8515) (@twoeths)
- track computeDeltas metrics (#8531) (@twoeths)
- track performance of processFinalizedCheckpoint() (#8530) (@twoeths)
- add more specific error codes to voluntary exit error (#8486) (@phertyameen)
- update networking config to match CL spec (#8510) (@nflaig)
Bug Fixes
- prevent columns that arrive after block import from getting processed (#8598) (@matthewkeil)
- resubscribe to beacon subnets on current epoch reorg (#8570) (@phertyameen)
- refactor validateColumnsByRangeResponse (#8482) (@matthewkeil)
- update local status fork digest on fork boundary transition (#8561) (@nflaig)
- remove extraneous fields from
/eth/v1/node/peersresponse (#8554) (@nflaig) - ignore already known data column sidecars (#8542) (@nflaig)
- respect
reverseandlimitin bun leveldb controller (#8529) (@wemeetagain) - only trigger get blobs and data column reconstruction if missing data (#8536) (@nflaig)
- ensure data column sidecars respect blob limit (#8534) (@nflaig)
- do not create default cache entry for unknown proposers (#8532) (@nflaig)
- avoid emitting stale light client updates (#8522) (@nflaig)
- avoid Set.has() in computeDeltas() (#8525) (@twoeths)
- improve heap size limit log (#8516) (@twoeths)
Refactoring
Tests
- fix broken spec tests for merkle proofs (#8469) (@nazarhussain)
Maintenance
- include block slot in proposal signature errors (#8603) (@nflaig)
- update gnosis preset (#8593) (@nflaig)
- remove usage of
prettyBytesin errors (#8589) (@nflaig) - migrate to
consensus-specsfor spec tests (#8591) (@ensi321) - downgrade enr without tcp multiaddr log to warning (#8586) (@nflaig)
- new BeaconChain dashboard (#8581) (@twoeths)
- unbreak lodestar dev command (#8577) (@nflaig)
- #8562 cleanup (#8563) (@wemeetagain)
- fix build after merge to unstable (#8558) (@nflaig)
- update execution payload and blobs bundle for fulu (#8556) (@nflaig)
- decompose VoteTracker (#8549) (@twoeths)
- update lodestar-bun (#8555) (@wemeetagain)
- add bunfig.toml (#8551) (@wemeetagain)
- fix type checks in merkle proof test (#8550) (@nflaig)
- unhide prune history option (#8547) (@nflaig)
- cleanup types exports for all packages (#8434) (@nazarhussain)
- more logs for maybeArchiveState() (#8541) (@twoeths)
- track computeDeltas() metrics on Grafana (#8539) (@twoeths)
- simplify start epoch in head chain range sync (#8535) (@nflaig)
- remove listener of blob sidecars chain event on close (#8520) (@nflaig)
- merge v1.35.0 back to unstable (#8514) (@philknows)
Release v1.36.0-rc.3
Changelog
Features
- signature verification for reqresp DA (#8580) (@matthewkeil)
- log clientAgent and clientVersion for gossip errors (#8601) (@matthewkeil)
- increase default gas limit to 60M (#8600) (@philknows)
- update
node-eth-kzgto 0.9.1 (#8594) (@kevaundray) - schedule fulu and BPOs on mainnet (#8590) (@nflaig)
- activate fulu on ephemery (#8587) (@nflaig)
- add option to prune persisted cp states (#8582) (@nflaig)
- enforce earliest available slot for incoming reqresp (#8553) (@matthewkeil)
- use classic-level in bun (#8575) (@wemeetagain)
- add semi supernode flag (#8568) (@nflaig)
- add partial blob reconstruction (#8567) (@nflaig)
- use bytes from lodestar-bun (#8562) (@wemeetagain)
- use snappy from lodestar-bun (#8557) (@wemeetagain)
- sync from unfinalized checkpoint state (#8527) (@nflaig)
- take Bun profile (#8515) (@twoeths)
- track computeDeltas metrics (#8531) (@twoeths)
- track performance of processFinalizedCheckpoint() (#8530) (@twoeths)
- add more specific error codes to voluntary exit error (#8486) (@phertyameen)
- update networking config to match CL spec (#8510) (@nflaig)
Bug Fixes
- prevent columns that arrive after block import from getting processed (#8598) (@matthewkeil)
- resubscribe to beacon subnets on current epoch reorg (#8570) (@phertyameen)
- refactor validateColumnsByRangeResponse (#8482) (@matthewkeil)
- update local status fork digest on fork boundary transition (#8561) (@nflaig)
- remove extraneous fields from
/eth/v1/node/peersresponse (#8554) (@nflaig) - ignore already known data column sidecars (#8542) (@nflaig)
- respect
reverseandlimitin bun leveldb controller (#8529) (@wemeetagain) - only trigger get blobs and data column reconstruction if missing data (#8536) (@nflaig)
- ensure data column sidecars respect blob limit (#8534) (@nflaig)
- do not create default cache entry for unknown proposers (#8532) (@nflaig)
- avoid emitting stale light client updates (#8522) (@nflaig)
- avoid Set.has() in computeDeltas() (#8525) (@twoeths)
- improve heap size limit log (#8516) (@twoeths)
Refactoring
Tests
- fix broken spec tests for merkle proofs (#8469) (@nazarhussain)
Maintenance
- update gnosis preset (#8593) (@nflaig)
- remove usage of
prettyBytesin errors (#8589) (@nflaig) - migrate to
consensus-specsfor spec tests (#8591) (@ensi321) - downgrade enr without tcp multiaddr log to warning (#8586) (@nflaig)
- new BeaconChain dashboard (#8581) (@twoeths)
- unbreak lodestar dev command (#8577) (@nflaig)
- #8562 cleanup (#8563) (@wemeetagain)
- fix build after merge to unstable (#8558) (@nflaig)
- update execution payload and blobs bundle for fulu (#8556) (@nflaig)
- decompose VoteTracker (#8549) (@twoeths)
- update lodestar-bun (#8555) (@wemeetagain)
- add bunfig.toml (#8551) (@wemeetagain)
- fix type checks in merkle proof test (#8550) (@nflaig)
- unhide prune history option (#8547) (@nflaig)
- cleanup types exports for all packages (#8434) (@nazarhussain)
- more logs for maybeArchiveState() (#8541) (@twoeths)
- track computeDeltas() metrics on Grafana (#8539) (@twoeths)
- simplify start epoch in head chain range sync (#8535) (@nflaig)
- remove listener of blob sidecars chain event on close (#8520) (@nflaig)
- merge v1.35.0 back to unstable (#8514) (@philknows)
Release v1.36.0-rc.2
Changelog
Features
- update
node-eth-kzgto 0.9.1 (#8594) (@kevaundray) - schedule fulu and BPOs on mainnet (#8590) (@nflaig)
- activate fulu on ephemery (#8587) (@nflaig)
- add option to prune persisted cp states (#8582) (@nflaig)
- enforce earliest available slot for incoming reqresp (#8553) (@matthewkeil)
- use classic-level in bun (#8575) (@wemeetagain)
- add semi supernode flag (#8568) (@nflaig)
- add partial blob reconstruction (#8567) (@nflaig)
- use bytes from lodestar-bun (#8562) (@wemeetagain)
- use snappy from lodestar-bun (#8557) (@wemeetagain)
- sync from unfinalized checkpoint state (#8527) (@nflaig)
- take Bun profile (#8515) (@twoeths)
- track computeDeltas metrics (#8531) (@twoeths)
- track performance of processFinalizedCheckpoint() (#8530) (@twoeths)
- add more specific error codes to voluntary exit error (#8486) (@phertyameen)
- update networking config to match CL spec (#8510) (@nflaig)
Bug Fixes
- refactor validateColumnsByRangeResponse (#8482) (@matthewkeil)
- update local status fork digest on fork boundary transition (#8561) (@nflaig)
- remove extraneous fields from
/eth/v1/node/peersresponse (#8554) (@nflaig) - ignore already known data column sidecars (#8542) (@nflaig)
- respect
reverseandlimitin bun leveldb controller (#8529) (@wemeetagain) - only trigger get blobs and data column reconstruction if missing data (#8536) (@nflaig)
- ensure data column sidecars respect blob limit (#8534) (@nflaig)
- do not create default cache entry for unknown proposers (#8532) (@nflaig)
- avoid emitting stale light client updates (#8522) (@nflaig)
- avoid Set.has() in computeDeltas() (#8525) (@twoeths)
- improve heap size limit log (#8516) (@twoeths)
Refactoring
Tests
- fix broken spec tests for merkle proofs (#8469) (@nazarhussain)
Maintenance
- migrate to
consensus-specsfor spec tests (#8591) (@ensi321) - downgrade enr without tcp multiaddr log to warning (#8586) (@nflaig)
- new BeaconChain dashboard (#8581) (@twoeths)
- unbreak lodestar dev command (#8577) (@nflaig)
- #8562 cleanup (#8563) (@wemeetagain)
- fix build after merge to unstable (#8558) (@nflaig)
- update execution payload and blobs bundle for fulu (#8556) (@nflaig)
- decompose VoteTracker (#8549) (@twoeths)
- update lodestar-bun (#8555) (@wemeetagain)
- add bunfig.toml (#8551) (@wemeetagain)
- fix type checks in merkle proof test (#8550) (@nflaig)
- unhide prune history option (#8547) (@nflaig)
- cleanup types exports for all packages (#8434) (@nazarhussain)
- more logs for maybeArchiveState() (#8541) (@twoeths)
- track computeDeltas() metrics on Grafana (#8539) (@twoeths)
- simplify start epoch in head chain range sync (#8535) (@nflaig)
- remove listener of blob sidecars chain event on close (#8520) (@nflaig)
- merge v1.35.0 back to unstable (#8514) (@philknows)
Release v1.36.0-rc.1
Changelog
Features
- enforce earliest available slot for incoming reqresp (#8553) (@matthewkeil)
- use classic-level in bun (#8575) (@wemeetagain)
- add semi supernode flag (#8568) (@nflaig)
- add partial blob reconstruction (#8567) (@nflaig)
- use bytes from lodestar-bun (#8562) (@wemeetagain)
- use snappy from lodestar-bun (#8557) (@wemeetagain)
- sync from unfinalized checkpoint state (#8527) (@nflaig)
- take Bun profile (#8515) (@twoeths)
- track computeDeltas metrics (#8531) (@twoeths)
- track performance of processFinalizedCheckpoint() (#8530) (@twoeths)
- add more specific error codes to voluntary exit error (#8486) (@phertyameen)
- update networking config to match CL spec (#8510) (@nflaig)
Bug Fixes
- refactor validateColumnsByRangeResponse (#8482) (@matthewkeil)
- update local status fork digest on fork boundary transition (#8561) (@nflaig)
- remove extraneous fields from
/eth/v1/node/peersresponse (#8554) (@nflaig) - ignore already known data column sidecars (#8542) (@nflaig)
- respect
reverseandlimitin bun leveldb controller (#8529) (@wemeetagain) - only trigger get blobs and data column reconstruction if missing data (#8536) (@nflaig)
- ensure data column sidecars respect blob limit (#8534) (@nflaig)
- do not create default cache entry for unknown proposers (#8532) (@nflaig)
- avoid emitting stale light client updates (#8522) (@nflaig)
- avoid Set.has() in computeDeltas() (#8525) (@twoeths)
- improve heap size limit log (#8516) (@twoeths)
Refactoring
Tests
- fix broken spec tests for merkle proofs (#8469) (@nazarhussain)
Maintenance
- unbreak lodestar dev command (#8577) (@nflaig)
- #8562 cleanup (#8563) (@wemeetagain)
- fix build after merge to unstable (#8558) (@nflaig)
- update execution payload and blobs bundle for fulu (#8556) (@nflaig)
- decompose VoteTracker (#8549) (@twoeths)
- update lodestar-bun (#8555) (@wemeetagain)
- add bunfig.toml (#8551) (@wemeetagain)
- fix type checks in merkle proof test (#8550) (@nflaig)
- unhide prune history option (#8547) (@nflaig)
- cleanup types exports for all packages (#8434) (@nazarhussain)
- more logs for maybeArchiveState() (#8541) (@twoeths)
- track computeDeltas() metrics on Grafana (#8539) (@twoeths)
- simplify start epoch in head chain range sync (#8535) (@nflaig)
- remove listener of blob sidecars chain event on close (#8520) (@nflaig)
- merge v1.35.0 back to unstable (#8514) (@philknows)
Release v1.35.0
Hey Lodestar users! We're happy to release v1.35.0 which includes performance refactors and enhancements! This upgrade is recommended for all mainnet and testnet users.
For node operators, we now support dual stack IPv4 and IPv6 by default serving port 9000. If no listenAddress is specified then we will enable both IPv4 and IPv6. If you want to reconfigure the listening addresses or explicitly enable one stack, you can manually set it for IPv4 only with listenAddress or for IPv6 only with listenAddress6.
This release also supports the Fusaka hard fork on all planned testnets for Holesky, Sepolia and Hoodi. Note that any v1.35.0-rc.X versions are still compatible for the Fusaka testnet forks, but we now recommend using the stable release.
Changelog
Features
- support serving blob sidecars post fulu (#8506) (@nflaig)
- wire in gloas containers (#8485) (@ensi321)
- use lodestar-bun hashtree (#8481) (@wemeetagain)
- add gloas containers (#8464) (@ensi321)
- use bps instead of
INTERVALS_PER_SLOTfor deadlines (#8091) (@ensi321) - add lodestar-bun and bun leveldb binding (#8462) (@wemeetagain)
- track number of peers per data column subnet topic (#8442) (@twoeths)
- add presets and configs for ePBS (#8440) (@ensi321)
- schedule fulu and BPOs on sepolia and hoodi (#8437) (@philknows)
- add pattern for runtime specific package dependencies (#8320) (@nazarhussain)
- schedule fulu and BPOs on holesky (#8435) (@nflaig)
- publish blobs we retrieve from execution engine to gossip (#8324) (@nflaig)
- use dual-stack by default (#8407) (@nflaig)
- refactor block input (#8200) (@matthewkeil)
Bug Fixes
- update gnosis slot duration ms to 5000 (#8512) (@nflaig)
- use datastore-level by default (#8503) (@wemeetagain)
- default port6 to ipv4 port if set explicitly (#8504) (@nflaig)
- unsubscribe from
blob_sidecartopics during fulu fork transition (#8497) (@nflaig) - return spec constants starting with 0x as hex strings instead of decimal (#8495) (@nflaig)
- use previous slot to get sync aggregate for block (#8494) (@nflaig)
- update regen caller for data column (#8487) (@wemeetagain)
- not throw error in removeEagerlyPersistedBlockInputs (#8472) (@twoeths)
- hasAllData in createFromColumn() api (#8473) (@twoeths)
- untrusted slot in network processor (#8466) (@twoeths)
- sort cell indices before calling
recoverCellsAndKzgProofs(#8450) (@ensi321) - emit blob/data column sidecar events when we receive them by root (#8445) (@nflaig)
- use correct container and bump seq_number when updating syncnets (#8451) (@nflaig)
- emit data column sidecar event when receive them from execution (#8446) (@nflaig)
- pass current time in seconds to
seenTimestampSecof block input (#8444) (@nflaig) - add log and metrics to ColumnReconstructionTracker (#8433) (@twoeths)
- correctly count requested data column sidecars in rate limiter (#8436) (@nflaig)
- wait for block and all data (#8430) (@twoeths)
- emit unknownParent event (#8429) (@twoeths)
- use proper check in computeColumnsForCustodyGroup (#8414) (@wemeetagain)
- stop verifying
SECONDS_PER_ETH1_BLOCKon validator startup (#8397) (@nflaig) - restore data column sidecars prune log (#8388) (@nflaig)
- don't log proposer boost reorg logs during sync (#8363) (@nflaig)
- bump discv5 to 11.0.4 (#8365) (@philknows)
- properly handle fetching data columns from api if block has no blobs (#8336) (@nflaig)
- update logs if block not found while handling unavailable data columns (#8337) (@nflaig)
- min key for the archive data columns (#8345) (@nazarhussain)
- deduplicate slots to delete archived DatacolumnSidecars (#8357) (@twoeths)
- add bucketId to all db operations (#8347) (@nflaig)
- correct leveldb metrics (#8355) (@nflaig)
- add bucketId to abstract_prefixed_repo (#8346) (@twoeths)
Refactoring
- replace * value with other more bash friendly value (#8491) (@guha-rahul)
- make commonBlockBodyPromise a required parameter (#8273) (@nflaig)
Dependencies
- upgrade typescript to 5.9 (#8412) (@nazarhussain)
- update the
ellipticto fix a vulnerability (#8374) (@nazarhussain)
Tests
- finalized sync e2e post electra only (#8340) (@nazarhussain)
Maintenance
- v1.35.0 release (#8513) (@philknows)
- ignore local tsbuildinfo files in docker builds (#8492) (@nflaig)
- add gloas fork constants to unscheduled networks (#8484) (@nflaig)
- update error response for validator publish endpoints (#8480) (@nflaig)
- remove remaining usage of
SECONDS_PER_SLOT(#8476) (@nflaig) - add gloas timings to slot time functions (#8474) (@nflaig)
- add git to Dockerfile (#8470) (@nflaig)
- add src to the package to have working source map (#8460) (@nazarhussain)
- move PR comments from #7947 that got closed (#8456) (@matthewkeil)
- use typescript gc-stats import (#8455) (@wemeetagain)
- remove eip7594 from skipped spec tests and rename mekle.test.ts -> merkleProof.test.ts (#8452) (@matthewkeil)
- various bun tweaks (#8449) (@wemeetagain)
- add bun exports to packages (#8448) (@wemeetagain)
- sync PeerDAS dashboard (#8443) (@twoeths)
- enable organize imports for linting (#8410) (@nazarhussain)
- update few type safety rules for linting (#8391) (@nazarhussain)
- add logs and metrics to GetBlobsTracker (#8432) (@twoeths)
- track BlockInputSync metrics (#8431) (@twoeths)
- remove parent beacon block root from execution payload rpc type (#8428) (@nflaig)
- bump @chainsafe/libp2p-gossipsub to v14.1.2 (#8425) (@wemeetagain)
- update gloas boilerplate code (#8427) (@nflaig)
- use latest TS module resolution (#8419) (@nazarhussain)
- remove
getMaxRequestBlobSidecarshelper from config object (#8418) (@nflaig) - move single attestation errors to
verboselog level (#8393) (@nflaig) - merge v1.34.1 stable back to unstable (#8367) (@philknows)
- merge v1.34.0 back to unstable (#8364) (@philknows)
- revise epoch transition metric bucket (#8361) (@twoeths)
Documentation
- update contributing.md to include AI disclosure (#8498) (@philknows)
- add comprehensive usage documentation to docker-compose.local.yml (#8441) (@DeVikingMark)
- clarify ipv6 details in networking page (#8368) (@philknows)