Commit Graph

26840 Commits

Author SHA1 Message Date
Konstantin Akimov
9a9d0d5b79
feat: drop SPORK 24 (EHF) so far as this feature works on testnet / mainnet 2024-09-30 12:56:31 +07:00
Konstantin Akimov
da0dc06eea
perf: optimize feature_mnehf.py by generating less blocks 2024-09-30 12:56:31 +07:00
Konstantin Akimov
0de3923b06
feat: bury fork mn_rr (masternode reward reallocation) 2024-09-30 12:56:26 +07:00
pasta
750475ffaa
Merge #6285: backport: bitcoin-core/gui#29, gui#123, #164, gui#256, gui#309, gui#313, gui#329, gui#331, gui#333, gui#346, gui#393
6431f71b3a Merge bitcoin-core/gui#393: Fix regression in "Encrypt Wallet" menu item (Hennadii Stepanov)
fc900a8aea Merge bitcoin-core/gui#333: refactor: Signal-slot connections cleanup (Hennadii Stepanov)
9ca2aad0b3 Merge bitcoin-core/gui#164: Handle peer addition/removal in a right way (Hennadii Stepanov)
7d9ce32562 Merge bitcoin-core/gui#29: refactor: Optimize signal-slot connections logic (Hennadii Stepanov)
3be79a9ed9 Merge bitcoin-core/gui#256: Save/restore column sizes of the tables in the Peers tab (Hennadii Stepanov)
f4fccd31cb Merge bitcoin-core/gui#329: Make console buttons look clickable (Hennadii Stepanov)
5a0d524506 Merge bitcoin-core/gui#123: rpc: Do not accept command while executing another one (Hennadii Stepanov)
19310646e0 Merge bitcoin-core/gui#331: Make RPC console welcome message translation-friendly (Hennadii Stepanov)
69a1305978 Merge bitcoin-core/gui#309: Add access to the Peers tab from the network icon (Hennadii Stepanov)
c858325d40 Merge bitcoin-core/gui#346: English translations update (Hennadii Stepanov)
412445afb5 Merge bitcoin-core/gui#313: qt: Optimize string concatenation by default (W. J. van der Laan)

Pull request description:

  ## Issue being fixed or feature implemented
  Gui related backports from bitcoin v22

  ## What was done?
  See commits

  ## How Has This Been Tested?
  Run unit/functional tests

  See also:

  <img alt="right menu" src="https://user-images.githubusercontent.com/32963518/116794314-d64b9b80-aad4-11eb-89ca-7f75c7442ba8.gif"/>

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    light ACK 6431f71b3a
  PastaPastaPasta:
    utACK 6431f71b3a

