mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-24 08:49:29 +00:00
The previous limbo.update implementation deleted the existing entry from the store and indices before re-inserting it under the new block. If the re-insertion (setAndIndex) failed, the blob sidecar was permanently lost: limbo is the only source of truth for the sidecar once the blob transaction has been offloaded out of the blobpool, and EIP-4844 blob data is not stored in chain state. Reorder the operations so the new entry is written first. Only after the store Put succeeds is the old entry dropped from the store and the old group mapping cleaned up. A failure to drop the old store id now only leaks a billy slot - the blob itself is preserved under the new id, and a follow-up reorg-rollback can still re-inject it. Adds a round-trip test that updates the inclusion block of a limbo'd blob and verifies it remains pullable under the new block. Fixes #34944 |
||
|---|---|---|
| .. | ||
| blobpool.go | ||
| blobpool_test.go | ||
| config.go | ||
| evictheap.go | ||
| evictheap_test.go | ||
| interface.go | ||
| limbo.go | ||
| limbo_test.go | ||
| lookup.go | ||
| metrics.go | ||
| priority.go | ||
| priority_test.go | ||
| slotter.go | ||
| slotter_test.go | ||