Skip to content

revert: undo Chain crate, add LazyTrieData to trie-common#21155

Merged
mattsse merged 2 commits intomainfrom
mattsse/revert-21137
Jan 17, 2026
Merged

revert: undo Chain crate, add LazyTrieData to trie-common#21155
mattsse merged 2 commits intomainfrom
mattsse/revert-21137

Conversation

@mattsse
Copy link
Collaborator

@mattsse mattsse commented Jan 17, 2026

Summary

This PR reverts #21137 (the reth-chain crate) and adds the useful LazyTrieData/SortedTrieData types directly to reth-trie-common.

Why revert #21137?

The reth-chain crate introduced unnecessary complexity:

  • Moved Chain from execution-types to a new crate
  • Moved DeferredTrieData from chain-state to the new crate
  • Created additional dependency layer

What this PR does

  1. Reverts to before perf: make Chain use DeferredTrieData #21137 - Chain stays in execution-types, DeferredTrieData stays in chain-state
  2. Removes the reth-chain crate
  3. Adds LazyTrieData and SortedTrieData to reth-trie-common - the useful types from the refactor, without the crate restructuring

The new types in reth-trie-common:

  • SortedTrieData: Container bundling HashedPostStateSorted + TrieUpdatesSorted
  • LazyTrieData: No-std compatible lazy wrapper with ready/deferred modes

These can be used in future optimizations without the architectural overhead of a separate crate.

This PR reverts #21137 (the reth-chain crate) and adds the useful
LazyTrieData/SortedTrieData types directly to reth-trie-common.

Changes:
- Move Chain back to reth-execution-types
- Move DeferredTrieData back to reth-chain-state
- Remove the reth-chain crate
- Add LazyTrieData and SortedTrieData to reth-trie-common

The new types in reth-trie-common:
- SortedTrieData: Container bundling HashedPostStateSorted + TrieUpdatesSorted
- LazyTrieData: No-std compatible lazy wrapper with ready/deferred modes
@mattsse mattsse force-pushed the mattsse/revert-21137 branch from 28ef5c0 to 90495d8 Compare January 17, 2026 11:56
@mattsse mattsse added the C-debt A clean up/refactor of existing code label Jan 17, 2026
Copy link
Member

@Rjected Rjected left a comment

Choose a reason for hiding this comment

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

lgtm, oncelock + fn makes sense for this

@github-project-automation github-project-automation bot moved this from Backlog to In Progress in Reth Tracker Jan 17, 2026
@mattsse mattsse added this pull request to the merge queue Jan 17, 2026
Merged via the queue into main with commit 40bc9d3 Jan 17, 2026
44 checks passed
@mattsse mattsse deleted the mattsse/revert-21137 branch January 17, 2026 16:05
@github-project-automation github-project-automation bot moved this from In Progress to Done in Reth Tracker Jan 17, 2026
@mattsse mattsse added the M-changelog This change should be included in the changelog label Jan 19, 2026
Vui-Chee added a commit to okx/reth that referenced this pull request Jan 20, 2026
* tag 'v1.10.1': (49 commits)
  chore: bump version to 1.10.1 (paradigmxyz#21188)
  chore: rename extend_ref methods on sorted data structures (paradigmxyz#21043)
  fix(flashblocks): Add flashblock ws connection retry period (paradigmxyz#20510)
  chore(bench): add --disable-tx-gossip to benchmark node args (paradigmxyz#21171)
  refactor(stages): reuse history index cache buffers in `collect_history_indices` (paradigmxyz#21017)
  feat(download): resumable snapshot downloads with auto-retry (paradigmxyz#21161)
  ci: update to tempoxyz (paradigmxyz#21176)
  chore: apply spelling and typo fixes (paradigmxyz#21182)
  docs: document minimal storage mode in pruning FAQ (paradigmxyz#21025)
  chore(deps): weekly `cargo update` (paradigmxyz#21167)
  feat(execution-types): add receipts_iter helper (paradigmxyz#21162)
  revert: undo Chain crate, add LazyTrieData to trie-common (paradigmxyz#21155)
  feat(engine): add new_payload_interval metric (start-to-start) (paradigmxyz#21159)
  feat(engine): add time_between_new_payloads metric (paradigmxyz#21158)
  fix(storage-api): gate reth-chain dependency behind std feature
  perf(storage): batch trie updates across blocks in save_blocks (paradigmxyz#21142)
  refactor: use ExecutionOutcome::single instead of tuple From (paradigmxyz#21152)
  chore(chain-state): reorganize deferred_trie.rs impl blocks (paradigmxyz#21151)
  feat(primitives-traits): add try_recover_signers for parallel batch recovery (paradigmxyz#21103)
  perf: make Chain use DeferredTrieData (paradigmxyz#21137)
  ...
theochap pushed a commit to ethereum-optimism/optimism that referenced this pull request Jan 22, 2026
theochap pushed a commit to ethereum-optimism/optimism that referenced this pull request Feb 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C-debt A clean up/refactor of existing code M-changelog This change should be included in the changelog

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants