This release contains several improvements and includes changes planned for the upcoming Giugliano Hard Fork.
Note: The hard fork is not activated yet. A follow-up release with the Amoy hard fork block number will be published next week.
What's Changed
Features
- Giugliano Hard Fork by @lucca30 in #2099
- consensus, ethapi: embed gas target and base fee params in block header extra field (post Giugliano HF) by @pratikspatil024 in #2135
- Dynamic target gas for stable prices by @lucca30 in #2085
- (feat): preconf + private tx relay by @manav2401 in #2004
- (feat): re-enable snap sync by @manav2401 in #2077
- Prefetch transactions from pool & PIP-66 back by @lucca30 in #2031
- feat: add network diagnostics and state dump action by @kamuikatsurgi in #2051
- consensus, core, eth, internal, miner, rpc, tests: implement additional RPC methods by @marcello33 in #2063
- core/rawdb: added filesystem-based witness storage (with --witness.filestore flag) by @pratikspatil024 in #2098
- consensus/bor, eth: add Heimdall HTTP/gRPC/WS failover with health recovery by @pratikspatil024 in #2050
Performance
- blockstm: replace O(n²) UpdateDeps with inverted-index DepsBuilder by @kamuikatsurgi in #2094
- core/state: reduce lock contention in triePrefetcher.used() by @cffls in #2049
- Added rate limiting to address biased trie cache preloading by @pratikspatil024 in #2029
- Use PGO when building binaries by @cffls in #2138
- Add prefetcher timer by @cffls in #2115
Bug Fixes
- Fix more race conditions detected by -race by @cffls in #2042
- Fix more race conditions by @cffls in #2104
- Fix root hash calculation during reorgs by @marcello33 in #2080
- eth/handler: fix issue 55 by @marcello33 in #2084
- eth: fix overflow impacting milestone lock and syncing by @marcello33 in #2111
- core/vm, core, miner: fix interrupt propagation to nested EVM calls by @lucca30 in #2092
- core: fix finalStateDB pointing to backupStateDB (block-stm) by @pratikspatil024 in #2137
- consensus/bor: prevent empty blocks when remaining build time is insufficient by @cffls in #2093
- Improve scenario of timestamp check in Rio hardfork by @lucca30 in #2091
- Fix formatting of static-nodes in config.toml by @adamdossa in #2048
- fix(server): wire Identity config to node.UserIdent in buildNode by @minhd-vu in #2105
- Fix SDK regression (parts 1–4) by @adamdossa in #2121, #2122, #2124, #2125
- Clean up lastRebroadcast on transaction rejection by @LarryArnault45 in #2038
- core/txpool: use reheap snapshot to avoid duplicate entries in heap by @manav2401 in #2095
- core/rawdb, p2p, eth: fix graceful shutdown of pruner and dial scheduler by @kamuikatsurgi in #2079
- eth/protocols/wit: remove peer lock held across p2p.Send to prevent broadcast stalls by @pratikspatil024 in #2120
- fix flaky TestPrivateTxSubmissionRetry timing races by @lucca30 in #2089
Observability & Metrics
- Sync metrics by @avalkov in #1928
- core, eth, miner: add metrics to track block creation and write pipeline latency by @pratikspatil024 in #2097
- metrics: add more go runtime metrics by @manav2401 in #2109
- Slow TX observability, per-TX latency metric, and timeout-interrupt diagnostics by @lucca30 in #2134
- Including missing metrics from import blocks path into production by @lucca30 in #2139
- Change log level of commit interrupt on non-BP nodes by @cffls in #2133
Configuration & CLI
- internal/cli, packaging, docs: add config.toml updater, refresh templates, and document workflow by @kamuikatsurgi in #2100
- internal/cli, node, rpc: port missing geth flags by @kamuikatsurgi in #2106
- internal/cli/server: wire txpool.locals flag to txpool config by @manav2401 in #2114
- docs/cli: update the docs with --witness.filestore flag by @pratikspatil024 in #2108
CI, Build & Chores
- refactor: ci by @kamuikatsurgi in #2044
- Bump go version to 1.25.7 by @lucca30 in #2045
- (chore): bump go version to 1.26.0 by @manav2401 in #2067, #2074
- Bump to go1.26.1 by @lucca30 in #2119
- consensus/bor: add test coverage by @cffls in #2046
- fix: configure Docker daemon min API version for Pumba compatibility by @kamuikatsurgi in #2052
- chore: remove pumba compatibility step from stateless e2e by @kamuikatsurgi in #2083
- fix: avoid mirror.gcr.io images by @kamuikatsurgi in #2102
- fix govuln by @marcello33 in #2081
- disabling provenance/SBOM for per-arch docker builds by @sreevalsanmr in #2071
- Adding workflow to publish the docker image on GHCR by @0xsajal in #2123
- chore: reuse bor dumpconfig by @kamuikatsurgi in #2117
- build(deps): bump github.com/pion/dtls/v3 from 3.0.10 to 3.0.11 by @dependabot[bot] in #2086
- build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 by @dependabot[bot] in #2069
- backport: master to develop by @kamuikatsurgi in #2066
- Backmerge master into develop by @manav2401 in #2072
- Remove Geth references from README.md by @adamdossa in #2132
- Add Claude Code security review rules by @mt-polygon-technology in #2110
- Allow claude PR comments by @marcello33 in #2101
- Clean up Claude config by @adamdossa in #2127
- Update Claude Settings by @adamdossa in #2130
- (chore): bump claude code actions to v1.0.69 by @manav2401 in #2103
New Contributors
- @LarryArnault45 made their first contribution in #2038
- @minhd-vu made their first contribution in #2105
- @mt-polygon-technology made their first contribution in #2110
Full Changelog: v2.6.0...v2.7.0-beta