Skip to content

Commit bf63430

Browse files
authored
ChangeLog: reformat version headers and update 3.5.0 release notes (erigontech#22044)
Changelog-only (no code touched; `make lint` N/A). **Unified release-header format (all versions).** Every release header is now `# Erigon vX.Y.Z — Codename — Date` (em-dash separators), replacing `## [X.Y.Z] "Codename" – Date`. Removes the redundant `# Changelog` title and the "Keep a Changelog" footer; 3.3.0 gets its previously-missing "Rocky Romp" codename. **3.5.0 finalized.** - Release date **2026-06-26**. - Adds the EL builder-window fix (erigontech#21990) under *Changed → Caplin (Consensus Layer)*. - Prune breaking change split into separate `--prune.mode=full` and `--prune.mode=blocks` subsections; the revert instruction points to `--prune.distance.blocks=18446744073709551615` (the keep-post-merge sentinel). - `debug_trace*` migration uses self-contained inline JSON; EIP-7843 is described as the `SLOTNUM` opcode; plus minor wording/consistency fixes. **3.6.0 stub.** Codename **Upstream Underbelly**, date TBD. Follow-up: erigontech#22055 (human-readable alias for the prune-distance sentinel).
1 parent 5a651e1 commit bf63430

1 file changed

Lines changed: 39 additions & 54 deletions

File tree

ChangeLog.md

Lines changed: 39 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# Changelog
2-
3-
## [3.6.0]
1+
# Erigon v3.6.0 — Upstream Underbelly — TBD
42

53
### Breaking Changes
64

@@ -20,14 +18,14 @@ Aligns Erigon with the `eth_simulateV1` error code specification ([NethermindEth
2018

2119
---
2220

23-
## [3.5.0] "Tidal Tails" – TBD
21+
# Erigon v3.5.0Tidal Tails — 2026-06-26
2422

2523
Erigon 3.5.0 is a major release headlined by **parallel block execution becoming the default** and **initial support for Ethereum's upcoming Glamsterdam hardfork**. It is a drop-in upgrade for 3.4.x users — no re-sync required; existing datadirs upgrade their prune configuration automatically (see Breaking Changes).
2624

2725
### Key Features
2826

29-
- **Parallel block execution, on by default.** Erigon now executes EVM transactions across multiple cores by default, using the Block-STM (software transactional memory) design pioneered by Aptos: transactions run optimistically in parallel and are re-validated against a multi-version state, re-executing only on conflict (#21591 by @mh0lt, closes #17630). Revert to the serial path with `EXEC3_PARALLEL=false` or `--exec.serial`.
30-
- **Glamsterdam devnet support.** Initial implementation of Ethereum's next hardfork: Block-Level Access Lists (EIP-7928), enshrined Proposer-Builder Separation / "GLOAS" (EIP-7732) in Caplin, gas repricings (EIP-8037, EIP-7976, EIP-7981), larger contracts (EIP-7954), transfer logs (EIP-7708), and the `eth/71` Block Access List wire protocol (EIP-8159). **Devnet/testing only — not scheduled on mainnet or any public testnet.**
27+
- **Parallel block execution, on by default.** Erigon now executes EVM transactions across multiple cores by default, using the Block-STM (software transactional memory) design pioneered by Aptos: transactions run optimistically in parallel and are re-validated against a multi-version state, re-executing only on conflict (#21591 by @mh0lt, closes #17630). Revert to serial with `EXEC3_PARALLEL=false` or `--exec.serial`.
28+
- **Glamsterdam devnet support.** Initial implementation of Ethereum's next hardfork: Block-Level Access Lists (EIP-7928), enshrined Proposer-Builder Separation / "Gloas" (EIP-7732) in Caplin, gas repricings (EIP-8037, EIP-7976, EIP-7981), larger contracts (EIP-7954), transfer logs (EIP-7708), and the `eth/71` Block Access List wire protocol (EIP-8159). **Devnet/testing only — not scheduled on mainnet or any public testnet.**
3129
- **`debug_executionWitness`.** Stateless execution-witness generation (EIP-7928/8025) with reth-compatible output, for zkEVM and stateless clients (#20205 by @antonis19, #21629 by @awskii).
3230
- **More aggressive history pruning by default.** `--prune.mode=full` now follows the EIP-8252 reorg-retention window (~36 days / 262,144 blocks) — see Breaking Changes.
3331
- **GraphQL API revival.** Broad resolver coverage restored — queries, logs, `call`, `sendRawTransaction`, `estimateGas`, `gasPrice`, storage, and EIP-4844 fields.
@@ -36,7 +34,7 @@ Erigon 3.5.0 is a major release headlined by **parallel block execution becoming
3634

3735
#### `--prune.mode=full`: EIP-8252 retention window replaces pre-merge history-expiry
3836

39-
Full mode now retains state and block data for the last `262,144` blocks (~36.4 days), matching [EIP-8252](https://github.com/ethereum/EIPs/pull/11601)'s `REORG_RETENTION_WINDOW` — the inactivity-leak-bounded non-finality window across which an EL must be able to reconstruct state to handle any reorg without external sync. Previously full mode pruned only pre-merge block data ([EIP-4444](https://eips.ethereum.org/EIPS/eip-4444) history-expiry) and kept the last 100,000 blocks of state history.
37+
Full mode now retains state and block data for the last `262,144` blocks (~36.4 days), matching [EIP-8252](https://github.com/ethereum/EIPs/pull/11601)'s `REORG_RETENTION_WINDOW` ([#21342](https://github.com/erigontech/erigon/pull/21342)). Previously full mode pruned only pre-merge block data ([EIP-4444](https://eips.ethereum.org/EIPS/eip-4444) history-expiry) and kept the last 100,000 blocks of state history.
4038

4139
**What changed:**
4240

@@ -45,17 +43,21 @@ Full mode now retains state and block data for the last `262,144` blocks (~36.4
4543
| State history retention | last 100,000 blocks | last 262,144 blocks |
4644
| Block data retention | pre-merge pruned, all post-merge kept (EIP-4444) | last 262,144 blocks |
4745

48-
`--prune.mode=blocks` keeps the same shape (all block data retained) but its `History` retention also bumps from 100,000 to 262,144 blocks. `--prune.mode=minimal` is unchanged — both `Blocks` and `History` retain the 100,000-block window, deliberately sub-EIP-8252 for disk-constrained operators. See [#21342](https://github.com/erigontech/erigon/pull/21342) for details.
46+
**Migration:** existing datadirs upgrade automatically and silently. To keep the old "retain all post-merge block data" behavior, set `--prune.distance.blocks=18446744073709551615`.
47+
48+
Note: physical deletion of frozen snapshot files is not implemented yet (see [#21306](https://github.com/erigontech/erigon/issues/21306)), so existing on-disk historical blocks persist for now, though the new cutoff is already recorded at the config level.
4949

50-
**Migration:** existing datadirs upgrade automatically. The prune-config guard now accepts finite distance changes on `History`/`Blocks` in either direction, plus either-direction transitions between a finite Distance and the `KeepPostMergeBlocksPruneMode` chain-history-expiry sentinel on `Blocks` (so the upgrade is silent, and operators can revert with `--prune.distance.blocks=18446744073709551615` even after the auto-upgrade has rewritten the persisted value). Operators who want to keep the old "retain all post-merge block data" behavior can switch to `--prune.mode=blocks` or pass the override flag.
50+
_In practice, this means only freshly synced `full` nodes will have a reduced disk footprint._
5151

52-
Note: physical deletion of frozen `.seg` files is gated by [#21306](https://github.com/erigontech/erigon/issues/21306); existing on-disk segments persist until that lands. The config-level transition is still recorded so the new cutoff takes effect once the deletion path exists.
52+
#### `--prune.mode=blocks`: state history retention bumped to 262,144 blocks
53+
54+
`--prune.mode=blocks` keeps the same shape as before (all block data retained), but its state history retention also bumps from 100,000 to 262,144 blocks. `--prune.mode=minimal` is unchanged — both block and state history retain the 100,000-block window, deliberately sub-EIP-8252 for disk-constrained operators. See [#21342](https://github.com/erigontech/erigon/pull/21342) for details.
5355

5456
---
5557

5658
#### Single p2p listener: `--p2p.allowed-ports` removed, all eth versions multiplex on `--port`
5759

58-
Erigon now opens a single TCP listener on `--port` (default 30303) carrying every configured eth protocol version, instead of one listener per protocol on 30303/30304/30305. This fixes a discovery-DHT race that left inbound peers stuck at a fraction of `--maxpeers` for multi-protocol deploymentsper-protocol Servers each signed an ENR under the same Node ID, and only the highest-`seq` one survived in the DHT, so peers dialed the wrong listener (#21335).
60+
Erigon now opens a single TCP listener on `--port` (default 30303) carrying every configured eth protocol version, instead of one listener per protocol on 30303/30304/30305. This fixes a discovery-DHT race that left inbound peers stuck at a fraction of `--maxpeers` for multi-protocol deployments: per-protocol ENRs collided under one Node ID, so only one survived in the DHT and peers dialed the wrong listener (#21335).
5961

6062
**What changed:**
6163

@@ -89,25 +91,12 @@ Aligns Erigon with the execution-apis specification ([ethereum/execution-apis#76
8991
| Memory in trace | `disableMemory` (default: included) | `enableMemory` (default: excluded) |
9092
| Return data in trace | `disableReturnData` (default: included) | `enableReturnData` (default: excluded) |
9193

92-
The change is **twofold**:
93-
1. The JSON key is renamed (`disable*``enable*`).
94-
2. The default value is inverted: previously memory and return data were **included** by default (opt-out model); now they are **excluded** by default (opt-in model), matching the spec and Geth.
95-
96-
**Migration:**
97-
98-
```jsonc
99-
// Before — disable memory explicitly
100-
{ "disableMemory": true }
94+
Both the key and its default changed: `disable*``enable*`, and memory and return data are now **excluded** unless explicitly enabled — matching the spec and Geth.
10195

102-
// After — enable memory explicitly
103-
{ "enableMemory": true }
96+
**Migration:** memory and return data are now excluded by default. To include them, add the new opt-in key (omit it to keep the default):
10497

105-
// Before — memory included by default (no flag needed)
106-
{}
107-
108-
// After — must opt in
109-
{ "enableMemory": true }
110-
```
98+
- Memory: `{ "enableMemory": true }`
99+
- Return data: `{ "enableReturnData": true }`
111100

112101
Affected RPC methods: `debug_traceTransaction`, `debug_traceBlockByHash`, `debug_traceBlockByNumber`, `debug_traceCall`.
113102

@@ -130,10 +119,10 @@ The optional Silkworm C++ execution-backend integration and its `--silkworm.*` f
130119
3.5.0 adds an initial implementation of Ethereum's next hardfork — **Glamsterdam** (consensus-layer "Gloas" + execution-layer "Amsterdam") — for devnet testing and validation. **It is not scheduled on mainnet or any public testnet**, and these code paths are inert on production networks until an activation time is configured.
131120

132121
- **EIP-7928 — Block-Level Access Lists (BAL):** records every account and storage slot a block touches, enabling deterministic parallel validation. Full builder, validator, and strict-validation support (#19627, #19656, #20602, #20776), plus the `eth_getBlockAccessList` RPC method (#19929) — by @mh0lt, @yperbasis, @Sahil-4555
133-
- **EIP-7732 — Enshrined Proposer-Builder Separation (ePBS / "GLOAS"):** implemented in Caplin — execution-payload envelope, PTC, and builder payments (#18956) — with follow-up audit and fork-choice fixes (#21248, #21228) — by @domiwei
122+
- **EIP-7732 — Enshrined Proposer-Builder Separation (ePBS / "Gloas"):** implemented in Caplin — execution-payload envelope, PTC, and builder payments (#18956) — with follow-up audit and fork-choice fixes (#21248, #21228) — by @domiwei
134123
- **Gas repricings:** EIP-8037 State Creation Gas Cost Increase (#19596), EIP-7976 calldata floor cost (#20613), EIP-7981 access-list cost (#20671) — by @taratorio
135124
- **EIP-7954 — Increase Maximum Contract Size** (#19624) — by @yperbasis
136-
- **EIP-7843 — slot-number system contract**, wired into Caplin block production and `engine_forkchoiceUpdatedV4` (#20175) — by @yperbasis
125+
- **EIP-7843 — slot-number opcode (`SLOTNUM`)**, wired into Caplin block production and `engine_forkchoiceUpdatedV4` (#20175) — by @yperbasis
137126
- **Networking:** `eth/71` Block Access List exchange (EIP-8159, #20793, #20794, #20795) — by @mh0lt
138127

139128
### Added
@@ -149,7 +138,6 @@ The optional Silkworm C++ execution-backend integration and its `--silkworm.*` f
149138

150139
#### CLI & Operations
151140

152-
- `--snap.p2p-manifest` (experimental, opt-in): decentralized snapshot distribution over P2P — peers advertise their `chain.toml` manifest via ENR, instead of the centralized `preverified.toml` (#20526, #20615) — by @mh0lt
153141
- `--exec.no-prune` (disable all DB pruning), `--exec.serial` (force single-threaded execution), and `--exec.*` executor-tuning flags (#20915, #20853, #20797) — by @mh0lt
154142
- `seg du` (snapshot disk-usage analysis, #20104) and `seg rm-blocks` (remove latest block snapshots, #20554) — by @awskii, @sudeepdino008
155143

@@ -178,7 +166,8 @@ The optional Silkworm C++ execution-backend integration and its `--silkworm.*` f
178166
#### Caplin (Consensus Layer)
179167

180168
- Unified Engine API client for standalone mode (#20035) — by @mh0lt
181-
- Fork-choice and ENR-stability fixes — recovery from a post-GLOAS fork-choice stall and a persistent node key for stable ENR across restarts (#21228, #21276) — by @domiwei
169+
- Fork-choice and ENR-stability fixes — recovery from a post-Gloas fork-choice stall and a persistent node key for stable ENR across restarts (#21228, #21276) — by @domiwei
170+
- Block production: give the EL builder a build window before stopping it, fixing near-empty proposed blocks (~0–2% gas) on otherwise-healthy validators (#21990) — by @lystopad
182171

183172
#### Storage & Performance
184173

@@ -199,7 +188,7 @@ The optional Silkworm C++ execution-backend integration and its `--silkworm.*` f
199188

200189
---
201190

202-
## [3.4.4] "Splashing Saga" – 2026-06-18
191+
# Erigon v3.4.4Splashing Saga 2026-06-18
203192

204193
v3.4.4 is a bugfix release recommended for all users.
205194

@@ -212,7 +201,7 @@ v3.4.4 is a bugfix release recommended for all users.
212201

213202
---
214203

215-
## [3.4.3] "Splashing Saga" – 2026-06-02
204+
# Erigon v3.4.3Splashing Saga 2026-06-02
216205

217206
v3.4.3 is a bugfix release recommended for all users.
218207

@@ -241,7 +230,7 @@ v3.4.3 is a bugfix release recommended for all users.
241230

242231
---
243232

244-
## [3.4.2] "Splashing Saga" – 2026-05-22
233+
# Erigon v3.4.2Splashing Saga 2026-05-22
245234

246235
v3.4.2 is a bugfix release recommended for all users.
247236

@@ -264,7 +253,7 @@ v3.4.2 is a bugfix release recommended for all users.
264253

265254
---
266255

267-
## [3.4.1] "Splashing Saga" – 2026-05-11
256+
# Erigon v3.4.1Splashing Saga 2026-05-11
268257

269258
**Bugfixes**
270259

@@ -274,7 +263,7 @@ v3.4.2 is a bugfix release recommended for all users.
274263

275264
---
276265

277-
## [3.4.0] "Splashing Saga" – 2026-04-28
266+
# Erigon v3.4.0Splashing Saga 2026-04-28
278267

279268
Erigon 3.4.0 is a major update for node operators and validators, focused on stability, performance, and
280269
efficiency at ChainTip. It is a drop-in upgrade for 3.3.x users — no data migration or re-sync required.
@@ -398,7 +387,7 @@ efficiency at ChainTip. It is a drop-in upgrade for 3.3.x users — no data migr
398387

399388
---
400389

401-
## [3.3.10] "Rocky Romp" – 2026-03-27
390+
# Erigon v3.3.10Rocky Romp 2026-03-27
402391

403392
This release schedules Fusaka on **Gnosis Chain mainnet** at **Tue 14 April 2026, 12:06:20 UTC** and
404393
thus is **mandatory for all Gnosis users**. It is also recommended for all users in general.
@@ -417,7 +406,7 @@ thus is **mandatory for all Gnosis users**. It is also recommended for all users
417406

418407
---
419408

420-
## [3.3.9] "Rocky Romp" – 2026-03-09
409+
# Erigon v3.3.9Rocky Romp 2026-03-09
421410

422411
This release schedules Fusaka on Chiado on **Mon 16 March 2026, 09:33:00 UTC** and thus is mandatory
423412
for all Chiado users.
@@ -435,7 +424,7 @@ for all Chiado users.
435424

436425
---
437426

438-
## [3.3.8] "Rocky Romp" – 2026-02-20
427+
# Erigon v3.3.8Rocky Romp 2026-02-20
439428

440429
**Changes**
441430

@@ -462,7 +451,7 @@ for all Chiado users.
462451

463452
---
464453

465-
## [3.3.7] "Rocky Romp" – 2026-01-30
454+
# Erigon v3.3.7Rocky Romp 2026-01-30
466455

467456
P2P stability. Prune performance.
468457

@@ -480,7 +469,7 @@ P2P stability. Prune performance.
480469

481470
---
482471

483-
## [3.3.4] "Rocky Romp" – 2026-01-23
472+
# Erigon v3.3.4Rocky Romp 2026-01-23
484473

485474
v3.3.4 is a bugfix release recommended for all users.
486475

@@ -497,7 +486,7 @@ v3.3.4 is a bugfix release recommended for all users.
497486

498487
---
499488

500-
## [3.3.3] "Rocky Romp" – 2026-01-14
489+
# Erigon v3.3.3Rocky Romp 2026-01-14
501490

502491
v3.3.3 is a bugfix release recommended for all users.
503492

@@ -517,7 +506,7 @@ v3.3.3 is a bugfix release recommended for all users.
517506

518507
---
519508

520-
## [3.3.2] "Rocky Romp" – 2025-12-13
509+
# Erigon v3.3.2Rocky Romp 2025-12-13
521510

522511
Gnosis hardfork support.
523512

@@ -533,7 +522,7 @@ Gnosis hardfork support.
533522

534523
---
535524

536-
## [3.3.1] "Rocky Romp" – 2025-12-07
525+
# Erigon v3.3.1Rocky Romp 2025-12-07
537526

538527
- We have new Docs and HelpCenter: https://docs.erigon.tech/
539528
- Support of historical `eth_getProof` (https://github.com/erigontech/erigon/issues/12984). It requires
@@ -559,7 +548,7 @@ Gnosis hardfork support.
559548

560549
---
561550

562-
## [3.3.0] 2025-11-27
551+
# Erigon v3.3.0 — Rocky Romp — 2025-11-27
563552

564553
### Added
565554

@@ -616,7 +605,7 @@ Gnosis hardfork support.
616605

617606
---
618607

619-
## [3.2.3] "Quirky Quests" – 2025-11-25
608+
# Erigon v3.2.3Quirky Quests 2025-11-25
620609

621610
**Changes**
622611

@@ -626,7 +615,7 @@ Gnosis hardfork support.
626615

627616
---
628617

629-
## [3.2.2] "Quirky Quests" – 2025-11-03
618+
# Erigon v3.2.2Quirky Quests 2025-11-03
630619

631620
v3.2.2 schedules Fusaka on Ethereum mainnet on December 3, 2025 at 09:49:11pm UTC. Thus it is a mandatory update for all Ethereum mainnet users.
632621

@@ -639,7 +628,7 @@ v3.2.2 schedules Fusaka on Ethereum mainnet on December 3, 2025 at 09:49:11pm UT
639628

640629
---
641630

642-
## [3.2.1] "Quirky Quests" – 2025-10-20
631+
# Erigon v3.2.1Quirky Quests 2025-10-20
643632

644633
v3.2.1 is a bugfix release recommended for all users, especially validators.
645634

@@ -660,7 +649,7 @@ v3.2.1 is a bugfix release recommended for all users, especially validators.
660649

661650
---
662651

663-
## [3.2.0] "Quirky Quests" – 2025-10-02
652+
# Erigon v3.2.0Quirky Quests 2025-10-02
664653

665654
Erigon 3.2.0 has a complete implementation of [Fusaka](https://eips.ethereum.org/EIPS/eip-7607) and schedules it on the
666655
test nets (#17197):
@@ -697,7 +686,3 @@ test nets (#17197):
697686
- RPC: impl admin_RemovePeer (#16292) by @lupin012
698687

699688
**Full Changelog**: https://github.com/erigontech/erigon/compare/v3.1.0...v3.2.0
700-
701-
-----
702-
703-
File following Keep a Changelog spec: https://keepachangelog.com/en/1.1.0/

0 commit comments

Comments
 (0)