go-ethereum/eth
Daniel Liu ec0f96d538
feat(core/txpool,eth): align local tx tracking with geth #31202 #31618 (#2181)
Implements ethereum/go-ethereum PR #31202 and #31618.

When local tracking is enabled:
- EthAPIBackend.SendTx tracks transactions after pool submission and keeps tracking temporary rejects so they can be retried by the local tracker.
- TxPool.AddLocal tracks accepted submissions and temporary rejects for local re-journal/re-submit flows, while preserving the original txpool error return to the caller.

This avoids persisting permanently invalid transactions while preserving retry signals for transient failures without masking submission outcomes in caller workflows.

Also included:
- classify temporary rejection reasons in core/txpool/locals
- expose SubPool.ValidateTxBasics and align LegacyPool implementation
- split low-tip rejection into ErrTxGasPriceTooLow
- simplify local tracker integration in txpool
- update txpool and eth tests for accepted vs retryable local tracking behavior

Refs: ethereum/go-ethereum#31202
Refs: ethereum/go-ethereum#31618
2026-03-18 09:54:40 +05:30
..
bft all: fix goimports (#1560) 2025-09-24 07:51:10 +08:00
downloader docs(core,eth): fix typos #29024 #29036 (#2161) 2026-03-17 11:15:29 +05:30
ethconfig refactor(miner): polish miner configuration #19480 (#2135) 2026-03-10 18:51:36 +05:30
fetcher refactor(all): cleanup the APIs for initializing genesis #25473 #26747 (#2017) 2026-02-07 00:18:39 +05:30
filters refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
gasestimator refactor(all): rework EVM constructor #30745 (#2065) 2026-02-17 14:35:18 +05:30
gasprice refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
hooks fix(consensus): fix config object not reference to same one and concurrency issues and refactor access pattern (#2146) 2026-03-12 12:12:49 -07:00
tracers fix(eth): add index to callTracer log #33629 (#2044) 2026-02-28 17:01:13 +04:00
util all: replace Div/Mul with Rsh/Lsh if possible #29911 (#1966) 2026-01-29 11:31:58 +05:30
api.go refactor(eth): remove duplicated chain config source #19344 (#2177) 2026-03-17 12:02:42 +05:30
api_admin.go eth: split api.go into namespace based files #27263 (#1601) 2025-10-30 21:27:14 +05:30
api_backend.go feat(core/txpool,eth): align local tx tracking with geth #31202 #31618 (#2181) 2026-03-18 09:54:40 +05:30
api_backend_test.go feat(core/txpool,eth): align local tx tracking with geth #31202 #31618 (#2181) 2026-03-18 09:54:40 +05:30
api_debug.go refactor(eth): remove duplicated chain config source #19344 (#2177) 2026-03-17 12:02:42 +05:30
api_debug_test.go perf: improve state reader with error handling and committed flag #27428 (#1166) 2026-02-03 20:55:53 +05:30
api_miner.go docs(core,eth): fix typos #29024 #29036 (#2161) 2026-03-17 11:15:29 +05:30
backend.go fix(eth): initialize engine with finalized chain config, fix #2138 (#2180) 2026-03-17 13:21:17 +05:30
backend_test.go fix(eth): initialize engine with finalized chain config, fix #2138 (#2180) 2026-03-17 13:21:17 +05:30
bloombits.go core, eth, params: make indexer configurable (#17188) 2025-03-10 15:41:53 +08:00
handler.go refactor(core/txpool): remove locals-tracking from pools #30559 (#2176) 2026-03-17 12:24:20 +05:30
handler_test.go refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
helper_test.go refactor(core/txpool): remove locals-tracking from pools #30559 (#2176) 2026-03-17 12:24:20 +05:30
metrics.go metrics, cmd/XDC: change init-process of metrics (#30814) 2024-12-13 14:00:14 +08:00
peer.go all: use github.com/deckarep/golang-set/v2 (generic set) (#26159) 2025-01-24 16:54:11 +08:00
protocol.go refactor(core/txpool): remove locals-tracking from pools #30559 (#2176) 2026-03-17 12:24:20 +05:30
protocol_test.go refactor(core/txpool): remove locals-tracking from pools #30559 (#2176) 2026-03-17 12:24:20 +05:30
state_accessor.go refactor(core): remove unnecessary parameters #30776 (#2068) 2026-02-20 13:51:30 +05:30
sync.go refactor(txpool,eth,miner): use pending filter struct #29026 (#2160) 2026-03-11 08:58:07 +05:30
sync_test.go all: change chain head markers from block to header #26777 (#1846) 2025-12-16 07:36:51 +04:00