Skip to content

Commit 875672a

Browse files
prestwichclaude
andcommitted
refactor(host-reth): use sealed_header instead of num_hash_slow in set_head
Eliminates num_hash_slow() calls by using the provider's sealed_header method, which returns pre-cached hashes instead of recomputing from RLP. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent e43bee3 commit 875672a

1 file changed

Lines changed: 13 additions & 17 deletions

File tree

crates/host-reth/src/notifier.rs

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use futures_util::StreamExt;
88
use reth::{
99
chainspec::EthChainSpec,
1010
primitives::EthPrimitives,
11-
providers::{BlockIdReader, BlockReader, HeaderProvider},
11+
providers::{BlockIdReader, HeaderProvider},
1212
};
1313
use reth_exex::{ExExContext, ExExEvent, ExExNotifications, ExExNotificationsStream};
1414
use reth_node_api::{FullNodeComponents, NodeTypes};
@@ -122,26 +122,22 @@ where
122122
}
123123

124124
fn set_head(&mut self, block_number: u64) {
125-
let block = self
125+
let head = self
126126
.provider
127-
.block_by_number(block_number)
128-
.expect("failed to look up block for set_head");
129-
130-
let head = match block {
131-
Some(b) => b.num_hash_slow(),
132-
None => {
133-
debug!(block_number, "block not found for set_head, falling back to genesis");
127+
.sealed_header(block_number)
128+
.expect("failed to look up header for set_head")
129+
.map(|h| BlockNumHash { number: block_number, hash: h.hash() })
130+
.unwrap_or_else(|| {
131+
debug!(block_number, "header not found for set_head, falling back to genesis");
134132
let genesis = self
135133
.provider
136-
.block_by_number(0)
137-
.expect("failed to look up genesis block")
138-
.expect("genesis block missing");
139-
genesis.num_hash_slow()
140-
}
141-
};
134+
.sealed_header(0)
135+
.expect("failed to look up genesis header")
136+
.expect("genesis header missing");
137+
BlockNumHash { number: 0, hash: genesis.hash() }
138+
});
142139

143-
let exex_head = reth_exex::ExExHead { block: head };
144-
self.notifications.set_with_head(exex_head);
140+
self.notifications.set_with_head(reth_exex::ExExHead { block: head });
145141
}
146142

147143
fn set_backfill_thresholds(&mut self, max_blocks: Option<u64>) {

0 commit comments

Comments
 (0)