Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(client): Use EIP-2935 for history-by-number lookups #934

Open
clabby opened this issue Jan 22, 2025 · 0 comments
Open

feat(client): Use EIP-2935 for history-by-number lookups #934

clabby opened this issue Jan 22, 2025 · 0 comments
Labels
A-client Area: client binary H-interop Hardfork: Interop related K-feature Kind: feature

Comments

@clabby
Copy link
Collaborator

clabby commented Jan 22, 2025

Overview

The history-by-number lookups we use right now are very inefficient, being a linear-time commit-reveal walkback:

// Walk back the block headers to the desired block number.
while header.number > block_number {
header = self.header_by_hash(header.parent_hash)?;
}

With EIP-2935 coming in Isthmus (L2 Pectra), we have the opportunity to drastically improve the performance of this operation. Once this has landed, we should refactor our oracle-backed history-by-number implementations to take advantage of the feature.

This is pretty critical for the performance of #927, where remote message lookups have to use this route.

@clabby clabby added A-client Area: client binary K-feature Kind: feature labels Jan 22, 2025
@clabby clabby moved this from Backlog to Out of Scope in Project Tracking Jan 23, 2025
@emhane emhane added the H-isthmus Hardfork: Isthmus related label Jan 28, 2025
@emhane emhane moved this from Out of Scope to TODO in Project Tracking Jan 28, 2025
@emhane emhane added H-interop Hardfork: Interop related and removed H-isthmus Hardfork: Isthmus related labels Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-client Area: client binary H-interop Hardfork: Interop related K-feature Kind: feature
Projects
Status: TODO
Development

No branches or pull requests

2 participants