go-ethereum/core/txpool
Bosul Mun e595aedcd0
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
core/txpool/blobpool: add cache for GetBlobs request (#35124)
This PR introduces a cache for GetBlobs request.

The main purpose of this PR is to reduce the getBlobs latency by reading and
decoding blobs from the pool in advance of the actual query. This is important
especially in the context of a sparse blobpool, since it may be necessary to
recover blobs from cells on a getBlobs request.

Previously, the Engine API read and decoded blobs from the pool on every call.
Now those calls check the cache and only fall back to the pool on a miss.

The cache has two modes:

- In topK mode (default), it wakes up periodically, picks the most profitable
  pending blob transactions up to the current fork's maxBlobsPerBlock, and loads
  their blobs. The selection logic is shared with the miner's block-building
  logic. The selection size is derived from eip4844.MaxBlobsPerBlock at the
  current head.
- When the CL calls HasBlobs, the cache switches to hasBlobs mode and tries to
  pin the set it just reported as available. Cache updates (read, decode, and
  optionally conversion in the future) run in background goroutines.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2026-06-11 17:26:15 +02:00
..
blobpool core/txpool/blobpool: add cache for GetBlobs request (#35124) 2026-06-11 17:26:15 +02:00
legacypool all: fix all typos, as reported by crates-ci/typos (#35008) 2026-06-10 18:50:51 +02:00
locals core/txpool/locals: fix data race (#35096) 2026-06-02 09:46:11 +08:00
txorder core/txpool/blobpool: add cache for GetBlobs request (#35124) 2026-06-11 17:26:15 +02:00
errors.go core/txpool: drop peers on invalid KZG proofs 2026-01-13 17:12:08 +01:00
reserver.go core/txpool: allow tx and authority regardless of admission order (#31373) 2025-04-09 19:11:24 -06:00
subpool.go miner: add OpenTelemetry spans for block building path (#33773) 2026-03-16 19:24:41 +01:00
txpool.go core, core/txpool, eth: move subscriptions to constructor (#35048) 2026-06-01 08:13:59 +08:00
validation.go core: implement eip-7981: Increase Access List Cost (#34755) 2026-05-06 12:03:11 +02:00
validation_test.go core/txpool: add eip2681 check for incoming transactions (#32726) 2025-09-25 13:15:12 +02:00