What's different from v2.8.3-beta3: #2237 ("core/forkid: include polygon-specific forks in wire forkid") has been reverted. It was a breaking p2p change on chains where polygon-specific forks activate above block 0 (Amoy, mainnet post-fork) — upgraded nodes computed a different forkid hash than non-upgraded peers and could not establish handshakes. The fix is correct in intent but must be rolled out as a coordinated network upgrade (gated on a future fork block). It will be re-introduced in a later release that way.
What's Changed
Features
- (feat): disable pending block creation loop via flag by @manav2401 in #2175
- consensus/bor, internal/cli: full grpc implementation by @marcello33 in #2194
- prefetcher: builder-phase prefetch + streaming worker pool by @lucca30 in #2192
- (feat): tracing support for state-sync transactions by @manav2401 in #2236
- security: harden gRPC server — disable by default, bind to localhost by @harshinsecurity in #2078
Bug Fixes
- ethapi: include pre-Madhugiri state-sync logs in bor_getLogs by @LarryArnault45 in #2155
- eth: stop dialing before waiting on handler shutdown by @LarryArnault45 in #2158
- core/state: fix GetWriteMapDump write-set output by @AaronAjose in #2156
- metrics, build: fix time.Tick resource leaks and oss-fuzz shebang by @haoyu-haoyu in #2145
- triedb/pathdb: fix exponential memory growth in preload BFS by @lucca30 in #2187
- eth: cancel milestone subscriber on shutdown by @kamuikatsurgi in #2199
- rawdb: recover witness size from filesystem metadata miss by @AaronAjose in #2200
- core/types: guard (*Header).GetValidatorBytes against short Extra by @kajaaz in #2222
- consensus/bor, miner: fix stale pending state for non-validator nodes by @cffls in #2183
- miner, consensus/bor: fix leaked-wedge family in worker state machine by @cffls in #2220
- miner: drop PeerCount==0 gate in mainLoop by @cffls in #2238
- consensus/bor: fix race in SpanStore.PurgeCache by @lucca30 in #2235
- Fix triejournaldirectory wiring by @jschnelder in #2213
- miner: disable tracer in vm.Config to prevent conflicts during block synchronization by @maoueh in #2206
Observability & Metrics
- metrics: fix ResettingSample Prometheus _count monotonicity by @lake-dunamu in #2174
- miner, consensus: more block building metrics by @manav2401 in #2228
- miner: format build-block log times as RFC3339Nano, gate on IsRunning by @kamuikatsurgi in #2239
Configuration & CLI
- internal/cli: enabled witness filestore by default by @pratikspatil024 in #2191
- templates: replace dead witnessprotocol with witness.enable hint by @apetro2 in #2204
- packaging/docs: replace deprecated rpc.batchlimit key by @odupontt in #2216
- p2p: add flag to disable snap/1 serving by @lucca30 in #2152
Chain Config
- Fixing amoy static peers by @sanketsaagar in #2209
Testing
- all: fix nightly race test flakes by @cffls in #2193
- core/vm: add hardfork precompile continuity checks by @pratikspatil024 in #2234
- miner: fix TestPrefetchRaceWithSetExtra deadlock by @wjmelements in #2233
- ethclient: bound tx indexing wait in tests by @LarryArnault45 in #2211
CI, Build & Chores
- build: bump Go from 1.26.1 to 1.26.2 to fix stdlib CVEs by @lucca30 in #2189
- build(deps): bump go.opentelemetry.io/otel/sdk from 1.40.0 to 1.43.0 by @dependabot[bot] in #2182
- backport v2.7.1 to develop by @pratikspatil024 in #2190
- eth/fetcher: refactor witness_manager to reduce complexity by @cffls in #2188
- Backmerge v2.7.2 to develop by @manav2401 in #2197
- Backmerge v2.7.3 to develop by @manav2401 in #2214
- ci: fix kurtosis setup/cleanup action paths by @cffls in #2223
- chore: pos workspace setup by @marcello33 in #2218
- backport v2.8.0 to develop by @pratikspatil024 in #2227
- docs, .claude: add hardfork rollout review guidance by @pratikspatil024 in #2229
- build: bump Go to 1.26.3 by @lucca30 in #2230
- build: bump x/net for govulncheck by @lucca30 in #2240
- chore: use Claude Opus 4.7 1M context in workflows by @kamuikatsurgi in #2241
- ci: remove claude github actions by @adamdossa in #2244
Backports merged from develop (new since v2.8.3-beta)
- v2.8.2 backport: miner — track env.size in commitTransaction & set maxBlockSizeBufferZone to 1MB by @cffls in #2245
- v2.8.1 backport: eth — cap GetWitnessMetadata request hash count by @manav2401 in #2243
- v2.8.1 backport: consensus, core, params — set TxContext for state-sync transactions by @manav2401 in #2243
- v2.8.1 backport: core, eth/protocols — ensure nil receipt inclusion in p2p response by @manav2401 in #2243
- v2.8.1 backport: core, eth/protocols — fix typo follow-up by @manav2401 in #2243
Reverted (deferred to coordinated upgrade)
core/forkid: include polygon-specific forks in wire forkid by @leovct in #2237— reverted; see note at top.
New Contributors
- @lake-dunamu made their first contribution in #2174
- @harshinsecurity made their first contribution in #2078
- @AaronAjose made their first contribution in #2156
- @haoyu-haoyu made their first contribution in #2145
- @kajaaz made their first contribution in #2222
- @apetro2 made their first contribution in #2204
- @odupontt made their first contribution in #2216
- @jschnelder made their first contribution in #2213
Full Changelog: v2.8.2...v2.8.3-beta4