Skip to content
Open
Show file tree
Hide file tree
Changes from 51 commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
2c5797e
refactor(l1): unify snapsync healing modules into sync/healing/ direc…
pablodeymo Jan 21, 2026
713ea92
refactor(l1): modularize snap protocol code into dedicated directories
pablodeymo Jan 21, 2026
9f9214f
docs: add snap sync refactoring plan
pablodeymo Jan 21, 2026
2013570
refactor(l1): split sync.rs into full.rs and snap_sync.rs modules
pablodeymo Jan 21, 2026
68867ae
refactor(l1): extract snap client methods from peer_handler.rs to sna…
pablodeymo Jan 21, 2026
d91bc8b
refactor(l1): consolidate snap protocol error handling into unified S…
pablodeymo Jan 22, 2026
57ebf37
Merge branch 'main' into refactor/snapsync-healing-unification
pablodeymo Jan 22, 2026
f680777
fix(l1): use consistent usize type for missing_children_count
pablodeymo Jan 22, 2026
17744dc
fix(l1): fix typos in healing module comments
pablodeymo Jan 22, 2026
2836e3f
Merge main into refactor/snapsync-healing-unification
pablodeymo Jan 27, 2026
c40de29
fix(l1): fix typo in snap client error message
pablodeymo Jan 27, 2026
ffba3fe
fix(l1): prevent panic on empty accounts vector in snap client
pablodeymo Jan 27, 2026
a682d76
fix(l1): handle empty bytecode hashes in request_bytecodes
pablodeymo Jan 27, 2026
6c99453
fix(l1): prevent panics from empty vector indexing in snap client
pablodeymo Jan 27, 2026
91b926e
fix(l1): prevent zero chunk_size in request_account_range
pablodeymo Jan 27, 2026
f3983c3
Merge branch 'main' into refactor/snapsync-healing-unification
pablodeymo Jan 28, 2026
724fc36
Parallelize header download with state download during snap sync
pablodeymo Jan 28, 2026
883b17e
Apply rustfmt formatting to snap sync files
pablodeymo Jan 28, 2026
e15518b
clippy fix
pablodeymo Jan 28, 2026
3c962dd
Merge branch 'main' into refactor/snapsync-healing-unification
pablodeymo Jan 29, 2026
78eb073
Add early abort mechanism to snap_sync when full sync is triggered
pablodeymo Jan 30, 2026
1e87e25
Merge branch 'main' into refactor/snapsync-healing-unification
pablodeymo Jan 30, 2026
5bfaee1
Merge remote-tracking branch 'origin/refactor/snapsync-healing-unific…
pablodeymo Jan 30, 2026
f0a1866
Replace is_download_complete() with DownloadStatus enum for clearer s…
pablodeymo Jan 30, 2026
45864f3
Replace busy-wait loop with blocking receive with timeout
pablodeymo Jan 30, 2026
ea09079
Apply rustfmt formatting to snap_sync call
pablodeymo Jan 30, 2026
536544b
Add changelog entry for parallel header download during snap sync
pablodeymo Jan 30, 2026
9a98f65
Merge main into refactor/snapsync-healing-unification
pablodeymo Feb 2, 2026
e424237
Replace .get(0) with .first() in snap client to fix clippy lint errors
pablodeymo Feb 2, 2026
02b1dc2
fmt
pablodeymo Feb 2, 2026
0656d2e
Remove plan_snap_sync.md (content moved to PR description)
pablodeymo Feb 2, 2026
94a35ff
Derive thiserror::Error for DumpError
pablodeymo Feb 2, 2026
3779eae
Merge refactor/snapsync-healing-unification into feature/background-h…
pablodeymo Feb 2, 2026
296c13d
Add debug logging to diagnose block body download failures
pablodeymo Feb 3, 2026
441634d
Remove debug logging that caused OOM in Run #90
pablodeymo Feb 3, 2026
8eabda7
Merge branch 'main' into refactor/snapsync-healing-unification
pablodeymo Feb 3, 2026
161cf78
Merge branch 'main' into refactor/snapsync-healing-unification
pablodeymo Feb 4, 2026
d01f055
Merge branch 'main' into refactor/snapsync-healing-unification
pablodeymo Feb 5, 2026
a242f55
Add per-phase timing breakdown to Slack notifications and run logs
pablodeymo Feb 5, 2026
78c7b68
Replace single-pattern match with if let in block bodies response
pablodeymo Feb 5, 2026
1414a3b
Propagate errors instead of panicking in request_storage_ranges and move
pablodeymo Feb 5, 2026
4a2c153
Address PR quick-fix feedback: use SUPPORTED_SNAP_CAPABILITIES for snap
pablodeymo Feb 5, 2026
eaf2a8c
Convert snap client methods from PeerHandler extension to standalone …
pablodeymo Feb 5, 2026
cca520c
Merge remote-tracking branch 'origin/refactor/snapsync-healing-unific…
pablodeymo Feb 6, 2026
2d136d8
Fix cargo fmt issue in peer_handler.rs introduced by merge
pablodeymo Feb 6, 2026
c78cddc
Merge branch 'feature/slack-phase-breakdown' into feature/background-…
pablodeymo Feb 6, 2026
9235125
Merge branch 'main' into feature/background-header-download
pablodeymo Feb 6, 2026
e69e21e
Merge branch 'main' into feature/background-header-download
pablodeymo Feb 9, 2026
e98acfb
Write canonical block hashes in add_block_headers to fix post-snap-sy…
pablodeymo Feb 9, 2026
0d3d3e6
Merge branch 'main' into feature/background-header-download
pablodeymo Feb 10, 2026
ee75d36
Replace block_hashes Vec<H256> with BTreeMap<u64, H256> to fix orderi…
pablodeymo Feb 10, 2026
f2b3a94
Merge branch 'main' into feature/background-header-download
ElFantasma May 4, 2026
9bce394
Merge branch 'main' into feature/background-header-download
ElFantasma May 4, 2026
6b4e13f
Merge branch 'main' into feature/background-header-download
ElFantasma May 5, 2026
8c0b7a2
Merge branch 'main' into feature/background-header-download
ElFantasma May 7, 2026
137bfd5
Merge branch 'main' into feature/background-header-download
ElFantasma May 29, 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.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@

