Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backport : Merge bitcoin# #5996

Closed
wants to merge 501 commits into from
Closed

backport : Merge bitcoin# #5996

wants to merge 501 commits into from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Mar 25, 2024

  1. Configuration menu
    Copy the full SHA
    081d8db View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    446076d View commit details
    Browse the repository at this point in the history
  3. merge bitcoin#19884: No delay in adding fixed seeds if -dnsseed=0 and…

    … peers.dat is empty
    kwvg committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    8f40769 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0d46acb View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2f672bd View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0d90465 View commit details
    Browse the repository at this point in the history
  7. Merge dashpay#5955: refactor: simply RecursiveMutex -> Mutex

    a09e260 refacotor: simply RecursiveMutex -> Mutex (pasta)
    
    Pull request description:
    
      ## What was done?
      This PR is a simpler version of dashpay#5954; it is simply a recursiveMutex -> Mutex PR; as I think some of the scope minimization in the other PR introduced test failures (appears there are undocumented mutex dependancies)
    
      ## How Has This Been Tested?
      CI TBD
    
      ## Breaking Changes
      None
    
      ## 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 _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      knst:
        utACK a09e260
    
    Tree-SHA512: 4ef5aa94ecb1a55f30b642d5e0328e2d2a0adcf2ccc2ab6489a576a420c915339be023828785c3243f019bb73ac2cd77be7dd4397e14ec874cba68999a9e54dc
    PastaPastaPasta committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    9201529 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#21597: test: Document race:validation_chainstatemanager…

    …_tests suppression
    
    fab1987 test: Document race:validation_chainstatemanager_tests suppression (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      jamesob:
        ACK bitcoin@fab1987
      practicalswift:
        ACK fab1987
    
    Tree-SHA512: 3f1838b4cf11eba768ce06826cd4b57c9065669b61a5530af44216fc96535ebf37124b47a8de8f72aedf32345157a72d2208cd63214481a9cb56c063f05db5dd
    fanquake authored and PastaPastaPasta committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    44f91cb View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#22149: test: Add temporary logging to debug bitcoin#20975

    faa9496 test: Add temporary logging to debug bitcoin#20975 (MarcoFalke)
    
    Pull request description:
    
      to be reverted after a fix
    
    ACKs for top commit:
      laanwj:
        Code review ACK bitcoin@faa9496
    
    Tree-SHA512: 1f3103fcf4cad0af54e26c4d257bd824b128b5f2d2b81c302e861a829fd55d6a099fa476b79b30a71fe98975ae604b9e3ff31fd48a51d442389a9bd515e60ba0
    laanwj authored and PastaPastaPasta committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    1dc97c7 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#22327: cli: Avoid truncating -rpcwaittimeout

    fa34cb8 cli: Avoid truncating -rpcwaittimeout (MarcoFalke)
    
    Pull request description:
    
      `seconds` is not enough precision to "exactly" store a timestamp n seconds into the future. Improve the precision by using `microseconds`. Fixes bitcoin#22325
    
      Also, use chrono literals.
    
    ACKs for top commit:
      jonatack:
        ACK fa34cb8 review, debug-built, tested
      theStack:
        Tested ACK fa34cb8
    
    Tree-SHA512: 7158da8545f9998a82bcc8636e04564efdb1e1be43b4288298c151b4df29ad47a2760259eefadd4a01db92ea18a1e017f3febc1cd8c69a4b28c86180229d8c90
    MarcoFalke authored and PastaPastaPasta committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    0505229 View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#22781: wallet: fix the behavior of IsHDEnabled, return …

    …false in case of a blank hd wallet.
    
    8733a8e the result of CWallet::IsHDEnabled() was initialized with true. (Saibato)
    
    Pull request description:
    
      the result of CWallet::IsHDEnabled() was initialized with true.
    
      But in case of no keys or a blank hd wallet the iterator would be skipped
      and not set to false but true, since the loop would be not entered.
    
      That had resulted in a wrong return and subsequent false HD and watch-only
      icon display in GUi when reloading a wallet after closing.
    
    ACKs for top commit:
      achow101:
        ACK 8733a8e
      hebasto:
        ACK 8733a8e
      theStack:
        utACK 8733a8e
      meshcollider:
        utACK 8733a8e
    
    Tree-SHA512: 79b976594f7174d05c29fe3819037ead59aaef27498d95415ceba74d633a8e035f6b03b521000ac3370684a8cb09319d8be1a443ce2d29b3ff4089e399f6b719
    meshcollider authored and PastaPastaPasta committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    a9b1575 View commit details
    Browse the repository at this point in the history
  12. Merge bitcoin#22824: refactor: remove RecursiveMutex cs_nBlockSequenceId

    0bd882b refactor: remove RecursiveMutex cs_nBlockSequenceId (Sebastian Falbesoner)
    
    Pull request description:
    
      The RecursiveMutex `cs_nBlockSequenceId` is only used at one place in `CChainState::ReceivedBlockTransactions()` to atomically read-and-increment the nBlockSequenceId member:
    
      https://github.com/bitcoin/bitcoin/blob/83daf47898f8a79cb20d20316c64becd564cf54c/src/validation.cpp#L2973-L2976
    
      ~~For this simple use-case, we can make the member `std::atomic` instead to achieve the same result (see https://en.cppreference.com/w/cpp/atomic/atomic/operator_arith).~~
    
      ~~This is related to bitcoin#19303. As suggested in the issue, I first planned to change the `RecursiveMutex` to `Mutex` (still possible if the change doesn't get Concept ACKs), but using a Mutex for this simple operation seems to be overkill. Note that at the time when this mutex was introduced (PR dashpay#3370, commit 75f51f2) `std::atomic` were not used in the codebase yet -- according to `git log -S std::atomic` they have first appeared in 2016 (commit 7e908c7), probably also because the compilers didn't support them properly earlier.~~
    
      At this point, the cs_main lock is set, hence we can use a plain int for the member and mark it as guarded by cs_main.
    
    ACKs for top commit:
      Zero-1729:
        ACK 0bd882b
      promag:
        Code review ACK 0bd882b.
      hebasto:
        ACK 0bd882b
    
    Tree-SHA512: 435271ac8f877074099ddb31436665b500e555f7cab899e5c8414af299b154d1249996be500e8fdeff64e4639bcaf7386e12510b738ec6f20e415e7e35afaea9
    MarcoFalke authored and PastaPastaPasta committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    51630d2 View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin#24390: test: Remove suppression no longer needed with h…

    …eaders-only Boost.Test
    
    81738d2 test: Remove suppression no longer needed with headers-only Boost.Test (Hennadii Stepanov)
    
    Pull request description:
    
      It appears, that moving to [headers-only](bitcoin#24301) Boost.Test makes the removed suppression unneeded even without [bumping](bitcoin#24383) boost version.
    
    ACKs for top commit:
      MarcoFalke:
        cr ACK 81738d2
    
    Tree-SHA512: e60443f79a2e38cc78fceeff5c2956d622e8a10730129f9c27c14aef59bc6fa0894b8011e6191530443bf3165f78da978bc08ad04248ddb65e2da373264afa6a
    fanquake authored and PastaPastaPasta committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    d5d1a71 View commit details
    Browse the repository at this point in the history
  14. Merge dashpay#5952: backport: merge bitcoin#20146, bitcoin#20477, bit…

    …coin#20624, bitcoin#19972, bitcoin#20724, bitcoin#19884, bitcoin#21165, bitcoin#20721, bitcoin#21254, partial bitcoin#19829 (networking backports)
    
    0d90465 merge bitcoin#21254: Avoid connecting to real network when running tests (Kittywhiskers Van Gogh)
    2f672bd merge bitcoin#20721: Move ping data to net_processing (Kittywhiskers Van Gogh)
    0d46acb merge bitcoin#21165: Use mocktime in test_seed_peers (Kittywhiskers Van Gogh)
    8f40769 merge bitcoin#19884: No delay in adding fixed seeds if -dnsseed=0 and peers.dat is empty (Kittywhiskers Van Gogh)
    446076d test: add missing `dnsseed=0` in configuration (Kittywhiskers Van Gogh)
    081d8db mempool: remove stray boost::optional usage (Kittywhiskers Van Gogh)
    bcd383c merge bitcoin#20724: Cleanup of -debug=net log messages (Kittywhiskers Van Gogh)
    8c63868 merge bitcoin#19972: Add fuzzing harness for node eviction logic (Kittywhiskers Van Gogh)
    18f2dc0 partial bitcoin#19829: Move block inventory state to net_processing (Kittywhiskers Van Gogh)
    ec77bd3 net: move nLast{Block,TX}Time to match upstream location (Kittywhiskers Van Gogh)
    f635e4a merge bitcoin#20624: Remove nStartingHeight check from block relay (Kittywhiskers Van Gogh)
    9f1a3e5 merge bitcoin#20477: Add unit testing of node eviction logic (Kittywhiskers Van Gogh)
    2d838a6 merge bitcoin#20146: Send post-verack handshake messages at most once (Kittywhiskers Van Gogh)
    
    Pull request description:
    
      ## Additional Information
    
      * [bitcoin#19884](bitcoin#19884) doesn't seem to play nice on its own and necessitated two more backports (namely [bitcoin#21165](bitcoin#21165) and [bitcoin#21254](bitcoin#21254)) before it did.
        * Trying to find why that is has been time consuming but there doesn't seem to be a concrete answer. If running the daemon normally (`dashd --regtest --dnsseed=1`), the functionality behaves as expected but the test still fails.
    
        * The closest explanation is that our OOO backports with relation to mocking time could explain why it isn't working as expected due to debug statements I added that always shown the time delta between each "enough time has passed" check was 0 seconds even when the log was advancing forward in time.
    
      * The usage of `dnsseed=0` stems from [bitcoin#16551](bitcoin#16551) (link to diff in commit comment), a backport that was skipped due to complexity. Though, some aspects of the PR have made it with [dash#3946](dashpay#3946).
    
      * [bitcoin#19829](bitcoin#19829) does away with `CConnman::ForEachNode` usage in `PeerManagerImpl::UpdatedBlockTip` ([source](https://github.com/bitcoin/bitcoin/pull/19829/files#diff-6875de769e90cec84d2e8a9c1b962cdbcda44d870d42e4215827e599e11e90e3R1318-R1328)). Dash cannot do the same and continues to use `ForEachNode` as we use the `CNode::CanRelay` check, which is not accessible through the `Peer` struct.
    
          * It would be valuable to find values that are Dash-specific (like `m_masternode_connection`) and migrate them to `Peer` to avoid Dash-specific patches and closer alignment with upstream.
    
      ## Breaking Changes
    
      Potential change in behaviour in the GUI and RPC.
    
      In RPC, `getpeerinfo` will now display `pingwait` and `startingheight` if `fStateStats` is true (earlier behaviour was unconditional). `startingheight` has been placed below `banscore` (earlier behaviour placed it above). In the GUI (Qt), `peerHeight` and `peerPingWait` are subject to similar conditionality as mentioned earlier.
    
      No changes in protocol or consensus. Changes are primarily related to refactoring, cleaning up, improving networking code and adding a new flag (`-fixedseeds`).
    
      ## 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 **(note: N/A)**
      - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      PastaPastaPasta:
        re-utACK 0d90465
    
    Tree-SHA512: 79eedf47387a8715fc9f20c6bc051d4eae832266454445043e1478dc36daafc1679e002623917af43cf923735217622e3985f664123a1de23fadfdfece7e9b6b
    PastaPastaPasta committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    e9fdfa8 View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2024

  1. Merge dashpay#5951: backport: trivial 2024 03 22

    d5d1a71 Merge bitcoin#24390: test: Remove suppression no longer needed with headers-only Boost.Test (fanquake)
    51630d2 Merge bitcoin#22824: refactor: remove RecursiveMutex cs_nBlockSequenceId (MarcoFalke)
    a9b1575 Merge bitcoin#22781: wallet: fix the behavior of IsHDEnabled, return false in case of a blank hd wallet. (Samuel Dobson)
    0505229 Merge bitcoin#22327: cli: Avoid truncating -rpcwaittimeout (MarcoFalke)
    1dc97c7 Merge bitcoin#22149: test: Add temporary logging to debug bitcoin#20975 (W. J. van der Laan)
    44f91cb Merge bitcoin#21597: test: Document race:validation_chainstatemanager_tests suppression (fanquake)
    c326830 Merge bitcoin-core/gui#243: fix issue when disabling the auto-enabled blank wallet checkbox (MarcoFalke)
    267f42f Merge bitcoin#21382: build: Clean remnants of QTBUG-34748 fix (fanquake)
    1fcc5f1 Merge bitcoin#20540: test: Fix wallet_multiwallet issue on windows (MarcoFalke)
    4afbaf2 Merge bitcoin#20322: test: Fix intermittent issue in wallet_listsinceblock (MarcoFalke)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Batch of backports
    
      ## What was done?
      Trivial batch of backports
    
      ## How Has This Been Tested?
      CI looks good
    
      ## Breaking Changes
      None
    
      ## 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 _(for repository code-owners and collaborators only)_
    
    Top commit has no ACKs.
    
    Tree-SHA512: 8eeac54f011eb1111888c745dd56184ac9601de290f2b0f7b7ad02240e8dc1cab5a47fed26bfed2bd6f1066e0710827a3e5b2426f0bf66821cf1cd09099d5160
    PastaPastaPasta committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    f2a42a0 View commit details
    Browse the repository at this point in the history
  2. Merge dashpay#5940: refactor: consolidate activeMasternodeInfo{Cs} in…

    …to CActiveMasternodeManager, create NodeContext alias, reduce globals usage
    
    815e4f8 masternode: protect m_{error,state} with cs (pasta)
    136e445 refactor: pass CActiveMasternodeManager as pointer arg to LLMQContext (Kittywhiskers Van Gogh)
    5e0f777 refactor: pass CActiveMasternodeManager as pointer arg to CJContext (Kittywhiskers Van Gogh)
    f171c24 refactor: add CActiveMasternodeManager NodeContext alias, use in RPC (Kittywhiskers Van Gogh)
    44beb94 refactor: prefix member variable names with m_ (Kittywhiskers Van Gogh)
    73cef4f refactor: make bls{Pub}KeyOperator member variables instead of pointers (Kittywhiskers Van Gogh)
    fbc7836 refactor: make m_info private, get const refs (or copies) from Get*() functions (Kittywhiskers Van Gogh)
    1b516ce refactor: use signing helper function instead of passing blsKeyOperator (Kittywhiskers Van Gogh)
    33702ac refactor: add helper function to decrypt messages with blsKeyOperator (Kittywhiskers Van Gogh)
    3eb931b refactor: add helper function to sign messages with blsKeyOperator (Kittywhiskers Van Gogh)
    3827355 refactor: move key initialization to InitKeys, define destructor (Kittywhiskers Van Gogh)
    e5295de refactor: move activeMasternodeInfo{Cs} into CActiveMasternodeManager (Kittywhiskers Van Gogh)
    b8c1f01 refactor: avoid accessing active masternode info if not in masternode mode (Kittywhiskers Van Gogh)
    9a3c5a3 trivial: access activeMasternodeInfo when lock is in scope (Kittywhiskers Van Gogh)
    
    Pull request description:
    
      ## Additional Information
    
      * `CActiveMasternodeManager`, unlike other managers, is _conditionally_ initialized (specifically, when the node is hosting a masternode). This means that checks need to be made to ensure that the conditions needed to initialize the manager are true or that the pointer leads to a valid manager instance.
    
        As the codebase currently checks (and fast-fails) based on the node being in "masternode mode" (`fMasternodeMode`) or not, we will continue with this approach, but with additional assertions _after_ the masternode mode check if the manager exists.
    
      * Though, since `activeMasternodeInfo`(`Cs`) are global variables, they can be accessed _regardless_ of whether the corresponding manager exists. This means some parts of the codebase attempt to fetch information about the (nonexistent) active masternode _before_ determining if it should use the masternode mode path or not (looking at you, `CMNAuth::ProcessMessage`)
    
        Moving them into `CActiveMasternodeManager` meant adding checks _before_ attempting to access information about the masternode, as they would no longer be accessible with dummy values ([here](https://github.com/dashpay/dash/blob/2110c0c30983e8f3da02f11907bfe4e1b5dcd89f/src/init.cpp#L1633-L1635)) on account of being part of the conditionally initialized manager.
        * In an attempt to opportunistically dereference the manager, `CDKGSessionManager` (accepting a pointer) was dereferencing the manager before passing it to `CDKGSessionHandler`. This was done under the assumption that  `CDKGSessionManager` would only ever be initialized in masternode mode.
    
          This is not true. I can confirm that because I spent a few days trying to debug test failures. `CDKGSessionHandler` is initialized in two scenarios:
    
          * In masternode mode
          * If the `-watchquorums` flag is enabled
    
          The latter scenario doesn't initialize `CActiveMasternodeManager`.
    
          Furthermore, the DKG round thread is started unconditionally ([here](https://github.com/dashpay/dash/blob/2110c0c30983e8f3da02f11907bfe4e1b5dcd89f/src/llmq/context.cpp#L79)) and the `CDKGSessionHandler::StartThreads` > `CDKGSessionHandler::StartThread` > `CDKGSessionHandler::PhaseHandlerThread` > `CDKGSessionHandler::HandleDKGRound` > `CDKGSessionHandler::InitNewQuorum` > `CActiveMasternodeManager::GetProTxHash` call chain reveals an attempt to fetch active masternode information without any masternode mode checks.
    
          This behaviour has now been changed and the thread will only be spun up if in masternode mode.
    
        * Dereferencing so far has been limited to objects that primarily hold data (like `CCoinJoinBroadcastTx` or `CGovernanceObject`) as they should not have knowledge of node's state (that responsibility lies with whatever manager manipulates those objects), perform one-off operations and static functions.
    
      * `activeMasternodeInfo` allowed its members to be read-write accessible to anybody who asked. Additionally, signing and decrypting involved borrowing the operator secret key from the active masternode state to perform those operations.
    
         This behaviour has now been changed. The internal state is now private and accessible read-only as a const ref (or copy) and `Decrypt`/`Sign` functions have been implemented to allow those operations to happen without having another manager access the operator private key in order to do so.
    
      * You cannot combine a `WITH_LOCK` and an `Assert` (in either mutex or accessed value), doing so will cause errors if `-Werror=thread-safety` is enabled. This is why `assert`s are added even when it would intuitively seem that `Assert` would've been more appropriate to use.
    
      ## Future Considerations
    
      Currently there are no unit tests that test the functionality of `CActiveMasternodeManager` as it's never initialized in test contexts, breakage had to be found using functional tests. Perhaps some (rudimentary) tests for `CActiveMasternodeManager` may prove to be valuable.
    
      ## Breaking Changes
    
      Not _really_. Some behaviour has been modified but nothing that should necessitate updates or upgrades.
    
      ## 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
      - [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:
      PastaPastaPasta:
        utACK 815e4f8
    
    Tree-SHA512: cbe49ea9e1c35df514e1b40869ee271baef1c348c9d09e4b356e5fc8fe5449cbbe66569258f2d664029faa9a46f711df9bf9e41eb8734c3aefc6cd8e94378948
    PastaPastaPasta committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    f217e0a View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#19179: ci: Run ci configs on cirrus

    fa7a438 ci: Fix doc typos in .cirrus.yml (MarcoFalke)
    fa73674 ci: Run i686 centos ci config on cirrus (MarcoFalke)
    fa1f949 ci: Run nowallet ci config on cirrus (MarcoFalke)
    
    Pull request description:
    
      Travis CI Org is shutting down, so move the configs to cirrus ci
    
    ACKs for top commit:
      practicalswift:
        ACK fa7a438: patch looks correct
    
    Tree-SHA512: 1b7125c7f0d2288931fb8c5e90345891d5f7c1f00c4af136afbeb36bd2836f72920a1877dacc7be787e2c8d84de2a733c1ca71931e5c101b222c1fea588619b3
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    fcb4c20 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#20543: ci: no-longer exclude feature_block in TSAN job

    2b35611 ci: no-longer exclude feature_block in TSAN job (fanquake)
    
    Pull request description:
    
      The TSAN job is now running on Cirrus.
      Increase the allocated memory to the [maximum allowed](https://cirrus-ci.org/guide/linux/#linux-containers).
    
    ACKs for top commit:
      jonasschnelli:
        utACK 2b35611 - checked the CI run and confirmed that the feature_block runs: https://cirrus-ci.com/task/6008403543719936?command=ci#L3249
      MarcoFalke:
        review ACK 2b35611
    
    Tree-SHA512: b774995600361c74bc3267b566e12add66a4604bdf88f6e3f69669edbb8d7aff6f20fdbf0ef98187be4730ce4e18b1939bbcecd993a5c5c1ff40b237c7921b71
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    2fa526b View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#20545: ci: Adjust cirrus ci task names

    fa5c4f1 ci: Adjust cirrus ci task names (MarcoFalke)
    
    Pull request description:
    
      The task names are too long for GitHub to display them properly without truncation in the "checks-view". Fix that by using a new naming scheme:
    
      * Native builds don't mention "x86_64 Linux", as it is redundant, they do mention the OS (bionic or focal) in the name suffix
      * Cross builds mention the target in the prefix and the OS (always bionic) in the suffix
      * the macos native build simply says "macos native"
    
    ACKs for top commit:
      practicalswift:
        ACK fa5c4f1: patch  looks  correct!
      hebasto:
        ACK fa5c4f1, I have reviewed the code and it looks OK, I agree it can be merged.
      RiccardoMasutti:
        ACK fa5c4f1
    
    Tree-SHA512: 856deb0577c97c70069ef1d369991addc49522135c0ad9e382218fd79ba3d55a95d6c601288dcef0510764b92fbd30a9d7de32b08dc5be55482deab14049b892
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    d11e379 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#20572: ci: Adjust Cirrus CI task names (follow up)

    667b6a2 ci: Adjust Cirrus CI task names (follow up) (Hennadii Stepanov)
    
    Pull request description:
    
      "no depends" implies "only system libs".
    
      bitcoin#20545 follow up .
    
    ACKs for top commit:
      practicalswift:
        ACK 667b6a2
    
    Tree-SHA512: b3bf5dc931b7aeed30932e8d6c5f5b0040e4be5a5676ed23b41675ebad2f8a016b1abb27584b68970ee00bc5b2af7122ca9566f373db5f3a2e38fcf7eee6522a
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    5d66d57 View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#20615: cirrus: Schedule one task with paid credits for …

    …faster CI feedback
    
    faf2c6e cirrus: Schedule one task with paid credits for faster CI feedback (MarcoFalke)
    
    Pull request description:
    
      During times of high activity in the repo, the scheduling of Cirrus CI tasks might put them a few hours in the future. This is fine when all the tasks eventually pass. Though for failing tasks, a failure should ideally be shown to the author and reviewer as soon as possible.
    
      Compute credits can be used to schedule immediately: https://cirrus-ci.org/pricing/#compute-credits. Running all tasks with compute credits will probably be more expensive than our previous CI invoice. However, they are also more flexible.
    
      As a start we could enable only a single task and revisit/re-evaluate the next steps in a month.
    
    ACKs for top commit:
      laanwj:
        Concept ACK faf2c6e
      fanquake:
        ACK faf2c6e
      practicalswift:
        cr ACK faf2c6e: patch looks correct
    
    Tree-SHA512: df599e1c4cc0394f7f03413ad29954ddc87b163b02640d8bfc0497a5dc8d237b8c963c1dd9d01ac83c4a044f575300763097dac2ea6d1a4a163a1cece342b743
    laanwj authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    955fc41 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#20658: ci: Move linter task to cirrus

    4045a67 ci: Use cpu=1 for linter (Dhruv Mehta)
    739d390 ci: Move linter task to cirrus (Dhruv Mehta)
    
    Pull request description:
    
      Solves bitcoin#20467: Move linter to Cirrus-CI as Travis-CI.org is shutting down
    
    ACKs for top commit:
      MarcoFalke:
        ACK 4045a67
    
    Tree-SHA512: 9aa7487ac86c91fc68bb584d29134e304dbd46702514a5d47d1ef0de6b877d96d42b7589870fc67ad9a31f5d3a789728446da4418688f336111a9ba0f8de5feb
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    9d824de View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#20680: ci: Only use credits for pull requests to the ma…

    …in repo
    
    facf5e3 ci: Only use credits for pull requests to the main repo (MarcoFalke)
    
    Pull request description:
    
      No need to spend credits for the `master` branch, because the build shouldn't fail there anyway and it is not time-critical to get a fast feedback.
    
      Some other changes:
    
      * Disable `stateful` for faster scheduling
      * Reduce lint memory from 8G to 1G for faster scheduling
    
    ACKs for top commit:
      hebasto:
        ACK facf5e3, I have reviewed the code and it looks OK, I agree it can be merged.
    
    Tree-SHA512: 4d052e68217086574b9ea3d603cde1b585833c289d47dfed5308ff001d02964dc75ec3b3ebf5b233ccd09c47ad4ff5ba0bef639bf6362d984e7c49fca8fec24b
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    8694479 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#20691: ci, doc: Travis CI features and mentions cleanup

    95487b0 doc: Drop mentions of Travis CI as it is no longer used (Hennadii Stepanov)
    09d105e ci: Drop travis_fold feature as Travis CI is no longer used (Hennadii Stepanov)
    
    Pull request description:
    
      As Travis CI is no longer used, this PR:
      - drops `travis_fold` feature
      - drops mentions of Travis CI in docs
    
    ACKs for top commit:
      MarcoFalke:
        ACK 95487b0
    
    Tree-SHA512: 2e259bb8b1e37bcefc1251737bb2716f06ddb57c490010b373825c4e70f42ca38efae69a2f63f21f577d7cee3725b94097bdddbd313f8ebf499281cf97c53cef
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    8daef64 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    2021969 View commit details
    Browse the repository at this point in the history
  12. Merge bitcoin#20682: ci: Install missing lint packages

    faeb40b ci: Install missing lint packages (MarcoFalke)
    
    Pull request description:
    
      The cirrus container is vanilla ubuntu, so we need to install the needed packages
    
    ACKs for top commit:
      hebasto:
        ACK faeb40b, I have reviewed the code and it looks OK, I agree it can be merged.
    
    Tree-SHA512: e56198108e26ea0ba2a344b1b74bc294652f34e9866cca053a25fb1b83bbd87ea40254c340e5e169fdfcbd4dcb39fdc2078b5157ca729a22a9a1792ec514a33e
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    53ca879 View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin#20697: ci: Fix COMMIT_RANGE variable value for PRs

    3c2478c ci: Print COMMIT_RANGE to the log as it was in Travis CI (Hennadii Stepanov)
    c123892 ci: Drop Travis-specific workaround for shellcheck (Hennadii Stepanov)
    10af252 ci: Drop Travis-specific way to set COMMIT_RANGE variable (Hennadii Stepanov)
    93504da ci: Fix COMMIT_RANGE variable value for PRs (Hennadii Stepanov)
    
    Pull request description:
    
      This PR:
      - is a bitcoin#20658 and bitcoin#20682  followup
      - set the `COMMIT_RANGE` variable correctly for PRs
      - cleans up Travis-specific code
      - prints COMMIT_RANGE value to the log for convenience as it was in Travis CI
    
    ACKs for top commit:
      MarcoFalke:
        ACK 3c2478c
    
    Tree-SHA512: beb933352b10fd5eb3e66373ddb62439e4f3a03b50fb037ee89fa92c0706cec41d05f2d307f15bb18d1e634e6464f4e123b7e2f88703c8edfd145d8d6eff0b1a
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    802cb95 View commit details
    Browse the repository at this point in the history
  14. Merge bitcoin#19983: Drop some TSan suppressions

    3e15712 Update TSan suppressions (Hennadii Stepanov)
    
    Pull request description:
    
      It seems possible now to drop some TSan suppressions.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 94518fd2f3a7168b2989424de0696e42c8f509b833aafbc7e75f4c1180a0b8d9a47f43c50d06b03b26a924643afe86274b2062c9d456c17a68576d19566ed66f
    MarcoFalke authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    3231ad2 View commit details
    Browse the repository at this point in the history
  15. partial Merge bitcoin#20451: lint: run mypy over contrib/devtools

    1ef2138 lint: run mypy over contrib/devtools (fanquake)
    
    Pull request description:
    
      wumpus mentioned on IRC that we don't currently run `mypy` over the `contrib/devtools` directory, and that it would likely be worthwhile given bitcoin#20434. This just adds that dir to the linter, as well as some missing annotations to fix existing errors. Note that now we require Python 3.6 we can make use of variable annotations.
    
      master (patched to check contrib devtools):
      ```bash
      test/lint/lint-python.sh
      contrib/devtools/symbol-check.py:154: error: Incompatible types in assignment (expression has type "List[str]", variable has type "str")
      contrib/devtools/circular-dependencies.py:35: error: Need type annotation for 'deps' (hint: "deps: Dict[<type>, <type>] = ...")
      contrib/devtools/circular-dependencies.py:67: error: Need type annotation for 'closure' (hint: "closure: Dict[<type>, <type>] = ...")
      Found 4 errors in 3 files (checked 187 source files)
      ```
    
      I haven't quite gone as far as to add annotations like
      ```python
      CHECKS: Dict[str, List[Tuple[str, Callable[[Any], bool]]]] = {...
      ```
      to `symbol-check.py`.
    
    ACKs for top commit:
      laanwj:
        ACK 1ef2138
    
    Tree-SHA512: a58c2ece588c640289dc1d35dad5b1b8732788272daa0965d6bf44ee8a7f7c8e8585f94d233ac41c84b9ffcfc97841a00fe2c9acba41f58fd164f01de4b6512b
    laanwj authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    ab430bd View commit details
    Browse the repository at this point in the history
  16. Merge bitcoin#20817: lint: update list of spelling linter false posit…

    …ives, bump to codespell 2.0.0
    
    f3ba916 lint: ignore gitian keys file for spelling linter (Sebastian Falbesoner)
    da289a6 lint: update list of spelling linter false positives (Sebastian Falbesoner)
    a0022f1 test: bump codespell linter version to 2.0.0 (Sebastian Falbesoner)
    
    Pull request description:
    
      This small patch updates the ignore list for the spelling linter script (which uses `codespell`), both removing false-positives that are not relevant anymore and adding new ones. As [suggested by jonatack](bitcoin#20762 (comment), whose last name is now also part of the list :)~~. Also changed the linter script to not check the gitian keys file, as [suggested by hebasto](bitcoin#20817 (comment)). The codespell version used is bumped to most recent version 2.0.0, which is more aware of some terms that were previously needed in the ignorelist for v1.17.1, see bitcoin#20817 (comment).
    
      Running spelling linter on master branch (repeated findings in the same file are removed to keep the output short):
      ```
      $ ./test/lint/lint-spelling.sh
      contrib/gitian-keys/keys.txt:16: Atack ==> Attack
      doc/developer-notes.md:1284: inout ==> input, in out
      doc/psbt.md:122: Asend ==> Ascend, as end
      src/bench/verify_script.cpp:27: Keypair ==> Key pair
      src/blockencodings.h:30: Unser ==> Under, unset, unsure, user
      src/compressor.h:65: Unser ==> Under, unset, unsure, user
      src/core_read.cpp:131: presense ==> presence
      src/index/disktxpos.h:21: blockIn ==> blocking
      src/net_processing.h:67: anounce ==> announce
      src/netaddress.h:486: compatiblity ==> compatibility
      src/primitives/transaction.h:35: nIn ==> inn, min, bin, nine
      src/qt/bitcoinunits.cpp:101: nIn ==> inn, min, bin, nine
      src/rpc/blockchain.cpp:2150: nIn ==> inn, min, bin, nine
      src/rpc/misc.cpp:198: nIn ==> inn, min, bin, nine
      src/script/bitcoinconsensus.cpp:81: nIn ==> inn, min, bin, nine
      src/script/bitcoinconsensus.h:63: nIn ==> inn, min, bin, nine
      src/script/interpreter.cpp:1279: nIn ==> inn, min, bin, nine
      src/script/interpreter.h:222: nIn ==> inn, min, bin, nine
      src/script/sign.cpp:17: nIn ==> inn, min, bin, nine
      src/script/sign.h:39: nIn ==> inn, min, bin, nine
      src/serialize.h:181: Unser ==> Under, unset, unsure, user
      src/signet.cpp:142: nIn ==> inn, min, bin, nine
      src/test/base32_tests.cpp:17: fo ==> of, for
      src/test/base64_tests.cpp:17: fo ==> of, for
      src/test/script_tests.cpp:1509: nIn ==> inn, min, bin, nine
      src/test/sighash_tests.cpp:27: nIn ==> inn, min, bin, nine
      src/test/validation_tests.cpp:78: excercise ==> exercise
      src/undo.h:36: Unser ==> Under, unset, unsure, user
      src/validation.cpp:1403: nIn ==> inn, min, bin, nine
      src/validation.h:255: nIn ==> inn, min, bin, nine
      src/wallet/wallet.cpp:1532: nIn ==> inn, min, bin, nine
      src/wallet/walletdb.cpp:429: Crypted ==> Encrypted
      test/functional/feature_nulldummy.py:63: unnecssary ==> unnecessary
      test/functional/wallet_encryption.py:81: crypted ==> encrypted
      test/functional/wallet_upgradewallet.py:36: fpr ==> for, far, fps
      ^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in test/lint/lint-spelling.ignore-words.txt
      ```
    
      Running spelling linter on PR branch:
      ```
      $ ./test/lint/lint-spelling.sh
      src/core_read.cpp:131: presense ==> presence
      src/net_processing.h:67: anounce ==> announce
      src/netaddress.h:486: compatiblity ==> compatibility
      src/test/validation_tests.cpp:78: excercise ==> exercise
      src/wallet/walletdb.cpp:429: Crypted ==> Encrypted
      test/functional/feature_nulldummy.py:63: unnecssary ==> unnecessary
      test/functional/wallet_encryption.py:81: crypted ==> encrypted
      ^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in test/lint/lint-spelling.ignore-words.txt
      ```
      This list of remaining findings doesn't contain false positives anymore -- the typos are fixed in PR bitcoin#20762.
      Happy new year! 🍾
    
    ACKs for top commit:
      hebasto:
        re-ACK f3ba916, only suggested changes since my [previous](bitcoin#20817 (review)) review.
      jonatack:
        ACK f3ba916 I don't know if there are any particular issues with bumping codespell to v2.0.0, but locally running the spelling linter and the cirrus job at https://cirrus-ci.com/task/5004066998714368 both LGTM. Thanks for also verifying and removing the unused words from the ignore list.
    
    Tree-SHA512: e92ae6f16c01d4ff3d54f8c3a0ee95e12741f7bfe031d307a785f5cfd8a80525b16b34275f413b914c4a318f5166f9887399c21f2dad9cc7e9be41647042ef37
    fanquake authored and knst committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    ae74ad0 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    544348f View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2024

  1. Merge dashpay#5957: backport: bitcoin#19179, bitcoin#19983, bitcoin#2…

    …0451, bitcoin#20543, bitcoin#20545, bitcoin#20572, bitcoin#20615, bitcoin#20658, bitcoin#20680, bitcoin#20682, bitcoin#20691, bitcoin#20697, bitcoin#20817, partial bitcoin#20451
    
    ae74ad0 Merge bitcoin#20817: lint: update list of spelling linter false positives, bump to codespell 2.0.0 (fanquake)
    ab430bd partial Merge bitcoin#20451: lint: run mypy over contrib/devtools (Wladimir J. van der Laan)
    3231ad2 Merge bitcoin#19983: Drop some TSan suppressions (MarcoFalke)
    802cb95 Merge bitcoin#20697: ci: Fix COMMIT_RANGE variable value for PRs (MarcoFalke)
    53ca879 Merge bitcoin#20682: ci: Install missing lint packages (MarcoFalke)
    2021969 chore: drop travis mentioning in docs and comments (Konstantin Akimov)
    8daef64 Merge bitcoin#20691: ci, doc: Travis CI features and mentions cleanup (MarcoFalke)
    8694479 Merge bitcoin#20680: ci: Only use credits for pull requests to the main repo (MarcoFalke)
    9d824de Merge bitcoin#20658: ci: Move linter task to cirrus (MarcoFalke)
    955fc41 Merge bitcoin#20615: cirrus: Schedule one task with paid credits for faster CI feedback (Wladimir J. van der Laan)
    5d66d57 Merge bitcoin#20572: ci: Adjust Cirrus CI task names (follow up) (MarcoFalke)
    d11e379 Merge bitcoin#20545: ci: Adjust cirrus ci task names (MarcoFalke)
    2fa526b Merge bitcoin#20543: ci: no-longer exclude feature_block in TSAN job (MarcoFalke)
    fcb4c20 Merge bitcoin#19179: ci: Run ci configs on cirrus (MarcoFalke)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Backports from bitcoin v22, mostly CI related, other to improve lints
      CI related changes are not really important because we use gitlab runner instead cirrus, but keep them up to date for sake of codebase unification.
    
      ## What was done?
       - bitcoin#19179
       - bitcoin#20543
       - bitcoin#20545
       - bitcoin#20572
       - bitcoin#20615
       - bitcoin#20658
       - bitcoin#20680
       - bitcoin#20691
       - bitcoin#20682
       - bitcoin#20697
       - bitcoin#19983
       - partial bitcoin#20451
       - bitcoin#20817
    
      ## How Has This Been Tested?
      Run unit/functional 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
    
    Top commit has no ACKs.
    
    Tree-SHA512: 5faffe15a75b78a9ea32b49f2371d6ff70c319a983c7a2b4ca6792ba3ea03f2170bacf5c255151da650948ad279c456475151d0db7dcd708eae540b30d88a05e
    PastaPastaPasta committed Mar 27, 2024
    Configuration menu
    Copy the full SHA
    2a44f2e View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2024

  1. Configuration menu
    Copy the full SHA
    663774c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0692826 View commit details
    Browse the repository at this point in the history
  3. fix: deadlock over cs_main and contributionsCacheCs in dkssessionmgr

    It fixes rpc failure: "Work queue depth exceeded"
    knst committed Mar 28, 2024
    Configuration menu
    Copy the full SHA
    ded1b5a View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2024

  1. Merge dashpay#5864: refactor: don't hardcode the transaction version

    8b6c96d refactor: a new constant with Tx Version (Alessandro Rezzi)
    9d429f4 refactor: drop functions from struct which supposed to be simple as possible (Alessandro Rezzi)
    b2bb097 refactor: simplify vExtra using in wallet and add const (Alessandro Rezzi)
    d9f0e93 refactor: use CTransaction for immutable tx in evo_assetlocks_tests (Alessandro Rezzi)
    ca0fe8c refactor: introduce HasExtraPayloadField() (Alessandro Rezzi)
    72d2008 refactor: introduce IsSpecialTxVersion() (Alessandro Rezzi)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Refactor extracted from dashpay#5860. Even if that PR should not need anymore this commit (since it has been found a better way to activate dip143), I think It's still a worthy refactor
    
      ## What was done?
        Introduce  `tx.IsSpecialTxVersion()` in place of `tx.nVersion == 3`,  `tx.nVersion >= 3`
        and `tx.HasExtraPayloadField()` in place of  `tx.nVersion == 3 && tx.nType != TRANSACTION_NORMAL`
    
      ## How Has This Been Tested?
    
      ## Breaking Changes
    
      ## Checklist:
        _Go over all the following points, and put an `x` in all the boxes that apply._
      - [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
      - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      knst:
        utACK 8b6c96d
    
    Tree-SHA512: aa16f9ee570e0fa86561cc440ffba40f6d554caa3e08b630b481732b899cc613eef596c672b5a20dbf3582ad109ffb687f4ad815f712dc16f636f8857d98480a
    PastaPastaPasta committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    938cc70 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    acbbe8c View commit details
    Browse the repository at this point in the history
  3. Merge dashpay#5962: fix: deadlock over cs_main and contributionsCache…

    …Cs in dkssessionmgr
    
    ded1b5a fix: deadlock over cs_main and contributionsCacheCs in dkssessionmgr (Konstantin Akimov)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      **It fixes rpc failure: "Work queue depth exceeded"**
    
      As I checked on running `dashd` in deadlock condition:
      Thread 78 is a thread that keep `cs_main`:
      ```
      dashpay#14 0x0000aaaad1f8d604 in BuildSimplifiedMNListDiff () at evo/simplifiedmns.cpp:364
      ```
      but it is locked by `contributionsCacheCs`
      ```
      dashpay#8  llmq::CDKGSessionManager::GetVerifiedContributions () at llmq/dkgsessionmgr.cpp:392
      ```
    
      On other hand, `contributionsCacheCs` is blocked by Thread 59
      ```
      dashpay#17 0x0000aaaad1ba1940 in llmq::CDKGSessionManager::GetVerifiedContributions () at llmq/dkgsessionmgr.cpp:393
      ```
      and it makes circuit lock by waiting `cs_main` in
      ```
      dashpay#9  ReadBlockFromDisk () at node/blockstorage.cpp:75
      ```
    
      See dashpay/dash-issues#69 for more details
    
      Seems introduced there: dashpay#3911
    
      ## What was done?
      Deadlock is removed by reducing scope of mutex
    
      ## How Has This Been Tested?
      I reviewed 2 different servers which have status `work queue exceeded`, both have same deadlock, so, this patch should fix this issue. Once this fix is merged, we can test it on testnet.
    
      ## 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
      - [ ] 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
    
    Top commit has no ACKs.
    
    Tree-SHA512: 4fe5c03c464ee6934fb927b897f007b65a8995723196edaffdae067edee7067da151130d4c4bac47d3418fdad5c8e130682f42d7ef9c044380a8c8fff78ee008
    PastaPastaPasta committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    fcee7a5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3cd6937 View commit details
    Browse the repository at this point in the history
  5. Merge dashpay#5959: refactor: add a default for CopyNodeVector(cond)

    544348f refactor: add a default for CopyNodeVector(cond) (pasta)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      This is a custom function in the dash codebase; remove it and use default arg instead
    
      ## What was done?
    
      ## How Has This Been Tested?
      Building
    
      ## Breaking Changes
      None
    
      ## Checklist:
        _Go over all the following points, and put an `x` in all the boxes that apply._
      - [ ] 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)_
    
    Top commit has no ACKs.
    
    Tree-SHA512: 9a7854436ed8c068c602ad4c87dc7b792fdbc3d37dad4749758bf3b052814b6d2e0051dab7f2bd13df860ee9ac9678738c5d2c3b2058829fde84c2b2e219da76
    PastaPastaPasta committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    cede44d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0e78555 View commit details
    Browse the repository at this point in the history
  7. test: fix incorrect nServices assertion, use NODE_NETWORK value

    The value of nServices for `NODE_NETWORK | NODE_WITNESS`, the default for
    p2p_addr{v2}_relay.py in Bitcoin Core, is 9. Dash doesn't implement SegWit
    and so the corresponding nServices value is `NODE_NETWORK`, which is 1.
    kwvg authored and UdjinM6 committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    a39065b View commit details
    Browse the repository at this point in the history
  8. Merge dashpay#5949: chore: apply CI for clang-format only for dash files

    adc0e4b fix: apply changes for .clang-format to make it matched with our code style (Konstantin Akimov)
    0c884f9 chore: narrow score of clang-diff-format for dash specific files only (Konstantin Akimov)
    4bc0e1f chore: intentionally introducing wrong formatting to bip39.cpp to trigger CI (Konstantin Akimov)
    2c74ad4 fix: adjust wallet/bip39 accordingly linter comments (Konstantin Akimov)
    d3faa85 refactor: use better masks for list of files; add missing bip39.{h,cpp} (Konstantin Akimov)
    7788f1d refactor: move list of non backported files o test/util/data/non-backported.txt (Konstantin Akimov)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      **Note**: should be this PR either dashpay#5942 be merged, not both
    
      CI clang-format triggers to non-dash files + clang format is differ from out current formatting.
    
      ## What was done?
      See each commits
    
      ## How Has This Been Tested?
      See CI result
      To test locally how new style will look, just run this command:
      ```
      diff -u <(cat {coinjoin,governance,llmq,evo,masternode}/*.{h,cpp}) <(clang-format-16 {coinjoin,governance,llmq,evo,masternode}/*.{h,cpp} )
      ```
    
      ## 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
      - [ ] 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
    
    Top commit has no ACKs.
    
    Tree-SHA512: d87f30ba78e04f886d7eb2b6b235c20a966bc4438e6428a83ecff5c795d72777516d4270eb9769ffebef9f06e9509acf3c535b4c87b1be6c8a5aef7e2b7efecb
    PastaPastaPasta committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    85caf8a View commit details
    Browse the repository at this point in the history
  9. fix: keep ADDRS outside

    UdjinM6 committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    c79f8b5 View commit details
    Browse the repository at this point in the history
  10. Merge dashpay#5967: test: Fix p2p_addr_relay.py

    c79f8b5 fix: keep ADDRS outside (UdjinM6)
    a39065b test: fix incorrect nServices assertion, use NODE_NETWORK value (Kittywhiskers Van Gogh)
    0e78555 fix: add missing check for sending addrs (UdjinM6)
    3cd6937 fix: test nodes should use mocktime (UdjinM6)
    acbbe8c fix: relayed addresses should use mocktime (UdjinM6)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      `p2p_addr_relay.py` is broken but we don't see it in CI because it doesn't test everything it should atm. This weird behaviour was discovered by @kwvg while preparing dashpay#5964.
    
      ## What was done?
      Bring back the missing check and fix the test. Borrowed one fix from dashpay#5964 to make this PR complete.
    
      ## How Has This Been Tested?
      Run `p2p_addr_relay.py`
    
      ## 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 _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      kwvg:
        ACK c79f8b5
    
    Tree-SHA512: a88f9c3563205b092ebd9ab7e8f0c034b6ef5bef2adbf57c269c444ef334e519e30d028325e73e99de025654a0dbd94baad033fb1538896e85572d4db2a00b23
    PastaPastaPasta committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    14a923a View commit details
    Browse the repository at this point in the history
  11. fix: fix potential mutex lifetime issue were we are returning a refer…

    …ence, and then releasing the mutex
    PastaPastaPasta committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    7f36f12 View commit details
    Browse the repository at this point in the history
  12. fix: don't move out of pendingContributionVerifications; use a ref an…

    …d then clear
    
    Moving out of a variable technically leaves it in an unspecified and potentially invalid state; yet I don't see anywhere we are reseting or otherwise clearing pendingContributionVerifications to ensure it is valid. Instead simply take a ref to it; and then clear it at the end.
    PastaPastaPasta committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    6f2b350 View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin#22736: log, sync: change lock contention from preproces…

    …sor directive to log category
    
    7e69873 sync: remove DEBUG_LOCKCONTENTION preprocessor directives (Jon Atack)
    9b08006 log, sync: improve lock contention logging and add time duration (Jon Atack)
    3f4c6b8 log, timer: add timing macro in usec LOG_TIME_MICROS_WITH_CATEGORY (Jon Atack)
    b7a1744 log, sync: add LOCK logging category, apply it to lock contention (Jon Atack)
    
    Pull request description:
    
      To enable lock contention logging, `DEBUG_LOCKCONTENTION` has to be defined at compilation. Once built, the logging is not limited to a category and is high frequency, verbose and in all-caps. With these factors combined, it seems likely to be rarely used.
    
      This patch:
      - adds a `lock` logging category
      - adds a timing macro in microseconds, `LOG_TIME_MICROS_WITH_CATEGORY`
      - updates `BCLog::LogMsg()` to omit irrelevant decimals for microseconds and skip unneeded code and math
      - improves the lock contention logging, drops the all-caps, and displays the duration in microseconds
      - removes the conditional compilation directives
      - allows lock contentions to be logged on startup with `-debug=lock` or at run time with `bitcoin-cli logging '["lock"]'`
    
      ```
      $ bitcoind -signet -debug=lock
      2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1920 started
      2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1920 completed (4μs)
      2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1302 started
      2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1302 completed (4μs)
      2021-09-01T12:40:02Z LockContention: cs_vNodes, net.cpp:2242 started
      2021-09-01T12:40:02Z LockContention: cs_vNodes, net.cpp:2242 completed (20μs)
      2021-09-01T12:43:04Z LockContention: ::cs_main, validation.cpp:4980 started
      2021-09-01T12:43:04Z LockContention: ::cs_main, validation.cpp:4980 completed (3μs)
    
      $ bitcoin-cli -signet logging
        "lock": true,
    
      $ bitcoin-cli -signet logging [] '["lock"]'
        "lock": false,
    
      $ bitcoin-cli -signet logging '["lock"]'
        "lock": true,
      ```
    
      I've tested this with Clang 13 and GCC 10.2.1, on Debian, with and without `--enable-debug`.
    
    ACKs for top commit:
      hebasto:
        re-ACK 7e69873, added a contention duration to the log message since my [previous](bitcoin#22736 (review)) review.
      theStack:
        re-ACK 7e69873 🔏 ⏲️
    
    Tree-SHA512: c4b5eb88d3a2c051acaa842b3055ce30efde1f114f61da6e55fcaa27476c1c33a60bc419f7f5ccda532e1bdbe70815222ec2b2b6d9226f29c8e94e598aacfee7
    MarcoFalke authored and PastaPastaPasta committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    436a578 View commit details
    Browse the repository at this point in the history
  14. Merge dashpay#5649: Merge bitcoin#22736: log, sync: change lock conte…

    …ntion from preprocessor directive to log category
    
    436a578 Merge bitcoin#22736: log, sync: change lock contention from preprocessor directive to log category (MarcoFalke)
    
    Pull request description:
    
      7e69873 sync: remove DEBUG_LOCKCONTENTION preprocessor directives (Jon Atack)
      9b08006 log, sync: improve lock contention logging and add time duration (Jon Atack)
      3f4c6b8 log, timer: add timing macro in usec LOG_TIME_MICROS_WITH_CATEGORY (Jon Atack)
      b7a1744 log, sync: add LOCK logging category, apply it to lock contention (Jon Atack)
    
      Pull request description:
    
        To enable lock contention logging, `DEBUG_LOCKCONTENTION` has to be defined at compilation. Once built, the logging is not limited to a category and is high frequency, verbose and in all-caps. With these factors combined, it seems likely to be rarely used.
    
        This patch:
        - adds a `lock` logging category
        - adds a timing macro in microseconds, `LOG_TIME_MICROS_WITH_CATEGORY`
        - updates `BCLog::LogMsg()` to omit irrelevant decimals for microseconds and skip unneeded code and math
        - improves the lock contention logging, drops the all-caps, and displays the duration in microseconds
        - removes the conditional compilation directives
        - allows lock contentions to be logged on startup with `-debug=lock` or at run time with `bitcoin-cli logging '["lock"]'`
    
        ```
        $ bitcoind -signet -debug=lock
        2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1920 started
        2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1920 completed (4μs)
        2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1302 started
        2021-09-01T12:40:01Z LockContention: cs_vNodes, net.cpp:1302 completed (4μs)
        2021-09-01T12:40:02Z LockContention: cs_vNodes, net.cpp:2242 started
        2021-09-01T12:40:02Z LockContention: cs_vNodes, net.cpp:2242 completed (20μs)
        2021-09-01T12:43:04Z LockContention: ::cs_main, validation.cpp:4980 started
        2021-09-01T12:43:04Z LockContention: ::cs_main, validation.cpp:4980 completed (3μs)
    
        $ bitcoin-cli -signet logging
          "lock": true,
    
        $ bitcoin-cli -signet logging [] '["lock"]'
          "lock": false,
    
        $ bitcoin-cli -signet logging '["lock"]'
          "lock": true, ```
    
        I've tested this with Clang 13 and GCC 10.2.1, on Debian, with and without `--enable-debug`.
    
      ## Checklist:
        _Go over all the following points, and put an `x` in all the boxes that apply._
      - [ ] 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)_
    
    Top commit has no ACKs.
    
    Tree-SHA512: ecd15833b9e5752067c92a074f61d88fb8528157b1c0446f9f74d4898acb9c09ebb5f652c75152785a41126fdf777032a6f85d472cd1d9a0b6013519329dc2e7
    PastaPastaPasta committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    4da2067 View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2024

  1. Merge bitcoin#20288: script, doc: contrib/seeds updates

    961f148 doc: update contrib/seeds/README dnspython installation info (Jon Atack)
    dd7b5f4 script: fix deprecation warning in makeseeds.py (Jon Atack)
    
    Pull request description:
    
      Seen while reviewing bitcoin#20237.
    
      1. Fix a deprecation warning in `contrib/seeds/makeseeds.py`
      ```
          makeseeds.py:139: DeprecationWarning: please use dns.resolver.resolve() instead
            asn = int([x.to_text() for x in dns.resolver.query('.'.join(
      ```
        - Per https://dnspython.readthedocs.io/en/latest/whatsnew.html, `dns.resolver.query()` was deprecated in `dnspython` version 2.0.0.
    
        - See https://dnspython.readthedocs.io/en/latest/resolver-class.html for more info on the resolver class.
    
      2. Update the `dnspython` dependency installation instructions in `contrib/seeds/README`
    
        - The markdown rendering can be seen here: https://github.com/jonatack/bitcoin/tree/contrib-seeds-fixups/contrib/seeds
    
    ACKs for top commit:
      laanwj:
        code review ACK 961f148
    
    Tree-SHA512: f9c4f318a1a0d35b8de147d24b72c534a1f58eece31e7cfa00b4149a63b6a618d8ca0312f52fd8056f3c645cf2ee68574ca02319fddffdad919a70cd33395d33
    laanwj authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    9eec4cc View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#20329: docs/descriptors.md: Remove hardened marker in t…

    …he path after xpub
    
    dc80a7d docs/descriptors.md: Remove hardened marker in the path after xpub (Dmitry Petukhov)
    
    Pull request description:
    
      As described in "Key origin identification" section, a descriptor
      that has hardened derivation after xpub does not let you compute scripts
      without access to the corresponding private keys. Such a descriptor is
      practically useless.
    
      The text after the descriptor said "with child key *1'/2* of the
      specified xpub", and clearly an xpub cannot have "child key" with
      hardened derivation. Therefore it makes sense to fix this inconsistency
      to not confuse the reader of the doc
    
    Top commit has no ACKs.
    
    Tree-SHA512: 9f35951d90868585303681c27ea2ef9d36d4036181e337cfbd48730de0c346320b08dd089350b116d4c8542f3b506868cf318796bb713e5f80600ccbd96f9970
    MarcoFalke authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    455bb2e View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#20491: refactor: Drop noop gcc version checks

    830ddf4 Drop noop gcc version checks (Hennadii Stepanov)
    
    Pull request description:
    
      Since bitcoin#20413 the minimum required GCC version is 7.
    
    ACKs for top commit:
      fanquake:
        ACK 830ddf4
    
    Tree-SHA512: 36264661d6ced1683a0c907efba7c700502acaf8e9fd50d9066bc9c7b877b25165b0684c2d7fe74bd58e500a77d7702bdbdd53691c274f29e4abccd241c10964
    fanquake authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    d01973c View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#20512: doc: Add bash as an OpenBSD dependency

    1d578c0 doc: Add bash as an OpenBSD dependency (Emil Engler)
    
    Pull request description:
    
      If we require Python for the test framework, we should also require
      bash. It is required for the linters and other scripts and does not
      comes in a default OpenBSD installation.
    
    ACKs for top commit:
      practicalswift:
        ACK 1d578c0
      RiccardoMasutti:
        ACK 1d578c0
      theStack:
        ACK 1d578c0
    
    Tree-SHA512: ef14e801983093a99d4c28d134adbc589ca06e5437bf1ff34f8e593968c59793e9d99e8a48f577f847acdfc5185e193276526894b4c632c59d66d87939977910
    jonasschnelli authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    def356e View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#20587: [doc] Tidy up Tor doc (more stringent)

    32045bb [doc] Tidy up Tor doc (more stringent) (wodry)
    
    Pull request description:
    
      This is a follow up to bitcoin#19638 that left two deprecated "hidden service/server" naming occurences.
    
      It also shall make the chapter titles regarding creation of onion services stringent and easy to read and distinguish.
    
      It removes the one and only reference to the testnet (here the testnet onion service port), as it is not explained that it references to the testnet and I do not know why it is mentioned there. It is only confusing. Also, as said, the testnet is not referenced at any other place in this document.
    
    ACKs for top commit:
      practicalswift:
        ACK 32045bb
      laanwj:
        Review ACK 32045bb
      RiccardoMasutti:
        ACK 32045bb
    
    Tree-SHA512: c623387b76d68845c0fa47f67a6f8ef70c9c560e3f8f8754e45a4f51e43198c2092be789588acd4ada607f42fbe62d51a4b1888d81b225df19b6557a081835c0
    laanwj authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    d186b37 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#20588: Remove unused and confusing CTransaction constru…

    …ctor
    
    fac39c1 wallet: document that tx in CreateTransaction is purely an out-param (MarcoFalke)
    faac315 Remove unused and confusing CTransaction constructor (MarcoFalke)
    
    Pull request description:
    
      The constructor is confusing and dangerous (as explained in the TODO), fix that by removing it.
    
    ACKs for top commit:
      laanwj:
        Code review ACK fac39c1
      promag:
        Code review ACK fac39c1.
      theStack:
        Code review ACK fac39c1
    
    Tree-SHA512: e0c8cffce8d8ee0166b8e1cbfe85ed0657611e26e2af0d69fde70eceaa5d75cbde3eb489af0428fe4fc431360b4c791fb1cc21b8dee7d4c7a4f17df00836229d
    fanquake authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    41505e6 View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#20611: Move TX_MAX_STANDARD_VERSION to policy

    fade619 Move TX_MAX_STANDARD_VERSION to policy (MarcoFalke)
    
    Pull request description:
    
      `primitives` should only be used for the raw datastructures (parsing and format). It is not the right place to document relay policy.
    
    ACKs for top commit:
      laanwj:
        Code review ACK fade619
      lontivero:
        Concept ACK bitcoin@fade619
    
    Tree-SHA512: f809c4aecd14d7e9feaa7b50b9c0697232991eef36190cd960bcfb0ad6e20c71a4f6aab48c7747cf8a681eb14feda60c55b09a37f128673d519567224f29cd97
    laanwj authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    b193c63 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#16551: test: Test that low difficulty chain fork is rej…

    …ected
    
    Backport notice:
     - data have real blocks from testnet
     - due to big gap in blocks before checkpoints (half-year) for sack of this test is added one more checkpoint, otherwise blocks are not accepted due to non-mockable time for other chains except regtest
     - data for 2 blocks in split chain are generated locally for testnet
    --------------
    333317c test: Test that low difficulty chain fork is rejected (MarcoFalke)
    fa31dc1 test: Pass down correct chain name in tests (MarcoFalke)
    
    Pull request description:
    
      To prevent OOM, Bitcoin Core will reject chain forks at low difficulty by default. This is the only use-case of checkpoints, so add a test for it to make sure the feature works as expected. If it didn't work, checkpoints would have no use-case and we might as well remove them
    
    ACKs for top commit:
      Sjors:
        Thanks for adding the node 1 example. Code review ACK 333317c
    
    Tree-SHA512: 90dffa540d0904f3cffb61d2382b1a26f84fe9560b7013e4461546383add31a8757b350616a6d43217c59ef7b8b2a1b62bb3bab582c679cbb2c660a782ce7be1
    MarcoFalke authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    eba325d View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#20451: lint: run mypy over contrib/devtools

    1ef2138 lint: run mypy over contrib/devtools (fanquake)
    
    Pull request description:
    
      wumpus mentioned on IRC that we don't currently run `mypy` over the `contrib/devtools` directory, and that it would likely be worthwhile given bitcoin#20434. This just adds that dir to the linter, as well as some missing annotations to fix existing errors. Note that now we require Python 3.6 we can make use of variable annotations.
    
      master (patched to check contrib devtools):
      ```bash
      test/lint/lint-python.sh
      contrib/devtools/symbol-check.py:154: error: Incompatible types in assignment (expression has type "List[str]", variable has type "str")
      contrib/devtools/circular-dependencies.py:35: error: Need type annotation for 'deps' (hint: "deps: Dict[<type>, <type>] = ...")
      contrib/devtools/circular-dependencies.py:67: error: Need type annotation for 'closure' (hint: "closure: Dict[<type>, <type>] = ...")
      Found 4 errors in 3 files (checked 187 source files)
      ```
    
      I haven't quite gone as far as to add annotations like
      ```python
      CHECKS: Dict[str, List[Tuple[str, Callable[[Any], bool]]]] = {...
      ```
      to `symbol-check.py`.
    
    ACKs for top commit:
      laanwj:
        ACK 1ef2138
    
    Tree-SHA512: a58c2ece588c640289dc1d35dad5b1b8732788272daa0965d6bf44ee8a7f7c8e8585f94d233ac41c84b9ffcfc97841a00fe2c9acba41f58fd164f01de4b6512b
    laanwj authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    1995d2e View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#21112: ci: use Focal for macOS cross builds

    ac24af4 ci: use Ubuntu Focal for macOS cross build (fanquake)
    
    Pull request description:
    
      I had assumed Cirrus was spinning up Docker containers to run the CI,
      however we are actaully running on the Cirrus machines themselves. See
      `DANGER_RUN_CI_ON_HOST` and in the logs:
      ```bash
      Running on host system without docker wrapper
      ```
    
      So with this change we will actually be using Focal for the macOS cross build.
    
      Follow up to bitcoin#21036.
    
      This originally contained Windows changes, and an attempt to get Cirrus running without `DANGER_RUN_CI_ON_HOST`, however that seems non-trival, so Windows changes have been dropped from here for now.
    
    ACKs for top commit:
      MarcoFalke:
        cr ACK ac24af4
    
    Tree-SHA512: 587ba5acf741bcefecf1bc262fa1177f565ebfa9de56125eca19ed3c7db7b9aabfb96866e9c140681b88cb7015a3ded2bc6b4b1b235543d6f6e9dfc6984d569f
    MarcoFalke authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    c865338 View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#20182: ci: Build with --enable-werror by default, and d…

    …ocument exceptions
    
    2f6fe4e ci: Build with --enable-werror by default, and document exceptions (Hennadii Stepanov)
    
    Pull request description:
    
      This PR prevents introducing of new compiler warnings in the master branch, e.g., bitcoin#19986, bitcoin#20162.
    
    ACKs for top commit:
      practicalswift:
        cr ACK 2f6fe4e: patch looks correct
      MarcoFalke:
        re-ACK 2f6fe4e 🏏
      vasild:
        ACK 2f6fe4e
    
    Tree-SHA512: 23b5feb5bc472658c992d882ef61af23496f25adaa19f9c79bfaef5d2db273d44981aa93b1631a7d37cb58755283c1dacf3f2d68e501522d3fa8c965ab646d19
    MarcoFalke authored and knst committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    14a67ee View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    0c38cc3 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    a47635b View commit details
    Browse the repository at this point in the history
  14. Merge dashpay#5963: backport: bitcoin#16551, bitcoin#20288, bitcoin#2…

    …0329, bitcoin#20451, bitcoin#20491, bitcoin#20512, bitcoin#20587, bitcoin#20588, bitcoin#20611, bitcoin#21112
    
    c865338 Merge bitcoin#21112: ci: use Focal for macOS cross builds (MarcoFalke)
    1995d2e Merge bitcoin#20451: lint: run mypy over contrib/devtools (Wladimir J. van der Laan)
    eba325d Merge bitcoin#16551: test: Test that low difficulty chain fork is rejected (MarcoFalke)
    b193c63 Merge bitcoin#20611: Move TX_MAX_STANDARD_VERSION to policy (Wladimir J. van der Laan)
    41505e6 Merge bitcoin#20588: Remove unused and confusing CTransaction constructor (fanquake)
    d186b37 Merge bitcoin#20587: [doc] Tidy up Tor doc (more stringent) (Wladimir J. van der Laan)
    def356e Merge bitcoin#20512: doc: Add bash as an OpenBSD dependency (Jonas Schnelli)
    d01973c Merge bitcoin#20491: refactor: Drop noop gcc version checks (fanquake)
    455bb2e Merge bitcoin#20329: docs/descriptors.md: Remove hardened marker in the path after xpub (MarcoFalke)
    9eec4cc Merge bitcoin#20288: script, doc: contrib/seeds updates (Wladimir J. van der Laan)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Just regular backports from v19 and v22
    
      ## What was done?
       - bitcoin#20288
       - bitcoin#20329
       - bitcoin#20491
       - bitcoin#20512
       - bitcoin#20587
       - bitcoin#20588
       - bitcoin#20611
       - bitcoin#16551
       - bitcoin#20451
       - bitcoin#21112
    
      ## How Has This Been Tested?
      Run unit/functional 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:
      PastaPastaPasta:
        utACK c865338
    
    Tree-SHA512: 38e747a82091874f8cb87f35dc99aa8498e798f3818525c3fe99b2ed454fd8490d710c6eb7c3a0840105bb126503d301262d2f473a2502c66de8c32c8de94922
    PastaPastaPasta committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    49e480f View commit details
    Browse the repository at this point in the history
  15. Merge dashpay#5958: backport: bitcoin#20182 ci: Build with --enable-w…

    …error by default, and document exceptions
    
    a47635b feat: drop symbol check from CI to unify with bitcoin, keep it for qt5 only (Konstantin Akimov)
    0c38cc3 fix: drop -static-libstc++ from depends/hosts/{linux,mingw32}.mk which is clang-only (Konstantin Akimov)
    14a67ee Merge bitcoin#20182: ci: Build with --enable-werror by default, and document exceptions (MarcoFalke)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      As discovered in dashpay#5957:
    
      Jobs tsan/ubsan fails with backport bitcoin#20182
    
      it fails, because both tsan and ubsan jobs use clang but all other jobs use gcc. Somehow, after configure there are set incorrect options:
    
      ```
      clang++-16 -std=c++17 -c -pipe -static-libstdc++ -O1   -Werror -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_LIBCPP_DEBUG=1 -I/builds/dashpay/dash/depends/x86_64-pc-linux-gnu/include/  conftest.cpp
      ```
    
      `clang` doesn't support `-static-llibstdc++` which is supposed to be gcc-only, it cause this failure:
      ```
      clang: error: argument unused during compilation: '-static-libstdc++' [-Werror,-Wunused-command-line-argument]
      ```
    
      This failure make `autoconf` to think that clang doesn't support `-Werror` and fails with this error. So, you can't activate this flag.
    
      ## What was done?
      Backport bitcoin#20182 and related fixes to make it works
    
      ## How Has This Been Tested?
      CI now succeed with bitcoin#20182. It means, that -Werror activated for clang; also there are not warnings such as:
      ```
      clang: error: argument unused during compilation: '-static-libstdc++' [-Werror,-Wunused-command-line-argument]
      ```
      https://gitlab.com/dashpay/dash/-/jobs/6494328698
    
      ## 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
    
    Top commit has no ACKs.
    
    Tree-SHA512: f912824eaa1ec7513cda7278a3df9e067b0ab48a2d174b18654c8070aa6544bac33a52f494c1e35b4eab10392c1f26df4663e21d12a4dfff7c0a4a6a01ff9551
    PastaPastaPasta committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    0a22b3e View commit details
    Browse the repository at this point in the history
  16. refactor: add cs_mapSocketToNode and cs_sendable_receivable_nodes to …

    …minimize cs_vNode contention (and document an undocumented lock requirement)
    PastaPastaPasta committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    0b8fe48 View commit details
    Browse the repository at this point in the history
  17. Merge dashpay#5961: feat: implement read write locks in threading and…

    … use them for CActiveMasternodeManager::cs
    
    0692826 refactor: make CActiveMasternodeManager::cs SharedMutex and private (pasta)
    663774c feat: implement Read Write Locks in threading (pasta)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      We have some caches or other information in codebase which are read from a lot; but rarely written to. We can use a RW lock here instead of a normal Mutex
    
      ## What was done?
      Implement a RW lock and use them
    
      ## How Has This Been Tested?
      Hasn't been much; looking for review atm. Maybe should deploy this on testnet for a bit and make sure it doesn't break.
      ## Breaking Changes
    
      ## Checklist:
        _Go over all the following points, and put an `x` in all the boxes that apply._
      - [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 _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      knst:
        utACK 0692826
    
    Tree-SHA512: a9759d4904580eebb5ddf9e05d3d54cf4b0b0db971f09d2f4cb093fddc0a13094998ef2af301de581fd64dc1235df80bace7f701ab437c2ecfa663b4fc6e25ed
    PastaPastaPasta committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    dc6f52a View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    017d1b4 View commit details
    Browse the repository at this point in the history
  19. merge bitcoin#20653: Move addr relay comment in net to correct place

    comment was moved to net.h in 678df63 (dashpay#4888) and removed entirely in
    796353a (dashpay#5771). the comment is being restored back to where it is
    upstream, in CNode::RelayAddrsWithConn.
    kwvg committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    d0c596e View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    b76e029 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    7f57516 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    1d4f10a View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    e109c00 View commit details
    Browse the repository at this point in the history
  24. partial bitcoin-core/gui#206: Display fRelayTxes and bip152_highbandw…

    …idth_{to, from} in peer details
    
    excludes:
    - 142807a
    kwvg committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    3e8ba24 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    8b204c4 View commit details
    Browse the repository at this point in the history
  26. merge bitcoin#21015: Make all of net_processing (and some of net) use…

    … std::chrono types
    kwvg committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    62a7311 View commit details
    Browse the repository at this point in the history
  27. merge bitcoin#19771: Replace enum CConnMan::NumConnections with enum …

    …class ConnectionDirection
    kwvg committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    5c4c7c5 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    ba1df91 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    d34d2c4 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    39384ba View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    6d27db5 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    03ab144 View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    4844e72 View commit details
    Browse the repository at this point in the history
  34. net: replace RelayAddrsWithConn check with !IsBlockOnlyConn

    Dash uses a lot more CNode::RelayAddrsWithConn checks than Bitcoin (esp.
    since a483122 (dashpay#4888)), so bitcoin#21186 will not adequately cover the
    removal of RelayAddrsWithConn usages.
    
    When possible to query with RelayAddrsWithPeer, that should be used, as
    that value is the most reliable, else we rely on the former mutual
    exclusivity of IsBlockOnlyConn and RelayAddrsWithConn to fill in the
    blanks where a more reliable query isn't available.
    
    Note: To prevent builds from breaking, a change has been made in
    InstantSend code despite it breaking functionality. A commit later will
    repair it by creating a way to access RelayAddrsWithPeer.
    kwvg committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    26c39f5 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    5478001 View commit details
    Browse the repository at this point in the history
  36. net: introduce CanRelayAddrs as RelayAddrsWithConn substitute

    Since bitcoin#21186, mutual exclusivity is not a given (i.e.
    RelayAddrsWithConn != !IsBlockOnlyConn), we should use RelayPeersWithConn
    for a definitive answer and since relying on a no-longer-true property
    breaks InstantSend, let's fetch the right answer instead.
    kwvg committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    2e55327 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    e89c555 View commit details
    Browse the repository at this point in the history
  38. Merge dashpay#5968: docs: add v20.0.4 release notes

    7f57516 docs: add v20.0.4 release notes (pasta)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      We didn't archive v20.0.4 release notes somehow in dashpay#5910
    
      ## What was done?
      Archive 20.0.4 release notes
    
      ## How Has This Been Tested?
    
      ## Breaking Changes
      None
    
      ## Checklist:
        _Go over all the following points, and put an `x` in all the boxes that apply._
      - [ ] 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)_
    
    Top commit has no ACKs.
    
    Tree-SHA512: d703dedf1aad2afb5eb8af291f89e38fa2dfb4185ef9e25194c273bb9f04ae8075ea87318552b468b1a487b39b95cf1dee794d3d3c5b8a863dbfd6d458ee8e72
    PastaPastaPasta committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    e1532db View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    a29f826 View commit details
    Browse the repository at this point in the history
  40. Merge dashpay#5964: backport: merge bitcoin#19763, bitcoin#20653, bit…

    …coin#20756, bitcoin#19315, bitcoin#20646, bitcoin#21015, bitcoin#19771, bitcoin#21425, bitcoin#21236, bitcoin#21198, bitcoin#21707, bitcoin#21785, bitcoin#21506, bitcoin#22107, partial bitcoin#21186, merge gui#226, partial gui#206 (networking backports: part 2)
    
    e89c555 merge bitcoin#22107: rename GetSystemTimeInSeconds to GetTimeSeconds (Kittywhiskers Van Gogh)
    2e55327 net: introduce CanRelayAddrs as RelayAddrsWithConn substitute (Kittywhiskers Van Gogh)
    5478001 partial bitcoin#21186: Move addr data into net_processing (Kittywhiskers Van Gogh)
    26c39f5 net: replace RelayAddrsWithConn check with !IsBlockOnlyConn (Kittywhiskers Van Gogh)
    4844e72 merge bitcoin#21506: make NetPermissionFlags an enum class (Kittywhiskers Van Gogh)
    03ab144 merge bitcoin#21785: Fix intermittent issue in p2p_addr_relay.py (Kittywhiskers Van Gogh)
    6d27db5 merge bitcoin#21707: Extend functional tests for addr relay (Kittywhiskers Van Gogh)
    39384ba merge bitcoin#21198: Address outstanding review comments from PR20721 (Kittywhiskers Van Gogh)
    d34d2c4 merge bitcoin#21236: Extract addr send functionality into MaybeSendAddr() (Kittywhiskers Van Gogh)
    ba1df91 merge bitcoin#21425: Pass PeerManagerImpl members only once (Kittywhiskers Van Gogh)
    5c4c7c5 merge bitcoin#19771: Replace enum CConnMan::NumConnections with enum class ConnectionDirection (Kittywhiskers Van Gogh)
    62a7311 merge bitcoin#21015: Make all of net_processing (and some of net) use std::chrono types (Kittywhiskers Van Gogh)
    8b204c4 merge bitcoin-core/gui#226: Add "Last Block" and "Last Tx" rows to peer details area (Kittywhiskers Van Gogh)
    3e8ba24 partial bitcoin-core/gui#206: Display fRelayTxes and bip152_highbandwidth_{to, from} in peer details (Kittywhiskers Van Gogh)
    e109c00 merge bitcoin#20646: refer to BIPs 339/155 in feature negotiation (Kittywhiskers Van Gogh)
    1d4f10a merge bitcoin#19315: Allow outbound & block-relay-only connections in functional tests (Kittywhiskers Van Gogh)
    b76e029 merge bitcoin#20756: Add missing field (permissions) to the getpeerinfo help (Kittywhiskers Van Gogh)
    d0c596e merge bitcoin#20653: Move addr relay comment in net to correct place (Kittywhiskers Van Gogh)
    017d1b4 merge bitcoin#19763: don't relay to the address' originator (Kittywhiskers Van Gogh)
    
    Pull request description:
    
      ## Additional Information
    
      * [bitcoin#19763](bitcoin#19763) doesn't play nice on its own, `p2p_addr_relay.py` fails because of `assert_equal(total_ipv4_received, num_ipv4_addrs * ipv4_branching_factor)` where `not(0 == 20)`. It only works with [bitcoin#21707](bitcoin#21707).
      * In the GUI/Qt wallet, the peer information tab in the debug window has three fields added to them, "Wants Tx Relay", "Last Block" and "Last Tx".
      * The RPC help text for `getpeerinfo` now includes help text for the `permissions` return value and a debug RPC called `addconnection` has been introduced.
    
      ## Breaking Changes
    
      None observed.
    
      ## 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
      - [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:
      PastaPastaPasta:
        utACK e89c555
    
    Tree-SHA512: 2be14351c22852b1318ded496fea60536db40659ab14e71bde02082935120bfb9df275790a4cb3170f54bcb4b2fb4f44096dd0e7cc703a705127ee294be39894
    PastaPastaPasta committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    c0c6a90 View commit details
    Browse the repository at this point in the history
  41. Merge dashpay#5956: refactor: add cs_mapSocketToNode and cs_sendable_…

    …receivable_nodes to minimize cs_vNode contention (and document an undocumented lock requirement)
    
    0b8fe48 refactor: add cs_mapSocketToNode and cs_sendable_receivable_nodes to minimize cs_vNode contention (and document an undocumented lock requirement) (pasta)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Reduce locking contention on cs_vNode
    
      ## What was done?
      added new mutex
    
      ## How Has This Been Tested?
      Building running locally on testnet
    
      ## Breaking Changes
      None
    
      ## 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
    
    Top commit has no ACKs.
    
    Tree-SHA512: b7a3aa8078cf7f2b5f9a833a345e405351a927fa517993d77cefa77c9d109c5d92e06b6d3f91093b0fa4d91c4a464f19ce4eb457e486f9532ce890f02b9b99e1
    PastaPastaPasta committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    fbcef10 View commit details
    Browse the repository at this point in the history
  42. Merge dashpay#5970: guix: exclude debug symbols for apple from list o…

    …f hashes due to its non-determinism
    
    a29f826 guix: exclude debug symbols for apple from list of hash sums due to its undeterminism (Konstantin Akimov)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Debug symbols for apples are non-deterministic. Due to that all list of hash sums differ between build.
      It causes to impossible to merge all GPG signatures to one file *.asc, because different files are signed.
      For example these hash lists: https://github.com/dashpay/guix.sigs/blob/master/20.1.0/knst/all.SHA256SUMS#L6 and https://github.com/dashpay/guix.sigs/blob/master/20.1.0/thephez/all.SHA256SUMS#L6
      are different:
      ```
      ac87fd17eb19edcaa83b2cbf02e6d74ec12b1eaab50fc73789413bb04f1e04b5  dashcore-20.1.0-arm64-apple-darwin-debug.tar.gz
      e16eaa02e24cdf643b58831c96bf1494c02602651e977994c8317f752b4c3ae3  dashcore-20.1.0-arm64-apple-darwin-debug.tar.gz
      ```
    
      ## What was done?
      It excludes the line with hash of apples's debug artefact from the final list.
    
      ## How Has This Been Tested?
      Run guix build and guix attest locally for 2 targets. There's output:
      ```
      $ cat ~/projects/guix.sigs/20.1.0-317-ga29f82670b96/knst/noncodesigned.SHA256SUMS
      f20cee2e348a850d39f79a6f06ce8019aca577bf5da0e81a3eb1d06013c0d3d9  dashcore-20.1.0-317-ga29f82670b96.tar.gz
      e01c18b817793a7d71173c9b2d84b32d7bdc27e67fbd2ac35ad85457bed5b5c3  dashcore-20.1.0-317-ga29f82670b96-x86_64-apple-darwin-unsigned.dmg
      0987f99859a4a7c5c1676a754f022f97dfe1dd8fdd8a35170e3144f43d317270  dashcore-20.1.0-317-ga29f82670b96-x86_64-apple-darwin-unsigned.tar.gz
      2afdffd9e5b959dd1f54baadf2e8c7159147050ea032074b6d606945621e9a28  dashcore-20.1.0-317-ga29f82670b96-x86_64-apple-darwin.tar.gz
      2f3af85fddb12cb6ff6f9c370b9bbb7b4893ed90748cefbb55fc4ce4d22cb3e9  dashcore-20.1.0-317-ga29f82670b96-x86_64-linux-gnu-debug.tar.gz
      19daa1c8310d3097bf25713a551f2bcd59eccfa882b3b413db36591d6ec7c204  dashcore-20.1.0-317-ga29f82670b96-x86_64-linux-gnu.tar.gz
      ```
      linux's debug is still here, apple's debug is not here as expected
    
      ## 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:
      PastaPastaPasta:
        utACK a29f826
    
    Tree-SHA512: d3b85ffea440b1b1d13b19373a9928e2881120747363844d4a9293d19afd986b98f096f3cdeee46acc93ca213200be44cadd867c3c77b9be55b7b81ecfcc156d
    PastaPastaPasta committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    43d0b3c View commit details
    Browse the repository at this point in the history
  43. Merge dashpay#5953: fix: resolve a few very unlikely lifetime / undef…

    …ined behavior issues
    
    6f2b350 fix: don't move out of pendingContributionVerifications; use a ref and then clear (pasta)
    7f36f12 fix: fix potential mutex lifetime issue were we are returning a reference, and then releasing the mutex (pasta)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      See individual commits
    
      ## What was done?
      Fix potential lifetime issue and potential undefined behavior
    
      ## How Has This Been Tested?
      Compiling
    
      ## Breaking Changes
      None
    
      ## Checklist:
        _Go over all the following points, and put an `x` in all the boxes that apply._
      - [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 _(for repository code-owners and collaborators only)_
    
    Top commit has no ACKs.
    
    Tree-SHA512: f76d88c1fe3c19a92bdf451f147520e29f5edf84342dfb0b6ea9bde901a3f826c09b5aa2334d8f6fa687aaae7d0c109f36779883c670915d55b69af3ea8affd4
    PastaPastaPasta committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    27c0813 View commit details
    Browse the repository at this point in the history

Commits on Apr 5, 2024

  1. Configuration menu
    Copy the full SHA
    250856d View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2024

  1. Merge dashpay#5972: chore: merge master 20.1.1 back into develop

    b96b202 chore: bump version to 20.1.1 (pasta)
    83cac77 docs: add v20.1.1 release notes (pasta)
    e58c7c4 Merge dashpay#5970: guix: exclude debug symbols for apple from list of hashes due to its non-determinism (pasta)
    2bde1dd Merge dashpay#5927: fix: check if message can be handled before attempting to deserialize (pasta)
    1637fa5 Merge dashpay#5968: docs: add v20.0.4 release notes (pasta)
    fd46c4c Merge dashpay#5962: fix: deadlock over cs_main and contributionsCacheCs in dkssessionmgr (pasta)
    
    Pull request description:
    
      Merge master into develop
    
    Top commit has no ACKs.
    
    Tree-SHA512: e65ffefcb7d0e92367ff322cab533f8505f0e9d00ab136bccb1dbf86ad64d6b710b5c9f9943594c544827d2eb69f5d0ba185962a2ac0b16c6b776a94f44cfb42
    PastaPastaPasta committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    ce992f7 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin-core/gui#13: Hide peer detail view if multiple are sele…

    …cted
    
    76277cc qt: Hide peer detail view if multiple are selected (João Barbosa)
    
    Pull request description:
    
      Currently if multiple peers are selected the peer detail view shows the first new selected peer.
    
      With this PR the peer detail view is hidden when multiple peers are selected. It is also a slight refactor to simplify and remove duplicate code.
    
    ACKs for top commit:
      jonasschnelli:
        Tested ACK 76277cc.
      hebasto:
        ACK 76277cc, tested on Linux Mint 20 (Qt 5.12.8).
    
    Tree-SHA512: 16c9cfd6ccb7077a9f31917a6cb3532e32d17d21f735e43bf4720fb0c8bb1bd539d42569c105df4b551f5dccb4acaeedb6bb2362620a9cb9267a602d9d065b9f
    jonasschnelli authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    648d6f0 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#20690: Clean up logging of outbound connection type

    6d1e85f Clean up logging of outbound connection type (Suhas Daftuar)
    
    Pull request description:
    
      We have a function that converts `ConnectionType` enums to strings, so use it.
    
      Suggested by ajtowns in bitcoin#19858 (comment)
    
    ACKs for top commit:
      amitiuttarwar:
        ACK 6d1e85f
      naumenkogs:
        ACK 6d1e85f
    
    Tree-SHA512: f5084d8b5257380696d9fde86a8873e190cd4553feb07fa49df39bbd9510bf5832d190a3bca1571c48370d16a17c7a34900857b21b27bec0777bfa710211d7bb
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    41a1e10 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18772: rpc: calculate fees in getblock using BlockUndo …

    …data
    
    66d012a test: RPC: getblock fee calculations (Elliott Jin)
    bf7d6e3 RPC: getblock: tx fee calculation for verbosity 2 via Undo data (Elliott Jin)
    
    Pull request description:
    
      This change is progress towards bitcoin#18771 .  It adapts the fee calculation part of bitcoin#16083 and addresses some feedback.  The additional "verbosity level 3" features are planned for a future PR.
    
      **Original PR description:**
    
      > Using block undo data (like in bitcoin#14802) we can now show fee information for each transaction in a block without the need for additional -txindex and/or a ton of costly lookups. For a start we'll add transaction fee information to getblock verbosity level 2. This comes at a negligible speed penalty (<1%).
    
    ACKs for top commit:
      luke-jr:
        tACK 66d012a
      fjahr:
        tACK 66d012a
      MarcoFalke:
        review ACK 66d012a 🗜
    
    Tree-SHA512: be1fe4b866946a8dc36427f7dc72a20e10860e320a28fa49bc85bd2a93a0d699768179be29fa52e18b2ed8505d3ec272e586753ef2239b4230e0aefd233acaa2
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    e36eacd View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    fae5696 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    31040ab View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    00d4ad5 View commit details
    Browse the repository at this point in the history
  8. fix: follow-up changes for bitcoin#17261 of usages ScriptPubKeyMan in…

    …side WalletTool
    
    It should be get-or-create instead just-get
    knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    7eb9b59 View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#20365: wallettool: add parameter to create descriptors …

    …wallet
    
    173cc9b test: walettool create descriptors (Ivan Metlushko)
    345e88e wallettool: add param to create descriptors wallet (Ivan Metlushko)
    6d3af3a wallettool: pass in DatabaseOptions into MakeWallet (Ivan Metlushko)
    
    Pull request description:
    
      Rationale: expose and promote descriptor wallets in more places; make cli tool more consistent with `createwallet` rpc.
    
      Add `-descriptors` parameter which is off by default. When specified it will create a new descriptors wallet with sqlite backend, which is consistent with `createwallet` rpc.
    
      This PR is based on a suggestion from **ryanofsky** bitcoin#19137 (comment)
    
      Example:
      ```
      $ ./src/bitcoin-wallet  -wallet=fewty -descriptors create
      Topping up keypool...
      Wallet info
      ===========
      Name: fewty
      Format: sqlite
      Descriptors: yes
      Encrypted: no
      HD (hd seed available): yes
      Keypool Size: 6000
      Transactions: 0
      Address Book: 0
      ```
      ```
      $ ./src/bitcoin-wallet  -wallet=fewty create
      Topping up keypool...
      Wallet info
      ===========
      Name: fewty
      Format: bdb
      Descriptors: no
      Encrypted: no
      HD (hd seed available): yes
      Keypool Size: 2000
      Transactions: 0
      Address Book: 0
      ```
    
    ACKs for top commit:
      achow101:
        ACK 173cc9b
      ryanofsky:
        Code review ACK 173cc9b. This seems pretty nicely implemented now, with opportunities to clean up more and dedup later
      MarcoFalke:
        Concept ACK 173cc9b 🌠
    
    Tree-SHA512: cc32ba336ff709de2707ee15f495b4617908e8700ede8401a58e894f44cda485c544d644023c9a6604d88a62db9d92152383ee2e8abf691688c25cf6e222c622
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    25248f9 View commit details
    Browse the repository at this point in the history
  10. Merge bitcoin#23349: util: Use FEATURE_LATEST for wallets created wit…

    …h bitcoin-wallet
    
    5b6b5ef util: Use FEATURE_LATEST for wallets created with bitcoin-wallet (Hennadii Stepanov)
    
    Pull request description:
    
      Since the 49d2374 commit was athored by **jonasschnelli** in 2016, the wallet version was bumped twice: in 2017 (bitcoin#11250) and in 2018 (bitcoin#12560).
    
      This PR bumps the version of wallets created with `bitcoin-wallet` offline tool.
    
      On master (04437ee) -- `"walletversion": 139900`:
      ```
      $ src/bitcoin-wallet -signet -wallet=211025-test-master create
      Topping up keypool...
      Wallet info
      ===========
      Name: 211025-test-master
      Format: sqlite
      Descriptors: yes
      Encrypted: no
      HD (hd seed available): yes
      Keypool Size: 6000
      Transactions: 0
      Address Book: 0
      $ src/bitcoin-cli -signet -rpcwallet=211025-test-master getwalletinfo
      {
        "walletname": "211025-test-master",
        "walletversion": 139900,
        "format": "sqlite",
        "balance": 0.00000000,
        "unconfirmed_balance": 0.00000000,
        "immature_balance": 0.00000000,
        "txcount": 0,
        "keypoolsize": 3000,
        "keypoolsize_hd_internal": 3000,
        "paytxfee": 0.00000000,
        "private_keys_enabled": true,
        "avoid_reuse": false,
        "scanning": false,
        "descriptors": true
      }
      ```
    
      With this PR -- `"walletversion": 169900`:
      ```
      $ src/bitcoin-wallet -signet -wallet=211025-test-pr create
      Topping up keypool...
      Wallet info
      ===========
      Name: 211025-test-pr
      Format: sqlite
      Descriptors: yes
      Encrypted: no
      HD (hd seed available): yes
      Keypool Size: 6000
      Transactions: 0
      Address Book: 0
      $ src/bitcoin-cli -signet -rpcwallet=211025-test-pr getwalletinfo
      {
        "walletname": "211025-test-pr",
        "walletversion": 169900,
        "format": "sqlite",
        "balance": 0.00000000,
        "unconfirmed_balance": 0.00000000,
        "immature_balance": 0.00000000,
        "txcount": 0,
        "keypoolsize": 3000,
        "keypoolsize_hd_internal": 3000,
        "paytxfee": 0.00000000,
        "private_keys_enabled": true,
        "avoid_reuse": false,
        "scanning": false,
        "descriptors": true
      }
      ```
    
    ACKs for top commit:
      lsilva01:
        Code Review ACK 5b6b5ef
      stratospher:
        ACK 5b6b5ef.
      rajarshimaitra:
        ACK bitcoin@5b6b5ef
      meshcollider:
        Code review ACK 5b6b5ef
    
    Tree-SHA512: 0221e76fa8f29037920d0a483c742bf270ecaead45f30230943b78775aaea63ac052e43fe712d15c2326e515dea2d2ac82de0924882598421c1874f2e6f442a6
    meshcollider authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    5758c48 View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#19253: Tests: tidy up address.py and segwit_addr.py

    825fcae [tests] Replace bytes literals with hex literals (John Newbery)
    64eca45 [tests] Fix pep8 style violations in address.py (John Newbery)
    b230f8b [tests] Correct docstring for address.py (John Newbery)
    ea70e6a [tests] Tidy up imports in address.py (John Newbery)
    7f639df [tests] Remove unused optional verify_checksum parameter (John Newbery)
    011e784 [tests] Rename segwit encode and decode functions (John Newbery)
    e455713 [tests] Move bech32 unit tests to test framework (John Newbery)
    
    Pull request description:
    
      Lots of small fixes:
    
      - moving unit tests to test_framework implementation files
      - renaming functions to be clearer
      - removing multiple imports
      - removing unreadable byte literals from the code
      - fixing pep8 violations
      - correcting out-of-date docstring
    
    ACKs for top commit:
      jonatack:
        re-ACK 825fcae per `git range-diff a0a422c 7edcdcd 825fcae` and verified `wallet_address_types.py` and `wallet_basic.py --descriptors` (the failure on one travis job) are green locally.
      MarcoFalke:
        ACK 825fcae
      fanquake:
        ACK 825fcae - looks ok to me.
    
    Tree-SHA512: aea509c27c1bcb94bef11205b6a79836c39c62249672815efc9822f411bc2e2336ceb3d72b3b861c3f4054a08e16edb28c6edd3aa5eff72eec1d60ea6ca82dc4
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    99dec80 View commit details
    Browse the repository at this point in the history
  12. Merge bitcoin#19137: wallettool: Add dump and createfromdump commands

    23cac24 tests: Test bitcoin-wallet dump and createfromdump (Andrew Chow)
    a88c320 wallettool: Add createfromdump command (Andrew Chow)
    e1e7a90 wallettool: Add dump command (Andrew Chow)
    
    Pull request description:
    
      Adds two commands to the `bitcoin-wallet` tool: `dump` and `createfromdump`. These commands will be useful for a wallet storage migration in the future. It is also generally useful to have a storage agnostic dump like this. These commands are similar to BDB's `db_dump` and `db_load` tools. This can also be useful for manual construction of a wallet file for tests.
    
      `dump` outputs every key-value pair from the wallet as comma separated hex. Each key-value pair is on its own line with the key and value in hex separated by a comma. This is output to the file specified by the new `-dumpfile` option.
    
      `createfromdump` takes a file produced by `dump` and creates a new wallet file with exactly the records specified in that file.
    
      A new option `-dumpfile` is added to the wallet tool. When used with `dump`, the records will be written to the specified file. When used with `createfromdump`, the file is read and the key-value pairs constructed from it. `createfromdump` requires `-dumpfile`.
    
      A simple round-trip test is added to the `tool_wallet.py`.
    
      This PR is based on bitcoin#19334,
    
    ACKs for top commit:
      Sjors:
        re-utACK 23cac24
      MarcoFalke:
        re review ACK 23cac24 only change is rebase and removing useless shared_ptr wrapper 🎼
      ryanofsky:
        Code review ACK 23cac24. Only changes since last review rebase and changing a pointer to a reference
    
    Tree-SHA512: 2d63cf62baca3d16495aa698dc02f7d889c81b41015e9c92c23c275bb4a690fc176d351c3fd7f310bd6b17f5a936cc9be694cbecd702af741b96c0f530e72fa2
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    2978c45 View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin#20687: wallet: Add missing check for -descriptors walle…

    …t tool option
    
    fae32f2 wallet: Add missing check for -descriptors wallet tool option (MarcoFalke)
    faf8f61 test: Add missing check for is_sqlite_compiled (MarcoFalke)
    fa7dde1 wallet: Pass ArgsManager into ExecuteWalletToolFunc instead of using global (MarcoFalke)
    
    Pull request description:
    
      Also, fix a test failure when compiled without sqlite
    
    ACKs for top commit:
      ryanofsky:
        Code review ACK fae32f2. Thanks for implementing the -descriptors check and dealing with the test failure!
      jonatack:
        Code review utACK fae32f2
    
    Tree-SHA512: 3d7710694085822739a8316e4abc6db270799ca6ff6b0f9e5563ae240da65ae6a9cab7ba2647feae6ba540dac40b55b38ed41c8f6ed0bf02a3d1536284448927
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    3f4b42c View commit details
    Browse the repository at this point in the history
  14. chore: drop debug printing of private keys to console stdout

    Debug logs should not be printed to stdout, stderr exists for it.
    Private keys should not be printed to console by activation very general
    macros name "ENABLE_DASH_DEBUG".
    This macros is used only for hdchain private keys, the location util/system.h
    is too general for it.
    Functional test "tool_wallet.py" is failed due to unexpected output for tsan.
    
    It seems as easier to remove this logs due to too many issues with it
    rather than address all of them.
    knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    456e34c View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    31ffb78 View commit details
    Browse the repository at this point in the history
  16. Merge bitcoin#20813: scripted-diff: Bump copyright headers

    fa0074e scripted-diff: Bump copyright headers (MarcoFalke)
    
    Pull request description:
    
      Needs to be done because no one has removed the years yet
    
    ACKs for top commit:
      practicalswift:
        ACK fa0074e
    
    Tree-SHA512: 210e92acd7d400b556cf8259c3ec9967797420cfd19f0c2a4fa54cb2b3d32ad9ae27e771269201e7d554c0f4cd73a8b1c1a42c9f65d8685ca4d52e5134b071a3
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    4a3e3af View commit details
    Browse the repository at this point in the history
  17. Merge bitcoin#20789: Rework strong and weak net enum fuzzing

    missing faaef94
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    83313a5 View commit details
    Browse the repository at this point in the history
  18. Merge bitcoin-core/gui#171: Use layout manager for Create Wallet dialog

    d4feb68 qt: Use layout manager for Create Wallet dialog (Hennadii Stepanov)
    
    Pull request description:
    
      On master (e75f91e) not using layout manager causes problems with resizing:
    
      ![Screenshot from 2021-01-01 13-03-13](https://user-images.githubusercontent.com/32963518/103437728-ce1d4580-4c33-11eb-8915-1e9482775653.png)
      ![Screenshot from 2021-01-01 13-03-26](https://user-images.githubusercontent.com/32963518/103437730-d6758080-4c33-11eb-9e0f-87d0dd487fcb.png)
    
      Also text labels are not resized properly on some window managers (bitcoin#20777), or if their lengths are changed (after translation).
    
      This PR introduces a standard layout manager for the "Create Wallet" dialog that fixes all layout issues (actually, the `createwalletdialog.ui` has been re-written from scratch):
    
      ![Screenshot from 2021-01-01 13-10-03](https://user-images.githubusercontent.com/32963518/103437822-d0cc6a80-4c34-11eb-84fd-fcb10a16d9ef.png)
      ![Screenshot from 2021-01-06 23-50-36](https://user-images.githubusercontent.com/32963518/103823090-0b416780-507a-11eb-89dd-3f48a358e168.png)
    
      Additional visual changes:
      - advanced options are grouped in `QGroupBox` (bitcoin-core/gui#96 (comment))
      - enabled the [size grip](https://doc.qt.io/qt-5/qsizegrip.html#details)
    
      Fix bitcoin#20777
    
    ACKs for top commit:
      jarolrod:
        ACK d4feb68
      Sjors:
        re-tACK d4feb68
      promag:
        Tested ACK d4feb68 on macos.
    
    Tree-SHA512: 4c055962e49f88624900b880b33a866976d224628784593428b712d2e94563d77ddefddea3397134d20e72f738a8cf9aa885c1272fd9ffc90213c104435fb9f4
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    317777e View commit details
    Browse the repository at this point in the history
  19. Merge bitcoin-core/gui#72: util: Log static plugins meta data and use…

    …d style
    
    957895c util: Log static plugins meta data and style (Hennadii Stepanov)
    
    Pull request description:
    
      This PR is a follow-up of bitcoin#17826, and adds additional info about the imported static plugins and the used style to the `debug.log` I found useful for testing (e.g., with `QT_QPA_PLATFORM`, `QT_QPA_PLATFORMTHEME`, `QT_STYLE_OVERRIDE` variables) and debugging issues (e.g., bitcoin#19716 (comment)).
    
      The excerpt from the log:
      ```
      2020-11-15T18:41:45Z [main] Bitcoin Core version v0.20.99.0-f0b933f78 (release build)
      2020-11-15T18:41:45Z [main] Qt 5.9.8 (static), plugin=xcb (static)
      2020-11-15T18:41:45Z [main] Static plugins:
      2020-11-15T18:41:45Z [main]  QXcbIntegrationPlugin, version 329992
      2020-11-15T18:41:45Z [main] Style: fusion / QFusionStyle
      ...
      ```
    
    ACKs for top commit:
      jarolrod:
        ACK 957895c, Tested on macOS 11.1
      jonasschnelli:
        utACK 957895c
    
    Tree-SHA512: 0e46db7560f380fbda8ce5e53faa5d419a456e90ca595ce46be8e3030c99d3a113586edad1988a97e9bf0279e944f975968ed1156817bc16723ed31c64850239
    jonasschnelli authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    368c65d View commit details
    Browse the repository at this point in the history
  20. Merge bitcoin-core/gui#139: doc: Improve gui/src/qt README.md

    5d1f260 Improve gui/src/qt README.md (Jarol Rodriguez)
    
    Pull request description:
    
      **Master/Before:** [Render of Master](https://github.com/bitcoin-core/gui/blob/master/src/qt/README.md)
    
      **PR/After:** [Render of PR](https://github.com/bitcoin-core/gui/blob/5d1f260713f9f1d29c0db68f2917dfe7368d4ba0/src/qt/README.md)
    
      **Changes:**
      The README.md found in `gui/src/qt` seems to not have gotten any love in a while. This PR fixes some grammatical errors, makes it easier to follow, and modernizes the logic of using Qt Creator.
      1. Makes several sections more informative
      2. Directories under `Files and Directories` now end with a forward slash denoting that they are a directory
      3. Modernize the Qt Creator Logic for the current setup flow
      4. Add UNIX Qt Creator Setup Instructions (Ubuntu & Debian)
    
    ACKs for top commit:
      RandyMcMillan:
        ACK 5d1f260 👍🏼
      jonatack:
        ACK 5d1f260
    
    Tree-SHA512: bd5cc24b95460f34a1efa489a6acc10d7632c84eabdcdc5729ef077d8303cf037ed664aae033af8883252433ea0999d8ec7d92e8b03d03a873d32b041a94f813
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    ba883c5 View commit details
    Browse the repository at this point in the history
  21. Merge bitcoin#21531: test: remove qt byteswap compattests

    9ac86bc test: remove qt byteswap compattests (fanquake)
    
    Pull request description:
    
      These were added as part of bitcoin#9366 when with fixing issues with Protobuf.
    
      Now that we no-longer use Protobuf, there's no reason to maintain a duplicate set of byteswap tests in the qt tests. Our other set of byteswap tests are here: https://github.com/bitcoin/bitcoin/blob/master/src/test/bswap_tests.cpp.
    
    ACKs for top commit:
      laanwj:
        Code review ACK 9ac86bc
    
    Tree-SHA512: 72ba131a5f8fbd9fdbbc4e1f95baa794496c960b12e0271700c632c6511b7e1b331e8db07a201838b4d56b2aeeb43d4de4e10265ea07ab14241307fa14d3342e
    MarcoFalke authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    65b80e7 View commit details
    Browse the repository at this point in the history
  22. Merge bitcoin-core/gui#115: Replace "Hide tray icon" option with posi…

    …tive "Show tray icon" one
    
    03edb52 qt: Remove redundant BitcoinGUI::setTrayIconVisible (Hennadii Stepanov)
    17174f8 gui: Replace "Hide tray icon" option with positive "Show tray icon" one (Hennadii Stepanov)
    
    Pull request description:
    
      This change makes easier both (1) using this option, and (2) reasoning about the code.
    
    ACKs for top commit:
      jonasschnelli:
        utACK 03edb52
    
    Tree-SHA512: 38e317492210d4fb13302dea383bd1f4f0ae1219d7ff2fdcb78607f15ac61a51969acaadb59b72c3f075b6356ef54368eb46fb49e6e1bd42db6d5804b97e232b
    jonasschnelli authored and knst committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    a2f190d View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    cf940e8 View commit details
    Browse the repository at this point in the history
  24. init: load databases of governance dependencies before loading its own

    The order in which they're loaded is dictated by the order in which they
    are initialized. This also lets us get rid of that fast-fail because
    governance db was always going to load before mncache db and replace it
    with an assert.
    
    Also, rename UpdateCachesAndClean to CheckAndRemove in CGovernanceManager
    as CheckAndRemove is already an existing alias to UpdateCachesAndClean and
    CheckAndRemove is associated with similar functionality in
    C{NetFulfilledRequest, Spork}Manager
    kwvg committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    ff825ac View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    2a4fdbf View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    1d9b7fa View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    91f4588 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    191b3de View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2024

  1. Merge dashpay#5965: backport: bitcoin#19137, bitcoin#19253, bitcoin#2…

    …0365, bitcoin#20687, bitcoin#23349 - descriptor wallets part III
    
    31ffb78 feat: add option -usehd to wallettool to let create non-hd wallets (Konstantin Akimov)
    456e34c chore: drop debug printing of private keys to console stdout (Konstantin Akimov)
    3f4b42c Merge bitcoin#20687: wallet: Add missing check for -descriptors wallet tool option (MarcoFalke)
    2978c45 Merge bitcoin#19137: wallettool: Add dump and createfromdump commands (MarcoFalke)
    99dec80 Merge bitcoin#19253: Tests: tidy up address.py and segwit_addr.py (MarcoFalke)
    5758c48 Merge bitcoin#23349: util: Use FEATURE_LATEST for wallets created with bitcoin-wallet (Samuel Dobson)
    25248f9 Merge bitcoin#20365: wallettool: add parameter to create descriptors wallet (MarcoFalke)
    7eb9b59 fix: follow-up changes for bitcoin#17261 of usages ScriptPubKeyMan inside WalletTool (Konstantin Akimov)
    00d4ad5 fix: assert if coinjoin-loader is nullptr during wallet initialization (Konstantin Akimov)
    31040ab fix: isHDenabled is true only when chain is generated; before that's always false (Konstantin Akimov)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Related issue: dashpay/dash-issues#59
    
      ## What was done?
       - ToolWallet can correctly create descriptor wallet
       - Default version of wallet created by ToolWallet bumped to the latest version.
       - HD Chain is correctly initialized now (non-empty) if created with Tool Wallet
       - dropped debug output of private keys from HD Chain to stdout of console
    
      Backports:
       - bitcoin#20365
       - bitcoin#23349
       - bitcoin#19253
       - bitcoin#19137
       - bitcoin#20687
    
      Beside new backports there are fixes for old backports bitcoin#17261.
    
      ## How Has This Been Tested?
      Run unit and functional tests
    
      ## Breaking Changes
      Behavior of WalletTool is changed: wallets have a newer version, they have HD chain inside.
    
      ## 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:
      PastaPastaPasta:
        utACK [31ffb78](dashpay@31ffb78)
    
    Tree-SHA512: 496cebdf965350caabe1a5f63e501c102b95db66937999ed902b407d5cca5e7c3e6cc4357b9a35c43707d7fc69572e0f978b889d5f150fc1158bba3f1d90b0cd
    PastaPastaPasta committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    0a62b9f View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#21075: doc: Fix markdown formatting

    e1604b3 doc: Replace tabs for spaces (Gunar C. Gessner)
    98db48d doc: Fix markdown formatting (Gunar Gessner)
    
    Pull request description:
    
      Lines were being joined making it hard to read.
    
    ACKs for top commit:
      RandyMcMillan:
        ACK e1604b3
    
    Tree-SHA512: fd5a7c5e9a1cbbf0fbb13b5c30b87853c84751da7f0fad08151bda07f1933872ab51cad29a0c0a70ced48e60df6d83bff3f84c2f77d00d22723fae9a8c3534fc
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    f254f77 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#21126: ci: Properly bump to focal for win cross build

    fa272df ci: Properly bump to focal for win cross build (MarcoFalke)
    
    Pull request description:
    
      Fixes bitcoin#21122
    
    ACKs for top commit:
      fanquake:
        ACK fa272df - Looks good to me. I can see the wine version output, `wine-5.0 (Ubuntu 5.0-3ubuntu1)`, in the [log](https://cirrus-ci.com/task/5743559502462976), and `make check` is running.
    
    Tree-SHA512: cd37462afc5512e00cef5e9e7fd1bb5c43c600e833b30cdea2c1c443dc7b0e68f5f2cbaf9d7b655892059af0a226478211db1dc97c10fe4dcdfe666a784f3afc
    fanquake authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    4abb768 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#21138: ci: Re-run wine tests once if they fail

    faa8afe ci: Re-run wine tests once if they fail (MarcoFalke)
    
    Pull request description:
    
      Works around the intermittent wine issue: bitcoin#21122 (comment)
    
    ACKs for top commit:
      fanquake:
        ACK faa8afe - thanks for following up with this.
    
    Tree-SHA512: cb377a8e62c7fcf38fb5bdd6203af82c6c302c86f7fc219cb756eb7b6d3d4fe4ebf30a36ebba739199ff7814b26256a3701cf38dc5e681b18c2f249cdf6d852e
    fanquake authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    88a45d4 View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#19522: build: fix building libconsensus with reduced ex…

    …ports for Darwin targets
    
    de4238f build: consolidate reduced export checks (fanquake)
    012bdec build: add building libconsensus to end-of-configure output (fanquake)
    8f360e3 build: remove ax_gcc_func_attribute macro (fanquake)
    f054a08 build: remove AX_GCC_FUNC_ATTRIBUTE test for dllimport (fanquake)
    7cd0a69 build: test for __declspec(dllexport) in configure (fanquake)
    1624e17 build: remove duplicate visibility attribute detection (fanquake)
    
    Pull request description:
    
      Darwin targets do not have a `protected` visibility function attribute, see [LLVM explanation](https://github.com/llvm/llvm-project/blob/8e9a505139fbef7d2e6e9d0adfe1efc87326f9ef/clang/lib/Basic/Targets/OSTargets.h#L131). This means that the `AX_GCC_FUNC_ATTRIBUTE` check for `visibility` fails:
      ```bash
      configure:24513: checking for __attribute__((visibility))
      configure:24537: g++ -std=c++11 -o conftest -g -O2  -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS -DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0  -Wl,-headerpad_max_install_names conftest.cpp  >&5
      conftest.cpp:35:56: warning: target does not support 'protected' visibility; using 'default' [-Wunsupported-visibility]
                          int foo_pro( void ) __attribute__((visibility("protected")));
                                                             ^
      1 warning generated.
      configure:24537: $? = 0
      configure:24550: result: no
      ```
    
      This leads to `EXPORT_SYMBOL` being [defined to nothing](https://github.com/bitcoin/bitcoin/blob/f4de89edfa8be4501534fec0c662c650a4ce7ef2/src/script/bitcoinconsensus.h#L29), as `HAVE_FUNC_ATTRIBUTE_VISIBILITY` is not defined, and when building with reduced exports, you end up with a libbitcoinconsensus.dylib that doesn't export any  `_bitcoinconsensus_*` symbols.
      ```bash
      ➜  git:(master) nm -C src/.libs/libbitcoinconsensus.dylib | rg _bitcoinconsensus_
      ➜  git:(master)
      ```
    
      We do have a [second check](https://github.com/bitcoin/bitcoin/blob/f4de89edfa8be4501534fec0c662c650a4ce7ef2/configure.ac#L882) for the `visibility` attribute, which works for Darwin as it's only testing for default visibility, however the result of this check isn't used at all. It was added in dashpay#4725, along with the `--enable-reduce-exports` option, however when libbitcoinconsensus was added in dashpay#5235, it used the results of the added `AX_GCC_FUNC_ATTRIBUTE` calls.
    
      This PR removes our usage of the AX_GCC_FUNC_ATTRIBUTE macro entirely, in favour of our own checks in configure. This meant adding a check for `dllexport`, which I've tested as working with both [GCC](https://gcc.gnu.org/onlinedocs/gcc/Microsoft-Windows-Function-Attributes.html) and [Clang](https://releases.llvm.org/10.0.0/tools/clang/docs/AttributeReference.html#dllexport) when building for Windows. I haven't added an equivalent check for `dllimport`, as we weren't actually using the result of that check, we're just testing that `MSC_VER` was defined before using.
    
      With these changes building a libbitcoinconsensus with reduced exports, when targeting Darwin, works as expected:
      ```bash
      ./autogen.sh
      ./configure --disable-tests --disable-bench --with-utils=no --with-daemon=no --with-gui=no --disable-wallet --with-libs=yes --enable-reduce-exports
      make -j8
      ...
      nm -C src/.libs/libbitcoinconsensus.dylib | rg _bitcoinconsensus_
      000000000000a340 T _bitcoinconsensus_verify_script
      00000000000097e0 T _bitcoinconsensus_verify_script_with_amount
      000000000000a3c0 T _bitcoinconsensus_version
      ```
    
      ```python
      >>> import ctypes
      >>> consensus = ctypes.CDLL("src/.libs/libbitcoinconsensus.dylib")
      >>> print(consensus.bitcoinconsensus_version())
      1
      >>> exit()
      ```
    
      TODO: Modify a CI job to compile with --enable-reduce-exports and check for symbols in shared lib?
    
    ACKs for top commit:
      laanwj:
        Code review ACK de4238f
    
    Tree-SHA512: d148f3c55d14dac6e9e5b718cc65bb557bcf6f663218d24bc9044b86281bd5dd3d931ebea79c336a58e8ed50d683218c0a9e75494f2267b91097665043e252ae
    laanwj authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    318c726 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#21221: [tools] Allow argument/parameter bin packing in …

    …clang-format
    
    876ac3f [tools] Allow argument/parameter bin packing in clang-format (John Newbery)
    
    Pull request description:
    
      clang-format documentation for BinPackArguments:
    
      If `false`, a function call’s arguments will either be all on the same line or will have one line each.
    
      ```
      true:
      void f() {
        f(aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa,
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
      }
    
      false:
      void f() {
        f(aaaaaaaaaaaaaaaaaaaa,
          aaaaaaaaaaaaaaaaaaaa,
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
      }
      ```
    
      https://clang.llvm.org/docs/ClangFormatStyleOptions.html#configurable-format-style-options
    
      There's no reason to forbid this format. Having multiple arguments or parameters per line can be just as readable as having one per line (and is certainly more readable than having extremely long lines).
    
    ACKs for top commit:
      laanwj:
        ACK 876ac3f
      MarcoFalke:
        review ACK 876ac3f
      vasild:
        ACK 876ac3f
    
    Tree-SHA512: 7c401b4551b458c83dd70883860788b4a60e08a5399171fef27a2f5fdc6b933f6454fe0d396c32d826e3ab537791329da3275ae9b5e9ad36630a6dc2c167e88f
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    6bcc86a View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#21354: build, doc: Drop no longer required packages fro…

    …m macOS cross-compiling dependencies
    
    f7f3829 build, doc: Drop libbz2-dev from macOS cross-compiling dependencies (Hennadii Stepanov)
    d823936 build, doc: Drop libcap-dev from macOS cross-compiling dependencies (Hennadii Stepanov)
    
    Pull request description:
    
      The `libcap-dev` and `libbz2-dev` packages are no longer required when cross-compiling for macOS.
    
    ACKs for top commit:
      fanquake:
        ACK f7f3829
    
    Tree-SHA512: 820cdc2724f3346c0942d4d4115fc7206f7bf02889d9fa6cbdbd1d9e3afa03a067c1c3fa64dff596aefdc74898178b7c7d64027a6501486e3b606f4760de04ae
    fanquake authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    a370253 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#21542: ci: Bump macOS VM image to the latest version

    b8e7647 ci: Bump macOS VM image to the latest version (Hennadii Stepanov)
    
    Pull request description:
    
      On Cirrus CI bump macOS VM from Catalina to Big Sur.
    
    ACKs for top commit:
      fanquake:
        ACK b8e7647 - I'm always going to question bumping things for the sake of it/when there's no reasoning given. In this case, moving from building on macOS 10.x to 11.x shouldn't really lose us any coverage, and may turn up potential macOS quirks a bit earlier.
    
    Tree-SHA512: ab2daee194683ab0553328020fd2fcb918160f466cd380c542e1a9b44f5bea3664fb40b032f1b611ee0107b0efbe278230e067316e2373c3cb0470b205dd2f9d
    fanquake authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    e866b43 View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#20993: test: store subversion (user agent) as string in…

    … msg_version
    
    de85af5 test: store subversion (user agent) as string in msg_version (Sebastian Falbesoner)
    
    Pull request description:
    
      It seems more natural to treat the "subversion" field (=user agent string, see [BIP 14](https://github.com/bitcoin/bips/blob/master/bip-0014.mediawiki#Proposal)) of a node as pure string rather than a bytestring within the test framework. This is also suggested with the naming prefix in `msg_version.strSubVer`: one probably wouldn't expect a field starting with "str" to be a bytestring that needs further decoding to be useful. This PR moves the encoding/decoding parts to the serialization/deserialization routines so that the user doesn't have to bother with that anymore.
    
      Note that currently, in the master branch the `msg_version.strSubVer` is never read (only in `msg_version.__repr__`); However, one issue that is solved by this PR came up while testing bitcoin#19509 (not merged yet): A decoding script for binary message capture files takes use of the functional test framework convert it into JSON format. Bytestrings will be convered to hexstrings, while pure strings will (surprise surprise) end up without modification in the file.
    
      So without this patch, we get:
    
      ```
      $ jq . out.json | grep -m5 strSubVer
            "strSubVer": "2f5361746f7368693a32312e39392e302f"
            "strSubVer": "2f5361746f7368693a302e32302e312f"
            "strSubVer": "2f5361746f7368693a32312e39392e302f"
            "strSubVer": "2f5361746f7368693a302e32302e312f"
            "strSubVer": "2f5361746f7368693a32312e39392e302f"
      ```
    
      After this patch:
    
      ```
      $ jq . out2.json | grep -m5 strSubVer
            "strSubVer": "/Satoshi:21.99.0/"
            "strSubVer": "/Satoshi:0.20.1/"
            "strSubVer": "/Satoshi:21.99.0/"
            "strSubVer": "/Satoshi:0.20.1/"
            "strSubVer": "/Satoshi:21.99.0/"
      ```
    
    ACKs for top commit:
      jnewbery:
        utACK de85af5
    
    Tree-SHA512: ff23642705c858e8387a625537dfec82e6b8a15da6d99b8d12152560e52d243ba17431b602b26f60996d897e00e3f37dcf8dc8a303ffb1d544df29a5937080f9
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    085120d View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    43a94f0 View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#19809: log: Prefix log messages with function name and …

    …source code location if -logsourcelocations is set
    
    b4511e2 log: Prefix log messages with function name if -logsourcelocations is set (practicalswift)
    
    Pull request description:
    
      Prefix log messages with function name if `-logfunctionnames` is set.
    
      Yes, exactly like `-logthreadnames` but for function names instead of thread names :)
    
      This is a small developer ergonomics improvement: I've found this to be a cheap/simple way to correlate log output and originating function.
    
      For me it beats the ordinary cycle of 1.) try to figure out a regexp matching the static part of the dynamic log message, 2.) `git grep -E 'Using .* MiB out of .* requested for signature cache'`, 3.) `mcedit filename.cpp` (`openemacs filename.cpp` works too!) and 4.) search for log message and scroll up to find the function name :)
    
      Without any logging parameters:
    
      ```
      $ src/bitcoind -regtest
      2020-08-25T03:29:04Z Using RdRand as an additional entropy source
      2020-08-25T03:29:04Z Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements
      2020-08-25T03:29:04Z Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements
      2020-08-25T03:29:04Z Loaded best chain: hashBestChain=0fff88f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e22ff height=0 date=2011-02-02T23:16:42Z progress=1.000000
      2020-08-25T03:29:04Z block tree size = 1
      2020-08-25T03:29:04Z nBestHeight = 0
      2020-08-25T03:29:04Z Imported mempool transactions from disk: 0 succeeded, 0 failed, 0 expired, 0 already there, 0 waiting for initial broadcast
      2020-08-25T03:29:04Z 0 addresses found from DNS seeds
      ```
    
      With `-logthreadnames` and `-logfunctionnames`:
    
      ```
      $ src/bitcoind -regtest -logthreadnames -logfunctionnames
      2020-08-25T03:29:04Z [init] [ReportHardwareRand] Using RdRand as an additional entropy source
      2020-08-25T03:29:04Z [init] [InitSignatureCache] Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements
      2020-08-25T03:29:04Z [init] [InitScriptExecutionCache] Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements
      2020-08-25T03:29:04Z [init] [LoadChainTip] Loaded best chain: hashBestChain=0fff88f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e22ff height=0 date=2011-02-02T23:16:42Z progress=1.000000
      2020-08-25T03:29:04Z [init] [AppInitMain] block tree size = 1
      2020-08-25T03:29:04Z [init] [AppInitMain] nBestHeight = 0
      2020-08-25T03:29:04Z [loadblk] [LoadMempool] Imported mempool transactions from disk: 0 succeeded, 0 failed, 0 expired, 0 already there, 0 waiting for initial broadcast
      2020-08-25T03:29:04Z [dnsseed] [ThreadDNSAddressSeed] 0 addresses found from DNS seeds
      ```
    
    ACKs for top commit:
      laanwj:
        Code review ACK b4511e2
      MarcoFalke:
        review ACK b4511e2 🌃
    
    Tree-SHA512: d100f5364630c323f31d275259864c597f7725e462d5f4bdedcc7033ea616d7fc0d16ef1b2af557e692f4deea73c6773ccfc681589e7bf6ba970b9ec169040c7
    laanwj authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    4774e1e View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    005a6b1 View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin#21411: test: add logging, reduce blocks, move sync_all …

    …in wallet_ groups
    
    c62f9bc test: use fewer blocks in wallet_groups and move sync call (Jon Atack)
    3a16b5e test: add missing logging to wallet_groups.py (Jon Atack)
    
    Pull request description:
    
      - add logging (particularly useful as the tests are somewhat slow)
      - generate 101 blocks instead of 110
      - move `sync_all` call into the loop, so fewer blocks are synced on each call, to hopefully see fewer CI timeouts as in https://bitcoinbuilds.org/index.php?ansilog=88eee99e-1727-44ed-b778-3b9c75c33928.log
    
      ```
      L2742     File "/home/ubuntu/src/test/functional/wallet_groups.py", line 162, in run_test
      L2743       self.sync_all()
      test_framework.authproxy.JSONRPCException: 'syncwithvalidationinterfacequeue' RPC took longer than 960.000000 seconds. Consider using larger timeout for calls that take longer to return. (-344)
      ```
    
    ACKs for top commit:
      MarcoFalke:
        cr ACK c62f9bc
    
    Tree-SHA512: 711deafcd589cb8196cb207ff882e0f2ab6b70828a6abad91f83f535974cc430a56b9e8a960fd233d31d610932a0d48b49ee681aae564d145a3040288ecda8f8
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    d9c31d6 View commit details
    Browse the repository at this point in the history
  14. Merge bitcoin#21338: test: add functional test for anchors.dat

    581791c test: add functional test for anchors.dat (bruno)
    
    Pull request description:
    
      This PR adds a functional test for anchors.dat.
    
      It creates a node and adds 2 outbound block-relay-only connections and 5 inbound connections.
      When the node is down, anchors.dat should contain the 2 addresses from the outbound block-relay-only connections.
    
    ACKs for top commit:
      MarcoFalke:
        Concept ACK 581791c
      hebasto:
        ACK 581791c
    
    Tree-SHA512: 77038b09e36ee5ae473a26d6f566c0ed283af258c34df8486706a24f72b05abab621a293ac886d03849bc45bc28be7336137252225b25aff393baa6b5238688c
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    e10eec2 View commit details
    Browse the repository at this point in the history
  15. Merge bitcoin#21390: test: Test improvements for UTXO set hash tests

    4f2653a test: Use deterministic chain in utxo set hash test (Fabian Jahr)
    4973c51 test: Remove wallet dependency of utxo set hash test (Fabian Jahr)
    1a27af1 rpc: Improve gettxoutsetinfo help (Fabian Jahr)
    
    Pull request description:
    
      Follow-ups to bitcoin#19145:
      - Small improvement on the help text of RPC gettxoutsetinfo
      - Using deterministic blockchain in the test `functional/feature_utxo_set_hash.py`
      - Removing wallet dependency in the test `functional/feature_utxo_set_hash.py`
    
      Split out of bitcoin#19521.
    
    ACKs for top commit:
      MarcoFalke:
        review ACK 4f2653a 👲
    
    Tree-SHA512: 92927b3aa22b6324eb4fc9d346755313dec44d973aa69a0ebf80a8569b5f3a7cf3539721ebdba183737534b9e29b3e33f412515890f0d0b819878032a3bba8f9
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    6674ee8 View commit details
    Browse the repository at this point in the history
  16. test: remove exception for util::Ref which doesn't exist more

    This PR is follow-up for dash#5055 and based on bitcoin#21366 which is DNM
    knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    ad94709 View commit details
    Browse the repository at this point in the history
  17. Merge bitcoin#21609: ci: increase CPU count of sanitizer job to incre…

    …ase memory limit
    
    de3ae78 ci: increase CPU count of sanitizer job to increase memory limit (fanquake)
    
    Pull request description:
    
      According to the [docs](https://cirrus-ci.org/guide/linux/#linux-containers):
      > For each CPU you can't get more than 4G of memory.
    
      thus if we want this job to have 24GB of memory, we need to increase the CPU count to 6.
    
      It's currently [failing with](https://github.com/bitcoin/bitcoin/runs/2273962280):
      >  Requested memory is too high! You can request at most 4G per CPU
    
    Top commit has no ACKs.
    
    Tree-SHA512: 0a4da5649d061425190a373859274c78ca5587cd2d6e27905ec548f124ed114a0133215cb2eff22ffc182f50c3a53df58e7c9832b44db6e37d7ea59ec96a4775
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    a224b80 View commit details
    Browse the repository at this point in the history
  18. Merge bitcoin#21445: cirrus: Use SSD cluster for speedup

    fa21239 cirrus: Use SSD cluster for speedup (MarcoFalke)
    
    Pull request description:
    
      Haven't tested, but this might be faster: https://twitter.com/fedor/status/1354505744293502980
    
    ACKs for top commit:
      fanquake:
        ACK fa21239 - going to merge this now given there is a speedup, and it's enough to fix the fuzz task the is continually timing out.
    
    Tree-SHA512: b24161ba2ed16fcf23ac6098100b04f7f6eb8936bb312a35fcd8e632568b877bfc09a1e522836fe298a2cd87a53a91e3b501a7f2e1c81cc0edb57c59aecffb0d
    fanquake authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    233fb24 View commit details
    Browse the repository at this point in the history
  19. Merge bitcoin#21606: fuzz: Extend psbt fuzz target a bit

    faaf395 fuzz: Extend psbt fuzz target a bit (MarcoFalke)
    
    Pull request description:
    
      Previously it only merged the psbt with itself, now it tries to merge another.
    
    ACKs for top commit:
      practicalswift:
        Tested ACK faaf395
    
    Tree-SHA512: e1b1d31a47d35e1767285bc2fda176c79cb0550d6d383fe467104272e61e1c83f6cbc0c7d6bbc0c3027729eec13ae1f289f8950117ee91e0fb3703e66d5e6918
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    bc6e3ed View commit details
    Browse the repository at this point in the history
  20. Merge bitcoin#17934: doc: Use CONFIG_SITE variable instead of --prefi…

    …x option
    
    223b1ba doc: Use CONFIG_SITE instead of --prefix (Hennadii Stepanov)
    
    Pull request description:
    
      The current examples of `--prefix=...` option usage to point `configure` script to appropriate `depends` directory is not [standard](https://www.gnu.org/prep/standards/html_node/Directory-Variables.html). This causes some [confusion](bitcoin#16691) and a bit of inconvenience.
    
      Consider a CentOS 7 32 bit system. Packages `libdb4-devel`, `libdb4-cxx-devel`, `miniupnpc-devel` and `zeromq-devel` are unavailable from repos. After recommended build with depends:
      ```
      cd depends
      make
      cd ..
      ./autogen.sh
      ./configure --prefix=$PWD/depends/i686-pc-linux-gnu
      make
      ```
      a user is unable to `make install` compiled binaries neither locally (to `~/.local`) nor system-wide (to `/usr/local`) as `--prefix` is set already.
    
      Meanwhile, the standard approach with using [`config.site`](https://www.gnu.org/software/automake/manual/html_node/config_002esite.html) files allows both possibilities:
    
      ```
      cd depends
      make
      cd ..
      ./autogen.sh
      CONFIG_SITE=$PWD/depends/i686-pc-linux-gnu/share/config.site ./configure --prefix ~/.local
      make
      make install
      ```
    
      or
    
      ```
      CONFIG_SITE=$PWD/depends/i686-pc-linux-gnu/share/config.site ./configure
      make
      sudo make install  # install to /usr/local
      ```
    
      Moreover, this approach is used in [Gitian descriptors](https://github.com/bitcoin/bitcoin/tree/master/contrib/gitian-descriptors) already.
    
    ACKs for top commit:
      practicalswift:
        ACK 223b1ba: patch looks correct
      fanquake:
        ACK 223b1ba
    
    Tree-SHA512: 46d97924f0fc7e95ee4566737cf7c2ae805ca500e5c49af9aa99ecc3acede4b00329bc727a110aa1b62618dfbf5d1ca2234e736f16fbdf96d6ece5f821712f54
    fanquake authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    7e023c3 View commit details
    Browse the repository at this point in the history
  21. Merge bitcoin-core/gui#260: Handle exceptions instead of crash

    b8e5d0d qt: Handle exceptions in SendCoinsDialog::sendButtonClicked slot (Hennadii Stepanov)
    1ac2bc7 qt: Handle exceptions in TransactionView::bumpFee slot (Hennadii Stepanov)
    bc00e13 qt: Handle exceptions in WalletModel::pollBalanceChanged slot (Hennadii Stepanov)
    eb6156b qt: Handle exceptions in BitcoinGUI::addWallet slot (Hennadii Stepanov)
    f7e260a qt: Add GUIUtil::ExceptionSafeConnect function (Hennadii Stepanov)
    64a8755 qt: Add BitcoinApplication::handleNonFatalException function (Hennadii Stepanov)
    af7e365 qt: Make PACKAGE_BUGREPORT link clickable (Hennadii Stepanov)
    
    Pull request description:
    
      This PR is an alternative to bitcoin#18897, and is based on Russ' [idea](bitcoin#18897 (review)):
      > IMO it would be nice to have a followup PR that eliminated the one-line forwarding methods ...
    
      Related issues
      - dashpay#91
      - bitcoin#18643
    
      Qt docs: https://doc.qt.io/qt-5.12/exceptionsafety.html#exceptions-in-client-code
    
      With this PR the GUI handles the wallet-related exception, and:
      - display it to a user:
    
      ![Screenshot from 2021-04-01 02-55-59](https://user-images.githubusercontent.com/32963518/113226183-33ff8480-9298-11eb-8fe6-2168834ab09a.png)
    
      - prints a message to `stderr`:
      ```
    
      ************************
      EXCEPTION: 18NonFatalCheckError
      wallet/wallet.cpp:2677 (IsCurrentForAntiFeeSniping)
      Internal bug detected: '!chain.findBlock(block_hash, FoundBlock().time(block_time))'
      You may report this issue here: https://github.com/bitcoin/bitcoin/issues
    
      bitcoin in QPushButton->SendCoinsDialog
    
      ```
    
      - writes a message to the `debug.log`
      - and, if the exception is a non-fatal error, leaves the main window running.
    
    ACKs for top commit:
      laanwj:
        Code review ACK b8e5d0d
      ryanofsky:
        Code review ACK b8e5d0d. This is great! I think more improvements are possible but implementation is very clean and I love how targeted each commit is. Changes since last review: adding more explanatory text, making links clickable, reorganizing.
    
    Tree-SHA512: a9f2a2ee8e64b993b0dbc454edcbc39c68c8852abb5dc1feb58f601c0e0e8014dca81c72733aa3fb07b619c6f49b823ed20c7d79cc92088a3abe040ed2149727
    laanwj authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    adea52a View commit details
    Browse the repository at this point in the history
  22. Merge bitcoin#21602: rpc: add additional ban time fields to listbanned

    d3b0b08 doc: release notes for new listbanned fields (Jarol Rodriguez)
    60290d3 test: increase listbanned unit test coverage (Jon Atack)
    3e978d1 rpc: add time_remaining field to listbanned (Jarol Rodriguez)
    5456b34 rpc: add ban_duration field to listbanned (Jarol Rodriguez)
    c95c616 doc: improve listbanned help (Jarol Rodriguez)
    dd3c8ea rpc: swap position of banned_until and ban_created fields (Jarol Rodriguez)
    
    Pull request description:
    
      This PR adds a `ban_duration` and `time_remaining` field to the `listbanned` RPC command. Thanks to jonatack, this PR also expands the `listbanned` test coverage to include these new fields
    
      It's useful to keep track of `ban_duration` as this is another data point on which to sort banned peers. I found this helpful in adding additional context columns to the GUI `bantablemodel` as part of a follow-up PR. As [suggested](bitcoin#21602 (comment)) by jonatack, `time_remaining` is another useful user-centric data point.
    
      Since a ban always expires after its created, the `ban_created` field is now placed before the `banned_until` field. This new ordering is more logical.
    
      This PR also improves the `help listbanned` output by providing additional context to the descriptions of the `address`, `ban_created`, and `banned_until` fields.
    
      **Master: listbanned**
      ```
      [
        {
          "address": "1.2.3.4/32",
          "banned_until": 1617691101,
          "ban_created": 1617604701
        },
        {
          "address": "135.181.41.129/32",
          "banned_until": 1649140716,
          "ban_created": 1617604716
        }
      ]
      ```
    
      **PR: listbanned**
      ```
      [
        {
          "address": "1.2.3.4/32",
          "ban_created": 1617775773,
          "banned_until": 1617862173,
          "ban_duration": 86400,
          "time_remaining": 86392
        },
        {
          "address": "3.114.211.172/32",
          "ban_created": 1617753165,
          "banned_until": 1618357965,
          "ban_duration": 604800,
          "time_remaining": 582184
        }
      ]
      ```
    
    ACKs for top commit:
      jonatack:
        re-ACK d3b0b08
      hebasto:
        ACK d3b0b08, tested on Linux Mint 20.1 (x86_64).
      MarcoFalke:
        review ACK d3b0b08 🕙
    
    Tree-SHA512: 5b83ed2483344e546d57e43adc8a1ed7a1fff292124b14c86ca3a1aa2aec8b0f7198212fabff2c5145e7f726ca04ae567fe667b141254c7519df290cf63774e5
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    76a41eb View commit details
    Browse the repository at this point in the history
  23. Merge bitcoin#21676: test: Use mocktime to avoid intermittent failure…

    … in rpc_tests
    
    fa40d6a test: Reset mocktime in the common setup (MarcoFalke)
    fa78590 test: Use mocktime to avoid intermittent failure (MarcoFalke)
    
    Pull request description:
    
      See bitcoin#21602 (comment)
    
    ACKs for top commit:
      jonatack:
        Code review ACK fa40d6a
      jarolrod:
        ACK fa40d6a
    
    Tree-SHA512: 4967e006f3d2c4eb92f03c9086a6abe3190ad54755d251c30d20422c574bb1a154c06f3d5bcb0d4deaa3c4abfd3864d743b71d84897edd358e829bb42233ad12
    MarcoFalke authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    21ad71c View commit details
    Browse the repository at this point in the history
  24. partial Merge bitcoin#20267: Disable and fix tests for when BDB is no…

    …t compiled
    
    Backport notice: changes in feature_notification.py are missing due to bitcoin#18878 is not done yet
    
    49797c3 tests: Disable bdb dump test when no bdb (Andrew Chow)
    1194cf9 Fix wallet_send.py wallet setup to work with descriptors (Andrew Chow)
    fbaea7b Require legacy wallet for wallet_upgradewallet.py (Andrew Chow)
    b1b679e Explicitly mark legacy wallet tests as such (Andrew Chow)
    09514e1 Setup wallets for interface_zmq.py (Andrew Chow)
    4d03ef9 Use MiniWallet in rpc_net.py (Andrew Chow)
    4de2382 Setup wallets for interface_bitcoin_cli.py (Andrew Chow)
    7c71c62 Setup wallets with descriptors for feature_notifications (Andrew Chow)
    1f1bef8 Have feature_filelock.py test both bdb and sqlite, depending on compiled (Andrew Chow)
    c77975a Disable upgrades tests that require BDB if BDB is not compiled (Andrew Chow)
    1f20cac Disable wallet_descriptor.py bdb format check if BDB is not compiled (Andrew Chow)
    3641597 tests: Don't make any wallets unless wallet is required (Andrew Chow)
    b9b88f5 Skip legacy wallet reliant tests if BDB is not compiled (Andrew Chow)
    6f36242 tests: Set descriptors default based on compilation (Andrew Chow)
    
    Pull request description:
    
      This PR fixes tests for when BDB is not compiled. Tests which rely on or test legacy wallet behavior are disabled and skipped when BDB is not compiled. For the components of some tests that are for legacy wallet things, those parts of the tests are skipped.
    
      For the majority of tests, changes are made so that they can be run with either legacy wallets or descriptor wallets without materially effecting the test. Most tests only need the wallet for balance and transactions, so the type of wallet is not an important part of those tests. Additionally, some tests are wallet agnostic and modified to instead use the test framework's MiniWallet.
    
    ACKs for top commit:
      laanwj:
        ACK 49797c3
      ryanofsky:
        Code review ACK 49797c3. Only change since last review is dropping last commit. Previous review w/ suggestions for future followup is bitcoin#20267 (review)
    
    Tree-SHA512: 69659f8a81fb437ecbca962f4082c12835282dbf1fba7d9952f727a49e01981d749af9b09feda1c8ca737516c7d7a08ef17e782795df3fa69892d5021b41c1ed
    laanwj authored and knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    06b2d85 View commit details
    Browse the repository at this point in the history
  25. fix: remove workarounds introduced due to missing bitcoin#20267 (bdb …

    …is not compiled)
    
    This partially reverts commit da8e563.
    Also it adds missing changed from bitcoin#16404
    knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    ef7ce87 View commit details
    Browse the repository at this point in the history
  26. chore: move functional test wallet_multiwallet from category "slow 5 …

    …minutes" to "fast test"
    knst committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    5016294 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    0daf360 View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2024

  1. Configuration menu
    Copy the full SHA
    f567de0 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#19136: wallet: add parent_desc to getaddressinfo

    de6b389 tests: Test getaddressinfo parent_desc (Andrew Chow)
    e4ac869 rpc: Add parent descriptor to getaddressinfo output (Andrew Chow)
    bbe4a36 wallet: Add GetDescriptorString to DescriptorScriptPubKeyMan (Andrew Chow)
    9be1437 descriptors: Add ToNormalizedString and tests (Andrew Chow)
    
    Pull request description:
    
      Adds `parent_desc` field to the `getaddressinfo` RPC to export a public descriptor. Using the given address, `getaddressinfo` will look up which `DescriptorScriptPubKeyMan` can be used to produce that address. It will then return the descriptor for that `DescriptorScriptPubKeyMan` in the `parent_desc` field. The descriptor will be in a normalized form where the xpub at the last hardened step is derived so that the descriptor can be imported to other wallets. Tests are added to check that the correct descriptor is being returned for the wallet's addresses and that these descriptors can be imported and used in other wallets.
    
      As part of this PR, a `ToNormalizedString` function is added to the descriptor classes. This really only has an effect on `BIP32PubkeyProvider`s that have hardened derivation steps. Tests are added to check that normalized descriptors are returned.
    
    ACKs for top commit:
      Sjors:
        utACK de6b389
      S3RK:
        Tested ACK de6b389
      jonatack:
        Tested ACK de6b389 modulo a few minor comments
      fjahr:
        Code review ACK de6b389
      meshcollider:
        Tested ACK de6b389
    
    Tree-SHA512: a633e4a39f2abbd95afd7488484cfa66fdd2651dac59fe59f2b80a0940a2a4a13acf889c534a6948903d701484a2ba1218e3081feafe0b9a720dccfa9e43ca2b
    meshcollider authored and knst committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    8bacdbf View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#21277: wallet: listdescriptors uses normalized descript…

    …or form
    
    a69c3b3 wallet: listdescriptors uses normalized descriptor form (Ivan Metlushko)
    
    Pull request description:
    
      Rationale: show importable descriptors with `listdescriptors` RPC
    
      It uses bitcoin#19136 to derive xpub at the last hardened step.
    
      **Before**:
      ```
      [
          {
            "desc": "wpkh(tpubD6NzVbkrYhZ4YUQRJL49TWw1VR5v3QKUNYaGGMUfJUm19x5ZqQ2hEiPiYbAQvD2nHoPGQGPg3snLPM8sjmYpvx7XQhkmyfk8xhsUwKbXzyh/84'/1'/0'/0/*)#p4cn3erf",
            "timestamp": 1613982591,
            "active": true,
            "internal": false,
            "range": [
              0,
              999
            ],
            "next": 0
          },
          ...
      ]
      ```
    
      **After**:
      ```
      [
        {
          "desc": "wpkh([d4ade89c/84'/1'/0']tpubDDUEYcVXy6Vh5meHvcXN3sAr4k3fWwLZGpAHbkAHL8EnkDxp4d99CjNhJHfM2fUJicANvAKnCZS6XaVAgwAeKYc1KesGCN5qbQ25qQHrRxM/0/*)#8wq8rcft",
          "timestamp": 1613982591,
          "active": true,
          "internal": false,
          "range": [
            0,
            999
          ],
          "next": 0
        },
        ...
      ]
      ```
    
    ACKs for top commit:
      achow101:
        ACK a69c3b3
    
    Tree-SHA512: 4f92e726cb8245aa0b520729cfd272945f0c66830f0555544e0618883aca516318543fa6ab1862058c64b4e4ed54ad1da953e032f4846eef7454122031c1b005
    laanwj authored and knst committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    6ee2c7c View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#21063: wallet, rpc: update listdescriptors response format

    2e5f7de wallet, rpc: update listdescriptors response format (Ivan Metlushko)
    
    Pull request description:
    
      Update `listdescriptors` response format according to [RPC interface guidelines](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#rpc-interface-guidelines).
    
      This is a follow up for bitcoin#20226
    
      **Before:**
      ```
      Result:
      [                               (json array) Response is an array of descriptor objects
        {                             (json object)
          "desc" : "str",             (string) Descriptor string representation
          "timestamp" : n,            (numeric) The creation time of the descriptor
          "active" : true|false,      (boolean) Activeness flag
          "internal" : true|false,    (boolean, optional) Whether this is internal or external descriptor; defined only for active descriptors
          "range" : [                 (json array, optional) Defined only for ranged descriptors
            n,                        (numeric) Range start inclusive
            n                         (numeric) Range end inclusive
          ],
          "next" : n                  (numeric, optional) The next index to generate addresses from; defined only for ranged descriptors
        },
        ...
      ]
      ```
    
      **After:**
      ```
      Result:
      {                                 (json object)
        "wallet_name" : "str",          (string) Name of wallet this operation was performed on
        "descriptors" : [               (json array) Array of descriptor objects
          {                             (json object)
            "desc" : "str",             (string) Descriptor string representation
            "timestamp" : n,            (numeric) The creation time of the descriptor
            "active" : true|false,      (boolean) Activeness flag
            "internal" : true|false,    (boolean, optional) Whether this is internal or external descriptor; defined only for active descriptors
            "range" : [                 (json array, optional) Defined only for ranged descriptors
              n,                        (numeric) Range start inclusive
              n                         (numeric) Range end inclusive
            ],
            "next" : n                  (numeric, optional) The next index to generate addresses from; defined only for ranged descriptors
          },
          ...
        ]
      }
      ```
    
    ACKs for top commit:
      achow101:
        re-ACK 2e5f7de
      meshcollider:
        utACK 2e5f7de
      jonatack:
        re-ACK 2e5f7de
    
    Tree-SHA512: 49bf73e46e2a61003ce594a4bfc506eb9592ccb799c2909c43a1a527490a4b4009f78dc09f3d47b4e945d3d7bb3cd2632cf48c5ace5feed5066158cc010dddc1
    fanquake authored and knst committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    99a8b60 View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#21302: wallet: createwallet examples for descriptor wal…

    …lets
    
    5039e0e test: HelpExampleCliNamed and HelpExampleRpcNamed (Ivan Metlushko)
    591735e rpc: Add HelpExampleCliNamed and use it for `createwallet` doc (Wladimir J. van der Laan)
    5d5a90e rpc: Add HelpExampleRpcNamed (Ivan Metlushko)
    
    Pull request description:
    
      Rationale: make descriptor wallets more visible and just a bit easier to setup
    
      `bitcoin-cli help createwallet`
    
      **Before**:
      ```
      Examples:
      > bitcoin-cli createwallet "testwallet"
      > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "createwallet", "params": ["testwallet"]}' -H 'content-type: text/plain;' http://127.0.0.1:8332/
      ```
    
      **After**
      ```
      Examples:
      > bitcoin-cli createwallet "testwallet"
      > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "createwallet", "params": ["testwallet"]}' -H 'content-type: text/plain;' http://127.0.0.1:8332/
      > bitcoin-cli createwallet "descriptors" false false "" true true true
      > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "createwallet", "params": ["descriptors", false, false, "", true, true, true]}' -H 'content-type: text/plain;' http://127.0.0.1:8332/
      ```
    
    ACKs for top commit:
      laanwj:
        Tested ACK 5039e0e
    
    Tree-SHA512: d37210e6ce639addee881377092d8f6fb2a537a60a259c561899e24cf68a0254d7ff45a213573c938f626677e46770cd21113aae5974f26c66b9a2e137699c14
    laanwj authored and knst committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    655146d View commit details
    Browse the repository at this point in the history
  6. fix: follow-up fixes for functional tests used protx

    Since bitcoin#20267 changes default wallet in functional tests from legacy
    wallets to descriptor wallets, we need to enforce --legacy-wallets for
    functional tests that used protx which doesn't work yet for descriptor wallets
    knst committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    b20f812 View commit details
    Browse the repository at this point in the history
  7. fix: feature_backwards compatible works now with as expected if no bd…

    …b compiled
    
    It is follow-up fixes for bitcoin#20267
    knst committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    ceefab5 View commit details
    Browse the repository at this point in the history
  8. Merge dashpay#5966: refactor: rearrange database initialization, trim…

    … globals use in net and net processing, move CheckSpecialTx into CSpecialTxProcessor
    
    191b3de refactor: move CheckSpecialTx into CSpecialTxProcessor (Kittywhiskers Van Gogh)
    91f4588 refactor: const the pointer of type `const CActiveMasternodeManager` (Kittywhiskers Van Gogh)
    1d9b7fa refactor: trim globals use in net processing functions (Kittywhiskers Van Gogh)
    2a4fdbf refactor: trim globals use in net threads and functions (Kittywhiskers Van Gogh)
    ff825ac init: load databases of governance dependencies before loading its own (Kittywhiskers Van Gogh)
    cf940e8 init: decouple CMasternodeMetaMan construction from initialization (Kittywhiskers Van Gogh)
    fae5696 init: move CActiveMasternodeManager construction before PeerManager (Kittywhiskers Van Gogh)
    
    Pull request description:
    
      ## Additional Information
    
      * Dependency for dashpay#5980
    
      * `CActiveMasternodeManager` construction is moved upwards (_before_ `PeerManager` construction) to avoid having to pass it as a `std::unique_ptr` const-ref. Shouldn't have any effect since _initialization_ is done in `ThreadImport`.
    
      * `CConnman::SetNetworkActive` will require a pointer to `CMasternodeSync` in order to call `CMasternodeSync::Reset()`. As it is no longer available as a global, it will need to be manually called through for the effect to happen as the `CConnman` constructor will simply pass a `nullptr` when calling `SetNetworkActive`, bypassing the `Reset()` call.
    
        `CMasternodeSync` is appropriately passed through in RPC (`setnetworkactive`) and interfaces.
    
      * `CheckSpecialTx` was moved into `CSpecialTxProcessor` to avoid having to expose `CDeterministicMNManager` to `MemPoolAccept` (though it has been exposed to `CChainstateHelper` through a helper, `CChainState::ChainHelper()` that was introduced in this PR).
        * As a drawback, some RPC functions that otherwise only needed access to `CDeterministicMNManager`, will also be accessing `CChainstateHelper`.
    
      ## Concerns
    
      * ~~Some tests seem to sporadically fail (fail as part of a suite but succeed when run individually, no changes in this PR should worsen resource contention) but attempting to reproduce them reliably hasn't succeeded so far.~~
    
        It appears the sporadic failure is shown in `p2p_node_network_limited.py` during TSan runs (see [failed run](https://gitlab.com/dashpay/dash/-/jobs/6529052189) for commit f95ffa7 that then succeeded in a [second attempt](https://gitlab.com/dashpay/dash/-/jobs/6530402585) versus a similar [failed run](https://gitlab.com/dashpay/dash/-/jobs/6546952668) for e210cb7 that also succeeded on [second try](https://gitlab.com/dashpay/dash/-/jobs/6549470339)). Similar behaviour has not been observed on `develop` (as of this writing is 27c0813).
    
      ## Breaking changes
    
      `CMasternodeSync::Reset()` will not be called on every `CConnman` entity instantiated. Behaviour changes as a result of that are not substantiated. Protocol, networking or interface changes are not expected, changes are primarily refactoring.
    
      ## Checklist:
        _Go over all the following points, and put an `x` in all the boxes that apply._
      - [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 **(note: N/A)**
      - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      PastaPastaPasta:
        utACK 191b3de
    
    Tree-SHA512: 73a79818b0a79e3f26f079019c078ec8f81b2dae17638f695243b87fa76e9bed906a33ad7dd4e600f699100c5e994628cbb596e78a7802fa630c91f4d69cce4c
    PastaPastaPasta committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    5fdaa45 View commit details
    Browse the repository at this point in the history
  9. Merge dashpay#5973: backport: bitcoin#18772, bitcoin#20690, bitcoin#2…

    …0789, bitcoin#20813, bitcoin#21531, bitcoin-core/gui#13, dashpay#72, 115, dashpay#139, dashpay#171
    
    a2f190d Merge bitcoin-core/gui#115: Replace "Hide tray icon" option with positive "Show tray icon" one (Jonas Schnelli)
    65b80e7 Merge bitcoin#21531: test: remove qt byteswap compattests (MarcoFalke)
    ba883c5 Merge bitcoin-core/gui#139: doc: Improve gui/src/qt README.md (MarcoFalke)
    368c65d Merge bitcoin-core/gui#72: util: Log static plugins meta data and used style (Jonas Schnelli)
    317777e Merge bitcoin-core/gui#171: Use layout manager for Create Wallet dialog (MarcoFalke)
    83313a5 Merge bitcoin#20789: Rework strong and weak net enum fuzzing (MarcoFalke)
    4a3e3af Merge bitcoin#20813: scripted-diff: Bump copyright headers (MarcoFalke)
    e36eacd Merge bitcoin#18772: rpc: calculate fees in getblock using BlockUndo data (MarcoFalke)
    41a1e10 Merge bitcoin#20690: Clean up logging of outbound connection type (MarcoFalke)
    648d6f0 Merge bitcoin-core/gui#13: Hide peer detail view if multiple are selected (Jonas Schnelli)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Regular backports from bitcoin v22
    
      ## What was done?
       - bitcoin-core/gui#13
       - bitcoin-core/gui#115
       - bitcoin#20690
       - bitcoin#18772
       - bitcoin#20813
       - bitcoin#20789
       - bitcoin-core/gui#171
       - bitcoin-core/gui#72
       - bitcoin-core/gui#139
       - bitcoin#21531
    
      ## How Has This Been Tested?
      Run unit/functional 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:
      PastaPastaPasta:
        utACK a2f190d
    
    Tree-SHA512: 29421e7ca38583c47f49c2605775f34b64ae2fb6aeb45ac42941fbc78598fc26e7f7a248b40fcc2c9fd21154b0a6f2aed64287a8b7cca43de1b99ae3dccd990f
    PastaPastaPasta committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    938fd23 View commit details
    Browse the repository at this point in the history
  10. Merge dashpay#5974: backport: bitcoin#19522, bitcoin#19809, bitcoin#2…

    …0993, bitcoin#21075, bitcoin#21126, bitcoin#21138, bitcoin#21221, bitcoin#21354, bitcoin#21542
    
    005a6b1 fix: format string in llmq/commitment - mismatched arguments (Konstantin Akimov)
    4774e1e Merge bitcoin#19809: log: Prefix log messages with function name and source code location if -logsourcelocations is set (Wladimir J. van der Laan)
    43a94f0 fix: adjust functional tests due to dash's support of thread name after v0.12 (Konstantin Akimov)
    085120d Merge bitcoin#20993: test: store subversion (user agent) as string in msg_version (MarcoFalke)
    e866b43 Merge bitcoin#21542: ci: Bump macOS VM image to the latest version (fanquake)
    a370253 Merge bitcoin#21354: build, doc: Drop no longer required packages from macOS cross-compiling dependencies (fanquake)
    6bcc86a Merge bitcoin#21221: [tools] Allow argument/parameter bin packing in clang-format (MarcoFalke)
    318c726 Merge bitcoin#19522: build: fix building libconsensus with reduced exports for Darwin targets (Wladimir J. van der Laan)
    88a45d4 Merge bitcoin#21138: ci: Re-run wine tests once if they fail (fanquake)
    4abb768 Merge bitcoin#21126: ci: Properly bump to focal for win cross build (fanquake)
    f254f77 Merge bitcoin#21075: doc: Fix markdown formatting (MarcoFalke)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Regular backports from bitcoin v22 and related fixes
    
      ## What was done?
      Follow-up fixes for  bitcoin#19809
      Backports:
       - bitcoin#21075
       - bitcoin#21126
       - bitcoin#21138
       - bitcoin#19522
       - bitcoin#21221
       - bitcoin#21354
       - bitcoin#21542
       - bitcoin#19809
       - bitcoin#20993
    
      ## How Has This Been Tested?
      Run unit/functional tests
    
      ## Breaking Changes
      N/A
      Notice, that function name is included now by default to logs with `-logfunctionnames` and many logs have function name twice now such as:
      ```
       node0 2024-04-06T20:13:56.564123Z (mocktime: 2014-12-04T17:15:38Z) [httpworker.3] [masternode/sync.cpp:331] [NotifyHeaderTip] CMasternodeSync::NotifyHeaderTip -- pindexNew->nHeight: 5 fInitialDownload=0
      ```
      For further development need to take it in account and do not use more direct calls `__func__` from code as well as reduce usages in codebase.
    
      ## 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:
      PastaPastaPasta:
        utACK 005a6b1
    
    Tree-SHA512: f98949c4605dda7d6dfe790554e1d31a8c8178b57520578fcd58178c68fe7af33c0d66a79865683c1357de9a73fa4f484eb828b28e11ca110b8e1915c1fcf9b3
    PastaPastaPasta committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    54ea926 View commit details
    Browse the repository at this point in the history
  11. Merge dashpay#5976: backport: bitcoin#17934, bitcoin#21338, bitcoin#2…

    …1390, bitcoin#21445, bitcoin#21602, bitcoin#21606, bitcoin#21609, bitcoin#21676, bitcoin-core/gui#260,
    
    21ad71c Merge bitcoin#21676: test: Use mocktime to avoid intermittent failure in rpc_tests (MarcoFalke)
    76a41eb Merge bitcoin#21602: rpc: add additional ban time fields to listbanned (MarcoFalke)
    adea52a Merge bitcoin-core/gui#260: Handle exceptions instead of crash (W. J. van der Laan)
    7e023c3 Merge bitcoin#17934: doc: Use CONFIG_SITE variable instead of --prefix option (fanquake)
    bc6e3ed Merge bitcoin#21606: fuzz: Extend psbt fuzz target a bit (MarcoFalke)
    233fb24 Merge bitcoin#21445: cirrus: Use SSD cluster for speedup (fanquake)
    a224b80 Merge bitcoin#21609: ci: increase CPU count of sanitizer job to increase memory limit (MarcoFalke)
    ad94709 test: remove exception for util::Ref which doesn't exist more (Konstantin Akimov)
    6674ee8 Merge bitcoin#21390: test: Test improvements for UTXO set hash tests (MarcoFalke)
    e10eec2 Merge bitcoin#21338: test: add functional test for anchors.dat (MarcoFalke)
    d9c31d6 Merge bitcoin#21411: test: add logging, reduce blocks, move sync_all in wallet_ groups (MarcoFalke)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Regular backports from bitcoin v22
    
      ## Note for reviewers:
      PRs bitcoin#17934 and bitcoin#21606 have been backported partially in past.
    
      ## What was done?
      Removed unused sanitizer rules (see bitcoin#21366 and dashpay#5055)
       - bitcoin#21338
       - bitcoin#21390
       - bitcoin#21609
       - bitcoin#21445
       - bitcoin#21606
       - bitcoin#17934
       - bitcoin-core/gui#260
       - bitcoin#21602
       - bitcoin#21676
    
      ## How Has This Been Tested?
      Run unit/functional 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:
      PastaPastaPasta:
        utACK 21ad71c
    
    Tree-SHA512: 94276d56255300d7d8c056d15b468720ba028d83cc585b16396e8bad90157e9e010490be239e09cccd4362f575f8df2d56dde3fb505745376c7790d70e3635cd
    PastaPastaPasta committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    7aa8f54 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    51edeb0 View commit details
    Browse the repository at this point in the history
  13. merge bitcoin#21843: enable GetAddr, GetAddresses, and getnodeaddress…

    …es by network
    
    continuation of cf27db8 from dash#5491
    
    includes:
    - 6c98c09
    - 3f89c0e
    - ce6bca8
    kwvg committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    ff3497c View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    7e08db5 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    fe66202 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    602d13d View commit details
    Browse the repository at this point in the history
  17. net_processing: gate m_tx_relay access behind !IsBlockOnlyConn()

    In bitcoin#21528, the value of `m_addr_relay_enabled` isn't determined
    until the first ADDR/ADDRV2/GETADDR call. Until then, it'll always default
    to `false`. This creates a false-negative where a term equivalent to "not
    a block connection" no longer reliably means that.
    
    Therefore we need to switch to directly querying "not a block-only
    connection".
    kwvg committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    c1874c6 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    18fe765 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    8b8fbc5 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    60b3e08 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    06e909b View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    45d9e58 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    022b76f View commit details
    Browse the repository at this point in the history
  24. test: add type annotation for ADDRS in p2p_addrv2_relay

    Required to avoid unhappy python linter[1] result. Have to use annotation
    instead of re-aligning with upstream (where ADDRS is populated in the
    global state) due to reliance on `self.mocktime`, without which, the test
    fails[2]
    
    [1] - https://gitlab.com/dashpay/dash/-/jobs/6594035886
    [2] - https://gitlab.com/dashpay/dash/-/jobs/6597322548
    kwvg committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    1fedf47 View commit details
    Browse the repository at this point in the history
  25. refactor: make CTxMemPool ProTx paths conditional on CDeterministicMN…

    …Manager presence
    
    Despite removeUnchecked not explicitly requiring CDeterministicMNManager,
    it has also been made conditional due to addUnchecked requiring the manager
    and allowing for some operations but not others when pertaining to a
    transaction type could allow inconsistencies to arise. Better to treat as
    one unit and skip both if manager isn't present.
    kwvg committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    a247a63 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    c99fb42 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    81b1247 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    cf90cf2 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2024

  1. Merge dashpay#5978: backport: merge bitcoin#21594, bitcoin#21843, bit…

    …coin#22306, bitcoin#22211, bitcoin#22387, bitcoin#21528, bitcoin#22616, bitcoin#22604, bitcoin#22960, bitcoin#23218 (networking backports: part 3)
    
    1fedf47 test: add type annotation for `ADDRS` in `p2p_addrv2_relay` (Kittywhiskers Van Gogh)
    022b76f merge bitcoin#23218: Use mocktime for ping timeout (Kittywhiskers Van Gogh)
    45d9e58 merge bitcoin#22960: Set peertimeout in write_config (Kittywhiskers Van Gogh)
    06e909b merge bitcoin#22604: address rate-limiting follow-ups (Kittywhiskers Van Gogh)
    60b3e08 merge bitcoin#22616: address relay fixups (Kittywhiskers Van Gogh)
    8b8fbc5 merge bitcoin#22618: Small follow-ups to 21528 (Kittywhiskers Van Gogh)
    18fe765 merge bitcoin#21528: Reduce addr blackholes (Kittywhiskers Van Gogh)
    c1874c6 net_processing: gate `m_tx_relay` access behind `!IsBlockOnlyConn()` (Kittywhiskers Van Gogh)
    602d13d merge bitcoin#22387: Rate limit the processing of rumoured addresses (Kittywhiskers Van Gogh)
    fe66202 merge bitcoin#22211: relay I2P addresses even if not reachable (by us) (Kittywhiskers Van Gogh)
    7e08db5 merge bitcoin#22306: Improvements to p2p_addr_relay.py (Kittywhiskers Van Gogh)
    ff3497c merge bitcoin#21843: enable GetAddr, GetAddresses, and getnodeaddresses by network (Kittywhiskers Van Gogh)
    51edeb0 merge bitcoin#21594: add network field to getnodeaddresses (Kittywhiskers Van Gogh)
    
    Pull request description:
    
      ## Additional Information
    
      * Dependency for dashpay#5982
      * Population of `ADDRS` in `p2p_addr`(`v2`)`_relay` in Dash is done in the test object ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/test/functional/p2p_addrv2_relay.py#L42-L49)) as opposed to upstream, where it is done in the global state ([source](https://github.com/maflcko/bitcoin-core/blob/d930c7f5b091687eb4208a5ffe8a2abe311d8054/test/functional/p2p_addrv2_relay.py#L23-L35)). This is because Dash specifically relies on `self.mocktime` instead of Bitcoin, which will work with simply sampling current time (`time.time()`).
        * [bitcoin#22211](bitcoin#22211) adds changes ([source](https://github.com/bitcoin/bitcoin/pull/22211/files#diff-d3d7b1bb23f25a96c9c7444a79159ad1799895565f99efebf1618e41e886bd53R44-R46)) that add usage of `ADDRS` outside the test object. That, alongside with other considerations, resulted in [dash#5967](dashpay#5967) and a discussion ([source](https://github.com/dashpay/dash/pull/5967/files#r1548101561))
        * Eventually, following the footsteps of [dash#5967](dashpay#5967), `ADDRS` was defined outside but setup within the test object. This worked just fine ([build](https://gitlab.com/dashpay/dash/-/jobs/6594036014)) but displeased the linter ([build](https://gitlab.com/dashpay/dash/-/jobs/6594035886)) because `ADDRS` type could not be implicitly determined solely on usage in the global scope.
        * An attempt to correct this was done by realignment with upstream ([commit](dashpay@262d006)), which pleased the linter ([build](https://gitlab.com/dashpay/dash/-/jobs/6597322521)) but broken the test ([build](https://gitlab.com/dashpay/dash/-/jobs/6597322548)) for the reasons as mentioned above.
        * Therefore, to keep the linter happy, `ADDRS` has been annotated as a `List[CAddress]` (which involved importing `List` but that's fine) ([commit](dashpay@cb6d36d))
      * Working on [bitcoin#21528](bitcoin#21528) proved challenging due to differences in Dash's and Bitcoin's approach to relaying and the workarounds used to accommodate for that.
        * Bitcoin conditionally initializes `m_tx_relay` ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net.cpp#L2989-L2991)) and can always check if transaction relaying is permitted by checking if it's initialized ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net_processing.cpp#L1820-L1826)).
        * Dash unconditionally initializes it ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/src/net.h#L605-L607)). Earlier, Dash used to check if it's _appropriate_ to relay transactions by checking if it can relay addresses ([source](https://github.com/dashpay/dash/blob/dc6f52ac99a3b6fb8b3dfe37db4d6db1f7b1e719/src/net_processing.cpp#L2134-L2140)), which at the time, simply meant, it wasn't a block-only connection ([source](https://github.com/dashpay/dash/blob/dc6f52ac99a3b6fb8b3dfe37db4d6db1f7b1e719/src/net.h#L568-L572)).
        * This mutual exclusivity no longer held true in [dash#5964](dashpay#5964) and therefore, some transaction relay decisions were bound to **not** being a block-only connection ([commit](dashpay@26c39f5)) but some were left behind, adopting `RelayAddrsWithPeer()` ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/src/net_processing.cpp#L2215-L2221)), which, to be noted, is determined by the initialization status of `Peer::m_addr_known` ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/src/net_processing.cpp#L839-L842)), which, so far, was pegged to **not** block-relay connection status ([source](https://github.com/dashpay/dash/blob/0a62b9f985866249964ed703108a8dc617c73ba3/src/net_processing.cpp#L1319)).
        * [bitcoin#21528](bitcoin#21528) got rid of `RelayAddrsWithPeer()` and replaced it with `Peer::m_addr_relay_enabled` ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net_processing.cpp#L237-L251)), which is setup using `Peer::SetupAddressRelay()` ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net_processing.cpp#L637-L643)). This means, rather than defining the address relay status during construction, it is setup during the first address-related message (i.e. `ADDR`, `ADDRV2`, `GETADDR`) ([source](https://github.com/amitiuttarwar/bitcoin/blob/3f7250b328b8b2f5d63f323702445ac5c989b73d/src/net_processing.cpp#L227-L236)).
          * Meaning, until the first addr-related message happens, the state is has not been determined and defaults to `false`. Because some `m_tx_relay` usage still piggybacked on addr-relay permission to determine tx-relay, if a transaction message is processed before an address message is processed, there will be a false-negative condition.
    
            The transaction relay logic won't run since it's expecting that if transactions can be relayed, so can addresses and checks for address relaying but believes that it cannot do address relaying, borrowing that state for transaction relaying, despite address relaying permissions actually being indeterminate since it hasn't had a chance to validate its eligibility.
          * There were two approaches, run `SetupAddressRelay()` as early in the connection as possible to substitute for the "determine at construction" behaviour and change no other conditional statements... and break address-related tests _or_ move the remaining conditional transaction relay logic to use **not** block-only connection checks instead.
          * We've gone with the latter, resulting in some changes where the condition only changes form but is the same (`RelayAddrsWithPeer()` > `Peer::m_addr_relay_enabled`) ([source](dashpay@109c5a9#diff-6875de769e90cec84d2e8a9c1b962cdbcda44d870d42e4215827e599e11e90e3L2131-L2134)) but other changes where the condition itself has been changed (`RelayAddrsWithPeer()` > `!CNode::IsBlockOnlyConn()`) ([source](dashpay@109c5a9#diff-6875de769e90cec84d2e8a9c1b962cdbcda44d870d42e4215827e599e11e90e3R2256-R2259))
        * This does mean that in [dash#5982](dashpay#5982), `Peer::m_block_relay_only` is introduced to be the counterpart to `Peer::m_addr_relay_enabled` ([source](https://github.com/dashpay/dash/blame/45b48dae0a66fd918834d012cc8e1e17b5824abe/src/net_processing.cpp#L321-L322)) to account for some `CConnman` logic being moved into `PeerManager` ([source](https://github.com/dashpay/dash/blame/45b48dae0a66fd918834d012cc8e1e17b5824abe/src/net_processing.cpp#L2186-L2195)), which, in a way, reverts [dash#5339](dashpay#5339) but also, doesn't, since it moves the information into `Peer` instead of reinstating it into `CNode`.
          * This was eventual since the underlying presumption that `CNode::IsAddrRelayPeer() == !CNode::IsBlockOnlyConn()` no longer holds true (also because `CNode::IsAddrRelayPeer()` doesn't exist anymore).
    
      Special thanks to @UdjinM6 for help with understanding Dash-specifics with respect to functional tests through help on [dash#5964](dashpay#5964) and [dash#5967](dashpay#5967)
    
      ## Breaking Changes
    
      None expected.
    
      RPC changes have been introduced in `getnodeaddresses`, where a new input `network`, can filter addresses based on desired network and a new output, also `network`, will associate the address with the origin network. This change is expected to be backwards-compatible.
    
      ## 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 _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      PastaPastaPasta:
        utACK 1fedf47
    
    Tree-SHA512: 533d33f79a0d9fd730073b3b9a58baf1dd3b0c95823e765c88a43cc974970ed3609bf1863c63ac7fc5586d1437e5250b0a2d3005468da09e407110a412bd0264
    PastaPastaPasta committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    9240967 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2024

  1. Merge dashpay#5981: backport: bitcoin#19136, bitcoin#21063, bitcoin#2…

    …1277, bitcoin#21302, partial bitcoin#20267 - descriptor wallets part IV
    
    ceefab5 fix: feature_backwards compatible works now with as expected if no bdb compiled (Konstantin Akimov)
    b20f812 fix: follow-up fixes for functional tests used protx (Konstantin Akimov)
    655146d Merge bitcoin#21302: wallet: createwallet examples for descriptor wallets (W. J. van der Laan)
    99a8b60 Merge bitcoin#21063: wallet, rpc: update listdescriptors response format (fanquake)
    6ee2c7c Merge bitcoin#21277: wallet: listdescriptors uses normalized descriptor form (Wladimir J. van der Laan)
    8bacdbf Merge bitcoin#19136: wallet: add parent_desc to getaddressinfo (Samuel Dobson)
    f567de0 chore: release notes for 5965 with wallet tool improvements (Konstantin Akimov)
    0daf360 chore: add TODO to implement mnemonic for descriptor wallets (Konstantin Akimov)
    5016294 chore: move functional test wallet_multiwallet from category "slow 5 minutes" to "fast test" (Konstantin Akimov)
    ef7ce87 fix: remove workarounds introduced due to missing bitcoin#20267 (bdb is not compiled) (Konstantin Akimov)
    06b2d85 partial Merge bitcoin#20267: Disable and fix tests for when BDB is not compiled (Wladimir J. van der Laan)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      dashpay/dash-issues#59
    
      ## Extra notes
      This commit `chore: move functional test wallet_multiwallet from category "slow 5 minutes" to "fast test"` is not directly connected to descriptor wallets, but added to this PR due to conflicts with 20267
    
      ## What was done?
      It steadily improves support of descriptor wallets in Dash core.
    
      Done backports and related fixes:
       - partial bitcoin#20267
       - bitcoin#19136
       - bitcoin#21277
       - bitcoin#21063
       - bitcoin#21302
    
      Beside backports and related fixes, this PR includes release notes for previous batch of backports for descriptor wallets support dashpay#5965
    
      ## How Has This Been Tested?
      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
      - [ ] I have made corresponding changes to the documentation
      - [x] I have assigned this pull request to a milestone
    
    Top commit has no ACKs.
    
    Tree-SHA512: f4b2033f8c4fa1d0f72cfc31378909703b3ae8f44748989ff00c3e71311ac80ac37837137133c7e4a166823a941ed7df10efa09c89f5b213f3c8ede7d3d6e8f4
    PastaPastaPasta committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    544d333 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#21712: qa: Test default include_mempool value of gettxout

    44dab42 qa: Test default include_mempool value of gettxout (João Barbosa)
    
    Pull request description:
    
      With the following diff the functional test would pass. Fix by testing the default value.
    
      ```diff
      --- a/src/rpc/blockchain.cpp
      +++ b/src/rpc/blockchain.cpp
      @@ -1142,7 +1142,7 @@ static RPCHelpMan gettxout()
           uint256 hash(ParseHashV(request.params[0], "txid"));
           int n = request.params[1].get_int();
           COutPoint out(hash, n);
      -    bool fMempool = true;
      +    bool fMempool = false;
           if (!request.params[2].isNull())
               fMempool = request.params[2].get_bool();
      ```
    
    ACKs for top commit:
      MarcoFalke:
        cr ACK 44dab42
    
    Tree-SHA512: 14db21b29d6b2c01d1d1278e18a0cf35d6ae566e33e45515d1fe2983dda94ad1ff6065c217601d283f9515cae39b57e981b62ac71ec2002de5359bd8a9e3efa9
    MarcoFalke authored and PastaPastaPasta committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    e22ebca View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#21192: cli: Treat high detail levels as maximum in -net…

    …info
    
    882ce25 cli: Treat high detail levels as the maximum in -netinfo (Wladimir J. van der Laan)
    
    Pull request description:
    
      I somehow often type `-netinfo 5` which gets treated as `-netinfo 0`, after this change it's `-netinfo 4` which seems more convenient behavior.
    
    ACKs for top commit:
      jonatack:
        ACK 882ce25
      theStack:
        Tested ACK 882ce25
    
    Tree-SHA512: 5ed13213d00940c81f70c5fe5092f5fcc78c0184e1cc83b6c58a7bf24cf0f634816ce28f468aac588a4d202a6a7c1b411c0690099f1a8bf1999e662de4afcccd
    laanwj authored and PastaPastaPasta committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    9de77e8 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#21695: Remove no longer used contrib/bitcoin-qt.pro fro…

    …m the repo
    
    5f2be6e Remove no longer used contrib/bitcoin-qt.pro from the repo (Hennadii Stepanov)
    
    Pull request description:
    
      From [IRC](http://www.erisian.com.au/bitcoin-core-dev/log-2021-04-15.html#l-209):
      > \<hebasto> wumpus: I cannot see any way how the `contrib/bitcoin-qt.pro` is used in the  translation process, neither in the main repo nor in https://github.com/bitcoin-core/bitcoin-maintainer-tools. Besides it looks outdated and unmaintained. May I ask you to confirm/deny my assumption?
      > \<wumpus> hebasto: it is not used for anything, it exists to be able to edit the qt forms in qt designer nothing more
      > \<wumpus> i'm not sure if it is even *necessary* for that, but it is why it is there
      > \<hebasto> wumpus: thanks, qt designer does not need *.pro file at all
      > \<hebasto> maybe qt creator does
      > \<wumpus> feel free to create a PR to remove it, best way to find out if someone wants to keep it, you are right it hasn't been updated in a long time
      > \<hebasto> ok
      > \<wumpus> fwiw, the only question i get about it ever is why it exists
      > \<hebasto> it was in use with `qmake` years ago (what I found digging into the repo history)
      > \<wumpus> yes, that was the original reason, but when we switched to automake it was kept around for use w/ qt's GUI tools
      > \<hebasto> I've noticed it in https://github.com/bitcoin/bitcoin/blame/master/doc/translation_process.md#L25
      > \<wumpus> what it says there is definitely not true anymore
    
    ACKs for top commit:
      laanwj:
        ACK 5f2be6e
      jarolrod:
        ACK 5f2be6e
    
    Tree-SHA512: 7c105612f28185097fee9e4108b162b4c8b07cc527f4438bdf5bcab08c65421ea301de8584d58770cd113fa871f6781daa8145bd6463278523449e28bfc49d06
    fanquake authored and PastaPastaPasta committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    4d28f3a View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#21244: Move GetDataDir to ArgsManager

    bb8d1c6 Change ClearDataDirPathCache() to ArgsManager.ClearPathCache(). (Kiminuo)
    b4190ef Change GetBlocksDir() to ArgsManager.GetBlocksDirPath(). (Kiminuo)
    83292e2 scripted-diff: Modify unit tests to use the ArgsManager in the BasicTestingSetup class instead of implicitly relying on gArgs. (Kiminuo)
    55c68e6 scripted-diff: Replace m_args with m_local_args in getarg_tests.cpp (Kiminuo)
    511ce3a BasicTestingSetup: Add ArgsManager. (Kiminuo)
    1cb52ba Modify "util_datadir" unit test to not use gArgs. (Kiminuo)
    1add318 Move GetDataDir(fNetSpecific) implementation to ArgsManager. (Kiminuo)
    70cdf67 Move StripRedundantLastElementsOfPath before ArgsManager class. (Kiminuo)
    
    Pull request description:
    
      This PR attempts to contribute to "Remove gArgs" (bitcoin#21005).
    
      Main changes:
    
      * `GetDataDir()` function is moved to `ArgsManager.GetDataDirPath()`.
      * `GetBlocksDir()` function is moved to `ArgsManager.GetBlocksDirPath()`.
    
    ACKs for top commit:
      ryanofsky:
        Code review ACK bb8d1c6. Just minor const/naming changes and splitting/scripting commits since last review
      MarcoFalke:
        review ACK bb8d1c6 📓
      hebasto:
        re-ACK bb8d1c6, addressed comments, and two commits made scripted-diffs since my [previous](bitcoin#21244 (review)) review.
    
    Tree-SHA512: ba9408c22129d6572beaa103dca0324131766f06d562bb7d6b9e214a0a4d40b0216ce861384562bde24b744003b3fbe6fac239061c8fd798abd3981ebc1b9019
    fanquake authored and PastaPastaPasta committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    6a45e72 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#21595: cli: create -addrinfo

    06c4320 cli: use C++17 std::array class template argument deduction (CTAD) (Jon Atack)
    edf3167 addrinfo: raise helpfully on server error or incompatible server version (Jon Atack)
    bb85cbc doc: add cli -addrinfo release note (Jon Atack)
    5056a37 cli: add -addrinfo command (Jon Atack)
    db4d2c2 cli: create AddrinfoRequestHandler class (Jon Atack)
    
    Pull request description:
    
      While looking at issue bitcoin#21351, it turned out that the problem was a lack of tor v3 addresses known to the node. It became clear (e.g. bitcoin#21351 (comment)) that a CLI command returning the number of addresses the node knows per network (with a tor v2 / v3 breakdown) would be very helpful. This patch adds that.
    
      `-addrinfo` is useful to see if your node knows enough addresses in a network to use options like `-onlynet=<network>`, or to upgrade to the upcoming tor release that no longer supports tor v2, for which you'll need to be sure your node knows enough tor v3 peers.
    
      ```
      $ bitcoin-cli --help | grep -A1 addrinfo
        -addrinfo
             Get the number of addresses known to the node, per network and total.
    
      $ bitcoin-cli -addrinfo
      {
        "addresses_known": {
          "ipv4": 14406,
          "ipv6": 2511,
          "torv2": 5563,
          "torv3": 2842,
          "i2p": 8,
          "total": 25330
        }
      }
    
      $ bitcoin-cli -addrinfo 1
      error: -addrinfo takes no arguments
      ```
    
      This can be manually tested, for example, with commands like this:
      ```
      $ bitcoin-cli getnodeaddresses 0 | jq '.[] | (select(.address | contains(".onion")) | select(.address | length <= 22)) | .address' | wc -l
      5563
      $ bitcoin-cli getnodeaddresses 0 | jq '.[] | (select(.address | contains(".onion")) | select(.address | length > 22)) | .address' | wc -l
      2842
      $ bitcoin-cli getnodeaddresses 0 | jq '.[] | .address' | wc -l
      25330
      ```
    
    ACKs for top commit:
      laanwj:
        Tested ACK 06c4320
    
    Tree-SHA512: b668b47718a4ce052aff218789f3da629bca730592c18fcce9a51034d95a0a65f8e6da33dd47443cdd8f60c056c02696db175b0fe09a688e4385a76c1d8b7aeb
    laanwj authored and PastaPastaPasta committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    1f4e26b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    262fe0a View commit details
    Browse the repository at this point in the history
  8. Merge dashpay#5904: backport: Merge bitcoin#21712,21192, 21695,21244,…

    …21595
    
    262fe0a (followup) bitcoin#21244: Move GetBackupsDir to ArgsManager (Vijay)
    1f4e26b Merge bitcoin#21595: cli: create -addrinfo (W. J. van der Laan)
    6a45e72 Merge bitcoin#21244: Move GetDataDir to ArgsManager (fanquake)
    4d28f3a Merge bitcoin#21695: Remove no longer used contrib/bitcoin-qt.pro from the repo (fanquake)
    9de77e8 Merge bitcoin#21192: cli: Treat high detail levels as maximum in -netinfo (Wladimir J. van der Laan)
    e22ebca Merge bitcoin#21712: qa: Test default include_mempool value of gettxout (MarcoFalke)
    
    Pull request description:
    
      backport: Merge bitcoin#21712,21192, 21695,21244,21595
    
    Top commit has no ACKs.
    
    Tree-SHA512: 61e72fa6db7aa0234cdccca91b3639dbfed6eabea4d9d65d25e89ac17de0b1d1b5eddf41985b1335bbd34ca71465a9760bf62ed33418a8d79a3d742156c52f35
    PastaPastaPasta committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    44d9ac7 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    a5be37c View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2024

  1. Merge dashpay#5980: refactor: move C{ActiveMasternode, DeterministicM…

    …N}Manager, CMasternode{MetaMan, Sync} to NodeContext
    
    a5be37c refactor: remove CDeterministicMNManager global, move to NodeContext (Kittywhiskers Van Gogh)
    cf90cf2 refactor: remove CMasternodeMetaMan global, move to NodeContext (Kittywhiskers Van Gogh)
    81b1247 refactor: remove CActiveMasternodeManager global, move to NodeContext (Kittywhiskers Van Gogh)
    c99fb42 refactor: remove CMasternodeSync global, move to NodeContext (Kittywhiskers Van Gogh)
    a247a63 refactor: make CTxMemPool ProTx paths conditional on CDeterministicMNManager presence (Kittywhiskers Van Gogh)
    
    Pull request description:
    
      ## Additional Information
    
      * Depends on dashpay#5966
    
      * `CTxMemPool`'s ProTx logic took the presence of `CDeterministicMNManager` for granted. To account for `CTxMemPool` instances that aren't seeded with the pointer to the manager (usually because the unit test doesn't call for them), refactoring was done to make ProTx code paths conditional on the manager pointer being set to something.
        * Setting the manager pointer is done through `CTxMemPool::Init()`, to avoid having to pass another `std::unique_ptr` const-ref and also because `CTxMemPool` can _technically_ work without the manager if ProTx logic is not needed (and `CTxMemPool::existsProviderTxConflict()` isn't called)
    
          * `CTxMemPool::Init()` doesn't allow overwriting a not-`nullptr` manager pointer. If that is desired, then `CTxMemPool::Reset()` should be called first. This was done to avoid unintentional double-initialization/overwriting.
    
      ## Breaking Changes
    
      None. Changes are limited to refactoring.
    
      ## 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 **(note: N/A)**
      - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      PastaPastaPasta:
        utACK a5be37c
    
    Tree-SHA512: 8dc7ada6597a265b7753603bca6a43b69cfe3b0d330bae98c3e27b6aa24cd3cdff80f6939bb39ffc00902b76b6b145667f0b7ac98a17fe8255d6fd143088a98c
    PastaPastaPasta committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    2dacfb0 View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2024

  1. Configuration menu
    Copy the full SHA
    10a006e View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2024

  1. Merge bitcoin#21395: Net processing: Remove unused CNode.address member

    a6b0fe2 [net processing] Remove unused CNode.address member (John Newbery)
    
    Pull request description:
    
    ACKs for top commit:
      practicalswift:
        cr ACK a6b0fe2: patch looks correct and unused code should be removed
      fanquake:
        ACK a6b0fe2
    
    Tree-SHA512: 6022674dabe79be580d8005ac9e308d444d35588f324a7bb9f1ab04e8ad8ac41355c58ddfb016b001fd80a1a01ebcbddb2919ae9d33faccec2044af88547a79f
    MarcoFalke authored and PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    6423f6b View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#21370: Use C++11 member initializer in CNodeState

    fa476f1 Use C++11 member initializer in CNodeState (MarcoFalke)
    
    Pull request description:
    
      This removes a bunch of boilerplate, makes the code easier to read. Also, C++11 member initialization avoids accidental uninitialized members.
    
    ACKs for top commit:
      practicalswift:
        cr ACK fa476f1
      hebasto:
        cr ACK fa476f1
      jnewbery:
        utACK fa476f1
    
    Tree-SHA512: 5c876717d30ded975e29bfbc77804012179588a13f950f0b2ec93fa9dbd5cf6b52fe86414fd5d1cce021db2ec77e271d533b0f7a8d6eeaac0feb9e6dbaec9ff2
    fanquake authored and PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    1a07e04 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#20406: util: Avoid invalid integer negation in FormatMo…

    …ney and ValueFromAmount
    
    1f05dbd util: Avoid invalid integer negation in ValueFromAmount: make ValueFromAmount(const CAmount& n) well-defined also when n is std::numeric_limits<CAmount>::min() (practicalswift)
    7cc75c9 util: Avoid invalid integer negation in FormatMoney: make FormatMoney(const CAmount& n) well-defined also when n is std::numeric_limits<CAmount>::min() (practicalswift)
    
    Pull request description:
    
      Avoid invalid integer negation in `FormatMoney` and `ValueFromAmount`.
    
      Fixes bitcoin#20402.
    
      Before this patch:
    
      ```
      $ CC=clang CXX=clang++ ./configure --with-sanitizers=undefined
      $ make -C src/ test/test_bitcoin
      $ src/test/test_bitcoin -t rpc_tests/rpc_format_monetary_values -t util_tests/util_FormatMoney
      core_write.cpp:21:29: runtime error: negation of -9223372036854775808 cannot be represented in type 'CAmount'
        (aka 'long'); cast to an unsigned type to negate this value to itself
      SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior core_write.cpp:21:29 in
      test/rpc_tests.cpp(186): error: in "rpc_tests/rpc_format_monetary_values":
        check ValueFromAmount(std::numeric_limits<CAmount>::min()).write() == "-92233720368.54775808" has failed
        [--92233720368.-54775808 != -92233720368.54775808]
      util/moneystr.cpp:16:34: runtime error: negation of -9223372036854775808 cannot be represented in type 'CAmount'
        (aka 'long'); cast to an unsigned type to negate this value to itself
      SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior util/moneystr.cpp:16:34 in
      test/util_tests.cpp(1188): error: in "util_tests/util_FormatMoney":
        check FormatMoney(std::numeric_limits<CAmount>::min()) == "-92233720368.54775808" has failed
        [--92233720368.-54775808 != -92233720368.54775808]
      ```
    
      After this patch:
    
      ```
      $ CC=clang CXX=clang++ ./configure --with-sanitizers=undefined
      $ make -C src/ test/test_bitcoin
      $ src/test/test_bitcoin -t rpc_tests/rpc_format_monetary_values -t util_tests/util_FormatMoney
      ```
    
    ACKs for top commit:
      laanwj:
        re-ACK 1f05dbd
    
    Tree-SHA512: 5aaeb8e2178f1597921f53c12bdfc2f3d5993d10c41658dcd25943e54e8cc2116a411bc71d928f890b33bc0b3761a8ee4449b0532bce41125b6c60692808c8c3
    laanwj authored and PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    666e6e2 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#21007: bitcoind: Add -daemonwait option to wait for ini…

    …tialization
    
    e017a91 bitcoind: Add -daemonwait option to wait for initialization (Wladimir J. van der Laan)
    c3e6fde shutdown: Use RAII TokenPipe in shutdown (Wladimir J. van der Laan)
    612f746 util: Add RAII TokenPipe (Wladimir J. van der Laan)
    
    Pull request description:
    
      This adds a `-daemonwait` flag that does the same as `-daemon` except that it, from a user perspective, backgrounds the process only after initialization is complete. This is similar to the behaviour of some other software such as c-lightning.
    
      This can be useful when the process launching bitcoind wants to guarantee that either the RPC server is running, or that initialization failed, before continuing. The exit code indicates the initialization result.
    
      The use of the libc function `daemon()` is replaced by a custom implementation which is inspired by the [glibc implementation](https://github.com/lattera/glibc/blob/master/misc/daemon.c#L44), but which also creates a pipe from the child to the parent process for communication.
    
      An additional advantage of having our own `daemon()` implementation is that no MACOS-specific pragmas are needed anymore to silence a deprecation warning.
    
      TODO:
    
      - [x] Factor out `token_read` and `token_write` to an utility, and use  them in `shutdown.cpp` as well—this is exactly the same kind of communication mechanism.
    
          - [x] RAII-ify pipe endpoints.
    
      - [x] Improve granularity of the `configure.ac` checks. This currently  still checks for the function `daemon()` which makes no sense as  it's not used. It should check for individual functions such as
        `fork()` and `setsid()` etc—the former being required, the second optional.
    
      - [-] ~~Signal propagation during initialization: if say, pressing Ctrl-C during `-daemonwait` it would be good to pass this SIGINT on to the child process instead of detaching the parent process and letting the child run free.~~ This is not necessary, see bitcoin#21007 (comment).
    
      Future:
    
      - Consider if it makes sense to use this in the RPC tests (there would be no more need for "is RPC ready" polling loops). I think this is out of scope for this PR.
    
    ACKs for top commit:
      jonatack:
        Tested ACK e017a91 checked change since previous review is move-only
    
    Tree-SHA512: 53369b8ca2247e4cf3af8cb2cfd5b3399e8e0e3296423d64be987004758162a7ddc1287b01a92d7692328edcb2da4cf05d279b1b4ef61a665b71440ab6a6dbe2
    laanwj authored and PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    6ca0eb1 View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#20040: wallet: Refactor OutputGroups to handle fees and…

    … spending eligibility on grouping
    
    5d45976 Rewrite OutputGroups to be clearer and to use scriptPubKeys (Andrew Chow)
    f6b3052 Explicitly filter out partial groups when we don't want them (Andrew Chow)
    416d74f Move OutputGroup positive only filtering into Insert (Andrew Chow)
    d895e98 Move EligibleForSpending into GroupOutputs (Andrew Chow)
    99b399a Move fee setting of OutputGroup to Insert (Andrew Chow)
    6148a8a Move GroupOutputs into SelectCoinsMinConf (Andrew Chow)
    2acad03 Remove OutputGroup non-default constructors (Andrew Chow)
    
    Pull request description:
    
      Even after bitcoin#17458, we still deal with setting fees of an `OutputGroup` and filtering the `OutputGroup` outside of the struct. We currently make all of the `OutputGroup`s in `SelectCoins` and then copy and modify them within each `SelectCoinsMinConf` scenario. This PR changes this to constructing the `OutputGroup`s within the `SelectCoinsMinConf` so that the scenario can be taken into account during the group construction. Furthermore, setting of fees and filtering for effective value is moved into `OutputGroup::Insert` itself so that we don't add undesirable outputs to an `OutputGroup` rather than deleting them afterwards.
    
      To facilitate fee calculation and effective value filtering during `OutputGroup::Insert`, `OutputGroup` now takes the feerates in its constructor and computes the fees and effective value for each output during `Insert`.
    
      While removing `OutputGroup`s in accordance with the `CoinEligibilityFilter` still requires creating the `OutputGroup`s first, we can do that within the function that makes them - `GroupOutput`s.
    
    ACKs for top commit:
      Xekyo:
        Code review ACK: bitcoin@5d45976
      fjahr:
        Code review ACK 5d45976
      meshcollider:
        Light utACK 5d45976
    
    Tree-SHA512: 35965b6d49a87f4ebb366ec4f00aafaaf78e9282481ae2c9682b515a3a9f2cbcd3cd6e202fee29489d48fe7f3a7cede4270796f5e72bbaff76da647138fb3059
    meshcollider authored and PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    99f09a0 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#21418: contrib: Make systemd invoke dependencies only w…

    …hen ready
    
    663f6cd contrib: Use -daemonwait in systemd init script (Wladimir J. van der Laan)
    
    Pull request description:
    
      Make systemd invoke dependencies only when ready by using `-daemonwait` in the service file instead of `-daemon`.
    
      Closes bitcoin#21322 by making bitcoind conform to behavior specified for `type=forking`.
    
      This may need some tuning of timeouts.
    
    ACKs for top commit:
      darosior:
        ACK 663f6cd
      hebasto:
        re-ACK 663f6cd
    
    Tree-SHA512: 890005852b632a202caa578e6c796ebdc9da0b2379a9157a4f56f7db9d193c0ffbb78d120bbf112ab2f273855f2a08c3da000b1f7a9fb5222a3b94dcdb16b878
    laanwj authored and PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    3325620 View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#21447: Always add -daemonwait to known command line arg…

    …uments
    
    4d008f9 Always add -daemonwait to known command line arguments (Hennadii Stepanov)
    
    Pull request description:
    
      This is a follow up of bitcoin#21007.
    
      When `AC_CHECK_DECLS([fork])` fails:
    
      - on master (8e65320):
      ```
      $ src/bitcoind -daemonwait
      Error: Error parsing command line arguments: Invalid parameter -daemonwait
    
      ```
    
      - with this PR:
      ```
      $ src/bitcoind -daemonwait
      Error: -daemon is not supported on this operating system
    
      ```
    
    ACKs for top commit:
      laanwj:
        Code review ACK 4d008f9
    
    Tree-SHA512: 7fcb5e9d76958adcf57e04fa74bd2a98d62459d81a3c57a97bd74c346cbf47c53e560a15455fb024e912c3b44e8487a83499e993b282871ba069953e665d88a9
    laanwj authored and PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    dd92322 View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#20197: p2p: protect onions in AttemptToEvictConnection(…

    …), add eviction protection test coverage
    
    0cca08a Add unit test coverage for our onion peer eviction protection (Jon Atack)
    caa21f5 Protect onion+localhost peers in ProtectEvictionCandidatesByRatio() (Jon Atack)
    8f1a53e Use EraseLastKElements() throughout SelectNodeToEvict() (Jon Atack)
    8b1e156 Add m_inbound_onion to AttemptToEvictConnection() (Jon Atack)
    72e30e8 Add unit tests for ProtectEvictionCandidatesByRatio() (Jon Atack)
    ca63b53 Use std::unordered_set instead of std::vector in IsEvicted() (Jon Atack)
    41f84d5 Move peer eviction tests to a separate test file (Jon Atack)
    f126cbd Extract ProtectEvictionCandidatesByRatio from SelectNodeToEvict (Jon Atack)
    
    Pull request description:
    
      Now that bitcoin#19991 and bitcoin#20210 have been merged, we can determine inbound onion peers using `CNode::m_inbound_onion` and add it to the localhost peers protection in `AttemptToEvictConnection`, which was added in bitcoin#19670 to address issue bitcoin#19500.
    
      Update 28 February 2021: I've updated this to follow gmaxwell's suggestion in bitcoin#20197 (comment).
    
      This branch now protects up to 1/4 onion peers (connected via our tor control service), if any, sorted by longest uptime. If any (or all) onion slots remain after that operation, they are then allocated to protect localhost peers, or a minimum of 2 localhost peers in the case that no onion slots remain and 2 or more onion peers were protected, sorted as before by longest uptime.
    
      This patch also adds test coverage for the longest uptime, localhost, and onion peer eviction protection logic to build on the welcome initial unit testing of bitcoin#20477.
    
      Suggest reviewing the commits that move code with `colorMoved = dimmed-zebra` and `colorMovedWs = allow-indentation-change`.
    
      Closes bitcoin#11537.
    
    ACKs for top commit:
      laanwj:
        Code review ACK 0cca08a
      vasild:
        ACK 0cca08a
    
    Tree-SHA512: 2f5a63f942acaae7882920fc61f0185dcd51da85e5b736df9d1fc72343726dd17da740e02f30fa5dc5eb3b2d8345707aed96031bec143d48a2497a610aa19abd
    laanwj authored and PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    b8aec5c View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#21426: rpc: remove scantxoutset EXPERIMENTAL warning

    2f0b25a rpc: remove scantxoutset EXPERIMENTAL warning (Jon Atack)
    
    Pull request description:
    
      Remove old warning per IRC wallet meeting discussion at http://www.erisian.com.au/bitcoin-core-dev/log-2021-03-12.html#l-467
    
      This RPC was merged 3 years ago in bitcoin#12196.
    
    ACKs for top commit:
      MarcoFalke:
        cr ACK 2f0b25a
    
    Tree-SHA512: 874ccd5bd19ecbbe91912171ac85af7a4658dc92f6db484ff3d03f07f1b9ba97e1c69d33a5c3ae5c5ec46cac3595a211f55fec0fbf81bac30d66a891c376ce26
    MarcoFalke authored and PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    daacafb View commit details
    Browse the repository at this point in the history
  10. Merge dashpay#5928: backport: Merge bitcoin#20406, 21370, 21395, 2100…

    …7, 20040, 21418, 21447, 20197, 21613, 21602
    
    daacafb Merge bitcoin#21426: rpc: remove scantxoutset EXPERIMENTAL warning (MarcoFalke)
    b8aec5c Merge bitcoin#20197: p2p: protect onions in AttemptToEvictConnection(), add eviction protection test coverage (Wladimir J. van der Laan)
    dd92322 Merge bitcoin#21447: Always add -daemonwait to known command line arguments (Wladimir J. van der Laan)
    3325620 Merge bitcoin#21418: contrib: Make systemd invoke dependencies only when ready (Wladimir J. van der Laan)
    99f09a0 Merge bitcoin#20040: wallet: Refactor OutputGroups to handle fees and spending eligibility on grouping (Samuel Dobson)
    6ca0eb1 Merge bitcoin#21007: bitcoind: Add -daemonwait option to wait for initialization (Wladimir J. van der Laan)
    666e6e2 Merge bitcoin#20406: util: Avoid invalid integer negation in FormatMoney and ValueFromAmount (Wladimir J. van der Laan)
    1a07e04 Merge bitcoin#21370: Use C++11 member initializer in CNodeState (fanquake)
    6423f6b Merge bitcoin#21395: Net processing: Remove unused CNode.address member (MarcoFalke)
    
    Pull request description:
    
      bitcoin backports
    
    Top commit has no ACKs.
    
    Tree-SHA512: dc9490c6c99cc08e8c8ffbd6b71f48e8df8b51dd2d7ca940de44ff47ab28ec3e2d45b7e381a7124d513f7e29ad13300c9df68acd7ddec3022a603eca162b12f3
    PastaPastaPasta committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    eb7d244 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2024

  1. Merge bitcoin#21902: refactor: Remove useless extern keyword

    fa4bbd3 refactor: Remove useless extern keyword (MarcoFalke)
    
    Pull request description:
    
      It is redundant, confusing and useless.
    
      https://en.cppreference.com/w/cpp/language/storage_duration#external_linkage
    
    ACKs for top commit:
      practicalswift:
        cr ACK fa4bbd3: patch looks correct
      Talkless:
        utACK fa4bbd3, built successfully on Debian Sid, looks OK.
      jonatack:
        Light code review ACK fa4bbd3
      hebasto:
        ACK fa4bbd3, I've verified that all of the remained `extern` keywords specify either (a) a variable with external linkage, or (b) a symbol with "C" language linkage.
      promag:
        Code review ACK fa4bbd3.
    
    Tree-SHA512: 1d77d661132defa52ccb2046f7a287deb3669b68835e40ab75a0d9d08fe6efeaf3bea7c0e76c754fd18bfe45972c253a39462014080d014cc5d810498784e3e4
    fanquake authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    16ccb90 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#22187: test: Add sync_blocks in wallet_orphanedreward.py

    7a681d6 Add sync_blocks in wallet_orphanedreward.py. (Daniel Kraft)
    
    Pull request description:
    
      Add an explicit `sync_blocks` call in `wallet_orphanedreward.py`, which was missing and could lead to intermittent failures of the test due to race conditions.
    
      This will presumably fix bitcoin#22181.
    
    ACKs for top commit:
      MarcoFalke:
        review ACK 7a681d6
    
    Tree-SHA512: bb226c31bf3f2e7c52beb829d7b67496e5b38781245db5f9184e3f28c93ac3aa4d21fcf5bf3055e79d384cfd0ed916e79dccb3d77486e86fe1fedb5e35f894ad
    MarcoFalke authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    f3bc953 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#21795: fuzz: Terminate immediately if a fuzzing harness…

    … tries to perform a DNS lookup (belt and suspenders)
    
    3737d35 fuzz: Terminate immediately if a fuzzing harness ever tries to perform a DNS lookup (belts and suspenders) (practicalswift)
    
    Pull request description:
    
      Terminate immediately if a fuzzing harness tries to perform a DNS lookup (belt and suspenders).
    
      Obviously this _should_ never happen, but if it _does_ happen we want immediate termination instead of a DNS lookup :)
    
    ACKs for top commit:
      MarcoFalke:
        review ACK 3737d35
    
    Tree-SHA512: 51cd2d32def7f9f052e02f99c354656af1f807cc9fdf592ab765e620bfe660f1ed26e0484763f94aba650424b44959eafaf352bfd0f81aa273e350510e97356e
    MarcoFalke authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    cc70886 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#22092: test: convert documentation into type annotations

    68ace23 test: convert docs into type annotations in test_framework/test_node.py (fanquake)
    8bfcba3 test: convert docs into type annotations in test_framework/wallet.py (fanquake)
    b043ca8 test: convert docs into type annotations in test_framework/util.py (fanquake)
    
    Pull request description:
    
      Rather than having function types exist as documentation, make them type annotations, which enables more `mypy` checking.
    
    ACKs for top commit:
      instagibbs:
        utACK bitcoin@68ace23
    
    Tree-SHA512: b705f26b48baabde07b9b2c0a8d547b4dcca291b16eaf5ac70462bb3a1f9e9c2783d93a9d4290889d0cbb3f7db3671446754411a1f498b265d336f6ff33478df
    fanquake authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    b6dbd8b View commit details
    Browse the repository at this point in the history
  5. (followup) bitcoin#19940

    vijaydasmp authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    2996daa View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#22121: doc: Various validation doc fixups

    fa4245d doc: Various validation doc fixups (MarcoFalke)
    
    Pull request description:
    
    ACKs for top commit:
      michaelfolkson:
        Re-ACK fa4245d
      jnewbery:
        ACK fa4245d
    
    Tree-SHA512: fa1086b09941247a4ffcbc1d7d27dc77a17a3ae093a5146dbb703db9ff4ba5d73ea77bd5b7747af79ea8a7dfe2c4c56a7e19ac5aac3417090e9ae127836022ae
    fanquake authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    348f4a8 View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#21353: interfaces: Stop exposing wallet destdata to gui

    f5ba424 wallet: Add IsAddressUsed / SetAddressUsed methods (Russell Yanofsky)
    62252c9 interfaces: Stop exposing wallet destdata to gui (Russell Yanofsky)
    985430d test: Add gui test for wallet receive requests (Russell Yanofsky)
    
    Pull request description:
    
      Stop giving GUI access to destdata rows in database. Replace with narrow API just for saving and reading receive request information.
    
      This simplifies code and should prevent the GUI from interfering with other destdata like address-used status. It also adds some more GUI test coverage.
    
      There are no changes in behavior.
    
    ACKs for top commit:
      jarolrod:
        tACK f5ba424
      laanwj:
        Code review ACK f5ba424
    
    Tree-SHA512: 5423df4786e537a59013cb5bfb9e1bc29a7ca4b8835360c00cc2165a59f925fdc355907a4ceb8bca0285bb4946ba235bffa7645537a951ad03fd3b4cee17b6b0
    laanwj authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    26ff28a View commit details
    Browse the repository at this point in the history
  8. Merge bitcoin#21936: fuzz: Terminate immediately if a fuzzing harness…

    … tries to create a TCP socket (belt and suspenders)
    
    393992b fuzz: Terminate immediately if a fuzzing harness ever tries to create a TCP socket (belt and suspenders) (practicalswift)
    
    Pull request description:
    
      Terminate immediately if a fuzzing harness ever to create a TCP socket (belt and suspenders).
    
      Obviously this _should_ never happen, but if it _does_ happen we want immediate termination instead of a TCP socket :)
    
    ACKs for top commit:
      MarcoFalke:
        ACK 393992b
    
    Tree-SHA512: 5bbff1f7e9a58b3eae24f742b7daf3fc870424c985f29bed5931e47a708d9c0984bfd8762f43658cffa9c69d32f86d56deb48bc7e43821e3398052174b6a160e
    MarcoFalke authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    6c242da View commit details
    Browse the repository at this point in the history
  9. Merge dashpay#5979: backport: Merge bitcoin#21902, 22187, 21795, 2290…

    …2,(followup) 19940, 22121, 21353, 21936
    
    6c242da Merge bitcoin#21936: fuzz: Terminate immediately if a fuzzing harness tries to create a TCP socket (belt and suspenders) (MarcoFalke)
    26ff28a Merge bitcoin#21353: interfaces: Stop exposing wallet destdata to gui (W. J. van der Laan)
    348f4a8 Merge bitcoin#22121: doc: Various validation doc fixups (fanquake)
    2996daa (followup) bitcoin#19940 (Vijay)
    b6dbd8b Merge bitcoin#22092: test: convert documentation into type annotations (fanquake)
    cc70886 Merge bitcoin#21795: fuzz: Terminate immediately if a fuzzing harness tries to perform a DNS lookup (belt and suspenders) (MarcoFalke)
    f3bc953 Merge bitcoin#22187: test: Add sync_blocks in wallet_orphanedreward.py (MarcoFalke)
    16ccb90 Merge bitcoin#21902: refactor: Remove useless extern keyword (fanquake)
    
    Pull request description:
    
      backport: Merge bitcoin#21902, 22187, 21795, 22902,(followup) 19940, 22121, 21353, 21936
    
    Top commit has no ACKs.
    
    Tree-SHA512: 26de87da5d18fd36a38253a077131b36a278bc681bb47a9b893b6caad8520fc535b1675c3d79d312d455d710dd6ae7235d6cef1fb031a76e0559a200c2fc9b04
    PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    45bdfa5 View commit details
    Browse the repository at this point in the history
  10. Merge dashpay#5988: test: disable ipv6 tests for now

    10a006e test: disable ipv6 tests for now (UdjinM6)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Our CI nodes on Amazon have issues running tests using ipv6.
    
      ## What was done?
      Pretend we don't have ipv6 when we run tests for now
    
      ## How Has This Been Tested?
      See CI results for this PR.
    
      ## Breaking Changes
      n/a but we'll have ipv6 not being tested for some time.
    
      ## 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 _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      kwvg:
        ACK 10a006e
      PastaPastaPasta:
        utACK 10a006e
    
    Tree-SHA512: 75da180b916a5a99b1363f152494cbdd1031c7daf2d5eb370ca74547dee694ad04db3e9c677f0f738b9dbb15760d685a6b43b032dde642a4c1d49fff671e2aac
    PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    0bb188a View commit details
    Browse the repository at this point in the history
  11. Merge bitcoin#22138: script: fix spelling linter raising spuriously o…

    …n "invokable"
    
    8050eb4 script: fix spelling linter raising spuriously on "invokable" (Jon Atack)
    
    Pull request description:
    
      "invokable" is a valid word that means to be callable, but the linter is raising on it:
      ```
      $ test/lint/lint-spelling.sh
      contrib/guix/guix-attest:18: invokable ==> invocable
      contrib/guix/guix-clean:18: invokable ==> invocable
      contrib/guix/guix-verify:18: invokable ==> invocable
      ^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in test/lint/lint-spelling.ignore-words.txt
      ```
    
    ACKs for top commit:
      MarcoFalke:
        cr ACK 8050eb4
    
    Tree-SHA512: 43f8dc7b7adb00ae563ccfe04a64a7ceb50237f24ff87209062bf57b2564b4d38a409df80e0183aa4f40ab306b5e07d7a5fad1600d41705bd3c443ed66a6d1c1
    MarcoFalke authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    7bcc56c View commit details
    Browse the repository at this point in the history
  12. Merge bitcoin#21939: refactor: Replace memset calls with array initia…

    …lization
    
    1c9255c refactor: Replace memset calls with array initialization (João Barbosa)
    
    Pull request description:
    
      Follow up to bitcoin#21905 (review).
    
    ACKs for top commit:
      laanwj:
        re-ACK 1c9255c
      Crypt-iQ:
        Code review ACK 1c9255c
    
    Tree-SHA512: 4b61dec2094f4781ef1c0427ee3bda3cfea12111274eebc7bc40a84f261d9c1681dd0860c57200bea2456588e44e8e0aecd18545c25f1f1250dd331ab7d05f28
    laanwj authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    00b828c View commit details
    Browse the repository at this point in the history
  13. Merge bitcoin-core/gui#163: Peer details: replace Direction with Conn…

    …ection Type
    
    06ba9b3 rpc: move getpeerinfo connection_type help to correct place (Jon Atack)
    c95fe6e gui: improve connection type tooltip (Hennadii Stepanov)
    2c19ba2 gui: replace Direction with Connection Type in peer details (Jon Atack)
    7e2beab gui: create GUIUtil::ConnectionTypeToQString utility function (Jon Atack)
    
    Pull request description:
    
      ![Screenshot from 2021-01-09 11-23-17](https://user-images.githubusercontent.com/2415484/104089297-c5e18d80-5265-11eb-9251-49afcfdb562b.png)
    
      Closes dashpay#159.
    
    ACKs for top commit:
      hebasto:
        re-ACK 06ba9b3, the tooltip content is organized as unordered list.
      jarolrod:
        re-ACK 06ba9b3
    
    Tree-SHA512: 24f46494ceb42ed308e4a4f2a543dbc4f4e6409a6f738c145a9f16e175bf69d411cbc944a4fd969f1829d57644dfbc194182fa8d4e9e6bce82acbeca8c673748
    MarcoFalke authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    b8b3c4c View commit details
    Browse the repository at this point in the history
  14. Merge bitcoin#20373: refactor, net: Increase CNode data member encaps…

    …ulation
    
    3642b2e refactor, net: Increase CNode data member encapsulation (Hennadii Stepanov)
    acebb79 refactor, move-only: Relocate CNode private members (Hennadii Stepanov)
    
    Pull request description:
    
      All protected `CNode` data members could be private.
    
    ACKs for top commit:
      jnewbery:
        utACK 3642b2e
      MarcoFalke:
        review ACK 3642b2e 🏛
    
    Tree-SHA512: 8435e3c43c3b7a3107d58cb809b8b5e1a1c0068677e249bdf0fc6ed24140ac4fc4efe2a280a1ee86df180d738c0c9e10772308690607954db6713000cf6e728d
    MarcoFalke authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    4d20cb7 View commit details
    Browse the repository at this point in the history
  15. Merge bitcoin#22144: Randomize message processing peer order

    79c02c8 Randomize message processing peer order (Pieter Wuille)
    
    Pull request description:
    
      Right now, the message handling loop iterates the list of nodes always in the same order: the order they were connected in (see the `vNodes` vector). For some parts of the net processing logic, this order matters. Transaction requests are assigned explicitly to peers since bitcoin#19988, but many other parts of processing work on a "first-served-by-loop-first" basis, such as block downloading. If peers can predict this ordering, it may be exploited to cause delays.
    
      As there isn't anything particularly optimal about the current ordering, just make it unpredictable by randomizing.
    
      Reported by Crypt-iQ.
    
    ACKs for top commit:
      jnewbery:
        ACK 79c02c8
      Crypt-iQ:
        ACK 79c02c8
      sdaftuar:
        utACK 79c02c8
      achow101:
        Code Review ACK 79c02c8
      jamesob:
        crACK bitcoin@79c02c8
      jonatack:
        ACK 79c02c8
      vasild:
        ACK 79c02c8
      theStack:
        ACK 79c02c8
    
    Tree-SHA512: 9a87c4dcad47c2d61b76c4f37f59674876b78f33f45943089bf159902a23e12de7a5feae1a73b17cbc3f2e37c980ecf0f7fd86af9e6fa3a68099537a3c82c106
    fanquake authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    366ca98 View commit details
    Browse the repository at this point in the history
  16. Merge bitcoin#22013: net: ignore block-relay-only peers when skipping…

    … DNS seed
    
    fe3d17d net: ignore block-relay-only peers when skipping DNS seed (Anthony Towns)
    
    Pull request description:
    
      Since bitcoin#17428 bitcoind will attempt to reconnect to two block-relay-only anchors before doing any other outbound connections. When determining whether to use DNS seeds, it will currently see these two peers and decide "we're connected to the p2p network, so no need to lookup DNS" -- but block-relay-only peers don't do address relay, so if your address book is full of invalid addresses (apart from your anchors) this behaviour will prevent you from recovering from that situation.
    
      This patch changes it so that it only skips use of DNS seeds when there are two full-outbound peers, not just block-relay-only peers.
    
    ACKs for top commit:
      Sjors:
        utACK fe3d17d
      amitiuttarwar:
        ACK fe3d17d, this impacts the very common case where we stop/start a node, persisting anchors & have a non-empty addrman (although, to be clear, wouldn't be particularly problematic in the common cases where the addrman has valid addresses)
      mzumsande:
        ACK fe3d17d
      jonatack:
        ACK fe3d17d
      prayank23:
        tACK bitcoin@fe3d17d
    
    Tree-SHA512: 9814b0d84321d7f45b5013eb40c420a0dd93bf9430f5ef12dce50d1912a18d5de2070d890a8c6fe737a3329b31059b823bc660b432d5ba21f02881dc1d951e94
    fanquake authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    74b20eb View commit details
    Browse the repository at this point in the history
  17. Merge bitcoin#21719: refactor: Add and use EnsureConnman in rpc code

    fafb68a refactor: Add and use EnsureConnman in rpc code (MarcoFalke)
    faabeb8 refactor: Mark member functions const (MarcoFalke)
    
    Pull request description:
    
      This removes the 10 occurrences of `throw JSONRPCError(RPC_CLIENT_P2P_DISABLED, "Error: Peer-to-peer functionality missing or disabled");` and replaces them with `EnsureConnman`.
    
    ACKs for top commit:
      jarolrod:
        re-ACK fafb68a
      theStack:
        ACK fafb68a
      ryanofsky:
        Code review ACK fafb68a
    
    Tree-SHA512: 84c63cfe31e548645d906f7191a3526c7bea99ed0d54c2a75c2041452a44fe149ede343d8e1943b0e7770816c828bb047dfec8bc541a1f2b89920a126ee54d68
    MarcoFalke authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    751c9e6 View commit details
    Browse the repository at this point in the history
  18. Merge bitcoin#20786: net: [refactor] Prefer integral types in CNodeStats

    faecb74 Expose integral m_conn_type in CNodeStats, remove m_conn_type_string (Jon Atack)
    
    Pull request description:
    
      Currently, strings are stored for what are actually integral (strong) enum types. This is fine, because the strings are only used as-is for the debug log and RPC. However, it complicates using them in the GUI. User facing strings in the GUI should be translated and only string literals can be picked up for translation, not runtime `std::string`s.
    
      Fix that by removing the `std::string` members and replace them by strong enum integral types.
    
    ACKs for top commit:
      jonatack:
        Code review ACK faecb74
      theStack:
        Code review ACK faecb74 🌲
    
    Tree-SHA512: 24df2bd0645432060e393eb44b8abaf20fe296457d07a867b0e735c3e2e75af7b03fc6bfeca734ec33ab816a7c8e1f8591a5ec342f3afe3098a4e41f5c2cfebb
    MarcoFalke authored and PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    18169f4 View commit details
    Browse the repository at this point in the history
  19. Merge dashpay#5983: backport: Merge bitcoin#22138, 21939, bitcoin-cor…

    …e/gui#163, 20373,  22144, 22013, 21719, 20786
    
    18169f4 Merge bitcoin#20786: net: [refactor] Prefer integral types in CNodeStats (MarcoFalke)
    751c9e6 Merge bitcoin#21719: refactor: Add and use EnsureConnman in rpc code (MarcoFalke)
    74b20eb Merge bitcoin#22013: net: ignore block-relay-only peers when skipping DNS seed (fanquake)
    366ca98 Merge bitcoin#22144: Randomize message processing peer order (fanquake)
    4d20cb7 Merge bitcoin#20373: refactor, net: Increase CNode data member encapsulation (MarcoFalke)
    b8b3c4c Merge bitcoin-core/gui#163: Peer details: replace Direction with Connection Type (MarcoFalke)
    00b828c Merge bitcoin#21939: refactor: Replace memset calls with array initialization (W. J. van der Laan)
    7bcc56c Merge bitcoin#22138: script: fix spelling linter raising spuriously on "invokable" (MarcoFalke)
    
    Pull request description:
    
      bitcoin backports
    
    Top commit has no ACKs.
    
    Tree-SHA512: 28dd3c672be847a376aaf1683a665b658b132364b4903fa360810dead7f30bd6496c231b6496e55572e09f1908febdba385d863e5e1d714cb784cc4350126be9
    PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    6194e45 View commit details
    Browse the repository at this point in the history
  20. bench: drop leftover boost::lexical_cast benches, drop header from …

    …list
    
    `boost::lexical_cast` isn't used anywhere in Dash Core, the sole remaining
    use being in a benchmark, despite it no longer being used in Dash Core.
    Let's drop the benchmark and drop `boost/lexical_cast.hpp` from allowed
    Boost headers
    kwvg committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    c47e9e7 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    9ae39f9 View commit details
    Browse the repository at this point in the history
  22. init: use local ArgsManager variable instead of global when possible

    We don't touch `CleanupBlockRevFiles` as the function is moved to
    blockstorage in bitcoin#21727, where it would need access to the global.
    GetBlocksDirPath() is non-const and invocations of that aren't included
    either.
    kwvg committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    fbc6bc8 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    65585e6 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    3265b54 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    740d25c View commit details
    Browse the repository at this point in the history
  26. Merge dashpay#5986: trivial: remove boost::{function, lexical_cast} u…

    …sage, backport bitcoin#25550, bitcoin#24624, bitcoin#24406, cleanup some gArgs usage in init
    
    740d25c merge bitcoin#24406: Fix Wambiguous-reversed-operator compiler warnings (Kittywhiskers Van Gogh)
    3265b54 merge bitcoin#24624: Avoid potential -Wdeprecated-enum-enum-conversion warnings (Kittywhiskers Van Gogh)
    65585e6 merge bitcoin#25550: remove note on arm cross-compilation from build-unix.md (Kittywhiskers Van Gogh)
    fbc6bc8 init: use local ArgsManager variable instead of global when possible (Kittywhiskers Van Gogh)
    9ae39f9 qt: drop leftover `boost::function` usage in Qt, drop header from list (Kittywhiskers Van Gogh)
    c47e9e7 bench: drop leftover `boost::lexical_cast` benches, drop header from list (Kittywhiskers Van Gogh)
    
    Pull request description:
    
      ## Additional Information
    
      When building Dash with `clang-16`, I use the following `CXXFLAGS`:
    
      ```
      -Werror -Werror=reorder -Werror=thread-safety -Wno-unused-command-line-argument -Wno-deprecated-builtins -Wno-deprecated-volatile -Wno-ambiguous-reversed-operator -Wno-deprecated-enum-enum-conversion
      ```
      The explanations of the `-Wno*` flags are as follows:
    
      | Argument                               | Reason                                                       |
      | -------------------------------------- | ------------------------------------------------------------ |
      | `-Wno-unused-command-line-argument`    | Lingering use of `-static-libstdc++`, a GCC-ism that isn't recognized as a valid argument in Clang (no longer an issue thanks to dashpay#5958, thanks knst!) |
      | `-Wno-deprecated-builtins`             | Due to usage of [deprecated builtins](https://github.com/dashpay/dash/blob/2dacfb08bdf02fdaf0740edac19435bfaa0e52d3/src/bench/nanobench.h#L104-L110) in `nanobench` that exist even in the [most current version](https://github.com/martinus/nanobench/blob/a5a50c2b33eea2ff1fcb355cacdface43eb42b25/src/include/nanobench.h#L115-L121) (see below) |
      | `-Wno-deprecated-volatile`             | The detection code for C++20 in the CI image (based on Ubuntu `focal`) relies on deprecated volatiles (see below) |
      | `-Wno-ambiguous-reversed-operator`     | Due to an ambiguous operator in a Dash unit test ([source](https://github.com/dashpay/dash/blob/2dacfb08bdf02fdaf0740edac19435bfaa0e52d3/src/test/fuzz/addrman.cpp#L145)) (see below) |
      | `-Wno-deprecated-enum-enum-conversion` | Due to key combination code in Dash Qt ([source](https://github.com/dashpay/dash/blob/2dacfb08bdf02fdaf0740edac19435bfaa0e52d3/src/qt/bitcoingui.cpp#L376)) (see below) |
    
      <details>
      <summary>-Wno-deprecated-builtins</summary>
    
      ```
      > make
      Making all in src
      make[1]: Entering directory '/src/dash/src'
      make[2]: Entering directory '/src/dash/src'
      make[3]: Entering directory '/src/dash'
      make[3]: Leaving directory '/src/dash'
        CXX      bench/bench_dash-addrman.o
      In file included from bench/addrman.cpp:6:
      In file included from ./bench/bench.h:16:
      ./bench/nanobench.h:952:13: error: builtin __has_trivial_copy is deprecated; use __is_trivially_copyable instead [-Werror,-Wdeprecated-builtins]
          return !ANKERL_NANOBENCH_IS_TRIVIALLY_COPYABLE(Decayed) || sizeof(Decayed) > sizeof(long) || std::is_pointer<Decayed>::value;
                  ^
      ./bench/nanobench.h:107:57: note: expanded from macro 'ANKERL_NANOBENCH_IS_TRIVIALLY_COPYABLE'
      #    define ANKERL_NANOBENCH_IS_TRIVIALLY_COPYABLE(...) __has_trivial_copy(__VA_ARGS__)
                                                              ^
      1 error generated.
      make[2]: *** [Makefile:14567: bench/bench_dash-addrman.o] Error 1
      make[2]: Leaving directory '/src/dash/src'
      make[1]: *** [Makefile:18568: all-recursive] Error 1
      make[1]: Leaving directory '/src/dash/src'
      make: *** [Makefile:800: all-recursive] Error 1
      ```
    
      </details>
    
      <details>
      <summary>-Wno-deprecated-volatile</summary>
    
      ```
      > ./configure [...]
      [...]
      checking whether clang++-16 supports C++20 features with -h std=c++20... no
      checking whether clang++-16 supports C++20 features with -std=c++2a... no
      checking whether clang++-16 supports C++20 features with +std=c++2a... no
      checking whether clang++-16 supports C++20 features with -h std=c++2a... no
      configure: error: *** A compiler with support for C++20 language features is required.
    
      > cat config.log
      This file contains any messages produced by compilers while
      running configure, to aid debugging if configure makes a mistake.
    
      It was created by Dash Core configure 21.0.0, which was
      generated by GNU Autoconf 2.69.  Invocation command line was
    
        $ ./configure --prefix=/src/dash/depends/x86_64-pc-linux-gnu --enable-zmq --enable-reduce-exports --disable-crash-hooks --disable-stacktraces --enable-c++20 --enable-suppress-external-warnings --enable-debug --disable-ccache --with-sanitizers=thread
      [...]
      configure:4450: checking whether clang++-16 accepts -g
      configure:4470: clang++-16 -c -g -I/src/dash/depends/x86_64-pc-linux-gnu/include/ -DDEBUG_LOCKORDER -DENABLE_DASH_DEBUG -DARENA_DEBUG conftest.cpp >&5
      configure:4470: $? = 0
      configure:4511: result: yes
      configure:4537: checking whether make supports the include directive
      configure:4552: make -f confmf.GNU && cat confinc.out
      this is the am__doit target
      configure:4555: $? = 0
      configure:4574: result: yes (GNU style)
      configure:4599: checking dependency style of clang++-16
      configure:4710: result: gcc3
      configure:4756: checking whether clang++-16 supports C++20 features with -std=c++20
      configure:5558: clang++-16 -std=c++20 -c -pipe -O2 -Werror -Werror=reorder -Werror=thread-safety -Wno-deprecated-builtins -I/src/dash/depends/x86_64-pc-linux-gnu/include/ -DDEBUG_LOCKORDER -DENABLE_DASH_DEBUG -DARENA_DEBUG conftest.cpp >&5
      conftest.cpp:109:36: error: volatile-qualified parameter type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
          test(const int c, volatile int v) // 'volatile is deprecated in C++20'
                                         ^
      1 error generated.
      ```
    
      </details>
    
      <details>
    
      <summary>-Wno-ambiguous-reversed-operator</summary>
    
      ```
      > make
      Making all in src
      make[1]: Entering directory '/src/dash/src'
      make[2]: Entering directory '/src/dash/src'
      make[3]: Entering directory '/src/dash'
      make[3]: Leaving directory '/src/dash'
      [...]
        CXX      test/fuzz/fuzz-addrman.o
      test/fuzz/addrman.cpp:329:22: error: ISO C++20 considers use of overloaded operator '==' (with operand types 'CAddrManDeterministic' and 'CAddrManDeterministic') to be ambiguous despite there being a unique best viable function [-Werror,-Wambiguous-reversed-operator]
          assert(addr_man1 == addr_man2);
                 ~~~~~~~~~ ^  ~~~~~~~~~
      /usr/include/assert.h:93:27: note: expanded from macro 'assert'
           (static_cast <bool> (expr)                                         \
                                ^~~~
      test/fuzz/addrman.cpp:145:10: note: ambiguity is between a regular call to this operator and a call with the argument order reversed
          bool operator==(const CAddrManDeterministic& other)
               ^
      test/fuzz/addrman.cpp:145:10: note: mark 'operator==' as const or add a matching 'operator!=' to resolve the ambiguity
      1 error generated.
      make[2]: *** [Makefile:15393: test/fuzz/fuzz-addrman.o] Error 1
      make[2]: *** Waiting for unfinished jobs....
      make[3]: Leaving directory '/src/dash/src/dashbls'
      make[2]: Leaving directory '/src/dash/src'
      make[1]: *** [Makefile:18568: all-recursive] Error 1
      make[1]: Leaving directory '/src/dash/src'
      make: *** [Makefile:800: all-recursive] Error 1
      ```
    
      </details>
    
      <details>
    
      <summary>-Wno-deprecated-enum-enum-conversion</summary>
    
      ```
      > make
      Making all in src
      make[1]: Entering directory '/src/dash/src'
      make[2]: Entering directory '/src/dash/src'
      make[3]: Entering directory '/src/dash'
      make[3]: Leaving directory '/src/dash'
      [...]
        CXX      qt/libbitcoinqt_a-bitcoingui.o
      qt/bitcoingui.cpp:376:51: error: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') is deprecated [-Werror,-Wdeprecated-enum-enum-conversion]
          quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
                                               ~~~~~~~~ ^ ~~~~~~~~~
      qt/bitcoingui.cpp:609:56: error: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') is deprecated [-Werror,-Wdeprecated-enum-enum-conversion]
          minimize_action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_M));
                                                    ~~~~~~~~ ^ ~~~~~~~~~
      2 errors generated.
      make[2]: *** [Makefile:12803: qt/libbitcoinqt_a-bitcoingui.o] Error 1
      make[2]: *** Waiting for unfinished jobs....
      make[2]: Leaving directory '/src/dash/src'
      make[1]: *** [Makefile:18568: all-recursive] Error 1
      make[1]: Leaving directory '/src/dash/src'
      make: *** [Makefile:800: all-recursive] Error 1
      ```
    
      </details>
    
      This pull request removes the need for the last two `-Wno*` flags, removes some leftover `boost::`{`function`, `lexical_cast`} usage and some `gArgs` usage where a local variable would be more applicable.
    
      Additionally, in some builds, there is an deprecation warning (`-Wdeprecation`) for using `[=]` and relying on its implicit capture of `this` (see below), this can be seen during GCC builds but not Clang builds and correspond to a proposal to the C++20 standard ([proposal](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html)).
    
      It has also been mentioned at https://en.cppreference.com/w/cpp/language/lambda, "The implicit capture of `*this` when the capture default is `=` is deprecated. _(since C++20)_". This has also been remedied as part of this PR.
    
      <details>
    
      <summary>-Wdeprecated</summary>
    
      ```
      > make -j10
      [...]
        CXX      qt/libbitcoinqt_a-trafficgraphwidget.o
      qt/optionsdialog.cpp: In lambda function:
      qt/optionsdialog.cpp:195:63: warning: implicit capture of 'this' via '[=]' is deprecated in C++20 [-Wdeprecated]
        195 |     connect(appearance, &AppearanceWidget::appearanceChanged, [=](){
            |                                                               ^
      qt/optionsdialog.cpp:195:63: note: add explicit 'this' or '*this' capture
      qt/optionsdialog.cpp: In lambda function:
      qt/optionsdialog.cpp:277:55: warning: implicit capture of 'this' via '[=]' is deprecated in C++20 [-Wdeprecated]
        277 |     connect(ui->coinJoinEnabled, &QCheckBox::clicked, [=](bool fChecked) {
            |                                                       ^
      qt/optionsdialog.cpp:277:55: note: add explicit 'this' or '*this' capture
      qt/optionsdialog.cpp: In lambda function:
      qt/optionsdialog.cpp:293:45: warning: implicit capture of 'this' via '[=]' is deprecated in C++20 [-Wdeprecated]
        293 |     connect(this, &OptionsDialog::rejected, [=]() {
            |                                             ^
      qt/optionsdialog.cpp:293:45: note: add explicit 'this' or '*this' capture
        CXX      qt/libbitcoinqt_a-utilitydialog.o
        CXX      qt/libbitcoinqt_a-addressbookpage.o
      [...]
      ```
    
      </details>
    
      ## 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
      - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      PastaPastaPasta:
        utACK 740d25c
      knst:
        utACK 740d25c
    
    Tree-SHA512: 52793f9862192ccb556debcac2ec766c4f86e69ec4bedc2fdbaaff965ab4ac478b65b3983b1cb3a92610db85aee6f8668b0ded3494c617c5af7d8801284e461b
    PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    5c240bb View commit details
    Browse the repository at this point in the history
  27. Merge bitcoin#21792: test: Fix intermittent issue in p2p_segwit.py

    fad6269 test: Assert that exit code indicates failure (MarcoFalke)
    faecb72 test: Fix intermittent issue in p2p_segwit.py (MarcoFalke)
    
    Pull request description:
    
      Calling `start_node` might call `wait_for_rpc_connection`, which will fail.
    
      https://cirrus-ci.com/task/5669555591708672?logs=ci#L3504
    
      ```
        File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/p2p_segwit.py", line 1974, in test_upgrade_after_activation
          self.start_node(2, extra_args=["-reindex", f"-segwitheight={SEGWIT_HEIGHT}"])
        File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_framework.py", line 508, in start_node
          node.wait_for_rpc_connection()
        File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_node.py", line 224, in wait_for_rpc_connection
          raise FailedToStartError(self._node_msg(
      test_framework.test_node.FailedToStartError: [node 2] bitcoind exited with status 1 during initialization
    
    ACKs for top commit:
      jnewbery:
        ACK fad6269
      dhruv:
        ACK fad6269
    
    Tree-SHA512: 4c5e39ce25e135717ea433258518f93f09d1c528c4538a8627d3da13bc0c0ba4b45911703c26392ff0f5e0cb7831a6c7cc53e6e29102d3da9c8cfce7cef333cc
    MarcoFalke authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    b2d8893 View commit details
    Browse the repository at this point in the history
  28. Merge bitcoin-core/gui#284: refactor: Simplify SendCoinsDialog::updat…

    …eCoinControlState
    
    5f438d6 refactor, qt: Simplify SendCoinsDialog::updateCoinControlState (João Barbosa)
    
    Pull request description:
    
      This PR doesn't change behaviour, removes the coin control argument from `updateCoinControlState` since it's a class member.
    
    ACKs for top commit:
      hebasto:
        ACK 5f438d6, I have reviewed the code and it looks OK, I agree it can be merged.
      jonatack:
        Code review ACK 5f438d6
      kristapsk:
        utACK 5f438d6. Code looks correct.
    
    Tree-SHA512: 14abaa3d561f8c8854fed989b6aca886dcca42135880bac76070043f61c0042ec8967f2b83e50bbbb82050ef0f074209e97fa300cb4dc51ee182316e0846506d
    hebasto authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    a63f9c3 View commit details
    Browse the repository at this point in the history
  29. Merge bitcoin#21714: refactor: Drop CCoinControl::SetNull

    c5a470e refactor: Drop CCoinControl::SetNull (João Barbosa)
    
    Pull request description:
    
      The only external call to `SetNull` is changed as follow
    
      ```diff
      - m_coin_control->SetNull();
      + m_coin_control = std::make_unique<CCoinControl>();
      ```
    
    ACKs for top commit:
      theStack:
        Code-Review ACK c5a470e
      MarcoFalke:
        review ACK c5a470e 🍤
    
    Tree-SHA512: 2588828720cdcf405fc4fb06f2aa17ad4eef2a645e12d820311006127e732258dd084993f17f23742f8e7f782e18289a6199dcec3690efc9b92458f90b816a8f
    MarcoFalke authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    de4d2a8 View commit details
    Browse the repository at this point in the history
  30. Merge bitcoin#21814: test: Fix feature_config_args.py intermittent issue

    fab1eb6 test: Fix feature_config_args.py intermittent issue (MarcoFalke)
    
    Pull request description:
    
      Fix bitcoin#21448
    
    ACKs for top commit:
      laanwj:
        Code review ACK fab1eb6
    
    Tree-SHA512: cad9f684f43aa801d0c1cb5f1684ffa624df1216be225cea46b1389ba2b67cbd6159ffb786fe144bf1ca865623dd9a10289d4293cfabb678bdb243d4ea00734d
    MarcoFalke authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    71f23d6 View commit details
    Browse the repository at this point in the history
  31. Merge bitcoin#21681: validation: fix ActivateSnapshot to use hardcode…

    …d nChainTx
    
    91d93aa validation: remove nchaintx from assumeutxo metadata (James O'Beirne)
    931684b validation: fix ActivateSnapshot to use hardcoded nChainTx (James O'Beirne)
    
    Pull request description:
    
      This fixes an oversight from the move of nChainTx from the user-supplied
      snapshot metadata into the hardcoded assumeutxo chainparams.
    
      Since the nChainTx is now unused in the metadata, it should be removed
      in a future commit.
    
      See: bitcoin#19806 (comment)
    
    ACKs for top commit:
      Sjors:
        utACK 91d93aa
      ryanofsky:
        Code review ACK 91d93aa. No change to previous commit, just new commit removing now unused utxo snapshot field and updating tests.
    
    Tree-SHA512: 445bdd738faf007451f40bbcf360dd1fb4675e17a4c96546e6818c12e33dd336dadd95cf8d4b5f8df1d6ccfbc4bf5496864bb5528e416cea894857b6b732140c
    MarcoFalke authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    a02a2c0 View commit details
    Browse the repository at this point in the history
  32. Merge bitcoin#21874: fuzz: Add WRITE_ALL_FUZZ_TARGETS_AND_ABORT

    fa5cb6b fuzz: Add WRITE_ALL_FUZZ_TARGETS_AND_ABORT (MarcoFalke)
    
    Pull request description:
    
      This is needed when stdout is polluted by the fuzz engine. stderr can't be used instead because it is polluted by aborting the program.
    
    Top commit has no ACKs.
    
    Tree-SHA512: bf0a2a6bcd964ff1f0f3ef6e7e297b4c780430c4d6312332ed99ace0e1c58243c1483fd387e39405837d39b36072dfeb9ae03d2a7aa728ad6955159754fd5766
    MarcoFalke authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    51633d7 View commit details
    Browse the repository at this point in the history
  33. Merge bitcoin#21884: fuzz: Remove unused --enable-danger-fuzz-link-al…

    …l option
    
    fa27d6d fuzz: Remove unused --enable-danger-fuzz-link-all option (MarcoFalke)
    
    Pull request description:
    
      Remove the unused build option, which was *dangerous* (as the name implies). Also remove the fuzzbuzz config, which was never used as part of this repo and seems redundant now that we integrate with oss-fuzz.
    
    ACKs for top commit:
      practicalswift:
        cr ACK fa27d6d: patch looks correct and rationale makes sense
      hebasto:
        ACK fa27d6d, I have reviewed the code and it looks OK, I agree it can be merged.
    
    Tree-SHA512: 9bd65ed6a76d13d8d9c7a88aaae30f701215d5d0619693a3115d5ec350808aaf6a1aa4737466a5b96f3948513ec4d063808fe16219818366720e247880a15177
    fanquake authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    eeec2f2 View commit details
    Browse the repository at this point in the history
  34. Merge bitcoin#21749: test: Bump shellcheck version

    08f3dbb test: Bump shellcheck version (Hennadii Stepanov)
    
    Pull request description:
    
      The changelog for v0.7.2 is available [here](https://github.com/koalaman/shellcheck/blob/v0.7.2/CHANGELOG.md).
    
      Only [SC2268](https://github.com/koalaman/shellcheck/wiki/SC2268) requires to update our code.
    
    ACKs for top commit:
      jarolrod:
        ACK  08f3dbb
    
    Tree-SHA512: 4585cd1f4d9def2fbaafe5a2a57761288d432781eb8c6c6d37064727d7ca8fc3f35c552e6a2ffdf0820d753d4bde2c8e43e5f3f57d242f5f57591a9b1b03558d
    laanwj authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    ecade9b View commit details
    Browse the repository at this point in the history
  35. Merge bitcoin#21377: Speedy trial support for versionbits

    ffe33df chainparams: drop versionbits threshold to 90% for mainnnet and signet (Anthony Towns)
    f054f6b versionbits: simplify state transitions (Anthony Towns)
    55ac5f5 versionbits: Add explicit NEVER_ACTIVE deployments (Anthony Towns)
    dd07e6d fuzz: test versionbits delayed activation (Anthony Towns)
    dd85d54 tests: test versionbits delayed activation (Anthony Towns)
    73d4a70 versionbits: Add support for delayed activation (Anthony Towns)
    9e6b65f tests: clean up versionbits test (Anthony Towns)
    5932744 tests: test ComputeBlockVersion for all deployments (Anthony Towns)
    63879f0 tests: pull ComputeBlockVersion test into its own function (Anthony Towns)
    
    Pull request description:
    
      BIP9-based implementation of "speedy trial" activation specification, see https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-March/018583.html
    
      Edge cases are tested by fuzzing added in bitcoin#21380.
    
    ACKs for top commit:
      instagibbs:
        tACK bitcoin@ffe33df
      jnewbery:
        utACK ffe33df
      MarcoFalke:
        review ACK ffe33df 💈
      achow101:
        re-ACK ffe33df
      gmaxwell:
        ACK ffe33df
      benthecarman:
        ACK ffe33df
      Sjors:
        ACK ffe33df
      jonatack:
        Initial approach ACK ffe33df after a first pass of review, building and testing each commit, mostly looking at the changes and diffs. Will do a more high-level review iteration. A few minor comments follow to pick/choose/ignore.
      ariard:
        Code Review ACK ffe33df
    
    Tree-SHA512: f79a7146b2450057ee92155cbbbcec12cd64334236d9239c6bd7d31b32eec145a9781c320f178da7b44ababdb8808b84d9d22a40e0851e229ba6d224e3be747c
    fanquake authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    5191138 View commit details
    Browse the repository at this point in the history
  36. feat: new command line argument -bip147height for bitcoin#21373

    This command line argument is substitute for -segwitheight so far as dash does
    not have a segwit feature
    knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    a933a60 View commit details
    Browse the repository at this point in the history
  37. Merge bitcoin#21373: test: generate fewer blocks in feature_nulldummy…

    … to fix timeouts, speed up
    
    ccd976d test: use 327 fewer blocks in feature_nulldummy (Jon Atack)
    68c280f test, refactor: abstract the feature_nulldummy blockheight values (Jon Atack)
    
    Pull request description:
    
      The resolved timeout issue seen in the CI can be reproduced locally by running `test/functional/feature_nulldummy.py --valgrind --loglevel=debug`
    
      Speeds up the normal test runtime for me from 3.8 to 2.2 seconds (debug build). Thanks to Marco Falke for the approach suggestion.
    
    ACKs for top commit:
      AnthonyRonning:
        reACK ccd976d - ran a few times with the rest of the tests and still passing for me with just the fewer block change.
      MarcoFalke:
        review ACK ccd976d 🏝
    
    Tree-SHA512: 38339dca4276d1972e3a5a5ee436da64e9e58fd3b50b186e34b07ade9523ac4c03f6c3869c5f2a59c23b43c44f87e712f8297a01a8d83202049c081e3eeb4445
    MarcoFalke authored and knst committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    7cc77f3 View commit details
    Browse the repository at this point in the history
  38. net: use ForEachNode instead of manually iterating through vNodes

    ForEachNode is publicly available, which will help us extract the
    functions from CConnman in a subsequent commit
    kwvg committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    d54ba44 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    0323c6c View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    c3f1ac2 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    313a7e9 View commit details
    Browse the repository at this point in the history
  42. Configuration menu
    Copy the full SHA
    bfd33cd View commit details
    Browse the repository at this point in the history
  43. llmq: pass PeerManager to llmq::CInstantSendManager constructor

    Required to avoid crashes when calling RelayInvFiltered in situations
    where the PeerManager* atomic hasn't been set (possible when ProcessMessage
    isn't called, leaving the value unset, while a separate thread traverses
    the ProcessPendingInstantSendLocks > ProcessPendingInstantSendLocks[1] >
    ProcessInstantSendLock > RelayInvFiltered call chain).
    
    [1] - There is a function with the exact same name but with multiple
          arguments
    kwvg committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    35be4e2 View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    f2fe39f View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    f5f8bd9 View commit details
    Browse the repository at this point in the history
  46. Merge dashpay#5994: doc: replace gfd() function to recommendation to …

    …use `git diff-range`
    
    f5f8bd9 doc: replace gfd() function to recommendation to use `git diff-range` (Konstantin Akimov)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      `gfd` is less convenient to use, `git range-diff` is more functional. Dropped recommendation to use it.
    
      ## What was done?
      Updated `CONTRIBUTION.md` file
    
      ## How Has This Been Tested?
      Run `git range-diff` to ensure that it indeed works
    
      ## 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
      - [x] I have made corresponding changes to the documentation
      - [x] I have assigned this pull request to a milestone
    
    Top commit has no ACKs.
    
    Tree-SHA512: 08663e5371753b6851b216da66ef72bb6bfb80acd42c31c57de9f8d52f00766e3121adf960e27236451d6520088f0c2c927f5f4f3001a40c591feb62074951e0
    PastaPastaPasta committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    2610df3 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2024

  1. Merge dashpay#5977: refactor: move CConnman::RelayInv{Filtered} to Pe…

    …erManager, remove CConnman::RelayTransaction
    
    f2fe39f trivial: add `Asserts` for `m_peerman` pointer container uses (Kittywhiskers Van Gogh)
    35be4e2 llmq: pass PeerManager to llmq::CInstantSendManager constructor (Kittywhiskers Van Gogh)
    bfd33cd net: move CConnman::RelayInv{Filtered} into PeerManager (Kittywhiskers Van Gogh)
    313a7e9 trivial: cleanup unnecessary headers in context files (Kittywhiskers Van Gogh)
    c3f1ac2 net: retire CConnman::RelayTransaction, use PeerManager::RelayTransaction (Kittywhiskers Van Gogh)
    0323c6c net: move Relay{Inv, InvFiltered, Transaction} out of CConnman (Kittywhiskers Van Gogh)
    d54ba44 net: use ForEachNode instead of manually iterating through vNodes (Kittywhiskers Van Gogh)
    
    Pull request description:
    
      ## Additional information
    
      * Dependency for dashpay#5982
      * Unfortunately, we are stuck with using the `unique_ptr` const-ref of `PeerManager` for initializing {`CJ`, `LLMQ`}`Context` due to some unit tests depending on Dash-specific entities but based on a testing setup that doesn't initialize `PeerManager` (specifically `validation_chainstatemanager_tests`, which uses `ChainTestingSetup`, as opposed to `TestingSetup`, which initializes `PeerManager`).
    
        Attempting to dereference it earlier will result in crashing (see CI pipeline [here](https://gitlab.com/dashpay/dash/-/pipelines/1245924304))
    
      ## Breaking Changes
    
      None observed.
    
      ## 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 **(note: N/A)**
      - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
    
    ACKs for top commit:
      PastaPastaPasta:
        re-utACK [f2fe39f](dashpay@f2fe39f)
      knst:
        utACK [f2fe39f](dashpay@f2fe39f)
    
    Tree-SHA512: 5e9ca47ba9f7f0c5fdc93bf6cfd99d91be6d134610d2bd3dccde17443a956c7d8848b3406082ee8b6ee3fd25f586ce7bac45bc89b568424479b8fc149172ae51
    PastaPastaPasta committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    2b1c165 View commit details
    Browse the repository at this point in the history
  2. Merge dashpay#5985: backport: bitcoin#21373, bitcoin#21377, bitcoin#2…

    …1681, bitcoin#21714, bitcoin#21749, bitcoin#21792, bitcoin#21814, bitcoin#21874, bitcoin#21884, bitcoin-core/gui#284
    
    7cc77f3 Merge bitcoin#21373: test: generate fewer blocks in feature_nulldummy to fix timeouts, speed up (MarcoFalke)
    a933a60 feat: new command line argument -bip147height for bitcoin#21373 (Konstantin Akimov)
    5191138 Merge bitcoin#21377: Speedy trial support for versionbits (fanquake)
    ecade9b Merge bitcoin#21749: test: Bump shellcheck version (W. J. van der Laan)
    eeec2f2 Merge bitcoin#21884: fuzz: Remove unused --enable-danger-fuzz-link-all option (fanquake)
    51633d7 Merge bitcoin#21874: fuzz: Add WRITE_ALL_FUZZ_TARGETS_AND_ABORT (MarcoFalke)
    a02a2c0 Merge bitcoin#21681: validation: fix ActivateSnapshot to use hardcoded nChainTx (MarcoFalke)
    71f23d6 Merge bitcoin#21814: test: Fix feature_config_args.py intermittent issue (MarcoFalke)
    de4d2a8 Merge bitcoin#21714: refactor: Drop CCoinControl::SetNull (MarcoFalke)
    a63f9c3 Merge bitcoin-core/gui#284: refactor: Simplify SendCoinsDialog::updateCoinControlState (Hennadii Stepanov)
    b2d8893 Merge bitcoin#21792: test: Fix intermittent issue in p2p_segwit.py (MarcoFalke)
    
    Pull request description:
    
      ## Issue being fixed or feature implemented
      Regular batch of backports from bitcoin v22
    
      ## What was done?
      Implemented new commandline argument `-bip147height` for RegTest.
      Backports:
    
       - bitcoin#21377
       - bitcoin#21792
       - bitcoin-core/gui#284
       - bitcoin#21714
       - bitcoin#21373
       - bitcoin#21814
       - bitcoin#21681
       - bitcoin#21874
       - bitcoin#21884
       - bitcoin#21749
    
      ## How Has This Been Tested?
      Run unit/functional 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:
      PastaPastaPasta:
        utACK 7cc77f3
    
    Tree-SHA512: d46218667430af19c445d67d6411b1e7f19920e85f86e6e74ae7b9062aeb3763637a8613587c203ba8d285ccc3ee755f936141010944cfae8627397e8b8584d3
    PastaPastaPasta committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    27b2e5c View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2024

  1. Merge bitcoin#21750: net: remove unnecessary check of CNode::cs_vSend

    9096b13 net: remove unnecessary check of CNode::cs_vSend (Vasil Dimov)
    
    Pull request description:
    
      It is not possible to have a node in `CConnman::vNodesDisconnected` and
      its reference count to be incremented - all `CNode::AddRef()` are done
      either before the node is added to `CConnman::vNodes` or while holding
      `CConnman::cs_vNodes` and the object being in `CConnman::vNodes`.
    
      So, the object being in `CConnman::vNodesDisconnected` and its reference
      count being zero means that it is not and will not start to be used by
      other threads.
    
      So, the lock of `CNode::cs_vSend` in `CConnman::DisconnectNodes()` will
      always succeed and is not necessary.
    
      Indeed all locks of `CNode::cs_vSend` are done either when the reference
      count is >0 or under the protection of `CConnman::cs_vNodes` and the
      node being in `CConnman::vNodes`.
    
    ACKs for top commit:
      MarcoFalke:
        review ACK 9096b13 🏧
      jnewbery:
        utACK 9096b13
    
    Tree-SHA512: 910899cdcdc8934642eb0c40fcece8c3b01b7e20a0b023966b9d6972db6a885cb3a9a04e9562bae14d5833967e45e2ecb3687b94d495060c3da4b1f2afb0ac8f
    MarcoFalke authored and vijaydasmp committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    e5eba11 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#21727: refactor: Move more stuff to blockstorage

    fa09a9e style: Add { } to multi-line if (MarcoFalke)
    fadafab move-only: Move functions to blockstorage (MarcoFalke)
    fa7e64d move-only: Move constants to blockstorage (MarcoFalke)
    fa247a3 refactor: Move block storage globals to blockstorage (MarcoFalke)
    fa81c30 refactor: Move pruning/reindex/importing globals to blockstorage (MarcoFalke)
    
    Pull request description:
    
      See bitcoin#21575
    
    ACKs for top commit:
      Sjors:
        ACK fa09a9e
      kiminuo:
        ACK fa09a9e
      laanwj:
        Code review ACK fa09a9e
      promag:
        Code review ACK fa09a9e. Since last review
    
    Tree-SHA512: 2eb6962ff44da6b77f3058fc02ec66ab742e25ae8dcc8ec62b062896571910d43ca7c4bb16fb3ccb5e5245195b8dec6384b6c8d442fa97ca28d93bdff347d677
    laanwj authored and vijaydasmp committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    507041e View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#21856: doc: add OSS-Fuzz section to fuzzing.md doc

    47c3ea0 doc: add OSS-Fuzz section to fuzzing.md doc (Adam Jonas)
    
    Pull request description:
    
      This adds documentation about [Bitcoin Core's participation](https://github.com/google/oss-fuzz/pull/5699/files) in Google's OSS-Fuzz program and adds the caveat that the project may not disclose vulnerabilities within the 90-day window described in the [program's disclosure guidelines](https://google.github.io/oss-fuzz/getting-started/bug-disclosure-guidelines/).
    
    ACKs for top commit:
      jonatack:
        ACK 47c3ea0
    
    Tree-SHA512: 87bf0146fb74d1e4b3b8839e6c8f3d53046008a6d5b926ffe5b95be3c396a5e47e47967533422f60b04c4446482f49d210ada410b742f69781a7afde623d704d
    MarcoFalke authored and vijaydasmp committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    f720703 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#21897: rpc: adjust incorrect RPCHelpMan types

    7031721 rpc/listaddressgroupings: redefine inner-most array as ARR_FIXED (Karl-Johan Alm)
    8500f7b rpc/createrawtransaction: redefine addresses as OBJ_USER_KEYS (Karl-Johan Alm)
    d9e2183 rpc: include OBJ_USER_KEY in RPCArg constructor checks (Karl-Johan Alm)
    
    Pull request description:
    
      This PR adjusts the two issues I encountered while developing a tool that converts RPCHelpMan objects into bindings for other language(s).
    
      The first is in createrawtransaction, where the address part, e.g. bc1qabc in
    
      > createrawtransaction '[]' '[{"bc1qabc": 1.0}]'
    
      is declared as a `Type::OBJ`, when in reality it should be a `Type::OBJ_USER_KEYS`, defined as such:
    
      https://github.com/bitcoin/bitcoin/blob/5925f1e652768a9502831b9ccf78d16cf3c37d29/src/rpc/util.h#L126
    
      (coincidentally, this is the first and only (afaict) usage of this `RPCArg::Type`).
    
      The second is in the `listaddressgroupings` RPC, which returns an array of arrays of arrays, where the innermost one is a tuple-thingie with an optional 3rd item; this is an `ARR_FIXED`, not an `ARR`.
    
    ACKs for top commit:
      MarcoFalke:
        ACK 7031721 🐀
    
    Tree-SHA512: 769377416c6226d1738a956fb685498e009f9e7eb2d45bc679b81c5364b9520fdbcb49392c937ab45598aa0d33589e8e6a59ccc101cf8d8e7dfdafd58d4eefd0
    MarcoFalke authored and vijaydasmp committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    bd5dfca View commit details
    Browse the repository at this point in the history