Commit Graph

17274 Commits

Author SHA1 Message Date
UdjinM6
91a996e325
Make sure mempool txes are properly processed by CChainLocksHandler despite node restarts (#3226)
* Pass nAcceptTime via TransactionAddedToMempool and use it for ChainLocks

Otherwise the "first seen" time is way off after node restart

* Don't skip TransactionAddedToMempool for chainlocks while blockchain is not synced yet

Otherwise txes from mempool.dat won't be processed there
2019-12-07 13:56:17 +03:00
Alexander Block
dc07a0c5e1 [v0.14.0.x] Bump version and prepare release notes (#3228)
* Bump version to 0.14.0.5

* Copy 0.14.0.4 release notes and prepare 0.14.0.5 release notes

* Run gen-manpages.sh
2019-12-07 13:53:34 +03:00
UdjinM6
3998c3191f
Merge pull request #3227 from codablock/pr_v14_backports
[v0.14.0.x] Backport pending PRs
2019-12-07 13:53:00 +03:00
Alexander Block
401da32090 More fixes in llmq-is-retroactive tests 2019-12-07 00:35:27 +01:00
Alexander Block
33721eaa11 Make llmq-is-retroactive test compatible with 0.14.0.x 2019-12-07 00:35:27 +01:00
Alexander Block
85bd162a3e Make wait_for_xxx methods compatible with 0.14.0.x
Mostly related to wait_until not asserting in 0.14.0.x
2019-12-07 00:35:27 +01:00
Alexander Block
22cfddaf12 Allow re-signing of IS locks when performing retroactive signing (#3219)
* Implement re-signing of InstantSend inputs when TXs come in via blocks

* Use GetAdjustedTime instead of GetTimeMillis in CSigSharesManager

This allows use of mocktime in tests.

* Expose verifiedProRegTxHash in getpeerinfo and implement wait_for_mnauth

* Allow to wait for IS and CL to NOT happen

* Bump timeout for wait_for_instantlock

* Implement tests for retroactive signing of IS and CLs

* Add wait_for_tx function to DashTestFramework

* Add -whitelist=127.0.0.1 to node0

* Use node3 for isolated block generation

* Don't test for non-receival of TXs on node4/node5
2019-12-07 00:35:27 +01:00
Alexander Block
a8b8891a1d Add wait_for_xxx methods as found in develop
But slightly modified so that they work with wait_until which does not
assert in v0.14.0.x
2019-12-06 22:47:57 +01:00
Alexander Block
8dae12cc60 More/better logging for InstantSend 2019-12-06 22:47:57 +01:00
UdjinM6
fdd19cf667 Tests: Fix the way nodes are connected to each other in setup_network/start_masternodes (#3221)
* Tests: Connect to the control node only in start_masternodes

Masternodes should take care of intra-quorum connections themselves

* Reconnect non-masternodes back to the control node
2019-12-06 22:47:57 +01:00
Alexander Block
41f0e9d028 More fixes related to extra_args 2019-12-06 22:47:57 +01:00
UdjinM6
5213118601 Tests: Allow specifying different cmd-line params for each masternode (#3222) 2019-12-06 22:47:57 +01:00
Alexander Block
2fef21fd80 Don't join thread in CQuorum::~CQuorum when called from within the thread (#3223) 2019-12-06 22:47:57 +01:00
Alexander Block
e69c6c3207 Merge #12392: Fix ignoring tx data requests when fPauseSend is set on a peer (#3225)
c4af738 Fix ignoring tx data requests when fPauseSend is set on a peer (Matt Corallo)

Pull request description:

  This resolves a bug introduced in
  66aa1d58a1 where, if when responding
  to a series of transaction requests in a getdata we hit the send
  buffer limit and set fPauseSend, we will skip one transaction per
  call to ProcessGetData.

  Bug found by Cory Fields (@theuni).

  Probably worth slipping into 0.16 :/.

Tree-SHA512: a9313cef8ac6da31eb099c9925c8401a638220cf7bc9b7b7b83151ecae4b02630f2db45ef6668302b9bb0f38571afbd764993427f1ec9e4d74d9a3be6647d299
2019-12-06 22:47:57 +01:00
Alexander Block
697d289ebc
Merge #12392: Fix ignoring tx data requests when fPauseSend is set on a peer (#3225)
c4af738 Fix ignoring tx data requests when fPauseSend is set on a peer (Matt Corallo)

Pull request description:

  This resolves a bug introduced in
  66aa1d58a1 where, if when responding
  to a series of transaction requests in a getdata we hit the send
  buffer limit and set fPauseSend, we will skip one transaction per
  call to ProcessGetData.

  Bug found by Cory Fields (@theuni).

  Probably worth slipping into 0.16 :/.

Tree-SHA512: a9313cef8ac6da31eb099c9925c8401a638220cf7bc9b7b7b83151ecae4b02630f2db45ef6668302b9bb0f38571afbd764993427f1ec9e4d74d9a3be6647d299
2019-12-06 12:30:17 +01:00
UdjinM6
2b587f0ebc
Slightly refactor CDKGSessionHandler::SleepBeforePhase (#3224)
This should make code a little bit cleaner, should be no changes in the actual behaviour: non-members do not sleep already due to `sleepTime` being negative for them and `phaseTime = 0` does the same on regtest but for everyone.
2019-12-06 12:10:01 +03:00
Alexander Block
fdb05860e2 Don't join thread in CQuorum::~CQuorum when called from within the thread (#3223) 2019-12-06 12:06:13 +03:00
Alexander Block
4c00d98ea6 Allow re-signing of IS locks when performing retroactive signing (#3219)
* Implement re-signing of InstantSend inputs when TXs come in via blocks

* Use GetAdjustedTime instead of GetTimeMillis in CSigSharesManager

This allows use of mocktime in tests.

* Expose verifiedProRegTxHash in getpeerinfo and implement wait_for_mnauth

* Allow to wait for IS and CL to NOT happen

* Bump timeout for wait_for_instantlock

* Implement tests for retroactive signing of IS and CLs

* Add wait_for_tx function to DashTestFramework

* Add -whitelist=127.0.0.1 to node0

* Use node3 for isolated block generation

* Don't test for non-receival of TXs on node4/node5
2019-12-06 12:05:58 +03:00
UdjinM6
b4b9d34675 Tests: Fix the way nodes are connected to each other in setup_network/start_masternodes (#3221)
* Tests: Connect to the control node only in start_masternodes

Masternodes should take care of intra-quorum connections themselves

* Reconnect non-masternodes back to the control node
2019-12-05 19:31:55 +01:00
UdjinM6
dfe99c9507 Decouple cs_mnauth/cs_main (#3220) 2019-12-05 19:28:53 +01:00
UdjinM6
08f447af92 Tests: Allow specifying different cmd-line params for each masternode (#3222) 2019-12-05 19:28:33 +01:00
UdjinM6
9dad60386c
Tweak "Send" popup and refactor related code a bit (#3218)
Few key points:

- highlight when not all recipients are displayed, move this info closer to the actual list
- clarify fee rounding text for PrivateSend, wasn't accurate
- show transactions size and actual fee rate explicitly
- show number of inputs PrivateSend tx is going to consume and warn if this number is 10 or higher
2019-11-27 13:53:42 +03:00
UdjinM6
ef55e48c1e
Merge pull request #3217 from codablock/pr_backport_hidpi_fix
Backport bitcoin#16254 and remove hires theme
2019-11-22 21:14:22 +03:00
UdjinM6
bb7a32d2e2
Add Dark theme (#3216)
* Copy light(-hires).css -> dark(-hires).css (with no changes yet)

* Add dark(-hires).css to makefile/qrc and show them in theme selector

* Dark theme (css part)

* Do not style unit selector in status bar via platform styles, use css instead

* No coloring via forms (*.ui)

* Implement and use helpers to style parts of rich text differently for light and dark themes

* Remove dark-hires due to #3217

* Revert changes to light-hires.css to avoid merge conflicts with #3217
2019-11-22 21:13:47 +03:00
UdjinM6
05ac4dbb45
Dashify few strings (#3214) 2019-11-22 21:13:19 +03:00
UdjinM6
482a549a2b
Add collateral, owner and voting addresses to masternode list table (#3207)
* Add collateral, owner and voting addresses to masternode list table

* Adjust column names in masternode list table

* Slightly refactor updateDIP3List()

* Lock cs_main in updateDIP3List early to avoid GUI frezes

* Update MN list in GUI 10 times less often while blockchain is still syncing

* Move GetUTXO calls outside of main update loop

* Fill coin cache for masternode UTXOs on start
2019-11-22 21:12:57 +03:00
Alexander Block
8c17c81631 Remove light-hires theme as it's not required anymore 2019-11-22 12:28:08 +01:00
MarcoFalke
d9741fc632 Merge #16254: qt: Set AA_EnableHighDpiScaling attribute early
099e4b9ad3 Set AA_EnableHighDpiScaling attribute early (Hennadii Stepanov)

Pull request description:

  Running `bitcoin-qt` compiled against Qt 5.12.4 causes a warning:
  ```
  hebasto@bionic-qt:~/bitcoin$ src/qt/bitcoin-qt
  Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created.
  ```

  This PR fixes this issue.

  From Qt docs:
  - [Qt::AA_EnableHighDpiScaling](https://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum):
  > Enables high-DPI scaling in Qt on supported platforms (see also High DPI Displays). _Supported platforms are X11, Windows and Android._ Enabling makes Qt scale the main (device independent) coordinate system according to display scale factors provided by the operating system. This corresponds to setting the `QT_AUTO_SCREEN​_SCALE_FACTOR` environment variable to 1. This attribute must be set before `QGuiApplication` is constructed. This value was added in Qt 5.6.

  - [QCoreApplication::setAttribute()](https://doc.qt.io/qt-5/qcoreapplication.html#setAttribute)

ACKs for commit 099e4b:
  MarcoFalke:
    ACK 099e4b9ad3d9967051d5c3d45c6315d1b30fea05
  jonasschnelli:
    utACK 099e4b9ad3d9967051d5c3d45c6315d1b30fea05
  fanquake:
    ACK 099e4b9ad3d9967051d5c3d45c6315d1b30fea05. Did some testing on `Bionic` and `Windows 10` (using VirtualBox). I couldn't see any obvious visual difference, but given Marco's screens above, this change is obviously better. I also checked that there wasn't any sort of regression on macOS.

Tree-SHA512: 1965a427ee14ffb3871bac317685032406cf02d1fa2b2dc11c8b643bfe4ba09195674d149d1e41752f14c0d000446b35e142f3ce60d987ba97082fd7ee39a094
2019-11-22 12:22:21 +01:00
UdjinM6
37f96f5a3a
Bump version to 0.15 and update few const-s/chainparams (#3204)
* Bump const-s

* Bump version to 0.15

* Run gen-manpages.sh
2019-11-21 23:52:35 +03:00
strophy
9de994988b Compliance changes to terminology (#3211)
Replace inaccurate user-facing descriptions of PS as anonymous to mixed or private, since Dash is a transparent blockchain.
2019-11-21 23:49:35 +03:00
UdjinM6
d475f17bc2
Fix styles for progress dialogs, shutdown window and text selection (#3212)
* Override text selection background color for all text widgets

Otherwie it might become unusable with some system themes

* Fix progress dialogs styling

* Fix shutdown window styling
2019-11-21 18:02:43 +03:00
Alexander Block
8b14adb206 [v0.14.0.x] Update release notes with change log (#3213) 2019-11-21 17:45:44 +03:00
Alexander Block
5f98ed7a5a [v0.14.0.x] Bump version to 0.14.0.4 and draft release notes (#3203)
* Bump version to 0.14.0.4

* Run gen-manpages.sh to update versions

* Prepare release notes for 0.14.0.4

* Add first draft of "Notable Changes"

* Handle review comments
2019-11-21 13:04:16 +03:00
UdjinM6
df372ec5f9
Fix off-by-one error for coinbase txes confirmation icons (#3206) 2019-11-21 12:55:56 +03:00
UdjinM6
1e94e3333c
Fix styling for disabled buttons (#3205) 2019-11-21 12:55:41 +03:00
UdjinM6
c7630f0f4e
Merge pull request #3202 from codablock/pr_v14_backports
[v0.14.0.x] Backport pending PRs from develop into v14
2019-11-21 12:54:58 +03:00
Alexander Block
c0dda38fea Circumvent BIP69 sorting in fundrawtransaction.py test (#3100)
"subtractFeeFromOutputs" is applied to the ordering of the input
transaction and after that BIP69 sorting is performed. This causes
flakiness in tests.
2019-11-19 12:25:23 +01:00
Alexander Block
64ae6365f2 Fix compile issues 2019-11-19 12:25:23 +01:00
Jonas Schnelli
36473015b6 Merge #11397: net: Improve and document SOCKS code
22f816ef4 net: Improve and document SOCKS code (Wladimir J. van der Laan)

Pull request description:

  Make the SOCKS code more consistent, and document the constants used.

Tree-SHA512: 1bb04fcd6aacb6bfd2c54989d8298c892036466a895efb88be36fbace041af67c964ae0f5fb76c96f813f20a040109de4e0aac49a20844640e4d7633fcb22f25
2019-11-19 12:25:23 +01:00
UdjinM6
66e298728e Slightly optimize ApproximateBestSubset and its usage for PS txes (#3184)
* From 2 best sets with the same `nTotal` in ApproximateBestSubset prefer the one with less inputs

* There is no reason to run ApproximateBestSubset again if nMinChange is 0

* Apply review suggestions
2019-11-19 12:25:23 +01:00
Nathan Marley
16b6b6f7c2 Update activemn if protx info changed (#3176)
* Update activemn if protx info changed

* Add `==` and `!=` operators to CDeterministicMNState

* Only re-init active MN if its IP changed, changes to payout, voting etc. can be done without it

* Test `masternode status` updates

* Don't track mnListEntry anymore and instead get the DMN on demand

* Revert "Add `==` and `!=` operators to CDeterministicMNState"

This reverts commit fba4687581.
2019-11-19 12:25:23 +01:00
UdjinM6
ce66871308 Actually update spent index on DisconnectBlock (#3167)
Fixes #3166
2019-11-19 12:25:23 +01:00
Alexander Block
9b49bfda81 Only track last seen time instead of first and last seen time (#3165)
This avoids timeouts on parts of the network
2019-11-19 12:25:23 +01:00
UdjinM6
ad720eef19 Merge #17118: build: depends macOS: point --sysroot to SDK (#3161)
a0daea459cf4812fbdda9a7ead131a73f5856c09 [build] depends macOS: point --sysroot to SDK (Sjors Provoost)

Pull request description:

  Fixes errors like `fatal error: 'unistd.h' file not found` when building depends on macOS.

  Replaces #14352 (which doesn't work on Catalina).

ACKs for top commit:
  jonasschnelli:
    utACK a0daea459cf4812fbdda9a7ead131a73f5856c09

Tree-SHA512: 995b1e1e84e635b32d1d4038bc63730c94a7c318b7240f6d62825977e5c97fe52c5aa5a0f39070beb0df8271dd294b36d6b5cf7f09ad07494fb15d5bd4d77f68
2019-11-19 12:25:23 +01:00
Alexander Block
909d6a4ba5 Simulate BlockConnected/BlockDisconnected for PS caches 2019-11-19 12:25:23 +01:00
UdjinM6
db7f471c7d Few fixes related to SelectCoinsGroupedByAddresses (#3144)
* Fix cache usage in SelectCoinsGroupedByAddresses

* Reset cache flags in SelectCoinsGroupedByAddresses when a block is (dis)connected

* MakeCollateralAmounts should call SelectCoinsGroupedByAddresses with a limited number of inputs
2019-11-19 12:25:23 +01:00
UdjinM6
1acd4742c4 Various fixes for mixing queues (#3138)
* Always check for expired queues on masternodes

* Check if a queue is too old or too far into the future

Instead of only checking that it's to old

* Check that no masternode can spam us with dsqs regardless of dsq readiness
2019-11-19 12:25:23 +01:00
Alexander Block
0031d6b04d Also consider txindex for transactions in AlreadyHave() (#3126)
This avoids many false negatives where TXs are announced to us which are
already mined and then were spent later.
2019-11-19 12:25:23 +01:00
UdjinM6
c4be5ac4df Ignore recent rejects filter for locked txes (#3124)
* Ignore recent rejects filter for locked txes

If we had a conflicting tx in the mempool before the locked tx arrived and the locked one arrived before the corresponding islock (i.e. we don't really know it's the one that should be included yet), the locked one is going to be rejected due to a mempool conflict. The old tx is going to be removed from the mempool by an incoming islock a bit later, however, we won't be able to re-request the locked tx until the tip changes because of the recentRejects filter. This patch fixes it.

* Add some explanation
2019-11-19 12:25:23 +01:00
Alexander Block
f2d401aa85 Make orphan TX map limiting dependent on total TX size instead of TX count (#3121) 2019-11-19 12:25:23 +01:00