aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-10-16Merge bitcoin-core/gui#765: Fix wallet list hover crash on shutdownHennadii Stepanov
8b6470a90652fcffc45b8d7998af7c8ad6251332 gui: disable top bar menu actions during shutdown (furszy) 7066e8996d0ac090535cc97cdcb54a219986460f gui: provide wallet controller context to wallet actions (furszy) Pull request description: Small follow-up to #751. Fixes another crash cause during shutdown. Which occurs when the user hovers over the wallets list. Future Note: This surely happen in other places as well, we should re-work the way we connect signals. Register lambas without any precaution can leave dangling pointers. ACKs for top commit: hebasto: ACK 8b6470a90652fcffc45b8d7998af7c8ad6251332, I've tested each commit separately on macOS Sonoma 14.0 (Apple M1). Tree-SHA512: 6fbd1bcd6717a8c1633beb9371463ed22422f929cccf9b791ee292c5364134c501e099329cf77a06b74a84c64c1c3d22539199ec49ccd74b3950036316c0dab3
2023-10-16Merge bitcoin/bitcoin#28565: rpc: getaddrmaninfo followupsfanquake
e6e444c06cbf09380f9924dff3d21c1be15d1753 refactor: add and use EnsureAnyAddrman in rpc (stratospher) bf589a50a0d6a7b94f1ba1ddf24a1497fd35ad44 doc: add release notes for #27511 (stratospher) 3931e6abc39b8aee1472028dbf76eeb10708d2b4 rpc: `getaddrmaninfo` followups (stratospher) Pull request description: - make `getaddrmaninfo` RPC public since it's not for development purposes only and regular users might find it useful. [#26988 (comment)](https://github.com/bitcoin/bitcoin/pull/26988#issuecomment-1738371584) - add missing `all_networks` key to RPC help. [#27511 (comment)](https://github.com/bitcoin/bitcoin/pull/27511#discussion_r1335084087) - fix clang format spacing - add and use `EnsureAddrman` in RPC code. [#27511 (comment)](https://github.com/bitcoin/bitcoin/pull/27511#discussion_r1331501491) ACKs for top commit: 0xB10C: Code Review re-ACK e6e444c06cbf09380f9924dff3d21c1be15d1753 theStack: Code-review ACK e6e444c06cbf09380f9924dff3d21c1be15d1753 pablomartin4btc: tested ACK e6e444c06cbf09380f9924dff3d21c1be15d1753 Tree-SHA512: c14090d5c64ff15e92d252578de2437bb2ce2e1e431d6698580241a29190f0a3528ae5b013c0ddb76a9ae538507191295c37cab7fd93469941cadbde44587072
2023-10-15Merge bitcoin/bitcoin#28650: fuzz: Merge with -set_cover_merge=1fanquake
fa858d63a0a5d794aab38c26f60c593513fe08de fuzz: Merge with -set_cover_merge=1 (MarcoFalke) Pull request description: This should be less controversial than commit 151a2b189c3561dda2bb7de809306c1cfeb40e23. The overall size of the qa-assets repo is reduced further from 1.9GB to 1.6GB. Also, the runtime to iterate on the resulting folder is reduced further from ~1699s to ~1149s (N=1). ACKs for top commit: murchandamus: crACK fa858d63a0a5d794aab38c26f60c593513fe08de dergoegge: ACK fa858d63a0a5d794aab38c26f60c593513fe08de Tree-SHA512: e23fa93bd48f01d11c551b035004c678bd6d76bc24ac7d0d0a7883060804e6711763cbd0cd0ded3aad3e4c40da764decae81c2703388cc11961def3c89a4f9ba
2023-10-15Merge bitcoin/bitcoin#27793: ci: label docker images and prune dangling ↵fanquake
images selectively e44c574650827f18e12ac0ba378c0a19d23a07b4 ci: always prune all dangling bitcoin-ci-test images (stickies-v) ce1699706e98201db73209ee495051359b1d0703 ci: add label to docker images (stickies-v) Pull request description: Follow-up from https://github.com/bitcoin/bitcoin/pull/27777#discussion_r1210209382. Labeling the docker images produced by the CI allows us/the user to apply batch operations to all images (including dangling ones) produced by the ci without affecting other, non-bitcoin-ci images. With labeling, we can safely always prune dangling bitcoin-ci-test images without checking for `RESTART_CI_DOCKER_BEFORE_RUN`, which we enable on our persistent runners. ACKs for top commit: fanquake: utACK e44c574650827f18e12ac0ba378c0a19d23a07b4 Tree-SHA512: 1009fb1be78fbc80b5341ba92eac2991e77d050e1ab6048d1d9a65af73413a6be7afc1e1c764eb3f347f363af31245b93fdb38f6ac016d775aad4a0f36e4c98f
2023-10-13gui: disable top bar menu actions during shutdownfurszy
Opening the top bar menu when the app is being destroyed freezes the GUI shutdown process for no reason. No menu action can be executed. Note: This behavior is consistent with how the tray icon menu is cleared too.
2023-10-13gui: provide wallet controller context to wallet actionsfurszy
Addressing potential crashes during shutdown. The most noticeable one can be triggered by hovering over the wallet list as the app shuts down.
2023-10-13Merge bitcoin/bitcoin#28645: test: fix `assert_debug_log` call-site bugs, ↵Andrew Chow
add type checks ac4caf3366a85617641394a97aa9f029550d77d4 test: fix `assert_debug_log` call-site bugs, add type checks (Sebastian Falbesoner) Pull request description: Two recently added tests (PR #28625 / commit 2e31250027ac580a7a72221fe2ff505b30836175 and PR #28634 / commit 3bb51c29df596aab2c1fde184667cee435597715) introduced bugs by wrongly using the `assert_debug_log` helper: https://github.com/bitcoin/bitcoin/blob/5ea4fc05edde66c5c90383bc054590dfbdb2b645/test/functional/feature_assumeutxo.py#L84-L85 (already fixed in https://github.com/bitcoin/bitcoin/pull/28639) https://github.com/bitcoin/bitcoin/blob/5ea4fc05edde66c5c90383bc054590dfbdb2b645/test/functional/p2p_v2_transport.py#L148 https://github.com/bitcoin/bitcoin/blob/5ea4fc05edde66c5c90383bc054590dfbdb2b645/test/functional/p2p_v2_transport.py#L159 Instead of passing the expected debug string in a list as expected, it was passed as bare string, which is then interpretered as a list of characters, very likely leading the debug log assertion pass even if the intended message is not appearing. Thanks to maflcko for discovering: https://github.com/bitcoin/bitcoin/pull/28625#discussion_r1356489861 In order to avoid bugs like this in the future, enforce that the `{un}expected_msgs` parameters are lists, as discussed in https://github.com/bitcoin/bitcoin/pull/28625#discussion_r1356864233. Using mypy might be an alternative, but I guess it takes quite a bit of effort to properly integrate this into CI for the whole functional test suite (including taking care of false-positives), so I decided to go with the simpler "manual asserts" hack. Suggestions are very welcome of course. ACKs for top commit: achow101: ACK ac4caf3366a85617641394a97aa9f029550d77d4 maflcko: lgtm ACK ac4caf3366a85617641394a97aa9f029550d77d4 dergoegge: ACK ac4caf3366a85617641394a97aa9f029550d77d4 Tree-SHA512: a9677af76a0c370e71f0411339807b1dc6b2a81763db4ec049cd6d766404b916e2bdd002883db5a79c9c388d7d8ebfcbd5f31d43d50be868eeb928e3c906a746
2023-10-13fuzz: Merge with -set_cover_merge=1MarcoFalke
2023-10-13test: fix `assert_debug_log` call-site bugs, add type checksSebastian Falbesoner
Two recently added tests (PR #28625 / commit 2e31250027ac580a7a72221fe2ff505b30836175 and PR #28634 / commit 3bb51c29df596aab2c1fde184667cee435597715) introduced a bug by wrongly using the `assert_debug_log` helper. Instead of passing the expected debug string in a list as expected, it was passed as bare string, which is then interpretered as a list of characters, very likely leading the debug log assertion pass even if the intended message is not appearing. In order to avoid bugs like this in the future, enforce that the `{un}expected_msgs` parameters are lists.
2023-10-13ci: always prune all dangling bitcoin-ci-test imagesstickies-v
Since all bitcoin-ci-test images are now labeled, we can always prune all dangling images, regardless of whether we are in RESTART_CI_DOCKER_BEFORE_RUN. To be safe, still prune all images if RESTART_CI_DOCKER_BEFORE_RUN in case the filtering doesn't work, or if images were created on an earlier version that did not assign labels.
2023-10-13ci: add label to docker imagesstickies-v
This allows us or the user to perform batch operations on all images produced by the ci, e.g. to prune all dangling images, without affecting non-ci images.
2023-10-13Merge bitcoin/bitcoin#28631: devtools: test_utxo_snapshots.sh sleep cleanup ↵fanquake
and documentation 36a3004a41aea58f50f3348c5de4eb5a23268788 devtools: test_utxo_snapshots.sh sleep cleanup and documentation (Fabian Jahr) Pull request description: There were bare sleep statements in the script where it was unclear why they were needed and I think they could also be replaced by existing helpers. ACKs for top commit: Sjors: utACK 36a3004a41aea58f50f3348c5de4eb5a23268788 pablomartin4btc: utACK https://github.com/bitcoin/bitcoin/commit/36a3004a41aea58f50f3348c5de4eb5a23268788 Tree-SHA512: b6e2fc69cd7babcfa7f413f11304f4d648d6d64b3b526862664ccedb0016ad182b9e886aa4e8c33315e4c18824512e11a4fd6365f9c3c95093967d3ef7687e62
2023-10-13Merge bitcoin/bitcoin#28639: refactor: Remove unused nchaintx from ↵fanquake
SnapshotMetadata constructor, fix test, add test fafde92f84fb7c245bc3c1cd946a32c891861e5e test: Check snapshot file with wrong number of coins (MarcoFalke) faa90f6e7b6b8c531e1ae142a5c2f568b48502a9 refactor: Remove unused nchaintx from SnapshotMetadata constructor (MarcoFalke) Pull request description: See commit messages ACKs for top commit: Sjors: utACK fafde92f84fb7c245bc3c1cd946a32c891861e5e theStack: ACK fafde92f84fb7c245bc3c1cd946a32c891861e5e Tree-SHA512: 9ed2720b50d1c0938f30543ba143e1a4c6af3a0ff166f8b3eb452e1d99ddee6e3443a4c99f77efe94b8c3eb2feff984bf5259807ee8085e1e0e1e0d1de98227e
2023-10-13Merge bitcoin/bitcoin#28459: build: add `-mbranch-protection=bti` (aarch64) ↵fanquake
to hardening flags 61a6c3b0e9a8dab5c5f845af4becde817539133c build: add `-mbranch-protection=bti` to aarch64 hardening flags (fanquake) Pull request description: This is a simpler (less hardening) version of https://github.com/bitcoin/bitcoin/pull/24123. You can inspect binaries using `readelf -n`, and look for BTI in a `.note.gnu.property`. i.e ```bash readelf -n src/bitcoin-cli Displaying notes found in: .note.gnu.property Owner Data size Description GNU 0x00000010NT_GNU_PROPERTY_TYPE_0 Properties: AArch64 feature: BTI ``` Related to https://github.com/bitcoin/bitcoin/issues/19075. ACKs for top commit: TheCharlatan: utACK 61a6c3b0e9a8dab5c5f845af4becde817539133c Tree-SHA512: 64504de44e91d853165daf4111dca905d8eb9ef3f4bfb0d447c677b02c9100dbd56f13e6fe6539fb06c2343a094229591ac5d1bd9e184b32b512c0ac3f9bac36
2023-10-13Merge bitcoin/bitcoin#28547: ci: Work around podman stop intermittent failurefanquake
fa2c894cbb41a64371717139fb3c3ddfb9bb8b19 ci: move-only CI_CONTAINER_ID to 02_run_container.sh (MarcoFalke) fa695b4df069425414fd26b2ddc08d72a6b506f6 ci: Work around podman stop bug (MarcoFalke) fa09a031c1eb8abcb9a04cacdf5629f95ffc77f8 ci: Add set -ex to 02_run_container.sh (MarcoFalke) fac9abbf475a1de6f9f39ddede9a6a59bbd1cff4 ci: Rename 04_install to 02_run_container (MarcoFalke) Pull request description: Sometimes, it seems that `podman stop` does not work. Presumably, it falls back to `podman kill`, which is async. Try to work around this intermittent issue by using the `rm --force` over `stop`. Example failing log https://cirrus-ci.com/task/4549784611061760?logs=ci#L238: ``` Restart docker before run to stop and clear all containers started with --rm ++ podman container stop --all e4eca0766f87864d89fc230aa884a238c214cfbcd44cf76a4dbdb2a30c982009 ++ echo 'Prune all dangling images' Prune all dangling images ++ docker image prune --force Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. +++ docker run --cap-add LINUX_IMMUTABLE --rm --interactive --detach --tty --mount type=bind,src=/tmp/cirrus-build-1970593815,dst=/tmp/cirrus-build-1970593815,readonly --mount type=volume,src=ci_macos_cross_ccache,dst=/tmp/ccache_dir --mount type=volume,src=ci_macos_cross_depends,dst=/ci_container_base/depends --mount type=volume,src=ci_macos_cross_previous_releases,dst=/ci_container_base/prev_releases --env-file /tmp/env --name ci_macos_cross ci_macos_cross Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. time="2023-09-27T20:55:39Z" level=warning msg="The input device is not a TTY. The --tty and --interactive flags might not work properly" Error: creating container storage: the container name "ci_macos_cross" is already in use by e4eca0766f87864d89fc230aa884a238c214cfbcd44cf76a4dbdb2a30c982009. You have to remove that container to be able to reuse that name: that name is already in use ACKs for top commit: hebasto: ACK fa2c894cbb41a64371717139fb3c3ddfb9bb8b19, I have reviewed the code and tested it locally. Tree-SHA512: 31fca340c6bedaadf4dd51fa745d9b3969042cebc0c7c904ef18af3f2f986039ec4354ccdff1422fbf77cf223e4423857368dce53cfa67ef15c76b78d007eace
2023-10-13Merge bitcoin/bitcoin#28644: test: Fuzz merge with -use_value_profile=0 for nowfanquake
faa190b1efbdfdb9b12a7bfa7f732b5471a02e64 test: Fuzz merge with -use_value_profile=0 for now (MarcoFalke) Pull request description: Seems odd that this has to be done, but for now there are (unknown) size limits on the qa-assets repo. Also, a larger size means that cloning and iterating over the files takes a longer time. Not sure how to measure the net impact of this, but with some backups reverting this commit, it can be limited on the downside? ACKs for top commit: dergoegge: ACK faa190b1efbdfdb9b12a7bfa7f732b5471a02e64 Tree-SHA512: 9f8b3f4526f60e4ff6fca97859a725d145a8339c216bd15c92fad7e53f84308745fee47727527de459c0245ef9d474a9dc836fee599ab2b556b519bd900b9a33
2023-10-12Merge bitcoin/bitcoin#28640: ci: Use clang-17 in Asan taskfanquake
fa2843eba4f195fcc9fdda2d3673fae0d7fc6282 ci: Bump asan (MarcoFalke) Pull request description: Needed to bump the EOL date and unlock clang-17. ACKs for top commit: fanquake: ACK fa2843eba4f195fcc9fdda2d3673fae0d7fc6282 Tree-SHA512: 7d8b3b30ed65bd26f9640db8d06de8c27a9ad8a8160f9e645a97b99df867aa30508491dd8957a54edad724f8672ef1054041106d90ee826ba3e856176ab52afc
2023-10-12Merge bitcoin/bitcoin#28641: ci: Drop no longer needed `NOLINTNEXTLINE`fanquake
79789ccafe101d3bb05fffe08610d2103e3f3060 ci: Drop no longer needed `NOLINTNEXTLINE` (Hennadii Stepanov) Pull request description: After recent tool updates in the "tidy" CI task, the one instance of `NOLINTNEXTLINE` is not required anymore. ACKs for top commit: fanquake: ACK 79789ccafe101d3bb05fffe08610d2103e3f3060 Tree-SHA512: 382f3e0570f36a481498ac118ee30a34aabfd6285b21a67c19c74b240305315c5a118fb70f172b843a086262433462d45998e78306697be0ddfb20094733ee98
2023-10-12test: Fuzz merge with -use_value_profile=0 for nowMarcoFalke
2023-10-12ci: Bump asanMarcoFalke
2023-10-12ci: Drop no longer needed `NOLINTNEXTLINE`Hennadii Stepanov
2023-10-12Merge bitcoin/bitcoin#28629: test: fix usdt undeclared function errors on mantisfanquake
4077e43bf62e5afe90d204b9ede9290ef54dee0f test: fix usdt undeclared function errors on mantis (willcl-ark) Pull request description: This is one way to fix #28600 Recently usage of undeclared functions became an error rather than a warning, in C2x. https://reviews.llvm.org/D122983?id=420290 This change has migrated into the build tools of Ubuntu 23.10 which now causes the USDT tests to fail to compile, see https://github.com/bitcoin/bitcoin/issues/28600 I think there are various potential fixes: 1. Manually declare the functions we use 2. Fix imports so that manual declarations aren't needed 3. Revert the new C2X behaviour and don't error on implicit function declarations I would have preferred solution 2, but I believe this will require changes to the upstream bcc package. Having played with the imports I can get things working in a standalone C program, using system headers, but when building the program from a python context as we do in the test it uses its own headers (bundled with the python lib) rather than the system ones, and manually importing (some) system headers results in definition mismatches. I also investigated explicitly importing required headers from the package, which use paths like `#import </virtual/bcc/bcc_helpers.h>`, but this seems more obtuse and brittle than simply ignoring the warning. Therefore I think that until the upstream python pacakge fixes their declarations, we should fix this by setting `-Wno-error=implicit-function-declaration` for the tracing programs. cc maflcko 0xB10C ACKs for top commit: maflcko: lgtm ACK 4077e43bf62e5afe90d204b9ede9290ef54dee0f Tree-SHA512: 8368bb1155e920a95db128dc893267f8dab64f1ae53f6d63c6d9294e2e4e92bef8515e3697e9113228bedc51c0afdbc5bbcf558c119bf0eb3293dc2ced86b435
2023-10-12Merge bitcoin/bitcoin#27228: test: exempt previous release binaries from ↵fanquake
valgrind 850670e3d63ed7d04b417a43cb8ab06292aa2c23 test: don't run old binaries under valgrind (Sjors Provoost) Pull request description: Some, but not all, backward compatibility tests fail for me and it seems useless to run old release binaries under valgrind anyway. Can be tested by running `test/functional/feature_txindex_compatibility.py --valgrind --timeout-factor=10` with and without this PR. — The previous version of this PR disabled these test entirely under valgrind. The current version does run the test, but starts the old binaries without valgrind. ACKs for top commit: maflcko: lgtm ACK 850670e3d63ed7d04b417a43cb8ab06292aa2c23 Tree-SHA512: ebdf461083f1292528e6619963b910f486b60b4f6b183f0aea2c8bfcafa98caeb204d138700cd288450643bcec5e49e12b89f2f7537fccdf495a2a33acd9cea0
2023-10-12test: Check snapshot file with wrong number of coinsMarcoFalke
Also, fix a bug in an assert_debug_log call.
2023-10-12refactor: Remove unused nchaintx from SnapshotMetadata constructorMarcoFalke
Also, remove wrong nChainTx comment and cast.
2023-10-12Merge bitcoin/bitcoin#28634: test: BIP324: add check for detection of ↵fanquake
missing garbage terminator 3bb51c29df596aab2c1fde184667cee435597715 test: BIP324: add check for missing garbage terminator detection (Sebastian Falbesoner) Pull request description: This PR adds test coverage for the "missing garbage terminator" detection on incoming v2 transport (BIP324) connections: https://github.com/bitcoin/bitcoin/blob/04265ba9378efbd4c35b33390b1e5cf246d420a9/src/net.cpp#L1205-L1209 Note that this always happens at the same exact amount of bytes sent in (after 64 + 4095 + 16 = 4175 bytes), if at no point, the last 16 bytes of potential authentication data match the garbage, i.e. all the previous bytes after the ellswift pubkey. To keep it simple, we just send in zero-value bytes here and verify that the detection hits exactly after the last bytes is sent. AFAICT, with this PR all the v2 transport errors that can be triggered in this simple way of "just open a socket and send in a fixed byte-string" are covered. For more advanced test, we need BIP324 cryptography in the test framework in order to perform a v2 handshake etc. (PRs #28374, #24748). ACKs for top commit: sipa: utACK 3bb51c29df596aab2c1fde184667cee435597715 laanwj: ACK 3bb51c29df596aab2c1fde184667cee435597715 Tree-SHA512: f88275061c7c377a3d9f2608452671afc26deb6d5bd5be596de987c7e5042555153ffe681760c33bce2b921ae04e50f349ea0128a677e6443a95a079e52cdc5f
2023-10-12test: don't run old binaries under valgrindSjors Provoost
This is unnecessary and caused test failures. The backward compatibility tests are meant to find regressions in the current codebase, not to detect bugs in older releases.
2023-10-12Merge bitcoin/bitcoin#28633: ci: Install Qt's default Android API platformfanquake
78d3062b68988f5094c61a845be756788933c752 ci: Install Android API 31 platform as Qt expects (Hennadii Stepanov) Pull request description: When building the `qt` package, it expects that the default (in Qt's view) Android API platform is installed. During the recent Qt version [update](https://github.com/bitcoin/bitcoin/pull/28561), it has been changed: ```diff --- a/mkspecs/features/android/sdk.prf +++ b/mkspecs/features/android/sdk.prf @@ -1,6 +1,6 @@ API_VERSION_TO_USE = $$(ANDROID_API_VERSION) isEmpty(API_VERSION_TO_USE): API_VERSION_TO_USE = $$API_VERSION -isEmpty(API_VERSION_TO_USE): API_VERSION_TO_USE = android-28 +isEmpty(API_VERSION_TO_USE): API_VERSION_TO_USE = android-31 ANDROID_JAR_FILE = $$ANDROID_SDK_ROOT/platforms/$$API_VERSION_TO_USE/android.jar !exists($$ANDROID_JAR_FILE) { ``` This PR fixes the CI for the Android task and addresses https://github.com/bitcoin/bitcoin/pull/28561#issuecomment-1749180177. Qt [docs](https://doc.qt.io/qt-5/android.html) still claim that Android API Level 21 and up are supported, however, I did not test every possible configuration. NOTE: https://github.com/bitcoin/bitcoin/pull/28611 is still valid. ACKs for top commit: maflcko: lgtm ACK 78d3062b68988f5094c61a845be756788933c752 jarolrod: tACK 78d3062b68988f5094c61a845be756788933c752 Tree-SHA512: 781fba6d80aae7e6500854de14af0d30169c258e395b9e482a5430a7b4a2211a6181f8c9ee58543c896b431abf09e3e7c5573b9672ed128658f11f98a2006e7e
2023-10-11Merge bitcoin/bitcoin#28625: test: check that loading snapshot not matching ↵Andrew Chow
AssumeUTXO parameters fails 2e31250027ac580a7a72221fe2ff505b30836175 test: check that loading snapshot not matching AssumeUTXO parameters fails (Sebastian Falbesoner) Pull request description: This PR adds test coverage for the failed loading of an AssumeUTXO snapshot in case the referenced block hash doesn't match the parameters in the chainparams. Right now, I expect this would be the most common error-case for `loadtxoutset` out in the wild, as for mainnet the `m_assumeutxo_data` map is empty and this error condition would obviously always be triggered for any (otherwise valid, correctly encoded) snapshot. Note that this test-case is the simplest scenario and doesn't cover any of the TODO ideas mentioned at the top of the functional test yet. ACKs for top commit: jamesob: ACK https://github.com/bitcoin/bitcoin/pull/28625/commits/2e31250027ac580a7a72221fe2ff505b30836175 Sjors: utACK 2e31250027ac580a7a72221fe2ff505b30836175 achow101: ACK 2e31250027ac580a7a72221fe2ff505b30836175 Tree-SHA512: 8bcb2d525c95fbc95f87d3e978ad717d95bddb1ff67cbe7d3b06e4783f0f1ffba32b17ef451468c39c23bc1b3ef1150baa71148c145275c386f2d4822d790d39
2023-10-11Merge bitcoin/bitcoin#28392: test: Use pathlib over os pathfanquake
bfa0bd632a7ce5d04005e20cba79abb32aec8da8 test: Use pathlib over os.path #28362 (ns-xvrn) Pull request description: In reference to issue #28362 refactoring of functional tests to use pathlib over os.path to reduce verbosity and increase the intuitiveness of managing file access. ACKs for top commit: maflcko: re-ACK bfa0bd632a7ce5d04005e20cba79abb32aec8da8 🐨 willcl-ark: ACK bfa0bd632a7ce5d04005e20cba79abb32aec8da8 Tree-SHA512: fb0833c4039d09758796514e47567a93ac831cb0776ff1a7ed8299792ad132e83282ef80bea098a88ae1551d906f2a56093d3e8de240412f9080735d00d496d9
2023-10-11Merge bitcoin/bitcoin#28602: descriptors: Disallow hybrid and uncompressed ↵fanquake
keys when inferring 74c77825e5ab68bfa575dad86444506c43ef6c06 test: Unit test for inferring scripts with hybrid and uncompressed keys (Andrew Chow) f895f97014ac5fac46d27725c1ea7decf7ff76d4 test: Scripts with hybrid pubkeys are migrated to watchonly (Andrew Chow) 37b9b734770e855b9beff3b5085125f1420dd072 descriptors: Move InferScript's pubkey validity checks to InferPubkey (Andrew Chow) b7485f11ab3a0f1860b261f222362af3301e0781 descriptors: Check result of InferPubkey (Andrew Chow) Pull request description: `InferDescriptor` was not always checking that the pubkey it was placing into the descriptor was an allowed pubkey. For example, given a P2WPKH script that uses an uncompressed pubkey, it would produce a `wpkh()` with the uncompressed key. Additionally, the hybrid key check was only being done for `pk()` scripts, where it should've been done for all scripts. This PR moves the key checking into `InferPubkey`. If the key is not valid for the context, then `nullptr` is returned and the inferring will fall through to the defaults of either `raw()` or `addr()`. This also resolves an issue with migrating legacy wallets that contain hybrid pubkeys as such watchonly scripts will become `raw()` or `addr()` and go to the watchonly wallet. Note that a legacy wallet cannot sign for hybrid pubkeys. A test has been added for the migration case. Also added unit tests for `InferDescriptor` itself as the edge cases with that function are not covered by the descriptor roundtrip test. ACKs for top commit: furszy: ACK 74c77825 Sjors: utACK 74c77825e5ab68bfa575dad86444506c43ef6c06 Tree-SHA512: ed5f63e42a2e46120245a6b0288b90d2a6912860814c6c08fe393332add1cb364dc5eca72f16980352143570aef0c07bf1a91acd294099463bd028b6ce2fe40c
2023-10-11Merge bitcoin/bitcoin#28624: docs: fix typofanquake
57131bfa3cfd9e5826b5c557aba8aa03bf41f833 docs: fix typo (vuittont60) Pull request description: ACKs for top commit: maflcko: lgtm ACK 57131bfa3cfd9e5826b5c557aba8aa03bf41f833 hebasto: ACK 57131bfa3cfd9e5826b5c557aba8aa03bf41f833, the `codespell` is powerless to catch this typo. jarolrod: ACK 57131bfa3cfd9e5826b5c557aba8aa03bf41f833 Tree-SHA512: 816dfc5ff64531ea92acf35feca2286a71c75344df2524ff003a3d375e60100b8531e1678be0ed11863d03ab522d5733d8a0bf4b6f5f79c495a65246fe0b697f
2023-10-11Merge bitcoin/bitcoin#28482: ci: use LLVM/Clang 17 in tidy jobfanquake
8735e2c1365cba9246918ea167a40ffe44beb3ba ci: use LLVM/Clang 17 in tidy job (fanquake) ce46b6894176ddb9642b28c139c782c054c09996 ci: use LLVM 17.0.2 in MSAN jobs (fanquake) Pull request description: Also update MSAN to use 17.0.2. Related to #28465. ACKs for top commit: maflcko: lgtm ACK 8735e2c1365cba9246918ea167a40ffe44beb3ba Tree-SHA512: 74452b95326cf065afe8332dc1b5b8e5ac12c8fe05c278a1cee017f87a7f7e0cdb8cac5e39d718c8ef587c8ee229bbaadd847df9f191313d41c5cdcab45e7c76
2023-10-11test: BIP324: add check for missing garbage terminator detectionSebastian Falbesoner
2023-10-10ci: Install Android API 31 platform as Qt expectsHennadii Stepanov
2023-10-10 test: Use pathlib over os.path #28362ns-xvrn
revert netutil chgs py3.8 compliant fixes based on PR review
2023-10-10build: add `-mbranch-protection=bti` to aarch64 hardening flagsfanquake
This is a simpler (less hardening) version of #24123. Scoped to aarch64 to avoid unused command line option warnings when building on x86_64. Related to #19075.
2023-10-10devtools: test_utxo_snapshots.sh sleep cleanup and documentationFabian Jahr
2023-10-10ci: use LLVM/Clang 17 in tidy jobfanquake
2023-10-10ci: use LLVM 17.0.2 in MSAN jobsfanquake
2023-10-10test: check that loading snapshot not matching AssumeUTXO parameters failsSebastian Falbesoner
2023-10-10docs: fix typovuittont60
2023-10-09test: fix usdt undeclared function errors on mantiswillcl-ark
Recently usage of undeclared functions became an error rather than a warning, in C2x. https://reviews.llvm.org/D122983?id=420290 This change has migrated into the build tools of Ubuntu 23.10 which now causes the USDT tests to fail to compile, see https://github.com/bitcoin/bitcoin/issues/28600 Fix this by setting `-Wno-error=implicit-function-declaration` for the tracing programs.
2023-10-09Merge bitcoin/bitcoin#26331: Implement `CCoinsViewErrorCatcher::HaveCoin` ↵Andrew Chow
and check disk space periodically ed52e71176fc97c6ed01e3eebd85acdec54b4448 Periodically check disk space to avoid corruption (Aurèle Oulès) 7fe537f7a48675b1d25542bee6f390d665547580 Implement CCoinsViewErrorCatcher::HaveCoin (Aurèle Oulès) Pull request description: Attempt to fix #26112. As suggested by sipa in https://github.com/bitcoin/bitcoin/issues/26112#issuecomment-1249683401: > CCoinsViewErrorCatcher, the wrapper class used around CCoinsViewDB that's supposed to detect these problems and forcefully exit the application, has an override for GetCoins. But in CheckTxInputs, HaveInputs is first invoked, which on its turn calls HaveCoin. HaveCoin is implemented in CCoinsViewDB, but not in CCoinsViewErrorCatcher, and thus the disk read exception escapes. > A solution may be to just add an override for HaveCoin in CCoinsViewErrorCatcher. I implemented `CCoinsViewErrorCatcher::HaveCoin` and also added a periodic disk space check that shutdowns the node if there is not enough space left on disk, the minimum here is 50MB. For reviewers, it's possible to saturate disk space to test the PR by creating large files with `fallocate -l 50G test.bin` ACKs for top commit: achow101: ACK ed52e71176fc97c6ed01e3eebd85acdec54b4448 w0xlt: Code Review ACK https://github.com/bitcoin/bitcoin/pull/26331/commits/ed52e71176fc97c6ed01e3eebd85acdec54b4448 sipa: utACK ed52e71176fc97c6ed01e3eebd85acdec54b4448 Tree-SHA512: 456aa7b996023df42b4fbb5158ee429d9abf7374b7b1ec129b21aea1188ad19be8da4ae8e0edd90b85b7a3042b8e44e17d3742e33808a4234d5ddbe9bcef1b78
2023-10-09test: Unit test for inferring scripts with hybrid and uncompressed keysAndrew Chow
2023-10-09test: Scripts with hybrid pubkeys are migrated to watchonlyAndrew Chow
Descriptors disallows hybrid pubkeys. Anything with hybrid pubkeys should becomes a raw() descriptor that shows up in the watchonly wallet.
2023-10-09descriptors: Move InferScript's pubkey validity checks to InferPubkeyAndrew Chow
2023-10-09descriptors: Check result of InferPubkeyAndrew Chow
InferPubkey can return a nullptr, so check it's result before continuing with creating the inferred descriptor.
2023-10-09ci: move-only CI_CONTAINER_ID to 02_run_container.shMarcoFalke
This limits the scope of the CI_CONTAINER_ID symbol. Can be reviewed with --color-moved=dimmed-zebra
2023-10-09ci: Work around podman stop bugMarcoFalke
Force remove any containers, pontentially leaving dangling processes, which should be fine.