Tree-SHA512: bb14de71c9375b10da695db6c521c26686815b8b5ca2748bfe3bd2eafa9d332acd60acd85a1f2eed3aa831d16e5741ecc7570130ce9cf5bff011c065b55d62b2
2024-09-26 20:20:13 -05:00
pasta
9b21aef29e
Merge #6269: feat: improvements for v19, v20 and dip3 - fire up test chains by first block 5/n
603061141f style: apply clang format for new changes (Konstantin Akimov)
f01338f607 feat: drop requirement of v20 for Asset Unlock transactions (Konstantin Akimov)
b3e9e5c981 feat: drop v20 requirement for special EHF transaction (Konstantin Akimov)
8639298e16 refactor: drop fast_dip3_enforcement=True from functional tests. (Konstantin Akimov)
0add6bc823 feat: removed 2 checkpoints: TestChainDIP3Setup and TestChainV19Setup from unit tests (Konstantin Akimov)
3fffb0cab9 refactor: moves evo-deterministicmns_tests specific code from header (Konstantin Akimov)
1d96fbf091 feat: let asset-unlock transactions be available since v20 on all networks (Konstantin Akimov)
4b4001bbe7 perf: activate v20 on the same block as v19 for Reg Test (Konstantin Akimov)
e0d97cf7ac feat: let asset locks be mined before v20 (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  This PR is 5th in the achieving ultimate goal to activate old forks from block 1.
  It helps to run unit and functional tests faster; it helps for platform's dev-environment to start faster.

  ## What was done?
   - v20 on RegTest is activated from same block as v19 (height 1200 changed to 900)
   - relaxed condition for special transactions Asset Lock (can be mined any block so far as v20 is activated long time ago).
   - unify code for regtest, mainnet, testnet for Asset Unlock validation
   - removed 2 checkpoints: TestChainDIP3Setup and TestChainV19Setup from unit tests which make further changes for forks easier
   - enforced flag `fast_dip3_enforcement=True` from functional tests which is always true

  ## How Has This Been Tested?
  Run unit and functional tests

  `tsan` job runs  500 seconds faster of real time and 2000seconds faster for "accumulated time"
  https://gitlab.com/dashpay/dash/-/jobs/7817453421 - this PR
  https://gitlab.com/dashpay/dash/-/jobs/7805625816 - some old PR for reference

  No breakdown per tests here, because they affect each other and runs in parallel.

  ## Breaking Changes
  Regtest has v20 activated on same block as v19 if otherwise is not specified with `-testactivationheight=v20@1200`

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    utACK 603061141f
  PastaPastaPasta:
    utACK 603061141f

Tree-SHA512: 5a1e15a32931682240ecd8e5bab8a0bba67eebf0409ea7b7556018240c48d59ec8daab8859a2fb883154aac95813553c2835a0527269fcf4e81f1edb1b2ed0ac
2024-09-26 20:12:40 -05:00
pasta
d8da09401d
Merge #6247: feat: drop deprecated protx *_hpmn RPC entry points in favor of protx *_evo
6f0b546fc2 feat: drop deprecated protx_*_hpmn RPC entry points in favor of protx_*_evo (Konstantin Akimov)

Pull request description:

  ## What was done?

  Drop deprecated protx *_hpmn RPC entry points in favor of protx *_evo

  Full list of removed composite RPC:

    - protx register_fund_hpmn
    - protx register_hpmn
    - protx register_prepare_hpmn
    - protx update_service_hpmn

  ## How Has This Been Tested?
  **platform still uses it, need to replace `_hpmn` suffixes to `_evo` and remove -deprecated_hpmn from dash.conf**

  shumkov please be notified that mentioned RPC are going to be removed in Dash Core v22 as deprecated, this PR requires your approval

  ## Breaking Changes
  Removed RPC:
    - protx register_fund_hpmn
    - protx register_hpmn
    - protx register_prepare_hpmn
    - protx update_service_hpmn

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    utACK 6f0b546fc2
  PastaPastaPasta:
    utACK 6f0b546fc2

Tree-SHA512: 6667c34da5e9879b0d0bc326f6e42de4ee886c3b3e61fe4e76e80e3dbd16a8e27aa98435465ba9e41d5097557d2f924948031b0fe5099121b742106d45869426
2024-09-26 17:38:51 -05:00
Konstantin Akimov
c200175ebf
Merge #6250: backport: Merge bitcoin#22217, 23025, 22362
bd67f80634 Merge bitcoin/bitcoin#22362: Drop only invalid entries when reading banlist.json (W. J. van der Laan)
8b3a486702 Merge bitcoin/bitcoin#23025: bench: update nanobench add `-min_time` (W. J. van der Laan)
d7a20b3ee6 Merge bitcoin/bitcoin#22217: refactor: Avoid wallet code writing node settings file (Samuel Dobson)

Pull request description:

  btc backport

ACKs for top commit:
  knst:
    utACK  bd67f80634
  UdjinM6:
    utACK bd67f80634

Tree-SHA512: c487760c7b4946c21103978625076dd276344c831e99452031fae9b5c6cf954a1a0d3109725ab10f3d6837a5fd1833886a7e28c88b28429c6638c82f06f54f3d
2024-09-27 00:32:20 +07:00
Konstantin Akimov
67b5d86d8c
Merge #6287: test: fixes and improvements for feature_llmq_simplepose.py
a656d2f14f feat: more logging (UdjinM6)
cedd3d52be refactor: make expected_connections optional (UdjinM6)
fd2fbe06a3 fix: check mn state after each mined quorum (UdjinM6)
cce87a662a fix: should have at least 2 connections when testing isolate_mn (UdjinM6)
793f4b739f fix: connect repaired mns only (UdjinM6)
8597acd0dc fix: remember mns that don't listen and avoid them (UdjinM6)
2069625759 fix: calculate expected_complaints correctly (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  Fix some general mistakes and also `connect_nodes` related issues discovered while debugging #6276. Add some logging to make debugging a bit easier.

  ~NOTE: builds on top of #6278 to avoid conflicts, will rebase~ done

  ## What was done?
  pls see individual commits

  ## How Has This Been Tested?
  run tests

  ## Breaking Changes
  n/a

  ## Checklist:
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  kwvg:
    LGTM, ACK a656d2f14f
  knst:
    ACK a656d2f14f
  PastaPastaPasta:
    utACK a656d2f14f

Tree-SHA512: 30f657218ce0338f9a5a09d9a839cca9c4605740265d2182a1e143ec6ece739fecf748f7b60ccec065c17d9f6d893c0c47893be05c44bb8d34624fb4bf3c2a58
2024-09-27 00:00:10 +07:00
Konstantin Akimov
603061141f
style: apply clang format for new changes 2024-09-26 14:17:06 +07:00
Konstantin Akimov
f01338f607
feat: drop requirement of v20 for Asset Unlock transactions
This fork already happened and no versioning is required
2024-09-26 14:17:06 +07:00
Konstantin Akimov
b3e9e5c981
feat: drop v20 requirement for special EHF transaction
It is not a breaking changes, because this fork is already happened in past
and no EHF transaction is in blockchain at that moment which requires versioning
2024-09-26 14:17:06 +07:00
Konstantin Akimov
8639298e16
refactor: drop fast_dip3_enforcement=True from functional tests.
It also change dip3params default from 30:50 to 2:2
De facto, that always equals True, so, there's no meaning to have it
2024-09-26 14:17:05 +07:00
Konstantin Akimov
0add6bc823
feat: removed 2 checkpoints: TestChainDIP3Setup and TestChainV19Setup from unit tests
It takes time to update each checkpoint if any forks changes in unit tests: new height,
new bit, and extra params. Reduced scope of changes for future updates
2024-09-26 14:16:38 +07:00
Konstantin Akimov
3fffb0cab9
refactor: moves evo-deterministicmns_tests specific code from header 2024-09-26 14:16:38 +07:00
Konstantin Akimov
1d96fbf091
feat: let asset-unlock transactions be available since v20 on all networks
It simplify implementation and unify RegTest, Mainnet and Testnet
No asset-unlock transaction has actually be mined yet, but v20 and mn_rr are activated long time ago.
So, this changes are not breaking changes
2024-09-26 14:16:38 +07:00
Konstantin Akimov
4b4001bbe7
perf: activate v20 on the same block as v19 for Reg Test 2024-09-26 14:16:38 +07:00
Konstantin Akimov
e0d97cf7ac
feat: let asset locks be mined before v20
V20 is activated long time on mainnet and testnet, so, it doesn't matter anymore
2024-09-26 14:16:38 +07:00
Konstantin Akimov
6f0b546fc2
feat: drop deprecated protx_*_hpmn RPC entry points in favor of protx_*_evo
Full list of removed composite RPC:
  protx register_fund_hpmn
  protx register_hpmn
  protx register_prepare_hpmn
  protx update_service_hpmn
2024-09-26 14:06:08 +07:00
Hennadii Stepanov
6431f71b3a
Merge bitcoin-core/gui#393: Fix regression in "Encrypt Wallet" menu item
d54d94959869b0c363939163b99ba0475751dcb6 qt: Fix regression in "Encrypt Wallet" menu item (Hennadii Stepanov)

Pull request description:

  Fix #392.

  Adding a new item to the `m_wallet_selector` must follow the establishment of a connection between the `WalletView::encryptionStatusChanged` signal and the `BitcoinGUI::updateWalletStatus` slot.

  This was a regression introduced in 20e2e24e90 (#29).

  ---

  An _encrypted_ wallet being auto-loaded at the GUI startup:
  - on master (eaf09bda4ab21f79f89822d2c6fa3d7a3ce57b0d)

  ![Screenshot from 2021-08-03 22-38-49](https://user-images.githubusercontent.com/32963518/128075837-cdbb2047-5327-43ea-b2d5-2dcdef67cdc0.png)

  - with this PR

  ![Screenshot from 2021-08-03 22-34-58](https://user-images.githubusercontent.com/32963518/128075572-cb727652-ad44-4b85-bf64-edcd19f9dea1.png)

ACKs for top commit:
  achow101:
    ACK d54d94959869b0c363939163b99ba0475751dcb6
  jarolrod:
    ACK d54d94959869b0c363939163b99ba0475751dcb6

Tree-SHA512: 669615ec8e1517c2f4cdf59bd11a7c85be793ba0dda112361cf95e6c2f0636215fed331d26a86dc9b779a49defae1b248232f98dab449584376c111c288e87bb
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
fc900a8aea
Merge bitcoin-core/gui#333: refactor: Signal-slot connections cleanup
f507681baa406046c9c3d44be39e99124a2d6e5f qt: Connect WalletView signal to BitcoinGUI slot directly (Hennadii Stepanov)
bd50ff9290ea9ec8b482db11314a6fd658373f23 qt: Drop redundant OverviewPage::handleOutOfSyncWarningClicks slot (Hennadii Stepanov)
793f19599b6d9009c2fb11e4c07e0872ff00defe qt: Drop redundant WalletView::requestedSyncWarningInfo slot (Hennadii Stepanov)

Pull request description:

  This PR:
  - removes slots whose only job is to emit a signal, since we can use the signal as a slot
  - connects the`WalletView::outOfSyncWarningClicked` signal to the `BitcoinGUI::showModalOverlay` slot directly, and removes intermediate `WalletFrame` slot and signal
  - split from #29

  This PR does not change behavior.

ACKs for top commit:
  Talkless:
    tACK f507681baa406046c9c3d44be39e99124a2d6e5f, tested on Debian Sid with Qt 5.15.2, no any behavioral changes noticed.
  promag:
    Code review ACK f507681baa406046c9c3d44be39e99124a2d6e5f.

Tree-SHA512: cd636a7e61881b2cbee84d5425d2107a8e39683b8eb32d79dc9ea942db55d5c1979be2f70da1660eaee5de622d10ed5a92f11fc2351de21b84324b10b23d0c96
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
9ca2aad0b3
Merge bitcoin-core/gui#164: Handle peer addition/removal in a right way
ecbd91153875c8cdd5b92b840afc116f65e457fb qt: Handle peer addition/removal in a right way (Hennadii Stepanov)
1b66f6e556631a1a2d89aefba70a79894bd14fcd qt: Drop PeerTablePriv class (Hennadii Stepanov)
efb7e5aa962d4a4047061996bbb50b6da4592cbc qt, refactor: Use default arguments for overridden functions (Hennadii Stepanov)

Pull request description:

  This PR makes `PeerTableModel` handle a peer addition/removal in a right way. See:
  - https://doc.qt.io/qt-5/model-view-programming.html#inserting-and-removing-rows
  - https://doc.qt.io/qt-5/model-view-programming.html#resizable-models

  Fixes #160.

  Fixes #191.

ACKs for top commit:
  jarolrod:
    re-ACK ecbd911
  promag:
    reACK ecbd91153875c8cdd5b92b840afc116f65e457fb just improvements to the comment since last review.

Tree-SHA512: 074935d67f78561724218e8b33822e2de16749f873c29054926b720ffcd642f08249a222b563983cf65a9b716290aa14e2372c47fc04e5f401f759db25ca710f
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
7d9ce32562
Merge bitcoin-core/gui#29: refactor: Optimize signal-slot connections logic
62cb8d98d27e7f316f01f177f35ad0ed6f8cd9ce qt: Drop BitcoinGUI* WalletFrame data member (Hennadii Stepanov)
f73e5c972ab096e0f80cb9e753fa221d17313358 qt: Move CreateWalletActivity connection from WalletFrame to BitcoinGUI (Hennadii Stepanov)
20e2e24e90d782219e853ef0676ac66dc6a9de6a qt: Move WalletView connections from WalletFrame to BitcoinGUI (Hennadii Stepanov)

Pull request description:

  This PR:
  - implements an idea from https://github.com/bitcoin/bitcoin/pull/17937#issuecomment-575991765
  - simplifies `WalletFrame` class interface
  - as a side effect, removes `bitcoingui` -> `walletframe` -> `bitcoingui` circular dependency
  - is an alternative to https://github.com/bitcoin/bitcoin/pull/17500

ACKs for top commit:
  promag:
    Tested ACK 62cb8d98d27e7f316f01f177f35ad0ed6f8cd9ce on macos 11.2.3 with depends build.
  jarolrod:
    ACK 62cb8d98d27e7f316f01f177f35ad0ed6f8cd9ce

Tree-SHA512: 633b526a8499ba9ab4b16928daf4de4f6d610284bb9fa51891cad35300a03bde740df3466a71b46e87a62121330fcc9e606eac7666ea5e45fa6d5785b60dcbbd
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
3be79a9ed9
Merge bitcoin-core/gui#256: Save/restore column sizes of the tables in the Peers tab
fb1b1e0f3eae32b087347889ed7502b7f2c48549 qt: Save/restore column sizes of the tables in the Peers tab (Hennadii Stepanov)

Pull request description:

ACKs for top commit:
  jonatack:
    ACK fb1b1e0f3eae32b087347889ed7502b7f2c48549 code review, debug-built and tested
  jarolrod:
    ACK fb1b1e0f3eae32b087347889ed7502b7f2c48549

Tree-SHA512: f93495ecd13e4202aba61b407fffbeec855f5b0c1cc027197c78edddd7d11c87ebdb0fcb1daac242f0407323b31f4e7e0313bd76113a5241e4c868a8829af20a
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
f4fccd31cb
Merge bitcoin-core/gui#329: Make console buttons look clickable
8b419b5163d41c0caef7b9fa6d3008b73917e8ee qt: make console buttons look clickable (Jarol Rodriguez)

Pull request description:

  On master, for macOS, the console buttons' hitboxes are quite small. This makes clicking on the button with your mouse a little more tedious than it should be. The Issue is related to recent versions of Qt (>5.9.8) not playing so nice on macOS when there are "incorrect" `width` and `height` values set for a `QPushButton` (here is another example: https://github.com/bitcoin-core/gui/pull/319#pullrequestreview-652907740).

  This fixes this small hitbox issue by converting the buttons from `QPushButton` to `QToolButton`, which in turn makes the buttons look explicitly clickable. This approach was chosen as it helps us avoid having to play around with `width` and `height` values until we find values that play nice with macOS and look good on Linux & Windows. Also, `QToolButton` is an appropriate class for these buttons.

  Per [Qt Docs](https://doc.qt.io/qt-5/qtoolbutton.html#details):
  > A tool button is a special button that provides quick-access to specific commands or options. As opposed to a normal command button, a tool button usually doesn't show a text label, but shows an icon instead.

  Since we are changing the type of the buttons, we need to change the respective actions connection logic in `rpcconsole`. Instead of plugging in `QToolButton`, we abstract it to the base class: `QAbstractButton`.

  per [Qt Dev Notes](https://github.com/bitcoin-core/bitcoin-devwiki/wiki/Developer-Notes-for-Qt-Code#inherited-signals-and-slot)
  > Use base class functions as this makes the code more general, e.g., use QAbstractButton::clicked instead of QPushButton::clicked.

  While here, we also update the size of the icons to `22x22` to be consistent with other tool buttons.

  **macOS: Master vs PR:**

  | Master        | PR               |
  | ----------- | ----------- |
  | ![master-ss-macos](https://user-images.githubusercontent.com/23396902/118339460-e9079c80-b4e6-11eb-864b-d394aca5df61.png) | ![pr-ss-macos](https://user-images.githubusercontent.com/23396902/118339468-ec9b2380-b4e6-11eb-9a9e-30620216750e.png) |

  **Linux: Master vs PR:**

  | Master        | PR               |
  | ----------- | ----------- |
  | ![master-ss-linux](https://user-images.githubusercontent.com/23396902/118339520-13595a00-b4e7-11eb-86d0-96dd1264c198.png) | ![pr-ss-linux](https://user-images.githubusercontent.com/23396902/118339533-1c4a2b80-b4e7-11eb-8d7f-f733d999c8fd.png) |

ACKs for top commit:
  hebasto:
    ACK 8b419b5163d41c0caef7b9fa6d3008b73917e8ee, tested on Linux Mint 20.1 (Qt 5.12.8).
  promag:
    Tested ACK 8b419b5163d41c0caef7b9fa6d3008b73917e8ee on macOS Big Sur M1, this drops only relevant usages to `flat` buttons.

Tree-SHA512: 3f3cdcbe83398136a1d1ee8fc2835be8681f2ed39e79db1e939cab6a00a779f528343d54992807a845cc84d9ef13591affb7a6dbca9e5753a2b8665b0af4d611
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
5a0d524506
Merge bitcoin-core/gui#123: rpc: Do not accept command while executing another one
38eb37c0bd29b4cb825de905e8eec87636a5221b qt, rpc: Do not accept command while executing another one (Hennadii Stepanov)
0c32b9c5273a4933bda90aa9eb9b7eace6dcaa14 qt, rpc: Accept stop RPC even another command is executing (Hennadii Stepanov)
ccf790287c53edbc7b18983e07f520823436c003 qt, rpc, refactor: Return early in RPCConsole::on_lineEdit_returnPressed (Hennadii Stepanov)
5b9c8c9cdd8e12d2e477840df9d6ab809a613c12 qt, rpc: Add "Executing…" message (Hennadii Stepanov)

Pull request description:

  On master (3f512f3d563954547061ee743648b57a900cbe04) it is possible to enter another command while the current command is still being executed. That makes a mess in the output.

  With this PR:
  ![Screenshot from 2020-10-29 20-48-55](https://user-images.githubusercontent.com/32963518/97619690-329c0880-1a29-11eb-9f5b-6ae3c02c13b2.png)

  Some previous context: https://github.com/bitcoin-core/gui/pull/59#issuecomment-715275185

  ---

  It is still possible to enter and execute the `stop` command any time.

ACKs for top commit:
  jarolrod:
    ACK  38eb37c
  promag:
    Tested ACK 38eb37c0bd29b4cb825de905e8eec87636a5221b.

Tree-SHA512: 2b37a4b6838bf586b1b5c878192106721f713caeb6252514a6540356aab898986396e0777e73891d331b1be797a4926c20d3f9f38ba2c984ea90d55b0c34f664
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
19310646e0
Merge bitcoin-core/gui#331: Make RPC console welcome message translation-friendly
0f3d955a38fe59a4e8cc4bf9f4442e6e1fd8bcbb qt: Make RPC console welcome message translation-friendly (Hennadii Stepanov)

Pull request description:

  The best practice is do not split a translatable multi-line message into single lines. This helps translators to follow the context.

ACKs for top commit:
  jarolrod:
    re-ACK 0f3d955a38fe59a4e8cc4bf9f4442e6e1fd8bcbb

Tree-SHA512: 30911ff3a972a7787804bb8b27d0b77bfff15939bb478c199261866bfb55d9acd12ab4d44b8b9fc1d4898222cabc4007cc897f9b65728924d121f31e914c44ac
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
69a1305978
Merge bitcoin-core/gui#309: Add access to the Peers tab from the network icon
d29ea72393ac1d9b32a6976062e9c9fb75876295 gui: Add access to the Peers tab from the network icon (Hennadii Stepanov)

Pull request description:

  This PR add a small context menu to the network activity icon that provides an access to the Peers tab:

  ![gui-network-icon](https://user-images.githubusercontent.com/32963518/116794314-d64b9b80-aad4-11eb-89ca-7f75c7442ba8.gif)

  Closes #93.

ACKs for top commit:
  Sjors:
    re-ACK d29ea72393ac1d9b32a6976062e9c9fb75876295
  kristapsk:
    re-ACK d29ea72393ac1d9b32a6976062e9c9fb75876295
  promag:
    Code review ACK d29ea72393ac1d9b32a6976062e9c9fb75876295.

Tree-SHA512: dd871415fe514a19c6a22100d58f31954d9e55b80585d5a3f26e17a8d51dadf912441786fc0d23beabd812f1b501658fec1dbe345cd41beae5832a8eda890f77
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
c858325d40
Merge bitcoin-core/gui#346: English translations update
df4c81fda490e556775f6006f3d4f7d54f61073b English translations update (Hennadii Stepanov)
bfb53ddda9a31bbeb8697e65ff9987e61dac136f scripted-diff: Fix ellipsis after pr20773 (Hennadii Stepanov)

Pull request description:

  Update for Transifex.

  After changing translator comments in #332 this update will show if Transifex triggers strings to be re-translated.

ACKs for top commit:
  laanwj:
    ACK df4c81fda490e556775f6006f3d4f7d54f61073b
  jarolrod:
    ACK df4c81fda490e556775f6006f3d4f7d54f61073b

Tree-SHA512: 1e54812bc04db6ae39e0b4d735b220ed8730a9941b17a0a2d09e21bcdd08e829adba86c35cf43c9be5e492ccb13e53a90149fcd7d6c0f5fdd022b978a1ff785c
2024-09-26 12:55:38 +07:00
pasta
85764c4b73
Merge #6286: feat(rpc): introduce and use setmnthreadactive (regtest-only)
1e17b74207 test: no longer connect nodes in parallel in `start_masternodes` (UdjinM6)
be72ef5592 test: use `setmnthreadactive` to get controlable `connect_nodes` behaviour (UdjinM6)
e2ed82a7ae feat(rpc): introduce `setmnthreadactive` (regtest-only) (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  This adds a new rpc command to enable/disable automatic masternode connections creation. We need this for #6276. 1e17b74207 is extracted from ede1833ba4 to avoid multiple jobs calling `setmnthreadactive` on the same node in parallel.

  ## What was done?
  Add `setmnthreadactive` rpc and use it

  ## How Has This Been Tested?
  run tests

  ## Breaking Changes
  n/a

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  kwvg:
    LGTM, ACK 1e17b74207
  PastaPastaPasta:
    utACK 1e17b74207

Tree-SHA512: 83c1c07d0066e26202fd21942a09e41c3560c4d32229b44390946c4acb22319b32aa61a13b9106d20fc8cc197dd2a8ab5fdfcfdeaf3da76af062fc0fd7646972
2024-09-25 18:27:41 -05:00
pasta
4e72902474
Merge #6245: backport: bitcoin#18275, #20220, #20305, #20410, #20426, #20573, #21083, #21201, #21786, #21787 (fee backports)
d6946aaba1 fix: offset fee for 1 duff in commission in wallet_basic.py due to missing bitcoin/bitcoin#22949 (Konstantin Akimov)
3ba99b9c42 Merge bitcoin/bitcoin#21786: wallet: ensure sat/vB feerates are in range (mantissa of 3) (MarcoFalke)
22435f1898 Merge bitcoin/bitcoin#21787: test: fix off-by-ones in rpc_fundrawtransaction assertions (W. J. van der Laan)
ccac35c89c Merge #21083: wallet: Avoid requesting fee rates multiple times during coin selection (Samuel Dobson)
9e9975f83b Merge #21201: rpc: Disallow sendtoaddress and sendmany when private keys disabled (Samuel Dobson)
5ad8a489a5 Merge #20573: wallet, bugfix: allow send with string fee_rate amounts (MarcoFalke)
db4a2169bb Merge #20410: wallet: Do not treat default constructed types as None-type (MarcoFalke)
01e41aa1fb Merge #20426: wallet: allow zero-fee fundrawtransaction/walletcreatefundedpsbt and other fixes (MarcoFalke)
f436c20bc4 Merge #20305: wallet: introduce fee_rate sat/vB param/option (MarcoFalke)
0fa19226cb Merge #20220: wallet, rpc: explicit fee rate follow-ups/fixes for 0.21 (Samuel Dobson)
d530b73016 Merge #18275: wallet: error if an explicit fee rate was given but the needed fee rate differed (MarcoFalke)

Pull request description:

  ## Issue being fixed or feature implemented
  Just regular backports from bitcoin v0.21, v22; mostly wallet+fee related

  ## What was done?
   - bitcoin/bitcoin#18275
   - bitcoin/bitcoin#20220
   - bitcoin/bitcoin#20305
   - bitcoin/bitcoin#20426
   - bitcoin/bitcoin#20410
   - bitcoin/bitcoin#20573
   - bitcoin/bitcoin#21201
   - bitcoin/bitcoin#21083
   - bitcoin/bitcoin#21787

  ## How Has This Been Tested?
  Run unit and functional tests

  ## Breaking Changes
  Some wallet rpc (sendtoaddress, sendmany, send) have a new argument `fee_rate` which is inserted before `verbose`.
  Release notes will be provided in a new PR once scope of backports and fixes in this PR is finalized by merging it to develop/

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    utACK d6946aaba1
  PastaPastaPasta:
    utACK d6946aaba1

Tree-SHA512: 8826e1453fe84e3d21f789fab62c23ea13299ce13a7bf1132f70831c3255e823437b6ddd63f69a8e8a0dae95a2638a4454d727e91177b53a5d331872528b92e8
2024-09-25 12:23:55 -05:00
UdjinM6
a656d2f14f
feat: more logging 2024-09-25 17:39:31 +03:00
UdjinM6
cedd3d52be
refactor: make expected_connections optional 2024-09-25 17:39:31 +03:00
UdjinM6
fd2fbe06a3
fix: check mn state after each mined quorum 2024-09-25 17:39:31 +03:00
UdjinM6
cce87a662a
fix: should have at least 2 connections when testing isolate_mn 2024-09-25 17:39:31 +03:00
UdjinM6
793f4b739f
fix: connect repaired mns only 2024-09-25 17:39:30 +03:00
UdjinM6
8597acd0dc
fix: remember mns that don't listen and avoid them 2024-09-25 17:39:30 +03:00
UdjinM6
2069625759
fix: calculate expected_complaints correctly 2024-09-25 17:39:27 +03:00
pasta
61201b80da
Merge #6278: perf: reduced delays and syncs in functional tests to run faster
874ef8cda2 fix: mine_quorum_no_checks -> mine_quorum_less_checks: do some checks to make sure quorums are mined correctly (UdjinM6)
4f636f47b4 fix: re-order functional tests: move governance to 60+seconds category (Konstantin Akimov)
fe49f3f178 refactor: removed dead and commented code from test_framework.py (Konstantin Akimov)
cd1958c82a perf: removed sleep(6) from mine_cycle_quorum in functional tests (Konstantin Akimov)
3f17a01a83 fix: bump mocktime in simplepose when generating blocks to improve robustness (Konstantin Akimov)
132d95e651 perf: remove sleep(1) from each step of quorum creation in functional tests (Konstantin Akimov)
4c57ad1c05 chore: increase batch size from 10 to 50 for faster block generation in functional tests (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  Functional tests take too long time to run.

  (PR is recreated from https://github.com/dashpay/dash/pull/6268 because CI is broken)

  ## What was done?
   - increased robustness `feature_llmq_simplepose.py` by adding missing bump for mocktime during block generations
   - removed sleep(1) from each stage of mine_quorum
   - removed sleep(6) from final stage of mine_cycled_quorum
   - size of batch for block generation in `feature_asset_locks.py` and in `activate_fork_by_name()` increased from 10 blocks to 50 blocks
   - moved governance's functional tests to "60 seconds+" category because they always the last one to wait if running more than 10 jobs at once
  Plus extra refactoring which removes dead and commented code from test_framework.py

  ## How Has This Been Tested?
  Locally, the functional tests speed up with these fixes for 15% for overall time and 20% for accumulated time
  `test/functional/test_runner.py -j20`

  Before:
  ```
  ALL                                                | ✓ Passed  | 7860 s (accumulated)
  Runtime: 481 s
  ```

  After:
  ```
  ALL                                                | ✓ Passed | 6237 s (accumulated)
  Runtime: 416 s
  ```

  ---
  CI tsan job speeds up for 5 minutes in absolute time (~5%) and 1000 seconds in accumulated time.
  ```
  ALL                                                | ✓ Passed  | 23854 s (accumulated)
  Runtime: 6249 s
  ```
  ↑ [old version](https://gitlab.com/dashpay/dash/-/jobs/7822664869) vs [new version](https://gitlab.com/dashpay/dash/-/jobs/7825461091) ↓
  ```
  ALL                                                | ✓ Passed  | 22901 s (accumulated)
  Runtime: 5962 s
  ```

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    utACK 874ef8cda2
  PastaPastaPasta:
    utACK 874ef8cda2

Tree-SHA512: 514fa2fb32abd59c90f63b68fccc8c3d3b6d16b0b6ad7459c4a348825815e7d3012177565dea1f70b8a1f28ede1a297f91361365454d1be85955e77260451cf5
2024-09-25 09:34:12 -05:00
pasta
62e8d3399f
Merge #6184: chore: bump version in core to v22
32ef5f8675 chore: bump version in core to v22 (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Platform is requesting https://github.com/dashpay/dash/pull/6183 be merged into develop, so that they can stop using hacky custom builds (which end up being out of date).

  ## What was done?
  Bump version to v22.0, allow for breaking changes to be merged in. My plan here is to basically have v22.0 be what v21.1 would have originally been, a large minor version, however now, we can merge in breaking changes too.

  Breaking changes can now be merged in

  I don't have a firm timeline yet, but I want this optional smaller v22 to be released relatively quickly compared to normal major versions.

  ## How Has This Been Tested?
  NA

  ## Breaking Changes
  None, yet!

  ## Checklist:
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  knst:
    utACK 32ef5f8675
  UdjinM6:
    utACK 32ef5f8675

Tree-SHA512: 5695c076f4fc5666300492f734dd1ef860a6c7cbbfc7647dfb998c6a2188fddbe69f11c38b8f26b82d6711ef0ccb19d64cf2f6768035800f74120aa271eed4ad
2024-09-25 09:17:49 -05:00
pasta
0a9a83fa4f
Merge #6282: refactor: drop some of circular dependencies over dkgsession
74a5a9f984 style: apply clang-format (Konstantin Akimov)
db9798f5e4 refactor: move call GetQuorumMembers inside Init() (Konstantin Akimov)
9593566802 refactor: move pQuorumBaseBlockIndex from Init() to constructor in CDKGSession (Konstantin Akimov)
9f3eb6bbb8 perf: check DIP0003 before CDKGSession initialization (Konstantin Akimov)
7f815cb501 refactor: remove unused constructor of CDKGLogger (Konstantin Akimov)
c82672af94 refactor: remove dependency of CDKGSession on PeerManager (Konstantin Akimov)
fb78b0cc94 refactor: remove retBan flag from ReceiveMessage (Konstantin Akimov)
d26d4ab0bc refactor: remove dependency of dkgsessionmgr on dkgsession (Konstantin Akimov)
d361b11e5b refactor: moved including llmq/dkgsession.h from dkgsessionmgr.h to cpp file (Konstantin Akimov)
e77aeb321b refactor: removed including quorums.h from chainlocks.h (Konstantin Akimov)
6f7068ef42 refactor: remove exceeding evodb.h from headers (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  We have 72 circular dependencies of dash specific code. This PR removes 2 of them, over dkgsession.

  ## What was done?
  Refactor dkgsession initialization, message processing, dropped unused arguments, re-distributed code between functions and modules... See each commit.
  Also optimized headers: excluded evo/evodb.h and llmq/quorums.h from the headers where they are not needed.

  ## How Has This Been Tested?
  Run `test/lint/lint-circular-dependencies.sh`
  Run unit/functional tests

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    utACK 74a5a9f984
  PastaPastaPasta:
    utACK 74a5a9f984

Tree-SHA512: f3adabe6a7bc6c4dcae6430be6857b31a0722d7f605d6651f3ff93c6fcb350a7312a9a0ecbda8ac131ffef6fbf2499700112de3990c7512ddb057bde7cc42665
2024-09-25 09:08:24 -05:00
UdjinM6
1e17b74207
test: no longer connect nodes in parallel in start_masternodes 2024-09-25 14:30:42 +03:00
UdjinM6
be72ef5592
test: use setmnthreadactive to get controlable connect_nodes behaviour 2024-09-25 14:30:36 +03:00
UdjinM6
e2ed82a7ae
feat(rpc): introduce setmnthreadactive (regtest-only) 2024-09-25 13:56:35 +03:00
W. J. van der Laan
bd67f80634
Merge bitcoin/bitcoin#22362: Drop only invalid entries when reading banlist.json
faa6c3d44c861c0486c1369e1d098b7645ab07cd net: Drop only invalid entries when reading banlist.json (MarcoFalke)

Pull request description:

  All entries will be dropped when there is at least one invalid one in `banlist.json`. Fix this by only dropping invalid ones.

  Also suggested in https://github.com/bitcoin/bitcoin/pull/20966#issuecomment-861150204

ACKs for top commit:
  laanwj:
    Re-ACK faa6c3d44c861c0486c1369e1d098b7645ab07cd

Tree-SHA512: 5a58e7f1dcabf78d0c65d8c6d5d997063af1efeaa50ca7730fc00056fda7e0061b6f7a38907ea045fe667c9f61d392e01e556b425a95e6b126e3c41cd33deb83
2024-09-25 10:18:12 +05:30
W. J. van der Laan
8b3a486702
Merge bitcoin/bitcoin#23025: bench: update nanobench add -min_time
e148a5233292d156cda76cb20afb6641fc20f25e bench: fixed ubsan implicit conversion (Martin Ankerl)
da4e2f1da0388d424659fa8c853fcaf37b4b5959 bench: various args improvements (Jon Atack)
d312fd94a1083cdbf071f2888aab43c62d358151 bench: clean up includes (Jon Atack)
1f10f1663e53474038b9111c4264a250cffe7501 bench: add usage description and documentation (Martin Ankerl)
d3c6f8bfa12f78635752878b28e66cec0c85d4a9 bench: introduce -min_time argument (Martin Ankerl)
9fef8329322277d9c14c8df1867cb3c61477c431 bench: make EvictionProtection.* work with any number of iterations (Martin Ankerl)
153e6860e84df0a3d52e5a3b2fe9c37b5e0b029a bench: change AddrManGood to AddrManAddThenGood (Martin Ankerl)
468b232f71562280aae16876bc257ec24f5fcccb bench: remove unnecessary & incorrect  multiplication in MuHashDiv (Martin Ankerl)
eed99cf272426e5957bee35dc8e7d0798aec8ec0 bench: update nanobench from 4.3.4 to 4.3.6 (Martin Ankerl)

Pull request description:

  This PR updates the nanobench with the latest release from upstream, v4.3.6. It fixes the missing performance counters.

  Due to discussions on #22999 I have done some work that should make the benchmark results more reliable. It introduces a new flag `-min_time` that allows to run a benchmark for much longer then the default. When results are unreliable, choosing a large timeframe here should usually get repeatable results even when frequency scaling cannot be disabled. The default is now 10ms. For this to work I have changed the `AddrManGood` and `EvictionProtection` benchmarks so they work with any number of iterations.

  Also, this adds more usage documentation to `bench_bitcoin -h` and I've cherry-picked two changes from #22999 authored by Jon Atack

ACKs for top commit:
  jonatack:
    re-ACK e148a5233292d156cda76cb20afb6641fc20f25e
  laanwj:
    Code review ACK e148a5233292d156cda76cb20afb6641fc20f25e

Tree-SHA512: 2da6de19a5c85ac234b190025e195c727546166dbb75e3f9267e667a73677ba1e29b7765877418a42b1407b65df901e0130763936525e6f1450f18f08837c40c
2024-09-25 10:18:12 +05:30
Samuel Dobson
d7a20b3ee6
Merge bitcoin/bitcoin#22217: refactor: Avoid wallet code writing node settings file
49ee2a0ad88e0e656234b769d806987784ff1e28 Avoid wallet code writing node settings file (Russell Yanofsky)

Pull request description:

  Change wallet loading code to access settings through the Chain interface instead of writing settings.json directly. This is for running wallet and node in separate processes, since multiprocess code wouldn't easily work with different processes updating the same file.

  ---

  This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10). The commit was first part of larger PR #10102.

ACKs for top commit:
  jamesob:
    ACK 49ee2a0ad88e0e656234b769d806987784ff1e28 ([`jamesob/ackr/22217.1.ryanofsky.refactor_avoid_wallet_co`](https://github.com/jamesob/bitcoin/tree/ackr/22217.1.ryanofsky.refactor_avoid_wallet_co))
  ryanofsky:
    > ACK [49ee2a0](49ee2a0ad8) ([`jamesob/ackr/22217.1.ryanofsky.refactor_avoid_wallet_co`](https://github.com/jamesob/bitcoin/tree/ackr/22217.1.ryanofsky.refactor_avoid_wallet_co))
  Zero-1729:
    crACK 49ee2a0ad88e0e656234b769d806987784ff1e28
  meshcollider:
    Code review ACK 49ee2a0ad88e0e656234b769d806987784ff1e28

Tree-SHA512: a81c63b87816f739e02e3992808f314294d6c7213babaafdaaf3c4650ebc97ee4f98f9a4684ce4ff87372df59989b8ad5929159c5686293a7cce04e97e2fabba
2024-09-25 10:18:12 +05:30
pasta
52928c548e
Merge #6281: chore: bump MIN_PEER_PROTO_VERSION to 70216
4602e09751 chore: bump `MIN_PEER_PROTO_VERSION` to `70216` (Kittywhiskers Van Gogh)
ee4115e734 revert: Only sync mempool from v0.15+ (proto 70216+) nodes (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  Extracted from [dash#6272](https://github.com/dashpay/dash/pull/6272)

  ## Breaking Changes

  None expected.

  ## Checklist:

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)**
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 4602e09751
  PastaPastaPasta:
    utACK 4602e09751

Tree-SHA512: b3bc821c3e50d3fbd3d2d475cde4ccfca2ebedbaedf7209020c0007ca60a946a4e999775747b0b9615106b053ce0febbeaaf12106dfa810d5f3d2e98f8e73aaf
2024-09-24 13:53:38 -05:00
W. J. van der Laan
412445afb5
Merge bitcoin-core/gui#313: qt: Optimize string concatenation by default
a02c970eb001b456d74ddc30750fe8b55348ddac qt, refactor: Revert explicit including QStringBuilder (Hennadii Stepanov)
3fd3a0fc87a81d42755246830124833e9ca3f0a9 qt, build: Optimize string concatenation (Hennadii Stepanov)

Pull request description:

  From [Qt docs](https://doc.qt.io/qt-5/qstring.html#more-efficient-string-construction):
  > ... multiple uses of the \[`QString`\] '+' operator usually means multiple memory allocations. When concatenating n substrings, where n > 2, there can be as many as n - 1 calls to the memory allocator.

  With this PR
  > ... the '+' will automatically be performed as the `QStringBuilder` '%' everywhere.

  The change in the `src/Makefile.qt.include` file does not justify submitting this PR into the main repo, IMHO.

ACKs for top commit:
  laanwj:
    Code review ACK a02c970eb001b456d74ddc30750fe8b55348ddac
  Talkless:
    utACK a02c970eb001b456d74ddc30750fe8b55348ddac, built successfully on Debian Sid with Qt 5.15.2, but did not check if any displayed strings are "wrong" after refactoring.
  jarolrod:
    ACK a02c970eb001b456d74ddc30750fe8b55348ddac

Tree-SHA512: cbb476ee96f27c3bd6e125efab74d8bf24bbdb4c30576b3feea45e203405f3bf5b497dd7d3e11361fc825fcbf4b893b152921a9efdeaf73b42d1865d85f0ae84
2024-09-24 21:38:43 +07:00
Kittywhiskers Van Gogh
4602e09751
chore: bump MIN_PEER_PROTO_VERSION to 70216 2024-09-24 14:04:38 +00:00
pasta
6d615243e8
Merge #6264: backport: Merge bitcoin#23142, (partial) bitcoin-core/gui#409, 23333, 23755, (partial) 22981
71689fe6dc (partial) Merge bitcoin/bitcoin#22981: doc: Fix incorrect C++ named args (fanquake)
2b71a9b030 Merge bitcoin/bitcoin#23755: rpc: Quote user supplied strings in error messages (MarcoFalke)
5a441b38de (partial) Merge bitcoin-core/gui#409: Fix window title of wallet loading window (Hennadii Stepanov)
49c87e93a6 Merge bitcoin/bitcoin#23142: Return false on corrupt tx rather than asserting (W. J. van der Laan)

Pull request description:

  backports from bitcoin

ACKs for top commit:
  UdjinM6:
    utACK 71689fe6dc
  knst:
    utACK 71689fe6dc

Tree-SHA512: c68e2a1be5669f4fd8b02001ea81310b41fcac2cc5cc660e67b5140b334669c9a071a4bd5b33232580215607f323af5f87218a3465493675a633e112984296eb
2024-09-24 08:59:35 -05:00