neobytes/src
Alexander Block 240238b190
Fix db leaks in LLMQ db (#2914)
* Store rs_t key time in big endian

Also implement ConvertInvalidTimeKeys to convert old entries. We can remove
this later when we know that most MNs have run this code on testnet.

The way we stored the time field in the past lead to CleanupOldRecoveredSigs
iterating the keys in a strange order, causing no deletion at all and the
LLMQ DB filling up.

* Write batch in CleanupOldRecoveredSigs when it gets too large

This avoids RAM filling up and OOM getting triggered.

* Keep track of when a vote was written to the DB and clean up after week

Instead of only deleting when the corresponding recovered sig is deleted.
It sometimes happens that a masternode votes on something but a recovered
sig is never created, which leaves us with a vote that will never be
deleted.

* Apply suggestions from code review

Co-Authored-By: PastaPastaPasta <pasta@dashboost.org>
2019-05-13 10:41:48 +02:00
..
bench Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768) 2019-03-14 17:44:42 +03:00
bls Prefix all bls/quorum threads with dash- (#2865) 2019-04-15 17:42:43 +03:00
compat Move to in-docker CI builds and add Jenkins support (#2178) 2018-07-12 16:28:59 +03:00
config
consensus Bump "keepOldConnections" by one for all LLMQ types (#2909) 2019-05-10 11:26:39 +02:00
crypto Move bls stuff from crypto/ to bls/ 2018-10-12 19:39:26 +02:00
evo Skip CheckCbTxMerkleRoots until assumeValid block (#2890) 2019-04-30 16:20:00 +03:00
immer Update immer library to current master (0a718d2d76bab6ebdcf43de943bd6c7d2dbfe2f9) (#2821) 2019-04-01 14:10:49 +03:00
leveldb Merge #8613: LevelDB 1.19 2018-01-17 17:31:11 +01:00
llmq Fix db leaks in LLMQ db (#2914) 2019-05-13 10:41:48 +02:00
obj
obj-test
policy Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768) 2019-03-14 17:44:42 +03:00
primitives Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768) 2019-03-14 17:44:42 +03:00
qt Translations v14 (#2638) 2019-04-30 16:18:37 +03:00
rpc Implement integration tests for DKG error handling (#2905) 2019-05-08 12:13:27 +03:00
script Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
secp256k1 Merge #9334: Update to latest libsecp256k1 2018-01-17 17:31:12 +01:00
support Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
test Collection of minor performance optimizations (#2855) 2019-04-11 15:42:14 +03:00
univalue Merge #8863: univalue: Pull subtree 2018-01-12 09:57:56 +01:00
wallet Be more accurate with denom creation/consumption (#2853) 2019-04-30 16:19:23 +03:00
zmq Implement zmq notifications for chainlocked blocks (#2899) 2019-05-08 12:12:54 +03:00
.clang-format Update .clang-format to more accurately show the actual style (#2299) 2018-09-20 15:40:00 +03:00
activemasternode.cpp Fix confusion between dip3 activation and enforcement (#2651) 2019-01-29 15:54:38 +01:00
activemasternode.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
addrdb.cpp Merge #9216: Doc: Fix copypasted comment 2018-01-17 17:25:36 +01:00
addrdb.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
addressindex.h
addrman.cpp A few devnet related fixes (#2168) 2018-07-08 00:19:33 +03:00
addrman.h A few devnet related fixes (#2168) 2018-07-08 00:19:33 +03:00
alert.cpp Remove remaining using namespace std 2018-02-21 22:32:13 +03:00
alert.h Drop BOOST_FOREACH and use references in loops (const ref where applicable, Dash code only) (#1899) 2018-02-06 14:09:33 +03:00
amount.cpp
amount.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
arith_uint256.cpp Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
arith_uint256.h Merge #8675: Make copyright header lines uniform 2018-01-13 13:44:39 +01:00
base58.cpp
base58.h Merge #9510: [trivial] Fix typos in comments 2018-01-21 12:48:34 +01:00
batchedlogger.cpp Make LLMQ/InstantSend/ChainLocks code less spammy (#2781) 2019-03-21 07:46:27 +01:00
batchedlogger.h Make LLMQ/InstantSend/ChainLocks code less spammy (#2781) 2019-03-21 07:46:27 +01:00
bip39_english.h
bip39.cpp Use GetStrongRandBytes in CMnemonic::Generate 2017-12-22 06:00:51 +01:00
bip39.h
blockencodings.cpp Backport compact blocks functionality from bitcoin (#1966) 2018-04-11 14:06:01 +03:00
blockencodings.h Backport compact blocks functionality from bitcoin (#1966) 2018-04-11 14:06:01 +03:00
bloom.cpp Collection of minor performance optimizations (#2855) 2019-04-11 15:42:14 +03:00
bloom.h Apply Bloom filters to DIP2 transactions extra payload (#2786) 2019-03-21 23:45:27 +03:00
cachemap.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
cachemultimap.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
chain.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
chain.h Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
chainparams.cpp Bump "keepOldConnections" by one for all LLMQ types (#2909) 2019-05-10 11:26:39 +02:00
chainparams.h Harden DIP3 activation (#2881) 2019-04-25 18:39:04 +03:00
chainparamsbase.cpp Clear devNetParams and mimic behavior of other param types (#2367) 2018-10-25 09:17:37 +02:00
chainparamsbase.h
chainparamsseeds.h Update testnet seeds to point to MNs that are on the new chain (#2558) 2018-12-14 16:34:11 +01:00
checkpoints.cpp Merge #9472: Disentangle progress estimation from checkpoints and update it 2018-01-21 12:48:32 +01:00
checkpoints.h Merge #9472: Disentangle progress estimation from checkpoints and update it 2018-01-21 12:48:32 +01:00
checkqueue.h Merge #9497: CCheckQueue Unit Tests 2018-01-26 12:59:29 +01:00
clientversion.cpp [GUI] Create QR-code for Masternode private key (#1970) 2018-03-08 15:17:34 +03:00
clientversion.h [0.13.x] Bump version to 0.13.2 and add release notes (#2749) 2019-03-08 21:21:50 +03:00
coins.cpp Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768) 2019-03-14 17:44:42 +03:00
coins.h Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768) 2019-03-14 17:44:42 +03:00
compat.h Merge #9224: Prevent FD_SETSIZE error building on OpenBSD 2018-01-17 17:27:24 +01:00
compressor.cpp
compressor.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
core_io.h Merge #9282: CMutableTransaction is defined as struct 2018-01-17 17:31:12 +01:00
core_memusage.h Merge #9125: Make CBlock a vector of shared_ptr of CTransactions 2018-01-15 06:14:16 +01:00
core_read.cpp Merge #9650: Better handle invalid parameters to signrawtransaction 2018-02-07 13:11:08 +01:00
core_write.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
ctpl.h Add ctpl header only library 2018-10-04 16:46:48 +02:00
cuckoocache.h Merge #9510: [trivial] Fix typos in comments 2018-01-21 12:48:34 +01:00
cxxtimer.hpp Add cxxtimer header only libraries 2019-01-09 12:16:11 +01:00
dash-cli-res.rc Fix issues introduced in 1770 (#1803) 2017-12-21 19:58:38 +03:00
dash-cli.cpp Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
dash-tx-res.rc Fix issues introduced in 1770 (#1803) 2017-12-21 19:58:38 +03:00
dash-tx.cpp Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
dashd-res.rc
dashd.cpp Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
dbwrapper.cpp Merge #8629: C++11: s/boost::scoped_ptr/std::unique_ptr/ 2018-01-09 14:16:38 +01:00
dbwrapper.h Fix infinite loop in CDBTransactionIterator::SkipDeletedAndOverwritten (#2870) 2019-04-16 16:39:59 +03:00
dsnotificationinterface.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
dsnotificationinterface.h Pass oldList and diff instead of newList into NotifyMasternodeListChanged 2019-04-09 13:28:40 +02:00
flat-database.h
governance-classes.cpp Drop DBG macros uses from governance modules (#2802) 2019-03-25 09:15:32 +03:00
governance-classes.h Drop DBG macros uses from governance modules (#2802) 2019-03-25 09:15:32 +03:00
governance-exceptions.h Gov cleanup + copyright bump (#2324) 2018-09-28 10:56:17 +03:00
governance-object.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
governance-object.h Remove watchdogs from existence (#2816) 2019-03-30 17:55:20 +03:00
governance-validators.cpp Disallow new proposals using legacy serialization (#2722) 2019-02-26 13:44:43 +03:00
governance-validators.h Disallow new proposals using legacy serialization (#2722) 2019-02-26 13:44:43 +03:00
governance-vote.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
governance-vote.h Use BLS keys for the DIP3 operator key (#2352) 2018-10-21 22:45:16 +03:00
governance-votedb.cpp Keep the most recent gobject votes only (#2815) 2019-04-01 14:10:01 +03:00
governance-votedb.h Keep the most recent gobject votes only (#2815) 2019-04-01 14:10:01 +03:00
governance.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
governance.h Keep the most recent gobject votes only (#2815) 2019-04-01 14:10:01 +03:00
hash.cpp Merge #9556: Remove redundant semicolons 2018-01-23 09:24:27 +01:00
hash.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
hdchain.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
hdchain.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
httprpc.cpp Use override keyword for overriden class member functions (#1644) 2018-02-15 10:29:15 +03:00
httprpc.h
httpserver.cpp Disable logging of libevent debug messages (#2794) 2019-03-21 17:43:14 +01:00
httpserver.h Merge #8513: Fix a type error that would not compile on OSX. 2018-01-08 18:04:55 +01:00
indirectmap.h Merge #8414: prepend license statement to indirectmap.h 2018-01-08 18:04:55 +01:00
init.cpp Be more accurate with denom creation/consumption (#2853) 2019-04-30 16:19:23 +03:00
init.h Refactor and fix restart (#1999) 2018-03-19 16:09:47 +03:00
instantx.cpp Refactor IS-lock GUI notification and implement a similar one for ChainLocks (#2875) 2019-04-25 18:37:39 +03:00
instantx.h Refactor IS-lock GUI notification and implement a similar one for ChainLocks (#2875) 2019-04-25 18:37:39 +03:00
keepass.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
keepass.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
key.cpp Merge #8753: Locked memory manager 2018-01-13 13:44:39 +01:00
key.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
keystore.cpp
keystore.h Use override keyword for overriden class member functions (#1644) 2018-02-15 10:29:15 +03:00
limitedmap.h Collection of minor performance optimizations (#2855) 2019-04-11 15:42:14 +03:00
Makefile.am Implement MNAUTH and allow unlimited inbound MN connections (#2790) 2019-03-22 11:52:37 +01:00
Makefile.bench.include Few trivial cleanups (#2803) 2019-03-25 09:15:46 +03:00
Makefile.leveldb.include Merge #8826: Do not include env_win.cc on non-Windows systems 2018-01-12 09:56:53 +01:00
Makefile.qt.include Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
Makefile.qttest.include Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
Makefile.test.include Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
masternode-meta.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
masternode-meta.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
masternode-payments.cpp Fix a crash in masternode winners when count is too large (#2902) 2019-05-06 17:58:59 +03:00
masternode-payments.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
masternode-sync.cpp Update misspelled Synchronizing in GetSyncStatus (#2680) 2019-02-04 12:52:49 +03:00
masternode-sync.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
masternode-utils.cpp Stop tracking interested/participating nodes and send/announce to MNAUTH peers (#2798) 2019-03-22 17:21:34 +03:00
masternode-utils.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
memusage.h Merge #8675: Make copyright header lines uniform 2018-01-13 13:44:39 +01:00
merkleblock.cpp Do not skip pushing of vMatch and vHashes in CMerkleBlock (#2826) 2019-04-04 08:11:04 +02:00
merkleblock.h Merge #10258: Fixed typo in documentation for merkleblock.h 2018-01-26 12:59:29 +01:00
messagesigner.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
messagesigner.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
miner.cpp Harden DIP3 activation (#2881) 2019-04-25 18:39:04 +03:00
miner.h Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768) 2019-03-14 17:44:42 +03:00
net_processing.cpp Remove code for QDEBUGSTATUS propagation (#2891) 2019-05-02 02:20:06 +03:00
net_processing.h Implement IsBanned to allow checking for banned nodes outside of net_processing.cpp 2019-01-17 18:51:48 +01:00
net.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
net.h Don't wake up select if it was already woken up (#2863) 2019-04-12 13:58:42 +03:00
netaddress.cpp Merge #8466: [Trivial] Do not shadow variables in networking code 2018-01-09 14:16:38 +01:00
netaddress.h Merge #9510: [trivial] Fix typos in comments 2018-01-21 12:48:34 +01:00
netbase.cpp Backports 0.15 pr1 (#2590) 2019-01-03 12:18:47 +03:00
netbase.h Merge #8466: [Trivial] Do not shadow variables in networking code 2018-01-09 14:16:38 +01:00
netfulfilledman.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
netfulfilledman.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
netmessagemaker.h Optimize DKG debug message processing for performance and lower bandwidth (#2672) 2019-02-01 10:49:01 +03:00
noui.cpp
noui.h
pow.cpp Merge #8665: Assert all the things! 2019-02-26 16:41:11 -06:00
pow.h
prevector.h Merge #9505: Prevector Quick Destruct 2019-02-26 16:41:13 -06:00
privatesend-client.cpp Fix PrivateSend log (#2892) 2019-05-02 02:20:36 +03:00
privatesend-client.h Be more accurate with denom creation/consumption (#2853) 2019-04-30 16:19:23 +03:00
privatesend-server.cpp Accept non-spent LLMQ IS locked outpoints from mempool in PS mixing (#2878) 2019-04-29 11:32:08 +03:00
privatesend-server.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
privatesend-util.cpp bump PS copyright (#2417) 2018-11-05 12:29:33 +03:00
privatesend-util.h bump PS copyright (#2417) 2018-11-05 12:29:33 +03:00
privatesend.cpp Accept non-spent LLMQ IS locked outpoints from mempool in PS mixing (#2878) 2019-04-29 11:32:08 +03:00
privatesend.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
protocol.cpp Remove code for QDEBUGSTATUS propagation (#2891) 2019-05-02 02:20:06 +03:00
protocol.h Remove code for QDEBUGSTATUS propagation (#2891) 2019-05-02 02:20:06 +03:00
pubkey.cpp Merge #8655: Do not shadow variables (trivials) 2018-01-11 13:22:22 +01:00
pubkey.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
random.cpp Merge #9821: util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD 2019-01-22 22:57:09 -06:00
random.h Merge #9821: util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD 2019-01-22 22:57:09 -06:00
rest.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
reverselock.h Merge #8655: Do not shadow variables (trivials) 2018-01-11 13:22:22 +01:00
saltedhasher.cpp Implement std::unordered_map/set compatible hasher classes for salted hashes 2019-02-27 14:40:52 +01:00
saltedhasher.h Implement std::unordered_map/set compatible hasher classes for salted hashes 2019-02-27 14:40:52 +01:00
scheduler.cpp Merge #9605: Use CScheduler for wallet flushing, remove ThreadFlushWalletDB 2019-02-04 19:58:19 -06:00
scheduler.h Merge #9605: Use CScheduler for wallet flushing, remove ThreadFlushWalletDB 2019-02-04 19:58:19 -06:00
sendalert.cpp Merge #9243: Clean up mapArgs and mapMultiArgs Usage 2018-01-18 07:31:23 +01:00
serialize.h Collection of minor performance optimizations (#2855) 2019-04-11 15:42:14 +03:00
spentindex.h Remove nType and nVersion from Dash related serialization code 2018-01-15 06:14:15 +01:00
spork.cpp Remove code for QDEBUGSTATUS propagation (#2891) 2019-05-02 02:20:06 +03:00
spork.h Remove code for QDEBUGSTATUS propagation (#2891) 2019-05-02 02:20:06 +03:00
stacktraces.cpp Fix stacktraces compilation issues (#2721) 2019-02-26 07:01:56 +01:00
stacktraces.h Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
streams.h Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
sync.cpp Add ability to assert a lock is not held in DEBUG_LOCKORDER 2019-03-12 10:43:47 +01:00
sync.h Add ability to assert a lock is not held in DEBUG_LOCKORDER 2019-03-12 10:43:47 +01:00
threadinterrupt.cpp
threadinterrupt.h
threadsafety.h
timedata.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
timedata.h Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
tinyformat.h Don't use short version of 'tinyformat/fmt' namespace in util.h (#1975) 2018-03-08 15:18:51 +03:00
torcontrol.cpp Merge #9510: [trivial] Fix typos in comments 2018-01-21 12:48:34 +01:00
torcontrol.h
txdb.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
txdb.h Use override keyword for overriden class member functions (#1644) 2018-02-15 10:29:15 +03:00
txmempool.cpp Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768) 2019-03-14 17:44:42 +03:00
txmempool.h Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768) 2019-03-14 17:44:42 +03:00
ui_interface.cpp Merge #8486: [wallet] Add high transaction fee warnings 2018-01-11 13:22:22 +01:00
ui_interface.h Add NotifyMasternodeListChanged signal to CClientUIInterface (#2880) 2019-04-25 18:38:49 +03:00
uint256.cpp Merge #9867: Replace remaining sprintf with snprintf 2019-01-22 22:55:48 -06:00
uint256.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
undo.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
unordered_lru_cache.h Replace BITCOIN_UNORDERED_LRU_CACHE_H with DASH_UNORDERED_LRU_CACHE_H 2019-03-11 15:18:25 +01:00
util.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
util.h Collection of minor performance optimizations (#2855) 2019-04-11 15:42:14 +03:00
utilmoneystr.cpp Merge #9643: [refactor] Remove using namespace <xxx> from wallet/ & util* 2018-02-21 22:32:13 +03:00
utilmoneystr.h
utilstrencodings.cpp Merge #8775: RPC refactoring: Access wallet using new GetWalletForJSONRPCRequest 2019-01-24 22:28:13 -06:00
utilstrencodings.h Merge #8775: RPC refactoring: Access wallet using new GetWalletForJSONRPCRequest 2019-01-24 22:28:13 -06:00
utiltime.cpp A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
utiltime.h A bunch of mostly trivial tweaks/fixes (#2889) 2019-04-30 15:48:21 +03:00
validation.cpp Properly handle conflicts between ChainLocks and InstantSend (#2904) 2019-05-07 15:14:33 +03:00
validation.h Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768) 2019-03-14 17:44:42 +03:00
validationinterface.cpp Pass oldList and diff instead of newList into NotifyMasternodeListChanged 2019-04-09 13:28:40 +02:00
validationinterface.h Pass oldList and diff instead of newList into NotifyMasternodeListChanged 2019-04-09 13:28:40 +02:00
version.h Introduce SENDDSQUEUE to indicate that a node is interested in DSQ messages (#2785) 2019-03-21 09:33:41 +01:00
versionbits.cpp Implement BIP9 style deployment for DIP8/ChainLocks and fix a bug with late headers (#2793) 2019-03-22 11:51:50 +01:00
versionbits.h Show BIP9 progress in getblockchaininfo (#2435) 2018-11-12 18:08:58 +03:00
warnings.cpp Drop BOOST_FOREACH and use references in loops (const ref where applicable, Dash code only) (#1899) 2018-02-06 14:09:33 +03:00
warnings.h Merge #9236: Fix races for strMiscWarning and fLargeWork*Found, make QT runawayException use GetWarnings 2018-01-18 07:31:22 +01:00