Skip to content

v3.6.1 candidate#159

Open
manav2401 wants to merge 14 commits into
release/3.2from
v3.6.1-candidate
Open

v3.6.1 candidate#159
manav2401 wants to merge 14 commits into
release/3.2from
v3.6.1-candidate

Conversation

@manav2401

Copy link
Copy Markdown
Member

Prepare for v3.6.1 release.

pratikspatil024 and others added 14 commits March 27, 2026 10:44
* feat: configurable pruning limits + span-rotation improves

* fix: use int instead of uint64 for pruneDiffsLimitOnChainTip
* execution, p2p: fix ssTxs encoding / add missing HF blocks

* chore: fix lint

* chore: fix EthTestConfig by reflecting the precompiles in the json testdata

* remove stale comment
…-standards-erigon

chore: pos workspace setup
* deterministic state syncs

* update fork choices

* fix fork tests

* TODO define HF height

* fix linter

* fix TestEthConfig failure and intoduce a flag for testdata update

* address comments

* remove hf block height for devnets

* polygon/bridge: add record_time filter in deterministic state sync path

* match bor's validateEventRecord

* test single endpoint

* fix bridge service for determinist ss

* add tests

* unify endpoints

* polygon, p2p, execution: minimize changes to avoid dss hf
* core/state, rpc/ethapi: align eth_call stateDiff with geth/Bor

* chore: clear dirty storage

* chore: simplify state override comments

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
)

Erigon's bridge re-derived each block's state-sync window by scanning its
pre-scraped local event store with a record_time < to filter. Bor instead
queries Heimdall's clerk/time endpoint live and consumes its server-side
stability gate, which withholds the most-recent event group until a later
commit is indexed. Because the scraper pulls events ahead of the gate into
the store, the store-based selection over-included the withheld group at the
sprint window boundary, producing a state-sync set that diverged from the
rest of the network and a receipt-root mismatch (bad block) on import.

ProcessNewBlocks now takes the window boundary from the same gated clerk/time
query bor uses (via the existing eventFetcher; sequential ids, strict
record_time < to), instead of store.LastEventIdWithinWindow. Event bodies are
still served from the local store; only the boundary is gated. The existing
scraper lag addressed fetching, not block-window selection.

Adds a regression test covering events present in the store but withheld by
the gate, and bumps the version to v3.6.1-beta2.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

6 participants