aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-03-30Merge bitcoin/bitcoin#27368: refactor: Drop no longer used `CNetMsgMaker` ↵fanquake
instances ea7ec7808745805c0a18513d7da271dedb2de3f1 refactor: Drop no longer used `CNetMsgMaker` instances (Hennadii Stepanov) Pull request description: The removed lines have been unused since the https://github.com/bitcoin/bitcoin/commit/abf5d16c24cb08b0451bdbd4d1de63a12930e8f5 commit from https://github.com/bitcoin/bitcoin/pull/25454. ACKs for top commit: dergoegge: utACK ea7ec7808745805c0a18513d7da271dedb2de3f1 Sjors: ACK ea7ec7808745805c0a18513d7da271dedb2de3f1 TheCharlatan: ACK ea7ec7808745805c0a18513d7da271dedb2de3f1 Tree-SHA512: 9a2a9ff3f124b68a8cd20a637e90885096996c3aa354a4d8adbec98f5761e9e826c1c064ccd90aaf6d72beac61dd9e22c8b76d089e18bba6e0ad51e59a9c7df8
2023-03-30refactor: Drop no longer used `CNetMsgMaker` instancesHennadii Stepanov
2023-03-29ci: use LLVM/clang-16 in native_fuzz (ASAN) jobfanquake
Similar to #27298.
2023-03-29guix: use python-minimal (3.9)fanquake
This further minifies the Guix release build environment.
2023-03-29Merge bitcoin/bitcoin#27345: guix: use GCC tool wrappersfanquake
4133c8104f522c403c55d26bd03436a8149ff106 guix: use gcc tool wrappers (fanquake) Pull request description: This way, correct `--plugin` arguments are passed through. This is a prerequisite for LTO (see #25391). Split out, to try move things along, as this change is isolated, and should be straight-forward. ACKs for top commit: TheCharlatan: ACK [4133c81](https://github.com/bitcoin/bitcoin/pull/27345/commits/4133c8104f522c403c55d26bd03436a8149ff106) hebasto: ACK 4133c8104f522c403c55d26bd03436a8149ff106 Tree-SHA512: 4311a72a613cf027bd4490caa29604c985ed455589acd972285f13cbdf4806d2184a4dc6f20cb6f47c3fa751d58bfd0bacc257b87d4a804bf5ecf5b240e4a757
2023-03-29Merge bitcoin/bitcoin#27349: test: use address_to_scriptpubkey instead of ↵fanquake
RPC call e47ce42f670fc43859c157766b342509ab5916f9 refactor: use address_to_scriptpubkey to retrieve addresses scriptpubkey (ismaelsadeeq) 4142d19d741d6432ba95f3452f0d949941d89d5c refactor: move address_to_scriptpubkey to address.py (ismaelsadeeq) Pull request description: PR #27269 enables the function address_to_scriptpubkey() to decode all address types and return their corresponding scriptpubkeys. As a result, there is no longer any need to call getaddressinfo or validateaddress RPCs in order to retrieve an address scriptpubkey, as explained in the comments on this pull request (see https://github.com/bitcoin/bitcoin/pull/27269#pullrequestreview-1353681933 and https://github.com/bitcoin/bitcoin/pull/27269#issuecomment-1481016118). Instead of using RPC calls, this update replaces the process of obtaining an address scriptPubkey with the address_to_scriptpubkey method, resulting in improved performance for functional tests. ACKs for top commit: josibake: re-ACK https://github.com/bitcoin/bitcoin/pull/27349/commits/e47ce42f670fc43859c157766b342509ab5916f9 theStack: ACK e47ce42f670fc43859c157766b342509ab5916f9 🌱 Tree-SHA512: 05285349a7d5ce7097b8f2582e573a5135c6deef85ea9936f68f6ce94e9ebb1d84d94f7fc7e5ed833a698e01585addd80deb52e6338f8aee985bf14db45417d2
2023-03-28contrib: Use machine parseable GPG output in verifybinariesAndrew Chow
GPG has an option to provide machine parseable output. Use that instead of trying to parse the human readable output.
2023-03-28contrib: Add verifybinaries command for specifying files to verifyAndrew Chow
In addition to verifying the published releases with the `pub` command, the verifybinaries script is updated to take a `bin` command where the user specifies the local files, sums, and sigs to verify.
2023-03-28contrib: Specify to GPG the SHA256SUMS file that is detached signedAndrew Chow
2023-03-28contrib: Refactor verifbinaries to support subcommandsAndrew Chow
Prepares for the option to provide local binaries, sha256sums, and signatures directly.
2023-03-28contrib: verifybinaries: allow multisig verificationJames O'Beirne
This commit adds the functionality necessary to transition from doing binary verification on the basis of a single signature to requiring a minimum threshold of trusted signatures. A signature can appear as "good" from GPG output, but it may not come from an identity the user trusts. We call these "good, untrusted" signatures. We report bad signatures but do not necessarily fail in their presence, since a bad signature might coexist with enough good, trusted signatures to fulfill our criteria. If "--import-keys" is enabled, we will prompt the user to optionally try to retrieve unknown keys. Marking them as trusted locally is a WIP, but keys which are retrieved successfully and appear on the builder-keys list will immediately count as being useful towards fulfilling the threshold. Logging is improved and an option to output JSON that summarizes the whole sum signature and binary verification processes has been added. Co-authored-by: Russ Yanofsky <russ@yanofsky.org> Co-authored-by: willcl-ark <will8clark@gmail.com>
2023-03-28test: dedup package limit checks via decorator in mempool_package_limits.pySebastian Falbesoner
2023-03-28test: refactor: use Satoshis for fees in mempool_package_limits.pySebastian Falbesoner
This avoids having to convert from BTC to Sats and needs less imports. Also specify the tx's target size in vsize rather than in weight, which allows us to specify the fee-rate by a simple multiplication, rather than having another magic number for it.
2023-03-28refactor: use address_to_scriptpubkey to retrieve addresses scriptpubkeyismaelsadeeq
This commit updates the code by replacing the RPC call used to decode an address and retrieve its corresponding scriptpubkey with the address_to_scriptpubkey function. address_to_scriptpubkey function can now decode all addresses formats, which makes it more efficient to use.
2023-03-28refactor: move address_to_scriptpubkey to address.pyismaelsadeeq
The COINBASE_MATURITY constant in blocktools.py is imported in wallet.py. However, importing address_to_scriptpubkey to blocktools.py will generate a circular import error. Since the method is related to addresses, it is best to move it to address.py, which will also fix the circular import error. Update imports of address_to_scriptpubkey accordingly.
2023-03-28Merge bitcoin/bitcoin#27318: test: wallet_create_tx.py fix racefanquake
8aab5157c55249c9023ae4e9654f5d42aaa4f314 test: wallet_create_tx.py fix race (furszy) Pull request description: Fixes #27316 Because wallets are internally synchronized through the validation interface, and the interface dispatches events on a worker thread, it is possible for a transaction created by the first wallet to not arrive to the second wallet before the second wallet attempts to use one of its outputs. This is because we do not wait for the `BroadcastTransaction` callback during the wallet's "submit to mempool" process. To address this in the tests, we need to manually sync the validation queue. ACKs for top commit: josibake: ACK https://github.com/bitcoin/bitcoin/pull/27318/commits/8aab5157c55249c9023ae4e9654f5d42aaa4f314 theStack: ACK 8aab5157c55249c9023ae4e9654f5d42aaa4f314 Tree-SHA512: 76364370ab292a5c3ea1ed61cd353fc626a9e9cd6ce18464c24da1b3dcb34b65006e2bc42b84bbd25af03f9449231990bf789504728972db3217b569099eb309
2023-03-28Merge bitcoin/bitcoin#27298: ci: Use TSan new runtime (llvm-16, take 3)fanquake
faf4aca15a319a26aaec7127455f6db97c7039cc ci: Use TSan new runtime (llvm-16, take 3) (MarcoFalke) Pull request description: The previous two attempts failed: * llvm-14: Failed in https://github.com/bitcoin/bitcoin/pull/24572 * llvm-15: Failed in https://github.com/bitcoin/bitcoin/pull/26775 However, now that the bug is known and fixed, it should be good to go. See also https://github.com/bitcoin/bitcoin/pull/26775#issuecomment-1380590669 ACKs for top commit: fanquake: ACK faf4aca15a319a26aaec7127455f6db97c7039cc - I still see [this](https://github.com/bitcoin/bitcoin/pull/27298#issuecomment-1480041089) failure on aarch64, but that isn't really a regression, as running this tests was already broken for me. I'll open a separate issue, and we can follow up. Tree-SHA512: 372b53c4d42ca7f527dae4a2b5bc5ab33c816930daf7a3479d20ea7749159a0b19cfd8d76244b95b03130e4a3d12ddbbb74668b8f7e9fc272cf1084f53b7ff9b
2023-03-28Merge bitcoin/bitcoin#27344: fuzz: Remove legacy int parse fuzz testsfanquake
faf8dc496e761a15956f8226d727f4bbab8dff82 fuzz: Remove legacy int parse fuzz tests (MarcoFalke) Pull request description: The fuzz tests checked that the result of the new function was equal to the legacy function. (Side note: The checks were incomplete, as evident by the follow-up fix in commit b5c9bb5cb9f4a8db57b33ef7399310c7d6de5822). Given that they haven't found any issues in years (beside missing the above issue, that they couldn't catch), it seems time to remove them. They may come in handy in the rare case that someone would want to modify `LocaleIndependentAtoi()` or `Parse*Int*()`, however that seems unlikely. Also, appropriate checks can be added then. ACKs for top commit: fanquake: ACK faf8dc496e761a15956f8226d727f4bbab8dff82 dergoegge: ACK faf8dc496e761a15956f8226d727f4bbab8dff82 Tree-SHA512: 4ec88b9fa8ba49a923b0604016f0f471b3c9b9e0ba6c5c3dc4e20503c6994789921e7221d9ec467a2a37a73f21a70ba51ba3370ed5ad311dee989e218290b29a
2023-03-28Merge bitcoin/bitcoin#27324: net: #27257 follow-upsfanquake
cd0c8eeb0940790b6ba83786d1c9e362d4dc4829 [net] Pass nRecvFloodSize to CNode (dergoegge) 860402ef2ed728ef096dda4e65e77d566782209f [net] Remove trivial GetConnectionType() getter (dergoegge) b5a85b365a4abd98176b0935015dbb502cc3e6f6 [net] Delete CNetMessage copy constructor/assignment op (dergoegge) Pull request description: Follow-up PR for #27257 * Deletes the copy constructor/assignment operator of `CNetMessage` * Removes trivial getter for the connection type * Avoids passing `nRecvFloodSize` to CNode methods by passing it to `CNode` on creation ACKs for top commit: jnewbery: utACK cd0c8eeb0940790b6ba83786d1c9e362d4dc4829 theStack: ACK cd0c8eeb0940790b6ba83786d1c9e362d4dc4829 Tree-SHA512: 673a758668617f69fba77e61f0eaa1538da27a4849c82c98742436692baa2d7f001129af3e7a66b160e599d12109dac08137a146f10ff9b9ebdc5c2237311d41
2023-03-28Merge bitcoin/bitcoin#27348: test: fix intermittent failure in ↵fanquake
ChainStateManager tests f8abcb3e3b2e731c002ec88f7559c21e26a2c079 test: Fix intermittent failure in ChainStateManager tests (Martin Zumsande) Pull request description: Before wiping a `ChainStateManager` and creating a new one, the `validationinterface` queue should be emptied to avoid the possibility of accessing deleted memory. This could lead to very rare CI failures reported in #26613 and #27320 (see [here](https://github.com/bitcoin/bitcoin/issues/27320#issuecomment-1485694691) for a more detailed explanation). Fixes #27320 ACKs for top commit: jamesob: crACK https://github.com/bitcoin/bitcoin/pull/27348/commits/f8abcb3e3b2e731c002ec88f7559c21e26a2c079 MarcoFalke: lgtm ACK f8abcb3e3b2e731c002ec88f7559c21e26a2c079 Tree-SHA512: 953fcca46ffee039ae1c8c98eed5464ba7ee0007f54e18989caab3f645f5f45e64407a21f614984fd2843a3d56219f44603086b0c305a9a5cec64a8bf76c110a
2023-03-28ci: Use TSan new runtime (llvm-16, take 3)MarcoFalke
2023-03-27test: Fix intermittent failure in ChainStateManager testsMartin Zumsande
Before wiping the ChainStateManager, the validationinterface queue must be drained to avoid accessing deleted memory.
2023-03-27ci: cleanup of CI_EXEC & CI_EXEC_ROOT (refs #27321)Vasil Stoyanov
2023-03-27Merge bitcoin/bitcoin#27301: depends: make fontconfig build under clang-16fanquake
9cbc1c279247800d79c5f6f95c0c2d8f387aac0a depends: make fontconfig build under clang-16 (fanquake) Pull request description: Use the same workaround we've applied to qrencode, and other packages. Fontconfig not building is currently a blocker for fuzz/sanitizer infra upgrades (#27298). For now, this is also more straightforward than bumping the package, which introduces more complexity/usage of gperf. Closes: #27299. ACKs for top commit: hebasto: ACK 9cbc1c279247800d79c5f6f95c0c2d8f387aac0a Tree-SHA512: 387ea1a73e3429f166ef5278305a56cb3c69b6e3fc8a21a66521738e313e3fe783f042759b396cd88e28c10918a4427fb836a8dfecc5a846723b6f6c6a7ade51
2023-03-27depends: make fontconfig build under clang-16fanquake
Use the same workaround we've applied to qrencode, and other packages. Fontconfig not building is currently a blocker for fuzz/sanitizer infra upgrades. For now, this is also more straightforward than bumping the package, which introduces more complexity/usage of gperf.
2023-03-27Merge bitcoin-core/gui#693: Fix segfault when shutdown during wallet openHennadii Stepanov
9a1d73fdffa4f35e33bc187ac9b3afbba28b1950 Fix segfault when shutdown during wallet open (John Moffett) Pull request description: Fixes #689 ## Summary If you open a wallet and send a shutdown signal during that process, you'll get a segfault when the wallet finishes opening. That's because the `WalletController` object gets deleted manually in bitcoin.cpp during shutdown, but copies of the pointer (and pointers to child objects) are dangling in various places and are accessed in queued events after the deletion. ## Details The issue in #689 is caused by the following sequence of events: 1. Wallet open modal dialog is shown and worker thread does the actual work. 2. Every 200ms, the main event loop checks to see if a shutdown has been requested, but only if a modal is not being shown. 3. Request a shutdown while the modal window is shown. 4. The wallet open process completes, the modal window is dismissed, and various `finish` signals are sent. 5. During handling of one of the `finish` signals, `qApp->processEvents()` is [called](https://github.com/bitcoin-core/gui/blob/e9262ea32a6e1d364fb7974844fadc36f931f8c6/src/qt/sendcoinsdialog.cpp#L603), which causes the main event loop to detect the shutdown (now that the modal window has been dismissed). The `WalletController` and all the `WalletModel`s are [deleted](https://github.com/bitcoin-core/gui/blob/65de8eeeca29e71378aa34602b287ab921b040e4/src/qt/bitcoin.cpp#L394-L401). 6. Control returns to the `finish` method, which eventually tries to send a [signal](https://github.com/bitcoin-core/gui/blob/e9262ea32a6e1d364fb7974844fadc36f931f8c6/src/qt/sendcoinsdialog.cpp#L167) from a wallet model, but it's been deleted already (and the signal is sent from a now-[dangling](https://github.com/bitcoin-core/gui/blob/d8bdee0fc889def7c5f5076da13db4fce0a3728a/src/qt/walletview.cpp#L65) pointer). The simplest fix for that is to change the `qApp->processEvents()` into a `QueuedConnection` call. (The `qApp->processEvents() was a [workaround](https://github.com/bitcoin/bitcoin/pull/593#issuecomment-3050699) to get the GUI to scroll to the last item in a list that just got added, and this is just a safer way of doing that). However, once that segfault is fixed, another segfault occurs due to some queued wallet events happening after the wallet controller object is deleted here: https://github.com/bitcoin-core/gui/blob/65de8eeeca29e71378aa34602b287ab921b040e4/src/qt/bitcoin.cpp#L394-L401 Since `m_wallet_controller` is a copy of that pointer in `bitcoingui.cpp`, it's now dangling and `if(null)` checks won't work correctly. For instance, this line: https://github.com/bitcoin-core/gui/blob/65de8eeeca29e71378aa34602b287ab921b040e4/src/qt/bitcoingui.cpp#L413 sets up a `QueuedConnection` to `setCurrentWallet`, but by the time control reaches that method (one event cycle after shutdown deleted `m_wallet_controller` in `bitcoin.cpp`), the underlying objects have been destroyed (but the pointers are still dangling). Ideally, we'd use a `QPointer` or `std::shared_ptr / std::weak_ptr`s for these, but the changes would be more involved. This is a minimal fix for the issues. Just set `m_wallet_controller` to `nullptr` in `bitcoingui.cpp`, check its value in a couple places, and avoid a use of `qApp->processEvents`. ACKs for top commit: hebasto: ACK 9a1d73fdffa4f35e33bc187ac9b3afbba28b1950, I have reviewed the code and it looks OK. furszy: ACK https://github.com/bitcoin-core/gui/commit/9a1d73fdffa4f35e33bc187ac9b3afbba28b1950 Tree-SHA512: a1b94676eb2fcb7606e68fab443b1565b4122aab93c35382b561842a049f4b43fecc459535370d67a64d6ebc4bcec0ebcda981fff633ebd41bdba6f7093ea540
2023-03-27fuzz: Remove legacy int parse fuzz testsMarcoFalke
2023-03-27guix: use gcc tool wrappersfanquake
This way, correct `--plugin` argument are passed through. This is a prerequisite for LTO (see #25391).
2023-03-27Merge bitcoin/bitcoin#27314: build, qt: Fix handling of `CXX=clang++` when ↵fanquake
building `qt` package 25e8fe70c6e65c07cf602568f5c2cf5535fca995 build, qt: Fix handling of `CXX=clang++` when building `qt` package (Hennadii Stepanov) Pull request description: On the master branch (f380bb93e854b24cec4ef020235340f5186deded): ``` $ cd depends $ make qt CC=clang CXX=clang++ ... Project ERROR: failed to parse default search paths from compiler output make: *** [funcs.mk:292: /home/hebasto/git/bitcoin/depends/x86_64-pc-linux-gnu/.qt_stamp_configured] Error 3 ``` Fixes https://github.com/bitcoin/bitcoin/pull/27301#issuecomment-1479622034. Guix builds: ``` daa94946aae7d4826d6f329337791a6bda0f01ac73f27003d1677dc8de031071 guix-build-25e8fe70c6e6/output/aarch64-linux-gnu/SHA256SUMS.part 38e9dcb99e329ad02837fd08559a8408bd7ba698f65163d0834d52dc9eefceae guix-build-25e8fe70c6e6/output/aarch64-linux-gnu/bitcoin-25e8fe70c6e6-aarch64-linux-gnu-debug.tar.gz 36d48b93724b112e5553a8d048c79df0532da6d271598a105038c6a5dfbce630 guix-build-25e8fe70c6e6/output/aarch64-linux-gnu/bitcoin-25e8fe70c6e6-aarch64-linux-gnu.tar.gz 6fe9697b6c73f75b1d1ce1bf89176e4afb77a0f876cfbf72b1298660c8060c17 guix-build-25e8fe70c6e6/output/arm-linux-gnueabihf/SHA256SUMS.part dffe564732625f7697274f5cec89c4340327fd3094c6e22dcda39edce064b249 guix-build-25e8fe70c6e6/output/arm-linux-gnueabihf/bitcoin-25e8fe70c6e6-arm-linux-gnueabihf-debug.tar.gz d2fe5bb056b5d12363b2b7a2bf6dca95f2fc3734b61c770fe4919ecbf6570338 guix-build-25e8fe70c6e6/output/arm-linux-gnueabihf/bitcoin-25e8fe70c6e6-arm-linux-gnueabihf.tar.gz ea63144558e7f9546b771f04fec5d59814d6dc5159fdc82c6da960fdf3de328f guix-build-25e8fe70c6e6/output/arm64-apple-darwin/SHA256SUMS.part 579d33fb5d53789849551b25de0323714fe7d282b7506d1bcdb96690dc357911 guix-build-25e8fe70c6e6/output/arm64-apple-darwin/bitcoin-25e8fe70c6e6-arm64-apple-darwin-unsigned.dmg 439628b325a72806d2a598c9c40811f9506b3d0ca3cd56ac327ed7f25d018f22 guix-build-25e8fe70c6e6/output/arm64-apple-darwin/bitcoin-25e8fe70c6e6-arm64-apple-darwin-unsigned.tar.gz 8434b75c17c3e3fae9f28cfa8236191134327118c83e603783d700b0ebcf07a6 guix-build-25e8fe70c6e6/output/arm64-apple-darwin/bitcoin-25e8fe70c6e6-arm64-apple-darwin.tar.gz 61dc9b083d63fc955f4c064348d9c49937e6cc0e969c48538b60281e0824a0f4 guix-build-25e8fe70c6e6/output/dist-archive/bitcoin-25e8fe70c6e6.tar.gz e31df50d868ec4ab6ecbd35ca0057a053eedd474dcc9c6287e4d225e8c0e8bee guix-build-25e8fe70c6e6/output/powerpc64-linux-gnu/SHA256SUMS.part 086cabfda322c5f86c128d52212ccc7276a4f6273d6acaedd949634bd211f8f4 guix-build-25e8fe70c6e6/output/powerpc64-linux-gnu/bitcoin-25e8fe70c6e6-powerpc64-linux-gnu-debug.tar.gz a245643fdad052b7fcc798bd1b7760540dcf47c54a9cdcc1e2f6bdb1fcc3f206 guix-build-25e8fe70c6e6/output/powerpc64-linux-gnu/bitcoin-25e8fe70c6e6-powerpc64-linux-gnu.tar.gz cf8f81932f8132bc26f10599cd318310b6207aea9e31a1ac41393ffc7df51801 guix-build-25e8fe70c6e6/output/powerpc64le-linux-gnu/SHA256SUMS.part f2fee686528ef507b5de03eb7f74f4d8a6d32338dbd7c6758795c963c6e9ce41 guix-build-25e8fe70c6e6/output/powerpc64le-linux-gnu/bitcoin-25e8fe70c6e6-powerpc64le-linux-gnu-debug.tar.gz 84a3b3c3b76eff95f8a6f49d1e4a3c7922722c1a202d982e9e4b83f9797d1e8d guix-build-25e8fe70c6e6/output/powerpc64le-linux-gnu/bitcoin-25e8fe70c6e6-powerpc64le-linux-gnu.tar.gz 42b8d6fa5756e200fcd99fdad07186437403ec85098d6d3d3246d7750b6f8361 guix-build-25e8fe70c6e6/output/riscv64-linux-gnu/SHA256SUMS.part 0e588eb81dfc7dcc472b9ea18825a6dee5967dd7f5a0f90a59d0ea2ac54bac8d guix-build-25e8fe70c6e6/output/riscv64-linux-gnu/bitcoin-25e8fe70c6e6-riscv64-linux-gnu-debug.tar.gz 6afcc482debcec8d3a7e32ca1216bfcd9ad4f653ace88ef39113f38bfb76e447 guix-build-25e8fe70c6e6/output/riscv64-linux-gnu/bitcoin-25e8fe70c6e6-riscv64-linux-gnu.tar.gz f58997be8b2dde088c80534977ad26c485c687a1e55783131da259d35b477e81 guix-build-25e8fe70c6e6/output/x86_64-apple-darwin/SHA256SUMS.part e7e17caa9035ba92216b591c9225b72316a65b1b6f68c85f85831d4c067e8d14 guix-build-25e8fe70c6e6/output/x86_64-apple-darwin/bitcoin-25e8fe70c6e6-x86_64-apple-darwin-unsigned.dmg 21df826825dd3b737f373513974e5e075470b6372b5ef00f0bfb69eaa806837c guix-build-25e8fe70c6e6/output/x86_64-apple-darwin/bitcoin-25e8fe70c6e6-x86_64-apple-darwin-unsigned.tar.gz 81544073e667222d60591316571444b19c72be5b2e41007098b17a45e63c9691 guix-build-25e8fe70c6e6/output/x86_64-apple-darwin/bitcoin-25e8fe70c6e6-x86_64-apple-darwin.tar.gz b1e644cc1ce3ba5bb91ca9fa22bd7abf25b2b537c9f041416555eb4327fb6a7b guix-build-25e8fe70c6e6/output/x86_64-linux-gnu/SHA256SUMS.part 6942721e65ae40604e83957d19b12a6d320fa5676a5668e890db13a7b2df5102 guix-build-25e8fe70c6e6/output/x86_64-linux-gnu/bitcoin-25e8fe70c6e6-x86_64-linux-gnu-debug.tar.gz c0596a5625d8cd2daf3c361290be6fc58642293d44944c10fde38bff203d1225 guix-build-25e8fe70c6e6/output/x86_64-linux-gnu/bitcoin-25e8fe70c6e6-x86_64-linux-gnu.tar.gz ebc7bab758d37dc7a16154d24b2335aa1d261345f94eeab1ed2664bc8679f2f0 guix-build-25e8fe70c6e6/output/x86_64-w64-mingw32/SHA256SUMS.part 38f31a70a630bf9db2616eb6732635d6b9e929ebe79a5e75c0179a5dfd9c076f guix-build-25e8fe70c6e6/output/x86_64-w64-mingw32/bitcoin-25e8fe70c6e6-win64-debug.zip b84591a290e8d1d246eb56f29125bedd7b0e66eeeb875dee9c377c16ba3f7029 guix-build-25e8fe70c6e6/output/x86_64-w64-mingw32/bitcoin-25e8fe70c6e6-win64-setup-unsigned.exe f3b50aee206c012c663d758d5a31d0efa7186805b70c8ec79962e1d7f977de6b guix-build-25e8fe70c6e6/output/x86_64-w64-mingw32/bitcoin-25e8fe70c6e6-win64-unsigned.tar.gz 6d7da31b00adc5005a42983c3444f44ac13a1e0028f1db7ba07d253baf40bf9e guix-build-25e8fe70c6e6/output/x86_64-w64-mingw32/bitcoin-25e8fe70c6e6-win64.zip ``` ACKs for top commit: TheCharlatan: tACK 25e8fe70c6e65c07cf602568f5c2cf5535fca995 Tree-SHA512: a773d3d4454fefd37df1c05f2227e9ff66090536af3f9ff1d5373844fbcad9666ff4d199bc990ab0190f54f34059218830c1b3472a022f88d0a4971f77f82aaf
2023-03-27[net] Pass nRecvFloodSize to CNodedergoegge
2023-03-27[net] Remove trivial GetConnectionType() getterdergoegge
2023-03-27[net] Delete CNetMessage copy constructor/assignment opdergoegge
2023-03-27Merge bitcoin/bitcoin#27326: guix: combine and document `enable_werror`fanquake
4becee396f3bda40832138dd1aaa90368ed31857 guix: combine and document enable_werror (fanquake) Pull request description: Combine into `hardened-glibc`. Document why we don't use `--disable-werror` directly. https://www.gnu.org/software/libc/manual/html_node/Configuring-and-compiling.html > By default, the GNU C Library is built with -Werror. If you wish > to build without this option (for example, if building with a > newer version of GCC than this version of the GNU C Library was > tested with, so new warnings cause the build with -Werror to fail), > you can configure with --disable-werror. ACKs for top commit: hebasto: ACK 4becee396f3bda40832138dd1aaa90368ed31857, the diff is correct. TheCharlatan: ACK 4becee396f3bda40832138dd1aaa90368ed31857 Tree-SHA512: 8724415f51b4d72d40c4e797faf52c93a81147fb629332b9388ffd7f113f2b16db3b7496bf3063dd978ac629fd5bde3ec7df4f1ff1ed714cb56f316a9334d119
2023-03-27Merge bitcoin/bitcoin#27296: guix: import/sync python-lief (0.12.3) package ↵fanquake
definition from upstream 24f26e08cc0db4041c51fe8391b1736b47a13af9 guix: use cmake-minimal for python-lief (fanquake) 43d8173f9911cb2130e52d5ddac44c0e19edccce guix: import LIEF from upstream (0.12.3) (fanquake) Pull request description: Update to version 0.12.3. Retain our PPC64 patch. Mention when we can drop our local definition. Also switch to using cmake-minimal (see #27172), which fixes atleast one build failure I've seen on aarch64, where cmake dependencies fail to build. Fix that by using the cmake without all the dependencies we don't actually need: ```bash The following derivations will be built: /gnu/store/7qqvqq2g7l5ylrjv0gn6zha565a12kar-python-lief-0.12.1.drv /gnu/store/f9zwh1ldy63ga0i5w6cbbqlj6sfq226j-cmake-3.21.4.drv /gnu/store/3wg6ya847id503m5izhzhn1qqs464lfk-python-sphinx-4.2.0.drv building /gnu/store/3wg6ya847id503m5izhzhn1qqs464lfk-python-sphinx-4.2.0.drv... / 'check' phasenote: keeping build directory `/tmp/guix-build-python-sphinx-4.2.0.drv-5' builder for `/gnu/store/3wg6ya847id503m5izhzhn1qqs464lfk-python-sphinx-4.2.0.drv' failed with exit code 1 build of /gnu/store/3wg6ya847id503m5izhzhn1qqs464lfk-python-sphinx-4.2.0.drv failed View build log at '/var/log/guix/drvs/3w/g6ya847id503m5izhzhn1qqs464lfk-python-sphinx-4.2.0.drv.gz'. cannot build derivation `/gnu/store/f9zwh1ldy63ga0i5w6cbbqlj6sfq226j-cmake-3.21.4.drv': 1 dependencies couldn't be built cannot build derivation `/gnu/store/7qqvqq2g7l5ylrjv0gn6zha565a12kar-python-lief-0.12.1.drv': 1 dependencies couldn't be built guix environment: error: build of `/gnu/store/7qqvqq2g7l5ylrjv0gn6zha565a12kar-python-lief-0.12.1.drv' failed ``` ACKs for top commit: TheCharlatan: ACK 24f26e08cc0db4041c51fe8391b1736b47a13af9 Tree-SHA512: d4260cdf5121686fd2fa36c1fc85687848eeb26cabaad2c6566feb71a18ea7fb013cfc6353c99f6f74bc89108a9505adce513c1cfa22a0a67450e6a1c451d209
2023-03-27Merge bitcoin/bitcoin#26642: clang-tidy: Add more `performance-*` checks and ↵fanquake
related fixes 03ec5b6f9ca3af28c9ce25cf2393e28ae852d808 clang-tidy: Exclude `performance-*` checks rather including them (Hennadii Stepanov) 24004372302adfc0e7cb36f8db6830694bf050e9 clang-tidy: Add `performance-type-promotion-in-math-fn` check (Hennadii Stepanov) 7e975e6cf86617346c1d8e2568f74a0252c03857 clang-tidy: Add `performance-inefficient-vector-operation` check (Hennadii Stepanov) 516b75f66ec3ba7495fc028c750937bd66cc9bba clang-tidy: Add `performance-faster-string-find` check (Hennadii Stepanov) Pull request description: ACKs for top commit: martinus: ACK 03ec5b6f9ca3af28c9ce25cf2393e28ae852d808 TheCharlatan: re-ACK [03ec5b6](https://github.com/bitcoin/bitcoin/pull/26642/commits/03ec5b6f9ca3af28c9ce25cf2393e28ae852d808) Tree-SHA512: 2dfa52f9131da88826f32583bfd534a56a998477db9804b7333c0e7ac0b6b36141009755c7163b9f95d0ecbf5c2cb63f8a69ce4b114bb83423faed21b50cec67
2023-03-27Merge bitcoin/bitcoin#27328: depends: fix osx build with clang 16fanquake
87afcb0029b8dab933c122fb8f7263c2e7272731 depends: fix osx build with clang 16 (Cory Fields) Pull request description: Current build (using forced system clang as a test) results in: > error: unknown argument: '-internal-externc-isystem/opt/clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04/lib/clang/16/include' For some reason the previous syntax worked with clang 15 and below, but clang 16 requires that the option and value are properly separated. See [here for an example of upstream using this syntax](https://github.com/llvm/llvm-project/blob/main/clang/test/Driver/crash-report-with-asserts.c#L9). There is no change in behavior for previous versions. I'm seeing an additional unrelated problem with linking with system clang, but I'll PR the solution to that separately as it's not as straightforward as this. ACKs for top commit: TheCharlatan: ACK 87afcb0029b8dab933c122fb8f7263c2e7272731 hebasto: ACK 87afcb0029b8dab933c122fb8f7263c2e7272731 Tree-SHA512: 127037c888c37c6ccd9679e96da34037cc43ccdc07915865a0a5494edb62633e83fc1bd6b1c4bb7a0322f5b59622e10090a31987f38496fb6b306488e9941594
2023-03-27Merge bitcoin/bitcoin#27312: depends: qrencode 4.1.1fanquake
eb1c3adf38cb71c3e6f298a61871738c4919b4a1 depends: qrencode 4.1.1 (fanquake) Pull request description: Upgrade to the latest qrencode, and disable some warnings that cause compile failures with newer compilers (clang-15+). I haven't tested this (from a GUI perspective) at all. This is just "good enough" to keep things compiling, and uses some similar work-arounds as we have with other older packages, i.e bdb. Note that upstream, libqrencode is effectively unmaintained. No code changes for > 2 years. No responses to issues/PRs. Seems like the author has mostly dropped off of GitHub as well. This fixes part of #27299. ACKs for top commit: TheCharlatan: Code review ACK eb1c3adf38cb71c3e6f298a61871738c4919b4a1 Tree-SHA512: 898eaac3e9915dfcdc0a011b736fff685a3b46990bd27f6038ef4d3e7cb6a276206438ea50d45908a051ce55c9b0779347d4be1d35271b67f76f409a7dc21fed
2023-03-26clang-tidy: Exclude `performance-*` checks rather including themHennadii Stepanov
2023-03-26clang-tidy: Add `performance-type-promotion-in-math-fn` checkHennadii Stepanov
https://clang.llvm.org/extra/clang-tidy/checks/performance/type-promotion-in-math-fn.html
2023-03-26clang-tidy: Add `performance-inefficient-vector-operation` checkHennadii Stepanov
https://clang.llvm.org/extra/clang-tidy/checks/performance/inefficient-vector-operation.html
2023-03-26clang-tidy: Add `performance-faster-string-find` checkHennadii Stepanov
https://clang.llvm.org/extra/clang-tidy/checks/performance/faster-string-find.html
2023-03-24depends: fix osx build with clang 16Cory Fields
For some reason the previous syntax worked with clang 15 and below, but clang 16 requires that the option and value are properly separated.
2023-03-24guix: combine and document enable_werrorfanquake
Combine into hardened-glibc. Document why we don't use --disable-werror directly. https://www.gnu.org/software/libc/manual/html_node/Configuring-and-compiling.html > By default, the GNU C Library is built with -Werror. If you wish > to build without this option (for example, if building with a > newer version of GCC than this version of the GNU C Library was > tested with, so new warnings cause the build with -Werror to fail), > you can configure with --disable-werror.
2023-03-24Merge bitcoin/bitcoin#27028: ci: Cache more stuff in the ci images: msan, ↵fanquake
iwyu, pip, sdks faa0839837e6d2ba5d0ab08fddd497a257d7e075 ci: Cache more stuff in the ci images: msan, iwyu, pip, sdks (MarcoFalke) Pull request description: Now that `apt` packages are cached in the ci images, it makes sense to think about caching all other packages as well. ACKs for top commit: TheCharlatan: re-ACK faa0839837e6d2ba5d0ab08fddd497a257d7e075 Tree-SHA512: e2ea491570c6cdcc8522585ae7669c51ab2c0b680ff34067b58727994aa8f2e5c45ba7b76ed27a9c76d788ed155d7aade554dc164f7552fa713c00cc47b722f1
2023-03-24Merge bitcoin/bitcoin#27269: test: Support decoding segwit address in ↵fanquake
address_to_scriptpubkey() d178082996dc3000f42816f89afcf3fa4d31e159 test: add bech32 decoding support to address_to_scriptpubkey() (ismaelsadeeq) aac8793c7a2ee7630641dd74be6ba2ead50c2aee test: test_bech32_decode in address.py (ismaelsadeeq) Pull request description: [rpc_scantxoutset.py](https://github.com/bitcoin/bitcoin/blob/e695d8536e534f1e59de4a62a0d87a93e7a73456/test/functional/rpc_scantxoutset.py#L26) sendtodestination only sends to legacy addresses and scriptPubkeys because [wallet.py](https://github.com/bitcoin/bitcoin/blob/e695d8536e534f1e59de4a62a0d87a93e7a73456/test/functional/test_framework/wallet.py#L415) address_to_scriptpubkey does not support conversion of segwit address. This update enables address_to_scriptpubkey to support the conversion of testnet segwit addresses to scriptPubkeys. This change will enable [rpc_scantxoutset.py](https://github.com/bitcoin/bitcoin/blob/e695d8536e534f1e59de4a62a0d87a93e7a73456/test/functional/rpc_scantxoutset.py#L22) ScantxoutsetTest to have more test coverage by adding more sendtodestination calls with bech32 and bech32m testnet addresses, then test the bech32 and bech32m derivation subsets UTXO amount in [Test extended key derivation](https://github.com/bitcoin/bitcoin/blob/e695d8536e534f1e59de4a62a0d87a93e7a73456/test/functional/rpc_scantxoutset.py#L84). I will add the test coverage in a subsequent Pull request. ACKs for top commit: josibake: ACK https://github.com/bitcoin/bitcoin/pull/27269/commits/d178082996dc3000f42816f89afcf3fa4d31e159 theStack: ACK d178082996dc3000f42816f89afcf3fa4d31e159 ✔️ willcl-ark: ACK d17808299 Tree-SHA512: 312c20ce192c648faf7dd178622700c9b871d755db56c246250e25508c3c19e7b02c0ae901dda11a1794629b9a9429c877168c05e1c4c1dbf41493316e30e7e9
2023-03-24ci: Cache more stuff in the ci images: msan, iwyu, pip, sdksMarcoFalke
2023-03-23Merge bitcoin/bitcoin#26957: bench: update logging benchmarksAndrew Chow
8c47d599b87d6b2d43e7d37ce0aaf4f541535bb9 doc: improve -debuglogfile help to be a bit clearer (jonatack) 20d89d6802b67e2b8c864bedf23673d008e3faab bench: document expected results in logging benchmarks (jonatack) d8deba8c36a42481b1c1e73009d7c9cc2cb25f70 bench: add LogPrintfCategory and LogPrintLevel benchmarks (Jon Atack) 102b2033493f0d61e9763d094cb8a0017f7e3a10 bench: order the logging benchmark code by output (Jon Atack) 4b3fdbf6fe20dc70c8dbdaacce161bc4e76b9c84 bench: update logging benchmark naming for clarity (Jon Atack) 4684aa8733e831d7858d43bec4271d5d026ba183 bench: allow logging benchmarks to be order-independent (Larry Ruane) Pull request description: Update our logging benchmarks for evaluating ongoing work like #25203 and refactoring proposals like #26619 and #26697. - make the logging benchmarks order-independent (Larry Ruane) - add missing benchmarks for the `LogPrintLevel` and `LogPrintfCategory` macros that our logging is migrating to; at some later point it should be feasible to drop some of the previous logging benchmarks - update the logging benchmark naming to be clear which benchmark corresponds to which log macro, and update the ordering to be the same as the output - add clarifying documentation to the logging benchmarks - improve the `-debuglogfile` config option help to be clearer; can be tested by running `./src/bitcoind -help | grep -A4 '\-debuglogfile'` Reviewers can run the logging benchmarks with: ```bash ./src/bench/bench_bitcoin -filter='LogP*.*' ``` ACKs for top commit: LarryRuane: ACK 8c47d599b87d6b2d43e7d37ce0aaf4f541535bb9 martinus: code review & tested ACK 8c47d599b87d6b2d43e7d37ce0aaf4f541535bb9, here are my benchmark results: achow101: ACK 8c47d599b87d6b2d43e7d37ce0aaf4f541535bb9 Tree-SHA512: 705f8720c9ceaf14a1945039c7578a0c17a12215cbc44908099af4ac444561c3f95d833c5a91b325cdd4470737d8a01e2da64db2d542dd7c9a3747fbfdbf213e
2023-03-23test: wallet_create_tx.py fix racefurszy
Because wallets are internally synchronized through the validation interface, and the interface dispatches events on a worker thread, it is possible for a transaction created by the first wallet to not arrive at the second wallet before the second wallet attempts to use one of its outputs. This is because we do not wait for the BroadcastTransaction callback during the wallet's "submit to mempool" process. To address this in the tests, we need to sync the validation queue.
2023-03-23Check that the Timestamp String is validJohn Moffett
The current `FormatISO8601DateTime` function will return an empty string if it encounters an error when converting the `int64_t` seconds since epoch to a formatted date time. In the unlikely case that happens, `strStamped.pop_back()` would be undefined behavior.
2023-03-23Merge bitcoin/bitcoin#27257: refactor, net: End friendship of CNode, ↵fanquake
CConnman and ConnmanTestMsg 3566aa7d495bb783bbd135726238d9f2a9e9f80e [net] Remove CNode friends (dergoegge) 3eac5e7cd1eda6ababb9af9cd72dae08d395993d [net] Add CNode helper for send byte accounting (dergoegge) 60441a3432df10f5d7c15c09c9569f27a793625b scripted-diff: [net] Rename CNode process queue members (dergoegge) 6693c499f7d48aaa1f527a1a860b943fc8442241 [net] Make cs_vProcessMsg a non-recursive mutex (dergoegge) 23d93526545c271b0eed2bd468681864c4213cce [net] Make CNode msg process queue members private (dergoegge) 897e342d6ec320c286753daef01d6eb9839e2c4d [net] Encapsulate CNode message polling (dergoegge) cc5cdf877666c232a94f03faaf430cbeb6968372 [net] Deduplicate marking received message for processing (dergoegge) ad44aa5c64d4ee5f31c867fda26350ab560575b7 [net] Add connection type getter to CNode (dergoegge) Pull request description: We should define clear interfaces between CNode, CConnman and PeerManager. This PR makes a small step in that direction by ending the friendship of CNode, CConnman and ConnmanTestMsg. CNode's message processing queue is made private in the process and its mutex is turned into a non-recursive mutex. ACKs for top commit: jnewbery: utACK 3566aa7d495bb783bbd135726238d9f2a9e9f80e vasild: ACK 3566aa7d495bb783bbd135726238d9f2a9e9f80e theStack: re-ACK 3566aa7d495bb783bbd135726238d9f2a9e9f80e brunoerg: re-ACK 3566aa7d495bb783bbd135726238d9f2a9e9f80e Tree-SHA512: 26b87da5054e32401b693b2904e9c5f40e35a53937c0b6cf44b8597034ad07bacf27d87cdffc54d3e7ccfebde4231ef30a38d326f88cc18133bbb34688ead567