Commit Graph

172 Commits

Author SHA1 Message Date
UdjinM6
bc80d7e2a5 Merge #969: Masternode sync improvements
da406e3 Masternode sync improvements
    - add simple helpers for few more sync states (use them where appropriate instead of old code + rpc output)
    - use new helpers to avoid meaningless message processing
    - actually fail if sync shouldn't continue due to lack of info, make sure Reset is used to quit failed state
2016-08-29 21:11:34 +02:00
UdjinM6
27cba53e64 Merge #941: Simplify CountByIP()
10c249f Simplify CountByIP()
2016-08-12 07:58:55 +02:00
Evan Duffield
5793bee9d6 Merge pull request #931 from UdjinM6/fixGetBlockHashAtHeight
Fix GetBlockHash
2016-08-08 12:32:23 -07:00
UdjinM6
a73c31f3f0 Fix GetBlockHash - Currently it's doing the job already done by chainActive and it's off by 1 block 2016-08-07 01:04:15 +03:00
crowning-
072fd72ca3 Merge #930: [UI] IPv4, IPv6 and TOR stats added to Information tab
d07ca0c [UI] IPV4, IPv6 and TOR stats added to Information tab

aaa320e [UI] IPv4, IPv6 and TOR stats added to Information tab
2016-08-06 22:52:01 +02:00
UdjinM6
b4cb1e2610 Merge #911: Fix sync process: (#911)
- mn hash compatibility with 70103
- ignore some requests while syncing
- fix locking/initializing in sync
- do not ban for old mnw
- split budget/governance messages/invs
2016-08-05 18:25:03 +02:00
UdjinM6
36c28fad1b Merge #925: fix a bug in #920
e7a2670 fix a bug in #920
2016-07-30 13:34:48 +02:00
UdjinM6
17dfbdea1b Merge #924: Fix AddRef() usage
513506f Fixing AddRef() usage
Using AddRef() in ConnectNode() for existing connections doesn't feel right considering how refs are released in ThreadSocketHandler(). I guess this could be the reason that sometimes refs stay >0 no matter what and nodes stuck in vNodesDisconnected forever which means that node never get deleted and FinalizeNode signal is never fired which in its turn means that for example mapBlocksInFlight can't be cleaned properly and then blocks stuck.

This commit should solve the issue by:
- removing AddRef() for existing connections
- adding AddRef() in CNode's constructor using the same conditions as in ThreadSocketHandler()
- addding AddRef() in ConnectNode() and Release() in ThreadSocketHandler() for mixing nodes
- removing explicit calls to Release() (back to `pnode->fDisconnect = true` in `CMasternodeMan::ProcessMasternodeConnections`)

