aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-23Merge bitcoin/bitcoin#26547: [22.x] Bump version to 22.1rc2 & add release notesv22.1rc2fanquake
d9bd628ac9d1e6272cb2f8f67b86376a13233f90 doc: add release notes for 22.1rc2 (fanquake) 65231076983bb089de13f99f32cb37730cfced9b doc: Update manual pages for 22.1rc2 (fanquake) 6af7af61c90197326a77e1248fdca98722ab2efd build: Bump version to 22.1rc2 (fanquake) Pull request description: Bump the version to 22.1rc2. Regenerate the man pages. Add WIP 22.1 release notes. Changes since rc1: - https://github.com/bitcoin-core/gui/pull/631 - https://github.com/bitcoin-core/gui/pull/680 ACKs for top commit: stickies-v: ACK [d9bd628](https://github.com/bitcoin/bitcoin/commit/d9bd628ac9d1e6272cb2f8f67b86376a13233f90) jarolrod: ACK d9bd628ac9d1e6272cb2f8f67b86376a13233f90 Tree-SHA512: 70b1723fd5f77a93763ffc153b18c5d6c11c8294828406bd5e93daf9e8aac5e62306280ef6601508b4d22e1cce5136687afc826be6d159816071549849c40f91
2022-11-22doc: add release notes for 22.1rc2fanquake
2022-11-22doc: Update manual pages for 22.1rc2fanquake
2022-11-22build: Bump version to 22.1rc2fanquake
2022-11-22Merge bitcoin/bitcoin#26521: [22.x] GUI backportsfanquake
272fa2530493b13e4bf7c978e9768162f10ddf7f Fixes bitcoin#26490 by preventing notifications (John Moffett) 7b7bbc145aedf149c6d8675c7e252b0767bb8652 Disallow encryption of watchonly wallets (Andrew Chow) Pull request description: Backports: - bitcoin-core/gui#631 - bitcoin-core/gui#680 ACKs for top commit: jarolrod: ACK 272fa2530493b13e4bf7c978e9768162f10ddf7f Tree-SHA512: 4c285327464240ace3884d9653cc46d8e7b60b888f3b096ceb4fd5000d084ea8d97f1ef86ca1dea8dc7d3be8cdd2da19eece2b8c5b7351c5961b50b78fcd4c4d
2022-11-21Fixes bitcoin#26490 by preventing notificationsJohn Moffett
MacOS 13 sends a window focus change notification after the main window has been destroyed but before the QTApplication has been destroyed. This results in the menu bar receiving a notification despite it no longer existing. The solution is to pass the main window as context when subscribing to the notifications. Qt automatically unsubscribes to notifications if the sender OR context is destroyed. Github-Pull: bitcoin-core/gui#680 Rebased-From: 8a5014cd8a05b3ab86ae34a47653a82ce11bdf17
2022-11-21Disallow encryption of watchonly walletsAndrew Chow
Watchonly wallets do not have any private keys to encrypt. It does not make sense to encrypt such wallets, so disable the option to encrypt them. This avoids an assertion that can be hit when encrypting watchonly descriptor wallets. Github-Pull: bitcoin-core/gui#631 Rebased-From: 4c495413e138ec1dd6874e41b44e689f0c15e0e3
2022-11-02Merge bitcoin/bitcoin#26430: [22.x] Bump version to 22.1.0rc1v22.1rc1MacroFake
3343ec5a4f604b4b1798d0c8265c57d89bd738ce doc: update version number in bips.md to v22.1 (fanquake) 54e89eed9eb9c6877c1a8bed3d2f224721fc49f3 doc: Update manual pages for 22.1.0rc1 (fanquake) b63309c58a71eb7e34b0bcab0d57199ac025daeb build: Bump version to 22.1.0rc1 (fanquake) Pull request description: Bump the version to 22.1rc1 Generate the man pages. Update the version number in bips.md. ACKs for top commit: MarcoFalke: Thanks, Concept ACK 3343ec5a4f604b4b1798d0c8265c57d89bd738ce Tree-SHA512: fcfd7df493d316789072333396d6bceb77ae471e2a9ed06266d6128aa3746ac3184dcd9e9c20aecaf5c8906f82edee39a135fad9ae5c7f4c11b686e385aa3ed2
2022-11-02Merge bitcoin/bitcoin#26431: [22.x] qt: 22.1rc1 translations updateMacroFake
0bba3a70a1366f03f7cd90f51516aa3ef12cf2eb qt: 22.1rc1 translations update (Hennadii Stepanov) Pull request description: This PR pulls the recent translations from the [Transifex.com](https://www.transifex.com/bitcoin/bitcoin) using the [`bitcoin-maintainer-tools/update-translations.py`](https://github.com/bitcoin-core/bitcoin-maintainer-tools/blob/main/update-translations.py) tool. According to our [Release Process docs](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#before-every-release-candidate), it is supposed to be merged before `v22.1rc1` tagging. Will keep this PR updated regularly until merging. The `bitcoin_vi.ts` translation is damaged, therefore its changes were rejected manually. ACKs for top commit: jarolrod: ACK 0bba3a70a1366f03f7cd90f51516aa3ef12cf2eb Tree-SHA512: 85ec2eeb83d7d8dc6ea3ac5ea7da99ab127e930ab11023f69728c206483526b3b0e50058d1349bc569e23313670c67d4e66044b3577dd763d26c595756721a9b
2022-11-01qt: 22.1rc1 translations updateHennadii Stepanov
2022-11-01doc: update version number in bips.md to v22.1fanquake
2022-11-01doc: Update manual pages for 22.1.0rc1fanquake
2022-11-01build: Bump version to 22.1.0rc1fanquake
2022-10-31Merge bitcoin/bitcoin#26413: [22.1] BackportsMacroFake
403de22119f5c65a9fd43a665c469512b967ed38 rpc: add non-regression test about deriveaddresses crash when index is 2147483647 (muxator) db20d278e212b2a393a331624184a61fab6c05c9 rpc: fix crash in deriveaddresses when derivation index is 2147483647 (muxator) d174db0f3ded1055555b998225090ebb130ca00d Adjust `.tx/config` for new Transifex CLI (Hennadii Stepanov) Pull request description: Currently backports: * https://github.com/bitcoin/bitcoin/pull/26275 * https://github.com/bitcoin/bitcoin/pull/26321 Will leave open to collect backports for 22.1, ACKs for top commit: MarcoFalke: cherry-pick ACK 403de22119f5c65a9fd43a665c469512b967ed38 🏔 Tree-SHA512: f9095a5cad52ecb9580fcaf173a05148dce382ac773a6116e2aed47009402bdfa6cbce62e488fe96120f7a0a81a623eb3e0e4539fa88670adb8c14cf5e334fa5
2022-10-28rpc: add non-regression test about deriveaddresses crash when index is ↵muxator
2147483647 This test would cause a crash in bitcoind (see #26274) if the fix given in the previous commit was not applied. Github-Pull: #26275 Rebased-From: 9153ff3e274953ea0d92d53ddab4c72deeace1b1
2022-10-28rpc: fix crash in deriveaddresses when derivation index is 2147483647muxator
2147483647 is the maximum positive value of a signed int32, and - currently - the maximum value that the deriveaddresses bitcoin RPC call accepts as derivation index due to its input validation routines. Before this change, when the derivation index (and thus range_end) reached std::numeric_limits<int_32_t>::max(), the "i" variable in the for cycle (which is declared as int, and as such 32 bits in size on most platforms) would be incremented at the end of the first iteration and then warp back to -2147483648. This caused SIGABRT in bitcoind and a core dump. This change assigns "i" an explicit size of 64 bits on every platform, sidestepping the problem. Fixes #26274. Github-Pull: #26275 Rebased-From: addf9d6502db12cebcc5976df3111cac1a369b82
2022-10-28Adjust `.tx/config` for new Transifex CLIHennadii Stepanov
The old Transifex Command-Line Tool is considered deprecated (as of January 2022) and will sunset on Nov 30, 2022. See: https://github.com/transifex/cli/blob/devel/README.md#migrating-from-older-versions-of-the-client An accompanying PR: https://github.com/bitcoin-core/bitcoin-maintainer-tools/pull/142 Github-Pull: #26321 Rebased-From: d6adbb7ee1de661ad89879609eecd11129322405
2022-10-24Merge bitcoin/bitcoin#26034: [22.x] Prevent data race for `pathHandlers`MacroFake
2c6c628ab95b018ac7ce6595954644bf9197ce35 Prevent data race for `pathHandlers` (Hennadii Stepanov) Pull request description: Backport of https://github.com/bitcoin/bitcoin/pull/25983 to the 22.x branch. ACKs for top commit: dergoegge: ACK 2c6c628ab95b018ac7ce6595954644bf9197ce35 Tree-SHA512: 9b172f73407fdd5a79e67ed1b2b3b7c6e7989ea1de6757c839ee7040d62ebbd87d10770c6fcb39709a07d52345dc9b7b244ef2b490c9ad8a656ff8ad4d618a01
2022-10-24Merge bitcoin/bitcoin#26350: [22.x] Revert "build: Use Homebrew's sqlite ↵MacroFake
package if it is available" 63d2ee9a50c5690df08f25e6840d10be8232f106 doc: remove brew install sqlite from macOS docs (fanquake) bf42d7de56404b0afe23d81c6b758d1e9cffdf7b Revert "build: Use Homebrew's sqlite package if it is available" (fanquake) Pull request description: Backport of https://github.com/bitcoin/bitcoin/pull/25985 to the 22.x branch. ACKs for top commit: hebasto: ACK 63d2ee9a50c5690df08f25e6840d10be8232f106, I have reviewed the code and it looks OK, I agree it can be merged. stickies-v: re-ACK [63d2ee9](https://github.com/bitcoin/bitcoin/commit/63d2ee9a50c5690df08f25e6840d10be8232f106) Tree-SHA512: 66738fc67df86db536a500fe253257976208b31773b891d6b6865b795ba4c933345febcc81773db159d3e1078810dbc8053fe63a7e9acad25b28d02dbf2687e8
2022-10-24doc: remove brew install sqlite from macOS docsfanquake
2022-10-19Revert "build: Use Homebrew's sqlite package if it is available"fanquake
This reverts ee7b84e63cbeadd5e680d69ff0548275581e9241 from #20527. This change was made without any rationale, maybe other than a brew installed version might be newer, and that's "better". However when building from source on macOS, it just results in drastically worse perofrmance, and results in issues / confusions like #25724. Resolves the "build from source" portion of #25724. Building from depends is still not ideal, however I have some other changes that might help improve things in that case. The difference in performance can be observed using the example from https://github.com/bitcoin/bitcoin/issues/25724#issuecomment-1213554922, but minified to only 10 descriptors. i.e: ```bash time src/bitcoin-cli createwallet speedy true time src/bitcoin-cli importdescriptors '[ {"desc":"raw(00145846369f3d6ba366d6f5a903fb5cf4dca3763c0e)#k9wh6v62","timestamp":"now"}, {"desc":"raw(001420800aabf13f3a4c4ce3ce4c66cecf1d17f21a6e)#6m0hlfh4","timestamp":"now"}, {"desc":"raw(0014c6bf9715e06d73ebf9b3b02d5cc48d24d8bbabc1)#wyavh36r","timestamp":"now"}, {"desc":"raw(00141ba7807b3f46af113beaea5c698428ce7138cd8a)#jctdsups","timestamp":"now"}, {"desc":"raw(00140c1bd27f10fff01b36ddf3c1febaa1acff19b080)#9s6nc3pk","timestamp":"now"}, {"desc":"raw(00141226e31987e4bc2e63c0ee12908f675e40464b20)#9pp7qm39","timestamp":"now"}, {"desc":"raw(0014f73f149f7503960a5e849c6ee7a8a8c336f631cb)#qtkxv9fc","timestamp":"now"}, {"desc":"raw(0014c8ccb4d81ffc769fc5fdd8d7eed69b0e0cae5749)#hn39qayv","timestamp":"now"}, {"desc":"raw(001498565aead2d67a22a6021d55210f2a917fc22169)#6ar3vwsx","timestamp":"now"}, {"desc":"raw(001403013248ac0cd9eabe176cad162cda2a19f771e1)#4m47mukd","timestamp":"now"} ]' ``` Running master, when building from souce and using brew installed sqlite, this takes ~3.4s. With this PR, the same operation takes ~0.3s. Github-Pull: #25985 Rebased-From: d216d714aae36e6f1c95f82aef81a0be74dee2f3
2022-09-07Prevent data race for `pathHandlers`Hennadii Stepanov
Github-Pull: bitcoin/bitcoin#25983 Rebased-From: 4296dde28757d88a7076847484669fb202b47bc8
2022-06-10Merge bitcoin/bitcoin#25317: 22.x Backport new Windows code signing certificatelaanwj
c4aacfbf6510261edc3b3f4b3d78db95fedfb92c windeploy: Renewed windows code signing certificate (Andrew Chow) Pull request description: Backports: - https://github.com/bitcoin/bitcoin/pull/25201 ACKs for top commit: LarryRuane: utACK c4aacfbf6510261edc3b3f4b3d78db95fedfb92c Tree-SHA512: cce6c85cecf0014e0b123b42e454db2123becf02f4274b1c355f69d8e7b8f77cd12af86adc251da8146b7bd3a55e9f47e3c1ed12f70c5267b3ac3283634526ec
2022-06-09windeploy: Renewed windows code signing certificateAndrew Chow
Github-Pull: #25201 Rebased-From: 7e9fe6d800ee8f3381e8f6ad2371f7775c68fad9
2022-05-31Merge bitcoin/bitcoin#25250: [22.x] test: replace hashlib.ripemd160 with an ↵MacroFake
own implementation ea3e028bcc99b2e3ddc4c9e96eb487f4e5418b3f Swap out hashlib.ripemd160 for own implementation (Pieter Wuille) 52036915fa774b80dec853c1c79a302f474d35ac Add pure Python RIPEMD-160 (Pieter Wuille) Pull request description: Needed to unbreak the tsan CI task, which runs the test on Ubuntu Jammy, which has ripemd160 removed from openssl. ACKs for top commit: fanquake: ACK ea3e028bcc99b2e3ddc4c9e96eb487f4e5418b3f - backport looks correct. tsan job has [timed out](https://github.com/bitcoin/bitcoin/pull/25250/checks?check_run_id=6657882409). Tree-SHA512: 1117567c5de8287d6c4ada5cdc5990116808da9349f5aa3633c01b7aa12ea0ae6208418c7082e46dfde584b43807dce5ade5e8850cc392e1e0d42d9897a70017
2022-05-30Merge bitcoin/bitcoin#25242: [22.x] rpc: Capture potentially large UniValue ↵laanwj
by ref for rpcdoccheck 7fcac96597218691724002c2b8ecb3dbcf60bf06 rpc: Capture potentially large UniValue by ref for rpcdoccheck (Martin Zumsande) Pull request description: ACKs for top commit: fanquake: ACK 7fcac96597218691724002c2b8ecb3dbcf60bf06 Tree-SHA512: e1e321ce49f5696d1b08d4a9cf77bdc90bdeedbe776d19fe13443d898b966c046593d20758376db4edb5baf17cb925a2ff21201889af977456c18cc43094a683
2022-05-30Swap out hashlib.ripemd160 for own implementationPieter Wuille
Github-Pull: 23716 Rebased-From: 5b559dc7ecf37ab1604b75ec8ffe8436377a5fb1
2022-05-30Add pure Python RIPEMD-160Pieter Wuille
Github-Pull: 23716 Rebased-From: ad3e9e1f214d739e098c6ebbd300da5df1026a44
2022-05-30rpc: Capture potentially large UniValue by ref for rpcdoccheckMartin Zumsande
Github-Pull: 25237 Rebased-From: 20ff4991e548630d7bb5e491fa4d69ec49369872
2022-05-25Merge bitcoin/bitcoin#25180: [22.x] qt: Avoid crash on startup if int ↵laanwj
specified in settings.json 344537cf04373d757522e042f29f25a0f9595404 qt: Avoid crash on startup if int specified in settings.json (Ryan Ofsky) Pull request description: Backport of #24498 to 22.x branch This was already backported to the 23.x branch in #24511, but vasild discovered the issue can affect 22.x as well https://github.com/bitcoin/bitcoin/pull/15936#issuecomment-1115992866: > While testing this, 22.x crashes if `settings.json` contains `"prune": 1234` due to #24498 which was fixed in 23.0. So, if this PR is included in 24.x and a user upgrades to 24.x and then downgrades to 22.x his 22.x would crash at startup. It's not very important to backport this to 22.x because I can work around the issue other ways, but I do see 22.x is listed as an active branch https://github.com/bitcoin/bitcoin/branches, so if there is another 22.x release, it would be nice to have this fix and not have a wonky uncaught univalue exception waiting to be hit ACKs for top commit: laanwj: ACK 344537cf04373d757522e042f29f25a0f9595404 Tree-SHA512: 479f7fb4b4b73ec85f28e97af9b21d54245b8ab4d246e50134b37f1726fe3c57cf388fe4973f8ccf1b9efa7663166d1fbeb631758b39d4490b5eab82d0c83d77
2022-05-20qt: Avoid crash on startup if int specified in settings.jsonRyan Ofsky
Fix GUI startup crash reported by Rspigler in https://github.com/bitcoin/bitcoin/issues/24457 that happens if settings.json contains an integer value for any of the configuration options which GUI settings can currently clash with (-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy, -proxy, -onion, -onion, -lang, and -prune). Fix is a one-line change in ArgsManager::GetArg. Github-Pull: bitcoin/bitcoin#24498 Rebased-From: 5b1aae12ca4a99c6b09349981a4902717a6a5d3e
2022-03-07Merge bitcoin/bitcoin#24476: [22.x] fs: Make compatible with boost 1.78fanquake
021c3d892fb6b801143bb433e85f329fd250c97d fs: Make compatible with boost 1.78 (Andrew Chow) Pull request description: Backports #24104 to the `22.x` branch to fix the build with Boost 1.78.0. ACKs for top commit: achow101: ACK 021c3d892fb6b801143bb433e85f329fd250c97d gruve-p: ACK https://github.com/bitcoin/bitcoin/pull/24476/commits/021c3d892fb6b801143bb433e85f329fd250c97d hebasto: ACK 021c3d892fb6b801143bb433e85f329fd250c97d Tree-SHA512: 439c463c36b15a8507d58c3d9c6a02f6dfb209bcc85a8ed39a9cc3fe023530f9f74cc3fd545710b0bb15b4ff6afae802471c6819db7cd851dddd537938e0eef5
2022-03-05fs: Make compatible with boost 1.78Andrew Chow
Github-Pull: #24104 Rebased-From: dc5d6b0d4793ca978f71f69ef7d6b818794676c2
2022-03-01Merge bitcoin/bitcoin#23276: [22.x] Backports for 22.xfanquake
269553fe73b17f8acda3071a48836c66092d31d0 test: Call ceildiv helper with integer (Martin Zumsande) 2f60fc6d8c6b1d8e74c340fed495b76deac4a048 ci: Replace soon EOL hirsute with jammy (MarcoFalke) 801b0f05aaf974ab9b0e3f7b59948564638d593f build: patch qt to explicitly define previously implicit header include (Kittywhiskers Van Gogh) c768bfa08af034c744402d4294cc323d653b97b8 tests: Calculate fees more similarly to CFeeRate::GetFee (Andrew Chow) f66bc42957ad2e86982c8c487f821683d3009b43 tests: Test for assertion when feerate is rounded down (Andrew Chow) bd7e08e36bf2e1238ddf8cc01433f8db82f848c9 fees: Always round up fee calculated from a feerate (Andrew Chow) 227ae652542451834faddbaffb54fc384e9156e6 wallet: fix segfault by avoiding invalid default-ctored `external_spk_managers` entry (Sebastian Falbesoner) 282863a7e9ddfb14ef02182945ca1978699dbe52 refactor: include a missing <limits> header in fs.cpp (Joan Karadimov) 7febe4f3c7f482390c4aa6fc528e2ee3fb34b142 consensus: don't call GetBlockPos in ReadBlockFromDisk without lock (Jon Atack) c671c6f4706d17cccfe5c35950235f8777a7975f the result of CWallet::IsHDEnabled() was initialized with true. (Saibato) a5a153882609c8d77118a88a9a440d4966c8d0ef build, qt: Fix typo in QtInputSupport check (Hennadii Stepanov) c95b188fc08387d0a89668e56bce3a4fad1ee611 system: skip trying to set the locale on NetBSD (fanquake) c1cdeddd905b5444eac330d565b297b3d4941c5d guix: Fix powerpc64(le) dynamic linker name (Carl Dong) 92d44ff36cc12e34f93bfcc4ec31ffae8787100c doc: Add 23061 release notes (MarcoFalke) db76db7329f6357c5226cd08611fe0f669c002af Fix (inverse) meaning of -persistmempool (MarcoFalke) 85c78e08ec857e51a9748d1a2492d1d3794b221a build: Restrict check for CRC32C intrinsic to aarch64 (W. J. van der Laan) Pull request description: Collecting backports for the 22.1 release. Currently: * https://github.com/bitcoin/bitcoin/pull/23045 * https://github.com/bitcoin/bitcoin/pull/23061 * https://github.com/bitcoin/bitcoin/pull/23148 * https://github.com/bitcoin/bitcoin/pull/22390 * https://github.com/bitcoin/bitcoin/pull/22820 * https://github.com/bitcoin/bitcoin/pull/22781 * https://github.com/bitcoin/bitcoin/pull/22895 * https://github.com/bitcoin/bitcoin/pull/23335 * https://github.com/bitcoin/bitcoin/pull/23333 * https://github.com/bitcoin/bitcoin/pull/22949 * https://github.com/bitcoin/bitcoin/pull/23580 * https://github.com/bitcoin/bitcoin/pull/23504 * https://github.com/bitcoin/bitcoin/pull/24239 ACKs for top commit: achow101: ACK 269553fe73b17f8acda3071a48836c66092d31d0 Tree-SHA512: b3a57ea241be7a83488eeb032276f4cf82a0987aada906a82f94a20c4acf9f2397708249dcecbe1c7575e70d09c60b835233d4718af4013c7bc58896c618274c
2022-02-15test: Call ceildiv helper with integerMartin Zumsande
It returns an incorrect result when called with a Decimal, for which the "//" operator works differently. Also drop unnecessary call to satoshi_round. Github-Pull: #24239 Rebased-From: d1fab9d5d27a2db2546db0f610e0f6929ec4864e
2022-02-15ci: Replace soon EOL hirsute with jammyMarcoFalke
Github-Pull: #23504 Rebased-From: fafa66e424cd0c4a4ac3175e0d3b15a54626aa4b
2022-02-15build: patch qt to explicitly define previously implicit header includeKittywhiskers Van Gogh
macOS Monterey has refactored some includes such that implicitly defined headers were no longer exposed and that in turns breaks building Qt on macOS 12. Additional Resources: - https://bugreports.qt.io/browse/QTBUG-97855 - https://codereview.qt-project.org/c/qt/qtbase/+/378706 - https://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforms/cocoa?id=dece6f5840463ae2ddf927d65eb1b3680e34a547 Github-Pull: #23580 Rebased-From: 8196b0a2bc63c35769eca213cba4a5844a737b90
2022-02-15tests: Calculate fees more similarly to CFeeRate::GetFeeAndrew Chow
Because of floating point precision issues, not all of the rounding done is always correct. To fix this, the fee calculation for assert_fee_amount is changed to better reflect how CFeeRate::GetFee does it. First the feerate is converted to an int representing sat/kvb. Then this is multiplied by the transaction size, divivided by 1000, and rounded up to the nearest sat. The result is then converted back to BTC (divided by 1e8) and then rounded down to the nearest sat to avoid precision errors. Github-Pull: #22949 Rebased-From: 80dc829be7f8c3914074b85bb4c125baba18cb2c
2022-02-15tests: Test for assertion when feerate is rounded downAndrew Chow
When calculating a txs absolute fee, if the fee is rounded down to the nearest satoshi, it is possible for the coin selection algorithms to undercalculate the fee needed. This can lead to an assertion error in some situations. One such scenario is added to rpc_fundrawtransaction.py. Github-Pull: #22949 Rebased-From: ce2cc44afd51f3df4ee7f14ea05b8da229183923
2022-02-15fees: Always round up fee calculated from a feerateAndrew Chow
When calculating the fee for a given tx size from a fee rate, we should always round up to the next satoshi. Otherwise, if we round down (via truncation), the calculated fee may result in a fee with a feerate slightly less than targeted. This is particularly important for coin selection as a slightly lower feerate than expected can result in a variety of issues. Github-Pull: #22949 Rebased-From: 0fbaef9676a1dcb84bcf95afd8d994831ab327b6
2022-02-15wallet: fix segfault by avoiding invalid default-ctored ↵Sebastian Falbesoner
`external_spk_managers` entry In the method `CWallet::LoadActiveScriptPubKeyMan`, the map `external_spk_managers` (or `internal_spk_managers`, if parameter `internal` is false) is accessed via std::map::operator[], which means that a default-ctored entry is created with a null-pointer as value, if the key doesn't exist. As soon as this value is dereferenced, a segmentation fault occurs, e.g. in `CWallet::KeypoolCountExternalKeys`. The bevaviour can be reproduced by the following steps (starting with empty regtest datadir): $ ./src/bitcoind -regtest -daemon $ ./src/bitcoin-cli -regtest -named createwallet_name=wallet descriptors=true blank=true $ cat regtest-descriptors.txt [ { "desc": "tr([e4445899/49'/1'/0']tprv8ZgxMBicQKsPd8jCeBWsYLEoWxbVgzJDatJ7XkwQ6G3uF4FsHuaziHQ5JZAW4K515nj6kVVwPaNWZSMEcR7aFCwL4tQqTcaoprMKTTtm6Zg/1/*)#mr3llm7f", "timestamp": 1634652324, "active": true, "internal": true, "range": [ 0, 999 ], "next": 0 } ] $ ./src/bitcoin-cli -regtest importdescriptors "$(cat regtest-descriptors.txt)" [ { "success": true } ] $ ./src/bitcoin-cli -regtest getwalletinfo error: timeout on transient error: Could not connect to the server 127.0.0.1:18443 (error code 1 - "EOF reached") Bug reported by Josef Vondrlik (josef-v). Github-Pull: #23333 Rebased-From: 6911ab95f19d2b1f60f2d0b2f3961fa6639d4f31
2022-02-15refactor: include a missing <limits> header in fs.cppJoan Karadimov
... needed for std::numeric_limits<T>::max on WIN32 Github-Pull: #23335 Rebased-From: 077a875d94b51e3c87381133657be98989c8643e
2022-02-15consensus: don't call GetBlockPos in ReadBlockFromDisk without lockJon Atack
Github-Pull: #22895 Rebased-From: 350e034e64d175f3db4c85ddca42e76e279912f6
2022-02-15the result of CWallet::IsHDEnabled() was initialized with true.Saibato
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. Update src/wallet/wallet.cpp Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Github-Pull: #22781 Rebased-From: 8733a8e84c4b2e484f6ed6159fcf5f29a360d42e
2022-02-15build, qt: Fix typo in QtInputSupport checkHennadii Stepanov
Github-Pull: #22820 Rebased-From: e251726affe97da745362c82567c2377ceb07d21
2022-02-15system: skip trying to set the locale on NetBSDfanquake
Just treat it the same as the other BSDs. Fixes #17379. Github-Pull: #22390 Rebased-From: fdd71448e78f442ffd93a3a3398a5062eaba9f1b
2022-02-15guix: Fix powerpc64(le) dynamic linker nameCarl Dong
I used Guix's values for the powerpc64(le) dynamic linkers, and the /lib-prefix seems to be a Guix-ism rather than standard. The standard path for the linker-loaders start with /lib64. I've taken the new loader values from SYSDEP_KNOWN_INTERPRETER_NAMES in glibc's sysdeps/unix/sysv/linux/powerpc/ldconfig.h file. For future reference, loader path values can also be found on glibc's website: https://sourceware.org/glibc/wiki/ABIList?action=recall&rev=16 Github-Pull: #23148 Rebased-From: b96adcbfae90b3e041754f11624cac04c1999e8c
2022-02-15doc: Add 23061 release notesMarcoFalke
Github-Pull: #23061 Rebased-From: faa9c19a4b27e7fabf7c5deae1b4c4ca612ed01a
2022-02-15Fix (inverse) meaning of -persistmempoolMarcoFalke
Github-Pull: #23061 Rebased-From: faff17bbde6dcb1482a6210bc48b3192603a446f
2022-02-15build: Restrict check for CRC32C intrinsic to aarch64W. J. van der Laan
`crc32c`'s hardware accelerated code doesn't handle ARM 32-bit at all. Make the check in `configure.ac` check for this architecture explicitly. For the release binaries, the current `configure.ac` check happens to work: it enables it on aarch64 but disables it for armhf. However some combination of compiler version and settings might ostensibly cause this check to succeed on armhf (as reported on IRC). So make the 64-bit platform requirement explicit. Github-Pull: #23045 Rebased-From: f2747d1602ec4e1128356b861b2167daf66a845b