c4af738 Fix ignoring tx data requests when fPauseSend is set on a peer (Matt Corallo)
Pull request description:
This resolves a bug introduced in
66aa1d58a158991a8014a91335b5bc9c00062f56 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
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.
* 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
* 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
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
* 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
* 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
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
* 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
* 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
"subtractFeeFromOutputs" is applied to the ordering of the input
transaction and after that BIP69 sorting is performed. This causes
flakiness in tests.
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
* 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
* 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 fba468758113084785c0bc0fffd6d704911be8a3.
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
* 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
* 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
* 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
* Fix combobox popup style
* Unify margins/paddings/height for lineedits/comboboxes/spinboxes
* Drop walletframe_background
* Add transparency to unchecked.png
* Alternative solution for comboboxes (no border for popups, add paddings in QListView)
Turned out that this causes SelectCoinsMinConf to (unnecessary) lean towards selecting mempool txes which can cause "too long mempool chain" error even when there are more funds to spend.
* Fix "out of sync" label
* Fix fallback fee warning label
It's too long in some languages (e.g. ru) and this breaks ui
* Drop sub-tabs on the Masternode tab
* Hold cs_main/cs_wallet in main MakeCollateralAmounts
Otherwise smth else can alter wallet state and we might end up creating conflicting txes.
* AssertLockHeld
* Move "bip147" softfork up in getblockchaininfo to match the actual order of activation
* Fix typo
* Use CURRENCY_UNIT instead of BTC
* Add simple descriptions in `quorum` rpcs
* Unify the look of `quorum` cmd options (drop `.`)
* Clarify the order softforks are sorted in getblockchaininfo
The "masternode-tx" name is kinda confusing since ProTxes exist now. This is a
small rename to clarify that it is referring to the MN collateral txid and
index.