Releases: ChainSafe/lodestar
Release v1.42.0
Hey Lodestar operators! We've just released v1.42.0 and recommend users upgrade for the latest features and best performance.
QUIC transport is now enabled by default. As noted in the v1.41.0 release, this change was coming. If you haven't already, you must allow UDP traffic on port 9001 through your firewall. Without this, your node will have degraded connectivity. If you need to disable QUIC for any reason, you can use --quic=false or --no-quic. Check out our networking docs for more details.
This release also includes a fix for QUIC early adopters from last release. Lodestar now only creates QUIC clients for address families that are actually configured, so QUIC works out of the box regardless of your network setup.
We are making great strides towards the Gloas hard-fork with this release but have added a couple of small things that will make operation user experience more cozy. In particular, the voluntary exit command can now write to file instead of publishing directly for those of you with complex setups.
Features
- enhance NetworkProcessor for gloas (#9025) (@twoeths)
- update data column sidecars for gloas (#8938) (@nflaig)
- allow voluntary exit command to write to file rather than publish (#9087) (@markolazic01)
- enable quic transport by default (#9133) (@lodekeeper)
- add execution payload events (#9120) (@nflaig)
- switch from buildjet to warpbuild (#9125) (@matthewkeil)
- introduce nativeStateView feature flag (#9067) (@twoeths)
- add payload envelope reqresp (#9050) (@ensi321)
- add --http.requestTimeout flag to configure vc http request timeout (#9086) (@markolazic01)
- schedule Fulu fork for Gnosis mainnet (#9074) (@dapplion)
- add gloas execution payload envelope import pipeline (#8962) (@ensi321)
- update voluntary exit for gloas (#9039) (@nflaig)
- state cache for ePBS (#8868) (@ensi321)
Bug Fixes
- process payload attestations before payload envelope import (#9159) (@nflaig)
- update attestation data index extraction (#9158) (@nflaig)
- track PayloadExecutionStatus for forkchoice onExecutionPayload() (#9119) (@twoeths)
- update stale custody group metric name in summary dashboard (#9121) (@lodekeeper)
- only create QUIC clients for configured address families (#9101) (@lodekeeper)
- use IGNORE instead of REJECT for missing payload envelope input (#9094) (@nflaig)
- improve sync aggregate participation (#9070) (@lodekeeper)
- override MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS for Gnosis (#9075) (@lodekeeper)
Refactoring
- generalize NetworkProcessor awaiting-block mechanism for all gossip types (#9059) (@twoeths)
- simplify protoArray pruning for gloas (#9068) (@GrapeBaBa)
- avoid falsy zero check in indexed attestation bounds validation (#9089) (@nflaig)
Tests
- remove non-null assertions in gloas protoArray test (#9152) (@lodekeeper)
- remove last benchmark cache-clear hack and skip aggregatedAttestationPool by default (#9147) (@lodekeeper)
- scope clearPerfStateCache to loadState only to fix benchmark flakiness (#9143) (@lodekeeper)
- fix benchmark OOM with deterministic fixture teardown (#9140) (@lodekeeper)
- revert clone(true) to fix benchmark memory regression (#9138) (@lodekeeper)
- use singletons for default-vc perf state caching (#9137) (@lodekeeper)
- fix benchmark perf state poisoning (#9136) (@lodekeeper)
- fix benchmark CI stability (#9132) (@lodekeeper)
- fix benchmark failures surfaced by benchmark 2.0.2 (#9131) (@lodekeeper)
- fix updateHead benchmark broken by missing Gloas fields on genesis (#9122) (@GrapeBaBa)
- wire sync committee gossip validation spec tests (#9106) (@nflaig)
Maintenance
- v1.42.0 release (#9169) (@matthewkeil)
- correct testCachePath after move from test/ to src/testUtils/ (#9145) (@lodekeeper)
- merge v1.41.1 back to unstable (#9146) (@matthewkeil)
- bump @chainsafe/benchmark to 2.0.2 (#9128) (@lodekeeper)
- switch arm from buildjet to warpbuild (#9129) (@matthewkeil)
- consume BeaconStateView (#8857) (@twoeths)
- clean up UnknownBlockSync (#9069) (@twoeths)
- enable forceJsExtensions in biome lint config (#9079) (@lodekeeper)
- use permalinks for spec references (#9065) (@markolazic01)
- merge stable 1.41.0 back to unstable (#9066) (@matthewkeil)
- deps: bump the actions group with 2 updates (#9130) (@dependabot[bot])
- deps: bump fastify from 5.8.1 to 5.8.3 (#9114) (@dependabot[bot])
- deps: bump the actions group with 3 updates (#9093) (@dependabot[bot])
Documentation
- remove backticks from port defaultDescription to fix docs rendering (#9139) (@lodekeeper)
- add Google Search Console verification file (#9097) (@lodekeeper)
- add high-res favicon, apple-touch-icon, and og:image metadata (#9095) (@lodekeeper)
- improve AGENTS.md with code quality rules and structural cleanup (#9077) (@lodekeeper)
- update docs favicon to current Lodestar logo (#9058) (@lodekeeper)
Release v1.42.0-rc.0
Changelog
Features
- enhance NetworkProcessor for gloas (#9025) (@twoeths)
- update data column sidecars for gloas (#8938) (@nflaig)
- allow voluntary exit command to write to file rather than publish (#9087) (@markolazic01)
- enable quic transport by default (#9133) (@lodekeeper)
- add execution payload events (#9120) (@nflaig)
- switch from buildjet to warpbuild (#9125) (@matthewkeil)
- introduce nativeStateView feature flag (#9067) (@twoeths)
- add payload envelope reqresp (#9050) (@ensi321)
- add --http.requestTimeout flag to configure vc http request timeout (#9086) (@markolazic01)
- schedule Fulu fork for Gnosis mainnet (#9074) (@dapplion)
- add gloas execution payload envelope import pipeline (#8962) (@ensi321)
- update voluntary exit for gloas (#9039) (@nflaig)
- state cache for ePBS (#8868) (@ensi321)
Bug Fixes
- process payload attestations before payload envelope import (#9159) (@nflaig)
- update attestation data index extraction (#9158) (@nflaig)
- track PayloadExecutionStatus for forkchoice onExecutionPayload() (#9119) (@twoeths)
- update stale custody group metric name in summary dashboard (#9121) (@lodekeeper)
- only create QUIC clients for configured address families (#9101) (@lodekeeper)
- use IGNORE instead of REJECT for missing payload envelope input (#9094) (@nflaig)
- improve sync aggregate participation (#9070) (@lodekeeper)
- override MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS for Gnosis (#9075) (@lodekeeper)
Refactoring
- generalize NetworkProcessor awaiting-block mechanism for all gossip types (#9059) (@twoeths)
- simplify protoArray pruning for gloas (#9068) (@GrapeBaBa)
- avoid falsy zero check in indexed attestation bounds validation (#9089) (@nflaig)
Tests
- remove non-null assertions in gloas protoArray test (#9152) (@lodekeeper)
- remove last benchmark cache-clear hack and skip aggregatedAttestationPool by default (#9147) (@lodekeeper)
- scope clearPerfStateCache to loadState only to fix benchmark flakiness (#9143) (@lodekeeper)
- fix benchmark OOM with deterministic fixture teardown (#9140) (@lodekeeper)
- revert clone(true) to fix benchmark memory regression (#9138) (@lodekeeper)
- use singletons for default-vc perf state caching (#9137) (@lodekeeper)
- fix benchmark perf state poisoning (#9136) (@lodekeeper)
- fix benchmark CI stability (#9132) (@lodekeeper)
- fix benchmark failures surfaced by benchmark 2.0.2 (#9131) (@lodekeeper)
- fix updateHead benchmark broken by missing Gloas fields on genesis (#9122) (@GrapeBaBa)
- wire sync committee gossip validation spec tests (#9106) (@nflaig)
Maintenance
- correct testCachePath after move from test/ to src/testUtils/ (#9145) (@lodekeeper)
- merge v1.41.1 back to unstable (#9146) (@matthewkeil)
- bump @chainsafe/benchmark to 2.0.2 (#9128) (@lodekeeper)
- switch arm from buildjet to warpbuild (#9129) (@matthewkeil)
- consume BeaconStateView (#8857) (@twoeths)
- clean up UnknownBlockSync (#9069) (@twoeths)
- enable forceJsExtensions in biome lint config (#9079) (@lodekeeper)
- use permalinks for spec references (#9065) (@markolazic01)
- merge stable 1.41.0 back to unstable (#9066) (@matthewkeil)
- deps: bump the actions group with 2 updates (#9130) (@dependabot[bot])
- deps: bump fastify from 5.8.1 to 5.8.3 (#9114) (@dependabot[bot])
- deps: bump the actions group with 3 updates (#9093) (@dependabot[bot])
Documentation
- remove backticks from port defaultDescription to fix docs rendering (#9139) (@lodekeeper)
- add Google Search Console verification file (#9097) (@lodekeeper)
- add high-res favicon, apple-touch-icon, and og:image metadata (#9095) (@lodekeeper)
- improve AGENTS.md with code quality rules and structural cleanup (#9077) (@lodekeeper)
- update docs favicon to current Lodestar logo (#9058) (@lodekeeper)
Release v1.41.1
Attention Gnosis mainnet operators! We've released v1.41.1, a mandatory hotfix to schedule the Fulu fork on Gnosis mainnet. If you're running Lodestar on Gnosis, please upgrade before April 14, 2026. For those of you that are not using Lodestar on Gnosis it is not necessary to upgrade.
The only changes in this release are related to Gnosis fork scheduling and configuration variables.
Changelog
Features
- switch from buildjet to warpbuild (#9125) (@matthewkeil)
- schedule Fulu fork for Gnosis mainnet (#9074) (@dapplion)
Bug Fixes
- override MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS for Gnosis (#9075) (@lodekeeper)
Maintenance
- v1.41.1 release (#9144) (@matthewkeil)
- switch arm from buildjet to warpbuild (#9129) (@matthewkeil)
Release v1.41.0
Good day Lodestar operators! We've just released v1.41.0 and recommend users upgrade for the latest features and best performance. This is a feature-packed release that brings QUIC transport, ipv6 fixes, js-libp2p v3, faster build times with TSGo and the first pieces of ePBS 🚀.
NOTE: QUIC transport is now available with this release. It is disabled by default but we strongly recommend you enable it with the --quic flag. It is critical to note that you will need to update your existing firewall rules and other infrastructure bits and pieces to allow UDP on port 9001. Check out our docs for more information if you have any questions. You can find them here. It is important to also note that while this change is not mandatory now, we will be turning on QUIC by default in the next minor release and your node connectivity will break if you are not allowing QUIC traffic through your firewall. There will be another reminder next release but the performance improvements alone push us to recommend you turning it on via the flag with this release.
We also made ipv6 configuration seamless so that discovery happens by default. Your ENR will now get automatically updated when setting any IPv6 related flags.
You will also notice some new PeerDas metrics on the dashboards if you are using the ones provided with our repo.
While transparent, we have made big strides towards again with this release and are getting closer towards realizing our zig update for the state-transition. A lot of the plumbing has been merged so that our TS code is ready to accept the Zig wonderfulness that we have in store for you. We anticipate that will be ready in the next few releases and are excited to share our journey along the way.
Changelog
Features
- add QUIC support (#8051) (@wemeetagain)
- schedule Fulu fork for Chiado testnet (#9027) (@dapplion)
- use tsgo for build and type checks (#8992) (@nazarhussain)
- set attestation data index based on payload status (#8982) (@nflaig)
- implement epbs fork choice (#8739) (@ensi321)
- integrate gossip validation spec tests (#8965) (@nflaig)
- add gloas block import pipeline (#8940) (@ensi321)
- libp2p v3 (#8890) (@wemeetagain)
- model BeaconStateView (#8773) (@twoeths)
- create standalone fork-choice dashboard (#8928) (@nazarhussain)
- add execution payload envelope repositories (#8916) (@ensi321)
- implement epbs block production (#8838) (@nflaig)
- support connecting multiple external signers to validator client (#8822) (@KoxyG)
- update to spec v1.7.0-alpha.2 (#8881) (@nflaig)
- add getNodeVersionV2 endpoint (#8772) (@nflaig)
- state-transition: add gloas fields/methods to IBeaconStateView (#8963) (@twoeths)
Bug Fixes
- correct pre-Deneb attestation propagation slot range boundary (#9031) (@nflaig)
- prune serialized cache by block input keys (#9007) (@nflaig)
- cache previous epoch payload timeliness committees (#8991) (@nflaig)
- use inclusive boundary for gossip clock disparity checks (#8968) (@lodekeeper)
- libp2p v3 unknown peers (#8960) (@nflaig)
- bootstrap already-open libp2p connections at PeerManager startup (#8948) (@lodekeeper)
- log payload attestations for gloas block bodies (#8942) (@nflaig)
- yield to event loop between block imports during sync (#8925) (@lodekeeper)
- return available light client updates instead of throwing on missing periods (#8906) (@lodekeeper)
- combine error status and message into single chunk in reqresp response (#8908) (@lodekeeper)
- remove leaked process listener in metrics close() (#8894) (@wemeetagain)
- reqresp: clear composed response timeout signals (#9029) (@lodekeeper)
- fork-choice: make payloadStatus explicit in ancestor traversal APIs (#8996) (@twoeths)
- beacon-node: move serializedCache.clear() to after DB write completes (#8907) (@twoeths)
Performance
- fork-choice: hoist proposerBoostRoot out of applyScoreChanges loop (#9040) (@GrapeBaBa)
Refactoring
- simplify default variant lookup to avoid double hash lookup (#9023) (@GrapeBaBa)
- use BitArray for PTC votes instead of boolean[] (#9021) (@GrapeBaBa)
- clone state in processExecutionPayloadEnvelope (#9015) (@ensi321)
- separate writeBlockInputToDb into parallel block and column writes (#8974) (@twoeths)
- unified pubkey cache (#8945) (@wemeetagain)
Continuous Integration
- add native module CPU portability check (#9044) (@lodekeeper)
- remove bun tests (#8959) (@spiral-ladder)
Tests
- disable flaky E2E tests on slow CI runners (#8936) (@lodekeeper)
- unskip and fix unknownBlock.test.ts (#8897) (@wemeetagain)
- increase prover e2e hook timeout to include genesis delay (#8910) (@lodekeeper)
- enable gloas finality spec tests (#8911) (@lodekeeper)
- fix flaky sim tests (#8909) (@lodekeeper)
- sim: use directPeers for backup eth provider sim test (#8917) (@lodekeeper)
- sim: use directPeers to maintain peer connections during sync (#8912) (@lodekeeper)
Maintenance
- v1.41.0 release (#9038) (@matthewkeil)
- create GitHub releases as draft to support immutable releases (#9056) (@lodekeeper)
- fix peerdas metrics (#8920) (@rnfairchild)
- bump @chainsafe/discv5 to v12.0.1 and @chainsafe/enr to v6.0.1 (#9049) (@lodekeeper)
- update lockfile for @libp2p/utils 7.0.13 (#9037) (@lodekeeper)
- bump libp2p deps to latest published versions (#9035) (@lodekeeper)
- fix seen block input cache metrics (#9020) (@nflaig)
- remove getComputeShuffledIndexFn() (#9011) (@twoeths)
- fix private imports (#8990) (@nazarhussain)
- pin github actions by commit hash (#9017) (@nflaig)
- pin pnpm with sha512 integrity in package.json (#9008) (@nflaig)
- bump fastify to v5.8.1 (#8989) (@lodekeeper)
- bump libp2p deps to latest patch releases (#8984) (@lodekeeper)
- bump libp2p to 3.1.4 (#8973) (@lodekeeper)
- bump libp2p deps and fix peer-collections type mismatch (#8970) (@lodekeeper)
- add .claude project configuration with skills and permissions (#8961) (@lodekeeper)
- track forkchoice update results via metrics (#8895) (@wemeetagain)
- properly await async monitoring requests during shutdown (#8896) (@wemeetagain)
- fix Dockerfile.dev build and improve layer caching (#8922) (@lodekeeper)
- enable corepack in Dockerfile.dev for pnpm support (#8921) (@lodekeeper)
- use grep -F for fixed string matching in docs workflows (#8904) (@lodekeeper)
- merge stable v1.40.0 back to unstable (#8893) (@matthewkeil)
- deps: bump the actions group with 7 updates (#9048) (@dependabot[bot])
- deps: bump the actions group with 13 updates (#9018) (@dependabot[bot])
- deps: bump systeminformation from 5.27.14 to 5.30.8 (#8926) (@dependabot[bot])
- ci: pin ethspecify to 0.3.7 in check-specrefs (#8986) (@lodekeeper)
- deps-dev: bump ajv from 8.17.1 to 8.18.0 (#8927) (@dependabot[bot])
Documentation
- fix prettier formatting in AGENTS.md (#8930) (@lodekeeper)
- improve AGENTS.md with architecture patterns and pitfalls (#8929) (@lodekeeper)
- add documentation versioning support (#8901) (@lodekeeper)
- reqresp: add upstream issue reference to createRespSignal (#9033) (@lodekeeper)
Release v1.41.0-rc.2
Changelog
Features
- add QUIC support (#8051) (@wemeetagain)
- schedule Fulu fork for Chiado testnet (#9027) (@dapplion)
- use tsgo for build and type checks (#8992) (@nazarhussain)
- set attestation data index based on payload status (#8982) (@nflaig)
- implement epbs fork choice (#8739) (@ensi321)
- integrate gossip validation spec tests (#8965) (@nflaig)
- add gloas block import pipeline (#8940) (@ensi321)
- libp2p v3 (#8890) (@wemeetagain)
- model BeaconStateView (#8773) (@twoeths)
- create standalone fork-choice dashboard (#8928) (@nazarhussain)
- add execution payload envelope repositories (#8916) (@ensi321)
- implement epbs block production (#8838) (@nflaig)
- support connecting multiple external signers to validator client (#8822) (@KoxyG)
- update to spec v1.7.0-alpha.2 (#8881) (@nflaig)
- add getNodeVersionV2 endpoint (#8772) (@nflaig)
- state-transition: add gloas fields/methods to IBeaconStateView (#8963) (@twoeths)
Bug Fixes
- correct pre-Deneb attestation propagation slot range boundary (#9031) (@nflaig)
- prune serialized cache by block input keys (#9007) (@nflaig)
- cache previous epoch payload timeliness committees (#8991) (@nflaig)
- use inclusive boundary for gossip clock disparity checks (#8968) (@lodekeeper)
- libp2p v3 unknown peers (#8960) (@nflaig)
- bootstrap already-open libp2p connections at PeerManager startup (#8948) (@lodekeeper)
- log payload attestations for gloas block bodies (#8942) (@nflaig)
- yield to event loop between block imports during sync (#8925) (@lodekeeper)
- return available light client updates instead of throwing on missing periods (#8906) (@lodekeeper)
- combine error status and message into single chunk in reqresp response (#8908) (@lodekeeper)
- remove leaked process listener in metrics close() (#8894) (@wemeetagain)
- reqresp: clear composed response timeout signals (#9029) (@lodekeeper)
- fork-choice: make payloadStatus explicit in ancestor traversal APIs (#8996) (@twoeths)
- beacon-node: move serializedCache.clear() to after DB write completes (#8907) (@twoeths)
Performance
- fork-choice: hoist proposerBoostRoot out of applyScoreChanges loop (#9040) (@GrapeBaBa)
Refactoring
- simplify default variant lookup to avoid double hash lookup (#9023) (@GrapeBaBa)
- use BitArray for PTC votes instead of boolean[] (#9021) (@GrapeBaBa)
- clone state in processExecutionPayloadEnvelope (#9015) (@ensi321)
- separate writeBlockInputToDb into parallel block and column writes (#8974) (@twoeths)
- unified pubkey cache (#8945) (@wemeetagain)
Continuous Integration
- add native module CPU portability check (#9044) (@lodekeeper)
- remove bun tests (#8959) (@spiral-ladder)
Tests
- disable flaky E2E tests on slow CI runners (#8936) (@lodekeeper)
- unskip and fix unknownBlock.test.ts (#8897) (@wemeetagain)
- increase prover e2e hook timeout to include genesis delay (#8910) (@lodekeeper)
- enable gloas finality spec tests (#8911) (@lodekeeper)
- fix flaky sim tests (#8909) (@lodekeeper)
- sim: use directPeers for backup eth provider sim test (#8917) (@lodekeeper)
- sim: use directPeers to maintain peer connections during sync (#8912) (@lodekeeper)
Maintenance
- create GitHub releases as draft to support immutable releases (#9056) (@lodekeeper)
- fix peerdas metrics (#8920) (@rnfairchild)
- bump @chainsafe/discv5 to v12.0.1 and @chainsafe/enr to v6.0.1 (#9049) (@lodekeeper)
- update lockfile for @libp2p/utils 7.0.13 (#9037) (@lodekeeper)
- bump libp2p deps to latest published versions (#9035) (@lodekeeper)
- fix seen block input cache metrics (#9020) (@nflaig)
- remove getComputeShuffledIndexFn() (#9011) (@twoeths)
- fix private imports (#8990) (@nazarhussain)
- pin github actions by commit hash (#9017) (@nflaig)
- pin pnpm with sha512 integrity in package.json (#9008) (@nflaig)
- bump fastify to v5.8.1 (#8989) (@lodekeeper)
- bump libp2p deps to latest patch releases (#8984) (@lodekeeper)
- bump libp2p to 3.1.4 (#8973) (@lodekeeper)
- bump libp2p deps and fix peer-collections type mismatch (#8970) (@lodekeeper)
- add .claude project configuration with skills and permissions (#8961) (@lodekeeper)
- track forkchoice update results via metrics (#8895) (@wemeetagain)
- properly await async monitoring requests during shutdown (#8896) (@wemeetagain)
- fix Dockerfile.dev build and improve layer caching (#8922) (@lodekeeper)
- enable corepack in Dockerfile.dev for pnpm support (#8921) (@lodekeeper)
- use grep -F for fixed string matching in docs workflows (#8904) (@lodekeeper)
- merge stable v1.40.0 back to unstable (#8893) (@matthewkeil)
- deps: bump the actions group with 7 updates (#9048) (@dependabot[bot])
- deps: bump the actions group with 13 updates (#9018) (@dependabot[bot])
- deps: bump systeminformation from 5.27.14 to 5.30.8 (#8926) (@dependabot[bot])
- ci: pin ethspecify to 0.3.7 in check-specrefs (#8986) (@lodekeeper)
- deps-dev: bump ajv from 8.17.1 to 8.18.0 (#8927) (@dependabot[bot])
Documentation
- fix prettier formatting in AGENTS.md (#8930) (@lodekeeper)
- improve AGENTS.md with architecture patterns and pitfalls (#8929) (@lodekeeper)
- add documentation versioning support (#8901) (@lodekeeper)
- reqresp: add upstream issue reference to createRespSignal (#9033) (@lodekeeper)
Release v1.41.0-rc.0
Changelog
Features
- add QUIC support (#8051) (@wemeetagain)
- schedule Fulu fork for Chiado testnet (#9027) (@dapplion)
- use tsgo for build and type checks (#8992) (@nazarhussain)
- set attestation data index based on payload status (#8982) (@nflaig)
- implement epbs fork choice (#8739) (@ensi321)
- integrate gossip validation spec tests (#8965) (@nflaig)
- add gloas block import pipeline (#8940) (@ensi321)
- libp2p v3 (#8890) (@wemeetagain)
- model BeaconStateView (#8773) (@twoeths)
- create standalone fork-choice dashboard (#8928) (@nazarhussain)
- add execution payload envelope repositories (#8916) (@ensi321)
- implement epbs block production (#8838) (@nflaig)
- support connecting multiple external signers to validator client (#8822) (@KoxyG)
- update to spec v1.7.0-alpha.2 (#8881) (@nflaig)
- add getNodeVersionV2 endpoint (#8772) (@nflaig)
- state-transition: add gloas fields/methods to IBeaconStateView (#8963) (@twoeths)
Bug Fixes
- correct pre-Deneb attestation propagation slot range boundary (#9031) (@nflaig)
- prune serialized cache by block input keys (#9007) (@nflaig)
- cache previous epoch payload timeliness committees (#8991) (@nflaig)
- use inclusive boundary for gossip clock disparity checks (#8968) (@lodekeeper)
- libp2p v3 unknown peers (#8960) (@nflaig)
- bootstrap already-open libp2p connections at PeerManager startup (#8948) (@lodekeeper)
- log payload attestations for gloas block bodies (#8942) (@nflaig)
- yield to event loop between block imports during sync (#8925) (@lodekeeper)
- return available light client updates instead of throwing on missing periods (#8906) (@lodekeeper)
- combine error status and message into single chunk in reqresp response (#8908) (@lodekeeper)
- remove leaked process listener in metrics close() (#8894) (@wemeetagain)
- reqresp: clear composed response timeout signals (#9029) (@lodekeeper)
- fork-choice: make payloadStatus explicit in ancestor traversal APIs (#8996) (@twoeths)
- beacon-node: move serializedCache.clear() to after DB write completes (#8907) (@twoeths)
Refactoring
- simplify default variant lookup to avoid double hash lookup (#9023) (@GrapeBaBa)
- use BitArray for PTC votes instead of boolean[] (#9021) (@GrapeBaBa)
- clone state in processExecutionPayloadEnvelope (#9015) (@ensi321)
- separate writeBlockInputToDb into parallel block and column writes (#8974) (@twoeths)
- unified pubkey cache (#8945) (@wemeetagain)
Continuous Integration
- remove bun tests (#8959) (@spiral-ladder)
Tests
- disable flaky E2E tests on slow CI runners (#8936) (@lodekeeper)
- unskip and fix unknownBlock.test.ts (#8897) (@wemeetagain)
- increase prover e2e hook timeout to include genesis delay (#8910) (@lodekeeper)
- enable gloas finality spec tests (#8911) (@lodekeeper)
- fix flaky sim tests (#8909) (@lodekeeper)
- sim: use directPeers for backup eth provider sim test (#8917) (@lodekeeper)
- sim: use directPeers to maintain peer connections during sync (#8912) (@lodekeeper)
Maintenance
- update lockfile for @libp2p/utils 7.0.13 (#9037) (@lodekeeper)
- bump libp2p deps to latest published versions (#9035) (@lodekeeper)
- fix seen block input cache metrics (#9020) (@nflaig)
- remove getComputeShuffledIndexFn() (#9011) (@twoeths)
- fix private imports (#8990) (@nazarhussain)
- pin github actions by commit hash (#9017) (@nflaig)
- pin pnpm with sha512 integrity in package.json (#9008) (@nflaig)
- bump fastify to v5.8.1 (#8989) (@lodekeeper)
- bump libp2p deps to latest patch releases (#8984) (@lodekeeper)
- bump libp2p to 3.1.4 (#8973) (@lodekeeper)
- bump libp2p deps and fix peer-collections type mismatch (#8970) (@lodekeeper)
- add .claude project configuration with skills and permissions (#8961) (@lodekeeper)
- track forkchoice update results via metrics (#8895) (@wemeetagain)
- properly await async monitoring requests during shutdown (#8896) (@wemeetagain)
- fix Dockerfile.dev build and improve layer caching (#8922) (@lodekeeper)
- enable corepack in Dockerfile.dev for pnpm support (#8921) (@lodekeeper)
- use grep -F for fixed string matching in docs workflows (#8904) (@lodekeeper)
- merge stable v1.40.0 back to unstable (#8893) (@matthewkeil)
- deps: bump the actions group with 13 updates (#9018) (@dependabot[bot])
- deps: bump systeminformation from 5.27.14 to 5.30.8 (#8926) (@dependabot[bot])
- ci: pin ethspecify to 0.3.7 in check-specrefs (#8986) (@lodekeeper)
- deps-dev: bump ajv from 8.17.1 to 8.18.0 (#8927) (@dependabot[bot])
Documentation
- fix prettier formatting in AGENTS.md (#8930) (@lodekeeper)
- improve AGENTS.md with architecture patterns and pitfalls (#8929) (@lodekeeper)
- add documentation versioning support (#8901) (@lodekeeper)
- reqresp: add upstream issue reference to createRespSignal (#9033) (@lodekeeper)
Release v1.40.0
Release v1.40.0
Good day Lodestar operators! We're excited to release v1.40.0 and recommend users upgrade for the latest features and best performance. This release brings significant memory and performance improvements, especially for PeerDAS supernodes.
Breaking change: Node.js v22 is no longer supported. If you are building from source, please ensure you are using Node.js v24 (the current LTS). Docker users are not affected.
Supernode stability and overall node health have been greatly improved. You will see drastic reduction in head selection time and much greater head accuracy through an improvement of block processing latency. The underlying changes will also improve sync latency to get your nodes up to head even faster than before.
We have have added a couple of helpful api endpoints with this release. The first is targeted at operators running many validators and will allow api access to see which validator indices are connected to a node. This is also printed in the logs on an epoch basis to help infrastructure management teams with migrations and to avoid slashable incidents because of human or process reasons. We also added a nice to have feature, along with accompanying new flag --directPeers, to allow direct connection to specific peers as well as the ability to drop specific peers at runtime. You can also list the peerIds of all direct connections. You can also now query your peerDAS custody information for a running node.
We also have an exciting announcement that we are please to share with you. We have taken the first steps towards preparing Lodestar for its first Zig modules. We have been working hard on migrating the state-transition to Zig and its nearly complete. This release includes some changes necessary to prep for swapping the TypeScript state transition function over to a Zig module. While this will be a silent change for user we are excited to share that our preliminary results are excellent and node performance will be off the charts in the upcoming months. Stay tuned for more information!!!
For the full changelog, please see: v1.39.1...v1.40.0
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
- add backpressure to unfinalized block write queue (#8885) (@lodekeeper)
- await processFn to prevent buffer pool race condition (#8877) (@lodekeeper)
- 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
- update docker sanity check to perform before publishing (#8883) (@nazarhussain)
- 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
- v1.40.0 release (#8875) (@matthewkeil)
- avoid unnecessary errors when shutting down the node (#8886) (@nflaig)
- more unfinalized block writes panels in dashboard (#8884) (@wemeetagain)
- fix fastify deprecation warning about querystringParser (#8876) (@nflaig)
- 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)
Release v1.40.0-rc.3
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
- add backpressure to unfinalized block write queue (#8885) (@lodekeeper)
- await processFn to prevent buffer pool race condition (#8877) (@lodekeeper)
- 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
- update docker sanity check to perform before publishing (#8883) (@nazarhussain)
- 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
- avoid unnecessary errors when shutting down the node (#8886) (@nflaig)
- more unfinalized block writes panels in dashboard (#8884) (@wemeetagain)
- fix fastify deprecation warning about querystringParser (#8876) (@nflaig)
- 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)
Release v1.40.0-rc.2
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
- await processFn to prevent buffer pool race condition (#8877) (@lodekeeper)
- 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
- fix fastify deprecation warning about querystringParser (#8876) (@nflaig)
- 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)
Release v1.40.0-rc.1
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
- await processFn to prevent buffer pool race condition (#8877) (@lodekeeper)
- 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)