Skip to content

feat(deps): update erigon dependencies - #673

Open
graphops-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/erigon
Open

feat(deps): update erigon dependencies#673
graphops-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/erigon

Conversation

@graphops-renovate

@graphops-renovate graphops-renovate Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
erigontech/erigon (source) minor v3.5.4 -> v3.6.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

erigontech/erigon (erigontech/erigon)

v3.6.0

Compare Source

Breaking Changes
--prune.include-receipts: historical receipts cache now off by default in all prune modes

The historical ("fat") receipts cache is no longer enabled by default on non-archive nodes. Previously
--prune.include-receipts (formerly --persist.receipts, still accepted as an alias) defaulted on for every prune mode
except archive; it now defaults off everywhere. The consensus layer was the consumer that justified retaining these
receipts on pruned nodes, and it no longer needs them (#​21617).

What changed:

--prune.mode Before After
archive off off
full on off
blocks on off
minimal on off

Receipts and logs stay available within a node's retention window regardless: without the cache they are re-executed on
demand from state history, so eth_getLogs and eth_getBlockReceipts keep working, at higher latency. For full and
minimal nodes the availability window is unchanged (receipts follow the state-history window either way). For blocks
nodes the cache previously made receipts and logs queryable back to genesis; without it they follow the state-history
window (last 262,144 blocks) — pass --prune.include-receipts if you rely on full-range eth_getLogs.

Migration: existing datadirs are unaffected — the receipts-cache setting is recorded at datadir creation and the
stored value wins, so a node already syncing with the cache keeps it. Such a node now logs a startup notice that
--prune.include-receipts differs from the value stored in the datadir; pass --prune.include-receipts explicitly to
silence it. Only newly-created full/minimal/blocks datadirs start without the cache; pass
--prune.include-receipts on a fresh datadir to opt back in.

(#​22296) — by @​yperbasis


CLI: receipts and commitment-history pruning flags moved under --prune.*

The receipt cache and commitment history now share the --prune.* naming used by the rest of the pruning flags. All
former names keep working as aliases, and stored datadir settings are unaffected.

  • --persist.receipts--prune.include-receipts (alias: --persist.receipts, --experiment.persist.receipts.v2).
  • New --prune.receipts.distance (alias: --persist.receipts.distance) bounds how far back the receipt cache is kept:
    a block count, keep-all, or empty/0 (default) to follow the state-history window. Requires
    --prune.include-receipts. Snapshots older than the window are skipped at download time.
  • --prune.commitment-history.distance now also accepts keep-all (in addition to a block count); empty or 0 still
    keeps everything.

(#​22349) — by @​AskAlexSharov


JSON-RPC: block-number strings must use the 0x hex format

Quoted decimal strings (e.g., "3") are no longer accepted as block-number
parameters; use the canonical hex form (e.g., "0x3") instead. Bare JSON
integers (3) and named tags ("latest", "earliest", "pending",
"safe", "finalized") are unchanged.

What changed:

Input Before After
"3" (quoted decimal) accepted rejected with -32602
"0x3" (hex string) accepted accepted
3 (bare integer) accepted accepted

Migration: replace any quoted decimal block number with its 0x
equivalent — e.g., "3""0x3", "1000000""0xf4240".


eth_simulateV1: base fee too low error code corrected to -38012

Aligns Erigon with the eth_simulateV1 error code specification (NethermindEth/nethermind#11412).

What changed:

Aspect Before After
ErrFeeCapTooLow error code -32602 (generic "Invalid params") -38012 (spec-mandated "baseFeePerGas is too low")

Migration:

  • If your tooling matches on error code -32602 to detect base-fee-too-low conditions in eth_simulateV1 responses, update it to match -38012 instead.

JSON-RPC: idle polling filters are evicted after 5 minutes

Filters created with eth_newFilter, eth_newBlockFilter, and eth_newPendingTransactionFilter are now evicted when not polled for 5 minutes, matching geth's stale-filter deadline. Previously they lived — and kept buffering data — until eth_uninstallFilter or a restart.

What changed:

Aspect Before After
Idle polling filter kept until uninstalled or restart evicted after 5 minutes without a poll
eth_getFilterChanges / eth_getFilterLogs on an evicted id filter not found

Migration: poll more often than the timeout, or recreate the filter when filter not found is returned (as with geth). Tune with --rpc.subscription.filters.timeout; set it to 0 to restore the previous keep-forever behavior. (#​22261 by @​onelapahead)

Added
CLI & Operations
  • --prune.distance.blocks now accepts readable policy names — keep-post-merge and keep-all — instead of the raw MaxUint64-based magic numbers (18446744073709551615 / 18446744073709551614); --prune.distance likewise accepts keep-all. Numeric values still work (#​22119) — by @​yperbasis
  • --rpc.subscription.filters.timeout — deadline for evicting idle RPC polling filters (default 5m; 0 disables). New subscriptions_active gauge and subscriptions_created_total / subscriptions_unsubscribed_total / subscriptions_reaped_total counters track the filter lifecycle (#​22261) — by @​onelapahead
  • --witness.cache.blocks, --witness.cache.head-capture, and --witness.cache.maxmb enable an eager in-memory cache of recent-block legacy debug_executionWitness results, keyed by block hash. Head-capture mode lets a minimal node (no commitment-domain history) serve witnesses for the last N head blocks cache-only — a miss returns out-of-window rather than recomputing from history. New witness_cache_* metrics track hits, misses, builds, and resident entries. Embedded RPC only — by @​awskii

v3.5.5

Compare Source

v3.5.5 is a bugfix and security release recommended for all users, and especially for block proposers and archive-node operators. It fixes a panic on every Fulu blinded-block submission (#​23150), a payload frozen before its slot began under an external consensus layer (#​23102), and wrong logIndex values on archive nodes (#​22951). It is a drop-in upgrade from 3.5.4 — no re-sync required.

Bugfixes

  • cl/beacon: handle an empty Fulu builder response (#​23150) by @​domiwei — Builder API v2 answers a successful Fulu blinded-block submission with 202 Accepted and no body, so the builder client returned all-nil and publishBlindedBlocks dereferenced the nil payload. The beacon router installs no middleware.Recoverer, so the validator client saw only a dropped connection and nothing reached the Erigon log. Fixes #​22598.
  • execution: build payloads until the slot they are for (#​23102) by @​lystopad — the builder's time budget ran from when payload attributes arrived rather than from the payload timestamp, so a consensus layer sending attributes well ahead of the slot got a payload frozen before that slot began. The budget now derives from the timestamp, floored at the old value and capped at two slots. Non-proposing nodes and Caplin are unaffected.
  • db/state: route receipt-domain reads through the overlay DomainReader (#​22951) by @​Sahil-4555 and @​mh0lt — a block admitted through the block overlay read its receipt metadata from the committed tx, where a history miss fell back to GetLatest and returned the previous writing block's final log count. The wrong logIndex was then cached in the RPC layer. Affected v3.5.1–v3.5.4. Fixes #​22106.
  • db/state: roll back receipt domains on an in-RAM reorg unwind (#​23064) by @​MoonBoi9001 — the in-memory unwind path restored a hand-written list of the four state kinds that existed when it was written and never gained the receipt counters added later, so it left the abandoned blocks' values in place. It now walks every state kind, as the disk path does.
  • db/downloader: allow seeding caplin state snapshots with a nil global type (#​22980) by @​lystopad — a node upgraded in place from a recent release/3.4 build logged nil ptr after parsing file: caplin/…-NextSyncCommittee.seg and silently stopped seeding its caplin state snapshots.

Security

  • build: bump golang.org/x/text to v0.39.0 (#​23178) by @​lystopadCVE-2026-56852: infinite loop in unicode/norm on invalid UTF-8. Reachable from the downloader's HTTP/3 webseed path, and the only advisory here that govulncheck reports as called.
  • build: bump golang.org/x/net to v0.56.0 (#​23178) by @​lystopadCVE-2026-46600: panic parsing a malformed SVCB or HTTPS DNS resource record.
  • build: bump github.com/quic-go/webtransport-go to v0.11.1 (#​23178) by @​lystopadCVE-2026-57497: memory exhaustion from unbounded buffering of unknown capsules. Not reachable in Erigon: no WebTransport libp2p transport is registered.
  • build: bump github.com/go-chi/chi/v5 to v5.3.1 (#​23178) by @​lystopadCVE-2025-69725 (open redirect in RedirectSlashes) plus three middleware.RealIP IP-spoofing advisories. Not reachable in Erigon: none of chi's middleware is used.

Improvements

  • build: revert the go-eth-kzg verifier optimization (#​23177) by @​yperbasisrelease/3.5 pinned crate-crypto/go-eth-kzg to an Erigon fork carrying an upstream change that is still an unmerged draft. This restores the released upstream v1.5.0 while the correctness concerns are investigated.

Full Changelog: erigontech/erigon@v3.5.4...v3.5.5



Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

| datasource | package           | from   | to     |
| ---------- | ----------------- | ------ | ------ |
| docker     | erigontech/erigon | v3.5.4 | v3.6.0 |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants