Skip to content

Comments

fix(engine): flatten storage cache#18880

Merged
Rjected merged 5 commits intomainfrom
dan/flatten-storage-cache
Oct 14, 2025
Merged

fix(engine): flatten storage cache#18880
Rjected merged 5 commits intomainfrom
dan/flatten-storage-cache

Conversation

@Rjected
Copy link
Member

@Rjected Rjected commented Oct 6, 2025

This fixes memory growth caused by growing execution caches, an alternative to #18879

This instead removes the cache hierarchy, so cache updates are always picked up by the moka weigher.

Previous memory usage:
Screenshot 2025-10-03 at 3 29 31 PM

New memory usage:
Screenshot 2025-10-03 at 5 07 15 PM

This also has slightly higher cache hitrate than #18879

Copy link
Collaborator

@mattsse mattsse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

makes sense, let's go with this

I'm a bit concerned about the invalidate impl

/// storage slots.
storage_cache: Cache<Address, AccountStorageCache>,
/// Flattened storage cache: composite key of (`Address`, `StorageKey`) maps directly to values.
storage_cache: Cache<(Address, StorageKey), Option<StorageValue>>,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right, we can't really nest caches because this would mean that the weigher of the storage_cache would only consider new acc -> storage entries

this is better because it treats storage slots as individual entries, which I guess explains the higher hit rate

we likely have additional address overhead, but this should be okay, we could compress this to a u64 with a separate map, like we do in the pool, but perhaps not that useful

Comment on lines 357 to 363
let storage_entries = self
.storage_cache
.iter()
.filter_map(|entry| addresses.contains(&entry.key().0).then_some(*entry.key()));
for key in storage_entries {
self.storage_cache.invalidate(&key)
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, unsure this is sound because this feels problematic

dashmap iter

Locking behaviour: May deadlock if called when holding a mutable reference into the map.

and cache iter:

Locking behavior
This iterator relies on the iterator of dashmap::DashMap , which employs read-write locks. May deadlock if the thread holding an iterator attempts to update the cache.

tho I don't know if this is applicable here
unfortunately we don't have a retain here

should be perhaps collect then remove?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, yeah I think we should collect then remove here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this now collects

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should document this with a one liner because this is a prime candidate for a bot "optimization" pr that would look perfectly valid

@github-project-automation github-project-automation bot moved this from Backlog to In Progress in Reth Tracker Oct 14, 2025
@Rjected Rjected force-pushed the dan/flatten-storage-cache branch from 0e36a74 to eb8a43a Compare October 14, 2025 18:14
@Rjected Rjected force-pushed the dan/flatten-storage-cache branch from eb8a43a to 0f83128 Compare October 14, 2025 18:17
@Rjected Rjected requested a review from mattsse October 14, 2025 18:17
@Rjected Rjected marked this pull request as ready for review October 14, 2025 18:20
Comment on lines 357 to 363
let storage_entries = self
.storage_cache
.iter()
.filter_map(|entry| addresses.contains(&entry.key().0).then_some(*entry.key()));
for key in storage_entries {
self.storage_cache.invalidate(&key)
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should document this with a one liner because this is a prime candidate for a bot "optimization" pr that would look perfectly valid

@Rjected Rjected enabled auto-merge October 14, 2025 19:01
@Rjected Rjected added this pull request to the merge queue Oct 14, 2025
Merged via the queue into main with commit 169a1fb Oct 14, 2025
39 of 40 checks passed
@Rjected Rjected deleted the dan/flatten-storage-cache branch October 14, 2025 19:28
@github-project-automation github-project-automation bot moved this from In Progress to Done in Reth Tracker Oct 14, 2025
@jenpaff jenpaff added this to the v1.8.3 milestone Oct 16, 2025
@jenpaff jenpaff mentioned this pull request Oct 16, 2025
1 task
Rjected added a commit that referenced this pull request Oct 22, 2025
@jenpaff jenpaff moved this from Done to Completed in Reth Tracker Oct 30, 2025
shekhirin added a commit that referenced this pull request Oct 30, 2025
shekhirin added a commit that referenced this pull request Oct 31, 2025
frisitano added a commit to scroll-tech/reth that referenced this pull request Nov 17, 2025
* docs: yellowpaper sections in consensus implementation (paradigmxyz#18881)

* fix(era-utils): fix off-by-one for Excluded end bound in process_iter (paradigmxyz#18731)

Co-authored-by: Roman Hodulák <roman.hodulak@polyglot-software.com>

* refactor: eliminate redundant allocation in precompile cache example (paradigmxyz#18886)

* chore: relax `ChainSpec` impls (paradigmxyz#18894)

* chore: make clippy happy (paradigmxyz#18900)

* fix(trie): Reveal extension child when extension is last remaining child of a branch (paradigmxyz#18891)

* chore(node): simplify EngineApiExt bounds by removing redundant constraints (paradigmxyz#18905)

* refactor(engine): separate concerns in on_forkchoice_updated for better maintainability (paradigmxyz#18661)

Co-authored-by: Nathaniel Bajo <nathanielbajo@Nathaniels-MacBook-Pro.local>
Co-authored-by: YK <chiayongkang@hotmail.com>
Co-authored-by: Brian Picciano <me@mediocregopher.com>

* feat(provider): add get_account_before_block to ChangesetReader (paradigmxyz#18898)

* refactor: replace collect().is_empty() with next().is_none() in tests (paradigmxyz#18902)

Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* ci: cache hive simulator images to reduce prepare-hive job time (paradigmxyz#18899)

* docs: duplicate comment in Eip4844PoolTransactionError (paradigmxyz#18858)

* chore: align node_config threshold constant (paradigmxyz#18914)

* feat: wait for new blocks when build is in progress (paradigmxyz#18831)

Co-authored-by: Roman Hodulák <roman.hodulak@polyglot-software.com>

* perf(tree): worker pooling for storage in multiproof generation (paradigmxyz#18887)

Co-authored-by: Brian Picciano <me@mediocregopher.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* chore(grafana): use precompile address as legend (paradigmxyz#18913)

* refactor: remove needless collect() calls in trie tests (paradigmxyz#18937)

* fix(examples): change method to launch with debug capabilities (paradigmxyz#18946)

* fix(example): launch with debug capabilities (paradigmxyz#18947)

* fix(testsuite): Fix unused updates in e2e-test-utils (paradigmxyz#18953)

* fix(payload): correct Debug label for PayloadTimestamp in PayloadServiceCommand (paradigmxyz#18954)

* chore(rpc): Moves `SequencerMetrics` into `reth-optimism-rpc` (paradigmxyz#18921)

* refactor: replace println! with structured logging in test_vectors (paradigmxyz#18956)

* refactor(cli): use structured logging (tracing) in p2p command (paradigmxyz#18957)

* perf(tree): add elapsed time to parallel state root completion log (paradigmxyz#18959)

* fix(trie): Properly upsert into StoragesTrie in repair-trie (paradigmxyz#18941)

* fix: misleading error message in db list: show actual table name (paradigmxyz#18896)

* fix: remove noisy stderr prints in ERA1 cleanup (EraClient::delete_outside_range) (paradigmxyz#18895)

* fix: use max B256 for upper bound in empty-storage check (paradigmxyz#18962)

* ci: remove reproducible build from release.yml (paradigmxyz#18958)

* chore(rpc): Remove redundant U256::from in suggested_priority_fee (paradigmxyz#18969)

* chore(ci): update eest 7594 issue link in hive expected failures file (paradigmxyz#18976)

* perf(tests): remove redundant format! in ef-tests run_only (paradigmxyz#18909)

* feat(cli): enable traces export via `tracing-otlp` cli arg (paradigmxyz#18242)

Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>

* feat: allow otlp level to be configurable (paradigmxyz#18981)

* chore(optimism): remove unnecessary Debug bounds from header generics (paradigmxyz#18989)

* refactor: convert satisfy_base_fee_ids to use closure (paradigmxyz#18979)

* chore: bump otlp crates (paradigmxyz#18984)

* fix(network): prevent metric leak in outgoing message queue on session teardown (paradigmxyz#18847)

* chore: remove unused imports in blockchain_provider (paradigmxyz#18867)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* fix(stateless): enforce BLOCKHASH ancestor header limit (paradigmxyz#18920)

* chore(evm): mark ExecuteOutput as unused and slated for removal (paradigmxyz#18754)

* refactor: unify `Pipeline` creation codepaths (paradigmxyz#18955)

* fix(engine): flatten storage cache (paradigmxyz#18880)

* perf(tree): worker pooling for account proofs (paradigmxyz#18901)

Co-authored-by: Brian Picciano <me@mediocregopher.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* refactor(storage): fix ChainStateKey enum variant name (paradigmxyz#18992)

* refactor(trie): remove proof task manager (paradigmxyz#18934)

Co-authored-by: Brian Picciano <me@mediocregopher.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* fix: required optimism primitives features in db-api (paradigmxyz#19005)

* refactor(engine): simplify InvalidBlockWitnessHook::on_invalid_block for better testability (paradigmxyz#18696)

* chore: replace poll_next_unpin loop with poll_recv_many (paradigmxyz#18978)

* fix: Set Era pipeline stage to last checkpoint when there is no target (paradigmxyz#19000)

* ci: Add tests for Paris scenario in hive.yml (paradigmxyz#19013)

* chore: bump book timeout (paradigmxyz#19016)

* feat: add metrics for safe and finalized block heights (paradigmxyz#18987)

* chore(privitives-traits): remove unused serde derives and camelCase attribute (paradigmxyz#19014)

* chore: refactor loop in `add_new_transactions` (paradigmxyz#19006)

* chore(ci): bump hive eest to v5.3.0 (paradigmxyz#19021)

* feat(devp2p): make eth p2p networkId configurable (paradigmxyz#19020)

Co-authored-by: frankudoags <frankudoags.com>

* chore: remove unused Args struct from exex-subscription example (paradigmxyz#19019)

* feat: add pending sequence as pub (paradigmxyz#19022)

* chore: bump alloy-core (paradigmxyz#19026)

* fix: unused warnings for tracing (paradigmxyz#19025)

* fix: respect cli blob size setting (paradigmxyz#19024)

* feat(engine): deprecate TestPipelineBuilder::with_executor_results (paradigmxyz#19017)

* perf: background init of workers (paradigmxyz#19012)

* chore(ci): update expected failures (paradigmxyz#19034)

* fix: use header type generic for mask (paradigmxyz#19037)

* fix: correct `Compact` impl for `Option` (paradigmxyz#19042)

* chore: increase versioned hash index cache (paradigmxyz#19038)

* chore(primitives-traits): relax SignerRecoverable bounds for Extended<B,T> (paradigmxyz#19045)

* feat: bump revm (paradigmxyz#18999)

* fix: resolve upstream merge

Signed-off-by: Gregory Edison <gregory.edison1993@gmail.com>

* bump revm

* update deps and fix lints

* update openvm deps

* skip exex wal storage test

* pin revm tag scroll-v91

* bump openvm compat

---------

Signed-off-by: Gregory Edison <gregory.edison1993@gmail.com>
Co-authored-by: josé v <52646071+Peponks9@users.noreply.github.com>
Co-authored-by: Forostovec <ilonaforostovec22@gmail.com>
Co-authored-by: Roman Hodulák <roman.hodulak@polyglot-software.com>
Co-authored-by: Skylar Ray <137945430+sky-coderay@users.noreply.github.com>
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: Léa Narzis <78718413+lean-apple@users.noreply.github.com>
Co-authored-by: Brian Picciano <me@mediocregopher.com>
Co-authored-by: radik878 <radikpadik76@gmail.com>
Co-authored-by: William Nwoke <willteey@gmail.com>
Co-authored-by: Nathaniel Bajo <nathanielbajo@Nathaniels-MacBook-Pro.local>
Co-authored-by: YK <chiayongkang@hotmail.com>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
Co-authored-by: Merkel Tranjes <140164174+rnkrtt@users.noreply.github.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
Co-authored-by: stevencartavia <112043913+stevencartavia@users.noreply.github.com>
Co-authored-by: emmmm <155267286+eeemmmmmm@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: MIHAO PARK <wetkeyboard17@gmail.com>
Co-authored-by: Tilak Madichetti <tilak.madichetti@gmail.com>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: maradini77 <140460067+maradini77@users.noreply.github.com>
Co-authored-by: sashaodessa <140454972+sashaodessa@users.noreply.github.com>
Co-authored-by: Alvarez <140459501+prestoalvarez@users.noreply.github.com>
Co-authored-by: MozirDmitriy <dmitriymozir@gmail.com>
Co-authored-by: drhgencer <gancer16@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: anim001k <140460766+anim001k@users.noreply.github.com>
Co-authored-by: Julian Meyer <julian.meyer@coinbase.com>
Co-authored-by: Karl Yu <43113774+0xKarl98@users.noreply.github.com>
Co-authored-by: Jennifer <jenpaff0@gmail.com>
Co-authored-by: Ivan Wang <314130948@qq.com>
Co-authored-by: GarmashAlex <garmasholeksii@gmail.com>
Co-authored-by: Udoagwa Franklin <54338168+frankudoags@users.noreply.github.com>
Co-authored-by: Luca Provini <luca.provini@usemerkle.com>
Co-authored-by: Galoretka <galoretochka@gmail.com>
Co-authored-by: sashass1315 <sashass1315@gmail.com>
Co-authored-by: frisitano <francesco.risitano95@gmail.com>
asdv23 added a commit to mantle-xyz/reth that referenced this pull request Dec 12, 2025
* chore: lower ecies instrument calls to trace (paradigmxyz#19004)

* fix: add revm-state to dev-dependencies of chain-state crate (paradigmxyz#19044)

* fix(sim): clamp bundle timeout to max instead of falling back to default (paradigmxyz#18840)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* fix(cli): remove redundant EthChainSpec bound in run_with_components (paradigmxyz#19106)

* feat: convert blobs at RPC (paradigmxyz#19084)

* fix: add bundle and transaction context to call_many errors (paradigmxyz#18127)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore: add comment section for claude (paradigmxyz#19108)

* feat: derive dev accounts from mnemonic in dev mode (paradigmxyz#18299)

Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>

* refactor: naming fix for multiproof dispatch (paradigmxyz#19102)

* fix: Deduplicate hashed storage preparation in MemoryOverlayStateProvider (paradigmxyz#19087)

* feat: convert pooled blobs transition (paradigmxyz#19095)

* feat(engine): improve payload validator tracing spans (paradigmxyz#18960)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>

* feat: add capacity metrics for tries (paradigmxyz#19117)

* feat(cli): Reuse a single StaticFileProducer across file import chunks (paradigmxyz#18964)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* feat(stateless): make UncompressedPublicKey serializable (paradigmxyz#19115)

Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>

* docs: fix wrong label for `--color=auto` (paradigmxyz#19110)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore: fix clippy (paradigmxyz#19118)

* fix(net): correct error messages for decrypt and header paths (paradigmxyz#19039)

* chore: remove redundant collect in debug trace (paradigmxyz#19121)

* chore(deps): weekly `cargo update` (paradigmxyz#19126)

Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* fix: Remove duplicate debug log in write_blocks_to_rlp (paradigmxyz#19132)

* feat: add helper apply fns (paradigmxyz#19122)

* fix(e2e): gracefully wait for payload (paradigmxyz#19137)

* fix: Add support for init-state for op-reth chains that are not op-mainnet… (paradigmxyz#19116)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore(trie): Add lifetime to cursors returned from Trie/HashedCursorFactorys (paradigmxyz#19114)

* chore: fix+update nix flake (paradigmxyz#19142)

* Revert "refactor: unify `Pipeline` creation codepaths" (paradigmxyz#19143)

* fix(prune): Disable pruning limits (paradigmxyz#19141)

* fix: remove tautological assertions in validator tests (paradigmxyz#19134)

* chore(config): clean up gas limit code (paradigmxyz#19144)

* perf: batch byte for serialization (paradigmxyz#19096)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* fix: Revert "feat(engine): improve payload validator tracing spans (paradigmxyz#18960)" (paradigmxyz#19145)

* chore: rm high frequency otel-related debug logs (paradigmxyz#19147)

* perf: fix redundant Arc clone in file_client tests (paradigmxyz#19170)

* feat(storage): replace unreachable todo!() with explicit unreachable!() in compact derive (paradigmxyz#19152)

* chore: remove total difficulty from `HeaderProvider` (paradigmxyz#19151)

* fix(cli): prune config saving to file (paradigmxyz#19174)

* refactor: remove `FullNodePrimitives` (paradigmxyz#19176)

* refactor(ipc): simplify RpcServiceCfg from enum to struct (paradigmxyz#19180)

* chore: fix incorrect hex value in comment (0x2A instead of 0x7E) (paradigmxyz#19181)

* feat(e2e): add builder API for configuring test node setups (paradigmxyz#19146)

* fix: remove unnecessary trait bounds in extend_sorted_vec helper (paradigmxyz#19154)

* fix: drop support for total difficulty table (paradigmxyz#16660)

Co-authored-by: Aditya Pandey <adityapandey@Adityas-MacBook-Air.local>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>

* chore: fix misleading log message for body size check (paradigmxyz#19173)

* feat: improve oversized data error message (paradigmxyz#19190)

* chore: rm generic array dep from discv4 (paradigmxyz#19140)

* docs: improve SealedBlockRecoveryError documentation (paradigmxyz#19120)

* test: add node record parse test (paradigmxyz#19172)

* fix: add arrayvec to dev-dependencies in reth-trie-common (paradigmxyz#19192)

* feat(engine): improve payload validator tracing spans 2 (paradigmxyz#19155)

* refactor: decouple max proof task concurrency from inflight proof limits (paradigmxyz#19171)

* chore: remove rkrasiuk from codeowners (paradigmxyz#19206)

* perf(net): convert Bytes to BytesMut to avoid reallocation (paradigmxyz#19204)

* refactor(prune): remove receipts log filter segment (paradigmxyz#19184)

* fix: small features fix (paradigmxyz#19212)

* perf: check prewarm termination multiple times (paradigmxyz#19214)

* chore: only alloc required capacity (paradigmxyz#19217)

* fix: captured impl trait lifetime (paradigmxyz#19216)

Signed-off-by: Gregory Edison <gregory.edison1993@gmail.com>

* fix: OverlayStateProviderFactory: validating trie changeset range and revert target (paradigmxyz#19207)

* feat: warning log when blocked on execution cache (paradigmxyz#19222)

* fix(reth-bench): Lower block channel capacity and make it configurable (paradigmxyz#19226)

* chore: use retrylayer for benchmarkcontext (paradigmxyz#19227)

* fix: incorrect RPC namespace reference (paradigmxyz#19225)

* chore: add elapsed info log (paradigmxyz#19211)

* test(hive): Ignore new failures that are won't fix (paradigmxyz#19218)

* fix: rename consume-* test suite (paradigmxyz#19230)

* chore(storage): remove `UnifiedStorageWriterError` (paradigmxyz#19210)

* chore(e2e): relax bounds (paradigmxyz#19231)

* revert: "fix(engine): flatten storage cache (paradigmxyz#18880)" (paradigmxyz#19235)

* fix(node): remove unused ConsensusLayerHealthEvent variants (paradigmxyz#19238)

* chore: swap order for canon stream (paradigmxyz#19242)

* feat(jovian): track da footprint block limit. Update basefee calculation (paradigmxyz#19048)

Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>

* fix(engine): payload processor tracing event targets (paradigmxyz#19223)

* perf: rm pending queue from MultiproofManager (paradigmxyz#19178)

* docs: correct Payment tx type from 0x7E to 0x2A (paradigmxyz#19255)

* fix: use network id in p2p command (paradigmxyz#19252)

* feat(prune): Add an empty `reth-prune-db` crate (paradigmxyz#19232)

* fix: use known paris activation blocks in genesis parsing (paradigmxyz#19258)

* chore: align env filter comment with configured directives (paradigmxyz#19237)

* refactor(static-file): remove unused segments (paradigmxyz#19209)

* docs: add usage examples and documentation to NoopConsensus (paradigmxyz#19194)

* fix(cli): prune CLI argument names (paradigmxyz#19215)

* fix(engine): shrink tries after clearing (paradigmxyz#19159)

* feat(otlp-tracing): enable to export traces with grpc export with `tracing-otlp` and `tracing-otlp-protocol` arg (paradigmxyz#18985)

* fix: return hashed peer key as id (paradigmxyz#19245)

* chore: remove db pruning of header/txs segments (paradigmxyz#19260)

* chore: rm `StaticFileReceipts` pruner (paradigmxyz#19265)

* chore(net): remove unnecessary TODO (paradigmxyz#19268)

* feat: eth_fillTransaction (paradigmxyz#19199)

Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: jxom <7336481+jxom@users.noreply.github.com>

* fix: no_std compatibility in reth-optimism-chainspec (paradigmxyz#19271)

* chore: add `add_or_replace_if_module_configured` method (paradigmxyz#19266)

* fix(engine): re-insert storage cache and use arc (paradigmxyz#18879)

* feat: allow using SafeNoSync for MDBX (paradigmxyz#18945)

Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* fix(optimism): guard follow-up inserts by payload_id to prevent mixed sequences (paradigmxyz#19264)

* perf: Eliminate spawn_blocking in multiproof manager (paradigmxyz#19203)

* fix: hive tests consume test suite (paradigmxyz#19240)

Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>

* feat(trie): proof task tracing improvements (paradigmxyz#19276)

* fix(trie): correct comment in sparse_trie_reveal_node_1 test (paradigmxyz#19193)

* chore(trie): do not create a parent span for proof worker handle (paradigmxyz#19281)

* feat(tracing): set default OTLP log level to WARN (paradigmxyz#19283)

* fix(node): classify connect_async failures as WebSocket and use Url parse error (paradigmxyz#19286)

* chore(deps): weekly `cargo update` (paradigmxyz#19300)

Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>

* refactor(trie): rename queue_storage_proof to send_storage_proof (paradigmxyz#19310)

* refactor: add more Snap response types  (paradigmxyz#19303)

Co-authored-by: suhas-sensei <suhas.ghosal2002@gmail.com>

* chore(ethereum): remove redundant std::default::Default import (paradigmxyz#19299)

* fix(fs): correct ReadLink error message and add missing read_link wra… (paradigmxyz#19287)

* fix(engine): module doc to reflect schnellru::LruMap backend (paradigmxyz#19296)

* chore(net): upgrade some noisy spans to TRACE (paradigmxyz#19312)

* ci: pin Bun to v1.2.23 (paradigmxyz#19315)

* fix(trie): Fix trie_reverts not returning sorted nodes (paradigmxyz#19280)

* chore: remove redundant PhantomData from NodeHooks (paradigmxyz#19316)

* docs: populate modify-node section with node-custom-rpc implementation guide (paradigmxyz#18672)

* chore: use hex bytes type (paradigmxyz#19317)

* docs(eth-wire): update docs to reflect eth-wire-types, alloy_rlp, version-aware decoding, and RLPx multiplexing (paradigmxyz#19319)

* fix(prune): Add unused variants back to PruneSegment enum (paradigmxyz#19318)

* refactor(trie): Unify proof return types (paradigmxyz#19311)

* chore: remove dead OpL1BlockInfo.number field and writes (paradigmxyz#19325)

* chore(trie): reduce sparse trie tracing (paradigmxyz#19321)

* fix(trie): Rewrite InMemoryTrieOverlay (with proptests!) (paradigmxyz#19277)

* feat(jovian/block-validation): fix block validation for jovian (paradigmxyz#19304)

* docs: improve documentation for mock database and transactions (paradigmxyz#19302)

* chore: remove trie capacity metrics (paradigmxyz#19327)

* feat(metrics): add push gateway support for Prometheus metrics (paradigmxyz#19243)

* chore(engine): Remove ConsistentDbView (paradigmxyz#19188)

Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* fix: update section name in expected failures, add more concise comments (paradigmxyz#19328)

* chore: replace `CacheDB` with `State<DB>` in RPC crate (paradigmxyz#19330)

Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>

* chore: update Grafana dashboard with split pending multiproof metrics (paradigmxyz#19339)

* feat(metrics): improve multiproof worker metrics (paradigmxyz#19337)

* chore(deps): bump actions/upload-artifact from 4 to 5 (paradigmxyz#19335)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump actions/download-artifact from 5 to 6 (paradigmxyz#19336)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(engine): Eliminates spurious warning logs in prewarm task (paradigmxyz#19133)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* refactor: make DatabaseProof trait stateful (paradigmxyz#18753)

* refactor(trie): reorder proof_task.rs for better code organization (paradigmxyz#19342)

* fix(pipeline): ensure we dont pass an outdated target to header stage (paradigmxyz#19351)

* chore: update docs for expected test failure (paradigmxyz#19343)

* chore: dont write receipts to both storages on archive node (paradigmxyz#19361)

* chore: add ChainHardforks::extend (paradigmxyz#19332)

* feat(reth-optimism-node): Add OP E2E mineblock test with isthmus activated at genesis (paradigmxyz#19305)

* feat: insert at timestamp (paradigmxyz#19365)

* fix(op-reth/consensus): fixes header validation for jovian. decouple excess blob gas and blob gas used (paradigmxyz#19338)

* refactor(trie): restructure proof task workers into structs (paradigmxyz#19344)

* perf: wrap tx with Arc to avoid deep cloning (paradigmxyz#19350)

* feat: impl a function to create new instance of TransactionEvents (paradigmxyz#19375)

Co-authored-by: Neo Krypt <neo@canxium.org>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* fix(trie): use block hash in OverlayStateProviderFactory (paradigmxyz#19353)

* feat: add pruning of transactions from static-files (paradigmxyz#19241)

* chore: bump 1.8.3 (paradigmxyz#19379)

* fix: Don't always clone in-memory overlays in OverlayStateProviderFactory (paradigmxyz#19383)

* fix(op-reth): use latest for runtime image (paradigmxyz#19331)

* chore: Update nix flake (paradigmxyz#19386)

* feat(jovian/timestamps): add jovian timestamps to op-reth (paradigmxyz#19290)

* fix: add more context to expected hive failures (paradigmxyz#19363)

Co-authored-by: rakita <rakita@users.noreply.github.com>

* feat(rpc): implement `debug_dbGet` (paradigmxyz#19369)

* feat(precompiles/jovian): add jovian precompiles to op-reth (paradigmxyz#19333)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* fix(engine): align compute_trie_input docs with actual persistence behavior (paradigmxyz#19385)

Co-authored-by: Brian Picciano <me@mediocregopher.com>

* fix: remove PersistenceState from TreeCtx (paradigmxyz#19356)

* docs: improve RESS protocol module documentation (paradigmxyz#19370)

* docs: fix otlp flag in monioring docs (paradigmxyz#19394)

* feat(jovian/rpc): update receipts to transmit over RPC with Jovian compatible fields (paradigmxyz#19368)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore(primitives-traits): gate test-only modules (paradigmxyz#19393)

* feat: display blob params alongside hardfork info (paradigmxyz#19358)

* chore: fix unused dep (paradigmxyz#19397)

* chore: fix unused warning (paradigmxyz#19395)

* perf(codecs): avoid String allocation in proc macro type checking (paradigmxyz#19354)

* chore: reuse gzip read buffer to avoid per-iteration allocation (paradigmxyz#19398)

* chore: bump discv5 (paradigmxyz#19400)

* perf: box ForkId in Peer struct to reduce size (paradigmxyz#19402)

* fix(cli): Metrics log when passed metrics port 0 (paradigmxyz#19406)

Co-authored-by: Varun Doshi <doshivarun202@gmail.com>

* fix(engine): trigger live sync after backfill completes at finalized (paradigmxyz#19390)

* fix: Prune checkpoint fixes (paradigmxyz#19407)

* fix: accurate build features reporting in `reth --version` (paradigmxyz#19124)

* chore(net): avoid cloning GetBlockBodies request (paradigmxyz#19404)

* feat: Output the block execution outputs after validating (reth-stateless) (paradigmxyz#19360)

* fix(engine): remove redundant parent_to_child cleanup in insert_executed (paradigmxyz#19380)

* feat: add --rpc.evm-memory-limit flag (paradigmxyz#19279)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* fix: highest_nonces update in PendingPool::remove_transaction (paradigmxyz#19301)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore: add tracing features to node-core crate (paradigmxyz#19415)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore: update superchain reg to c9881d543174ff00b8f3a9ad3f31bf4630b9743b (paradigmxyz#19418)

* fix(compact): prevent bitflag overflow by using usize accumulator (paradigmxyz#19408)

* fix: Properly set MerkleChangeSets checkpoint in stage's fast-path (paradigmxyz#19421)

* chore: add count field to trace (paradigmxyz#19422)

* fix(codecs): return remaining slice in EIP-1559 from_compact (paradigmxyz#19413)

* feat(reth-bench): Default --wait-time to 250ms (paradigmxyz#19425)

* perf: bias towards proof results (paradigmxyz#19426)

* feat(node): CLI argument for sync state idle when backfill is idle (paradigmxyz#19429)

* feat(op-reth): implement miner_setGasLimit RPC (paradigmxyz#19247)

Co-authored-by: frankudoags <frankudoags.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* perf: only chunk if more > 1 available (paradigmxyz#19427)

* fix(beacon-api-sidecar): use correct block metadata for reorged blobs (paradigmxyz#19424)

* chore(codecs): replace todo with unimplemented in Compact derive (paradigmxyz#19284)

* fix(txpool): correct propagate field name in Debug output (paradigmxyz#19278)

* perf: optimize SyncHeight event handling to avoid recursive calls (paradigmxyz#19372)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* perf(tree): only chunk multiproof targets if needed (paradigmxyz#19326)

* fix: rename variable in block_hash method from 'code' to 'hash' (paradigmxyz#19269)

* chore(docker): remove apt-get upgrade to ensure reproducible and faster builds (paradigmxyz#19080)

* fix: Inline value match in SparseTrie::find_leaf to remove redundant wrapper (paradigmxyz#19138)

Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* perf(cli): optimize StorageChangeSets import in merkle stage dump (paradigmxyz#18022)

Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* revert: "feat: Add building and publishing of *.deb packages (paradigmxyz#18615)" (paradigmxyz#19011)

* feat(tasks): distinguish blocking and non-blocking tasks in metrics (paradigmxyz#18440)

Co-authored-by: Nathaniel Bajo <nathanielbajo@Nathaniels-MacBook-Pro.local>
Co-authored-by: Emilia Hane <emiliaha95@gmail.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* feat: support custom Download command defaults (paradigmxyz#19437)

* chore: OverlayStateProviderFactory: don't query for reverts unless necessary (paradigmxyz#19412)

* chore(deps): weekly `cargo update` (paradigmxyz#19443)

Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* chore: add config_mut helpers (paradigmxyz#19436)

* fix: avoid unnecessary self.clone() in OpNetworkBuilder::network_config (paradigmxyz#19451)

* feat(op-reth): add FlashblocksListeners container and receipt helpers (paradigmxyz#19446)

Co-authored-by: Claude <noreply@anthropic.com>

* feat: add broadcast channel for received flashblocks (paradigmxyz#19459)

Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>

* refactor(prune): derive EnumIter instead of explicit array of segments (paradigmxyz#19465)

* feat: schedule fusaka (paradigmxyz#19455)

* chore: use name const for cli name (paradigmxyz#19466)

* fix(db): OverlayStateProviderFactory: default validation lower bound to 0 (paradigmxyz#19468)

* chore: bump revm 31 (paradigmxyz#19470)

Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>

* chore: add js-tracer feature to bins (paradigmxyz#19441)

* chore(node): compact duration formatting in stage progress logs (paradigmxyz#18720)

* fix: update `min_block` on `StaticFileProvider::update_index` (paradigmxyz#19469)

* chore(grafana): deduce label by aggregate metrics (paradigmxyz#18550)

* chore: Remove unused jsonrpsee tracing import in exex subscription example (paradigmxyz#19448)

* chore: add --miner.gaslimit alias (paradigmxyz#19475)

* chore: add queued reason to event (paradigmxyz#19476)

* feat: add helper to disable discovery (paradigmxyz#19478)

* fix(net): remove capacity inflation from buffered blocks size calculation (paradigmxyz#19481)

* perf(rpc): use cache for latest block and receipts (paradigmxyz#19483)

* perf: use latest hash directly (paradigmxyz#19486)

* feat: support pending block tag in eth_getLogs for flashblocks (paradigmxyz#19388)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* docs(trie): fix PrefixSetMut docs and freeze() comment (paradigmxyz#19467)

* chore: Various cleanups after consistent DB view removal (paradigmxyz#19489)

* feat(reth-bench-compare): upstream from personal repo (paradigmxyz#19488)

Co-authored-by: Claude <noreply@anthropic.com>

* fix: use cost when checking fee cap (paradigmxyz#19493)

* fix: spawn block fetching blocking (paradigmxyz#19491)

Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>

* chore(op-reth/scr): update superchain-registry configs. Commit 9e3f71cee0e4e2acb4864cb00f5fbee3555d8e9f (paradigmxyz#19495)

* perf: improve ethsendrawsync for op with flashblock (paradigmxyz#19462)

Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>

* docs(banlist): document timeout update behavior on re-ban (paradigmxyz#19497)

* chore: add custom hardforks example (paradigmxyz#19391)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* fix: skip code check in get_transaction_by_sender_and_nonce (paradigmxyz#19502)

* chore: bump min ckzg (paradigmxyz#19504)

* chore: bump version 1.8.4 (paradigmxyz#19503)

* fix: dead link Sentry (paradigmxyz#19505)

* chore: bump hardforks (paradigmxyz#19506)

* chore: bump v1.9.0 (paradigmxyz#19507)

* chore: bump revm v31.0.1 (paradigmxyz#19567)

* chore: bump version

* chore: bump version to 1.9.2 (paradigmxyz#19647)

* chore: bump op-revm v12.0.2 patch (paradigmxyz#19629)

* revert: "refactor(prune): remove receipts log filter segment (paradigmxyz#19184)" (paradigmxyz#19646)

* ci: use macos-14 runner (paradigmxyz#19658)

* fix: add minbasefee for jovian attributes (paradigmxyz#19726)

* chore(op-reth/scr): update superchain-registry (paradigmxyz#19806)

Co-authored-by: theo <80177219+theochap@users.noreply.github.com>

* chore: bump version v1.9.3 (paradigmxyz#19831)

* chore: bump to mantle-xyz/revm v2.1.0

* add limb support

* bump: revm v2.1.2

---------

Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>
Signed-off-by: Gregory Edison <gregory.edison1993@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
Co-authored-by: futreall <86553580+futreall@users.noreply.github.com>
Co-authored-by: maradini77 <140460067+maradini77@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: sashass1315 <sashass1315@gmail.com>
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: crazykissshout <crazykisss111@gmail.com>
Co-authored-by: Dharm Singh <153282211+dharmvr1@users.noreply.github.com>
Co-authored-by: YK <chiayongkang@hotmail.com>
Co-authored-by: leopardracer <136604165+leopardracer@users.noreply.github.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: GarmashAlex <garmasholeksii@gmail.com>
Co-authored-by: Ignacio Hagopian <jsign.uy@gmail.com>
Co-authored-by: Dmitry <98899785+mdqst@users.noreply.github.com>
Co-authored-by: Micke <155267459+reallesee@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Andrew Huang <k.andrew.huang@gmail.com>
Co-authored-by: Brian Picciano <me@mediocregopher.com>
Co-authored-by: Skylar Ray <137945430+sky-coderay@users.noreply.github.com>
Co-authored-by: 0xMushow <105550256+0xMushow@users.noreply.github.com>
Co-authored-by: malik <aremumalik05@gmail.com>
Co-authored-by: Alex Pikme <30472093+reject-i@users.noreply.github.com>
Co-authored-by: MozirDmitriy <dmitriymozir@gmail.com>
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
Co-authored-by: David Klank <155117116+davidjsonn@users.noreply.github.com>
Co-authored-by: Brawn <nftdropped@gmail.com>
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
Co-authored-by: 0xsensei <prblmslvr.aditya@gmail.com>
Co-authored-by: Aditya Pandey <adityapandey@Adityas-MacBook-Air.local>
Co-authored-by: Merkel Tranjes <140164174+rnkrtt@users.noreply.github.com>
Co-authored-by: Avory <avorycorelli@gmail.com>
Co-authored-by: robinsdan <115981357+robinsdan@users.noreply.github.com>
Co-authored-by: greg <82421016+greged93@users.noreply.github.com>
Co-authored-by: wizard <112275929+famouswizard@users.noreply.github.com>
Co-authored-by: Roman Hodulák <roman.hodulak@polyglot-software.com>
Co-authored-by: Jennifer <jenpaff0@gmail.com>
Co-authored-by: radik878 <radikpadik76@gmail.com>
Co-authored-by: theo <80177219+theochap@users.noreply.github.com>
Co-authored-by: Fallengirl <155266340+Fallengirl@users.noreply.github.com>
Co-authored-by: Ragnar <rodiondenmark@gmail.com>
Co-authored-by: Léa Narzis <78718413+lean-apple@users.noreply.github.com>
Co-authored-by: Yash <72552910+kumaryash90@users.noreply.github.com>
Co-authored-by: jxom <7336481+jxom@users.noreply.github.com>
Co-authored-by: strmfos <155266597+strmfos@users.noreply.github.com>
Co-authored-by: josé v <52646071+Peponks9@users.noreply.github.com>
Co-authored-by: 0xeabz <eabz@kindynos.mx>
Co-authored-by: Galoretka <galoretochka@gmail.com>
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
Co-authored-by: AJStonewee <ajston73@gmail.com>
Co-authored-by: phrwlk <phrwlk7@gmail.com>
Co-authored-by: guha-rahul <52607971+guha-rahul@users.noreply.github.com>
Co-authored-by: suhas-sensei <suhas.ghosal2002@gmail.com>
Co-authored-by: Maximilian Hubert <64627729+gap-editor@users.noreply.github.com>
Co-authored-by: VolodymyrBg <aqdrgg19@gmail.com>
Co-authored-by: Gengar <creeptogengar@gmail.com>
Co-authored-by: Mablr <59505383+mablr@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Francis Li <lihuiyi0406@gmail.com>
Co-authored-by: Karl Yu <43113774+0xKarl98@users.noreply.github.com>
Co-authored-by: Đạt Nguyễn <datnguyencse@users.noreply.github.com>
Co-authored-by: Neo Krypt <neo@canxium.org>
Co-authored-by: emiliano-conduitxyz <emiliano@conduit.xyz>
Co-authored-by: rakita <rakita@users.noreply.github.com>
Co-authored-by: leniram159 <leniram159@gmail.com>
Co-authored-by: Forostovec <ilonaforostovec22@gmail.com>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: Varun Doshi <doshivarun202@gmail.com>
Co-authored-by: Lancelot de Ferrière <wraitii@users.noreply.github.com>
Co-authored-by: Wojtek Łopata <wojtek@0xproject.com>
Co-authored-by: Eric Woolsey <ewoolsey@ualberta.ca>
Co-authored-by: Udoagwa Franklin <54338168+frankudoags@users.noreply.github.com>
Co-authored-by: bigbear <155267841+aso20455@users.noreply.github.com>
Co-authored-by: oooLowNeoNooo <ooolowneonooo@gmail.com>
Co-authored-by: FT <140458077+zeevick10@users.noreply.github.com>
Co-authored-by: anim001k <140460766+anim001k@users.noreply.github.com>
Co-authored-by: MIHAO PARK <wetkeyboard17@gmail.com>
Co-authored-by: William Nwoke <willteey@gmail.com>
Co-authored-by: Nathaniel Bajo <nathanielbajo@Nathaniels-MacBook-Pro.local>
Co-authored-by: Emilia Hane <emiliaha95@gmail.com>
Co-authored-by: Doryu <anna.shuraeva16@gmail.com>
Co-authored-by: Block Wizard <satorukuame@gmail.com>
Co-authored-by: Cypher Pepe <125112044+cypherpepe@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Completed

Development

Successfully merging this pull request may close these issues.

3 participants