aboutsummaryrefslogtreecommitdiffstats
path: root/core/tx_pool.go
Commit message (Collapse)AuthorAgeFilesLines
* core/types, params: EIP#155Jeffrey Wilcke2016-11-131-7/+11
|
* core, core/state, trie: EIP158, reprice & skip empty account writeJeffrey Wilcke2016-11-131-2/+3
| | | | | | | | | | | | | | | This commit implements EIP158 part 1, 2, 3 & 4 1. If an account is empty it's no longer written to the trie. An empty account is defined as (balance=0, nonce=0, storage=0, code=0). 2. Delete an empty account if it's touched 3. An empty account is redefined as either non-existent or empty. 4. Zero value calls and zero value suicides no longer consume the 25k reation costs. params: moved core/config to params Signed-off-by: Jeffrey Wilcke <jeffrey@ethereum.org>
* core: metrics collection for transaction events (#3157)Martin Holst Swende2016-11-011-0/+30
| | | | | | | | | | | | | | | | * core: Add metrics collection for transaction events; replace/discard for pending and future queues, as well as invalid transactions * core: change namespace for txpool metrics * core: define more metrics (not yet used) * core: implement more tx metrics for when transactions are dropped * core: minor formatting tweeks (will squash later) * core: remove superfluous meter, fix missing pending nofunds * core, metrics: switch txpool meters to counters
* core: add global (soft) limits on the pending transactionsPéter Szilágyi2016-10-141-5/+60
|
* core: lower transaction pool max queue limitFelix Lange2016-10-101-1/+1
|
* core/state: implement reverts by journaling all changesFelix Lange2016-10-061-1/+1
| | | | | | | | | | This commit replaces the deep-copy based state revert mechanism with a linear complexity journal. This commit also hides several internal StateDB methods to limit the number of ways in which calling code can use the journal incorrectly. As usual consultation and bug fixes to the initial implementation were provided by @karalabe, @obscuren and @Arachnid. Thank you!
* core: abstract out a sorted transaction hash mapPéter Szilágyi2016-09-021-7/+9
|
* core: add upper bound on the queued transctionsPéter Szilágyi2016-09-021-9/+99
|
* core, eth, internal, miner: optimize txpool for quick opsPéter Szilágyi2016-09-021-288/+215
|
* core, eth, miner: only retain 1 tx/nonce, remove bad onesPéter Szilágyi2016-09-021-124/+158
|
* core: add missing lock in TxPool.{GetTransaction,RemoveTx}Felix Lange2016-06-031-1/+10
| | | | Fixes #2650
* core, eth, miner: improve shutdown synchronisationFelix Lange2016-05-091-4/+7
| | | | | | | | | | | | | | | | | | | | Shutting down geth prints hundreds of annoying error messages in some cases. The errors appear because the Stop method of eth.ProtocolManager, miner.Miner and core.TxPool is asynchronous. Left over peer sessions generate events which are processed after Stop even though the database has already been closed. The fix is to make Stop synchronous using sync.WaitGroup. For eth.ProtocolManager, in order to make use of WaitGroup safe, we need a way to stop new peer sessions from being added while waiting on the WaitGroup. The eth protocol Run function now selects on a signaling channel and adds to the WaitGroup only if ProtocolManager is not shutting down. For miner.worker and core.TxPool the number of goroutines is static, WaitGroup can be used in the usual way without additional synchronisation.
* core: added basic chain configurationJeffrey Wilcke2016-04-011-3/+4
| | | | | | | | | Added chain configuration options and write out during genesis database insertion. If no "config" was found, nothing is written to the database. Configurations are written on a per genesis base. This means that any chain (which is identified by it's genesis hash) can have their own chain settings.
* core: various typosLeif Jurvetson2016-03-161-3/+3
|
* core, core/vm, crypto: fixes for homesteadJeffrey Wilcke2016-02-181-0/+617
* Removed some strange code that didn't apply state reverting properly * Refactored code setting from vm & state transition to the executioner * Updated tests