dash/src
PastaPastaPasta 5b68ff97b5 fix: avoid re-propogating old qfcommit messages (#5145)
<!--
*** Please remove the following help text before submitting: ***

Provide a general summary of your changes in the Title above

Pull requests without a rationale and clear improvement may be closed
immediately.

Please provide clear motivation for your patch and explain how it
improves
Dash Core user experience or Dash Core developer experience
significantly:

* Any test improvements or new tests that improve coverage are always
welcome.
* All other changes should have accompanying unit tests (see
`src/test/`) or
functional tests (see `test/`). Contributors should note which tests
cover
modified code. If no tests exist for a region of modified code, new
tests
  should accompany the change.
* Bug fixes are most welcome when they come with steps to reproduce or
an
explanation of the potential issue as well as reasoning for the way the
bug
  was fixed.
* Features are welcome, but might be rejected due to design or scope
issues.
If a feature is based on a lot of dependencies, contributors should
first
  consider building the system outside of Dash Core, if possible.
-->

## Issue being fixed or feature implemented
<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here. -->
This fixes an issue where qfcommit messages can be replayed from the
past, then are validated and propagated to other nodes. This patch
changes it so that old qfcommits are not relayed.

## What was done?
<!--- Describe your changes in detail -->

## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran
to -->
<!--- see how your change affects other areas of the code, etc. -->
Deployed to a node, and ensured that the log messages are shown.

## Breaking Changes
<!--- Please describe any breaking changes your code introduces -->

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation

**For repository code-owners and collaborators only**
- [ ] I have assigned this pull request to a milestone
2023-01-07 21:35:11 -06:00
..
bench trivial: revert dashification of source and header filenames 2022-08-09 14:16:29 +05:30
bls refactor/chore: update cppcheck to 2.8 with needed refactoring (#4926) 2022-08-11 02:05:44 +03:00
coinjoin refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
compat revert dash#1432: Rename consensus source library and API 2022-08-09 14:16:28 +05:30
config
consensus merge bitcoin#15141: Rewrite DoS interface between validation and net_processing 2022-06-21 19:11:26 +05:30
crc32c Merge bitcoin/bitcoin#23133: Update crc32c subtree 2022-03-13 14:52:24 -05:00
crypto partial revert dash#2911: s/dash-config/bitcoin-config/g 2022-08-09 14:16:28 +05:30
evo refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
governance refactor: migrate globals to managed pointers in preparation for deglobalization (#4930) 2022-08-26 16:52:53 -05:00
index Merge #13558: Drop unused GetType() from CSizeComputer 2022-05-30 01:11:03 -04:00
interfaces Merge pull request #4971 from knst/bc-bp-cwallet-3 2022-08-28 18:26:35 -04:00
leveldb Merge bitcoin/bitcoin#25739: Update leveldb subtree (#5005) 2022-09-23 18:43:39 +04:00
llmq fix: avoid re-propogating old qfcommit messages (#5145) 2023-01-07 21:35:11 -06:00
logging
masternode refactor: migrate globals to managed pointers in preparation for deglobalization (#4930) 2022-08-26 16:52:53 -05:00
node Merge #17382: rpc: Remove unused boost::this_thread::interruption_point 2022-08-24 14:29:45 -04:00
policy Merge #13558: Drop unused GetType() from CSizeComputer 2022-05-30 01:11:03 -04:00
primitives fix(build): Fix incorrect type conversion (#5037) 2022-10-17 11:31:27 -05:00
qt fix(gui): Fix crashes when trying to run dash-qt with --disablewallet (#5041) 2022-10-17 11:31:27 -05:00
rpc refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
script Merge #18612: script: Remove undocumented and unused operator+ 2022-09-16 19:22:13 +05:30
secp256k1
support partial revert dash#2911: s/dash-config/bitcoin-config/g 2022-08-09 14:16:28 +05:30
test refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
univalue merge bitcoin#22646: tighter Univalue integration, remove --with-system-univalue (#4823) 2022-05-02 10:31:46 -05:00
util Merge bitcoin/bitcoin#24298: fuzz: Avoid unsigned integer overflow in FormatParagraph 2022-09-03 10:43:16 -05:00
wallet Merge pull request #4975 from vijaydasmp/bp2101 2022-09-21 18:35:26 +04:00
zmq refactor(rpc): Mechanical/Manual RPC backports (#4734) 2022-05-12 15:29:17 -05:00
.clang-format Merge #17134: doc: Add switch on enum example to developer notes 2022-04-02 09:19:20 +05:30
addrdb.cpp
addrdb.h merge bitcoin#19219: Replace automatic bans with discouragement filter 2022-06-21 19:11:49 +05:30
addressindex.h
addrman.cpp merge bitcoin#18512: Improve asmap checks and add sanity check 2022-03-25 00:58:20 +05:30
addrman.h Merge bitcoin/bitcoin#22455: addrman: detect on-disk corrupted nNew and nTried during unserialization 2022-03-07 09:42:58 -06:00
amount.h
arith_uint256.cpp Merge #16129: refactor: Remove unused includes (#4623) 2022-01-03 13:10:02 -06:00
arith_uint256.h
attributes.h
banman.cpp merge bitcoin#19219: Replace automatic bans with discouragement filter 2022-06-21 19:11:49 +05:30
banman.h merge bitcoin#19219: Replace automatic bans with discouragement filter 2022-06-21 19:11:49 +05:30
base58.cpp Merge #17511: Add bounds checks before base58 decoding 2022-06-08 12:33:00 +07:00
base58.h Merge #17511: Add bounds checks before base58 decoding 2022-06-08 12:33:00 +07:00
batchedlogger.cpp chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
batchedlogger.h chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
bech32.cpp
bech32.h
bip39_english.h
bip39.cpp Implement PKCS5_PBKDF2_HMAC_SHA512 (#4665) 2022-01-24 17:21:38 +03:00
bip39.h
bitcoin-cli.cpp trivial: revert dashification of source and header filenames 2022-08-09 14:16:29 +05:30
bitcoin-tx.cpp trivial: revert dashification of source and header filenames 2022-08-09 14:16:29 +05:30
bitcoin-wallet.cpp trivial: revert dashification of source and header filenames 2022-08-09 14:16:29 +05:30
bitcoind.cpp trivial: revert dashification of source and header filenames 2022-08-09 14:16:29 +05:30
blockencodings.cpp merge bitcoin#15141: Rewrite DoS interface between validation and net_processing 2022-06-21 19:11:26 +05:30
blockencodings.h
blockfilter.cpp merge bitcoin#18190: Add fuzzing harness for Golomb-Rice coding (GolombRiceEncode/GolombRiceDecode) 2022-07-15 21:24:21 +05:30
blockfilter.h
bloom.cpp refactor(llmq): substitute memberless class llmq::CLLMQUtils with namespace llmq::utils (#4931) 2022-08-02 12:14:25 -05:00
bloom.h
cachemap.h chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
cachemultimap.h chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
chain.cpp
chain.h
chainparams.cpp chore: bump nMinimumChainWork and defaultAssumeValid for mainnet and testnet 2022-10-17 10:30:35 +03:00
chainparams.h Merge #17285: doc: Bip70 removal follow-up 2022-04-27 21:08:36 +03:00
chainparamsbase.cpp merge bitcoin#19561: Pass ArgsManager into functions that register args 2022-06-07 09:21:29 +05:30
chainparamsbase.h merge bitcoin#19561: Pass ArgsManager into functions that register args 2022-06-07 09:21:29 +05:30
chainparamsseeds.h Update hard coded seeds for v18.0.0-rc12 (#4953) 2022-08-11 01:57:13 +03:00
checkqueue.h Merge bitcoin/bitcoin#23397: Avoid excessive lock contention in CCheckQueue::Add 2022-04-11 09:41:11 -07:00
clientversion.cpp Merge bitcoin/bitcoin#22685: clientversion: No suffix #if CLIENT_VERSION_IS_RELEASE 2022-05-11 11:03:39 -05:00
clientversion.h partial revert dash#2911: s/dash-config/bitcoin-config/g 2022-08-09 14:16:28 +05:30
coins.cpp Merge #13558: Drop unused GetType() from CSizeComputer 2022-05-30 01:11:03 -04:00
coins.h merge bitcoin#18637: allow cache resize after init 2022-05-23 10:39:43 +05:30
compat.h partial revert dash#2911: s/dash-config/bitcoin-config/g 2022-08-09 14:16:28 +05:30
compressor.cpp
compressor.h Merge #17917: tests: Add amount compression/decompression fuzzing to existing fuzzing harness 2022-03-07 09:40:31 -06:00
core_io.h
core_memusage.h
core_read.cpp
core_write.cpp Merge #13558: Drop unused GetType() from CSizeComputer 2022-05-30 01:11:03 -04:00
ctpl_stl.h refactor/chore: update cppcheck to 2.8 with needed refactoring (#4926) 2022-08-11 02:05:44 +03:00
cuckoocache.h Merge #17634: qt: Fix comparison function signature 2022-06-16 01:34:38 -04:00
cxxtimer.hpp
dash-cli-res.rc Merge #20223: build: Drop the leading 0 from the version number 2022-04-28 13:47:53 +03:00
dash-tx-res.rc Merge #20223: build: Drop the leading 0 from the version number 2022-04-28 13:47:53 +03:00
dash-wallet-res.rc Merge #20223: build: Drop the leading 0 from the version number 2022-04-28 13:47:53 +03:00
dashd-res.rc Merge #20223: build: Drop the leading 0 from the version number 2022-04-28 13:47:53 +03:00
dbwrapper.cpp
dbwrapper.h Merge #13558: Drop unused GetType() from CSizeComputer 2022-05-30 01:11:03 -04:00
dsnotificationinterface.cpp refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
dsnotificationinterface.h refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
dummywallet.cpp merge #19099: refactor: Move wallet methods out of chain.h and node.h 2022-06-21 19:08:57 +05:30
flat-database.h chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
flatfile.cpp
flatfile.h
fs.cpp Merge pull request #4735 from kittywhiskers/translation 2022-04-07 13:18:29 +03:00
fs.h
hash.cpp merge bitcoin#19601: Refactoring CHashWriter & Get{Prevouts,Sequence,Outputs}Hash to SHA256 2022-04-27 19:58:39 +05:30
hash.h chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
hdchain.cpp fix: Pass KeyOriginInfo instead of CKeyMetadata to DeriveChildExtKey (#4918) 2022-07-18 16:56:33 +03:00
hdchain.h refactor/chore: update cppcheck to 2.8 with needed refactoring (#4926) 2022-08-11 02:05:44 +03:00
httprpc.cpp Merge #19006: rpc: Avoid crash when g_thread_http was never started 2022-09-16 19:22:12 +05:30
httprpc.h merge bitcoin#18740: Remove g_rpc_node global 2022-05-18 20:50:50 +05:30
httpserver.cpp Merge #19006: rpc: Avoid crash when g_thread_http was never started 2022-09-16 19:22:12 +05:30
httpserver.h merge bitcoin#18363: Add fuzzing harness for HTTPRequest, libevent's evhttp and related functions 2022-07-15 21:24:21 +05:30
indirectmap.h merge bitcoin#17996: Add fuzzing harness for serialization/deserialization of floating-points and integrals 2022-03-25 00:58:20 +05:30
init.cpp fix: Flush chainstate (and evodb) cache whenever evodb mem usage is getting too high (#5007) 2022-09-23 18:46:18 +04:00
init.h merge #19099: refactor: Move wallet methods out of chain.h and node.h 2022-06-21 19:08:57 +05:30
key_io.cpp Merge #17511: Add bounds checks before base58 decoding 2022-06-08 12:33:00 +07:00
key_io.h
key.cpp merge bitcoin#19379: Add fuzzing harness for SigHasLowR(...) and ecdsa_signature_parse_der_lax(...) 2022-08-21 18:09:28 +05:30
key.h Merge bitcoin/bitcoin#22995: doc: Remove stale comment for CPrivKey 2022-03-13 14:52:24 -05:00
limitedmap.h
logging.cpp merge bitcoin#16540: Add ASSERT_DEBUG_LOG to unit test framework 2022-02-26 10:37:36 +05:30
logging.h merge bitcoin#17279: Remove redundant c_str() calls in formatting 2022-04-06 13:51:39 +05:30
Makefile.am merge bitcoin#19558: split pthread flags out of ldflags and dont use when building libconsensus 2022-08-23 21:33:33 +05:30
Makefile.bench.include merge bitcoin#19558: split pthread flags out of ldflags and dont use when building libconsensus 2022-08-23 21:33:33 +05:30
Makefile.crc32c.include
Makefile.leveldb.include Merge bitcoin/bitcoin#23282: build: remove build stubs for external leveldb 2022-04-03 18:46:47 -05:00
Makefile.qt_locale.include
Makefile.qt.include merge bitcoin#19558: split pthread flags out of ldflags and dont use when building libconsensus 2022-08-23 21:33:33 +05:30
Makefile.qttest.include merge bitcoin#19558: split pthread flags out of ldflags and dont use when building libconsensus 2022-08-23 21:33:33 +05:30
Makefile.test_util.include merge bitcoin#18521: Add process_messages harness 2022-07-06 22:13:37 +05:30
Makefile.test.include refactor: create an enum for DKGError, instead of passing around potentially invalid strings (#4998) 2022-09-06 20:32:53 +03:00
Makefile.univalue.include merge bitcoin#22646: tighter Univalue integration, remove --with-system-univalue (#4823) 2022-05-02 10:31:46 -05:00
mapport.cpp partial revert dash#2911: s/dash-config/bitcoin-config/g 2022-08-09 14:16:28 +05:30
mapport.h merge bitcoin#18077: Add NAT-PMP port forwarding support 2022-02-26 17:49:13 +05:30
memusage.h merge bitcoin#17996: Add fuzzing harness for serialization/deserialization of floating-points and integrals 2022-03-25 00:58:20 +05:30
merkleblock.cpp Merge #16129: refactor: Remove unused includes (#4623) 2022-01-03 13:10:02 -06:00
merkleblock.h
messagesigner.cpp chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
messagesigner.h chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
miner.cpp refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
miner.h refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
net_permissions.cpp Merge bitcoin/bitcoin#21996: p2p: pass strings to NetPermissions::TryParse functions by const ref 2022-04-16 10:47:42 -06:00
net_permissions.h merge bitcoin#19219: Replace automatic bans with discouragement filter 2022-06-21 19:11:49 +05:30
net_processing.cpp refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
net_processing.h refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
net_types.h Merge #17297: refactor: Remove addrdb.h dependency from node.h 2022-03-07 09:36:17 -06:00
net.cpp Merge #21486: build: link against -lsocket if required for *ifaddrs 2022-09-03 10:43:15 -05:00
net.h feat(rpc): getnetworkinfo RPC enrichment response (#4913) 2022-07-14 16:13:47 -05:00
netaddress.cpp merge bitcoin#18512: Improve asmap checks and add sanity check 2022-03-25 00:58:20 +05:30
netaddress.h Merge #20033: refactor: minor whitespace fixups, s/const/constexpr/ and remove template (followup to #19845) 2022-09-16 19:22:13 +05:30
netbase.cpp Merge #14922: windows: Set _WIN32_WINNT to 0x0601 (Windows 7) 2022-03-04 23:38:33 -05:00
netbase.h partial revert dash#2911: s/dash-config/bitcoin-config/g 2022-08-09 14:16:28 +05:30
netfulfilledman.cpp chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
netfulfilledman.h chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
netmessagemaker.h
noui.cpp chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
noui.h Merge #16224: gui: Bilingual GUI error messages 2022-04-07 10:41:24 -05:00
optional.h merge bitcoin#20671: Replace boost::optional with std::optional 2022-07-03 00:14:47 +05:30
pow.cpp
pow.h
prevector.h Merge #17634: qt: Fix comparison function signature 2022-06-16 01:34:38 -04:00
protocol.cpp fix(net): Extend blocks-relay-only to also ignore some Dash-specific messages/invs (#4888) 2022-07-07 18:11:38 +03:00
protocol.h fix(net): Extend blocks-relay-only to also ignore some Dash-specific messages/invs (#4888) 2022-07-07 18:11:38 +03:00
psbt.cpp merge bitcoin#20671: Replace boost::optional with std::optional 2022-07-03 00:14:47 +05:30
psbt.h Bitcoin backport #16227 refactoring CWallet (#4903) 2022-07-12 22:46:31 -05:00
pubkey.cpp merge bitcoin#19379: Add fuzzing harness for SigHasLowR(...) and ecdsa_signature_parse_der_lax(...) 2022-08-21 18:09:28 +05:30
pubkey.h
random.cpp Merge #17699: Make env data logging optional 2022-05-30 19:09:39 +07:00
random.h merge bitcoin#18455: Add fuzzing harness for functions/classes in flatfile.h, merkleblock.h, random.h, serialize.h and span.h 2022-07-06 22:13:37 +05:30
randomenv.cpp Merge #21486: build: link against -lsocket if required for *ifaddrs 2022-09-03 10:43:15 -05:00
randomenv.h merge bitcoin#17270: Feed environment data into RNG initializers 2022-04-25 15:29:51 +05:30
rest.cpp merge bitcoin#19589: Avoid useless mempool query in gettxoutproof 2022-05-23 10:40:35 +05:30
reverse_iterator.h
saltedhasher.cpp chore: bump copyrights (#4873) 2022-06-08 02:36:46 +03:00
saltedhasher.h fix!: Fix on QuorumDataRequests and refactoring (#4937) 2022-07-26 15:31:03 -05:00
scheduler.cpp merge bitcoin#17270: Feed environment data into RNG initializers 2022-04-25 15:29:51 +05:30
scheduler.h merge bitcoin#18037: Allow scheduler to be mocked 2022-04-20 00:23:32 +05:30
serialize.h Merge #13558: Drop unused GetType() from CSizeComputer 2022-05-30 01:11:03 -04:00
shutdown.cpp
shutdown.h
span.h Merge #19367: doc: Span pitfalls 2022-04-03 18:09:07 -05:00
spentindex.h
spork.cpp refactor: migrate globals to managed pointers in preparation for deglobalization (#4930) 2022-08-26 16:52:53 -05:00
spork.h refactor: migrate globals to managed pointers in preparation for deglobalization (#4930) 2022-08-26 16:52:53 -05:00
stacktraces.cpp Merge pull request #4478 from kittywhiskers/undashify 2022-08-11 12:34:55 -04:00
stacktraces.h
statsd_client.cpp
statsd_client.h
streams.h Merge #19593: refactor: Drop unused CBufferedFile::Seek() 2022-09-03 10:43:14 -05:00
sync.cpp partial revert dash#2911: s/dash-config/bitcoin-config/g 2022-08-09 14:16:28 +05:30
sync.h Merge #16034: refactoring: Rename LockAnnotation to LockAssertion and add run-time check to it 2022-05-17 12:57:47 -04:00
threadinterrupt.cpp
threadinterrupt.h
threadsafety.h Merge #16034: refactoring: Rename LockAnnotation to LockAssertion and add run-time check to it 2022-05-17 12:57:47 -04:00
timedata.cpp partial revert dash#2911: s/dash-config/bitcoin-config/g 2022-08-09 14:16:28 +05:30
timedata.h
tinyformat.h
torcontrol.cpp
torcontrol.h
txdb.cpp merge bitcoin#18637: allow cache resize after init 2022-05-23 10:39:43 +05:30
txdb.h merge bitcoin#18637: allow cache resize after init 2022-05-23 10:39:43 +05:30
txmempool.cpp merge bitcoin#14193: Add missing mempool locks 2022-05-18 20:49:34 +05:30
txmempool.h merge bitcoin#14193: Add missing mempool locks 2022-05-18 20:49:34 +05:30
ui_interface.cpp merge bitcoin#16963: Fix unique_ptr usage in boost::signals2 2022-05-13 18:06:06 +05:30
ui_interface.h merge bitcoin#16963: Fix unique_ptr usage in boost::signals2 2022-05-13 18:06:06 +05:30
uint256.cpp merge bitcoin#20016: 1 is a constant 2022-07-02 23:47:42 +05:30
uint256.h merge bitcoin#20016: 1 is a constant 2022-07-02 23:47:42 +05:30
undo.h
unordered_lru_cache.h
validation.cpp fix: Flush chainstate (and evodb) cache whenever evodb mem usage is getting too high (#5007) 2022-09-23 18:46:18 +04:00
validation.h refactor: pass references to objects instead of using global definitions (#4988) 2022-09-22 15:14:48 +04:00
validationinterface.cpp merge bitcoin#18338: Fix wallet unload race condition 2022-06-03 18:25:34 +05:30
validationinterface.h merge bitcoin#18338: Fix wallet unload race condition 2022-06-03 18:25:34 +05:30
version.h Merge pull request #4874 from UdjinM6/addrv2_followups 2022-06-08 13:01:44 +03:00
versionbits.cpp
versionbits.h
versionbitsinfo.cpp feat: implement quorum rotation and updated LLMQ parameters (#4752) 2022-04-16 17:46:04 +03:00
versionbitsinfo.h
walletinitinterface.h merge bitcoin#19561: Pass ArgsManager into functions that register args 2022-06-07 09:21:29 +05:30
warnings.cpp Merge #17750: util: change GetWarnings parameter to bool 2022-06-14 16:48:15 +07:00
warnings.h Merge #17750: util: change GetWarnings parameter to bool 2022-06-14 16:48:15 +07:00