Skip to content

feat(storage): add use_hashed_state storage setting#21997

Merged
Rjected merged 1 commit intomainfrom
dan/use-hashed-state-storage-setting
Feb 9, 2026
Merged

feat(storage): add use_hashed_state storage setting#21997
Rjected merged 1 commit intomainfrom
dan/use-hashed-state-storage-setting

Conversation

@Rjected
Copy link
Member

@Rjected Rjected commented Feb 9, 2026

Adds the storage setting for hashed state only nodes, does not add any other logic related to hashed state only nodes.

@Rjected Rjected added the C-enhancement New feature or request label Feb 9, 2026
@Rjected Rjected requested a review from klkvr as a code owner February 9, 2026 19:58
@Rjected Rjected added A-db Related to the database A-cli Related to the reth CLI labels Feb 9, 2026
@github-project-automation github-project-automation bot moved this to Backlog in Reth Tracker Feb 9, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 9, 2026

⚠️ Changelog not found.

A changelog entry is required before merging. We've generated a suggested changelog based on your changes:

Preview
---
reth-cli-commands: minor
reth-node-core: minor
reth-db-api: minor
---

Added `use_hashed_state` storage setting to enable using hashed state tables (HashedAccounts/HashedStorages) as canonical state representation. This eliminates separate hashing stages during execution but requires a full resync when changing the setting on existing databases.

Add changelog to commit this to your branch.

@Rjected Rjected force-pushed the dan/use-hashed-state-storage-setting branch from d899884 to 0db71c6 Compare February 9, 2026 20:03
@Rjected Rjected requested a review from gakonst as a code owner February 9, 2026 20:03
@github-project-automation github-project-automation bot moved this from Backlog to In Progress in Reth Tracker Feb 9, 2026
@Rjected Rjected enabled auto-merge February 9, 2026 20:08
@Rjected Rjected added this pull request to the merge queue Feb 9, 2026
Merged via the queue into main with commit a549b4d Feb 9, 2026
41 of 43 checks passed
@Rjected Rjected deleted the dan/use-hashed-state-storage-setting branch February 9, 2026 20:26
@github-project-automation github-project-automation bot moved this from In Progress to Done in Reth Tracker Feb 9, 2026
joshieDo added a commit that referenced this pull request Feb 9, 2026
When use_hashed_state is enabled:
- Skip PlainStorageState writes, use HashedStorages as canonical state
- StorageChangeSets contain hashed slots (keccak256)
- StoragesHistory uses hashed slots for indexing
- Static file changeset writer hashes slots
- Parallel write thread for PlainStorageState is skipped
- LatestStateProvider/HistoricalStateProvider read from HashedStorages
- take_state_above() writes to HashedStorages on reorg
- CLI db commands support --hashed flag
- Added IdentityKeyHasher for from_reverts() to skip re-hashing

This complements the configuration plumbing from PR #21997.
CarlBeek added a commit to CarlBeek/reth that referenced this pull request Feb 10, 2026
* paradigmxyz/main: (144 commits)
  feat(engine): add getPayloadBodiesV2 endpoints for EIP-7928 BAL support (paradigmxyz#21774)
  ci: skip scheduled workflows on forks (paradigmxyz#22022)
  chore: rm random log file (paradigmxyz#22023)
  chore: remove base.reth.rs public endpoint references (paradigmxyz#22019)
  feat(rpc): add `subscribeFinalizedChainNotifications` endpoint (paradigmxyz#22011)
  feat(trie): remove `SerialSparseTrie` (paradigmxyz#21808)
  fix(rocksdb): set max_open_files to prevent fd exhaustion (paradigmxyz#22005)
  refactor(txpool): rename and document validation methods (paradigmxyz#22008)
  feat(engine): prefetch withdrawal addresses in pre-warming (paradigmxyz#21966)
  refactor(pool): add IntoIter: Send bounds to avoid unnecessary Vec collect (paradigmxyz#22001)
  fix(rpc): enforce blockHash constraint in append_matching_block_logs (paradigmxyz#22007)
  chore: move Kurtosis failures to the hive slack channel  (paradigmxyz#21983)
  feat(rpc): propagate TransactionOrigin through send_transaction and batcher (paradigmxyz#21969)
  feat(engine): reorg depth commitment metric (paradigmxyz#21992)
  feat(storage): add use_hashed_state storage setting (paradigmxyz#21997)
  perf: better scheduling for storage roots computation (paradigmxyz#21987)
  chore(deps): bump alloy 1.6.2 -> 1.6.3 (paradigmxyz#21986)
  fix(stages): skip sender unwind when fully pruned (paradigmxyz#21988)
  chore(net): remove OP stack bootnodes (paradigmxyz#21984)
  ci: use depot for hive and kurtosis image builds, run daily (paradigmxyz#21976)
  ...

# Conflicts:
#	.github/workflows/compact.yml
#	.github/workflows/dependencies.yml
#	.github/workflows/docker-tag-latest.yml
#	.github/workflows/docker.yml
#	.github/workflows/e2e.yml
#	.github/workflows/hive.yml
#	.github/workflows/integration.yml
#	.github/workflows/kurtosis.yml
#	.github/workflows/lint.yml
#	.github/workflows/release.yml
#	.github/workflows/reproducible-build.yml
#	.github/workflows/stale.yml
#	.github/workflows/sync-era.yml
#	.github/workflows/sync.yml
#	.github/workflows/unit.yml
#	bin/reth/Cargo.toml
#	crates/cli/commands/src/node.rs
#	crates/node/core/src/node_config.rs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-cli Related to the reth CLI A-db Related to the database C-enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants