Commit Graph

13629 Commits

Author SHA1 Message Date
UdjinM6
56971f8da1 Fix CMasternodeConfig::read (#1322)
CService fails to initialize correctly on Windows for whatever reason,
replacing this functionality with SplitHostPort call.
2017-02-06 01:29:23 +04:00
Tim Flynn
8de792291a Add a mutex lock to protect CNode::nRefCount (#1321)
* Add a mutex lock to protect CNode::nRefCount

* Added logging statement for CNode removal
2017-02-05 20:45:36 +04:00
Tim Flynn
5520bf6895 Masternode index rebuild bug fix (#1318)
* Clear old masternode index after vote map rebuild

* Add masternode index size to CMasternodeMan::ToString
2017-02-05 13:24:34 +04:00
UdjinM6
1d45023f3e assert on Release (#1317) 2017-02-04 22:47:38 +04:00
UdjinM6
bd3978fd4b Fix IS vote expiration/cleanup: (#1316)
- vote should be removed when corresponding orphan vote expires
- fix CInstantSend::SyncTransaction: mapTxLockVotes is indexed by vote hash, not by tx hash (use votes from candidates and from orhpan vote map to avoid looping through the whole vote map)
2017-02-04 22:17:45 +04:00
UdjinM6
8c6f756362 put some reasonable limits on SPORK_12_RECONSIDER_BLOCKS (#1312)
* put some reasonable limits on SPORK_12_RECONSIDER_BLOCKS

* 6h -> 24h
2017-02-04 04:42:04 +04:00
UdjinM6
636e48b2a8 fix off-by-1 bug in DisconnectBlocks (#1313) 2017-02-04 04:41:32 +04:00
UdjinM6
cedd269cb0 shift CSV deployment window on mainnet to "Feb 5th, 2017 - Feb 5th, 2018" (#1314) 2017-02-04 04:41:18 +04:00
Tim Flynn
0ecc7c61eb Adjust start of 12.1 superblocks (#1311) 2017-02-03 21:41:22 +04:00
Tim Flynn
3840d97027 Fix division by zero (#1310)
* Fix division by zero

* Fixes based on code review comments

* Fix nProjectedVotes value

* Set nProjectedVotes to 2000
2017-02-03 13:17:47 +04:00
UdjinM6
1486acfb99 remove IS number of inputs limit, add warning instead (#1308) 2017-02-03 02:38:33 +04:00
UdjinM6
f729d8227b bump gov cache version to start from scratch (#1306) 2017-02-02 17:43:40 +04:00
UdjinM6
c5210a3e5b Adjust gov sync (#1305)
* Adjust gov sync:
- simulate mainnet gov obj sync conditions on testnet
- add redundancy: ask up to 3 peers for the same obj

* stop loop if max number of peers per obj was asked
2017-02-02 17:04:45 +04:00
Tim Flynn
1f7b46c2c0 Restore 5 Dash fee for proposal creation (#1302) 2017-02-02 12:51:02 +04:00
Tim Flynn
399330d42d Improve governance syncing efficiency with bloom filter (#1299)
* Use bloom filter for governance vote syncing

Modify masternode-sync to send bloom filters

Correctly initialize bloom filter

Set fUseFilter argument

Increase bloom filter size to account for multiple signals

Set bloom filter parameters

Use constants for bloom filter parameters

Added filter size check

Added filter size check in masternode-sync

Update bloom filter

Changed bloom parameters

* Bump protocol version

* Update sync time for inv's

* Changes based on code review comments

* Make bloom filter size network dependent

* Fix network dependent filter parameters

* Remove unneeded constant definition

* Move constant definition

* Add blank line
2017-02-02 12:50:44 +04:00
UdjinM6
cfc8954b42 Shift PS denoms (#1292)
* Shift PS denoms

* fix ui PS restrictions
2017-02-02 12:50:21 +04:00
Tim Flynn
a73185d939 Increment node refcount before adding to vector (#1304) 2017-02-02 12:22:47 +04:00
Tim Flynn
944420deb0 Fix deadlock in governance on cs_main (#1303) 2017-02-02 03:07:24 +04:00
UdjinM6
3bfa5392fa fix flag/ref order + cs_vNodes in ConnectNode (#1300)
* fix flag/ref order

* hold cs_vNodes in ConnectNode a little bit longer

* fix
2017-02-01 21:24:00 +04:00
UdjinM6
c8466cfb04 fix lock order in ThreadMnbRequestConnections (#1298) 2017-01-31 21:11:21 +04:00
UdjinM6
572c554681 Multiple mnb recovery (#1297)
* ask for multiple mnb hashes for recovery

* address comments, lock cs_vNodes and add/relese ref

* add parentheses
2017-01-31 19:29:27 +04:00
UdjinM6
e2eaf1d0d7 Fix few block processing bugs (#1291)
* protect mapRejectedBlocks by cs_main

* few block reprocessing fixes:
- DisconnectBlock should fail on DisconnectTip failure
- ResolveConflicts should fail on DisconnectBlock failure
- ReprocessBlocks cleanup

* don't ban on IsBlockValueValid/IsBlockPayeeValid failure
2017-01-30 10:01:08 +04:00
Tim Flynn
04ed5db62c Fix Vote iteration bug (#1290)
* Fix Vote iteration bug

* Fix order of statements
2017-01-29 23:09:21 +04:00
UdjinM6
60409df822 InstantSend overhaul (#1288)
* Multi-quorum InstantSend, complete refactoring
+ cleanup for IS and partial protobump

* more changes:
- allow InstantSend tx to have 10 inputs max
- store many unique tx hashes in mapVotedOutpoints
- more checks in AcceptToMemoryPoolWorker (moved from ProcessMessage + CTxLockRequest(tx).IsValid() )

* More changes:
- let multiple lock candidates compete for votes
- fail to vote on the same outpoint twice early

* More changes:
- notify CInstantSend on UpdatedBlockTip -> remove cs_main from CheckAndRemove()
- notify CInstantSend on SyncTransaction -> count expiration block starting from the block corresponding tx was confirmed instead of the block lock candidate/vote was created
- fixed few locks

* add comments about nConfirmedHeight

* Fix "Block vs Lock" edge case

* Fix "Block vs Lock" edge case, p2

* Fix issues:
- fix logic for locking inputs and notifying - see UpdateLockedTransaction, TryToFinalizeLockCandidate
- add missing hash inserting in ProcessTxLockVote
- add nMaxBlocks param to ResolveConflicts to limit max depth allowed to disconnect blocks recursively
- fix false positive mempool conflict
- add missing mutex locks
- fix fRequireUnspent logic in CTxLockRequest::IsValid
2017-01-29 12:22:14 +04:00
Tim Flynn
9c5db04953 Fix datadir initialization in dash-qt (#1287) 2017-01-27 18:07:13 +04:00
TheLazieR Yip
534effaf85 Set width=18 to support NEW_START_REQUIRED status in masternodelist full (#1281) 2017-01-25 15:37:45 +04:00
TheLazieR Yip
5a2a9ccfd5 Update download path for native_ccache (#1283)
* Update download path for native_ccache

* Remove www.
2017-01-25 15:37:33 +04:00
UdjinM6
d8797023c8 move mnb verification requests to their own thread (#1274)
* move mnb verification requests to their own thread, should remove related ui/rpc freezes

* vector -> list
2017-01-21 23:03:55 +04:00
Tim Flynn
348c001445 Fix governance-votedb index bug (#1278) 2017-01-21 09:26:35 +04:00
TheLazieR Yip
2a43d23f95 Enable sendrawtransaction to send IS (#1271)
* Enable sendrawtransaction to send IS

* InstantSend as optional for sendrawtransaction
2017-01-20 03:00:47 +04:00
UdjinM6
a7d172fafd update list of mn states in masternodelist rpc help (#1272)
fix #1266
2017-01-19 23:06:56 +04:00
Tim Flynn
70b2f3e083 Limit number of warning messages logged by CNode's (#1273) 2017-01-19 23:06:32 +04:00
Tim Flynn
0233d87739 Do not call CloseSocketDisconnect from non-socket handler threads (#1276) 2017-01-19 23:02:57 +04:00
Tim Flynn
4b7bd6be8f Governance masternode notification bug fixes (#1270)
* Flag governance items when MN's are removed

* Remove old broken update mechanism

* Do not flag MN state changes which are irrelevant to validity

* Call AddGovernanceVote
2017-01-18 19:24:19 +04:00
Tim Flynn
5254255a0a Voting related syncing changes (#1269)
* Remove vote count check from IsValidLocally

* Do not check voted validity flag when syncing

* Do not send objects marked for deletion during syncing

* Remove node penalty for unrequested objects.
2017-01-18 19:24:04 +04:00
Tim Flynn
2ea9c69985 Logging improvements (#1268)
* Add default log messages when beginning asset sync

* Added default log message for AskFor buffer full condition

* Improve log message based on code review comments
2017-01-18 19:23:49 +04:00
UdjinM6
b5239b790e Merge #1267: Fix IS locking/crashes 2017-01-18 07:38:13 +01:00
UdjinM6
f81ea67a08 Remove hashes from setAskFor (#1264)
We should remove hash from setAskFor when the message corresponding to previous inv arrives, otherwise it's stays there forever and setAskFor overflows (i.e. AskFor returns immediately without processing).
2017-01-18 00:02:59 +04:00
UdjinM6
f1ee9d9c71 Change governance sync process (#1265)
* On gov sync first sync objs, then ask for votes on per-obj basis from different peers.

This should help to sync obj list initially and split the load among many peers. Also adds ability to catch up votes later after the sync.

* ask for all objects, do this in cycles

* Fix Sync() code, better readability

* ask multiple nodes at once when possible, perf boost for large numper of objs

* Addressed comments: pass reference, more peer version check
2017-01-18 00:02:38 +04:00
UdjinM6
f995a264e2 Do not try to check or verify mns until synced to some stage (#1261)
Verification creates new conections, which we also use to sync but then we disconnect on ProcessMasternodeConnections every minute which at least could lead to excessive node load (for our peers). But could also interfere with sync process itself and we'd better keep them separate.
2017-01-15 02:29:08 +04:00
UdjinM6
e8479675a8 show local time in Masternodes tab (#1244) 2017-01-13 18:03:28 +04:00
UdjinM6
053e374e42 Merge bug fixes (#1260)
* Fix for incorrect locking in GetPubKey() (keystore.cpp)

* Fix Cmd-Q / Menu Quit shutdown on OSX

* Addition of ImmatureCreditCached to MarkDirty()

To protect against possible invalidation and to bring conformity to the code.
2017-01-13 18:02:33 +04:00
UdjinM6
5cb6486616 Assuming that we synced blockchain already if we have at least MASTERNODE_SYNC_ENOUGH_PEERS (6 currently) peers at the same height as we are (#1257) 2017-01-11 03:33:14 +04:00
UdjinM6
621f9ebeca remove GetEstimatedMasternodes and GetTotalCoinEstimate (#1258) 2017-01-11 03:33:01 +04:00
TheLazieR Yip
a42b375a05 Update to listunspent cli command (#1254)
* Add missing description for listunspent help message.

* Add ps_round (PrivateSend Round) in listunspent result

* s/round/rounds/
2017-01-11 03:06:17 +04:00
UdjinM6
9114ef7930 Changes in potential_deadlock_detected behavior: (#1259)
1. print to stdout too
2. only print when it's critical (i.e. going to crash on assert)
2017-01-11 03:00:34 +04:00
UdjinM6
26419596ce bump nMinBlocksToStore 4000->5000 (#1256) 2017-01-11 03:00:22 +04:00
UdjinM6
a930363366 RequestLowDataPaymentBlocks should request unknown payment blocks too (#1255) 2017-01-11 03:00:06 +04:00
Tim Flynn
3b9a748d5e Fix locking order (#1252)
* Add cs_main locks prior to governance locks to ensure correct locking order
2017-01-09 19:09:42 +04:00
UdjinM6
0c2304e24f Backport btc pr7907 (#1253)
Fixing this https://bitslog.wordpress.com/2017/01/08/a-bitcoin-transaction-that-takes-5-hours-to-verify/

* Unit test for CScript::FindAndDelete

* Replace memcmp with std::equal in CScript::FindAndDelete

Function is stl; std::equal just makes more sense.

* Replace c-style cast with c++ style static_cast.

* Improve worst-case behavior of CScript::FindAndDelete

Thanks to Sergio Lerner for identifying this issue and suggesting this kind of solution.
2017-01-09 18:51:04 +04:00