go-ethereum/eth
0xoasis a38a90bc60
eth/protocols/eth: track announced tx hashes only after send (#35384)
Commit 1f87331fb moved the known-transaction marking in
`sendPooledTransactionHashes` to after a successful send, so hashes are
not marked known to the peer if the announcement fails to go out.

The sparse blobpool change (d91b71fb3) reintroduced the original
track-before-send ordering when adding the eth/72 packet variant,
causing failed announcements to suppress future re-announcements of the
same hashes to that peer.

This restores the send-first ordering for both eth/71 and eth/72 packet
versions, and adds a regression test covering success and failure paths
on both protocol versions.

## Checklist

- [x] Restored mark-known-after-send for ETH71 and ETH72
- [x] Added `TestSendPooledTransactionHashes` covering success and
closed-pipe failure

---------

Co-authored-by: Bosul Mun <bsbs8645@snu.ac.kr>
2026-07-20 15:40:04 +02:00
..
catalyst eth/catalyst: pass TargetGasLimit via engine api (#35372) 2026-07-20 15:08:23 +08:00
downloader core: improve chain reset head (#35252) 2026-07-08 16:44:34 -05:00
ethconfig cmd/geth, eth/ethconfig: preserve zero engine reorg depth (#35373) 2026-07-20 10:53:19 +08:00
fetcher core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
filters eth/filters: return -32602 when exceeding the block range limit (#34647) 2026-04-08 12:57:29 +02:00
gasestimator core: use uint256 in core.Message (#34934) 2026-05-11 22:25:57 +08:00
gasprice cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08:00
protocols eth/protocols/eth: track announced tx hashes only after send (#35384) 2026-07-20 15:40:04 +02:00
syncer eth,node: replace the deprecated TypeMux with Feed (#32585) 2026-05-08 10:12:46 +08:00
tracers eth/tracers/logger: respect logging limit (#35349) 2026-07-13 19:51:38 +08:00
txtracker eth: protect high-value peers from random dropping based on tx inclusion stats (#34702) 2026-07-09 18:54:27 +02:00
api_admin.go eth: ignore genesis block on importChain (#27956) 2023-08-21 13:32:34 -04:00
api_backend.go core: improve chain reset head (#35252) 2026-07-08 16:44:34 -05:00
api_backend_test.go core/txpool: add eip2681 check for incoming transactions (#32726) 2025-09-25 13:15:12 +02:00
api_debug.go eth: add debug_clearTxpool api (#33347) 2026-06-09 14:39:46 +02:00
api_debug_test.go eth: fix borked test introduced in merging #33347 (#35130) 2026-06-09 18:13:24 +02:00
api_miner.go miner: refactor the miner, make the pending block on demand (#28623) 2024-03-06 14:45:03 +02:00
backend.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
dropper.go eth: protect high-value peers from random dropping based on tx inclusion stats (#34702) 2026-07-09 18:54:27 +02:00
dropper_test.go eth: protect high-value peers from random dropping based on tx inclusion stats (#34702) 2026-07-09 18:54:27 +02:00
handler.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
handler_eth.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
handler_eth_test.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
handler_snap.go eth: check snap satelliteness, delegate drop to eth (#22235) 2021-02-02 10:44:36 +02:00
handler_test.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
peer.go eth/protocols/eth: implement eth/69 (#29158) 2025-05-16 17:10:47 +02:00
peerset.go eth: reserve peer slot for usable snap peer (#35180) 2026-06-17 09:55:36 +08:00
state_accessor.go cmd, core, eth, miner: apply 7997 in block building (#35285) 2026-07-07 14:40:25 +02:00
sync.go miner: add OpenTelemetry spans for block building path (#33773) 2026-03-16 19:24:41 +01:00
sync_test.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00