. #22666

pull Iceymann18777 wants to merge 165 commits into bitcoin:master from Iceymann18777:0.21 changing 193 files +28203 −8313
  1. Iceymann18777 commented at 4:57 PM on August 8, 2021: none

    <!-- *** Please remove the following help text before submitting: *** Pull requests without a rationale and clear improvement may be closed immediately. GUI-related pull requests should be opened against https://github.com/bitcoin-core/gui first. See CONTRIBUTING.md -->

    <!-- Please provide clear motivation for your patch and explain how it improves Bitcoin Core user experience or Bitcoin Core developer experience significantly: * Any test improvements or new tests that improve coverage are always welcome. * All other changes should have accompanying unit tests (see `src/test/`) or functional tests (see `test/`). Contributors should note which tests cover modified code. If no tests exist for a region of modified code, new tests should accompany the change. * Bug fixes are most welcome when they come with steps to reproduce or an explanation of the potential issue as well as reasoning for the way the bug was fixed. * Features are welcome, but might be rejected due to design or scope issues. If a feature is based on a lot of dependencies, contributors should first consider building the system outside of Bitcoin Core, if possible. * Refactoring changes are only accepted if they are required for a feature or bug fix or otherwise improve developer experience significantly. For example, most "code style" refactoring changes require a thorough explanation why they are useful, what downsides they have and why they *significantly* improve developer experience or avoid serious programming bugs. Note that code style is often a subjective matter. Unless they are explicitly mentioned to be preferred in the [developer notes](/doc/developer-notes.md), stylistic code changes are usually rejected. -->

    <!-- Bitcoin Core has a thorough review process and even the most trivial change needs to pass a lot of eyes and requires non-zero or even substantial time effort to review. There is a huge lack of active reviewers on the project, so patches often sit for a long time. -->

  2. build: Bump version for 0.21.0rc1
    Tree-SHA512: 5bfe150de6e808a6af499e1f01fbfde91fca3fd726e3d457172e94161c4a18fb508824a4b2a58a35ac582d505e4e9da1287a349b51be863dc5bd4fa858400863
    463b316822
  3. doc: Generate manual pages for 0.21.0rc1
    Tree-SHA512: d3e4f927d39f38317242b376f7cbd04ff3ab2b5795ffb5912a1e193b3bc27fa0e7fe55446b62c22df6a213509c2c489a66cde866992706a6ddd0ebbddc713303
    6cde7bb9b2
  4. build: Set msvc builds's CLIENT_VERSION_IS_RELEASE
    Of course, this one was in another place too.
    
    Tree-SHA512: 87784829b1f700dcf5fd22daad0c920cfb25485ae17eff0b3e236513dc543c8643e568f39d418d43ea0eeb330fcac93ab2276cda8253ec6538d01e20d102d10c
    80496f9e81
  5. Merge #20431: [backport 0.21] tests: shrink feature_taproot transfer of funds tx
    7ffac12545328cadd92a3caec4f1c6ca7c127493 tests: shrink feature_taproot transfer of funds tx (Anthony Towns)
    
    Pull request description:
    
      Github-Pull: #20428
      Rebased-From: 7ffac12545328cadd92a3caec4f1c6ca7c127493
    
    Top commit has no ACKs.
    
    Tree-SHA512: 4e6b37a44dca3e29d5168b7eb9238a7ce0bbb9b0924a21671537a7c534790fb6b05b1a30a404db434fade030b4f369adfc73694ef85d91884bb7349adddc5f6a
    bf9548bc59
  6. Fix QPainter non-determinism on macOS
    Aplies a patch to Qt that fixes the non-determinism by modifying Qt. The
    source of the non-determinism is how LLVM 8 optimizes qt_intersect_spans
    when compiling. The particular optimization that seems to be causing the
    problems is that a temp variable is being added for spans->y. For some
    reason, when it does this, it chooses different instructions to use when
    making that variable. We bypass this problem by patching
    qt_intersect_spans to always make and use this local variable.
    
    Github-Pull: #20447
    Rebased-From: 8f7d1b39efbe65ab2747c593cc3560d4a449a333
    Tree-SHA512: 558da5c2bb0373e2a89f2c219170f802036e0e87cc8e808336b23d074152cb893007a440f46ec957156b0921355cd18502710f2d224f27bc26e934c50ebebc41
    ab23a83400
  7. Merge #20475: [backport] RPC: unloadwallet: Clarify docs/error when both the RPC endpoint and wallet_name parameter specify a wallet
    b1f59d55d920d2b35269b474762f94fec87bfb16 RPC/Wallet: unloadwallet: Clarify docs/error when both the RPC endpoint and wallet_name parameter specify a wallet (Luke Dashjr)
    
    Pull request description:
    
      Github-Pull: #20462
      Rebased-From: b1f59d55d920d2b35269b474762f94fec87bfb16
    
    Top commit has no ACKs.
    
    Tree-SHA512: 2ee0a8a280f56baf196a3a48a59620f297075d23898e6aa3b3e677cdde74826688614d27a477a1448306234c2109fa39083946f691ced10d8bbc53006730784e
    3fae2f95f1
  8. Merge #20479: Fix QPainter non-determinism on macOS (0.21 backport)
    ab23a83400d5ad13137ce0f9697a51f0b70e9d29 Fix QPainter non-determinism on macOS (Andrew Chow)
    
    Pull request description:
    
      Aplies a patch to Qt that fixes the non-determinism by modifying Qt. The
      source of the non-determinism is how LLVM 8 optimizes qt_intersect_spans
      when compiling. The particular optimization that seems to be causing the
      problems is that a temp variable is being added for spans->y. For some
      reason, when it does this, it chooses different instructions to use when
      making that variable. We bypass this problem by patching
      qt_intersect_spans to always make and use this local variable.
    
      Github-Pull: #20447
      Rebased-From: 8f7d1b39efbe65ab2747c593cc3560d4a449a333
      Tree-SHA512: 558da5c2bb0373e2a89f2c219170f802036e0e87cc8e808336b23d074152cb893007a440f46ec957156b0921355cd18502710f2d224f27bc26e934c50ebebc41
    
    ACKs for top commit:
      jonasschnelli:
        codereview ACK ab23a83400d5ad13137ce0f9697a51f0b70e9d29
      achow101:
        ACK ab23a83400d5ad13137ce0f9697a51f0b70e9d29
    
    Tree-SHA512: 10991fe2b5452b1393678c315281cfdca011e9bb2cd8094a002746e690890ace148ac2dbf39c5fbe5e7f4cd39eeebfa0a715c065cff150cf70e9733cb0ff32d6
    17294c1820
  9. build: Bump RC to rc2
    Tree-SHA512: 122ccac91708dda65a30aab6313c770008ccc0571402d92bc24fbefed578002626899c1754676118f5a456a63dbea84d1fe2fef46af57b77837f438c6e637b26
    ba19f9b490
  10. qt: Pre-rc2 translations update
    Tree-SHA512: 465a7b586f3eff476bd9648ff70e37e11f51e67f048dc1265ffcc1132c4e063515495ec6cbdf6ebb4abd5f5b08615595ce12273ce9abebc8ffef9c7b8375ac20
    7264bcd20f
  11. Merge #20486: [backport] test: Fix intermittent issue in mempool_compatibility
    fa05d19bd6ba619bb3f9aabc05c439cd18d34544 test: Fix intermittent issue in mempool_compatibility (MarcoFalke)
    
    Pull request description:
    
      Github-Pull: #20456
      Rebased-From: fa05d19bd6ba619bb3f9aabc05c439cd18d34544
    
    Top commit has no ACKs.
    
    Tree-SHA512: c07ed3ffab315da2bf70427882e2da8216964fef97dd538d7c46c5d5b3563b0732626ffbe4b0e19537ad49a8542eedb3c08850cccacdef466f24582defe99d22
    4e964094db
  12. Merge #20485: [backport] wallet: Do not treat default constructed types as None-type
    fa69c2c78455fd0dc436018fece9ff7fc83a180d wallet: Do not treat default constructed types as None-type (MarcoFalke)
    fac4e136fa3d0fab7fde900a6be921313e16e7a6 refactor: Change pointer to reference because it can not be null (MarcoFalke)
    
    Pull request description:
    
      Github-Pull: #20410
      Rebased-From: fac4e136fa3d0fab7fde900a6be921313e16e7a6
    
      Github-Pull: #20410
      Rebased-From: fa69c2c78455fd0dc436018fece9ff7fc83a180d
    
    Top commit has no ACKs.
    
    Tree-SHA512: 05c3fe29677710b57dcc482fd529b0ab79475519f60f9cfde19f956c4e2212d09b042af458ec4f1272c581360ce841b735dca4df144e0798b3ccf16547de9cd0
    d47d16025e
  13. Merge #20490: [backport] wallet: upgradewallet fixes, improvements, test coverage
    ca8cd893bb56bf5d455154b0498b1f58f77d20ed wallet: fix and improve upgradewallet error responses (Jon Atack)
    99d56e357159c7154f69f28cb5587c5ca20d6594 wallet: fix and improve upgradewallet result responses (Jon Atack)
    2498b04ce88696a3216fc38b7d393906b733e8b1 Don't upgrade to HD split if it is already supported (Andrew Chow)
    c46c18b788cb0862aafbb116fd37936cbed6a431 wallet: refactor GetClosestWalletFeature() (Jon Atack)
    
    Pull request description:
    
      Github-Pull: #20403
      Rebased-From: c46c18b788cb0862aafbb116fd37936cbed6a431
    
      Github-Pull: #20403
      Rebased-From: 2498b04ce88696a3216fc38b7d393906b733e8b1
    
      Github-Pull: #20403
      Rebased-From: 99d56e357159c7154f69f28cb5587c5ca20d6594
    
      Github-Pull: #20403
      Rebased-From: ca8cd893bb56bf5d455154b0498b1f58f77d20ed
    
    Top commit has no ACKs.
    
    Tree-SHA512: b18a1d015c963298740c585385eaa056988464112c88a519fe619be22dc78a8f6a102365cf799c50b781a77a09bec82b58ce411ab007b48f8b5de876e9c75060
    9facca3ce0
  14. build: Avoid secp256k1.h include from system
    GitHub-Pull: #20469
    Rebase-From: e95aaefe2540cb76969818fcc2ff77d33448ed5a
    01b647b1a2
  15. Allow zero-fee fundrawtxn and walletcreatefundedpsbt calls
    A check to raise an error on zero-fee txns was mistakenly extended in commit
    a0d4957 from the bumpfee and send{toaddress, many} RPCs to also include
    fundrawtransaction and walletcreatefundedpsbt.
    
    This commit overrides zero fee rate checking for these two RPCs, not only for
    the feeRate (BTC/kvB) arg to return to previous behavior, but also for the new
    fee_rate (sat/vB) arg.
    
    Github-Pull: #20426
    Rebased-From: 1b3d7009280595108eb22ac1188bc43678
    54e1edcc2b
  16. Update feeRate (BTC/kvB) to fee_rate (sat/vB) in wallet_bumpfee
    as the feeRate argument should soon be deprecated.
    
    Also loosen one test (and a similar one) that caused a one-off CI failure with:
    expected message
    'Insufficient total fee 0.00000141, must be at least 0.00001704 (oldFee 0.00000999 + incrementalFee 0.00000705)'
    actual message
    'Insufficient total fee 0.00000141, must be at least 0.00001712 (oldFee 0.00001007 + incrementalFee 0.00000705)'
    
    Github-Pull: #20426
    Rebased-From: 3f1e10b2b1cd11f7112fbad6355464bd4adbbc5c
    6e4969f76f
  17. Use the correct incremental fee constant in bumpfee help
    and remove redundant units ("Must be at least 1.000 sat/vB sat/vB" -> "1.00 sat vB")
    
    Github-Pull: #20426
    Rebased-From: 9f08780dd7946b63476e9736745131db8e7f4e93
    6313362553
  18. Merge #20505: [backport] build: Avoid secp256k1.h include from system
    01b647b1a20bbf1de2f5f4624c34b554ad3790f2 build: Avoid secp256k1.h include from system (Niklas Gรถgge)
    
    Pull request description:
    
      Backports #20469 to the 0.21 branch.
    
    ACKs for top commit:
      hebasto:
        ACK 01b647b1a20bbf1de2f5f4624c34b554ad3790f2, I have reviewed the code and it looks OK, I agree it can be merged.
    
    Tree-SHA512: c098055b5e413be6f438d1d43e80c1943329ebb708531d8d82e72de402bddeb6f8b812303f9ae5a45abf62b3ff87fa909fbbf7fb56dca7959ecb9061febae4a1
    68bd88597a
  19. Merge #20510: [backport] wallet: allow zero-fee fundrawtransaction/walletcreatefundedpsbt and other fixes
    6313362553d91bddb75a43f62dffbec16065e4d6 Use the correct incremental fee constant in bumpfee help (Jon Atack)
    6e4969f76f58518d47ce2f2cdfc4e3ef1f2228bd Update feeRate (BTC/kvB) to fee_rate (sat/vB) in wallet_bumpfee (Jon Atack)
    54e1edcc2bca76f783170768e65bf0850b036b81 Allow zero-fee fundrawtxn and walletcreatefundedpsbt calls (Jon Atack)
    
    Pull request description:
    
      Github-Pull: #20426
      Rebased-From: 1b3d7009280595108eb22ac1188bc4367804fc5d
    
      Github-Pull: #20426
      Rebased-From: 3f1e10b2b1cd11f7112fbad6355464bd4adbbc5c
    
      Github-Pull: #20426
      Rebased-From: 9f08780dd7946b63476e9736745131db8e7f4e93
    
    Top commit has no ACKs.
    
    Tree-SHA512: 89556f69ca4a36d86d6ab5df740b6d5de809f13d45b03450fb526362b1eabd3d2d5285f97c552dc0bcb07e17ac2e6c557ff46335962e6bcf366d36ad412f257c
    aa4b8ebfec
  20. Don't send 'sendaddrv2' to pre-70016 software
    Github-Pull: #20564
    Rebased-From: c5a89196602e43ebb1cdc9cd4f08d153419c13e1
    9e806887a8
  21. Send and require SENDADDRV2 before VERACK
    See the corresponding BIP change: https://github.com/bitcoin/bips/pull/1043
    
    Github-Pull: #20564
    Rebased-From: 1583498fb6781c01ca2f33c09319ed793964c574
    bead935470
  22. wallet, bugfix: allow send to take string fee rate values
    Github-Pull: #20573
    Rebased-From: ce207d6b93d35bc02fcd2dd28f1fd95869261d43
    06c84232b3
  23. test: add coverage for passing fee rate as a string
    Github-Pull: #20573
    Rebased-From: 6fa72ceb8021c3b5aea62f6cfe92665c29212923
    0d3c140c4d
  24. Improve heuristic hex transaction decoding
    Whenever both encodings are permitted, try both, and if only one succeeds,
    return that one. Otherwise prefer the one for which the heuristic sanity
    check passes. If that is the case for neither or for both, return the
    extended-permitting deserialization.
    
    Github-Pull: #20595
    Rebased-From: 39c42c442044aef611d03ee7053d2dd6df63deb7
    1caa32e3f2
  25. Add regression test for incorrect decoding
    Github-Pull: #20595
    Rebased-From: 0f949cde3dff15170db7930b0f7345ff995c267d
    ce13b99020
  26. Don't set BDB flags when configuring without
    Github-Pull: #20478
    Rebased-From: 982e548a9a78b1b0abad59b54c780b6b06570452
    61e316e661
  27. build: Check that Homebrew's berkeley-db4 package is actually installed
    Github-Pull: #20563
    Rebased-From: d3ef947524a07f8d7fbad5b95781ab6cacb1cb49
    96124a2041
  28. build, refactor: Check that Homebrew's qt5 package is actually installed
    This change unifies Homebrew packages workflow, and does not change
    behavior.
    
    Github-Pull: #20527
    Rebased-From: c96d1f65a552712f8476269ad64a415717ead50d
    48f8929aad
  29. build: Use Homebrew's sqlite package if it is available
    Github-Pull: #20527
    Rebased-From: ee7b84e63cbeadd5e680d69ff0548275581e9241
    f51e1cb291
  30. doc: Update wallet database installation guide for macOS
    Github-Pull: #20527
    Rebased-From: c932e0d67e4b369e4265267da6c8bebac2b6fb53
    48134a09ad
  31. Merge #20612: [0.21] final rc3 backports
    48134a09adef3b5302cdd6e95500db404c9ac961 doc: Update wallet database installation guide for macOS (Hennadii Stepanov)
    f51e1cb2917bbd7b0966a7ad688e04fc3ce02ccf build: Use Homebrew's sqlite package if it is available (Hennadii Stepanov)
    48f8929aade118469cb0014e78a15b4e71fdd17d build, refactor: Check that Homebrew's qt5 package is actually installed (Hennadii Stepanov)
    96124a204193ed114ca9594df7d5151206990e91 build: Check that Homebrew's berkeley-db4 package is actually installed (Hennadii Stepanov)
    61e316e66168be593fcc90b90217062fa9d993dc Don't set BDB flags when configuring without (Jonas Schnelli)
    ce13b99020df8d46a9b594add3c49e38d4601b42 Add regression test for incorrect decoding (Pieter Wuille)
    1caa32e3f2a74cd5700a4afe8ecf650f9020fb5c Improve heuristic hex transaction decoding (Pieter Wuille)
    0d3c140c4db051fb33c2935ad9536f0f4aa2a8c5 test: add coverage for passing fee rate as a string (Jon Atack)
    06c84232b310e6196c814894537ad935d773fe98 wallet, bugfix: allow send to take string fee rate values (Jon Atack)
    bead93547067e4b62b44fba335f1d4697119c2d7 Send and require SENDADDRV2 before VERACK (Pieter Wuille)
    9e806887a8f9ef63431b28d7dfd0470aa663dd02 Don't send 'sendaddrv2' to pre-70016 software (Pieter Wuille)
    
    Pull request description:
    
    ACKs for top commit:
      laanwj:
        ACK 48134a09adef3b5302cdd6e95500db404c9ac961
    
    Tree-SHA512: 92f1199b96ab7775f88e882ec7fedf43118a4b8452d1c8d0b1cf072d8de153bbb601c7381bc1c5c80c93803c6f9942d54646e9c74e3a6703ce13854fb383fd5e
    3fee499bc3
  32. gui: pre-rc3 translations update
    Tree-SHA512: 2aba5a743ecc1f9e336b8db036640182eb3e85449d9ab4c883c97e6ac75466760939b29c18560205d25489d58091212f7f1dcf651388deb675f824703c943cbf
    e6d0fa3ef6
  33. build: Bump RC to rc3
    Tree-SHA512: a6d81259e17c6b55b33c638a9054eaee2f82322ce0482a73f85562cd56efeb73e2b19b3f7b44fd97e7caa6e757573a8c13ae8967b1e6492f2483d2e057d96c87
    9ae536d368
  34. Move signet onion seed from v2 to v3
    Github-Pull: #20660
    Rebased-From: 3e6657a14d501c6315ab46ffe7d204684491c710
    8273ea3b8d
  35. This change to the appveyor CI config for msvc builds reverses a change introduced in #19960. It re-applies a setting to inform vcpkg to only build release vesions of the dependencies rather than the default of debug and release.
    It had been expected that the vcpkg manifest mechanism introduced in #19960 would do this automatically but it turns out not to be the case.
    
    Github-Pull: #20489
    Rebased-From: fa18e7cbc5ea6aaba94dca4ebdc850c9db141f89
    e7b53d4721
  36. Adjusted msvc compiler and linker settings to remove optimisations that are causing sporadic ABI issues on Visual Studio updates.
    Tidied up debug and release configuration blocks in common project file to avoid duplication.
    
    Updated appveyor config to use latest Visual Studio 2019 image.
    
    Changed appveyor config file hash to use a new version of Qt pre-compiled binaries built for Visual Studio 2019 v16.8.1.
    
    Bumped vcpkg version to tag '2020.11-1' for binary caching feature.
    
    See #20392 for related discussion.
    
    Github-Pull: #20506
    Rebased-From: 8b99e609e7da5dd3601e9214d8f869e96108fffe
    249d61a382
  37. Removed redundant git pull from appveyor config.
    Github-Pull: #20506
    Rebased-From: 2c69381f3de5091e103cb8bef299aba321503e7c
    85dabd1249
  38. doc: Add warnings for http interfaces limitations
    Github-Pull: #19050
    Rebased-From: 5c3eaf9983043db1b61a98c95d692a6958670b86
    e4440eb67b
  39. doc: warn that incoming conns are unlikely when not using default ports
    Github-Pull: #20668
    Rebased-From: 010eed3ce03cf4fc622a48f40fc4d589383f7a44
    84e8d5467f
  40. doc: update tor.md address examples from onion v2 to v3
    Github-Pull: #19961
    Rebased-From: e1765d8b04fe1fb775f3750e0fa59f13a58eb176
    0c1fa78af1
  41. doc: add tor.md section on how to get tor info via bitcoind
    Github-Pull: #19961
    Rebased-From: dc8a591222f249da81c7eef8aa5961f8d7dd1e23
    2c8482d0a2
  42. doc: update -externalip documentation in tor.md
    Github-Pull: #19961
    Rebased-From: a34eceb4cc054b4233e7321de927e8a7a2146301
    e70ccb0bc4
  43. Add patch to make codesign_allocate compatible with Apple's
    Github-Pull: #20644
    Rebased-From: a4118c6e200e02e7560f8bc213697aa2909d95b1
    35a10e4ebc
  44. qt: Align layout of checkboxes
    Github-Pull: bitcoin-core/gui#155
    Rebased-From: e71b656f317f38ef0ba0874736f116dae39efc67
    ef7a155cf0
  45. rpc: Add missing description of vout in getrawtransaction help text
    Github-Pull: #20731
    Rebased-From: b23349b8804fb60c6b3d7d0e2a95927a0d1b49b9
    1fda7db64f
  46. [doc] Add permissions to the getpeerinfo help.
    This field was already being returned, but the RPCHelpMan did not indicate
    this. So, this PR updates the help text to match.
    
    Github-Pull: #20756
    Rebased-From: 667d203687708390bc0f43f2dd3f4ab427b88338
    b1c0f97483
  47. Merge #20669: [0.21] final rc4 backports
    b1c0f97483f01f8836e5d83e98c881e44018cde5 [doc] Add permissions to the getpeerinfo help. (Amiti Uttarwar)
    1fda7db64f0f30c23724f6db14f8a49d3975c716 rpc: Add missing description of vout in getrawtransaction help text (Ben Carman)
    ef7a155cf06bf54fff4ff9fda9b28207fcc9adfb qt: Align layout of checkboxes (Hennadii Stepanov)
    35a10e4ebc9da916c470d2a9e5b68c3cfc3efd02 Add patch to make codesign_allocate compatible with Apple's (Pieter Wuille)
    e70ccb0bc4b695cd331aeda6d7aa405fa6d8f2e7 doc: update -externalip documentation in tor.md (Jon Atack)
    2c8482d0a279d07a814eaaae231c90d3d2058e55 doc: add tor.md section on how to get tor info via bitcoind (Jon Atack)
    0c1fa78af1c413c848359df76f4d55f819b9fad5 doc: update tor.md address examples from onion v2 to v3 (Jon Atack)
    84e8d5467fcec3b7c8ce950cd7a3e7e7b24452a3 doc: warn that incoming conns are unlikely when not using default ports (Adam Jonas)
    e4440eb67b339fdacb2c1476f8f909a009c6a47f doc: Add warnings for http interfaces limitations (Fabian Jahr)
    85dabd12494a0d82a8f5883cee1c1ff29fb81b27 Removed redundant git pull from appveyor config. (Aaron Clauson)
    249d61a382014c15025fe63025ac5f46d4721262 Adjusted msvc compiler and linker settings to remove optimisations that are causing sporadic ABI issues on Visual Studio updates. (Aaron Clauson)
    e7b53d47218301790bfec44d50219561502922ad This change to the appveyor CI config for msvc builds reverses a change introduced in #19960. It re-applies a setting to inform vcpkg to only build release vesions of the dependencies rather than the default of debug and release. (Aaron Clauson)
    8273ea3b8db1449b65cf369e541a1253c4490f45 Move signet onion seed from v2 to v3 (Sjors Provoost)
    
    Pull request description:
    
      The remaining backports to get rc4 out. Currently only waiting on the macOS build fix.
    
    ACKs for top commit:
      benthecarman:
        ACK b1c0f97483f01f8836e5d83e98c881e44018cde5
      Sjors:
        ACK b1c0f97
    
    Tree-SHA512: 53eaecd531ba461678917cb630d67f1e6bb737d64022abe971eaced6eca366c9ed593e44276bd9c7ad7b3aebe3850d2d29282eb310e10b547986d10fe77a8482
    ac125e960f
  48. qt: Pre-rc4 translations update
    Tree-SHA512: 14259d2f469ea588f364f64fdd89b90cbcde8f66ddc011d96d656a06920584c0577e64fa15a41a1dc1c8c8a98a1f955748c61def6807b1bb71b0113bb28268f2
    93ce429f0e
  49. build: Bump RC to rc4
    Tree-SHA512: f22375573f1737d64b62351cdec58f0f3e17d9f21b044430f366cbf272514369b73f24cc34e499e2637f0a0fa57ce5b925dd2df8ba0265b1b9c37beb7c8b8e22
    212525337e
  50. doc: Generate manual pages for 0.21.0rc4
    Tree-SHA512: c2ff50dbb54c42db9d56f1fcb0d8a2ce9c89089254f1a6b6f2aa98959f47699cd72c7771b53490232938b45d9bb030ce7fe08707c62190e68ada0ddbd8b6e13a
    e6ad8a6220
  51. Revert "Add patch to make codesign_allocate compatible with Apple's"
    This reverts commit a4118c6e200e02e7560f8bc213697aa2909d95b1.
    
    Github-Pull: #20855
    Rebased-From: a0eb4c551ebf8adfacb8c38c4ce56641fe379667
    3308718a6b
  52. Merge #20850: [0.21] final rc5 backports
    3308718a6b41f09e9dd3c7caa9986cd6cb8f2eeb Revert "Add patch to make codesign_allocate compatible with Apple's" (Pieter Wuille)
    
    Pull request description:
    
    ACKs for top commit:
      jonasschnelli:
        ACK 3308718a6b41f09e9dd3c7caa9986cd6cb8f2eeb
      fanquake:
        ACK 3308718a6b41f09e9dd3c7caa9986cd6cb8f2eeb
    
    Tree-SHA512: 2a1002499e6f0da6e9ac7ae393e478bd34e55390ff1a41c5b16b4e91e339fef4b82642237af6725507337cadf9ddc1f2f23b2512d8dd47e5a345770c6c0d1b02
    6e28714da3
  53. build: Bump RC to rc5
    Tree-SHA512: ed01a7a66e5d064c77c948b87afce832b33852005ec1dc556bf4fcc69fa3743aaa6dea4c03a5d2d520682d8de9c7596f1eec3db326caf754726d1ca4aab2cec3
    4e7b4ce7eb
  54. qt: Pre-rc5 translations update
    Tree-SHA512: f6986d00a9565ee7fbf8dd2766dca9c90af931e2dc2fdc0faf5734a2e9be1a0e0774031a20207aa2afa645f1d6229aac9751c84ada324a8dcb463497fb9f237f
    15877d160c
  55. net: allow CSubNet of non-IP networks
    Allow creation of valid `CSubNet` objects of non-IP networks and only
    match the single address they were created from (like /32 for IPv4 or
    /128 for IPv6).
    
    This fixes a deficiency in `CConnman::DisconnectNode(const CNetAddr& addr)`
    and in `BanMan` which assume that creating a subnet from any address
    using the `CSubNet(CNetAddr)` constructor would later match that address
    only. Before this change a non-IP subnet would be invalid and would not
    match any address.
    
    Github-Pull: #20852
    Rebased-From: 94d335da7f8232bc653c9b08b0a33b517b4c98ad
    c33fbab25c
  56. test: add test for banning of non-IP addresses
    Co-authored-by: Jon Atack <jon@atack.com>
    
    Github-Pull: #20852
    Rebased-From: 39b43298d9c54f9c18bef36f3d5934f57aefd088
    bdce029191
  57. Bugfix: GUI: Restore SendConfirmationDialog button default to "Yes"
    The SendConfirmationDialog is used for bumping the fee, where "Send" doesn't really make sense
    
    Github-Pull: #bitcoin-core/gui#148
    Rebased-From: 8775691383ff394b998232ac8e63fac3a214d18b
    7bf3ed495b
  58. doc: Move 0.21.0 release notes from wiki 66e6742a27
  59. Merge #20929: doc: Move 0.21.0 release notes from wiki
    66e6742a273796e9bdab37b4ad9e05cf18a99981 doc: Move 0.21.0 release notes from wiki (Wladimir J. van der Laan)
    
    Pull request description:
    
      These were the contents of https://github.com/bitcoin-core/bitcoin-devwiki/wiki/0.21.0-Release-Notes-Draft, minus the paragraph about gauging how fast taproot can be deployed.
    
    Top commit has no ACKs.
    
    Tree-SHA512: d7bb61a76d87cb9d9e43602bf81b51ea463e3a098748e42440950d08e6f6e84bf6c02b07b297ac959f979aa72682775dd2ae2be6d30b22977ed60ed454b9c66d
    91f0632464
  60. build: Bump RC to 0 (-final)
    Tree-SHA512: 1a626b9bb7fb04ece4acb24ffcfed178cc5128d16af6860ed37097b6ed36be8b33797bd70a6da0364cd6a9246ebc02fbb83f9523abf5f8dc3c7a524a58416a8f
    95ea54ba08
  61. doc: Archive release notes, Add template for minor release b6d3502993
  62. Merge #20933: [0.21] doc: Archive release notes, Add template for minor release
    b6d35029932ef245e040723dc924be2db4928666 doc: Archive release notes, Add template for minor release (MarcoFalke)
    
    Pull request description:
    
      Same as #20931, but also clearing the template
    
    ACKs for top commit:
      laanwj:
        ACK b6d35029932ef245e040723dc924be2db4928666
    
    Tree-SHA512: 929d2f774904b58d62dd60d4dcf8447f7e40d959596f3f97462076627d89549ad39dc39c56456f4c8861353cfdf6633abca0be3e84a783f174be1ee1b8d213a4
    7d8a10a6f4
  63. qt: Use layout manager for Create Wallet dialog
    Github-Pull: bitcoin-core/gui#171
    Rebased-From: d4feb6812a2707ef85d75dda4372086ec62eb922
    0dba346a56
  64. qt: Add TransactionOverviewWidget class
    Github-Pull: bitcoin-core/gui#176
    Rebased-From: d43992140679fb9a5ebc7850923679033f9837f3
    b7086e69ff
  65. qt: Fix TxViewDelegate layout
    This change (1) prevents overlapping date and amount strings,
    and (2) guaranties that "eye" sign at the end of the watch-only
    address/label is always visible.
    
    Github-Pull: bitcoin-core/gui#176
    Rebased-From: f0d04795e23606399414d074d78efe5aa0da7259
    7bc4498234
  66. qt: Stop the effect of hidden widgets on the size of QStackedWidget
    Layouts of the hidden widgets, those are children of QStackedWidget,
    could prevent to adjust the size of the parent widget in the
    WalletFrame widget.
    
    Github-Pull: bitcoin-core/gui#176
    Rebased-From: af58f5b12cea91467692dd4ae71d8cc916a608ed
    bdc64c9030
  67. Fix MSVC build after gui#176
    Github-Pull: #20983
    Rebased-From: c5354e4641d8a92807e4183894d4bb32241e4b5b
    a98f211940
  68. raise helpMessageDialog
    Github-Pull: bitcoin-core/gui#167
    Rebased-From: 77114462f2328914b7a918f40776e522a0898e56
    e2ebc8567a
  69. qt: Use "fusion" style on macOS Big Sur with old Qt
    The "macintosh" style is broken on macOS Big Sur at least for Qt 5.9.8.
    
    Github-Pull: #bitcoin-core/gui#177
    Rebased-From: 4e1154dfd128cbada65e9ea08ee274cdeafc4c53
    6dc58e9945
  70. fix the unreachable code at feature_taproot
    Github-Pull: #21081
    Rebased-From: 5e0cd25e29541e6c19559fb5c2555e008ed896fa
    4607019798
  71. net: Avoid UBSan warning in ProcessMessage(...)
    Github-Pull: #21043
    Rebased-From: f5f2f9716885e7548809e77f46b493c896a019bf
    95218ee95c
  72. util: Disallow negative mocktime
    Signed-off-by: practicalswift <practicalswift@users.noreply.github.com>
    
    Github-Pull: #21043
    Rebased-From: 3ddbf22ed179a2db733af4b521bec5d2b13ebf4b
    08dada8456
  73. Disallow sendtoaddress and sendmany when private keys disabled
    Github-Pull: #21201
    Rebased-From: 0997019e7681efb00847a7246c15ac8f235128d8
    d6b5eb5fcc
  74. test: disallow sendtoaddress/sendmany when private keys disabled
    Github-Pull: #21201
    Rebased-From: 6bfbc97d716faad38c87603ac6049d222236d623
    4ef1e4bd40
  75. tests: Test that a fully signed tx given to signrawtx is unchanged
    Tests that a fully signed transaction given to
    signrawtransactionwithwallet is both unchanged and marked as complete.
    This tests for a regression in 0.20 where the transaction would not be
    marked as complete.
    
    Github-Pull: #20562
    Rebased-From: 773c42b265fb2212b5cb8785b7226a206d063543
    36ecf5eb87
  76. GUI: Write PSBTs to file with binary mode
    Github-Pull: #bitcoin-core/gui#188
    Rebased-From: cc3971c9ff538a924c1a76ca1352bcaeb24f579f
    3a12672419
  77. tests: Add fuzzing harness for versionbits
    Github-Pull: #21380
    Rebased-From: 1639c3b76c3f2b74606f62ecd3ca725154e27f1b
    e775b0a6dd
  78. Update vcpkg checkout commit.
    Previously vcpkg was relying on https://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-0.29.2-1-any.pkg.tar.xz which is no longer available. The vcpkg source has been updated to use http://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-0.29.2-2-any.pkg.tar.zst. This PR updates the commit ID used to checkout vcpkg for the updated URL.
    
    Github-Pull: #21446
    Rebased-From: b9e3f3530611d5fbb799a401b839ee23e3eba835
    b35711efde
  79. doc: add signet to share/examples/bitcoin.conf
    Github-Pull: #21384
    Rebased-From: 21b6a233734da1601846a16a741b108522901782
    58975d5c0a
  80. doc: add signet to doc/bitcoin-conf.md
    Github-Pull: #21384
    Rebased-From: 4a285107c11edde2cfc8adfa831c5448c93798d3
    6746cd078b
  81. fuzz: Update FuzzedDataProvider.h from upstream (LLVM)
    Upstream revision: https://github.com/llvm/llvm-project/blob/6d0488f75bb2f37bcfe93fc8f59f6e78c9a0c939/compiler-rt/include/fuzzer/FuzzedDataProvider.h
    
    Changes:
    * [compiler-rt] FuzzedDataProvider: add ConsumeData and method.
    * [compiler-rt] Fix a typo in a comment in FuzzedDataProvider.h.
    * [compiler-rt] Add ConsumeRandomLengthString() version without arguments.
    * [compiler-rt] Refactor FuzzedDataProvider for better readability.
    * [compiler-rt] FuzzedDataProvider: make linter happy.
    * [compiler-rt] Mark FDP non-template methods inline to avoid ODR violations.
    
    Github-Pull: #20740
    Rebased-From: e3d2ba7c70b13a2165020e45abf02373a1e953f7
    a48c9d3161
  82. fuzz: Bump FuzzedDataProvider.h
    Latest version from https://raw.githubusercontent.com/llvm/llvm-project/70de7e0d9a95b7fcd7c105b06bd90fdf4e01f563/compiler-rt/include/fuzzer/FuzzedDataProvider.h
    
    Github-Pull: #20812
    Rebased-From: fafce49336e18033b26948886bbd7342c779b246
    14e3f2a1c9
  83. fuzz: Bump FuzzedDataProvider.h
    Latest version from https://github.com/llvm/llvm-project/blob/0cccccf0d2cbd707503263785f9a0407d3e2bd5e/compiler-rt/include/fuzzer/FuzzedDataProvider.h
    
    Github-Pull: #21397
    Rebased-From: fa7dc7ae9595ea49a2b31a3baef9af674d8def60
    8426e3a8a1
  84. doc: Remove outdated comment
    The removed commit is wrong since v0.21.0.
    
    Github-Pull: #21342
    Rebased-From: f1f63ac3f833e14badac6edf88ed09d0161e18f7
    5a2d98c640
  85. Merge #21490: [0.21] Backport versionbits tests
    e775b0a6dd8358df0e8921739faf15942027239e tests: Add fuzzing harness for versionbits (Anthony Towns)
    0c471a5f306044cbd2eb230714571f05dd6aaf3c tests: check never active versionbits (Anthony Towns)
    3ba9283a47ac358168db9db7840ae559f443486c tests: more helpful errors for failing versionbits tests (Anthony Towns)
    
    Pull request description:
    
      Backport of unit test (#21334) and fuzz test (#21380) changes for versionbits.
    
    Top commit has no ACKs.
    
    Tree-SHA512: b68b570e48e0076bb2ade3b91c59612029235d2c9e39048d548aa141fa0906343fa492e9a981065fbdbbebecbbb3dcbaf39ec69228c7581178fcca567e8201b8
    1bad33f952
  86. Merge #20901: [0.21.1]: rc1 Backports
    5a2d98c640cf308d3c7e85ba51fbb7e84f99322a doc: Remove outdated comment (Hennadii Stepanov)
    8426e3a8a1aad2e1ea794158ffb9a587f476d8d3 fuzz: Bump FuzzedDataProvider.h (MarcoFalke)
    14e3f2a1c916fccf375a6570e58072c4d007fc3c fuzz: Bump FuzzedDataProvider.h (MarcoFalke)
    a48c9d31610cab3ddd4f7334e83db5cf4f184df1 fuzz: Update FuzzedDataProvider.h from upstream (LLVM) (practicalswift)
    6746cd078be8a15c69f8f5ba5253b1768d0acf21 doc: add signet to doc/bitcoin-conf.md (Jon Atack)
    58975d5c0abeab8cb66f6006ee558d4bb7cc12b5 doc: add signet to share/examples/bitcoin.conf (Jon Atack)
    b35711efdebc4e95906b1e809e711bc707852f2d Update vcpkg checkout commit. (Aaron Clauson)
    3a126724195fcf00d84e852a9247475fccd14f38 GUI: Write PSBTs to file with binary mode (Andrew Chow)
    36ecf5eb8752890fdffd617c9fedb08033607f99 tests: Test that a fully signed tx given to signrawtx is unchanged (Andrew Chow)
    4ef1e4bd407ccf80b2a1d40e946e2ac832e624e5 test: disallow sendtoaddress/sendmany when private keys disabled (Jon Atack)
    d6b5eb5fcc8e8f7f0ab778f32d49aabf6e04d80d Disallow sendtoaddress and sendmany when private keys disabled (Andrew Chow)
    08dada84565ea5f49127123e356c82a150626f3c util: Disallow negative mocktime (MarcoFalke)
    95218ee95cdb4046ee7d622eac822e74d94314c7 net: Avoid UBSan warning in ProcessMessage(...) (practicalswift)
    4607019798c543f046bcd22d5b7c09750e7e0ee2 fix the unreachable code at feature_taproot (Bruno Garcia)
    6dc58e99457fe4609fa3c401e89f98c92dbd9878 qt: Use "fusion" style on macOS Big Sur with old Qt (Hennadii Stepanov)
    e2ebc8567a96e92d1c039b2e7c5f48826fece810 raise helpMessageDialog (randymcmillan)
    a98f211940dc6eaed8050263efad7656126b7b3e Fix MSVC build after gui#176 (Hennadii Stepanov)
    bdc64c9030488e7a6b88f369fb876c0b21c04a25 qt: Stop the effect of hidden widgets on the size of QStackedWidget (Hennadii Stepanov)
    7bc4498234e16bc75975555cbe7855384489782f qt: Fix TxViewDelegate layout (Hennadii Stepanov)
    b7086e69ff3825c3f3bfde4ca9af90663a4575dd qt: Add TransactionOverviewWidget class (Hennadii Stepanov)
    0dba346a568882434098dd08566978e23eb4a516 qt: Use layout manager for Create Wallet dialog (Hennadii Stepanov)
    7bf3ed495b96f0959d5c45c6e1936d8628dec730 Bugfix: GUI: Restore SendConfirmationDialog button default to "Yes" (Luke Dashjr)
    bdce029191ab094a4a325b143324487f1c62ba7c test: add test for banning of non-IP addresses (Vasil Dimov)
    c33fbab25c82b6a18773b80e8b355c987066ae5a net: allow CSubNet of non-IP networks (Vasil Dimov)
    
    Pull request description:
    
      Current backports for *0.21.1*.
    
      One conflict was in the test case.
    
    ACKs for top commit:
      ajtowns:
        ACK 5a2d98c640cf308d3c7e85ba51fbb7e84f99322a -- checked 'rebased-from' patches are in master, and rebased patches are clean rebases (except for the first one which changes `""s` to `std::string("")` to avoid c++17 dependency). commits seem fine, but haven't reviewed in detail.
      fanquake:
        ACK 5a2d98c640cf308d3c7e85ba51fbb7e84f99322a - branched off `0.21` and redid the backports. Minor conflict in c33fbab25c82b6a18773b80e8b355c987066ae5a. The diff between my branch and #20901 was just in release notes, `_CLIENT_VERSION_RC` (#20901 branched before 95ea54ba089610019a74c1176a2c7c0dba144b1c) and #21490 which has already been merged into `0.21`.
    
    Tree-SHA512: 75d16d3cf9066a45759758b8185dc3b9dad6a6102c2ac9921f758a310e48d5d3122f0dafa515df42475235fc66a42cc04dd156ee1e61c86a1238bd11707642ea
    a30fd40735
  87. wallet: Use existing feerate instead of getting a new one
    During each loop of CreateTransaction, instead of constantly getting a
    new feerate, use the feerate that we have already fetched for all
    fee calculations. Thix fixes a race condition where the feerate required
    changes during each iteration of the loop.
    
    This commit changes behavior as the "Fee estimation failed" error will
    now take priority over "Signing transaction failed".
    
    Github-Pull: #21083
    Rebased-From: 1a6a0b0dfb90f9ebd4b86d7934c6aa5594974f5f
    48fc675163
  88. wallet: Replace nFeeRateNeeded with effective_fee
    Make sure that all fee calculations use the same feerate.
    coin_selection_params.effective_fee is the variable we use for all fee
    calculations, so get rid of remaining nFeeRateNeeded usages and just
    directly set coin_selection_params.effective_fee.
    
    Does not change behavior.
    
    Github-Pull: #21083
    Rebased-From: e2f429e6bbf7098f278c0247b954ecd3ba53cf37
    34c89f92f3
  89. wallet: Move long term feerate setting to CreateTransaction
    Instead of setting the long term feerate for each SelectCoinsMinConf
    iteration, set it once during CreateTransaction and let it be shared
    with each SelectCoinsMinConf through
    coin_selection_params.m_long_term_feerate.
    
    Does not change behavior.
    
    Github-Pull: #21083
    Rebased-From: 448d04b931f86941903e855f831249ff5ec77485
    bcd716670b
  90. wallet: Move discard feerate fetching to CreateTransaction
    Instead of fetching the discard feerate for each SelectCoinsMinConf
    iteration, fetch and cache it once during CreateTransaction so that it
    is shared for each SelectCoinsMinConf through
    coin_selection_params.m_discard_feerate.
    
    Does not change behavior.
    
    Github-Pull: #21083
    Rebased-From: bdd0c2934b7f389ffcfae3b602ee3ecee8581acd
    5fc381e443
  91. Implement Bech32m encoding/decoding
    Github-Pull: #20861
    Rebased-From: da2bb6976dadeec682d163c258c9afecc87d6428
    1485533092
  92. Add Bech32m test vectors
    Github-Pull: #20861
    Rebased-From: 25b1c6e13ddf1626210d5e3d37298d1f3a78a94f
    8944aaa6d6
  93. Use Bech32m encoding for v1+ segwit addresses
    This also includes updates to the Python test framework implementation,
    test vectors, and release notes.
    
    Github-Pull: #20861
    Rebased-From: fe5e495c31de47b0ec732b943db11fe345d874af
    593e206627
  94. Add signet support to gen_key_io_test_vectors.py
    Github-Pull: #20861
    Rebased-From: 2e7c80fb5be82ad4a3f737cab65b31f70a772a23
    7dfe406e20
  95. naming nits
    Github-Pull: #20861
    Rebased-From: 03346022d611871f2cc185440b19d928b9264d9d
    1e9671116f
  96. Backport invalid address tests
    Reduced version of the test from master/#20861 by John Newbery.
    
    Github-Pull: #20861
    Rebased-From: fe5e495c31de47b0ec732b943db11fe345d874af
    f2195d7c4a
  97. Merge #21469: BIP 350: Implement Bech32m and use it for v1+ segwit addresses (0.21 backport)
    f2195d7c4aa45f5168ec55b14406aeaf970adcb1 Backport invalid address tests (Pieter Wuille)
    1e9671116fc5805baa0442bd8fd1c88f2307fef0 naming nits (Fabian Jahr)
    7dfe406e2023c9db7d9cc2e98484423adfbc8963 Add signet support to gen_key_io_test_vectors.py (Pieter Wuille)
    593e206627f4fb789de70f55017f71b85d10754d Use Bech32m encoding for v1+ segwit addresses (Pieter Wuille)
    8944aaa6d6ce55faa6224e288fe0a14dbbf5ca4f Add Bech32m test vectors (Pieter Wuille)
    1485533092a0732bae55313659a3e3f9669fd77a Implement Bech32m encoding/decoding (Pieter Wuille)
    
    Pull request description:
    
      Backport of #20861. Also includes #21471.
    
    ACKs for top commit:
      jnewbery:
        utACK f2195d7c4aa45f5168ec55b14406aeaf970adcb1
      MarcoFalke:
        cherry-pick re-ACK f2195d7c4aa45f5168ec55b14406aeaf970adcb1 , only change is version number in doc/bips and new test commit ๐Ÿ
      fanquake:
        ACK f2195d7c4aa45f5168ec55b14406aeaf970adcb1 - performed the backport, changes look sane. Have not tested extensively.
    
    Tree-SHA512: 7dc043e44d7cda07d73331a7b49666b9db98c99f2635dab0cfeb45422dbfbe75a7b44d0aff85ef6369d412d8a5041ed0826c86ffdfc13c5fbff74adfe4d91c1a
    65fa43bda1
  98. Rename CoinSelectionParams::effective_fee to m_effective_feerate
    It's a feerate, not a fee. Also follow the style guide for member names.
    
    Github-Pull: #21083
    Rebased-From: f9cd2bfbccb7a2b8ff07cec5f6d2adbeca5f07c3
    d61fb07da7
  99. rand: only try and use freeifaddrs if available
    Github-Pull: #21486
    Rebased-From: 87deac66aa747481e6f34fc80599e1e490de3ea0
    e99d6d0c7c
  100. build: check if -lsocket is required with *ifaddrs
    Github-Pull: #21486
    Rebased-From: 879215e665a9f348c8d3fa92701c34065bc86a69
    f6896dfde7
  101. net: add ifaddrs.h include
    Github-Pull: #21486
    Rebased-From: 4783115fd4cccb46a7f8c592b34fa7c094c29410
    1a9a2cb7dc
  102. Merge #21616: [0.21] build: link against -lsocket if required for *ifaddrs
    1a9a2cb7dcc60781a3cbca3a7846ff153143260c net: add ifaddrs.h include (fanquake)
    f6896dfde73bb37f4f0f0f9bfe9855d4fe9e9fe5 build: check if -lsocket is required with *ifaddrs (fanquake)
    e99d6d0c7cbdbb23f966e50c045bbd525ba8daf0 rand: only try and use freeifaddrs if available (fanquake)
    
    Pull request description:
    
      Backports #21486 to the 0.21 branch. Related to #21485.
    
    ACKs for top commit:
      MarcoFalke:
        cherry-pick-only ACK 1a9a2cb7dcc60781a3cbca3a7846ff153143260c did not test or review ๐Ÿšถ
    
    Tree-SHA512: 400dcf0f0bffa9b2c820403936b894969113a2bd82a32ae29d3fb73c4ef9ffafb55f5325fcc4929f6e685f8932be6f566f5dd2163ecf8a64b154b0c401109311
    0b9a046c1a
  103. Introduce DeferringSignatureChecker and inherit with SignatureExtractor
    Introduces a DeferringSignatureChecker which simply takes a
    BaseSignatureChecker and passes through everything.
    SignatureExtractorChecker now subclasses DeferringSignatureChecker. This
    allows for all BaseSignatureChecker functions to be implemented for
    SignatureExtractorChecker, while allowing for future signature checkers
    which opreate similarly to SignatureExtractorChecker.
    
    Github-Pull: #21166
    Rebased-From: 6965456c10c9c4025c71c5e24fa5b27b15e5933a
    7de019bc61
  104. Test that signrawtx works when a signed CSV and CLTV inputs are present
    Github-Pull: #21166
    Rebased-From: a97a9298cea085858e1a65a5e9b20d7a9e0f7303
    f79189ca54
  105. Merge #21640: [0.21] Introduce DeferredSignatureChecker and have SignatureExtractorClass subclass it
    f79189ca54524881d52b91679eb9035d6718ce01 Test that signrawtx works when a signed CSV and CLTV inputs are present (Andrew Chow)
    7de019bc619b0b2433bfb553feba5f6dc58c8db8 Introduce DeferringSignatureChecker and inherit with SignatureExtractor (Andrew Chow)
    
    Pull request description:
    
      Backport of #21166
    
    ACKs for top commit:
      MarcoFalke:
        checked this is a clean cherry-pick did not review ACK f79189ca54524881d52b91679eb9035d6718ce01 ๐Ÿ–
      instagibbs:
        ACK https://github.com/bitcoin/bitcoin/pull/21640/commits/f79189ca54524881d52b91679eb9035d6718ce01
    
    Tree-SHA512: 51e945c9b353713423d3886c557066c66a6517d2300523832e5a5471ab91a8943385096d9bf5b46910477cb4c47470431690cf3da09b9f6956fe030f13ddff51
    e358b43f7d
  106. tests: pull ComputeBlockVersion test into its own function
    The intent here is to allow checking ComputeBlockVersion behaviour with
    each deployment, rather than only testdummy on mainnet. This commit does
    the trivial refactoring component of that change.
    
    Github-Pull: #21377
    Rebased-From: 63879f0a4760c0c0f784029849cb5d21ee088abb
    2e9e7f4329
  107. tests: test ComputeBlockVersion for all deployments
    This generalises the ComputeBlockVersion test so that it can apply to
    any activation parameters we might set, and checks all the parameters
    set for each deployment on each chain, to simultaneously ensure that the
    deployments we have configured work sensibly, and that the test code
    does not suffer bitrot in the event that all interesting deployments
    are buried.
    
    Github-Pull: #21377
    Rebased-From: 593274445004506c921d5d851361aefb3434d744
    1c0164544c
  108. tests: clean up versionbits test
    Simplify the versionbits unit test slightly to make the next set of
    changes a little easier to follow.
    
    Github-Pull: #21377
    Rebased-From: 9e6b65f6fa205eee5c3b99343988adcb8d320460
    f9517e6014
  109. versionbits: Add support for delayed activation
    Github-Pull: #21377
    Rebased-From: 73d4a706393e6dbd6b6d6b6428f8d3233ac0a2d8
    4cab84cfdf
  110. tests: test versionbits delayed activation
    Github-Pull: #21377
    Rebased-From: dd85d5411c1702c8ae259610fe55050ba212e21e
    71917e01eb
  111. fuzz: test versionbits delayed activation
    Github-Pull: #21377
    Rebased-From: dd07e6da48040dc7eae46bc7941db48d98a669fd
    b529222ad1
  112. versionbits: Add explicit NEVER_ACTIVE deployments
    Previously we used deployments that would timeout prior to Bitcoin's
    invention, which allowed the deployment to still be activated in unit
    tests. This switches those deployments to be truly never active.
    
    Github-Pull: #21377
    Rebased-From: 55ac5f568a3b73d6f1ef4654617fb76e8bcbccdf
    3acf0379e0
  113. versionbits: simplify state transitions
    This removes the DEFINED->FAILED transition and changes the
    STARTED->FAILED transition to only occur if signalling didn't pass the
    threshold. This ensures that it is always possible for activation to
    occur, no matter what settings are chosen, or the speed at which blocks
    are found.
    
    Github-Pull: #21377
    Rebased-From: f054f6bcd2c2ce5fea84cf8681013f85a444e7ea
    600357306e
  114. chainparams: drop versionbits threshold to 90% for mainnnet and signet
    Github-Pull: #21377
    Rebased-From: ffe33dfbd4c3b11e3475b022b6c1dd077613de79
    ec7824396b
  115. Add mainnet and testnet taproot activation params
    Github-Pull: #21686
    Rebased-From: f979b3237f1cfc28f9c4ccb07beab558d5357a55
    cbd64c3a28
  116. Merge #21520: [0.21] wallet: Avoid requesting fee rates multiple times during coin selection
    d61fb07da7c12e4a1f68cf645f32d563a657a506 Rename CoinSelectionParams::effective_fee to m_effective_feerate (Andrew Chow)
    5fc381e443d6d967e6f7f8bc88a4fd66e18379eb wallet: Move discard feerate fetching to CreateTransaction (Andrew Chow)
    bcd716670ba8a189a2e9b8b035318abceb9ce631 wallet: Move long term feerate setting to CreateTransaction (Andrew Chow)
    34c89f92f34b5ca12da95d5f0b0240682c5a1c1f wallet: Replace nFeeRateNeeded with effective_fee (Andrew Chow)
    48fc675163a657e615fd4b2680fc3accba12f95d wallet: Use existing feerate instead of getting a new one (Andrew Chow)
    
    Pull request description:
    
      Backport of #21083
    
    ACKs for top commit:
      MarcoFalke:
        cherry-pick-only re-ACK d61fb07da7c12e4a1f68cf645f32d563a657a506 ๐Ÿ”™
      instagibbs:
        utACK https://github.com/bitcoin/bitcoin/pull/21520/commits/d61fb07da7c12e4a1f68cf645f32d563a657a506
    
    Tree-SHA512: 23b212301bb467153dd9723903918ae01dd520525c81d541c411e7a4381e46594fe032e2a7c06ddcff7dc56dcb546991d50187c33fcff08ec45bd835cc01bd19
    0fe5b6130c
  117. Merge #21701: [0.21] Speedy trial activation for Taproot
    cbd64c3a28a7466f421477daadc6e6e6b69b898a Add mainnet and testnet taproot activation params (Andrew Chow)
    ec7824396bdd2e93b429ddce9fea6bb29695454a chainparams: drop versionbits threshold to 90% for mainnnet and signet (Anthony Towns)
    600357306e2e182a457174862ea2e41c7ba39c64 versionbits: simplify state transitions (Anthony Towns)
    3acf0379e0979ea4bdd03976f4987aa6711eb92f versionbits: Add explicit NEVER_ACTIVE deployments (Anthony Towns)
    b529222ad18f7facbaff394455875b4aa65d653e fuzz: test versionbits delayed activation (Anthony Towns)
    71917e01ebf48790b9df48421d8e97986f92e2e4 tests: test versionbits delayed activation (Anthony Towns)
    4cab84cfdfc98cd10462681b5eb0fbbc08afd2a7 versionbits: Add support for delayed activation (Anthony Towns)
    f9517e6014ccfe91d5a77e2bacca928bdce7c285 tests: clean up versionbits test (Anthony Towns)
    1c0164544c66b691f93b3b1114eee97cbabd99b2 tests: test ComputeBlockVersion for all deployments (Anthony Towns)
    2e9e7f4329fc313adf9ba2394edbaf2a69b59bc1 tests: pull ComputeBlockVersion test into its own function (Anthony Towns)
    
    Pull request description:
    
      Backport of #21377 and #21686
    
    ACKs for top commit:
      instagibbs:
        cherry-pick ACK https://github.com/bitcoin/bitcoin/pull/21701/commits/cbd64c3a28a7466f421477daadc6e6e6b69b898a
      jnewbery:
        ACK cbd64c3a28a7466f421477daadc6e6e6b69b898a
      Sjors:
        tACK cbd64c3
      MarcoFalke:
        cherry-pick-only ACK cbd64c3a28a7466f421477daadc6e6e6b69b898a ๐ŸŒพ
    
    Tree-SHA512: e9efb0ca9986d685161bcba5ed43efdc5f1dca88322cf65faccf17009b567c2d930c2aba4d1541539fc65347574ed4faa3d4558b907c779d1c128b3d2c681f31
    e3b76b6c13
  118. test: use pointers in denialofservice_tests/peer_discouragement
    This is a non-functional change that replaces the `CNode` on-stack
    variables with `CNode` pointers.
    
    The reason for this is that it would allow us to add those `CNode`s
    to `CConnman::vNodes[]` which in turn would allow us to check that they
    are disconnected properly - a `CNode` object must be in
    `CConnman::vNodes[]` in order for its `fDisconnect` flag to be set.
    
    If we store pointers to the on-stack variables in `CConnman` then it
    would crash at the end, trying to `delete` them.
    
    Github-Pull: #21571
    Rebased-From: 4d6e246fa46f2309e2998b542e4c104d73d29071
    dfeb6c10bb
  119. test: also check disconnect in denialofservice_tests/peer_discouragement
    Use `CConnmanTest` instead of `CConnman` and add the nodes to it
    so that their `fDisconnect` flag is set during disconnection.
    
    Github-Pull: #21571
    Rebased-From: 637bb6da368b87711005b909f451f94909400092
    b765f41164
  120. test: make sure non-IP peers get discouraged and disconnected
    Github-Pull: #21571
    Rebased-From: 81747b21719b3fa6b0fdfc3b084c0104d64903f9
    79cdb4a198
  121. fuzz: cleanups for versionbits fuzzer
    Github-Pull: #21489
    Rebased-From: aa7f418fe32b3ec53285693a7731decd99be4528
    b8af67eeef
  122. Merge #21614: [0.21] test: Backports
    b8af67eeefc9fc9622f839ec8919b7391d91bf6f fuzz: cleanups for versionbits fuzzer (Anthony Towns)
    79cdb4a1984c90a4d9377fbb0dda7bdd61d57031 test: make sure non-IP peers get discouraged and disconnected (Vasil Dimov)
    b765f41164663c93d63e5a401d3b23c586a4e4fe test: also check disconnect in denialofservice_tests/peer_discouragement (Vasil Dimov)
    dfeb6c10bba80dc91245318feb0ad1d879015a99 test: use pointers in denialofservice_tests/peer_discouragement (Vasil Dimov)
    
    Pull request description:
    
      Backport tests
    
    ACKs for top commit:
      vasild:
        ACK b8af67eeefc9fc9622f839ec8919b7391d91bf6f
      jnewbery:
        ACK b8af67eeefc9fc9622f839ec8919b7391d91bf6f
      ajtowns:
        ACK b8af67eeefc9fc9622f839ec8919b7391d91bf6f ; visually compared individual commits to originals, checked original commits are in master
    
    Tree-SHA512: 22f665560f9d452993b12508d93d93ff54e3e91dcf39f731e27aedfb891570168066c185413d455bee4fa082c011b65ea1b0eee51e3633392b07a0db008d51c8
    f8bbee425e
  123. gui: Pre-rc1 translations update
    Tree-SHA512: 6978293bda56b0cb1370f3ddf201477a2f12e0b8c9462d3f4703b837d9be4be65142a5e97c4a473fb9fa90edd83dba8a98ea3b0ecc335062868d1e6c550241b2
    ab20518191
  124. build: Bump version to 0.21.1rc1 e85dfdbf31
  125. doc: Regenerate manual pages for 0.21.1rc1
    Tree-SHA512: cc9cd502dc40d89f34b1b043e96df180f0e16ba7c6e039866b349d19aff582d1c4b4ab8e8960b4f427d72ad5f97c7c1e8fec3f2e008a0107dea33a2c8f13febc
    329eafa7f4
  126. doc: Add PR and author list to release notes for 0.21.1
    Tree-SHA512: c74b12dee645bd8d3dcff8d572a82369ea0895339d0d12e5360182421fa8cef4d3eba309ff7668e97dc24cd6afc800ab9ceb4eca5458085acf12c368f6c2f859
    5577e0a486
  127. doc: Merge release notes fragment, merge taproot description from wiki
    Co-authored-by: David A. Harding <dave@dtrt.org>
    Co-authored-by: Jon Atack <jon@atack.com>
    Co-authored-by: Pieter Wuille <pieter@wuille.net>
    
    Tree-SHA512: dd9ac416ff22276833111198445d76cf8417012a6faad0c3560276f1dcf24586ff41c65ac3430fbf1e840aaa563d3dd101671cff306b0fd92aa2ee03bb7f926b
    d97d0d31a6
  128. build: Bump RC to 0 (-final)
    Tree-SHA512: b63d8c2514fa34d4503da8a37fb42948e03610e06dae6aaef7ba3d2568efd3bb138e7510da569a49d83c2618fa697ba949d55880fc2884a75a87028259d7c544
    194b9b8792
  129. build,boost: update download url.
        - bintray is closing.
        - updated to jfrog.io.
    
    Github-Pull: #21662
    Rebased-From: 36c10b9f4b181db6afa2f8cb7d4872b158768c16
    856de5bd5e
  130. Merge bitcoin/bitcoin#21860: [0.21] Backport update to Boost download URL
    856de5bd5e4594d12c1d35704c49d0d086fc3d84 build,boost: update download url. (fdov)
    
    Pull request description:
    
      Backports #21662 to the 0.21 branch. Boost has migrated it's download URLs due to bintrays imminent closure. The Boost site has also been updated to point to the new URLs. i.e: https://www.boost.org/users/history/version_1_70_0.html.
    
      Github-Pull: #21662
      Rebased-From: 36c10b9f4b181db6afa2f8cb7d4872b158768c16
    
    ACKs for top commit:
      jarolrod:
        ACK 856de5bd5e4594d12c1d35704c49d0d086fc3d84
    
    Tree-SHA512: cae7262f963dd6e00af699c3e1bce2ee3ff9f76c5dcc24c8a5bf37025b53de28e4cb80de65a380208ee1841a89736d5c35605e40b728b6c7a9f026d8165d74c8
    bbd89d23b3
  131. doc: Archive and clean out release notes post-0.21.1
    Tree-SHA512: 0ae93cb9dae1449318913a7a6f32c233aefddf77335dc1ad416e84beab39ab45cd863073ddc69a243bbb704951d99646f734717f71d9599a54592699f15d84ab
    8584a4460d
  132. depends: update Qt 5.9 source url deff4e763e
  133. Merge bitcoin/bitcoin#21932: [0.21] depends: update Qt 5.9 source url
    deff4e763e11f92e5cb7732cace7239fead4fba8 depends: update Qt 5.9 source url (Kittywhiskers Van Gogh)
    
    Pull request description:
    
      ## Expected Behavior
    
      Running `make` in the depends directory should result in the successful building of host platform dependencies
    
      ## Actual Behavior
    
      `make` terminates as `qt.mk` points to (now) outdated URL path for Qt 5.9 sources, returning error 404
    
      ## Remedy
    
      Update `qt.mk` to point to updated source location as Qt has relocated them
    
    ACKs for top commit:
      RandyMcMillan:
        tACK deff4e7
      hebasto:
        ACK deff4e763e11f92e5cb7732cace7239fead4fba8, I have verified the new link, and checked that old one is unavailable:
      jarolrod:
        tACK deff4e763e11f92e5cb7732cace7239fead4fba8
    
    Tree-SHA512: d5b11a678c871a87e6884a35641178ee349728ead51da06018953be36aab5a30aef9c80b549da49802e87903eb0b7836cc343301325bd8c505cb4246f6752505
    58c0742632
  134. p2p, bugfix: use NetPermissions::HasFlag() in CConnman::Bind()
    PF_NOBAN is a multi-flag that includes PF_DOWNLOAD, so the conditional
    in CConnman::Bind() using a bitwise AND will return the same result
    for both the "noban" status and the "download" status.
    
    Example:
    
    `PF_DOWNLOAD` is `0b1000000`
    `PF_NOBAN`    is `0b1010000`
    
    This makes a check like `flags & PF_NOBAN` return `true` even if `flags`
    is equal to `PF_DOWNLOAD`.
    
    If `-whitebind=download@1.1.1.1:8765` is specified, then `1.1.1.1:8765`
    should be added to the list of local addresses. We only want to avoid
    adding to local addresses (that are advertised) a whitebind that has a
    `noban@` flag.
    
    As a result of a mis-check in `CConnman::Bind()` we would not have added
    `1.1.1.1:8765` to the local addresses in the example above.
    
    Co-authored-by: Vasil Dimov <vd@FreeBSD.org>
    
    Github-Pull: bitcoin/bitcoin#21644
    Rebased-From: dde69f20a01acca64ac21cb13993c6e4f8709f23
    f2a88986a1
  135. Remove user input from URI error message
    + Detailed error messages for invalid address
    + Used `IsValidDestination` instead of `IsValidDestinationString`
    + Referred to https://github.com/bitcoin/bitcoin/pull/20832 for solution
    
    Github-Pull: bitcoin-core/gui#280
    Rebased-From: 3bad0b3fada9ab7c5b03d31dc33d72654c1ba2be
    46320ba72f
  136. Update Windows code signing certificate
    Github-Pull: bitcoin/bitcoin#22017
    Rebased-From: 167fb1fc72e309587a8ef1d7844cb51a5483f54f
    09620b89f5
  137. Merge bitcoin/bitcoin#22022: Final backports for 0.21.2rc1
    09620b89f5f78434080196162c75e3e65cc8d47f Update Windows code signing certificate (Andrew Chow)
    46320ba72f80dd865b05bbfe2654cde124859881 Remove user input from URI error message (unknown)
    f2a88986a18f197f6a4690f5dcca248f6b6170e2 p2p, bugfix: use NetPermissions::HasFlag() in CConnman::Bind() (Jon Atack)
    
    Pull request description:
    
    ACKs for top commit:
      achow101:
        ACK 09620b89f5f78434080196162c75e3e65cc8d47f Diffs match.
      hebasto:
        ACK 09620b89f5f78434080196162c75e3e65cc8d47f, tested https://github.com/bitcoin-core/gui/pull/280 behavior.
      fanquake:
        ACK 09620b89f5f78434080196162c75e3e65cc8d47f
    
    Tree-SHA512: 1c4aaec42ea047261b5d30851bca605540eccf572708403335b38016127d3230b5380b3f5ef03921ed62192239b0d3da9787d51f557ed7911bf6bb2a7c172753
    419f9b3b3b
  138. gitian: install signapple in gitian-osx-signer.yml
    Github-Pull: #20880
    Rebased-From: 42bb1ea363286b088257cabccb686ef1887c1d3b
    65ce833042
  139. gitian: use signapple to apply the MacOS code signature
    Github-Pull: #20880
    Rebased-From: 95b06d21852b28712db6c710e420a58bdc1a0944
    2f33e339a8
  140. gitian: use signapple to create the MacOS code signature
    Github-Pull: #20880
    Rebased-From: f55eed251488d70d5e2e3a2965a4f8ec0c476853
    27d691b6b5
  141. gitian: Remove codesign_allocate and pagestuff from MacOS build
    Github-Pull: #20880
    Rebased-From: 2c403279e2f0f7c8c27c56d4e7b0573c59571f0a
    5313d6aed2
  142. Use latest signapple commit
    Update gitian and guix to use the same latest signapple commit
    
    Github-Pull: #22190
    Rebased-From: 683d197970a533690ca1bd4d06d021900e87cb8b
    0fe60a84ae
  143. wallet: Do not iterate a directory if having an error while accessing it
    This change prevents infinite looping for, for example, system folders
    on Windows.
    
    Github-Pull: #21907
    Rebased-From: 29c9e2c2d2015ade47ed4497926363dea3f9c59b
    7b0b201d10
  144. Merge bitcoin/bitcoin#22191: [0.21] gitian: Use custom MacOS code signing tool
    0fe60a84ae2f52e87ee07cd0243f09d45b0b15e2 Use latest signapple commit (Andrew Chow)
    5313d6aed2d8bd515401b3782c0bc352af423015 gitian: Remove codesign_allocate and pagestuff from MacOS build (Andrew Chow)
    27d691b6b5b4a15dc3d1f9dd248a8880ab3ab326 gitian: use signapple to create the MacOS code signature (Andrew Chow)
    2f33e339a8903e79bf750367c073056bea4a9788 gitian: use signapple to apply the MacOS code signature (Andrew Chow)
    65ce8330427114c2827d00a658d2e5887349c76a gitian: install signapple in gitian-osx-signer.yml (Andrew Chow)
    
    Pull request description:
    
      Backport of #20880 and #22190
    
    ACKs for top commit:
      MarcoFalke:
        cherry-pick-only ACK 0fe60a84ae ๐Ÿ€
    
    Tree-SHA512: e864048fab02a1857161602dd53abba552ca3f859c133a47a5e62c28d3e4de9cd099bce86123a1b5892042b09f51cc1ddd2ed1b0c71bfba162710eaee3f5bf91
    926f76cb20
  145. fuzz: add missing ECCVerifyHandle to base_encode_decode
    GitHub Pull: #22279
    Rebased-From: 906d7913117c8f10934b37afa27ae8ac565da042
    c5357fa415
  146. Fix crash when parsing command line with -noincludeconf=0
    Github-Pull: #22002
    Rebased-From: fa9f711c3746ca3962f15224285a453744cd45b3
    70eac6fcd0
  147. Cleanup -includeconf error message
    Remove the erroneous trailing newline '\n'. Also, print only the first
    value to remove needless redundancy in the error message.
    
    Github-Pull: #22002
    Rebased-From: fad0867d6ab9430070aa7d60bf7617a6508e0586
    513613d8a8
  148. util: Properly handle -noincludeconf on command line
    This bug was introduced in commit
    fad0867d6ab9430070aa7d60bf7617a6508e0586.
    
    Unit test
    Co-Authored-By: Russell Yanofsky <russ@yanofsky.org>
    
    Github-Pull: #22137
    Rebased-From: fa910b47656d0e69cccb1f31804f2b11aa45d053
    da816247f0
  149. Merge bitcoin/bitcoin#22255: [0.21] wallet: Do not iterate a directory if having an error while accessing it
    7b0b201d109b6240f114498fc1b94af9cb85f26e wallet: Do not iterate a directory if having an error while accessing it (Hennadii Stepanov)
    
    Pull request description:
    
      This change prevents infinite looping for, for example, system folders
      on Windows.
    
      Github-Pull: #21907
      Rebased-From: 29c9e2c2d2015ade47ed4497926363dea3f9c59b
    
      Note: Trivial backport, but in a differently-named function in another file
    
    ACKs for top commit:
      hebasto:
        ACK 7b0b201d109b6240f114498fc1b94af9cb85f26e, I have reviewed the code and it looks OK, I agree it can be merged.
    
    Tree-SHA512: d41ab267250e8bfd9289cacf1fd804cc1a3bb20fc479dc9da5a69ebf26530b552b11b2ee6b11e17a1c146ca792ee65bd64eeb2269fa5e73a70361da8a2a09925
    4c29b63cfb
  150. Merge bitcoin/bitcoin#22366: [0.21] fuzz: add missing ECCVerifyHandle to base_encode_decode
    da816247f0c00e1644f7ebe2b848cfd6a5c7026e util: Properly handle -noincludeconf on command line (MarcoFalke)
    513613d8a87337f1d1f639bc9426165c3b6be62e Cleanup -includeconf error message (MarcoFalke)
    70eac6fcd02b6c44cb4b1f2fb895eae147e3f490 Fix crash when parsing command line with -noincludeconf=0 (MarcoFalke)
    c5357fa4151e1ac90427ae0493a7bb3e451f8de5 fuzz: add missing ECCVerifyHandle to base_encode_decode (Andrew Poelstra)
    
    Pull request description:
    
      Backports #22279, #22002 and #22137 to fix fuzzing issues in the 0.21 branch: https://github.com/bitcoin/bitcoin/runs/2864012729.
    
    ACKs for top commit:
      achow101:
        ACK da816247f0c00e1644f7ebe2b848cfd6a5c7026e
    
    Tree-SHA512: ab8751387e42e03ff43594ae34be8ed0dba903d7da1aaecb9f19c08366570d8995abe89ba0c9bafe37662940f3e83bef1e9e50f330e86114cd6a773becd1fd21
    bd2f4164c6
  151. qt: Do not use QClipboard::Selection on Windows and macOS.
    Windows and macOS do not support the global mouse selection.
    
    Github-Pull: bitcoin-core/gui#277
    Rebased-From: 7f3a5980c1d54988a707b961fd2ef647cebb4c5b
    f220368220
  152. qt: Do not extend recent transaction width to address/label string
    Github-Pull: bitcoin-core/gui#365
    Rebased-From: 9ea1da6fc91e17bdaa722001b97aadf576f07f65
    6ca54ce2ae
  153. qt: Draw "eye" sign at the beginning of watch-only addresses
    Github-Pull: bitcoin-core/gui#365
    Rebased-From: cd46c11577a05f3dc9eac94f27a6985f6ba0509e
    e3f1da4bf3
  154. Merge bitcoin/bitcoin#22427: [0.21] gui: Backports for 0.21.2
    e3f1da4bf3db120cc691a844d612fbc522f11fb9 qt: Draw "eye" sign at the beginning of watch-only addresses (Hennadii Stepanov)
    6ca54ce2ae0808513172c4945e38165e766e1381 qt: Do not extend recent transaction width to address/label string (Hennadii Stepanov)
    f220368220abb11040fa944a853cda3d4f1fe84d qt: Do not use QClipboard::Selection on Windows and macOS. (Hennadii Stepanov)
    
    Pull request description:
    
      Backports https://github.com/bitcoin-core/gui/pull/277, https://github.com/bitcoin-core/gui/pull/365.
    
    ACKs for top commit:
      fanquake:
        ACK e3f1da4bf3db120cc691a844d612fbc522f11fb9
      jarolrod:
        ACK e3f1da4bf3db120cc691a844d612fbc522f11fb9
    
    Tree-SHA512: 43cc2ac48f4e5014bfdbe86cc904bb36d2be9fcd257f0fc0800c384bd727bb98466723e450a8909b06708784ad91184be599c49cf60de2e4377202774cb878f6
    997e528a34
  155. rpc: reset scantxoutset progress on finish
    Github-Pull: #19362
    Rebased-From: 8c4129b4540f4f739413ed9a6fbfc78afc252f42
    080b47d9ce
  156. ci: Fix macOS brew install command
    Details: https://github.com/Homebrew/discussions/discussions/691
    
    Github-Pull: #21663
    Rebased-From: b7381552cd4f965c45f1560d9cfc2fb09dbfcc1d
    89426c43fb
  157. ci: Build with --enable-werror by default, and document exceptions
    Github-Pull: #20182
    Rebased-From: 2f6fe4e4e9e9e35e713c0a20cf891b023592110a
    681f728a35
  158. test: Fix intermittent feature_taproot issue
    Github-Pull: #20535
    Rebased-From: fa275e1539941b49fe206ff0bf110e3362bec6bb
    55e941f5df
  159. Merge bitcoin/bitcoin#22580: [0.21] Backport: Reset scantxoutset progress before inferring descriptors
    080b47d9ce6288e1725857b3026291981ef75e34 rpc: reset scantxoutset progress on finish (Pavol Rusnak)
    
    Pull request description:
    
      Backport of #19362.
    
    ACKs for top commit:
      achow101:
        Code Review ACK 080b47d9ce6288e1725857b3026291981ef75e34
    
    Tree-SHA512: 1f58965393663bfc0796fc06ef846bc87521d04d79c2a62227acf4d466de649db7d244c8992a32aa1086e6bf0ac92fb8a5aeadf4673441fefa505e40c02d5daf
    52778f4245
  160. Merge bitcoin/bitcoin#22578: [0.21] Additional backports
    55e941f5df18ce6d9b1ee8759f1419c5d1f03a8f test: Fix intermittent feature_taproot issue (MarcoFalke)
    681f728a35b800d6f1cc359171b6b40de9ddb9a4 ci: Build with --enable-werror by default, and document exceptions (Hennadii Stepanov)
    89426c43fb75fabd72e6e16433dab7f8ee9c860c ci: Fix macOS brew install command (Hennadii Stepanov)
    
    Pull request description:
    
      This backports a few changes to fix CI failures we are seeing with the 0.21 branch.
    
      Backports #21663, this might be the easiest way to fix the macOS CI failures we're seeing. i.e in #22569. The underlying issue is that the older CI images are using a version of brew that without running `brew update` first, is trying to download packages like Boost, from bintray (which no-longer works).
    
      This also includes #20182, as by fixing macOS failure, via running `brew upgrade`, we end up using a newer version of miniupnpc, which emits a GNU extension related warning, and causes the build to fail, because we use `-Werror`.
    
      Backporting #20535 should fix #22581.
    
    ACKs for top commit:
      hebasto:
        ACK 55e941f5df18ce6d9b1ee8759f1419c5d1f03a8f, I verified changes by backporting locally.
    
    Tree-SHA512: 3ab2c5c73c707d0f5b862264f3a0179cdeee30ae55aae872f3c3e0bb81d71a5027c39ba830210c99a21f98cc86c4167c4f215e24d1a8891ec79ce512debf82df
    068ac69b56
  161. Rate limit the processing of incoming addr messages
    While limitations on the influence of attackers on addrman already
    exist (affected buckets are restricted to a subset based on incoming
    IP / network group), there is no reason to permit them to let them
    feed us addresses at more than a multiple of the normal network
    rate.
    
    This commit introduces a "token bucket" rate limiter for the
    processing of addresses in incoming ADDR and ADDRV2 messages.
    Every connection gets an associated token bucket. Processing an
    address in an ADDR or ADDRV2 message from non-whitelisted peers
    consumes a token from the bucket. If the bucket is empty, the
    address is ignored (it is not forwarded or processed). The token
    counter increases at a rate of 0.1 tokens per second, and will
    accrue up to a maximum of 1000 tokens (the maximum we accept in a
    single ADDR or ADDRV2). When a GETADDR is sent to a peer, it
    immediately gets 1000 additional tokens, as we actively desire many
    addresses from such peers (this may temporarily cause the token
    count to exceed 1000).
    
    The rate limit of 0.1 addr/s was chosen based on observation of
    honest nodes on the network. Activity in general from most nodes
    is either 0, or up to a maximum around 0.025 addr/s for recent
    Bitcoin Core nodes. A few (self-identified, through subver) crawler
    nodes occasionally exceed 0.1 addr/s.
    
    Github-Pull: #22387
    Rebased-From: 0d64b8f709b4655d8702f810d4876cd8d96ded82
    83dfe6c65e
  162. Randomize the order of addr processing
    Github-Pull: #22387
    Rebased-From: 5648138f5949013331c017c740646e2f4013bc24
    8df3e5bd84
  163. Functional tests for addr rate limiting
    Github-Pull: #22387
    Rebased-From: b4ece8a1cda69cc268d39d21bba59c51fa2fb9ed
    aaa4833fc9
  164. Add logging and addr rate limiting statistics
    Includes logging improvements by Vasil Dimov and John Newbery.
    
    Github-Pull: #22387
    Rebased-From: f424d601e1b6870e20bc60f5ccba36d2e210377b
    a653aacbd6
  165. Avoid Appveyor compilation failure 2a57108051
  166. Merge bitcoin/bitcoin#22569: [0.21] Rate limit the processing of rumoured addresses
    2a5710805195ca54a02aff3540ceaefb9cb3b3e2 Avoid Appveyor compilation failure (Pieter Wuille)
    a653aacbd66a47edd6d14ddc62fec2d4038456b8 Add logging and addr rate limiting statistics (Pieter Wuille)
    aaa4833fc9c3d44378e232002f4b9b447a2d18cb Functional tests for addr rate limiting (Pieter Wuille)
    8df3e5bd84f2b2b60730034cbd71fe8f3276d434 Randomize the order of addr processing (Pieter Wuille)
    83dfe6c65ef6c30ca01348ee5059c3d76e03d1d3 Rate limit the processing of incoming addr messages (Pieter Wuille)
    
    Pull request description:
    
      Backport of #22387.
    
      The rate at which IP addresses are rumoured (through ADDR and ADDRV2 messages) on the network seems to vary from 0 for some non-participating nodes, to 0.005-0.025 addr/s for recent Bitcoin Core nodes. However, the current codebase will happily accept and process an effectively unbounded rate from attackers. There are measures to limit the influence attackers can have on the addrman database (bucket restrictions based on source IPs), but still - there is no need to permit them to feed us addresses at a rate that's orders of magnitude larger than what is common on the network today, especially as it will cause us to spam our peers too.
    
      This PR implements a [token bucket](https://en.wikipedia.org/wiki/Token_bucket) based rate limiter, allowing an average of 0.1 addr/s per connection, with bursts up to 1000 addresses at once. Whitelisted peers as well as responses to GETADDR requests are exempt from the limit. New connections start with 1 token, so as to not interfere with the common practice of peers' self-announcement.
    
      Due to the lack of the `Peer` struct in 0.21, the relevant fields have been added to `CNodeState` instead, necessitating additional locks, and slightly different structure to avoid too much `cs_main` grabbing. The last test-improving commit has also been dropped, as the code has changed too much. Most of the behavior is still tested however, just not the part that compares with RPC statistics.
    
    ACKs for top commit:
      achow101:
        ACK 2a5710805195ca54a02aff3540ceaefb9cb3b3e2
      GeneFerneau:
        Approach + code review ACK [2a57108](https://github.com/bitcoin/bitcoin/pull/22569/commits/2a5710805195ca54a02aff3540ceaefb9cb3b3e2)
      jnewbery:
        reACK 2a5710805195ca54a02aff3540ceaefb9cb3b3e2
    
    Tree-SHA512: ecf4891ac6173d732aa40b4d05fc0dce94127a613cb9051bf6188a2f95824f8234b17d386dd0b352ddf3d352202cc2ff07915ae35657d8e64907e3f80703d1d9
    4b523c8f0a
  167. DrahtBot added the label Build system on Aug 8, 2021
  168. DrahtBot added the label Consensus on Aug 8, 2021
  169. DrahtBot added the label GUI on Aug 8, 2021
  170. DrahtBot added the label P2P on Aug 8, 2021
  171. DrahtBot added the label RPC/REST/ZMQ on Aug 8, 2021
  172. DrahtBot added the label Scripts and tools on Aug 8, 2021
  173. DrahtBot added the label Utils/log/libs on Aug 8, 2021
  174. DrahtBot added the label Validation on Aug 8, 2021
  175. DrahtBot added the label Wallet on Aug 8, 2021
  176. DrahtBot commented at 5:38 PM on August 8, 2021: member

    <!--cf906140f33d8803c4a75a2196329ecb-->

    ๐Ÿ™ This pull request conflicts with the target branch and needs rebase.

    <sub>Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft".</sub>

  177. DrahtBot added the label Needs rebase on Aug 8, 2021
  178. hebasto closed this on Aug 8, 2021

  179. hebasto renamed this:
    /main/0.21
    .
    on Aug 8, 2021
  180. hebasto locked this on Aug 8, 2021
  181. hebasto removed the label GUI on Aug 8, 2021
  182. hebasto removed the label Wallet on Aug 8, 2021
  183. hebasto removed the label Build system on Aug 8, 2021
  184. hebasto removed the label RPC/REST/ZMQ on Aug 8, 2021
  185. hebasto removed the label P2P on Aug 8, 2021
  186. hebasto removed the label Validation on Aug 8, 2021
  187. hebasto removed the label Consensus on Aug 8, 2021
  188. hebasto removed the label Scripts and tools on Aug 8, 2021
  189. hebasto removed the label Utils/log/libs on Aug 8, 2021
  190. hebasto removed the label Needs rebase on Aug 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 18:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me