feat: add pluggable historical block provider system #625
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements a flexible historical block provider architecture that enables chain-specific historical block retrieval mechanisms while maintaining security through verified execution provider access.
🚨 Breaking Changes
✨ Key Features
HistoricalBlockProvidertrait allows chain-specific implementations🏗️ Architecture Changes
Core Module (
core/src/execution/providers/historical/)HistoricalBlockProvidertrait: Defines interface for historical block sourcesEip2935Provider: Retrieves blocks using EIP-2935 ring buffer contract verificationRpcExecutionProviderandVerifiableApiExecutionProviderNetwork-Specific Implementations
Eip2935Providerfor standardized historical block accessLineaHistoricalProviderin linea crate with signature validation🔒 Security Improvements
🛠️ Technical Implementation
EIP-2935 Provider
Linea Provider Integration
Block Retrieval Flow
📦 Module Organization
core/execution/providers/historical/: Core trait and EIP-2935 implementationlinea/src/historical.rs: Linea-specific historical provider🧪 Testing & Quality
cargo fmt📋 Migration Guide
For applications using EIP-2935 functionality:
🔍 Files Changed
This implementation provides a secure, extensible foundation for historical block access while maintaining the existing API surface and improving overall system security.