* 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
* Split keyIDMasternode into keyIDOwner/keyIDOperator/keyIDVoting
keyIDOwner is the key used for things which should stay in control of the
collateral owner, like proposal voting.
keyIDOperator is the key used for operational things, like signing network
messages, signing trigger/watchdog objects and trigger votes.
keyIDVoting is the key used for proposal voting
Legacy masternodes will always have the same key for all 3 to keep
compatibility.
Using different keys is only allowed after spork15 activation.
* Forbid reusing collateral keys for operator/owner keys and vice versa
* Bump SERIALIZATION_VERSION_STRING in CMasternodeMan