While importing, IsInitialBlockDownload always returns true, meaning that
the call to UpdatedBlockTip will also receive true as fInitialDownload.
UpdatedBlockTip is never called again unless a block is mined.
Mining of new blocks in regtest however only starts after mnsync has
finished, which will never happen as it waits for the next call to
UpdatedBlockTip.
* Don't use GetTransaction in CheckProUpRegTx
GetTransaction locks mempool.cs internally. This brings messes up the locking
order of cs_main, mempool.cs and CCheckQueue::ControlMutex.
* Lock cs_main in TestChainSetup::CreateBlock when updating CbTx
* Implement IS Double spend notifications in zmq
* copy/paste error
* typo
* Send both conflicting and conflicts against as ZMQ notifications
* CTransaction based not hash based
* @UdjinM6 requested changes
* Implement temporary solution to allow voting with owner keys from your wallet
Will later be removed and properly reimplemented when cleaning up
legacy masternode code
* When MN keys from masternode.conf are used, only allow voting when they match with keyIDVoting
* Implement dip3 integration tests
This tests the full upgrade path from legacy MNs to deterministic MNs
* Invoke UpdatedBlockTip signal when invalidateblock RPC is called
Currently, UpdatedBlockTip would only be called if the invalidation resulted
in another chain becoming the longest one. This is inconsistent behavior
and was spotted when running dip3 integration tests.
* Lean towards "from high to low" branch but still mix via "from low to high" one someties
* Try to mix non-duplicate txids only
* Lean towards edges but still mix starting from the middle sometimes
If failed when started from the middle try mixing from the edges right away.
Note: liqudity providers always start from 0
* map -> set
* Refactor nRoundStart calculations
1. Enforce payment to masternodes in IsBlockPayeeValid even if superblocks
are triggered. This new rule only gets activated when spork15 activates.
2. Always enforce masternode payments when spork15 is activated and ignore
spork8 in that case. spork8 can be removed after spork15 activation
and hardening of the spork15 height into consensus params.
* Cleaned up brackets on if, while, for, BOOST_FOREACH. Some whitespace fixes
* gov, mn and mining cleanup
* Revert "Cleaned up brackets on if, while, for, BOOST_FOREACH. Some whitespace fixes"
This reverts commit 4a2a1b0645c5195025d0c7e6dad2e01a93efbfd6.
* Revert "gov, mn and mining cleanup"
This reverts commit 7cb91aabc67df0ab60db4ee84e3aaaf6cf6b7881.
* cleanup some dash specific
* "if(" -> "if (" "for(" -> "for (" + corrected some else blocks
* Split PS into Manager and Session
* Adjust log messages accordingly
* add -privatesendsessions cmd-line option
* address review comments
* bump MAX_OUTBOUND_MASTERNODE_CONNECTIONS to 30
+10 for parallel mixing
* protect vecSessions
* constructors
* Rewrite CMasternodeMan::ProcessMasternodeConnections() to use CPrivateSendClientManager::GetMixingMasternodesInfo().
This should solve potential deadlock cs_vecqueue vs cs_vNodes.
* Drop no longer used IsMixingMasternode()
* lock cs_wallet when mixing uses balance related functions