Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
40203c0
feat(trie): remove `SerialSparseTrie`, make `ParallelSparseTrie` the …
DaniPopes Feb 4, 2026
8829818
ParallelSparseTrie as default
DaniPopes Feb 4, 2026
606c24f
chore: clippy
DaniPopes Feb 4, 2026
601e02a
fix: restore private visibility for internal structs in state.rs
DaniPopes Feb 4, 2026
db8f876
fix: add missing alloc imports for no_std builds and remove unused de…
gakonst Feb 4, 2026
12615e1
chore: revert benchmark changes
gakonst Feb 4, 2026
460b212
fix: minimal changes for state.rs - use find_leaf instead of nodes_re…
DaniPopes Feb 4, 2026
3188042
chore: remove sparse trie benchmarks
DaniPopes Feb 4, 2026
c32a94e
nit
DaniPopes Feb 4, 2026
ff70e17
Merge origin/main
DaniPopes Feb 4, 2026
39aa733
chore: remove unused criterion dev-dependency
DaniPopes Feb 4, 2026
e9322fb
nits
DaniPopes Feb 4, 2026
e00e2d7
fix: test failure
DaniPopes Feb 4, 2026
86959ae
fix(trie): Do not reveal disconnected leaves
mediocregopher Feb 6, 2026
5d09f8e
Create eager-mules-fold.md
mediocregopher Feb 6, 2026
1efaaa8
Tracing
mediocregopher Feb 6, 2026
afa3b6e
Reveal embedded children after inserting revealed branch
mediocregopher Feb 6, 2026
2369311
also check that the leaf full key hasn't been set in values
mediocregopher Feb 9, 2026
fba782a
chore(trie): Spans and traces for sparse trie
mediocregopher Feb 9, 2026
782cdd1
Merge branch 'mediocregopher/pst-reveal-leaf-fix' of github.com:parad…
mediocregopher Feb 9, 2026
e123377
Create evil-pigs-cry.md
mediocregopher Feb 9, 2026
e7c67cd
fix: drop span before processing account leaf updates
mediocregopher Feb 9, 2026
d1037fd
fix: revert ParallelSparseTrie changes and remove SerialSparseTrie test
mediocregopher Feb 9, 2026
e77eec4
Merge branch 'mediocregopher/sparse-trie-traces' of github.com:paradi…
mediocregopher Feb 9, 2026
83cbdc4
Merge remote-tracking branch 'origin/main' into dani/nuke-serial-spar…
gakonst Feb 9, 2026
fa56e59
Merge remote-tracking branch 'origin/main' into dani/nuke-serial-spar…
mediocregopher Feb 9, 2026
8d029af
Merge branch 'dani/nuke-serial-sparse-trie' of github.com:paradigmxyz…
mediocregopher Feb 9, 2026
33f6321
fix: correct ChangedSubtrie import path in tests
mediocregopher Feb 9, 2026
17f732a
chore: retrigger CI
mediocregopher Feb 9, 2026
d0f0ed1
Remove accidentally committed files
mediocregopher Feb 9, 2026
5aea435
fix correctly_decodes_branch_node_values
mediocregopher Feb 10, 2026
d8c7c42
Merge origin/main: remove SerialSparseTrie, keep ParallelSparseTrie i…
mediocregopher Feb 10, 2026
230cdde
chore: add changelog entry for SerialSparseTrie removal
mediocregopher Feb 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changelog/swift-owls-fly.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
reth-trie-sparse: minor
---

