aboutsummaryrefslogtreecommitdiff
path: root/src/txmempool.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Clean up RPC tests (#1465)Ross Nicoll2018-09-191-2/+3
| | | | | | | | | | * Enable full block tests * Fix invalidblocktest * Move watch only address funding to immediately before it's used, so node 0 doesn't spend the output before it checks it later. * Fix `fundrawtransaction` tests and sanitize fee calculation at the same time * Correct resolution of chain parameters when validating tx inputs, especially from previous coinbase transactions * Set block versions on full block tests so that the generated blocks are AuxPoW compatible
* Move COINBASE_MATURITY to the consensus parameters (#1426)Ross Nicoll2018-09-191-1/+3
|
* Bugfix: PrioritiseTransaction updates the mempool tx counterSuhas Daftuar2017-04-191-0/+1
| | | | | | | | The mempool's nTransactionsUpdated is used by getblocktemplate to trigger new invocations of CreateNewBlock(). Github-Pull: #10196 Rebased-From: 909306cde3770ed7019e7b635e24cedbd9de66ce
* Bugfix: ancestor modifed fees were incorrect for descendantsSuhas Daftuar2017-04-051-0/+7
| | | | | | | | | If prioritisetransaction was called for a tx with in-mempool descendants, the modified ancestor fee values for those descendants was incorrect. Github-Pull: #10144 Rebased-From: 9bef02e36525d0eed4e2e31678b3ff04bbb0b8cb
* [Trivial] Update comments referencing main.cppCryptAxe2017-02-161-1/+1
|
* Merge #9578: Add missing mempool lock for CalculateMemPoolAncestorsPieter Wuille2017-02-051-0/+2
|\ | | | | | | 003cd60 Add missing mempool lock for CalculateMemPoolAncestors (Matt Corallo)
| * Add missing mempool lock for CalculateMemPoolAncestorsMatt Corallo2017-01-201-0/+2
| |
* | Refactor: Remove using namespace <xxx> from src/*.cpp.Karl-Johan Alm2017-01-271-5/+3
| |
* | mempool: add notification for added/removed entriesWladimir J. van der Laan2017-01-231-10/+13
|/ | | | | | | | | | | | Add notification signals to make it possible to subscribe to mempool changes: - NotifyEntryAdded(CTransactionRef)> - NotifyEntryRemoved(CTransactionRef, MemPoolRemovalReason)> Also add a mempool removal reason enumeration, which is passed to the removed notification based on why the transaction was removed from the mempool.
* Merge #9380: Separate different uses of minimum feesWladimir J. van der Laan2017-01-161-4/+3
|\ | | | | | | | | | | eb30d1a Introduce -dustrelayfee (Alex Morcos) 7b1add3 Introduce -incrementalrelayfee (Alex Morcos) daec955 Introduce -blockmintxfee (Alex Morcos)
| * Introduce -incrementalrelayfeeAlex Morcos2017-01-161-4/+3
| |
* | Fix use-after-free in CTxMemPool::removeConflicts()Suhas Daftuar2017-01-101-1/+1
| |
* | Pass pointers to existing CTxMemPoolEntries to fee estimationAlex Morcos2017-01-041-2/+2
| |
* | Always update fee estimates on new blocks.Alex Morcos2017-01-041-3/+2
| | | | | | | | All decisions about whether the transactions are valid data points are made at the time the transaction arrives. Updating on blocks all the time will now cause stale fee estimates to decay quickly when we restart a node.
* | rename bool to validFeeEstimateAlex Morcos2017-01-041-4/+4
| |
* | Remove member variable hadNoDependencies from CTxMemPoolEntryAlex Morcos2017-01-041-4/+4
|/ | | | Fee estimation can just check its own mapMemPoolTxs to determine the same information. Note that now fee estimation for block processing must happen before those transactions are removed, but this shoudl be a speedup.
* Merge #9288: Fix a bug if the min fee is 0 for FeeFilterRounderWladimir J. van der Laan2017-01-041-1/+1
|\ | | | | | | | | f8d43b8 Avoid rollingMinimumFeeRate never being able to decay below half (Alex Morcos) eab8e1b fix a bug if the min fee is 0 for FeeFilterRounder (Alex Morcos)
| * Avoid rollingMinimumFeeRate never being able to decay below halfAlex Morcos2016-12-081-1/+1
| |
* | Merge #9283: A few more CTransactionRef optimizationsWladimir J. van der Laan2017-01-041-5/+5
|\ \ | | | | | | | | | | | | | | | | | | 91335ba Remove unused MakeTransactionRef overloads (Pieter Wuille) 6713f0f Make FillBlock consume txn_available to avoid shared_ptr copies (Pieter Wuille) 62607d7 Convert COrphanTx to keep a CTransactionRef (Pieter Wuille) c44e4c4 Make AcceptToMemoryPool take CTransactionRef (Pieter Wuille)
| * | Make AcceptToMemoryPool take CTransactionRefPieter Wuille2016-12-211-5/+5
| | |
* | | Increment MIT Licence copyright header year on files modified in 2016isle29832016-12-311-1/+1
|/ / | | | | | | | | | | Edited via: $ contrib/devtools/copyright_header.py update .
* | Merge #9262: Prefer coins that have fewer ancestors, sanity check txn before ↵Wladimir J. van der Laan2016-12-201-0/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | ATMP cee1612 reduce number of lookups in TransactionWithinChainLimit (Gregory Sanders) af9bedb Test for fix of txn chaining in wallet (Gregory Sanders) 5882c09 CreateTransaction: Don't return success with too-many-ancestor txn (Gregory Sanders) 0b2294a SelectCoinsMinConf: Prefer coins with fewer ancestors (Gregory Sanders)
| * | reduce number of lookups in TransactionWithinChainLimitGregory Sanders2016-12-191-3/+3
| | |
| * | SelectCoinsMinConf: Prefer coins with fewer ancestorsGregory Sanders2016-12-131-0/+7
| | |
* | | remove internal tracking of mempool conflicts for reporting to walletAlex Morcos2016-12-051-8/+3
| | |
* | | remove external usage of mempool conflict trackingAlex Morcos2016-12-051-2/+2
| |/ |/|
* | Rename the remaining main.{h,cpp} to validation.{h,cpp}Matt Corallo2016-12-021-1/+1
|/
* Introduce convenience type CTransactionRefPieter Wuille2016-11-191-7/+7
|
* Make CBlock::vtx a vector of shared_ptr<CTransaction>Pieter Wuille2016-11-191-7/+7
|
* Remove priority estimationAlex Morcos2016-11-071-3/+2
|
* Add feedelta to TxMempoolInfoPieter Wuille2016-10-301-2/+6
|
* Return shared_ptr<CTransaction> from mempool removesPieter Wuille2016-10-211-4/+4
|
* Make removed and conflicted arguments optional to removePieter Wuille2016-10-211-5/+7
|
* Bypass removeRecursive in removeForReorgPieter Wuille2016-10-211-7/+8
|
* Kill insecure_random and associated global stateWladimir J. van der Laan2016-10-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are only a few uses of `insecure_random` outside the tests. This PR replaces uses of insecure_random (and its accompanying global state) in the core code with an FastRandomContext that is automatically seeded on creation. This is meant to be used for inner loops. The FastRandomContext can be in the outer scope, or the class itself, then rand32() is used inside the loop. Useful e.g. for pushing addresses in CNode or the fee rounding, or randomization for coin selection. As a context is created per purpose, thus it gets rid of cross-thread unprotected shared usage of a single set of globals, this should also get rid of the potential race conditions. - I'd say TxMempool::check is not called enough to warrant using a special fast random context, this is switched to GetRand() (open for discussion...) - The use of `insecure_rand` in ConnectThroughProxy has been replaced by an atomic integer counter. The only goal here is to have a different credentials pair for each connection to go on a different Tor circuit, it does not need to be random nor unpredictable. - To avoid having a FastRandomContext on every CNode, the context is passed into PushAddress as appropriate. There remains an insecure_random for test usage in `test_random.h`.
* Use cmpctblock type 2 for segwit-enabled transferPieter Wuille2016-10-041-1/+1
| | | | | Contains version negotiation logic by Matt Corallo and bugfixes by Suhas Daftuar.
* Do not shadow variablesPavel Janík2016-09-271-4/+4
|
* Remove unused variablesMarcoFalke2016-08-251-1/+0
|
* Merge #8346: Mempool: Use Consensus::CheckTxInputs direclty over ↵Pieter Wuille2016-08-011-2/+7
|\ | | | | | | | | | | main::CheckInputs a6cc299 Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs (Jorge Timón)
| * Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputsJorge Timón2016-07-291-2/+7
| |
* | Treat high-sigop transactions as larger rather than rejecting themPieter Wuille2016-07-191-1/+1
| |
* | Rename "block cost" to "block weight"Suhas Daftuar2016-07-181-2/+2
|/
* BIP141: Other consensus critical limits, and BIP145Pieter Wuille2016-06-221-19/+25
| | | | Includes changes by Suhas Daftuar, Luke-jr, and mruddy.
* Provide a flat list of txid/terators to txn in CTxMemPoolMatt Corallo2016-06-191-1/+13
|
* Stop trimming when mapTx is emptyPieter Wuille2016-06-191-1/+1
|
* Get rid of CTxMempool::lookup() entirelyPieter Wuille2016-06-071-13/+3
|
* Switch CTransaction storage in mempool to std::shared_ptrPieter Wuille2016-06-051-24/+60
|
* Merge #7997: replace mapNextTx with slimmer setSpendsPieter Wuille2016-06-031-24/+22
|\ | | | | | | 9805f4a mapNextTx: use pointer as key, simplify value (Kaz Wesley)
| * mapNextTx: use pointer as key, simplify valueKaz Wesley2016-06-021-24/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Saves about 10% of application memory usage once the mempool warms up. Since the mempool is DynamicUsage-regulated, this will translate to a larger mempool in the same amount of space. Map value type: eliminate the vin index; no users of the map need to know which input of the transaction is spending the prevout. Map key type: replace the COutPoint with a pointer to a COutPoint. A COutPoint is 36 bytes, but each COutPoint is accessible from the same map entry's value. A trivial DereferencingComparator functor allows indirect map keys, but the resulting syntax is misleading: `map.find(&outpoint)`. Implement an indirectmap that acts as a wrapper to a map that uses a DereferencingComparator, supporting a syntax that accurately reflect the container's semantics: inserts and iterators use pointers since they store pointers and need them to remain constant and dereferenceable, but lookup functions take const references.
* | Do not use mempool for GETDATA for tx accepted after the last mempool req.Gregory Maxwell2016-05-251-1/+9
| | | | | | | | | | | | | | | | The ability to GETDATA a transaction which has not (yet) been relayed is a privacy loss vector. The use of the mempool for this was added as part of the mempool p2p message and is only needed to fetch transactions returned by it.