- Added commands for using budgets "mnbudget" and "mnfinalbudget"
- Supports 100% decentralized budget control and view-only site with json meta data object
- detect denominated but not yet anonymized balance properly or both (GetAnonymizableBalance)
- fix progress calculation by using GetAnonymizableBalance
- do not count MN-like inputs as anonymizable
- denominate faster: if there is enough new inputs after DS started (their sum is greater then "already denominated but not yet anonymized balance")
- allow small amounts to be used in CreateDenominated (modified SelectCoinsDark) but only if they are larger then 1 CENT
- do not use collateral inputs in CreateDenominated (modified SelectCoinsDark)
- convert some int64_t -> CAmount for money related variables/params
- Removed of reference node and replaced with decentralized quorums that pick the masternodes who get paid each block.
- Made a budgeting system, where masternodes can vote on individual budgets and the data is stored perminently on each clients computer
- mn replies
- MN should use codes for replies, translations are done on client side (client protocol / min pool peer protocol bump)
- use QString for translation instead of ostream, construct better human readable strings for translators
- progress
- use QString here too
- AvailableCoins inside SelectCoinsByDenominations should select denoms only now (also removing corresponding "if"s)
- use temporary vectors in doauto when call SelectCoinsByDenominations to prevent vCoins modification
- variables naming (set...->v...)
- Ensures ports remain open and client are responsive to IX requests.
- Completely 100% decentralized. This farms out the work of checking the masternode network to the masternode network. 1% of the network is determistically selected to check another 1% of the network each block. It takes six separate checks to deactivate a node, thus making it tamper proof.
- Nodes are kept in the masternode list if they fail enough PoSe checks to deactivate. They will continue to be checked until the operator fixes them. However they will not be paid while they're failing checks.
- Send a few inputs/output each cycle
- Mix other users inputs/outputs into relay each cycle
- Send signatures as a tickle, also mixed with other users signatures
- Fixed a bug with validating the final transaction
- bump PROTOCOL_VERSION (new collaterals are incompatible with 70066)
- define MIN_POOL_PEER_PROTO_VERSION instead of confusing darkSendPool.MIN_PEER_PROTO_VERSION / bump it too
- call ProcessMessageMasternodePayments on ProcessBlock (lost after moving mnodeman functionality)
- do not process extra functionality messages (DS, IX, spork) on initial download / reindex
- check for NULL (result of FindRandom, could happen if masternode list is empty)
- assign submittedToMasternode only when all checks are passed
- naming consistency (mn --> pmn)
- do not keep track of a single time variable for whole structure change
- save to masternode.dat and clear on checks:
- who's asked for the masternode list and the last time
- who we asked for the masternode list and the last time (will help to prevent dseg ban when restart wallet several times in short period of time)
- which masternodes we've asked for
- do not use timeout for CheckAndRemove (played with that - doesn't make sense actually)