go-ethereum/core
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
..
asm all: pre-allocate memory for slices and maps, close XFN-148 (#1714) 2025-11-14 20:13:36 +05:30
bloombits all: use WaigGroup.Go() to simplify code (#1699) 2025-11-29 17:17:08 +05:30
rawdb refactor(crypto): vendor in golang.org/x/crypto/sha3 #33323 (#2046) 2026-02-28 17:23:57 +04:00
state docs(core,eth): fix typos #29024 #29036 (#2161) 2026-03-17 11:15:29 +05:30
tracing feat(core): extends tracing.Hooks with OnSystemCallStartV2 #30786 (#2073) 2026-02-28 16:55:51 +04:00
txpool feat(core/txpool,eth): align local tx tracking with geth #31202 #31618 (#2181) 2026-03-18 09:54:40 +05:30
types refactor(crypto): vendor in golang.org/x/crypto/sha3 #33323 (#2046) 2026-02-28 17:23:57 +04:00
vm feat(core/vm): implement EIP-7883 - ModExp Gas Cost Increase #31606 #32015 (#2123) 2026-03-10 18:43:55 +05:30
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go refactor(miner): polish miner configuration #19480 (#2135) 2026-03-10 18:51:36 +05:30
block_validator.go all: set gas limit dynamically (#1945) 2026-01-21 10:49:20 +05:30
block_validator_test.go refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
blockchain.go fix(core): use sync.Once for SenderCacher initialization #31029 (#2173) 2026-03-17 12:01:41 +05:30
blockchain_insert.go all: simplify timestamps to uint64 #19372 (#1318) 2025-08-08 10:33:37 +08:00
blockchain_reader.go refactor(core): make signature of ContractCode hash-independent #27209 (#1169) 2026-02-13 09:11:43 +05:30
blockchain_test.go refactor(all): remove term whitelist and blacklist (#1994) 2026-02-10 17:09:21 +05:30
blocks.go new EVM Upgrade 2021-09-21 16:53:46 +05:30
chain_indexer.go core: refactor read and write valid sections (#1808) 2025-12-08 15:07:33 +05:30
chain_indexer_test.go light: CHT and bloom trie indexers working in light mode (#16534) 2025-03-06 15:30:48 +08:00
chain_makers.go refactor(miner): polish miner configuration #19480 (#2135) 2026-03-10 18:51:36 +05:30
chain_makers_test.go refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
dao_test.go refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
error.go refactor(all): remove term whitelist and blacklist (#1994) 2026-02-10 17:09:21 +05:30
events.go eth/filters: remove use of event.TypeMux for pending logs (#20312) 2024-08-03 10:03:22 +08:00
evm.go perf(core): use uint256 in state #28598 (#1977) 2026-02-05 13:59:23 +05:30
gaspool.go core, miner: log gas limit error when pack transactions (#1905) 2026-01-04 17:21:34 +05:30
gen_genesis.go all: format golang files (#1548) 2025-09-21 19:41:54 +08:00
genesis.go refactor(params): rename AllXDPoSProtocolChanges to AllDevChainProtocolChanges (#2054) 2026-03-10 18:42:26 +05:30
genesis_alloc_devnet.go all: format golang files (#1548) 2025-09-21 19:41:54 +08:00
genesis_alloc_mainnet.go core: tidy up genesis alloc 2025-02-19 14:15:09 +08:00
genesis_alloc_testnet.go core: tidy up genesis alloc 2025-02-19 14:15:09 +08:00
genesis_test.go refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
headerchain.go refactor(all): remove term whitelist and blacklist (#1994) 2026-02-10 17:09:21 +05:30
mkalloc.go core: use slices package for sorting #27489 #27909 (#1701) 2025-12-07 15:43:24 +05:30
sender_cacher.go fix(core): use sync.Once for SenderCacher initialization #31029 (#2173) 2026-03-17 12:01:41 +05:30
state_prefetcher.go refactor(all): rework EVM constructor #30745 (#2065) 2026-02-17 14:35:18 +05:30
state_processor.go feat(core): extends tracing.Hooks with OnSystemCallStartV2 #30786 (#2073) 2026-02-28 16:55:51 +04:00
state_processor_test.go refactor(crypto): vendor in golang.org/x/crypto/sha3 #33323 (#2046) 2026-02-28 17:23:57 +04:00
state_transition.go docs(core,eth): fix typos #29024 #29036 (#2161) 2026-03-17 11:15:29 +05:30
token_validator.go refactor(all): rework EVM constructor #30745 (#2065) 2026-02-17 14:35:18 +05:30
types.go core: use atomic type #27011 2025-04-28 16:57:56 +08:00