go-ethereum/eth
Roberto Bayardo 88c8459005
eth/fetcher: fix blob transaction propagation (#30125)
This PR fixes an issue with blob transaction propagation due to the blob
transation txpool rejecting transactions with gapped nonces. The
specific changes are:

- fetch transactions from a peer in the order they were announced to
minimize nonce-gaps (which cause blob txs to be rejected

- don't wait on fetching blob transactions after announcement is
received, since they are not broadcast

Testing:
- unit tests updated to reflect that fetch order should always match tx
announcement order
- unit test added to confirm blob transactions are scheduled immediately
for fetching
  - running the PR on an eth mainnet full node without incident so far

---------

Signed-off-by: Roberto Bayardo <bayardo@alum.mit.edu>
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2024-09-06 13:32:01 +03:00
..
catalyst all: implement EIP-6110, execution layer triggered deposits (#29431) 2024-09-04 14:33:51 +02:00
downloader all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
ethconfig eth/ethconfig: remove LES server config (#30298) 2024-08-15 11:42:39 +02:00
fetcher eth/fetcher: fix blob transaction propagation (#30125) 2024-09-06 13:32:01 +03:00
filters all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
gasestimator internal/ethapi: eth_multicall (#27720) 2024-09-06 11:31:00 +02:00
gasprice all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
protocols all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
tracers internal/ethapi: eth_multicall (#27720) 2024-09-06 11:31:00 +02:00
api_admin.go eth: ignore genesis block on importChain (#27956) 2023-08-21 13:32:34 -04:00
api_backend.go eth: Add eth_blobBaseFee RPC and blob fields to eth_feeHistory (#29140) 2024-04-22 12:17:06 +02:00
api_debug_test.go core/state: state reader abstraction (#29761) 2024-09-05 13:10:47 +03:00
api_debug.go miner: refactor the miner, make the pending block on demand (#28623) 2024-03-06 14:45:03 +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 all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
bloombits.go eth: move eth.Config to a common package (#22205) 2021-02-05 13:51:15 +01:00
handler_eth_test.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
handler_eth.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +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 all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
handler.go eth, eth/downloader: remove references to LightChain, LightSync (#29711) 2024-05-28 19:52:08 +02:00
peer.go eth: remove admin.peers[i].eth.head and difficulty (#26804) 2023-03-06 09:27:46 +02:00
peerset.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00
state_accessor.go core/state: state reader abstraction (#29761) 2024-09-05 13:10:47 +03:00
sync_test.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00
sync.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00