Skip to content

Conversation

@madisoncarter1234
Copy link
Contributor

Addresses #282

Summary

  • Parallelizes ECDSA sender recovery using rayon
  • Adds sender_recovery_duration metric
  • All tests pass

What's included

✅ Parallel sender recovery (matches upstream reth approach)
✅ Timing metric for observability
✅ Proper error handling preserved

What's not included

⚠️ Benchmarks (infra was removed from main - can be added in follow-up)

@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Dec 31, 2025

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

  Addresses base#282 - reduces sender recovery overhead during flashblock processing.

  ## Changes
  - Add rayon for parallel iteration over transactions
  - Batch ECDSA sender recovery upfront using par_iter()
  - Add sender_recovery_duration metric for observability
  - Preserve cache lookup behavior (check prev_pending_blocks first)
  - Maintain original error handling semantics

  ## Technical Approach
  Follows upstream reth pattern (paradigmxyz/reth#20169) - recover all
  senders in parallel before the sequential transaction processing loop.

  ## Testing
  All 10 existing flashblocks tests pass.

  ## Note
  Benchmarks not included as benchmark infrastructure was removed from main.
  The new sender_recovery_duration metric can be used for production measurement.
@madisoncarter1234 madisoncarter1234 force-pushed the fix/parallel-sender-recovery branch from a2763d7 to e839384 Compare January 1, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants