aboutsummaryrefslogtreecommitdiff
path: root/src/txmempool.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix a few "Uninitialized scalar field" warningsWladimir J. van der Laan2014-08-281-2/+5
| | | | | | Fix a few warnings reported by Coverity. None of these is critical, but making sure that class fields are initialized can avoid heisenbugs.
* Merge pull request #4748Pieter Wuille2014-08-261-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | ad49c25 Split up util.cpp/h (Wladimir J. van der Laan) f841aa2 Move `COIN` and `CENT` to core.h (Wladimir J. van der Laan) 6e5fd00 Move `*Version()` functions to version.h/cpp (Wladimir J. van der Laan) b4aa769 Move `S_I*` constants and `MSG_NOSIGNAL` to compat.h (Wladimir J. van der Laan) af8297c Move functions in wallet.h to implementation file (Wladimir J. van der Laan) 651480c move functions in main and net to implementation files (Wladimir J. van der Laan) 610a8c0 Move SetThreadPriority implementation to util.cpp instead of the header (Wladimir J. van der Laan) f780e65 Remove unused function `ByteReverse` from util.h (Wladimir J. van der Laan) 121d6ad Remove unused `alignup` function from util.h (Wladimir J. van der Laan) d1e26d4 Move CMedianFilter to timedata.cpp (Wladimir J. van der Laan)
| * Split up util.cpp/hWladimir J. van der Laan2014-08-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Split up util.cpp/h into: - string utilities (hex, base32, base64): no internal dependencies, no dependency on boost (apart from foreach) - money utilities (parsesmoney, formatmoney) - time utilities (gettime*, sleep, format date): - and the rest (logging, argument parsing, config file parsing) The latter is basically the environment and OS handling, and is stripped of all utility functions, so we may want to rename it to something else than util.cpp/h for clarity (Matt suggested osinterface). Breaks dependency of sha256.cpp on all the things pulled in by util.
* | Use const CCoinsView's at some places.Daniel Kraft2014-08-261-2/+2
| | | | | | | | | | At some places where it is possible (e. g., CheckInputs), use a const version of CCoinsView instead of a non-const one.
* | Make appropriate getter-routines "const" in CCoinsView.Daniel Kraft2014-08-261-2/+2
|/ | | | Mark the "Get"/"Have" routines in CCoinsView and subclasses as "const".
* Closely track mempool byte total. Add "getmempoolinfo" RPC.Jeff Garzik2014-08-141-0/+9
| | | | | Goal: Gain live insight into the mempool. Groundwork for future work that caps mempool size.
* Process fee estimate file into temporary vector first to let sanity checking ↵Alex Morcos2014-07-291-4/+15
| | | | complete.
* Fix minor bug which only affected log messages.Alex Morcos2014-07-281-2/+6
|
* Fixed a bug with index bounds checkingAlex Morcos2014-07-271-1/+1
|
* Bugfix: make CCoinsViewMemPool support pruned entries in underlying cachePieter Wuille2014-07-231-3/+4
|
* Revert "Relay double-spends, subject to anti-DOS"Wladimir J. van der Laan2014-07-211-0/+1
| | | | This reverts commit d640a3ceab4f4372c2a0f738c1286cfde4b41b50.
* Move fee policy out of coreGavin Andresen2014-07-031-13/+13
|
* Sanity checks for estimatesGavin Andresen2014-07-031-2/+7
| | | | | | | Require at least 11 samples before giving fee/priority estimates. And have wallet-created transactions go throught the fee-sanity-check code path.
* Relay double-spends, subject to anti-DOSTom Harding2014-06-271-1/+0
| | | | | | | | | | | | | | | | | | | | Allows network wallets and other clients to see transactions that respend a prevout already spent in an unconfirmed transaction in this node's mempool. Knowledge of an attempted double-spend is of interest to recipients of the first spend. In some cases, it will allow these recipients to withhold goods or services upon being alerted of a double-spend that deprives them of payment. As before, respends are not added to the mempool. Anti-Denial-of-Service-Attack provisions: - Use a bloom filter to relay only one respend per mempool prevout - Rate-limit respend relays to a default of 100 thousand bytes/minute - Define tx2.IsEquivalentTo(tx1): equality when scriptSigs are not considered - Do not relay these equivalent transactions Remove an unused variable declaration in txmempool.cpp.
* JSON-RPC method: prioritisetransaction <txid> <priority delta> <priority tx fee>Luke Dashjr2014-06-261-0/+29
| | | | Accepts the transaction into mined blocks at a higher (or lower) priority
* estimatefee / estimatepriority RPC methodsGavin Andresen2014-06-061-0/+370
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New RPC methods: return an estimate of the fee (or priority) a transaction needs to be likely to confirm in a given number of blocks. Mike Hearn created the first version of this method for estimating fees. It works as follows: For transactions that took 1 to N (I picked N=25) blocks to confirm, keep N buckets with at most 100 entries in each recording the fees-per-kilobyte paid by those transactions. (separate buckets are kept for transactions that confirmed because they are high-priority) The buckets are filled as blocks are found, and are saved/restored in a new fee_estiamtes.dat file in the data directory. A few variations on Mike's initial scheme: To estimate the fee needed for a transaction to confirm in X buckets, all of the samples in all of the buckets are used and a median of all of the data is used to make the estimate. For example, imagine 25 buckets each containing the full 100 entries. Those 2,500 samples are sorted, and the estimate of the fee needed to confirm in the very next block is the 50'th-highest-fee-entry in that sorted list; the estimate of the fee needed to confirm in the next two blocks is the 150'th-highest-fee-entry, etc. That algorithm has the nice property that estimates of how much fee you need to pay to get confirmed in block N will always be greater than or equal to the estimate for block N+1. It would clearly be wrong to say "pay 11 uBTC and you'll get confirmed in 3 blocks, but pay 12 uBTC and it will take LONGER". A single block will not contribute more than 10 entries to any one bucket, so a single miner and a large block cannot overwhelm the estimates.
* Remove CWalletTx::vfSpentGavin Andresen2014-02-261-7/+10
| | | | | | Use the spent outpoint multimap to figure out which wallet transaction outputs are unspent, instead of a vfSpent array that is saved to disk.
* Add verbose boolean to getrawmempoolGavin Andresen2013-11-301-15/+46
| | | | | Also changes mempool to store CTxMemPoolEntries to keep track of when they enter/exit the pool.
* Move CCoins-related logic to coins.{cpp.h}Pieter Wuille2013-11-101-2/+20
|
* Refactor: CTxMempool class to its own txmempool.{cpp,h}Gavin Andresen2013-11-041-0/+162