Download Latest Version v3.6.1 source code.zip (51.8 MB) Google Add to Preferred Sources
Home / v3.6.0
Name Modified Size InfoDownloads / Week
Parent folder
erigon_v3.6.0_checksums.txt 2026-08-24 477 Bytes
erigon_3.6.0_amd64.deb 2026-08-24 456.4 MB
erigon_3.6.0_arm64.deb 2026-08-24 419.0 MB
erigon_v3.6.0_linux_amd64.tar.gz 2026-08-24 514.4 MB
erigon_v3.6.0_linux_amd64v2.tar.gz 2026-08-24 514.2 MB
erigon_v3.6.0_linux_arm64.tar.gz 2026-08-24 473.8 MB
README.md 2026-08-24 7.0 kB
v3.6.0 source code.tar.gz 2026-08-24 42.3 MB
v3.6.0 source code.zip 2026-08-24 51.5 MB
Totals: 9 Items   2.5 GB 1

Erigon v3.6.0 — Upstream Underbelly

Erigon 3.6.0 is headlined by more reliable Caplin block production, pruned nodes reclaiming old snapshots, and plain commitment snapshots, with leaner state access and maintenance throughout. Most 3.5 users can upgrade without re-syncing. To benefit immediately from the new plain commitment format, existing users should install 3.6, then run erigon seg reset --datadir=<path> before starting the node; the next start will re-sync using the new snapshots. Datadirs created with Erigon 3.3 or earlier that have not already been rebased must use this reset path or run erigon seg step-rebase --datadir=<path> --new-step-size=390625 before their first normal 3.6 start.

Highlights

  • More reliable Caplin block production. Caplin starts payload building before proposer slots and publishes fork choice earlier, giving blocks more time to reach attesters (#23437, [#23172]) — by @lystopad
  • Pruned nodes now reclaim old state snapshots. State history, indexes, optional commitment history, and the receipts cache are retired once they fall outside their configured windows; fresh syncs also skip optional snapshots outside those windows. This fixes unbounded snapshot growth on long-running minimal and other pruned nodes (#21306, [#22123], [#21200], [#22243], [#22349]) — by @AskAlexSharov, @JkLondon
  • Plain commitment snapshots. New commitment files store values directly by default, speeding state reads and merges at the cost of larger files. Existing referenced files remain readable and convert lazily during merges; the offline integration commitment convert command provides an explicit migration path (#14809, [#21452], [#21376], [#21933]) — by @awskii, @AskAlexSharov
  • Faster state access and snapshot maintenance. Sharded LRU state, code, and commitment caches replace whole-cache resets; compression during state-snapshot merges is 2–3× faster, dictionary-building merges are about 1.5× faster, and the mainnet .bt pivot cache uses roughly one quarter of its previous heap (#21386, [#21982], [#22154], [#21625], [#22050], [#21875]) — by @mh0lt, @yperbasis, @sudeepdino008, @AskAlexSharov

Breaking Changes

  • Downgrading after 3.6 writes new snapshot files is unsupported. New 3.6 snapshot and accessor formats are incompatible with Erigon 3.5. Back up the datadir before upgrading if rollback is required (#21452, [#21376], [#21778]).
  • Historical receipts are off by default on fresh datadirs in every prune mode. Existing datadirs keep their stored enable/disable setting. Without the cache, receipt and log RPCs re-execute within the state-history window at higher latency. Blocks-mode operators who need receipts and logs back to genesis must use --prune.include-receipts --prune.receipts.distance=keep-all (#22296, [#22349]) — by @yperbasis, @AskAlexSharov
  • Idle polling filters expire after five minutes. Clients using eth_newFilter, eth_newBlockFilter, or eth_newPendingTransactionFilter must poll within the timeout or recreate the filter. Configure --rpc.subscription.filters.timeout, or set it to 0 to disable eviction. New subscriptions_active and subscriptions_*_total metrics track the filter lifecycle (#22261) — by @onelapahead
  • JSON-RPC compatibility changes. Quoted decimal block numbers such as "3" are rejected; use "0x3", a bare integer, or a named tag. Streaming trace errors no longer include result: null alongside error (#21985, [#21922]) — by @lupin012

Added and Changed

RPC

  • With --prune.include-commitment-history, eth_getWitness now builds and verifies a lean witness for any block within retained history (#22099) — by @awskii
  • eth_fillTransaction fills missing fields and returns the unsigned raw transaction plus its JSON form, compatible with geth; KZG generation from raw blobs is not included (#21870) — by @lupin012
  • eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount, eth_getProof, and eth_getStorageValues now default an omitted block parameter to latest (#21586) — by @MysticRyuujin
  • trace_block and trace_replayBlockTransactions can include beacon-withdrawal balance changes through the optional IncludeWithdrawals trace setting (#21592) — by @lupin012

Consensus layer and protocol

  • Validation now rejects fork-inconsistent blocks and sidecars, truncated typed transactions, invalid fee relationships, and blob wrappers with trailing data (#22920, [#23041], [#22902], [#23297]) — by @yperbasis, @chfast
  • Default block graffiti now identifies both the execution and consensus clients (#22303) — by @lystopad
  • Caplin archive maintenance repairs truncated validator tables, backs off repeatedly failing retirement work, removes frozen state rows from its indexing DB for reuse, and stores compact effective balances, cutting the measured per-slot copy from about 266 MB to 18 MB (#22385, [#22396], [#22411], [#23408]) — by @awskii, @AskAlexSharov, @lystopad
  • Caplin advertises its bound ports, skips peers without TCP endpoints, and accepts Chiado libp2p bootstrap nodes (#22273, [#22271], [#23245]) — by @MysticRyuujin, @domiwei
  • A deadlock in the transaction pool that could wedge block-producing nodes during high load has been resolved (#23360) — by @lystopad
  • Glamsterdam devnet-6 support adds EIP-8282 builder execution requests, EIP-2780, EIP-8038, EIP-8246, and the devnet-6 revisions of EIP-7928/EIP-8037; Caplin tracks the Gloas alpha.11 request format, and BALs can be regenerated throughout retained state history, extending beyond the weak-subjectivity period (#22091, [#22093], [#22053], [#22060], [#22122], [#22136], [#22161], [#21764]) — by @domiwei, @taratorio. Devnet/testing only — not scheduled on mainnet or any public testnet.

Operations

  • Pruning flags now use readable policies: --prune.distance accepts keep-all, and --prune.distance.blocks accepts keep-post-merge and keep-all. Receipt and commitment-history caches have independent --prune.*.distance windows; the former receipt flag names remain aliases (#22119, [#21200], [#22349]) — by @yperbasis, @JkLondon, @AskAlexSharov
  • Missing E3 accessors are rebuilt automatically on restart. erigon seg index --rebuild rebuilds every snapshot accessor and index without deleting snapshot data (#22682, [#21919]) — by @AskAlexSharov, @sudeepdino008
  • Commitment preloading no longer stalls when a step budget fills exactly (#23153) — by @lystopad
  • The command-line layer now uses urfave/cli/v3. Normal flag handling remains compatible, and --config now applies to subcommands; operators with unusual invocation patterns should smoke-test them (#22130, [#22546]) — by @AskAlexSharov, @yperbasis, @lupin012

Full Changelog: https://github.com/erigontech/erigon/compare/v3.5.5...v3.6.0

Source: README.md, updated 2026-08-24