Commit Graph

18393 Commits

Author SHA1 Message Date
xdustinface
c240e70e38
qt: Add the wallet selector widget before the dash logo in the toolbar 2020-07-20 10:09:24 -05:00
pasta
a670374937
fix incomingTransaction notifications
Signed-off-by: pasta <pasta@dashboost.org>
2020-07-20 10:09:24 -05:00
Jonas Schnelli
2af7ce84fb
Merge #12610: Multiwallet for the GUI
779c5f984 Qt: hide RPCConsole wallet selector when no wallets are present (Jonas Schnelli)
dc6f150f3 Qt: show wallet name in request dlg in case of multiwallet (Jonas Schnelli)
4826ca4b8 Qt: show wallet name in send confirmation dlg in case of multiwallet (Jonas Schnelli)
cfa4133ce GUI: RPCConsole: Log wallet changes (Luke Dashjr)
b6d04fc7c Qt: Get wallet name from WalletModel rather than passing it around (Luke Dashjr)
12d8d2681 Qt: When multiple wallets are used, include in notifications the name (Jonas Schnelli)
d1ec34a76 Qt: QComboBox::setVisible doesn't work in toolbars, so defer adding it at all until needed (Luke Dashjr)
d49cc70e6 Qt: Add wallet selector to debug console (Jonas Schnelli)
d558f44c5 Bugfix: RPC: Add missing UnregisterHTTPHandler for /wallet/ (Luke Dashjr)
85d531971 Qt: Ensure UI updates only come from the currently selected walletView (Luke Dashjr)
e449f9a9e Qt: Add a combobox to toolbar to select from multiple wallets (Luke Dashjr)
3dba3c3ac Qt: Load all wallets into WalletModels (Luke Dashjr)

Pull request description:

  This is an overhaul of #11383 (plus some additions).
  It avoids unnecessary coupling of httpserver/jsonrpc and the wallet as well as it avoids pointer pure passing (and pointer deletion) of `CWallet` (plus other minor design changes).

  Additionally it adds the wallet name to the sendconfirmation and request dialog (in case multiwallet is active)

Tree-SHA512: 3d06e18badbc5d1821e488bf1dae463bb0be544cf11b2b618e025812bfdd13c5f39604bb93b4c705313930e7dc4e66f4848b9469ba14871bade58e7a027246a1
2020-07-20 10:09:19 -05:00
PastaPastaPasta
83726d286e
Merge #11517: Tests: Improve benchmark precision (#3620)
* Merge #11517: Tests: Improve benchmark precision

760af84 Removed CCheckQueueSpeed benchmark (Martin Ankerl)
00721e6 Improved microbenchmarking with multiple features. (Martin Ankerl)

Pull request description:

  The benchmark's KeepRunning() used to make a function call for each call, inflating measurement times for short running code. This change inlines the critical code that is executed each run and moves the slow timer updates into a new function.

  This change increases the average runtime for Trig from 0.000000082339208 sec to 0.000000080948591.

Tree-SHA512: 36b3bc55fc9b1d4cbf526b7103af6af18e9783e6b8f3ad3adbd09fac0bf9401cfefad58fd1e6fa2615d3c4e677998f912f3323d61d7b00b1c660d581c257d577
Signed-off-by: pasta <pasta@dashboost.org>

# Conflicts:
#	src/bench/bench.cpp
#	src/bench/bench_dash.cpp
#	src/bench/crypto_hash.cpp
#	src/bench/prevector_destructor.cpp
#	src/bench/verify_script.cpp