9da4a83 fix names/comments
2016-07-30 13:05:41 +02:00
UdjinM6
a4d012069a Merge #920: Slightly refactor FindRandomNotInVec
61e16a3 Slightly refactor FindRandomNotInVec
2016-07-29 07:29:41 +02:00
UdjinM6
4d55bc9666 Cleanup/maintenance (#830)
* remove instance references inside own class

* better logging

* remove unused

* fix tabs/spaces

* bitcoin->dash

* fix README.md
2016-05-30 08:22:30 +02:00
UdjinM6
9745914c15 remove hardcoded strDarksendPoolDummyAddress (#828)
- use "" account address instead
- remove `collateralPubKey` and `SetCollateralAddress()` from darksend and create `dummyScriptPubkey` and `InitDummyScriptPubkey()` in masternodeman instead
- initialize `dummyScriptPubkey` before loading cache otherwise MNs could be removed because of the invalid tx
2016-05-30 08:22:08 +02:00
UdjinM6
c3b950d457 fix mn anounce: (#813)
- every node should check for "pre-enabled" status of a newly added mn to relay message further (was "enabled" which is wrong - if node is enabled, that's not the first announce, so no need to relay it because most likely we were the one who asked for that mn directly via dseg)
- we should not add ourselves to mn list if announce message has outdated protocol version (report this in log)
- we should remove ourselves from saved list if we start updated mn for the first time and just loaded old list from mncache.dat
2016-05-27 08:24:44 +02:00
UdjinM6
87ad368643 Optimize processing of a (potentially) new MN:
- Move heavy `IsVinAssociatedWithPubkey` deep inside of `CheckInputsAndAdd` to be actually executed only once per masternode and only after much simpler checks were executed;
- Verify `GetInputAge` (it uses cache) before trying to enter `AcceptToMemoryPool` (which hash many ifs and checks inside).
2016-05-24 03:15:53 +03:00
Evan Duffield
ebaee8f083 moved serialdb to template based class 2016-04-09 23:31:32 -07:00
UdjinM6
981efed749 Few debug related fixes
- make logthreadnames work correctly without logtimestamps (and with emty strings again)
 - fix crash in debug (it3)
 - log debug info about locks in one line
 - show actual DS rounds instead of n/a in coin control while in debug mode
 - fix initial string in debug.log: "Bitcoin version" -> "Dash version"
2016-03-25 16:41:11 +03:00
UdjinM6
54096c30ec Allow user to use 2 modes for masternodebroadcast:
- safe - process mnb as if it was received via network
 - fast - skip most checks and relay
2016-03-18 02:37:48 +03:00
UdjinM6
eaf57b3fb7 Implemented masternodebroadcast
This set of rpc commands provide an ability to create masternode broadcast messages offline
and relay them from online node later (messages expire in ~1 hour).

Arguments:
1. command        (string or set of strings, required) The command to execute
2. passphrase     (string, optional) The wallet passphrase
Available commands:
  create-alias  - Create single remote masternode broadcast message by assigned alias configured in masternode.conf
  create-all    - Create remote masternode broadcast messages for all masternodes configured in masternode.conf
  decode        - Decode masternode broadcast message
  relay         - Relay masternode broadcast message to the network

Closes #741
2016-03-17 08:29:53 +01:00
UdjinM6
38f386ae1c Few small changes: - Better log output (a bit more granular for mnb, fixing "\n"s and few other small issues) - Unify variable/class members naming a bit
Closes #733
2016-03-16 07:48:37 +01:00
UdjinM6
e0c4dd0129 Fix crash in CheckAndRemove
Closes #732
2016-03-14 14:27:20 +01:00
UdjinM6
5c2a0cc9ec Fix bug that prevented new blocks to update tip during mixing
Closes #706
2016-03-02 12:54:46 +01:00
UdjinM6
c676748beb Replace all hardcoded network message strings with NetMsgType:: constants, log unknown commands (net debug category only) 2016-02-19 07:59:00 +03:00
UdjinM6
8ad088ab75 Add few more debug messages for masternode category 2016-02-17 21:53:55 +03:00
UdjinM6
a4aef837bd Merge remote-tracking branch 'origin/v0.12.1.x' into mergebtc0.12 + fix 2016-02-16 03:17:25 +03:00
crowning-
cfc8cc2fe5 dseg shouldn't be send for local addresses
Closes #695
2016-02-15 14:06:47 +01:00
UdjinM6
a5ac60b868 Merge remote-tracking branch 'bitcoin/0.12' into HEAD
+ merge fixes
+ keepass on evhttp
2016-02-06 16:48:04 +03:00
Evan Duffield
83f87b0f2d merged 2016-02-04 12:39:53 -07:00
Evan Duffield
eeb53b9682 Vastly faster syncing process / small budget system changes
- Syncing process is now event based, rather than timeout based. This means the system can tell when it's done with each step and moves on between phases much faster. In initial testing it seems to be about 10-15x faster and has synced everytime successfully.
- Please remove print debugging when the syncing system is proven to be debugged.
2016-02-04 12:29:09 -07:00
UdjinM6
e2aaf09700 Cleanup
- lower unobvious dependency through header files, move few includes to the right places
- some trivial code cleanup

Closes #680
2016-01-31 12:08:45 +01:00
evan82
54deb1e75b Merge pull request #650 from dashpay/v0.12.0.x
merge missing commits from V0.12.0.x
2016-01-05 10:39:39 -07:00
UdjinM6
f4afaec0b2 add missing maps cleaning in CMasternodeMan::Clear() 2015-09-30 04:24:29 +03:00
evan82
ddf71c0764 Merge pull request #561 from UdjinM6/v0.12.1.x_pre_enabled
V0.12.1.x pre-enabled status from masternodes
2015-09-22 07:14:10 -07:00
UdjinM6
f68a5d8102 remove depreciated dsee/dseep code
Closes #606
2015-09-12 16:35:37 +02:00
UdjinM6
2b4ec27206 inv messages vectors should not be pushed directly 2015-08-31 10:06:59 -07:00
UdjinM6
ef9b90aa09 inv messages vectors should not be pushed directly 2015-08-31 07:05:10 +03:00
Evan Duffield
61e67434cd restored mnb cleanup 2015-08-28 20:25:55 -07:00
evan82
82606d6322 Merge pull request #562 from UdjinM6/v0.12.1.x_cleanup
V0.12.1.x cleanup
2015-08-28 20:04:48 -07:00
evan82
3729d93097 Merge pull request #575 from UdjinM6/v0.12.0.x_fix_mapSeenMasternodeBroadcast
V0.12.1.x fixes for mapSeenMasternodeBroadcast:
2015-08-28 19:52:14 -07:00
Evan Duffield
c5d6b8486b Drastically reduce bandwidth/cpu usage for syncing
- Only send 1 winner per block for the previous 4500 blocks (was 10 items per block for 6000 blocks)
- Send full sync for last 5 blocks and next 20 blocks
- Turn off mnb cleaning, there aren't that many broadcasts on the network and this could cause problems in some cases
- Fix budget submission collateral check
2015-08-28 14:42:23 -07:00
UdjinM6
657bd1103e Few cleanups:
- compiling errors
- output
- CBitcoinAddress usage cleanup
- refresh qt project file
- fix typo in `masternode` debug category
2015-08-28 23:16:58 +03:00
UdjinM6
611640d4e1 fixes for mapSeenMasternodeBroadcast:
- active masternode ping should update mapSeenMasternodeBroadcast's lastPing too
- dseg should fill mapSeenMasternodeBroadcast to be able to serve it later on getdata with MSG_MASTERNODE_ANNOUNCE inv
2015-08-26 03:18:01 +03:00
UdjinM6
84b03d28e0 more mem fixes:
- clean mapMasternodeBlocks and mapSeenSyncMNB too
- clean mapSeenMasternodeBroadcast by lastPing sigTime nad fix clean threshold
2015-08-25 17:15:59 +03:00
Evan Duffield
402d821529 Fix memory leak / reduce mnw memory
- mapSeenMasternodePing & mapSeenMasternodeBroadcast were not getting cleaned, so the pinging of 3000 masternode was accumulating over time. This patch has the clean clean the lists every few minutes and removes anything older than 20 minutes for pings and 2.5 hours for broadcasts.
- v48
2015-08-24 19:27:10 -07:00
UdjinM6
30ab984920 treat MN as pre-enabled while there is no legit ping that differ from initial one (from mnb) 2015-08-22 19:00:12 +03:00
Evan Duffield
76d9eddfa4 Cleanup nCount for qualifying nodes
- thx Udjin!
2015-08-20 09:27:34 -07:00
Evan Duffield
c64f76001b nCount >= nTenthNetwork should be nCountTenth 2015-08-20 08:52:33 -07:00
Evan Duffield
6b31970f13 Fix payment cycle when network is in the process of updating 2015-08-20 08:37:05 -07:00
Evan Duffield
61223ed147 Fix dseg message 2015-08-14 09:15:50 -07:00
UdjinM6
001b8cf709 more fixes - dsee updated entry 2015-08-14 08:11:57 +03:00
UdjinM6
61239dbb36 more fixes - misbehave / rpc 2015-08-14 06:18:08 +03:00
UdjinM6
f0790ed32c fix dseep flood / log output 2015-08-14 04:14:08 +03:00