FLO-wallet-core/src
Matt Corallo 794a8cec5d Implement on-the-fly mempool size limitation.
After each transaction which is added to mempool, we first call
Expire() to remove old transactions, then throwing away the
lowest-feerate transactions.

After throwing away transactions by feerate, we set the minimum
relay fee to the maximum fee transaction-and-dependant-set we
removed, plus the default minimum relay fee.

After the next block is received, the minimum relay fee is allowed
to decrease exponentially. Its halflife defaults to 12 hours, but
is decreased to 6 hours if the mempool is smaller than half its
maximum size, and 3 hours if the mempool is smaller than a quarter
its maximum size.

The minimum -maxmempool size is 40*-limitdescendantsize, as it is
easy for an attacker to play games with the cheapest
-limitdescendantsize transactions. -maxmempool defaults to 300MB.

This disables high-priority transaction relay when the min relay
fee adjustment is >0 (ie when the mempool is full). When the relay
fee adjustment drops below the default minimum relay fee / 2 it is
set to 0 (re-enabling priority-based free relay).
2015-10-13 01:39:27 -07:00
..
bench Ignore bench_bitcoin binary. 2015-10-06 17:46:12 +02:00
compat Add an alternate location of endian.h header 2015-06-07 04:54:20 +03:00
config
consensus Add debug message to CValidationState for optional extra information 2015-08-06 09:47:01 +02:00
crypto build: Endian compatibility 2015-03-06 15:54:53 +01:00
leveldb
obj
obj-test
policy Test LowS in standardness, removes nuisance malleability vector. 2015-10-06 03:50:38 +00:00
primitives Merge pull request #5264 2015-09-25 19:19:07 +02:00
qt [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
script Accept any sequence of PUSHDATAs in OP_RETURN outputs 2015-10-01 18:28:13 +02:00
secp256k1 Update libsecp256k1 2015-04-22 14:03:10 -07:00
support Remove assertion from ~LockedPageManager 2015-05-15 11:44:58 +02:00
test Reverse the sort on the mempool's feerate index 2015-10-13 00:44:03 -07:00
univalue Merge commit '2f9f082b5ef3c495c70598ef23383effef675f9a' as 'src/univalue' 2015-10-01 10:37:19 +02:00
wallet Merge pull request #6637 2015-10-01 16:36:15 +02:00
zmq use CBlockIndex* insted of uint256 for UpdatedBlockTip signal 2015-09-16 16:51:21 +02:00
.clang-format
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 TRIVIAL: Missing includes 2015-07-23 21:10:22 +02: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 Add CFeeRate += operator 2015-10-13 01:04:39 -07: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 [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02: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 [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
bitcoind-res.rc Update Windows resource files (and add one for bitcoin-tx) 2015-05-22 02:56:55 +00:00
bitcoind.cpp evhttpd implementation 2015-09-03 10:59:18 +02: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 Reduce checkpoints' effect on consensus. 2015-05-13 12:52:57 -07:00
chain.h Non-grammatical language improvements 2015-05-02 15:23:59 +00:00
chainparams.cpp Merge pull request #5987 2015-10-01 14:11:56 +02:00
chainparams.h Merge pull request #5987 2015-10-01 14:11:56 +02:00
chainparamsbase.cpp Chainparams: CTestNetParams and CRegTestParams extend directly from CChainParams 2015-07-12 11:13:47 +02:00
chainparamsbase.h Bugfix: Grammar fixes 2015-05-01 11:21:27 +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 in clientversion.h 2015-06-02 17:11:05 +02:00
coincontrol.h SQUASH "Implement watchonly support in fundrawtransaction" 2015-08-08 09:30:53 -07:00
coins.cpp Separate core memory usage computation in core_memusage.h 2015-07-20 11:17:53 -04:00
coins.h Separate core memory usage computation in core_memusage.h 2015-07-20 11:17:53 -04:00
compat.h Fix warning introduced by #6412 2015-07-20 17:10:02 +02:00
compressor.cpp
compressor.h
core_io.h Resolve issue 3166. 2015-07-30 19:56:00 -04:00
core_memusage.h Do not store Merkle branches in the wallet. 2015-09-22 18:51:07 +02: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
eccryptoverify.cpp
eccryptoverify.h
ecwrapper.cpp consensus: cache the openssl EC_GROUP to avoid a race condition for each CECKey instantiation 2015-08-19 14:25:01 -04:00
ecwrapper.h
hash.cpp chaincodes: abstract away more chaincode behavior 2015-05-06 17:22:46 +02:00
hash.h chaincodes: abstract away more chaincode behavior 2015-05-06 17:22:46 +02:00
httprpc.cpp Implement RPCTimerHandler for Qt RPC console 2015-09-03 10:59:19 +02:00
httprpc.h evhttpd implementation 2015-09-03 10:59:18 +02:00
httpserver.cpp http: Force-exit event loop after predefined time 2015-09-28 15:06:20 +02:00
httpserver.h rpc: Split option -rpctimeout into -rpcservertimeout and -rpcclienttimeout 2015-09-21 17:15:36 +02:00
init.cpp Implement on-the-fly mempool size limitation. 2015-10-13 01:39:27 -07:00
init.h evhttpd implementation 2015-09-03 10:59:18 +02:00
key.cpp Merge pull request #6034 2015-05-06 18:37:49 +02: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
leveldbwrapper.cpp Add chainstate obfuscation to avoid spurious antivirus detection 2015-10-06 07:46:10 -07:00
leveldbwrapper.h Add chainstate obfuscation to avoid spurious antivirus detection 2015-10-06 07:46:10 -07:00
limitedmap.h Disallow unlimited limited maps 2015-08-17 12:15:32 -04:00
main.cpp Implement on-the-fly mempool size limitation. 2015-10-13 01:39:27 -07:00
main.h Implement on-the-fly mempool size limitation. 2015-10-13 01:39:27 -07:00
Makefile.am build: Make use of ZMQ_CFLAGS 2015-10-08 00:00:55 -04:00
Makefile.bench.include Support very-fast-running benchmarks 2015-09-30 09:24:42 -04:00
Makefile.qt.include [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
Makefile.qttest.include [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
Makefile.test.include Merge pull request #6720 2015-10-07 14:59:58 +02:00
memusage.h Track transaction packages in CTxMemPoolEntry 2015-09-19 13:25:48 -04: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 Do not store Merkle branches in the wallet. 2015-09-22 18:51:07 +02:00
miner.h Add some const declarations where they are appropriate. 2015-08-08 18:18:41 +02:00
mruset.h Revert "Cache transaction validation successes" 2015-07-28 20:15:00 +02:00
net.cpp net: correctly initialize nMinPingUsecTime 2015-09-04 16:27:38 +02:00
net.h Report minimum ping time in getpeerinfo 2015-09-03 13:06:13 -07:00
netbase.cpp net: Fix CIDR notation in ToString() 2015-09-16 16:50:19 +02:00
netbase.h Adding CSubNet constructor over a single CNetAddr 2015-07-02 20:44:27 +02:00
noui.cpp
noui.h
pow.cpp Use equivalent PoW for non-main-chain requests 2015-04-22 03:53:25 -07:00
pow.h Use equivalent PoW for non-main-chain requests 2015-04-22 03:53:25 -07:00
protocol.cpp nLastTry is only used for addrman entries 2015-04-19 11:10:23 -07:00
protocol.h Add NODE_BLOOM service bit and bump protocol version 2015-09-05 23:29:13 -07:00
pubkey.cpp chaincodes: abstract away more chaincode behavior 2015-05-06 17:22:46 +02:00
pubkey.h chaincodes: abstract away more chaincode behavior 2015-05-06 17:22:46 +02:00
random.cpp WIN32 Seed Cleanup: Move nLastPerfmon behind win32 ifdef. 2015-02-25 18:37:06 -05:00
random.h
rest.cpp [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
reverselock.h Replace boost::reverse_lock with our own. 2015-09-03 15:13:40 -04:00
rpcblockchain.cpp [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
rpcclient.cpp [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
rpcclient.h [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
rpcmining.cpp [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
rpcmisc.cpp [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
rpcnet.cpp [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02: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 [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
rpcserver.cpp [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02:00
rpcserver.h [Univalue] add univalue over subtree 2015-10-01 10:49:57 +02: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 fix header include groups 2015-05-14 01:02:01 -04: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 timedata: Prevent warning overkill 2015-09-27 16:40:16 +02:00
timedata.h
tinyformat.h
txdb.cpp Add chainstate obfuscation to avoid spurious antivirus detection 2015-10-06 07:46:10 -07:00
txdb.h Cache tweak and logging improvements 2015-05-11 17:58:14 -07:00
txmempool.cpp Implement on-the-fly mempool size limitation. 2015-10-13 01:39:27 -07:00
txmempool.h Implement on-the-fly mempool size limitation. 2015-10-13 01:39:27 -07:00
ui_interface.h [Qt] add ui signal for banlist changes 2015-09-16 16:50:19 +02:00
uint256.cpp BUGFIX: Stack around the variable 'rv' was corrupted 2015-03-12 22:17:22 +06:00
uint256.h
undo.h
util.cpp Changed logging to make -logtimestamps to work also for -printtoconsole 2015-09-30 17:57:28 +02:00
util.h Move windows socket init to utility function 2015-09-03 10:59:19 +02: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 Trivial: useless cast (ptime)(I'm ptime) 2015-04-30 23:11:52 +03:00
utiltime.h
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 Add NODE_BLOOM service bit and bump protocol version 2015-09-05 23:29:13 -07:00