Removed `SerialSparseTrie` from the workspace, consolidating on `ParallelSparseTrie` as the single sparse trie implementation in `reth-trie-sparse`.
32 changes: 0 additions & 32 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ members = [
"crates/trie/db",
"crates/trie/parallel/",
"crates/trie/sparse",
"crates/trie/sparse-parallel/",
"crates/trie/trie",
"examples/beacon-api-sidecar-fetcher/",
"examples/beacon-api-sse/",
Expand Down Expand Up @@ -434,7 +433,6 @@ reth-trie-common = { path = "crates/trie/common", default-features = false }
reth-trie-db = { path = "crates/trie/db" }
reth-trie-parallel = { path = "crates/trie/parallel" }
reth-trie-sparse = { path = "crates/trie/sparse", default-features = false }
reth-trie-sparse-parallel = { path = "crates/trie/sparse-parallel" }
reth-zstd-compressors = { path = "crates/storage/zstd-compressors", default-features = false }
reth-ress-protocol = { path = "crates/ress/protocol" }
reth-ress-provider = { path = "crates/ress/provider" }
Expand Down
1 change: 0 additions & 1 deletion crates/engine/tree/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ reth-stages-api.workspace = true
reth-tasks.workspace = true
reth-trie-parallel.workspace = true
reth-trie-sparse = { workspace = true, features = ["std", "metrics"] }
reth-trie-sparse-parallel = { workspace = true, features = ["std"] }
reth-trie.workspace = true
reth-trie-common.workspace = true
reth-trie-db.workspace = true
Expand Down
5 changes: 3 additions & 2 deletions crates/engine/tree/src/tree/payload_processor/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,9 @@ use reth_trie_parallel::{
proof_task::{ProofTaskCtx, ProofWorkerHandle},
root::ParallelStateRootError,
};
use reth_trie_sparse::{RevealableSparseTrie, SparseStateTrie};
use reth_trie_sparse_parallel::{ParallelSparseTrie, ParallelismThresholds};
use reth_trie_sparse::{
ParallelSparseTrie, ParallelismThresholds, RevealableSparseTrie, SparseStateTrie,
};
use std::{
collections::BTreeMap,
ops::Not,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
use alloy_primitives::B256;
use parking_lot::Mutex;
use reth_trie_sparse::SparseStateTrie;
use reth_trie_sparse_parallel::ParallelSparseTrie;
use std::sync::Arc;
use tracing::debug;

/// Type alias for the sparse trie type used in preservation.
pub(super) type SparseTrie = SparseStateTrie<ParallelSparseTrie, ParallelSparseTrie>;
pub(super) type SparseTrie = SparseStateTrie;

/// Shared handle to a preserved sparse trie that can be reused across payload validations.
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ use reth_trie_parallel::{
use reth_trie_sparse::{
errors::{SparseStateTrieResult, SparseTrieErrorKind, SparseTrieResult},
provider::{TrieNodeProvider, TrieNodeProviderFactory},
DeferredDrops, LeafUpdate, SerialSparseTrie, SparseStateTrie, SparseTrie, SparseTrieExt,
DeferredDrops, LeafUpdate, ParallelSparseTrie, SparseStateTrie, SparseTrie, SparseTrieExt,
};
use revm_primitives::{hash_map::Entry, B256Map};
use smallvec::SmallVec;
Expand Down Expand Up @@ -97,7 +97,7 @@ where
}

/// A task responsible for populating the sparse trie.
pub(super) struct SparseTrieTask<BPF, A = SerialSparseTrie, S = SerialSparseTrie>
pub(super) struct SparseTrieTask<BPF, A = ParallelSparseTrie, S = ParallelSparseTrie>
where
BPF: TrieNodeProviderFactory + Send + Sync,
BPF::AccountNodeProvider: TrieNodeProvider + Send + Sync,
Expand Down Expand Up @@ -212,7 +212,7 @@ where
const MAX_PENDING_UPDATES: usize = 100;

/// Sparse trie task implementation that uses in-memory sparse trie data to schedule proof fetching.
pub(super) struct SparseTrieCacheTask<A = SerialSparseTrie, S = SerialSparseTrie> {
pub(super) struct SparseTrieCacheTask<A = ParallelSparseTrie, S = ParallelSparseTrie> {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

maybe we dont actually need these anymore, but can keep for now

/// Sender for proof results.
proof_result_tx: CrossbeamSender<ProofResultMessage>,
/// Receiver for proof results directly from workers.
Expand Down
4 changes: 2 additions & 2 deletions crates/trie/db/tests/witness.rs
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ fn correctly_decodes_branch_node_values() {

let address = Address::random();
let hashed_address = keccak256(address);
let hashed_slot1 = B256::with_last_byte(1);
let hashed_slot2 = B256::with_last_byte(2);
let hashed_slot1 = B256::repeat_byte(1);
let hashed_slot2 = B256::repeat_byte(2);

// Insert account and slots into database
provider.insert_account_for_hashing([(address, Some(Account::default()))]).unwrap();
Expand Down
71 changes: 0 additions & 71 deletions crates/trie/sparse-parallel/Cargo.toml

This file was deleted.

14 changes: 0 additions & 14 deletions crates/trie/sparse-parallel/src/lib.rs

This file was deleted.

23 changes: 0 additions & 23 deletions crates/trie/sparse-parallel/src/metrics.rs

This file was deleted.

12 changes: 2 additions & 10 deletions crates/trie/sparse/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ alloy-rlp.workspace = true
# misc
auto_impl.workspace = true
rayon = { workspace = true, optional = true }
smallvec.workspace = true

# metrics
reth-metrics = { workspace = true, optional = true }
Expand All @@ -35,15 +36,13 @@ metrics = { workspace = true, optional = true }
reth-primitives-traits = { workspace = true, features = ["arbitrary"] }
reth-provider = { workspace = true, features = ["test-utils"] }
reth-storage-api.workspace = true
reth-testing-utils.workspace = true
reth-trie = { workspace = true, features = ["test-utils"] }
reth-trie-common = { workspace = true, features = ["test-utils", "arbitrary"] }
reth-trie-db = { workspace = true, features = ["test-utils"] }
reth-tracing.workspace = true

arbitrary.workspace = true
assert_matches.workspace = true
criterion.workspace = true
itertools.workspace = true
pretty_assertions.workspace = true
proptest-arbitrary-interop.workspace = true
Expand Down Expand Up @@ -80,12 +79,5 @@ arbitrary = [
"alloy-trie/arbitrary",
"reth-primitives-traits/arbitrary",
"reth-trie-common/arbitrary",
"smallvec/arbitrary",
]

[[bench]]
name = "root"
harness = false

[[bench]]
name = "rlp_node"
harness = false
72 changes: 0 additions & 72 deletions crates/trie/sparse/benches/rlp_node.rs

This file was deleted.

Loading
Loading