Commit Graph

191 Commits

Author SHA1 Message Date
Evan Duffield
1af0fa5098 Only sync masternode assets after new block 2015-07-06 11:12:56 -07:00
Evan Duffield
4596e7f336 Vastly improved proposal management implementation
-Syncing now happens in stages. Masternodes and Sporks, then Masternode winners, then proposals. Some of these require the masternode signatures, otherwise there are race conditions within the syncing process itself.
-Resigning - When a proposal is sent to the network initially it's signed by a masternode, if that masternode goes inactive the proposal becomes invalid. Resigning allows other masternodes to update proposal keep it valid with the coming and going of masternodes.
-Resigning compatibility - non masternodes will scan and flag proposals as invalid to accept updated owners.
-Invalid votes are now actively removed from the proposals when they go inactive
- Remove budgets with negative votes of more than 10% of network
- Only allow proposals into budget that have more than 10% of network support
- Faster removal of inactive masternodes
2015-07-06 10:46:58 -07:00
Evan Duffield
28052240a5 Improvements for syncing budget votes
- New orphan object and reprocessing logic
- Added some logic for asking peers for missing proposals and finalized budgets
2015-07-02 09:41:33 -07:00
Evan Duffield
a89b0e705f Fixed syncing code for stuck clients 2015-07-01 16:46:03 -07:00
Evan Duffield
94493bee63 fixed compile issues 2015-06-24 12:42:01 -07:00
evan82
e323df71c6 Merge pull request #383 from UdjinM6/v0.12.0.x_small_ds_code_cleanups
V0.12.0.x small ds code cleanups
2015-06-24 11:16:41 -07:00
UdjinM6
b30f8b5fcb remove unused variable 2015-06-24 19:33:53 +03:00
UdjinM6
a4bb283367 slight optimizations/readability improvements for ds 2015-06-24 19:30:05 +03:00
UdjinM6
451a98732e remove unneeded "darkSendPool." in DS pool class functions 2015-06-24 19:25:43 +03:00
UdjinM6
60622b887d add missing MSG_ENTRIES_ADDED for proper ds status display 2015-06-24 19:23:22 +03:00
UdjinM6
0bfaefde92 move ds pool status out of overview page 2015-06-24 19:08:14 +03:00
UdjinM6
08a6803165 fixing all kind of typos etc 2015-06-23 23:44:20 +03:00
UdjinM6
3e95f3b98c accept(verify) DS mixing txes ignoring fees 2015-06-23 07:12:24 +03:00
UdjinM6
02230c4263 deal with reservekeys in CreateDenominated and MakeCollaterals more accurate (+todo) 2015-06-22 20:59:27 +03:00
UdjinM6
58c0f150a4 fix dsc 2015-06-19 04:42:25 +03:00
evan82
34e808bfbd Merge pull request #348 from UdjinM6/v0.12.0.x_fix_unlock_null_collateral
V0.12.0.x fix unlock/setnull/collateraltx
2015-06-04 07:10:49 -07:00
UdjinM6
543256c3e8 - fix issues with locking coins and not unlocking them properly (mostly on failures)
- more SetNull calls on failures
- move collateral tx reset out of SetNull and redo verification/renewal on doAuto in one single place (should prevent fast keypool exhausting on failures)
- move lastNewBlock from SetNull to Reset
2015-05-30 07:44:56 +03:00
UdjinM6
4292d4d87d - Randomize denoms calculated ot of vecAmounts. Should help to find partners faster/more often and maybe slightly improve anonymity also.
- sessionTotal doesn't makes sense anymore, get rid of it.
- GetDenominationsByAmount cleaned but it is not used anywhere else so maybe it should be removed too (placed a comment there but didn't remove it yet).
2015-05-30 05:59:31 +03:00
Evan Duffield
40149c4e41 Budgeting Software / Reference Node Removal
- Added commands for using budgets "mnbudget" and "mnfinalbudget"
- Supports 100% decentralized budget control and view-only site with json meta data object
2015-05-14 18:01:15 -07:00
Evan Duffield
160eec6e30 merged 2015-05-04 02:36:23 -07:00
UdjinM6
6e229e16ff DS fixes:
- 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
2015-05-02 19:18:20 +03:00
Evan Duffield
969826c249 Reference Node / Stubbed Out Budget System
- 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
2015-04-30 07:55:37 -07:00
UdjinM6
8e05e9eb10 Fix translations:
- 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
2015-04-16 05:35:12 +03:00
UdjinM6
62bbc1176e fix merge 2015-04-10 20:08:01 +03:00
UdjinM6
3cfd9538d5 Merge branch 'master' into merge_btc010 2015-04-10 19:32:57 +03:00
Evan Duffield
0b225546f7 check collateral before submitting 2015-04-07 09:41:31 -07:00
UdjinM6
41f592aec7 Explicitly convert mutable txes to immutable before calling AcceptableInputs 2015-04-07 05:59:56 +03:00
UdjinM6
649434dd2e Fix SelectCoinsByDenominations relative things:
- 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...)
2015-04-07 05:52:49 +03:00
Evan Duffield
7e72c2bccf added nDenom check for dsa 2015-04-06 16:07:25 -07:00
Evan Duffield
d928a53234 DS Working pretty well 2015-04-06 13:00:46 -07:00
Evan Duffield
f0192b1bb3 Reverting some DS changes
- Some changes caused instability of DS, this should fix that.
2015-04-06 08:14:26 -07:00
UdjinM6
64eebc3316 0.12 dirty merge'n'fix (bitcoin 0.10) 2015-04-04 19:24:37 +03:00
Evan Duffield
4152eea1c1 fixed ranking issues for PoSe 2015-03-23 05:59:22 -07:00
Evan Duffield
9bafb70a2f changed some locks 2015-03-21 20:27:13 -07:00
UdjinM6
bff51d4fcc disable relay 2015-03-21 20:27:13 -07:00
Evan Duffield
c5da226a09 changed some locks 2015-03-21 20:10:34 -07:00
Evan Duffield
e4b6f85e69 remove locks 2015-03-21 06:31:34 -07:00
Evan Duffield
79e50f81e3 Disabled masternode blinding / increased rounds defaults 2015-03-20 08:47:19 -07:00
Evan Duffield
76aaea1ae8 Translation updates
Darkcoins -> Dash
dashcurrency.com -> dashpay.io
Updated seeds
2015-03-20 07:45:30 -07:00
Evan Duffield
5cb26c5928 Changed darkcoin references to dash
- Changed out logos (just a placeholder)
- DRK -> DASH
- ./darkcoin -> ./dash
2015-03-19 12:03:14 -07:00
Evan Duffield
8f39610ee4 Merge branch 'v0.11.2.x' of https://github.com/darkcoinproject/darkcoin into v11.2-dash 2015-03-18 12:50:02 -07:00
Evan Duffield
a1ac7ca8d3 Fixed blinding submission process 2015-03-18 09:47:01 -07:00
Evan Duffield
35bb210c6b Dash rebranding 2015-03-17 16:06:58 -07:00
Evan Duffield
819724ad1d merged proof-of-service 2015-03-16 09:40:39 -07:00
Evan Duffield
e5267319ef Complete implementation of Proof-of-Service
- 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.
2015-03-16 09:32:18 -07:00
evan82
feabff60a8 Merge pull request #242 from UdjinM6/v0.11.2.x_verify_dsq_vin
V0.11.2.x verify dsq vin
2015-03-16 07:25:04 -07:00
UdjinM6
43712ff4de Verify that dsq.vin is actually in our masternode list (otherwise we might hit NULL and think that we use queue at the same time while we are not) 2015-03-13 19:00:44 +03:00
UdjinM6
53c3a5e24c Cleanup few debug msgs, reduce log spam / few readability fixes 2015-03-13 18:53:12 +03:00
Evan Duffield
441103ea71 update relay rules - protocol/version bump 2015-03-08 07:49:04 -07:00
Evan Duffield
c169e49fce Added input/output/sig trickle
- 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
2015-03-07 07:50:14 -07:00
UdjinM6
b5414e1c3c save nDsqCount in mncache.dat 2015-03-06 20:59:19 +03:00
evan82
9f124d56b6 Merge pull request #231 from mkinney/v11.2-comments
V0.11.2.x comments
2015-03-06 07:04:44 -07:00
Mike Kinney
757128bfe0 v0.11.2.x Updating comments 2015-03-05 23:24:34 -08:00
UdjinM6
2e0d7ab0b6 fix even more console spam 2015-03-05 19:40:17 +03:00
Evan Duffield
f63e1ddfd0 Merge branch 'v-1.11.2.x' of https://github.com/darkcoinproject/darkcoin into v0.11.2.x 2015-03-05 08:23:43 -07:00
Evan Duffield
9aca26d220 merged mkinney-v0.11.2 2015-03-05 08:18:45 -07:00
evan82
2773bb1f78 Merge pull request #223 from UdjinM6/v0.11.2.x_fix_console_spam
v0.11.2.x fix console spam
2015-03-05 08:14:45 -07:00
Evan Duffield
c6f0259d9b fixed shared key usage 2015-03-05 08:08:03 -07:00
Mike Kinney
98fe439af4 V0.11.2.x update comments 2015-03-05 00:10:15 -08:00
Mike Kinney
b0079d37ad V0.11.2.x update comments 2015-03-04 23:49:50 -08:00
UdjinM6
0595ef80c3 fix console spam 2015-03-04 22:59:51 +03:00
Evan Duffield
119007dd48 fix compiling for windows 2015-03-04 11:17:30 -07:00
Evan Duffield
a6b58ab1e8 Merged masternode blinding 2015-03-04 08:58:36 -07:00
UdjinM6
0747da6b36 Fix versions:
- 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
2015-02-26 20:29:57 +03:00
evan82
ff297c25e3 Merge pull request #203 from UdjinM6/v0.11.2.x_fix_processmessages
V0.11.2.x Few fixes for processing extra messages:
2015-02-26 08:31:45 -07:00
UdjinM6
1ded1b9ec2 Few fixes for processing extra messages:
- call ProcessMessageMasternodePayments on ProcessBlock (lost after moving mnodeman functionality)
- do not process extra functionality messages (DS, IX, spork) on initial download / reindex
2015-02-26 17:40:43 +03:00
UdjinM6
56471f8330 fix DoAutomaticDenominating:
- 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)
2015-02-26 04:55:27 +03:00
UdjinM6
2e05bf212e Change the way changes are handled:
- 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)
2015-02-26 02:21:28 +03:00
UdjinM6
0d51e1c90d better naming/readability (Find) 2015-02-25 14:54:03 +03:00
UdjinM6
003a1b7d72 track lastTimeChanged for mnodeman and ask for update only if UpdateNeeded 2015-02-24 13:39:29 +03:00
UdjinM6
9b13c63c45 trivial fix 2015-02-24 02:45:37 +03:00
UdjinM6
14e122cbfa CMasternodeMan - masternode manager class - part2 - fix ProcessMasternodeConnections/ThreadCheckDarkSendPool (still broken) 2015-02-23 23:07:37 +03:00
UdjinM6
adddff85a2 CMasternodeMan - masternode manager class - part1(broken) 2015-02-23 23:01:21 +03:00
evan82
3bb9ef96f4 Revert "Revert "Rebrand to darkcoin"" 2015-02-19 11:58:38 -07:00
evan82
516f590c65 Revert "Rebrand to darkcoin" 2015-02-19 11:28:40 -07:00
evan82
de3c18cde8 Merge pull request #189 from UdjinM6/v0.11.2.x_clear_out_ds_fee
clear out DS fee / collateral clean up
2015-02-18 12:14:05 -07:00
evan82
52f7828785 Merge pull request #188 from UdjinM6/v0.11.2.x_typo
(v0.11.2.x) typo: succesful->successful
2015-02-18 12:10:55 -07:00
evan82
5c38c69f0c Merge pull request #187 from vertoe/devel-0.9-strings
Rebrand to darkcoin
2015-02-18 12:10:45 -07:00
UdjinM6
55faae269c clear out DS fee 2015-02-18 15:31:40 +03:00
Evan Duffield
ecd37e134e Change darksend fee to 0.01DRK and charge in 1 in 10 sessions 2015-02-17 07:04:42 -07:00
UdjinM6
f87ccb1588 typo: succesful->successful 2015-02-17 13:27:47 +03:00
vertoe
a179777a0a Rename darkcoin config header. 2015-02-16 23:19:42 +01:00
UdjinM6
9823b9ebad Solve performance problems by caching and fix probable security issue
- add number of rounds to outputs
- cache rounds calculation results of GetInputDarksendRounds
- select shortest rounds chain instead of the first found
2015-02-12 17:41:02 +03:00
Evan Duffield
f510cc309b use block hash caching 2015-02-09 13:21:12 -07:00
Evan Duffield
257078d2a4 Full Spork Implementation
Many sporks are supported at once, with efficient broadcasting
via inventory messages.
2015-02-09 12:49:00 -07:00
vertoe
825a430c7a merge downstream 0.11.1 2015-02-08 22:26:11 +01:00
UdjinM6
fdbeedfa96 fix MakeCollateralAmounts - cleaned more unneeded calculations 2015-02-07 05:26:59 +03:00
UdjinM6
fd7992dc61 fix MakeCollateralAmounts stuck sometimes and wouldn't let denominating further 2015-02-07 05:18:37 +03:00
vertoe
8fc3f84ad8 merge downstream 0.11.1 2015-02-06 00:39:58 +01:00
Evan Duffield
412f54fe8a added improvements to hashing algorithm / block hash caching 2015-02-05 15:56:59 -07:00
vertoe
78d47c04fe merge downstream 0.11.1 2015-02-05 16:13:05 +01:00
vertoe
7e8d8c9681 Fix typo in darksend. 2015-02-04 20:55:14 +01:00
Evan Duffield
6faa140c49 reference node fix 2015-02-04 08:57:09 -07:00
vertoe
86ca90d9b3 Translate darksend messages. 2015-02-04 14:24:56 +01:00
Evan Duffield
e2898a2f86 small fix for assert failure 2015-02-02 13:11:49 -07:00
Evan Duffield
6b0c7f3c4f add a couple sanity checks to GetLastValidBlockHash 2015-02-02 12:27:07 -07:00
evan82
9f33c1e5f9 Merge pull request #144 from UdjinM6/fix_doauto_on_initial_download
prevent running DoAutomaticDenominating while IsInitialBlockDownload
2015-01-30 12:57:54 -07:00
UdjinM6
1ecbfd09d7 prevent running DoAutomaticDenominating while IsInitialBlockDownload 2015-01-30 01:19:41 +03:00
UdjinM6
84b0e6f587 use IsDenominatedAmount instead of loops and GetInputDarksendRounds where applicable 2015-01-29 13:36:18 +03:00
evan82
1598d8e7a6 Merge pull request #134 from UdjinM6/fix_creating_denominated
fixing pre-mix process of creation denominated amounts
2015-01-27 10:57:35 -07:00