## Perf


### 2026-02-06

- Defer KZG blob proof verification from P2P to mempool insertion [#6150](https://github.com/lambdaclass/ethrex/pull/6150)
- Cache ECDSA sender recovery in transaction structs [#6153](https://github.com/lambdaclass/ethrex/pull/6153)

### 2026-01-30

- Parallelize header download with state download during snap sync [#6059](https://github.com/lambdaclass/ethrex/pull/6059)

### 2026-01-27

- Optimize prewarmer by grouping transactions by sender [#6047](https://github.com/lambdaclass/ethrex/pull/6047)
Expand Down
14 changes: 9 additions & 5 deletions crates/networking/p2p/peer_handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -487,27 +487,31 @@ impl PeerHandler {
id: request_id,
block_hashes: block_hashes.to_vec(),
});

match self.get_random_peer(&SUPPORTED_ETH_CAPABILITIES).await? {
None => Ok(None),
Some((peer_id, mut connection)) => {
if let Ok(RLPxMessage::BlockBodies(BlockBodies {
id: _,
block_bodies,
})) = PeerHandler::make_request(
let response = PeerHandler::make_request(
&mut self.peer_table,
peer_id,
&mut connection,
request,
PEER_REPLY_TIMEOUT,
)
.await
.await;

if let Ok(RLPxMessage::BlockBodies(BlockBodies {
id: _,
block_bodies,
})) = response
{
// Check that the response is not empty and does not contain more bodies than the ones requested
if !block_bodies.is_empty() && block_bodies.len() <= block_hashes_len {
self.peer_table.record_success(&peer_id).await?;
return Ok(Some((block_bodies, peer_id)));
}
}

warn!(
"[SYNCING] Didn't receive block bodies from peer, penalizing peer {peer_id}..."
);
Expand Down
Loading
Loading