* More of 11517

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-20 18:03:57 +03:00
dustinface
213216c924
test: p2p_timeouts - Wait a second longer before timeout validations (#3619)
I saw this test failing many times now at this point and it always looked like (if i did not missread the logs) that the expected messages and so the disconnects did pop up right after it failed. So this might help to avoid some red crosses.
2020-07-20 18:03:35 +03:00
UdjinM6
6e592cc691
Merge pull request #3618 from PastaPastaPasta/backports-0.17-pr16
Backports 0.17 pr16
2020-07-20 18:03:11 +03:00
dustinface
354ff23c68
qt: General qt/c++ related fixes and updates (#3562)
* qt: Draw a border around net traffic graph

* qt: ReceiveRequestDialog - Improve QR code image

- Fix issue with bluriness
- Refine sizing/layout of QR code and address
- Adjust coloring to match the themes

* qt: Give the TransactionView's instantsendWidget a name

Required to access it in css

* qt: Rename conflicting label in SendCoinsDialog

- Was named the same as the the label in EditAddressDialog so it couldn't be accessed properly in css

* qt: Give the TransactionView's search field the first focus on startup

* qt: Some updates to the PrivateSend widget on the OverviewPage

- Hide denom labels if inactive
- Enable wordwrap for denom label
- Add some spacer
- Make sure it gets its basic initialization on startup

* qt: Fix some layout issues in SendCoinsDialog's UI file.

- Added some margins for fee selection radio buttons to align them centered to their options
- Removed a weird placed spacer

* qt: Fix vertical alignment of the two balance labels in SendCoinsDialog

* qt: Add newline in textedit of receiverequest

* qt: OptionsDialog - Hide override hint if there is nothing overridden

* qt: Allow stylesheet modifications for auto completition popup

- Inheritance doesn't work here obviously because of QCompleter is parent of the popup
- QStyledItemDelegate delegate is required. Without its not possible to access `::item` selectors from css.

* qt: Make the progress label in the status bar accessible in css

* qt: Update weekend colors of QCalendarWidget on style changes

Its obviously not possible to do this in stylesheets thats why i added
this as workaround.

* qt: Load stylesheets for Intro

This is the datadir selection dialog.

* Drop labelPrivateSendLastMessage

* Add a space

Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
2020-07-20 18:01:11 +03:00
dustinface
415e504780
qt: Introduce platform specific css sections (#3570)
* qt: Add platform specific css loading to GUIUtil::loadStyleSheet

This commit leads to GUIUtil::loadStyleSheet treating css code between
<os="<os_list>"> and </os> different. It will only become added for
operating systems provided in the list of the sections start tag.

There may be multiple entries per section. Possible entries:

- macosx
- windows
- other

<os_list> must be a combination of the three options above separated by
comma like in "windows,macosx".

Its ok to have multiple <os="...">...</os> sections in a file with
arbitrary OS combinations. They will all become added to the end of the
file though. Means even putting an <os> section in the top of the file
would become appended to the end of the file during loading which should
be kept in mind when adding sections to avoid unexpected overwriting.

Example
------------------------------------------------------------------------

<os="macosx, windows, other">

/* Example section to add styles for all operating systems
   Remove any to exclude it.
*/

</os>

* Respect `-uiplatform` when matching for os-specific styles

* Format osStyleExp to make it a bit easier to see groups

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-20 17:57:23 +03:00
dustinface
f43c917191
qt: Redesign BitcoinAmountField (#3569)
* qt: Remove min-width of BitcoinAmountField in ReceiveCoinsDialog

* qt: Add BitcoinUnits::data(const int &row, int role)

Make its data also accessible int, not only by QModelIndex.

* qt: Adjust BitcoinAmountField

- AmountSpinBox (QAbstractBox) is now called AmountLineEdit (QLineEdit)
- Replaced the AmountSpinBox and the QValueComboBox with just an AmountLineEdit
- Adjusted min-size hint calculation
- Increased maximum width
- Right-Align text
- Removed obsolete code

* qt: Removed leftover from legacy BitcoinAmountField

* qt: Move amount field into a Hlayout with a spacer (ReveiveCoinsDialog) 

Make sure it does not get stretched above the in AmountLineEdit::minimumSizeHint() calculated size.

* qt: Removed obsolete workaround related to BitcoinAmountField

Its fixed now with the change to a normal line edit.
2020-07-19 19:32:20 +03:00
dustinface
4a7bb865fd
qt: Introduce runtime theme changes (#3559)
* qt: Set the default theme properly

* qt: Keep track of disabled rects for macOS

This allows enabling them again on theme changes

* qt: Introduce runtime theme changes

Runtime theme changes means no more client restart required if the
theme gets changed in the options dialog.

In the RPCConsole's StyleChange event make sure following things are still correct after a runtime theme change:
- Hide prompt icon for dash themes in rpc console if dash theme gets
activated.
- Clear rpc console on theme changes to make sure fonts/sizes/colors are correct.
2020-07-19 19:29:55 +03:00
UdjinM6
f8706009ae
Merge pull request #3617 from PastaPastaPasta/backports-0.17-pr15
Backports 0.17 pr15
2020-07-19 19:27:24 +03:00
UdjinM6
08e67d2064
Merge pull request #3615 from PastaPastaPasta/backports-0.17-pr13
Backports 0.17 pr13
2020-07-19 19:26:46 +03:00
UdjinM6
1c3b360cfc Fix 13021 2020-07-19 10:34:16 -05:00
pasta
a6cdb75b18 fix compilation in headers that contain 'dashes' and adjust linter
Signed-off-by: pasta <pasta@dashboost.org>
2020-07-19 00:42:54 -05:00
MarcoFalke
db747ea384 Merge #12757: Clarify include guard naming convention
3bcc0059b8 Add lint-include-guards.sh which checks include guard consistency (practicalswift)
8fd6af89a0 Fix missing or inconsistent include guards (practicalswift)
8af65d96f4 Document include guard convention (practicalswift)

Pull request description:

  * **Documentation**: Document include guard convention
  * **Fix**: Fix missing or inconsistent include guards
  * **Regression test**: Add `lint-include-guards.sh` which checks include guard consistency

Tree-SHA512: 8171878f60fd08ccbea943a11e835195750592abb9d7ab74eaa4265ae7fac523b1da9d31ca13d6ab73dd596e49986bfb7593c696e5f39567c93e610165bc2acc
Signed-off-by: pasta <pasta@dashboost.org>

# Conflicts:
#	src/bech32.h
#	src/consensus/merkle.h
#	src/key_io.h
#	src/policy/fees.h
#	src/rpc/server.h
#	src/script/bitcoinconsensus.h
#	src/wallet/coinselection.h
2020-07-19 00:42:54 -05:00
UdjinM6
506cc1ae6b More of 13114 2020-07-18 11:00:36 -05:00
PastaPastaPasta
a0578ac330
We no longer support qt4
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-18 16:00:10 +00:00
PastaPastaPasta
dc1813409a
Dashify
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-18 15:59:53 +00:00
MarcoFalke
5103888706 Merge #13228: Add script to detect circular dependencies between source modules
a7b295e91e Add circular dependencies script (Pieter Wuille)

Pull request description:

  This script finds dependencies between source code modules, treating the `.cpp` and `.h` file as one unit (so it will detect `A.cpp` depending on `B.h` where `B.cpp` depends on `A.h`). This can be used to find out which modules cannot be used independently from each other.

  It is very simplistic at this point, and assumes that a `.cpp` file's corresponding header has the exact same name, with `.cpp` replaced by `.h`. Furthermore, it assumes all `#include`s are relative to the `src/` directory.

  This is not a linter, and is not enforced through Travis or otherwise.

  This is the current output:

  ```
  $ ../contrib/devtools/circular-dependencies.py {*,*/*,*/*/*}.{h,cpp}
  Circular dependency: chain -> pow -> chain
  Circular dependency: chainparamsbase -> util -> chainparamsbase
  Circular dependency: checkpoints -> validation -> checkpoints
  Circular dependency: init -> index/txindex -> init
  Circular dependency: init -> validation -> init
  Circular dependency: init -> net_processing -> init
  Circular dependency: init -> rpc/server -> init
  Circular dependency: init -> txdb -> init
  Circular dependency: init -> validationinterface -> init
  Circular dependency: random -> util -> random
  Circular dependency: sync -> util -> sync
  Circular dependency: txmempool -> validation -> txmempool
  Circular dependency: txmempool -> policy/fees -> txmempool
  Circular dependency: validation -> index/txindex -> validation
  Circular dependency: validation -> policy/policy -> validation
  Circular dependency: validation -> validationinterface -> validation
  Circular dependency: qt/addresstablemodel -> qt/walletmodel -> qt/addresstablemodel
  Circular dependency: qt/bantablemodel -> qt/clientmodel -> qt/bantablemodel
  Circular dependency: qt/bitcoingui -> qt/walletview -> qt/bitcoingui
  Circular dependency: qt/bitcoingui -> qt/walletframe -> qt/bitcoingui
  Circular dependency: qt/bitcoingui -> qt/utilitydialog -> qt/bitcoingui
  Circular dependency: qt/clientmodel -> qt/peertablemodel -> qt/clientmodel
  Circular dependency: qt/paymentserver -> qt/walletmodel -> qt/paymentserver
  Circular dependency: qt/recentrequeststablemodel -> qt/walletmodel -> qt/recentrequeststablemodel
  Circular dependency: qt/sendcoinsdialog -> qt/walletmodel -> qt/sendcoinsdialog
  Circular dependency: qt/transactiontablemodel -> qt/walletmodel -> qt/transactiontablemodel
  Circular dependency: qt/walletmodel -> qt/walletmodeltransaction -> qt/walletmodel
  Circular dependency: rpc/rawtransaction -> wallet/rpcwallet -> rpc/rawtransaction
  Circular dependency: wallet/coincontrol -> wallet/wallet -> wallet/coincontrol
  Circular dependency: wallet/fees -> wallet/wallet -> wallet/fees
  Circular dependency: wallet/rpcwallet -> wallet/wallet -> wallet/rpcwallet
  Circular dependency: wallet/walletdb -> wallet/wallet -> wallet/walletdb
  Circular dependency: txmempool -> validation -> policy/rbf -> txmempool
  Circular dependency: txmempool -> validation -> validationinterface -> txmempool
  Circular dependency: qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/addressbookpage
  Circular dependency: qt/guiutil -> qt/walletmodel -> qt/optionsmodel -> qt/guiutil
  Circular dependency: qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/signverifymessagedialog -> qt/addressbookpage
  Circular dependency: qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/receivecoinsdialog -> qt/addressbookpage
  Circular dependency: qt/guiutil -> qt/walletmodel -> qt/optionsmodel -> qt/intro -> qt/guiutil
  Circular dependency: qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/sendcoinsdialog -> qt/sendcoinsentry -> qt/addressbookpage
  ```

Tree-SHA512: 29bc985b7a41699f4666b0aaa785ca63c2145e84c37458536f4dcf8e3de8f1312cf0323fe09cb8f348a9d363583f76eac2d5bee574bc6a9f9cc97a9b0aad406f
2020-07-18 03:08:13 -05:00
MarcoFalke
26ca2ce77d Merge #13236: break circular dependency: random/sync -> util -> random/sync
84f41946b9 break circular dependency: random/sync -> util -> random/sync (Chun Kuan Lee)

Pull request description:

  LogPrintf  has acutally been moved to logging.h

Tree-SHA512: a7135f5fea421e62f010f2e434873bd1c1738f115453377dada7d24900b3b095535d8aa0462c3acffdacf2f4e819e05ad39b13f2de5a36ac8f7b8467c639a0db
2020-07-18 03:08:13 -05:00
Pieter Wuille
12309092de Merge #13021: MOVEONLY: Move logging code from util.{h,cpp} to new files.
b77b6e2345 MOVEONLY: Move logging code from util.{h,cpp} to new files. (Jim Posen)

Pull request description:

  Split out first commit from #12954 to reduce amount of rebasing necessary.

  This introduces a cyclic dependency between `logging` and `util` that should be cleaned up in a future PR.

Tree-SHA512: 695e512f9c2f7b4ca65e367fc924358e3cb2dc531bcbb7a6f62710b2a87280b35aba7793aa272e457fcd65448abe3feb1deb3b8064ed208917ca356b0f410813
Signed-off-by: pasta <pasta@dashboost.org>

# Conflicts:
#	src/Makefile.am
#	src/util.cpp
#	src/util.h
2020-07-18 03:08:13 -05:00
PastaPastaPasta
287c1bf818
Dashify
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
2020-07-17 21:55:08 +00:00
Wladimir J. van der Laan
512aba9d58
Merge #14018: Bugfix: NSIS: Exclude Makefile* from docs
8563341714a1ec452dd3304a39dd880face49c84 Bugfix: NSIS: Exclude Makefile* from docs (Luke Dashjr)

Pull request description:

  Otherwise, the generated Makefile is included in the NSIS-installed documentation, which can lead to non-determinism (eg, if gawk is installed on some build VMs, but others only have mawk)

  (gawk is part of the standard Ubuntu bionic server install, but for some reason missing on many other developers' build VMs.)

  (Branch is safe to merge cleanly into 0.14-0.17 branches also)

  Testing requested. I have a separate `fix_nsis_makefile` branch directly on the `v0.17.0rc1` tag, which produces for me (with gawk installed):

  ```
  f2f0e81e053f6bb59f3007a182e3e8b5cc4ccd374cfee29c80861d00c508a798  bitcoin-0.17.0-win-unsigned.tar.gz
  935d4ef25e9602352833bbd594003a7b07ef9e2281fa9a2258c0f71167bdaaca  bitcoin-0.17.0-win32-debug.zip
  37a789993f4fef6007633a988614f8008389463ded6807c1beaaf3c04212d5f9  bitcoin-0.17.0-win32-setup-unsigned.exe
  8b04d4d7de3d4308bff5f2e61bb771926dd66fa815fcea1eadc8d627f0f8970a  bitcoin-0.17.0-win32.zip
  8883dad775c2b97085b2217175e9916a9aa894ff97fbdc9b7ca74b4e8206298d  bitcoin-0.17.0-win64-debug.zip
  cd30d3eb2b739f6e4956c768ea4fb0230fb23e01dcad094d2fbf4efa6c7dad52  bitcoin-0.17.0-win64-setup-unsigned.exe
  817d5b9df4cc3f7fd323e134ed8670787aa9cafc921e883bbbb9cdfb439b03da  bitcoin-0.17.0-win64.zip
  e3ed7f2d4a5993e4c343e967cfa838c6314fa98900c43519572a31b96d3e00ca  src/bitcoin-0.17.0.tar.gz
  38d2f92cf2c9823ea3c52aaa9c42f7cb38a87a12896a89379bfc4315a04d2e92  bitcoin-win-0.17-res.yml
  ```

Tree-SHA512: dda68a765e3e682f7b4352a8ec6942559eb6a29c740d6bd1008c788e3e50f44fd2d157100616cc7aaffc2568640ec6a74fb063a29645cd02ba14a0828ab6f01c
2020-07-17 15:45:43 -05:00
MarcoFalke
de3b153e48
Merge #13908: [Docs] upgrade rescan time warning from minutes to >1 hour
bb5b1c0b2d [Docs] upgrade rescan time warning from minutes to >1 hour (Mason Simon)

Pull request description:

  When I rescanned just now it took well over an hour. The time warning "may take minutes" didn't prepare me for that.

  ```
  2018-08-08T03:10:17Z [wallet] Still rescanning. At block 174747. Progress=0.008341
  2018-08-08T03:11:17Z [wallet] Still rescanning. At block 204233. Progress=0.024533
  2018-08-08T03:12:17Z [wallet] Still rescanning. At block 221170. Progress=0.038340
  ...
  2018-08-08T04:16:17Z [wallet] Still rescanning. At block 524815. Progress=0.957105
  2018-08-08T04:17:17Z [wallet] Still rescanning. At block 528572. Progress=0.971323
  2018-08-08T04:18:17Z [wallet] Still rescanning. At block 532458. Progress=0.986824
  ```

  This is on a 4-core 4ghz system with a 7200rpm drive.

Tree-SHA512: 722ccf566bfd6a3381fa173e08849cb676fe4c1f1cb2c4b86b07df2a5dc1ca0d54797cbe8fd606cdc2c60fef2be7c98e052460decdac2132ba759cff822132e8
2020-07-17 15:45:43 -05:00
MarcoFalke
eadd1f5bf2
Merge #13895: Docs: fix GetWarnings docs to reflect behavior
13bb5cae31 Docs: fix GetWarnings docs to reflect behavior (Ben Woosley)

Pull request description:

  In "gui", it returns all warnings, joined by a separator
  In "statusbar", it returns the last warning set which seems notionally to be the most important, though that is debatable

Tree-SHA512: 5fc0dc68d143a040b7b893b7176188e2b064c2cf1d559420906e4de636e16e9ab7451a1b87603020a7a8f66d6b94f4ee6c7da2697efad879f9e6de9c0e0c9ac1
2020-07-17 15:45:43 -05:00
Wladimir J. van der Laan
200c9b7b7c
Merge #13857: docs: fix typo in translation_process.md
081f5b4e2baed28ffa3bf6ce11e0aec7156038c2 Docs: Improve "of" grammar (johnlow95)

Pull request description:

Tree-SHA512: 7227371372cd4cc0ec2dbbbf0947c63f63ba41f8c6f9f6909f1dd37a724bf09a60bc57037233cc282922bcbcf2aff3bfd35bef823bdf11ffe26ba990fa3f7e32
2020-07-17 15:45:43 -05:00
Wladimir J. van der Laan
c381b85cdd
Merge #13844: doc: correct the help output for -prune
312ff01ee533fab68348283200eb57e9956fdb34 -prune option -help output aligned with code (Hennadii Stepanov)

Pull request description:

  The -help output for -prune is aligned with the code.

  In the code (.../src/init.cpp#L1063):
  ```
          if (nPruneTarget < MIN_DISK_SPACE_FOR_BLOCK_FILES) {
              return InitError(strprintf(_("Prune configured below the minimum of %d MiB.  Please use a higher number."), MIN_DISK_SPACE_FOR_BLOCK_FILES / 1024 / 1024));
          }
  ```
  So correct value of nPruneTarget is **greater than or equal to** MIN_DISK_SPACE_FOR_BLOCK_FILES.

Tree-SHA512: 8e55aa99c8f5a9d020677b0f1b016215e2dbda5fa4ee7c8504b12a3abef226bc21beca118fa332c0bf206a4aff913a5a717b55bb5b2ecdba38423e9c0161209e
2020-07-17 15:45:43 -05:00
Wladimir J. van der Laan
86c064bed3
Merge #13824: doc: Remove outdated net comment
fa365021bbb4c0865e6655100c1cbf85e2b3c7fa doc: Remove outdated net comment (MarcoFalke)

Pull request description:

  `mapAddresses` and the corresponding "critsect" has been removed in 5fee401fe1 more than 6 years ago. Now is probably a good time to remove this confusing comment.

Tree-SHA512: 498a403d5703da395c18a7ebb776aa6e693e59fe43a839fefd261e0a5af58621763813979d4cfbd8d1728ce73b325b82002e393cde79bdbff33e0fbf68ab6747
2020-07-17 15:45:43 -05:00
Wladimir J. van der Laan
d340124612
Merge #13835: [trivial,doc] Fix memory consistency model in comment
fe7180c5b2c37313722b8d21c33eec6ff011f26d [trivial,doc] Fix memory consistency model in comment (Jesse Cohen)

Pull request description:

  Updating a comment overlooked during review in #13247

Tree-SHA512: 0bd54ba1c265fdd77fd6e12ad0be46dd422348f7d926ce9abaca53fdb3a3c55c0d1cd90b4382321352076f4a81e2249c0014cd789f47a3637cb93bd983cb4657
2020-07-17 15:45:43 -05:00
MarcoFalke
f9aa9ad39f
Merge #13247: Add tests to SingleThreadedSchedulerClient() and document the memory model
cbeaa91dbb Update ValidationInterface() documentation to explicitly specify threading and memory model (Jesse Cohen)
b296b425a7 Update documentation for SingleThreadedSchedulerClient() to specify the memory model (Jesse Cohen)
9994d01d8b Add Unit Test for SingleThreadedSchedulerClient (Jesse Cohen)

Pull request description:

  As discussed in #13023 I've split this test out into a separate pr

  This test (and documentation update) makes explicit the guarantee (previously undefined, but implied by the 'SingleThreaded' in `SingleThreadedSchedulerClient()`) - that callbacks pushed to the `SingleThreadedSchedulerClient()` obey the single threaded model for memory and execution - specifically, the callbacks are executed fully and in order, and even in cases where a subsequent callback is executed by a different thread, sequential consistency of memory for all threads executing these callbacks is maintained.

  Maintaining memory consistency should make the api more developer friendly - especially for users of the validationinterface. To the extent that there are performance implications from this decision, these are not currently present in practice because all use of this scheduler happens on a single thread currently, furthermore the lock should guarantee consistency across callback executions even when callbacks are executed by multiple threads (as the test does).

Tree-SHA512: 5d95a7682c402e5ad76b05bc9dfbca99ca64105f62ab9e78f6fc0f6ea8c5277aa399fbb94298e35cc677b0c2181ff17259584bb7ae230e38aa68b85ecbc22856
2020-07-17 15:45:43 -05:00
MarcoFalke
a9c0218bd7
Merge #13706: doc: Minor improvements to release-process.md
95464c7519 doc: Improve command to generate list of authors for release notes (Mitchell Cash)
1c22cc1af1 doc: Update broken links to now point to gitian-build.py (Mitchell Cash)

Pull request description:

  - Update broken links
  - Improve command to generate list of authors for a release

  ---

  I also note that it asks to ping **wumpus** on IRC, to assist in generating a list of merged pulls and sort them into categories based on labels. I tried to turn this into a simple one-liner as well (something like ``git log --merges --format="- \`%h\` %s (%an)" v0.16.0..v0.16.1``), but it didn't seem to capture everything I needed.

  Would it be worthwhile **wumpus** open-sourcing his code into `contrib/devtools` so there is no single point of failure (even if it can manually be worked around).

Tree-SHA512: 8e7f0880ff07ce8fe67b74de3f2c4b78dafe2c95eefb0617fa319ff196232967cb22ee75a183a39f93bfc6e0bf85547689160139312cee5956af2c069b8a3b6a
2020-07-17 15:45:43 -05:00
MarcoFalke
2aa30a70e8
Merge #12764: doc: Remove field in getblocktemplate help that has never been used.
ac8a1d092e [RPC] Remove field in getblocktemplate help that has never been used (Conor Scott)

Pull request description:

  [BIP 22 - getblocktemplate](https://github.com/bitcoin/bips/blob/master/bip-0022.mediawiki#Transactions%20Object%20Format) specifies an optional flag, `required` if the transaction must be in the block.

  Luke's implementation #936 did not include this flag, and it was later added to the help description in #3246 (more than a year later) but the field was still never actually implemented. As far as I can tell, bitcoin core would have never actually included this in a `getblocktemplate` call, so it seems logical to remove it from the help description.

  If I am missing something or this is considered harmless - I can close the PR.

Tree-SHA512: f25dda51cc4e1512aff69309be04e3053bdccc1cf03c8d58e8866aa1fdf9d86cc57df872e85528351fc8a8d6d64a8f46a36c513680834762d854f368fbeb0f44
2020-07-17 15:45:43 -05:00
MarcoFalke
c0f44834b7
Merge #13718: docs: Specify preferred Python string formatting technique
b1b8863fd6 docs: Specify preferred Python string formatting technique (Mason Simon)

Pull request description:

  @practicalswift this documents the nit you suggested in my previous PR
  https://github.com/bitcoin/bitcoin/pull/13707#discussion_r203628395

Tree-SHA512: b75335976b30ccbce5c2e3a46e5b6218e797944e7025c17b4e56f294670397d731e1a9f4fe7e809d907136e2e62cd9c2b8404b875b4879a1e3f0b1970b94d5a8
2020-07-17 15:45:43 -05:00
Wladimir J. van der Laan
2222a9b9f5
Merge #13614: doc: Update command line help for -printtoconsole and -debuglogfile (satwo)
5e362c0cf0148d594c1e83edab0774b64e8ec754 Fix command line help for -printtoconsole and -debuglogfile (Samuel B. Atwood)

Pull request description:

  This is a rebased version of #13589 with the changes to the 0.16.x release notes removed.

  > #13004 changed the default behavior for printtoconsole but this has not been reflected in the command line help.

  > This fixes the description of -printtoconsole to reflect this change, and also provides the user with missing information on how to explicitly disable logging to debug.log.

  > At present I have made the latter update to two separate places (-printtoconsole and -debuglogfile) because a user looking for information on how to disable logging is probably going to look in the "Debugging/Testing Options" section. Moving -debuglogfile from the "General" options category to the "Debugging/Testing" section could potentially remove the need for this redundancy but may be out of the scope of this PR.

Tree-SHA512: 7461d59a1864039d5a9dfcce765a1169df882f51a4ca50a6066416c0803821cd821be07be534e0bd57f0a22c0b45adb881a93abbe91962bc37d2d228f35ee712
2020-07-17 15:45:43 -05:00
MarcoFalke
d26bcfa183
Merge #12820: contrib: Fix check-doc script regexes
0c17e27630 init: Remove help text for non-existent -fuzzmessagestest arg (MarcoFalke)
136084470c contrib: Fix check-doc script regexes (MarcoFalke)

Pull request description:

  Fixup the regexes to properly find all used args. The regex should now match all of the getter and setter methods of the `ArgsManager`. See https://dev.visucore.com/bitcoin/doxygen/class_args_manager.html#pub-methods

  Before:
  ```
  Args used        : 159
  Args documented  : 188
  Args undocumented: 0
  Args unknown     : 29
  ```

  After:
  ```
  Args used        : 183
  Args documented  : 188
  Args undocumented: 0
  Args unknown     : 5
  ```

Tree-SHA512: 1a7fb7ea55b2f6030358a1055d8f2c19b31f69d0603be0b009e6e603564014b4e2bb824357c9d43d0fba3ce7159b7c4e7eaa60b3f962053d94f73d0e626294fc
2020-07-17 15:42:51 -05:00
Wladimir J. van der Laan
52784085cb
Merge #12800: doc: Add note about our preference for scoped enumerations ("enum class")
0fee2b4 doc: Add note about our preference for scoped enumerations ("enum class") (practicalswift)

Pull request description:

  Add note about our preference for scoped enumerations (`enum class`).

  Context: #10742

Tree-SHA512: 0ab3465c2b734240cb38a05c2f6e75f1af54207a0f1a2e8115e7b367fd37e8966a2fc0240c6d4c2c66b6677b5f367eda4f4b783bbaa419777336c17f04adff06
2020-07-17 15:42:51 -05:00
Wladimir J. van der Laan
ea7575375d
Merge #12700: Document RPC method aliasing
4c317d89e Document RPC method aliasing (Russell Yanofsky)

Pull request description:

  Suggested by @Sjors in https://github.com/bitcoin/bitcoin/pull/11536#issuecomment-372820660

Tree-SHA512: 7bf16238e41b6c6c078e9103d8eac2ac76739a2c16b4f964be49bfde1f20f31a1fb30badf1faaa6ddc301a74f0d785d19567069b50de78c502144479143cb38c
2020-07-17 15:42:51 -05:00
Wladimir J. van der Laan
36e90869b5
Merge #12452: docs: clarified systemd installation instructions in init.md for Ubuntu users.
4d14d06fc docs: clarified systemd installation instructions in init.md for Ubuntu users. (DaveFromBinary)

Pull request description:

  Added a note to init.md to clarify the .service copy path for Ubuntu because it differs from the described copy path.

  Also noted which version of Ubuntu switched to systemd for the default system init to clarify when the systemd installation steps should be used instead of the upstart installation steps for Ubuntu users.

Tree-SHA512: 1ac6143a177d0f3782ff641029d71eb1f3b3be0c1482e266154d3ca093251b58a10a5f037d1cc82dbfaeae058df2bb8e904833ccb88b032f1a59a151724f95e2
2020-07-17 15:42:50 -05:00
MarcoFalke
62047500d2
Merge #12584: Fix typos and cleanup documentation
a9761cae1c Fix typos and cleanup (Dimitris Apostolou)

Pull request description:

  [ci-skip]

Tree-SHA512: 6d7e02d8fdf6add702bbfe4439ace9c8621b45d21111abc69d85be9120347b06a029bc1885665547c1230ebc41da9d97210f6d1325b7692a4585356969ecb127
2020-07-17 15:42:50 -05:00
Wladimir J. van der Laan
db50935489
Merge #11761: [docs] initial QT documentation
c8edc2c [docs] initial QT documentation, move Qt Creator instructions (Sjors Provoost)

Pull request description:

  I'll update this as I figure out how everything is tied together, but I think it's a useful enough start.

Tree-SHA512: d96e5c9ba8ccc3a1b92a0894a8a8449317100eebb14e5d390b51793534458f50eac296cf2945fccf81b85aff23fa32d91d6015a0a76ada4f7091a400d7508ae5
2020-07-17 15:42:50 -05:00
Wladimir J. van der Laan
87cf14727a
Merge #13570: RPC: Add new "getzmqnotifications" method
161e8d40a4e4c0e701b6c8142b8dcacf2190545e RPC: Add new getzmqnotifications method. (Daniel Kraft)
caac39b0ace38aa088d88c1a5a9a9dbb4d2e893f Make ZMQ notification interface instance global. (Daniel Kraft)

Pull request description:

  This adds a new RPC method `getzmqnotifications`, which returns information about all active ZMQ notification endpoints.  This is useful for software that layers on top of bitcoind, so it can verify that ZeroMQ is enabled and also figure out where it should listen.

  See #13526.

Tree-SHA512: edce722925741c84ddbf7b3a879fc9db1907e5269d0d97138fe724035d93ee541c2118c24fa92f4197403f380d0e25c2fda5ca6c62d526792ea749cf527a99a0
2020-07-17 15:42:49 -05:00
MarcoFalke
85b0aa5f9d
Merge #13114: wallet/keystore: Add Clang thread safety annotations for variables guarded by cs_KeyStore
968b76f77c Add missing cs_KeyStore lock (practicalswift)
4bcd5bb87d Add locking annotations for variables guarded by cs_KeyStore (practicalswift)

Pull request description:

  * Add Clang thread safety annotations for variables guarded by `cs_KeyStore`
  * Add missing `cs_KeyStore` lock

Tree-SHA512: 7d93513c2da0cd564b9f1e75aa5156a454a4133eb845020fde8872e685dd5758353e93c33364aeea4a812c08353a810494e503a5ce160cc5be0af5af4bb2e6d7
2020-07-17 15:42:20 -05:00
MarcoFalke
2829b4d3b9
Merge #13656: Remove the boost/algorithm/string/predicate.hpp dependency
e3245f2e7b Removes Boost predicate.hpp dependency (251)

Pull request description:

  This pull request removes the `boost/algorithm/string/predicate.hpp` dependency from the project.

  To replace the the `predicate.hpp` dependency from the project the function calls to `boost::algorithm::starts_with` and `boost::algorithm::ends_with` have been replaced with respectively C++11's `std::basic_string::front` and `std::basic_string::back` function calls.

  Refactors that were not required, but have been done anyways:

  - The Boost function `all` was implicitly made available via the `predicate.hpp` header. Instead of including the appropriate header, function calls to `all` have been replaced with function calls to `std::all_of`.

  - The  `boost::algorithm::is_digit` predicate has been replaced with a custom `IsDigit` function that is locale independent and ASCII deterministic.

Tree-SHA512: 22dda6adfb4d7ac0cabac8cc33e8fb8330c899805acc1ae4ede402c4b11ea75a399414b389dfaa3650d23b47f41351b4650077af9005d598fbe48d5277bdc320
2020-07-17 15:42:20 -05:00
Wladimir J. van der Laan
ed5f046a99
Merge #12225: Mempool cleanups
669c943 Avoid leaking prioritization information when relaying transactions (Suhas Daftuar)
e868b22 fee estimator: avoid sorting mempool on shutdown (Suhas Daftuar)
0975406 Correct mempool mapTx comment (Suhas Daftuar)

Pull request description:

  Following up on #12127 and #12118, this cleans up a comment that was left incorrect in txmempool.h, and addresses a couple of the observations @TheBlueMatt made about an unnecessary use of `queryHashes()` and a small information leak when prioritizing transactions.

  Left undone is nuking queryHashes altogether; that would require changing the behavior of the `getrawmempool` rpc call, which I think I might be in favor of doing, but wanted to save for its own PR.

Tree-SHA512: c97d10b96dcd6520459287a4a2eda92774173757695100fcfe61e526aef86f394507c331d17f9e0c14b496c33ec46198a0f165a847762ca50f7c6780b993f162
2020-07-17 15:42:20 -05:00
PastaPastaPasta
1d94d914c5
privatesend: Increase max participants to 20 (#3610)
* Add spork to change max mixing participants to 20

Signed-off-by: pasta <pasta@dashboost.org>

* Also change min participants on devnet/testnet

Signed-off-by: pasta <pasta@dashboost.org>

* adjust formatting

Signed-off-by: pasta <pasta@dashboost.org>

* add nPoolNewMinParticipants under regtest

Signed-off-by: pasta <pasta@dashboost.org>
2020-07-17 13:19:29 +03:00
PastaPastaPasta
b07a7b810c
Backport 11796 + 11774 (#3612)
* Merge #11796: [tests] Functional test naming convention

5fecd84 [tests] Remove redundant import in blocktools.py test (Anthony Towns)
9b20bb4 [tests] Check tests conform to naming convention (Anthony Towns)
7250b4e [tests] README.md nit fixes (Anthony Towns)
82b2712 [tests] move witness util functions to blocktools.py (John Newbery)
1e10854 [tests] [docs] update README for new test naming scheme (John Newbery)

Pull request description:

  Splitting #11774 into two parts -- this part updates the README with the proposed naming convention, and adds some checks to test_runner.py that the number of tests violating the naming convention doesn't increase too much. Idea is this part of the change should not introduce merge conflicts or require much rebasing, so reviews of the complicated bits won't become invalidated too often; while the second part will just be file renames, which will require regular rebasing and will introduce merge conflicts with pending PRs, but can be merged later, and should also be much easier to review, since it will only include relatively trivial changes.

Tree-SHA512: b96557d41714addbbfe2aed62fb5a48639eaeb1eb3aba30ac1b3a86bb3cb8d796c6247f9c414c4695c4bf54c0ec9968ac88e2f88fb62483bc1a2f89368f7fc80

* update violation count

Signed-off-by: pasta <pasta@dashboost.org>

* Merge #11774: [tests] Rename functional tests

6f881cc880 [tests] Remove EXPECTED_VIOLATION_COUNT (Anthony Towns)
3150b3fea7 [tests] Rename misc functional tests. (Anthony Towns)
81b79f2c39 [tests] Rename rpc_* functional tests. (Anthony Towns)
61b8f7f273 [tests] Rename p2p_* functional tests. (Anthony Towns)
90600bc7db [tests] Rename wallet_* functional tests. (Anthony Towns)
ca6523d0c8 [tests] Rename feature_* functional tests. (Anthony Towns)

Pull request description:

  This PR changes the functional tests to have a consistent naming scheme:

      tests for individual RPC methods are named rpc_...
      tests for interfaces (REST, ZMQ, RPC features) are named interface_...
      tests that explicitly test the p2p interface are named p2p_...
      tests for wallet features are named wallet_...
      tests for mining features are named mining_...
      tests for mempool behaviour are named mempool_...
      tests for full features that aren't wallet/mining/mempool are named feature_...

  Rationale: it's sometimes difficult for new contributors to know what's already covered by existing tests and where new tests should be added. Naming in a consistent fashion makes it easier to see what's already covered at a glance.

Tree-SHA512: 4246790552d42bbd95f6d5bdf67702b81b3b2c583ce7eaf1fe6d8e254721279b47315973c6e9ae82dad6e4c747f12188160764bf2624c0f8f3b4d39330ec8b16

* rename tests and edit associated strings to align test-suite with test name standards

Signed-off-by: pasta <pasta@dashboost.org>

* fix grammar in test/functional/test_runner.py

Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>

* ci: Fix excluded test names

* rename feature_privatesend.py to rpc_privatesend.py

Signed-off-by: pasta <pasta@dashboost.org>

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: MarcoFalke <falke.marco@gmail.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
2020-07-17 02:44:20 +03:00
dustinface
d157718243
llmq: Fix thread handling in CDKGSessionManager and CDKGSessionHandler (#3601)
* llqm: Fix thread handling in CDKGSessionManager and CDKGSessionHandler

* llmq: Removed unused thread_pool from CDKGSessionManager

* Tweak `CDKGSessionHandler::StartThread()`

* llmq: Simplify CDKGSessionHandler's thread naming

* llmq: Make sure CDKGSessionHandler uses a valid LLMQ type

Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-16 23:30:59 +03:00
dustinface
d5410fd4a9
qt: General CSS related redesigns (#3563)
* qt: User border-image in place of image

For some reason image produced weird outputs on some resolution screens.

* qt: Fix layout issues in TransactionView

* qt: Fix layout issues in OverviewPage

* qt: Replace transparent with #00000000 in stylesheets

* qt: Use #a84832 as red where possible.

This includes css files and any color usage in code.

* qt: Finetune QPushButton style

* qt: Customized QSlider (used in the Debug window -> NetworkTraffic)

* qt: Finetune QToolbar style

* qt: Customized QProgressBar

* qt: Customized QCalendarWidget

* qt: Finetune QStatusBar style

- Give the progress label a name as css reference
- Set min height and margins

* qt: Finetune QMenu style

- Set a light rounded border
- Color for disabled items
- Color/Style for seperator
- Give the items padding

* qt: Customized QGroupBox

* qt: Customized QToolTip

* qt: Give inputs widgets a proper hover/focus/selected/disabled style

* qt: Finetune SendCoinsDialog

- Add light line below the coincontrol frame
- Add light line above fee frame
- Increase header font size
- Remove button layout changes of CoinControl button
- Fix Layout/Alignment of balance labels

* qt: Customized RPC console's autocompletition popup

* qt: Add stylesheets to Intro

This is the datadir selection dialog.

* qt: OptionsDialog - Give the reset button the "light button" style

* qt: Finetune shared styles in general.css

* qt: Finetune coloring in dark.css

* qt: Finetune coloring in light.css

* More fixes for traditional.css

No text colors, s/transparent/#00000000/

* qt: Run update-css-files.py

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-16 23:30:36 +03:00
dustinface
f44dd06eef
util: Change TraceThread's "name" type: "const char*" -> "const std::string" (#3609)
Having "const char*" leads to undefined behaviour if the "const char*"
is deallocated before the thread used it.

Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-15 00:15:05 +03:00
dustinface
fc6fe505ca
qt: Add -debug-ui command line parameter (#3558)
* qt: Set parents properly to inherit css and remove redundant loading

The stylesheet is inherited from the parent so its enough to set it for the main window and use this as parent for all other windows.

Except for the ShutdownDialog. This needs to have its own stylesheet set because we can't have the main window as parent of the ShutdownDialog.

* qt: Adding Qt::Window flag to the constructor of RPCConsole

This is required now as RPCConsole does not longer show as extra window with a parent set (For stylesheet inheritance).

* qt: Add UI debug mode (-debug-ui)

If this mode is enabled the content of the css files will become pushed to the UI if there were any changes made to the stylesheet files in the custom css directory. It also forces some UI elements to show up which are actually only shown under special conditions (e.g. watch balance labels). Its required to set a custom css directory with -custom-css-dir to enable this.

* qt: Adjust the description of -debug-ui
2020-07-14 23:16:38 +03:00