Commit Graph

13142 Commits

Author SHA1 Message Date
Tim Flynn
db3a4afddb Replaced LOCK with LOCK2 to prevent a deadlock (#1103) 2016-10-27 19:58:12 +04:00
UdjinM6
19569c1d66 Fix CActiveMasternode (#1102)
* add GetStateString and static CMasternode::StateToString helpers

* Fix CActiveMasternode:
- should run `ManageStateLocal` only when `eType == MASTERNODE_LOCAL`
- should set `nState = ACTIVE_MASTERNODE_NOT_CAPABLE` in `ManageStateInitial` to let `GetStatus` return proper message
- more/better log output
2016-10-27 01:21:39 +04:00
UdjinM6
77852d938e refactor and fix PS collateral creation (#1092) 2016-10-26 03:33:52 +04:00
UdjinM6
02b9f248a8 update masternode_conf.md (#1097) 2016-10-25 19:04:09 +04:00
Tim Flynn
e30f8bf6a0 Allow masternode broadcasts to update masternode information regardless of state (#1094)
* Allow MN broadcasts to update MN information regardless of state

* Add masternode public keys to log output for debugging

* Moved log message from start-alias to CMasternodeBroadcast::Create

* Fixed log message
2016-10-25 18:37:33 +04:00
Tim Flynn
0cc4997501 Lock coins in masternode.conf regardless of masternode state (#1096)
* Lock coins in masternode.conf regardless of masternode state of local node

* Prevent log masternode.conf messages when file is empty
2016-10-25 17:46:38 +04:00
UdjinM6
c0a830aa8e fix fCheckSigTimeOnly (renamed to fSimpleCheck) in CMasternodePing::CheckAndUpdate (#1093) 2016-10-25 17:46:21 +04:00
UdjinM6
01990272e5 fix dstx acceptance (#1091)
* fix dstx acceptance

* two more fixes:
- do not re-verify dstx once accepted
- fix dstx prioritization

* return early for dstx conditions, more log verbosity
2016-10-24 22:12:36 +04:00
Tim Flynn
4d95be602a Fix deadlock in masternode start commands (#1090) 2016-10-24 03:14:54 +04:00
UdjinM6
565fa31850 fix PS: (#1089)
* PS: should check for prevout to match inputs

* fix CDarkSendEntry constructor
2016-10-23 19:27:23 +04:00
UdjinM6
ed0a0d2393 fix1087 (#1088) 2016-10-23 01:01:30 +04:00
Tim Flynn
1b230f4ddc Deadlock fixes (#1087)
* Fix deadlocks by reducing scope of cs_main locks in rpcgovernance.cpp

* Remove unnecessary mutex lock in GetMasternodeVinAndKeys which can cause a deadlock
2016-10-22 20:52:36 +04:00
UdjinM6
2d55b70381 (log) tweaks and (general) cleanup (#1086)
* docs

* deprecated/unused/duplicate

* comments

* log cleanup/verbosity tuning

* names/ifs/whitespaces/std
2016-10-22 20:52:14 +04:00
UdjinM6
66c40e0687 always check for valid block hash in mnping (#1076) 2016-10-21 01:12:42 +04:00
UdjinM6
609aa7de2a Fix and refactor PS (#1084) 2016-10-21 01:11:57 +04:00
UdjinM6
342bda5fdc new PoSe - MNVERIFY (#1066) 2016-10-21 01:11:30 +04:00
Tim Flynn
cce7896d70 Allow last ping time to be updated for masternodes in the EXPIRED state (#1083) 2016-10-18 15:11:36 +04:00
CHAE-PIL LIM
9db6b97979 [ZMQ] append a message sequence number to every ZMQ notification (#1082)
* Zmq sequence (#1)

* Fixes ZMQ startup with bad arguments.

pr 7621

* [ZMQ] append a message sequence number to every ZMQ notification

- pr 7762
- contrib/zmq/zmq_sub.py to python 3 compatible

* typo in MSG_RAWTXLOCK

MMSG_RAWTXLOCK to MSG_RAWTXLOCK

* s/Bitcoind/dashd/
2016-10-18 00:09:21 +04:00
Nathan Marley
7a45c9308a bugfix: remove duplicate MN votes from getvotes (#1077) 2016-10-17 22:56:27 +04:00
Tim Flynn
94e38e3184 V0.12.1.x sentinel watchdog pr (#1079)
Squashed:

* Replaced unsafe mnodeman.Find function with Get in governance-vote.cpp

* Reject unparsable governance objects

* Implemented sentinel watchdog objects (separated out from locking changes)

* Added WATCHDOG support to rpcgovernance.cpp

* Implemented WATCHDOG_EXPIRED state for masternodes

* Added serialization of watchdog timestamps

* Masternode fixes
 - Added version check to CMasternodeMan deserialization
 - Added several missing locking calls in CMasternodeMan

* Fixed missing member initialization in CMasternode constructor and added more logging

* Added MASTERNODE_WATCHDOG_MAX_SECONDS to governanceinfo

* Added masternodewatchdogmaxseconds info to getgovernanceinfo help

* Make masternodes remain in WATCHDOG_EXPIRED state unless removed or collateral expires

* Allow watchdog object creation by WATCHDOG_EXPIRED MN

* Fixed MN validation logic for governance object creation

* Count total masternodes instead of enabled masternodes in masternode-sync

* Transition out of WATCHDOG_EXPIRED state if the watchdog is inactive

* Fixed IsWatchdogExpired bug

* Fixed rate check for watchdog objects and no longer check MN state when validating governance objects

* Applied PR #1061 patch

* Ported locking changes from other branch

* Require only 1 block between new watchdog objects

* Accept pings for WATCHDOG_EXPIRED masternodes

* Lock CmasternodeMan::cs in CmasternodeMan::ProcessMessage

* Several governance changes
 - Fixed uninitialized value in CGovernancePayment class
 - Return an error on submission if any superblock payment cannot be parsed
 - Added logging more statements

* Explicitly initialize all governance object members

* Fix deadlock

* Fixed non-threadsafe access to masternode in activemasternode.cpp

* Revert added wallet lock

* Changed CActiveMasternode so that watchdog expired nodes can still send pings

* Modified CActiveMasternode to run pinger regardless of state when MN is in list

* Added voter and time information to getvotes command

* Improved CActiveMasternode state management

* Implemented GetInfo functions for more efficient thread-safe access to masternode information

* Added CActiveMasternode debug logging messages

* Fixed initial type setting and error message for incorrect protocol version

* Changes based on code review comments

* Set active state for local mode
2016-10-17 22:54:28 +04:00
UdjinM6
a584a68634 Revert few parts of #1073 - too early for node version check (and it's not necessary to do so there anyway) (#1080) 2016-10-16 23:23:42 +04:00
UdjinM6
bdcc9ab47c Refactor PS code to deal with denoms in a more generic way (#1071) 2016-10-16 23:23:17 +04:00
TheLazieR Yip
27c445a891 Add more Private Send minimum protocol version checking (#1073) 2016-10-13 13:45:30 +04:00
UdjinM6
d5dcf2b668 Refactor CalculateScore, move GetBlockHash out of it (#1068) 2016-10-13 13:45:18 +04:00
Evan Duffield
8aaa8a22b0 Merge pull request #1074 from nmarley/bugfix-vote-counting
Bugfix: vote counting
2016-10-12 13:35:29 -07:00
Evan Duffield
ef87e4ccb1 Merge pull request #1072 from UdjinM6/updateProtoDoc
update protocol-documentation.md
2016-10-12 13:34:21 -07:00
Nathan Marley
d9d11f6765 bugfix: count MN votes only once 2016-10-12 10:02:15 -05:00
UdjinM6
e7fc860b35 update protocol-documentation.md 2016-10-11 16:10:21 +03:00
UdjinM6
2feb321c2e IsBlockchainSynced should not proceed until we are past the latest checkpoint (#1070) 2016-10-11 01:11:20 +04:00
TheLazieR Yip
9071933bf4 Fix Sync condition checking in PrivateSend (#1069) 2016-10-11 01:07:49 +04:00
UdjinM6
321fd64921 Masternodes should be allowed to annonce ipv4 addresses only from now (#1065) 2016-10-10 13:13:07 +04:00
crowning-
c86439a366 [UI] Change 'Send' warning (#1064) 2016-10-09 15:47:22 +04:00
crowning-
e32e28afb9 [PrivateSend] Performance tweak: faster shuffling of Masternodes vector (#1063) 2016-10-09 15:46:46 +04:00
CHAE-PIL LIM
6795de7f1a [cosmetic] set width 9 to 15 (#1062)
tested with PRE_ENABLED, should be ok with OUTPOINT_SPENT too
2016-10-07 20:16:27 +04:00
dkaidalov
d537610047 Governance: Fix governance object syncing in AddOrUpdateVote. (#1061)
There is a bug AddOrUpdateVote function in CGovernanceManager. If a new vote has been arrived it is checked if a corresponding parent object are present in the mapObjects. If it is not we need to sync the parent object and return false. But the syncing is never performed because the corresponding code is placed after return statement. So we need to sync and then return.
2016-10-07 20:15:39 +04:00
crowning-
81c3ccbdf8 [PrivateSend] vecMasternodesUsed: remove several nodes at once (#1060) 2016-10-07 20:15:03 +04:00
UdjinM6
1eb399cf34 bump proto 70202 (#1054) 2016-09-30 22:19:26 +04:00
UdjinM6
ae48630dfb Revert "[UI] Message change when Masternodes is started" (#1053) 2016-09-30 20:19:18 +04:00
Evan Duffield
0e9a57d6ad Merge pull request #1041 from crowning-/patch-1
[UI] Message change when Masternodes is started
2016-09-30 09:18:05 -07:00
Tim Flynn
0d324eafa8 rpcgovernance improvements (#1052)
* rpcgovernance improvements
 - Modified govject get to return full object data along with vote counts
 - Cleaned up vote count reporting code

* Added cached flags to gobject get output
2016-09-30 05:48:18 +04:00
Nathan Marley
1f98bdff06 fix spork setPrivKey (#1051) 2016-09-30 02:19:00 +04:00
Evan Duffield
bdf1a6d24d Merge pull request #1045 from UdjinM6/fixSync1
Various sync fixes
2016-09-29 14:21:47 -07:00
UdjinM6
a650165318 GetMinCollateralFee should not validate object type (#1050)
* GetMinCollateralFee should not validate object type, it should be IsValidLocally's job

* Explicitly set 0 fee for known free objects, set fee to MAX_MONEY for unknown one
2016-09-30 00:29:29 +04:00
UdjinM6
4316b4e277 CMasternodeConfig::read shouldn't spam into debug.log, instead AppInit2 should print current masternode.conf location. Processing masternode.conf to lock inputs should also be performed only when current node is not a masternode. (#1046) 2016-09-30 00:28:33 +04:00
UdjinM6
cc3b3a145e only bump nTimeLast* when valid new/updated message arrived, do not bump on invalid or 'seen' 2016-09-29 23:23:02 +03:00
UdjinM6
64ba0dc6d0 Always push tried masternode to vecMasternodesUsed regardless of result (#1047) 2016-09-29 03:47:31 +04:00
UdjinM6
231532d6d0 Align governance proto logic with logic for similar proto for other modules (#1049)
i.e MSG_GOVERNANCE_PEER_PROTO_VERSION -> MIN_GOVERNANCE_PEER_PROTO_VERSION (to check other peers) + PROTOCOL_VERSION (to announce own version)
2016-09-29 00:03:54 +04:00
UdjinM6
2b3478387c Deprecate masternodeaddr (#1048)
* Deprecate masternodeaddr (i.e. remove dash.conf-started remote masternode support)
2016-09-29 00:02:54 +04:00
UdjinM6
ac9ed3545b Save/load fulfilled requests info (#1044) 2016-09-27 23:37:54 +04:00
UdjinM6
cfeda84a3c Do not switch from MASTERNODE_SYNC_SPORKS to next asset until blockchain is synced 2016-09-27 12:02:57 +03:00