neobytes/src
Suhas Daftuar 12c469b236
[Mempool] Fix mempool limiting and replace-by-fee for PrioritiseTransaction
1) Fix mempool limiting for PrioritiseTransaction

Redo the feerate index to be based on mining score, rather than fee.

Update mempool_packages.py to test prioritisetransaction's effect on
package scores.

2) Update replace-by-fee logic to use fee deltas

3) Use fee deltas for determining mempool acceptance

4) Remove GetMinRelayFee

One test in AcceptToMemoryPool was to compare a transaction's fee
agains the value returned by GetMinRelayFee. This value was zero for
all small transactions.  For larger transactions (between
DEFAULT_BLOCK_PRIORITY_SIZE and MAX_STANDARD_TX_SIZE), this function
was preventing low fee transactions from ever being accepted.

With this function removed, we will now allow transactions in that range
with fees (including modifications via PrioritiseTransaction) below
the minRelayTxFee, provided that they have sufficient priority.

Github-Pull: #7062
Rebased-From: eb306664e786ae43d539fde66f0fbe2a3e89d910 9ef2a25603c9ec4e44c4f45c6a5d4e4386ec86d3 27fae3484cdb21b0d24face833b966fce5926be5 901b01d674031f9aca717deeb372bafa160a24af
2015-12-21 17:19:53 +01:00
..
bench [Trivial] ensure minimal header conventions 2015-10-27 17:44:13 +01:00
compat Add an alternate location of endian.h header 2015-06-07 04:54:20 +03:00
config
consensus Switch blocks to a constant-space Merkle root/branch algorithm. 2015-11-27 15:36:52 +01:00
crypto build: Endian compatibility 2015-03-06 15:54:53 +01:00
leveldb Update LevelDB 2015-11-04 23:46:47 +01:00
obj
obj-test
policy Change default block priority size to 0 2015-11-30 16:16:24 -05:00
primitives Merge pull request #6914 2015-12-01 10:22:14 +01:00
qt Add "NODE_BLOOM" to guiutil so that peers don't get UNKNOWN[4] 2015-12-14 09:54:56 +01:00
script Merge pull request #6914 2015-12-01 10:22:14 +01:00
secp256k1 Merge commit '5ad54630935d1f340666de7bc9ffef9b8a1df296' into HEAD 2015-11-24 09:22:18 +01:00
support Remove assertion from ~LockedPageManager 2015-05-15 11:44:58 +02:00
test Replace trickle nodes with per-node/message Poisson delays 2015-12-14 13:43:53 +01:00
univalue Merge commit '982709199f1b4e9e35211c419a81938f9f1dd4ed' into bitcoin 2015-12-02 12:28:48 +01:00
wallet Checks for null data transaction before issuing error to debug.log 2015-12-14 13:10:02 +01:00
zmq zmq: prepend zmq to debug messages 2015-11-19 13:32:14 +11:00
.clang-format [trivial] clang-format: Set AlignAfterOpenBracket: false 2015-11-05 23:28:02 +01:00
addrman.cpp Creates unittests for addrman, makes addrman testable. 2015-09-24 15:20:48 -04:00
addrman.h Creates unittests for addrman, makes addrman testable. 2015-09-24 15:20:48 -04:00
alert.cpp net: Add and document network messages in protocol.h 2015-12-11 11:18:50 +01:00
alert.h use const references where appropriate 2015-06-04 19:34:18 +02:00
amount.cpp Rationalize currency unit to "BTC" 2015-08-03 22:58:30 +01:00
amount.h Fix various typos 2015-12-02 15:18:22 +01:00
arith_uint256.cpp src/arith_256.cpp: bigendian compatibility 2015-03-06 17:21:59 +01:00
arith_uint256.h ensure consistent header comment naming conventions 2015-04-20 13:29:22 +02:00
base58.cpp
base58.h don't try to decode invalid encoded ext keys 2015-07-25 09:51:52 +02:00
bitcoin-cli-res.rc Update Windows resource files (and add one for bitcoin-tx) 2015-05-22 02:56:55 +00:00
bitcoin-cli.cpp Constrain rpcport default values to a single location in code 2015-12-01 10:18:18 +00:00
bitcoin-tx-res.rc Update Windows resource files (and add one for bitcoin-tx) 2015-05-22 02:56:55 +00:00
bitcoin-tx.cpp Switch to libsecp256k1-based validation for ECDSA 2015-11-15 16:06:57 +01:00
bitcoind-res.rc Update Windows resource files (and add one for bitcoin-tx) 2015-05-22 02:56:55 +00:00
bitcoind.cpp Initialize logging before we do parameter interaction 2015-11-27 13:26:28 +01:00
bloom.cpp Only use randomly created nonces in CRollingBloomFilter. 2015-07-27 19:09:39 +02:00
bloom.h Only use randomly created nonces in CRollingBloomFilter. 2015-07-27 19:09:39 +02:00
chain.cpp Allow block announcements with headers 2015-11-29 11:59:23 +01:00
chain.h Non-grammatical language improvements 2015-05-02 15:23:59 +00:00
chainparams.cpp Removed offline testnet DNSSeed 'alexykot.me'. 2015-12-17 10:40:50 +01:00
chainparams.h Trivial: Fix warning introduced by #7053 by casting to uint64_t 2015-11-29 21:19:37 +01:00
chainparamsbase.cpp TRIVIAL: Chainparams: Remove unused CBaseUnitTestParams 2015-12-02 15:18:23 +01:00
chainparamsbase.h Constrain rpcport default values to a single location in code 2015-12-01 10:18:18 +00:00
chainparamsseeds.h Hardcoded seeds update June 2015 2015-06-25 08:05:52 +02:00
checkpoints.cpp TRIVIAL: Missing includes 2015-07-23 21:10:22 +02:00
checkpoints.h chainparams: move CCheckpointData into chainparams.h 2015-07-28 15:26:50 -04:00
checkqueue.h Bugfix: Grammar fixes 2015-05-01 11:21:27 +00:00
clientversion.cpp
clientversion.h Bump version to 0.12.0 2015-12-03 12:18:53 +01:00
coincontrol.h Move fPayAtLeastCustomFee function to CC 2015-11-30 14:09:04 +01:00
coins.cpp Add CCoinsViewCache::HaveCoinsInCache to check if a tx is cached 2015-12-01 15:52:09 -08:00
coins.h Add CCoinsViewCache::HaveCoinsInCache to check if a tx is cached 2015-12-01 15:52:09 -08:00
compat.h Set TCP_NODELAY on P2P sockets. 2015-10-22 17:57:48 +00:00
compressor.cpp
compressor.h
core_io.h Resolve issue 3166. 2015-07-30 19:56:00 -04:00
core_memusage.h Prevector type 2015-11-13 18:15:20 +01:00
core_read.cpp [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
core_write.cpp [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
dbwrapper.cpp leveldbwrapper file rename to dbwrapper.* 2015-10-22 21:33:06 -04:00
dbwrapper.h constify missing catch cases 2015-10-27 17:39:42 +01:00
hash.cpp chaincodes: abstract away more chaincode behavior 2015-05-06 17:22:46 +02:00
hash.h Prevector type 2015-11-13 18:15:20 +01:00
httprpc.cpp Added additional config option for multiple RPC users. 2015-11-29 08:34:20 -05:00
httprpc.h evhttpd implementation 2015-09-03 10:59:18 +02:00
httpserver.cpp http: add Boost 1.49 compatibility 2015-11-20 10:14:21 +01:00
httpserver.h http: speed up shutdown 2015-11-13 11:10:48 +01:00
init.cpp Constrain rpcport default values to a single location in code 2015-12-01 10:18:18 +00:00
init.h Initialize logging before we do parameter interaction 2015-11-27 13:26:28 +01:00
key.cpp Update key.cpp to new secp256k1 API 2015-11-13 00:12:53 +01:00
key.h Merge pull request #6034 2015-05-06 18:37:49 +02:00
keystore.cpp Add logic to track pubkeys as watch-only, not just scripts 2015-07-20 16:01:37 -07:00
keystore.h Add logic to track pubkeys as watch-only, not just scripts 2015-07-20 16:01:37 -07:00
limitedmap.h Disallow unlimited limited maps 2015-08-17 12:15:32 -04:00
main.cpp [Mempool] Fix mempool limiting and replace-by-fee for PrioritiseTransaction 2015-12-21 17:19:53 +01:00
main.h [Mempool] Fix mempool limiting and replace-by-fee for PrioritiseTransaction 2015-12-21 17:19:53 +01:00
Makefile.am Replace setInventoryKnown with a rolling bloom filter. 2015-12-04 15:01:09 +01:00
Makefile.bench.include build: Split hardening/fPIE options out 2015-11-09 22:50:31 -05:00
Makefile.qt.include qt: Final translation update before 0.12 fork 2015-12-02 14:28:35 +01:00
Makefile.qttest.include build: Use fPIC rather than fPIE for qt objects. 2015-11-09 22:50:31 -05:00
Makefile.test.include Replace setInventoryKnown with a rolling bloom filter. 2015-12-04 15:01:09 +01:00
memusage.h Prevector type 2015-11-13 18:15:20 +01:00
merkleblock.cpp typofixes (found by misspell_fixer) 2015-08-10 22:06:27 +01:00
merkleblock.h Bugfix: Grammar fixes 2015-05-01 11:21:27 +00:00
miner.cpp Update miner.cpp: Fix typo in comment 2015-12-02 15:18:23 +01:00
miner.h Constrain constant values to a single location in code 2015-11-28 18:47:29 +01:00
net.cpp Replace trickle nodes with per-node/message Poisson delays 2015-12-14 13:43:53 +01:00
net.h Replace trickle nodes with per-node/message Poisson delays 2015-12-14 13:43:53 +01:00
netbase.cpp [trivial] Reuse translation and cleanup DEFAULT_* values 2015-11-28 19:01:11 +01:00
netbase.h [trivial] Reuse translation and cleanup DEFAULT_* values 2015-11-28 19:01:11 +01:00
noui.cpp
noui.h
pow.cpp Added fPowNoRetargeting field to Consensus::Params that disables nBits recalculation. 2015-10-19 14:25:21 -04:00
pow.h Use equivalent PoW for non-main-chain requests 2015-04-22 03:53:25 -07:00
prevector.h Name union to prevent compiler warning 2015-12-02 08:40:47 +01:00
protocol.cpp net: Add and document network messages in protocol.h 2015-12-11 11:18:50 +01:00
protocol.h net: Add and document network messages in protocol.h 2015-12-11 11:18:50 +01:00
pubkey.cpp Switch to libsecp256k1-based validation for ECDSA 2015-11-15 16:06:57 +01:00
pubkey.h Switch to libsecp256k1-based validation for ECDSA 2015-11-15 16:06:57 +01:00
random.cpp
random.h
rest.cpp Fix various typos 2015-12-02 15:18:22 +01:00
reverselock.h Replace boost::reverse_lock with our own. 2015-09-03 15:13:40 -04:00
rpcblockchain.cpp [Mempool] Fix mempool limiting and replace-by-fee for PrioritiseTransaction 2015-12-21 17:19:53 +01:00
rpcclient.cpp Expose RPC calls for estimatesmart functions 2015-11-16 15:42:31 -05:00
rpcclient.h [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
rpcmining.cpp Constrain constant values to a single location in code 2015-11-28 18:47:29 +01:00
rpcmisc.cpp Fix crash in validateaddress with -disablewallet 2015-11-09 08:44:19 +01:00
rpcnet.cpp Add relaytxes status to getpeerinfo 2015-11-20 16:07:12 -08:00
rpcprotocol.cpp evhttpd implementation 2015-09-03 10:59:18 +02:00
rpcprotocol.h [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
rpcrawtransaction.cpp [RPC] Add transaction size to JSON output 2015-11-28 17:06:56 +03:00
rpcserver.cpp Expose RPC calls for estimatesmart functions 2015-11-16 15:42:31 -05:00
rpcserver.h Expose RPC calls for estimatesmart functions 2015-11-16 15:42:31 -05:00
scheduler.cpp Replace boost::reverse_lock with our own. 2015-09-03 15:13:40 -04:00
scheduler.h More robust CScheduler unit test 2015-05-16 17:59:23 -04:00
serialize.h Prevector type 2015-11-13 18:15:20 +01:00
streams.h Add chainstate obfuscation to avoid spurious antivirus detection 2015-10-06 07:46:10 -07:00
sync.cpp Revert "Revert "Assert on probable deadlocks if the second lock isnt try_lock"" 2015-08-07 16:18:16 -04:00
sync.h typofixes (found by misspell_fixer) 2015-08-10 22:06:27 +01:00
threadsafety.h
timedata.cpp Move time data log print to 'net' category to reduce log noise 2015-11-22 06:48:25 +00:00
timedata.h
tinyformat.h
torcontrol.cpp torcontrol: only output disconnect if -debug=tor 2015-11-30 22:20:43 +11:00
torcontrol.h torcontrol improvements and fixes 2015-11-12 17:58:15 +01:00
txdb.cpp Fix chainstate serialized_size computation 2015-10-28 01:05:32 +01:00
txdb.h leveldbwrapper file rename to dbwrapper.* 2015-10-22 21:33:06 -04:00
txmempool.cpp [Mempool] Fix mempool limiting and replace-by-fee for PrioritiseTransaction 2015-12-21 17:19:53 +01:00
txmempool.h [Mempool] Fix mempool limiting and replace-by-fee for PrioritiseTransaction 2015-12-21 17:19:53 +01:00
ui_interface.h NotifyBlockTip signal: switch from hash (uint256) to CBlockIndex* 2015-11-30 08:50:59 +01:00
uint256.cpp BUGFIX: Stack around the variable 'rv' was corrupted 2015-03-12 22:17:22 +06:00
uint256.h uint256::GetCheapHash bigendian compatibility 2015-11-25 16:19:24 +08:00
undo.h
util.cpp [trivial] Reuse translation and cleanup DEFAULT_* values 2015-11-28 19:01:11 +01:00
util.h [qt] Move GUI related HelpMessage() part downstream 2015-11-28 19:01:26 +01:00
utilmoneystr.cpp Get rid of fPlus argument to FormatMoney 2015-06-06 09:30:41 +02:00
utilmoneystr.h Get rid of fPlus argument to FormatMoney 2015-06-06 09:30:41 +02:00
utilstrencodings.cpp SanitizeString: Allow hypen char 2015-09-23 12:06:00 +02:00
utilstrencodings.h [uacomment] Sanitize per BIP-0014 2015-09-16 15:23:29 +02:00
utiltime.cpp Assert now > 0 in GetTime GetTimeMillis GetTimeMicros 2015-11-24 18:39:19 -08:00
utiltime.h Add option for microsecond precision in debug.log 2015-10-26 15:05:37 -04:00
validationinterface.cpp Add ZeroMQ support. Notify blocks and transactions via ZeroMQ 2015-09-16 11:01:35 +01:00
validationinterface.h use CBlockIndex* insted of uint256 for UpdatedBlockTip signal 2015-09-16 16:51:21 +02:00
version.h Allow block announcements with headers 2015-11-29 11:59:23 +01:00