mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-20 05:41:35 +00:00
This commit simplifies the transaction pool's gas price validation logic while maintaining network security through the existing minimum gas price requirement. Changes: - Set default PriceLimit to 0 (was 1), allowing transactions with zero tip - Remove PriceLimit >= 1 validation in config sanitization - Simplify Pending() method by using EffectiveGasTipIntCmp consistently - Unify validateTxBasics() logic to use GasTipCapIntCmp for all transactions Key Points: 1. Economic Protection: All transactions still require gasPrice >= 12.5 Gwei (enforced by GetMinGasPrice check in validateTx), providing sufficient protection against DoS attacks even with zero tip. 2. Miner Incentives: Since XDPoSChain includes baseFee in miner rewards (unlike standard EIP-1559), miners still earn the full gasPrice even when tip is 0. This maintains miner revenue while allowing greater flexibility. 3. Special Transactions: BlockSigner and Randomize contract transactions remain exempt from gas price checks, as they are critical for consensus. 4. Code Quality: Reduces complexity by 11 lines and unifies validation logic, making the codebase more maintainable. Security Analysis: - No nil pointer risks: EffectiveGasTipIntCmp has built-in nil handling - No DoS vulnerability: 12.5 Gwei minimum ensures economic cost per transaction - EIP-1559 compatible: Existing minGasPrice check covers all validation needs - Backward compatible: Only relaxes restrictions, doesn't break existing behavior This change benefits system transactions and special use cases while maintaining all existing security guarantees through the network's minimum gas price floor. |
||
|---|---|---|
| .. | ||
| journal.go | ||
| lending_pool.go | ||
| lending_pool_test.go | ||
| lending_tx_journal.go | ||
| lending_tx_list.go | ||
| list.go | ||
| list_test.go | ||
| noncer.go | ||
| order_pool.go | ||
| order_tx_journal.go | ||
| order_tx_list.go | ||
| txpool.go | ||
| txpool2_test.go | ||
| txpool_test.go | ||