aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-12-01Merge bitcoin/bitcoin#28848: bugfix, Change up submitpackage results to ↵Andrew Chow
return results for all transactions f23ba24aa079d68697d475789cd21bd7b5075550 test_submitpackage: only make a chain of 3 txns (Greg Sanders) e67a345162912ef7c1bfa3c89c7e7c629505f0a3 doc: submitpackage vsize results are sigops-adjusted (Greg Sanders) b67db52c399089e5d4c4202ebb905794dfd050d0 RPC submitpackage: change return format to allow partial errors (Greg Sanders) Pull request description: This was prompted by errors being returned that didn't "make any sense" to me, because it would for example return a "fee too low" error, when the "real" error was the child had something invalid, which disallowed CPFP evaluation. Rather than make judgment calls on what error is important(which is currently just return the "first"!), we simply return all errors and let the callers determine what's best. Added a top level `package_msg` for quick eye-balling of general success of the package. This PR also fixes a couple bugs: 1) Currently we don't actually broadcast a transaction, even if it was entered into our mempool, if a subsequent transaction causes `PKG_TX` failure. 2) "other-wtxid" is uncovered by tests, but IIUC was previously required to return "fees" and "vsize" results, but did not. I just make those results optional. ACKs for top commit: Sjors: Light re-utACK f23ba24aa079d68697d475789cd21bd7b5075550 achow101: ACK f23ba24aa079d68697d475789cd21bd7b5075550 glozow: utACK f23ba24aa079d68697d475789cd21bd7b5075550, thanks for taking the suggestions Tree-SHA512: ebfd716a4fed9e8c2dea3d2181ba6a6171b06718d29ac2324c67b7a30b374d199f7e1739f91ab5d036be172d0479de9bc89c32263ee62143c0338b9b622d0cca
2023-11-30Merge bitcoin/bitcoin#26762: bugfix: Make `CCheckQueue` RAII-styled (attempt 2)Andrew Chow
5b3ea5fa2e7f6dc1c9161ed8b74c9be4bd1e92dd refactor: Move `{MAX,DEFAULT}_SCRIPTCHECK_THREADS` constants (Hennadii Stepanov) 6e17b3168072ab77ed7170ab81327c017877133a refactor: Make `CCheckQueue` non-copyable and non-movable explicitly (Hennadii Stepanov) 8111e74653dc5c93cb510672d99048c3f741d8dc refactor: Drop unneeded declaration (Hennadii Stepanov) 9cf89f7a5b81197e38f58b24be0793b28fe41477 refactor: Make `CCheckQueue` constructor start worker threads (Hennadii Stepanov) d03eaacbcfb276fb638db1b423113ff43bd7ec41 Make `CCheckQueue` destructor stop worker threads (Hennadii Stepanov) be4ff3060b7b43b496dfb5a2c02b114b2b717106 Move global `scriptcheckqueue` into `ChainstateManager` class (Hennadii Stepanov) Pull request description: This PR: - makes `CCheckQueue` RAII-styled - gets rid of the global `scriptcheckqueue` - fixes https://github.com/bitcoin/bitcoin/issues/25448 The previous attempt was in https://github.com/bitcoin/bitcoin/pull/18731. ACKs for top commit: martinus: ACK 5b3ea5fa2e7 achow101: ACK 5b3ea5fa2e7f6dc1c9161ed8b74c9be4bd1e92dd TheCharlatan: ACK 5b3ea5fa2e7f6dc1c9161ed8b74c9be4bd1e92dd Tree-SHA512: 45cca846e7ed107e3930149f0b616ddbaf2648d6cde381f815331b861b5d67ab39e154883ae174b8abb1dae485bc904318c50c51e5d6b46923d89de51c5eadb0
2023-11-30Merge bitcoin/bitcoin#28451: refactor: Remove unused SER_DISK, SER_NETWORK, ↵Ryan Ofsky
CDataStream fa98a097a30bc39f2424c0efd28a7979155faae6 Rename version.h to node/protocol_version.h (MarcoFalke) fa4fbd58169a244c14017c62218e443b18a868ef Remove unused version.h include (MarcoFalke) fa0ae22ff2c608c94b26c85040c4a1c7e9f7cf90 Remove unused SER_NETWORK, SER_DISK (MarcoFalke) fae00fe9c25af80024adda33d9077962964269ea Remove unused CDataStream (MarcoFalke) fa7eb4f5c3d2438f9689cd46b22dcfd50f6bd751 fuzz: Drop unused version from fuzz input format (MarcoFalke) Pull request description: Seems odd to have code that is completely dead. Fix this by removing all of it. ACKs for top commit: sipa: utACK fa98a097a30bc39f2424c0efd28a7979155faae6 ajtowns: ACK fa98a097a30bc39f2424c0efd28a7979155faae6 ryanofsky: Seems odd to not code review ACK fa98a097a30bc39f2424c0efd28a7979155faae6 (looks good) Tree-SHA512: 9f1b9d9f92bda0512610bda6653e892756f637860362a9abfa439faab62de233cbad94b7df78ebacc160d9667aadfed4d9df08c0edefa618c040a049050fb913
2023-11-30Merge bitcoin/bitcoin#28965: guix: remove input labelsfanquake
a4980da1ce5e1947fa73ef7057509a26d2c73cfb guix: remove input labels (fanquake) Pull request description: Migrate package definitions to use the newer format for propogated inputs. See https://guix.gnu.org/manual/en/html_node/package-Reference.html#index-inputs_002c-of-packages. This change remains compatible with Guix 1.2.0+. See also: https://guix.gnu.org/blog/2021/the-big-change/ Guix Build (aarch64 & x86_64): ```bash 4627c4eb83764f787f48b2aeab87b65bbaacb9ebfe33a5733d713165eec779af guix-build-a4980da1ce5e/output/aarch64-linux-gnu/SHA256SUMS.part ecdd6db7fe0ee45fee1bd91ceaf23c0d8154ed5ad73586b74d86ee36964e18d4 guix-build-a4980da1ce5e/output/aarch64-linux-gnu/bitcoin-a4980da1ce5e-aarch64-linux-gnu-debug.tar.gz 5f78980f95f3968248c27c4acd9993ec150ed3fa32802d89ccc6c6dc661a41bd guix-build-a4980da1ce5e/output/aarch64-linux-gnu/bitcoin-a4980da1ce5e-aarch64-linux-gnu.tar.gz 9af3dff2a8a4decf73048acea67d05f76d54ff84cecde833ea6860825bdaddc3 guix-build-a4980da1ce5e/output/arm-linux-gnueabihf/SHA256SUMS.part f53c6a5a229462a71f477db6f91112a2e9d31aafef294fca3c893916e904e2ed guix-build-a4980da1ce5e/output/arm-linux-gnueabihf/bitcoin-a4980da1ce5e-arm-linux-gnueabihf-debug.tar.gz 6ed01ecb71ed32098f70c8d667b1a48305b4b5b10f7bfc575eb8b5f787fe9534 guix-build-a4980da1ce5e/output/arm-linux-gnueabihf/bitcoin-a4980da1ce5e-arm-linux-gnueabihf.tar.gz 6ceaaa7dc2959626f280b1e1de28ac9ff9223216e1a3fa333cdd55c416ff550d guix-build-a4980da1ce5e/output/arm64-apple-darwin/SHA256SUMS.part 633df184701a21746ee56a5de6e3705c229eac8712b9a1563a82f4de52130d05 guix-build-a4980da1ce5e/output/arm64-apple-darwin/bitcoin-a4980da1ce5e-arm64-apple-darwin-unsigned.tar.gz 23b94cb4e870d71ae60bbb5a974362bbfabe901a73eeeb9d3bb5fbd70f5d649e guix-build-a4980da1ce5e/output/arm64-apple-darwin/bitcoin-a4980da1ce5e-arm64-apple-darwin-unsigned.zip f60b802b3e92fb9cf3b45b835f6cfb8988221cfdd39146ee3a11dbab977733bc guix-build-a4980da1ce5e/output/arm64-apple-darwin/bitcoin-a4980da1ce5e-arm64-apple-darwin.tar.gz 9df0a08896a2bc42f97193b34beb29536783eab04d3ae5fe5642258188fc6e55 guix-build-a4980da1ce5e/output/dist-archive/bitcoin-a4980da1ce5e.tar.gz 3fef561dd35dd4a4e9d0308591ebbdd5b1d26814ea48ff1f0c2732c62aef961b guix-build-a4980da1ce5e/output/powerpc64-linux-gnu/SHA256SUMS.part 187b8283f443bb29ed27546f983a5d098dfe49a059f52bc8ba0607242d37a5ae guix-build-a4980da1ce5e/output/powerpc64-linux-gnu/bitcoin-a4980da1ce5e-powerpc64-linux-gnu-debug.tar.gz 3f520b4bf1fbf955f9d25b5aa333f90989428cc9e417431998daa7c1041cb3bb guix-build-a4980da1ce5e/output/powerpc64-linux-gnu/bitcoin-a4980da1ce5e-powerpc64-linux-gnu.tar.gz 39abec9623d5086990a303c964a36e7f767bd6218e57261df95b616603eca0b8 guix-build-a4980da1ce5e/output/powerpc64le-linux-gnu/SHA256SUMS.part b71352ad4e8849937e42ad897d75f65866a529fd4d18059c5e6c39659a17f723 guix-build-a4980da1ce5e/output/powerpc64le-linux-gnu/bitcoin-a4980da1ce5e-powerpc64le-linux-gnu-debug.tar.gz 4fb92753e1baa253780088649bfe6816525e0ada7b17c5acc57ec804d9ab32f8 guix-build-a4980da1ce5e/output/powerpc64le-linux-gnu/bitcoin-a4980da1ce5e-powerpc64le-linux-gnu.tar.gz ed422d4365354a16b98ba7d4184a118ce98473e1b70ac8ba62a617aa3af3c784 guix-build-a4980da1ce5e/output/riscv64-linux-gnu/SHA256SUMS.part 9f002a8893748b0f6b581ab9d158a524e32140a3c271604b50cf1580b30b3000 guix-build-a4980da1ce5e/output/riscv64-linux-gnu/bitcoin-a4980da1ce5e-riscv64-linux-gnu-debug.tar.gz 6844df378ad2f4c209d323ffa3e77c6aa28f7f087b8755b2baa2a0d1119c365b guix-build-a4980da1ce5e/output/riscv64-linux-gnu/bitcoin-a4980da1ce5e-riscv64-linux-gnu.tar.gz ce0e27b6d831d5836ba3c5c8be377f08f4b92e9f390a7242aca5b68e67d1975e guix-build-a4980da1ce5e/output/x86_64-apple-darwin/SHA256SUMS.part 329c990fa71e694869bdcdd3e327a28eed2ad0b12f06d86e0957c6cb05e88910 guix-build-a4980da1ce5e/output/x86_64-apple-darwin/bitcoin-a4980da1ce5e-x86_64-apple-darwin-unsigned.tar.gz c44ec330e40285c1eba421f8d2e70a1538742fadbcc87f7f2f5a49bd83a72a7b guix-build-a4980da1ce5e/output/x86_64-apple-darwin/bitcoin-a4980da1ce5e-x86_64-apple-darwin-unsigned.zip e3626284d9bd61b67b170433d7bdb226b0f7f63d20dad4dd0482e55d7418ef64 guix-build-a4980da1ce5e/output/x86_64-apple-darwin/bitcoin-a4980da1ce5e-x86_64-apple-darwin.tar.gz 3e2a16e9dbb89d86e1e1884e0277160c3d1953c5ea5f88f29fe0a093a6f89599 guix-build-a4980da1ce5e/output/x86_64-linux-gnu/SHA256SUMS.part eb389467219c4af983f30e50e1f8d48601ed74690538bff76a55c0e585594a92 guix-build-a4980da1ce5e/output/x86_64-linux-gnu/bitcoin-a4980da1ce5e-x86_64-linux-gnu-debug.tar.gz d81fd209c03e74aebd7b28b42d3ea21f57957ede7fcb7baae721c8abb2885b6c guix-build-a4980da1ce5e/output/x86_64-linux-gnu/bitcoin-a4980da1ce5e-x86_64-linux-gnu.tar.gz 51de8a813459c1ce79bf9a2e39bf9f17b4771c6146ef55829f3ee0415d0ec9ec guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/SHA256SUMS.part 63dc5386467d0fc7f3c7b621273d019a822551fc9ac00be94c7d4ee446201836 guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/bitcoin-a4980da1ce5e-win64-debug.zip 3a4f2ef53165031648b1c3badc05698891d7c6541de3f67e9df513395c5c88c3 guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/bitcoin-a4980da1ce5e-win64-setup-unsigned.exe 92f0d67fbb8b37b6026287073df95431c961ad1820d7f8b9cd3b1ffcf58d4188 guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/bitcoin-a4980da1ce5e-win64-unsigned.tar.gz 3414b6c99d0bbd9ad88c0f88aafa70561dc107d1180fd42c90ad85033871c160 guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/bitcoin-a4980da1ce5e-win64.zip ``` ACKs for top commit: TheCharlatan: lgtm ACK a4980da1ce5e1947fa73ef7057509a26d2c73cfb Tree-SHA512: cbb8ca9613125d4c443124b99a600b44533688f322c8535c9d82fb3bb8de66b46e63c6aafcf2917f169494181ece6efd02e2efaa32ef4f138a520731540d600c
2023-11-30Merge bitcoin/bitcoin#28938: msvc: Update vcpkg manifestfanquake
6d05c4fd138b80168d14a8cf1dbcca43782851af msvc: Specify `boost-date-time` package explicitly (Hennadii Stepanov) 1f97e51d737c1a5a3e4503db3373a792f87f3bc1 msvc: Update vcpkg manifest baseline up to "2023.08.09 Release" (Hennadii Stepanov) 2d2ef2f14f352438afab2e3251d07fd100be7076 msvc: No need to specify the default feature for `libevent` package (Hennadii Stepanov) Pull request description: Last time we updated dependency packages used when compiling with MSVC in https://github.com/bitcoin/bitcoin/pull/26891. Then we [switched](https://github.com/bitcoin/bitcoin/pull/27335) to specifying the `builtin-baseline` in the `vcpkg.json` manifest file, which made checking out the entire vcpkg repository to a specific commit or tag unneeded. This PR updates the manifest baseline from [2023.01.09](https://github.com/microsoft/vcpkg/releases/tag/2023.01.09) to [2023.08.09](https://github.com/microsoft/vcpkg/releases/tag/2023.08.09): - berkeleydb: 4.8.30#8 --> 4.8.30#9 - boost: 1.81.0 --> 1.82.0#2 - sqlite3: 3.40.0#1 --> 3.42.0#1 - zeromq: 4.3.4#6 --> 2023-06-20#1 The most recent https://github.com/microsoft/vcpkg/releases/tag/2023.11.20 tag is still unavailable in the vcpkg installation in the current GHA Windows image (the head commit is https://github.com/microsoft/vcpkg/commit/2b14b606cea54573eec11080a3ac00737958b6d6 only). The other https://github.com/microsoft/vcpkg/releases/tag/2023.10.19 tag [introduces](https://github.com/boostorg/process/commit/0c42a58eacab6a96b19196e399307bad8a938a27) a warning C4297 in the Boost.Process 1.83 that is [fixed](https://github.com/boostorg/process/pull/340) in the upcoming version 1.84. ACKs for top commit: fanquake: ACK 6d05c4fd138b80168d14a8cf1dbcca43782851af Tree-SHA512: c71c46c13ad5a6d39ae72982b7765f690e7391092e4983887a53dceeee507c8fc256e887351bbe35c051bf88d2babeb283e17a2588ee86ec9020c4ba426bfcd7
2023-11-30Merge bitcoin/bitcoin#28951: fuzz: BIP324: damage ciphertext/aad in full ↵fanquake
byte range e67634ef19db310511a22f461bb1af7edb3d862b fuzz: BIP324: damage ciphertext/aad in full byte range (Sebastian Falbesoner) Pull request description: This PR is a tiny improvement for the `bip324_cipher_roundtrip` fuzz target: currently the damaging of input data for decryption (either ciphertext or aad) only ever happens in the lower nibble within the byte at the damage position, as the bit position for the `damage_val` byte was calculated with `damage_bit & 3` (corresponding to `% 4`) rather than `damage_bit & 7` (corresponding to the expected `% 8`). Noticed while reviewing #28263 which uses similar constructs. ACKs for top commit: stratospher: ACK e67634ef. dergoegge: utACK e67634ef19db310511a22f461bb1af7edb3d862b Tree-SHA512: 1bab4df28708e079874feee939beef45eff235215375c339decc696f4c9aef04e4b417322b045491c8aec6e88ec8ec2db564e27ef1b0be352b6ff4ed38bad49a
2023-11-30Merge bitcoin/bitcoin#28954: ci: Reduce use of bash -cfanquake
fad82fea2bef88c9f11e25ca43c7886a2b9b5da2 ci: Reduce use of bash -c (MarcoFalke) fafcee48748d4a4ff229ae94d2bc3a73c5c1db22 ci: Rename test script to 03_test_script.sh (MarcoFalke) Pull request description: It is confusing to treat commands as a single string. This change is also required to support paths and strings with spaces in them in the future. ACKs for top commit: RandyMcMillan: utACK fad82fea2bef88c9f11e25ca43c7886a2b9b5da2 vasild: ACK fad82fea2bef88c9f11e25ca43c7886a2b9b5da2 Tree-SHA512: fb79469d809400739e53da203842fda838f2ec9ab8dcd5e622ccd3db651d629161323bfcc04301562f13f5c407e8865036478a4ac7f6b5265dc4dda1a320c23d
2023-11-30Merge bitcoin/bitcoin#26077: guix: switch from `guix environment` to `guix ↵fanquake
shell` 66c4b58e518aff08030b3c879c44af7716110619 guix: switch from guix environment to guix shell (fanquake) Pull request description: See https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-environment.html. > Deprecation warning: The guix environment command is deprecated in favor of guix shell, which performs similar functions but is more convenient to use. See Invoking guix shell. > Being deprecated, guix environment is slated for eventual removal, but the Guix project is committed to keeping it until May 1st, 2023. Please get in touch with us at guix-devel@gnu.org if you would like to discuss it. See also https://guix.gnu.org/blog/2021/from-guix-environment-to-guix-shell/ for a blog post and additional details. Guix `shell` was added to Guix ~1 year ago, in this commit, https://git.savannah.gnu.org/cgit/guix.git/commit/?id=80edb7df6586464aa40e84e103f0045452de95db, which isn't part of the 1.3.0 release binaries out of the box, but invoking a `guix pull`, and updating will make it available. i.e: ```bash bash-5.1# guix --version guix (GNU Guix) 1.3.0 Copyright (C) 2021 the Guix authors License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. bash-5.1# guix shell guix: shell: command not found Try 'guix --help' for more information. bash-5.1# guix pull Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'... Authenticating channel 'guix', commits 9edb3f6 to 7a980bb (6,278 new commits)... Building from this channel: guix https://git.savannah.gnu.org/git/guix.git7a980bb < snip > building /gnu/store/2wwwsczxcw61m05p4mv0kf0advx4fqsb-inferior-script.scm.drv... building package cache... building profile with 1 package... New in this revision: 6,866 new packages: a2jmidid, abjad, bash-5.1# guix help shell Usage: guix shell [OPTION] PACKAGES... [-- COMMAND...] Build an environment that includes PACKAGES and execute COMMAND or an interactive shell in that environment. ``` ACKs for top commit: TheCharlatan: ACK 66c4b58e518aff08030b3c879c44af7716110619 Tree-SHA512: caa3fd2ca8d0f261c50ecdda3728a75389d24d89b51293dedc704ee77ab1342b2bb08ca8c871dcb4646229f056ec86cb15500934ded1b0c501a3ffc25aaa8ae6
2023-11-30Rename version.h to node/protocol_version.hMarcoFalke
2023-11-30Remove unused version.h includeMarcoFalke
2023-11-30Remove unused SER_NETWORK, SER_DISKMarcoFalke
2023-11-30Remove unused CDataStreamMarcoFalke
2023-11-30fuzz: Drop unused version from fuzz input formatMarcoFalke
2023-11-29guix: switch from guix environment to guix shellfanquake
See https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-environment.html. > Deprecation warning: The guix environment command is deprecated in favor of guix shell, which performs similar functions but is more convenient to use. See Invoking guix shell. > Being deprecated, guix environment is slated for eventual removal, but the Guix project is committed to keeping it until May 1st, 2023. Please get in touch with us at guix-devel@gnu.org if you would like to discuss it. See also https://guix.gnu.org/blog/2021/from-guix-environment-to-guix-shell/ for a blog post and additional details. Guix shell was added to guix in this commit, https://git.savannah.gnu.org/cgit/guix.git/commit/?id=80edb7df6586464aa40e84e103f0045452de95db which isn't part of the 1.3.0 release binaries out of the box, but invoking a guix pull, and updating will make it available for all builders.
2023-11-29test_submitpackage: only make a chain of 3 txnsGreg Sanders
2023-11-29doc: submitpackage vsize results are sigops-adjustedGreg Sanders
2023-11-29RPC submitpackage: change return format to allow partial errorsGreg Sanders
Behavior prior to this commit allows some transactions to enter into the local mempool but not be reported to the user when encountering a PackageValidationResult::PCKG_TX result. This is further compounded with the fact that any transactions submitted to the mempool during this call would also not be relayed to peers, resulting in unexpected behavior. Fix this by, if encountering a package error, reporting all wtxids, along with a new error field, and broadcasting every transaction that was found in the mempool after submission. Note that this also changes fees and vsize to optional, which should also remove an issue with other-wtxid cases.
2023-11-29Merge bitcoin/bitcoin#28969: fuzz: Avoid signed-integer-overflow in ↵fanquake
wallet_notifications fuzz target fab164f342ae089b3a8ccd33e6e3fd6de6e2217e fuzz: Avoid signed-integer-overflow in wallet_notifications fuzz target (MarcoFalke) Pull request description: Should avoid ``` policy/feerate.cpp:29:63: runtime error: signed integer overflow: 77600710321911316 * 149 cannot be represented in type 'int64_t' (aka 'long') #0 0x563a1775ed66 in CFeeRate::GetFee(unsigned int) const src/policy/feerate.cpp:29:63 #1 0x563a15913a69 in wallet::COutput::COutput(COutPoint const&, CTxOut const&, int, int, bool, bool, bool, long, bool, std::optional<CFeeRate>) src/./wallet/coinselection.h:91:57 #2 0x563a16fa6a6d in wallet::FetchSelectedInputs(wallet::CWallet const&, wallet::CCoinControl const&, wallet::CoinSelectionParams const&) src/wallet/spend.cpp:297:17 #3 0x563a16fc4512 in wallet::CreateTransactionInternal(wallet::CWallet&, std::vector<wallet::CRecipient, std::allocator<wallet::CRecipient>> const&, int, wallet::CCoinControl const&, bool) src/wallet/spend.cpp:1105:33 #4 0x563a16fbec74 in wallet::CreateTransaction(wallet::CWallet&, std::vector<wallet::CRecipient, std::allocator<wallet::CRecipient>> const&, int, wallet::CCoinControl const&, bool) src/wallet/spend.cpp:1291:16 #5 0x563a16fcf6df in wallet::FundTransaction(wallet::CWallet&, CMutableTransaction&, long&, int&, bilingual_str&, bool, std::set<int, std::less<int>, std::allocator<int>> const&, wallet::CCoinControl) src/wallet/spend.cpp:1361:16 #6 0x563a1597b7b9 in wallet::(anonymous namespace)::FuzzedWallet::FundTx(FuzzedDataProvider&, CMutableTransaction) src/wallet/test/fuzz/notifications.cpp:162:15 #7 0x563a15958240 in wallet::(anonymous namespace)::wallet_notifications_fuzz_target(Span<unsigned char const>)::$_0::operator()() const src/wallet/test/fuzz/notifications.cpp:228:23 #8 0x563a15958240 in unsigned long CallOneOf<wallet::(anonymous namespace)::wallet_notifications_fuzz_target(Span<unsigned char const>)::$_0, wallet::(anonymous namespace)::wallet_notifications_fuzz_target(Span<unsigned char const>)::$_1>(FuzzedDataProvider&, wallet::(anonymous namespace)::wallet_notifications_fuzz_target(Span<unsigned char const>)::$_0, wallet::(anonymous namespace)::wallet_notifications_fuzz_target(Span<unsigned char const>)::$_1) src/./test/fuzz/util.h:43:27 #9 0x563a15958240 in wallet::(anonymous namespace)::wallet_notifications_fuzz_target(Span<unsigned char const>) src/wallet/test/fuzz/notifications.cpp:196:9 #10 0x563a15fdef0c in std::function<void (Span<unsigned char const>)>::operator()(Span<unsigned char const>) const /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:591:9 #11 0x563a15fdef0c in LLVMFuzzerTestOneInput src/test/fuzz/fuzz.cpp:178:5 #12 0x563a158032a4 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) (/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0x19822a4) (BuildId: 8acb42ad599d7f6d25b6f93e18fd564d80df7c06) #13 0x563a15802999 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) (/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0x1981999) (BuildId: 8acb42ad599d7f6d25b6f93e18fd564d80df7c06) #14 0x563a15804586 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::vector<fuzzer::SizedFile, std::allocator<fuzzer::SizedFile>>&) (/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0x1983586) (BuildId: 8acb42ad599d7f6d25b6f93e18fd564d80df7c06) #15 0x563a15804aa7 in fuzzer::Fuzzer::Loop(std::vector<fuzzer::SizedFile, std::allocator<fuzzer::SizedFile>>&) (/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0x1983aa7) (BuildId: 8acb42ad599d7f6d25b6f93e18fd564d80df7c06) #16 0x563a157f21fb in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) (/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0x19711fb) (BuildId: 8acb42ad599d7f6d25b6f93e18fd564d80df7c06) #17 0x563a1581c766 in main (/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0x199b766) (BuildId: 8acb42ad599d7f6d25b6f93e18fd564d80df7c06) #18 0x7f499e17b0cf (/lib/x86_64-linux-gnu/libc.so.6+0x280cf) (BuildId: 96ab1a8f3b2c9a2ed37c7388615e6a726d037e89) #19 0x7f499e17b188 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28188) (BuildId: 96ab1a8f3b2c9a2ed37c7388615e6a726d037e89) #20 0x563a157e70c4 in _start (/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0x19660c4) (BuildId: 8acb42ad599d7f6d25b6f93e18fd564d80df7c06) SUMMARY: UndefinedBehaviorSanitizer: signed-integer-overflow policy/feerate.cpp:29:63 in MS: 0 ; base unit: 0000000000000000000000000000000000000000 0x3f,0x0,0x2f,0x5f,0x5f,0x5f,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0xff,0xff,0xff,0xff,0xff,0x53,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x13,0x5e,0x5f,0x5f,0x8,0x25,0x0,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x8,0x25,0xca,0x7f,0x5f,0x5f,0x5f,0x13,0x13,0x5f,0x5f,0x5f,0x2,0xdb,0xca,0x0,0x0,0xe7,0xe6,0x66,0x65,0x0,0x0,0x0,0x0,0x44,0x3f,0xa,0xa,0xff,0xff,0xff,0xff,0xff,0x61,0x76,0x6f,0x69,0x0,0xb5,0x15, ?\000/___}}}}}}}}}}}}}}}}}}}}\377\377\377\377\377S\377\377\377\377\377\000\000\000\000\000\000\023^__\010%\000______\010%\312\177___\023\023___\002\333\312\000\000\347\346fe\000\000\000\000D?\012\012\377\377\377\377\377avoi\000\265\025 artifact_prefix='./'; Test unit written to ./crash-4d3bac8a64d4e58b2f0943e6d28e6e1f16328d7d Base64: PwAvX19ffX19fX19fX19fX19fX19fX19fX3//////1P//////wAAAAAAABNeX18IJQBfX19fX18IJcp/X19fExNfX18C28oAAOfmZmUAAAAARD8KCv//////YXZvaQC1FQ== ACKs for top commit: dergoegge: ACK fab164f342ae089b3a8ccd33e6e3fd6de6e2217e brunoerg: ACK fab164f342ae089b3a8ccd33e6e3fd6de6e2217e Tree-SHA512: f416828f4394aa7303ee437f141e9bbd23c0e0f1b830e4ef3932338858249ba68a811b9837c5b7ad8c6ab871b6354996434183597c1a910a8d8e8d829693e4b2
2023-11-29Merge bitcoin/bitcoin#28486: test, bench: Initialize and terminate use of ↵fanquake
Winsock properly fd4c6a10f2285f16c5d0215eb56a3060441f3ef2 test: Setup networking globally (Hennadii Stepanov) Pull request description: On the master branch, when compiling without external signer support, the `bench_bitcoin.exe` does not initialize Winsock DLL that is required, for example, here: https://github.com/bitcoin/bitcoin/blob/459272d639b9547f68000d2b9a5a0d991d477de5/src/bench/addrman.cpp#L124 Moreover, Windows docs explicitly [state](https://learn.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-wsacleanup) that `WSAStartup` and `WSACleanup` must be balanced: > There must be a call to `WSACleanup` for each successful call to `WSAStartup`. Only the final `WSACleanup` function call performs the actual cleanup. The preceding calls simply decrement an internal reference count in the WS2_32.DLL. That is not the case for our unit tests because the `SetupNetworking()` call is a part of the `BasicTestingSetup` fixture and is invoked multiple times, while `~CNetCleanup()` is invoked once only, at the end of the test binary execution. This PR fixes Winsock DLL initialization and termination. More docs: - https://learn.microsoft.com/en-us/windows/win32/winsock/initializing-winsock - https://learn.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-wsastartup - https://learn.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-wsacleanup Fix https://github.com/bitcoin/bitcoin/issues/28940. ACKs for top commit: maflcko: lgtm ACK fd4c6a10f2285f16c5d0215eb56a3060441f3ef2 Tree-SHA512: d360eaf776943f7f7a35ed5a5f9f3228d9e3d18eb824e5997cdc8eadddf466abe9f2da4910ee3bb86bf5411061e758259f7e1ec344f234ef7996f1bf8781dcda
2023-11-29Merge bitcoin/bitcoin#28968: fuzz: Fix nullptr deref in scriptpubkeymanfanquake
faecde9102f2e4199df3ec760f9378b114a87531 fuzz: Fix nullptr deref in scriptpubkeyman (MarcoFalke) Pull request description: This should fix the UB that was found by review (https://github.com/bitcoin/bitcoin/pull/28578#discussion_r1404246109) and by fuzzing (https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=64487) ACKs for top commit: dergoegge: utACK faecde9102f2e4199df3ec760f9378b114a87531 brunoerg: crACK faecde9102f2e4199df3ec760f9378b114a87531 Tree-SHA512: ff726ed632d8d369c96d316bafebe87ff385e47b74b1d1da79409ddf296559eb991431883858057527e5df2414c01812ecbc99c21c69020228b0747f32b03121
2023-11-29fuzz: Avoid signed-integer-overflow in wallet_notifications fuzz targetMarcoFalke
2023-11-29fuzz: Fix nullptr deref in scriptpubkeymanMarcoFalke
Also, add missing includes to scriptpubkeyman. Also, export dependecies of the BasicTestingSetup from setup_common.h, to avoid having to include them when setup_common.h is already included.
2023-11-29ci: Reduce use of bash -cMarcoFalke
It is confusing to treat commands as a single string. This change is also required to support paths and strings with spaces in them in the future. This requires replacing TEST_RUNNER_ENV with a global export, because it no longer works. See: ```bash $ export ENV="A=1" && $ENV ls bash: A=1: command not found... ``` Or in the CI task: + DIR_UNIT_TEST_DATA=/ci_container_base/ci/scratch/qa-assets/unit_test_data/ + LD_LIBRARY_PATH=/ci_container_base/depends/i686-pc-linux-gnu/lib + BITCOIND=bitcoin-node make -j10 check VERBOSE=1 /ci_container_base/ci/test/03_test_script.sh: line 166: BITCOIND=bitcoin-node: command not found https://github.com/bitcoin/bitcoin/pull/28954/checks?check_run_id=19096858944 https://cirrus-ci.com/task/6718317604372480
2023-11-29Merge bitcoin/bitcoin#28958: refactor: Use Txid in CMerkleBlockfanquake
fa02c08c93e5867b7ea07d79ca1c0917dcde88e0 refactor: Use Txid in CMerkleBlock (MarcoFalke) Pull request description: This should also fix a gcc-13 compiler warning, see https://github.com/bitcoin/bitcoin/pull/28922#discussion_r1407856376 ``` rpc/txoutproof.cpp: In lambda function: rpc/txoutproof.cpp:72:33: error: possibly dangling reference to a temporary [-Werror=dangling-reference] 72 | const Coin& coin = AccessByTxid(active_chainstate.CoinsTip(), Txid::FromUint256(tx)); | ^~~~ rpc/txoutproof.cpp:72:52: note: the temporary was destroyed at the end of the full expression ‘AccessByTxid((*(const CCoinsViewCache*)(&(& active_chainstate)->Chainstate::CoinsTip())), transaction_identifier<false>::FromUint256((* & tx)))’ 72 | const Coin& coin = AccessByTxid(active_chainstate.CoinsTip(), Txid::FromUint256(tx)); | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1plus: all warnings being treated as errors ACKs for top commit: TheCharlatan: Re-ACK fa02c08c93e5867b7ea07d79ca1c0917dcde88e0 dergoegge: reACK fa02c08c93e5867b7ea07d79ca1c0917dcde88e0 Tree-SHA512: 2e6837b9d0c90bd6e9d766330e7086d68c6ec80bb27fe2cfc4702b251b00d91a79f8bfbc76d998cbcd90bee5317402cf617f61099eee96d94e7ac8f37ba7a642
2023-11-29Merge bitcoin/bitcoin#28966: test: Add missing ↵fanquake
CBlockPolicyEstimator::processBlockTx suppression fa9dc92c5362431852a9cfe152c6fdb819710eb4 test: Add missing CBlockPolicyEstimator::processBlockTx suppression (MarcoFalke) Pull request description: Fixes https://github.com/bitcoin/bitcoin/pull/28865#discussion_r1408954537 ``` # FUZZ=policy_estimator UBSAN_OPTIONS="suppressions=/root/fuzz_dir/scratch/fuzz_gen/code/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1:report_error_type=1" ./src/test/fuzz/fuzz /tmp/crash-154b42214e70781a9c1ad72d3f2693913dcf8c06 ... policy/fees.cpp:632:27: runtime error: implicit conversion from type 'unsigned int' of value 4294574080 (32-bit, unsigned) to type 'int' changed the value to -393216 (32-bit, signed) #0 0x55cbbe10daee in CBlockPolicyEstimator::processBlockTx(unsigned int, CTxMemPoolEntry const*) src/policy/fees.cpp:632:27 #1 0x55cbbe10e361 in CBlockPolicyEstimator::processBlock(unsigned int, std::vector<CTxMemPoolEntry const*, std::allocator<CTxMemPoolEntry const*>>&) src/policy/fees.cpp:680:13 #2 0x55cbbd84af48 in policy_estimator_fuzz_target(Span<unsigned char const>)::$_1::operator()() const src/test/fuzz/policy_estimator.cpp:69:40 #3 0x55cbbd84af48 in unsigned long CallOneOf<policy_estimator_fuzz_target(Span<unsigned char const>)::$_0, policy_estimator_fuzz_target(Span<unsigned char const>)::$_1, policy_estimator_fuzz_target(Span<unsigned char const>)::$_2, policy_estimator_fuzz_target(Span<unsigned char const>)::$_3>(FuzzedDataProvider&, policy_estimator_fuzz_target(Span<unsigned char const>)::$_0, policy_estimator_fuzz_target(Span<unsigned char const>)::$_1, policy_estimator_fuzz_target(Span<unsigned char const>)::$_2, policy_estimator_fuzz_target(Span<unsigned char const>)::$_3) src/./test/fuzz/util.h:43:27 #4 0x55cbbd84af48 in policy_estimator_fuzz_target(Span<unsigned char const>) src/test/fuzz/policy_estimator.cpp:38:9 #5 0x55cbbda1cc18 in std::function<void (Span<unsigned char const>)>::operator()(Span<unsigned char const>) const /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:591:9 #6 0x55cbbda1cc18 in LLVMFuzzerTestOneInput src/test/fuzz/fuzz.cpp:178:5 #7 0x55cbbd26a944 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x190e944) (BuildId: ffb89e0b86c093ca3bdeae6f85537737a4e3b42d) #8 0x55cbbd253916 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x18f7916) (BuildId: ffb89e0b86c093ca3bdeae6f85537737a4e3b42d) #9 0x55cbbd25945a in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x18fd45a) (BuildId: ffb89e0b86c093ca3bdeae6f85537737a4e3b42d) #10 0x55cbbd284026 in main (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x1928026) (BuildId: ffb89e0b86c093ca3bdeae6f85537737a4e3b42d) #11 0x7fe4aa8280cf (/lib/x86_64-linux-gnu/libc.so.6+0x280cf) (BuildId: 96ab1a8f3b2c9a2ed37c7388615e6a726d037e89) #12 0x7fe4aa828188 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28188) (BuildId: 96ab1a8f3b2c9a2ed37c7388615e6a726d037e89) #13 0x55cbbd24e494 in _start (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x18f2494) (BuildId: ffb89e0b86c093ca3bdeae6f85537737a4e3b42d) SUMMARY: UndefinedBehaviorSanitizer: implicit-integer-sign-change policy/fees.cpp:632:27 in ``` ``` # base64 /tmp/crash-154b42214e70781a9c1ad72d3f2693913dcf8c06 AQEAAAAAADkFlVwAAQEAAAAAADkFlZVcACTDSSsP3746IAZrH48khwMAAQEB/QEALQAACwAAAAAA FgAAAAAAAQAABgAAAAAAAAAAAAAAAAAAACcQAAAAAAAAAAAAAAAAAAAAAAD6AAAAOQWVXAABAQAA AAAAOQWVlVwAIMNJKw/fvjogBmsfjySHAwABAQH9AQAtAAALAAAAAAAAAAABAAAGAAAAAAAAAAAA AAAAAAAAJxAAAAAAAAAAAAAAAAAAAAAAAPr/AAAAAAAAAAAAAAQAAAAA/wAAAAAAAAAAAAAEAAAA AAEBAeAIAVwBXAAA/jbSBvwBKABSKBwBYgEB2wAEkvXInHYAAAAAAAAAvgAAAAAA/9//6v8e/xIk MgAlAiUAOw== ACKs for top commit: fanquake: ACK fa9dc92c5362431852a9cfe152c6fdb819710eb4 dergoegge: utACK fa9dc92c5362431852a9cfe152c6fdb819710eb4 Tree-SHA512: 3898c17c928ecc2bcc8c7086359e9ae00da2197b4d8e10c7bf6d12415326c9bca3ef6e1d8d3b83172ccfa604ce7e7371415262ba705225f9ea4da8b1a7eb0306
2023-11-29test: Add missing CBlockPolicyEstimator::processBlockTx suppressionMarcoFalke
2023-11-28Merge bitcoin/bitcoin#28579: refactor: Remove redundant checks in ↵Andrew Chow
compat/assumptions.h fa1a38470697796a1a67397a815c8f8256f59224 Move compat.h include from system.h to system.cpp (MarcoFalke) 88887531b704f3943fdb33abbdd5378ecfeee14f Move compat/assumptions.h include to one place that actually needs it (MarcoFalke) 77774110f4dd591a71441851813d59c03c9e3c78 Remove __cplusplus from compat/assumptions.h (MarcoFalke) faa3d4f1d8ecff444be53215d72e32d71d9ce138 Remove duplicate NDEBUG check from compat/assumptions.h (MarcoFalke) Pull request description: Generally, compile-time checks should be close to the code that use them. Especially, since `compat/assumptions.h` is only included in one place, where iwyu suggests to remove it. Fix all issues: * The `NDEBUG` check is used in `util/check`, so it is redundant in `compat/assumptions.h`. * The `__cplusplus` check is redundant with `doc/dependencies.md` (see commit message). * Add missing `// IWYU pragma: keep` to avoid removing the include by accident. ACKs for top commit: achow101: ACK fa1a38470697796a1a67397a815c8f8256f59224 TheCharlatan: re-ACK fa1a38470697796a1a67397a815c8f8256f59224 theuni: ACK fa1a38470697796a1a67397a815c8f8256f59224 Tree-SHA512: f8b6db84be5d8844a2267345c0b1405fcbc39b8b5eeaa24db5b8412a74145fe44cf188b6b0c39cc2b062690ed37ca5b4662473484afe28dbec6469e79961389b
2023-11-28Merge bitcoin/bitcoin#28554: bugfix: throw an error if an invalid parameter ↵Andrew Chow
is passed to getnetworkhashps RPC 9ac114e5cd9d8ade3a1d9f3d76a08ff59a3f1658 Throw error if invalid parameters passed to getnetworkhashps RPC endpoint (Jameson Lopp) Pull request description: When writing some scripts that iterated over many blocks to generate hashrate estimates I realized that my script was going out of range of the current chain tip height but was not encountering any errors. I believe that passing an invalid block height to this function but receiving the hashrate estimate for the chain tip instead should be considered unexpected behavior. ACKs for top commit: Sjors: re-utACK 9ac114e5cd9d8ade3a1d9f3d76a08ff59a3f1658 kevkevinpal: reACK [9ac114e](https://github.com/bitcoin/bitcoin/pull/28554/commits/9ac114e5cd9d8ade3a1d9f3d76a08ff59a3f1658) achow101: ACK 9ac114e5cd9d8ade3a1d9f3d76a08ff59a3f1658 Tree-SHA512: eefb465c2dd654fc48267f444e1809597ec5363cdd131ea9ec812458fed1e4bffbbbb0617d74687c9f7bb16274b598d8292f5eeb7953421e5d2a8dc2cc081f2b
2023-11-28Merge bitcoin/bitcoin#28903: refactor: Make CTxMemPoolEntry only explicitly ↵Andrew Chow
copyable 705e3f1de00bf30d728addd52a790a139d948e32 refactor: Make CTxMemPoolEntry only explicitly copyable (TheCharlatan) Pull request description: This has the goal of prohibiting users from accidentally creating runtime failures, e.g. by interacting with iterator_to with a copied entry. This was brought up here: https://github.com/bitcoin/bitcoin/pull/28886#issuecomment-1814794954. CTxMemPoolEntry is already implicitly not move-constructable. So be explicit about this and use a std::list to collect the values in the policy_estimator fuzz test instead of a std::vector. ACKs for top commit: maflcko: ACK 705e3f1de00bf30d728addd52a790a139d948e32 🌯 achow101: ACK 705e3f1de00bf30d728addd52a790a139d948e32 ajtowns: ACK 705e3f1de00bf30d728addd52a790a139d948e32 ismaelsadeeq: ACK 705e3f1de00bf30d728addd52a790a139d948e32 Tree-SHA512: 62056905c679c919d00f9ae065ed66ac986e7e7062015aea542843d8deecda57104d7a68d002f7b20afa3164f8e9215d2d2d002c167224129540e3b1bd0712cc
2023-11-28Merge bitcoin/bitcoin#28805: test: Make existing functional tests compatible ↵Andrew Chow
with --v2transport 35fb9930adb3501b29d3ad20d2e74c0114f2bcbe test: enable v2 transport for p2p_timeouts.py (Martin Zumsande) 2c1669c37a9759e15ff5f4e340aeaa8778a81b9a test: enable v2 transport for rpc_net.py (Sebastian Falbesoner) cc961c26956859850202f56191981b0306a65fcf test: enable v2 transport for p2p_node_network_limited.py (Sebastian Falbesoner) 3598a1b5c932634dc7ccb991cc83df5e1a1dcaa9 test: enable --v2transport in combination with --usecli (Martin Zumsande) 68a90017519874793e34e3b439a63e5aa3a6f6a7 test: persist -v2transport over restarts and respect -v2transport=0 (Martin Zumsande) Pull request description: This makes the functional test suite compatible with BIP324, so that `python3 test_runner.py --v2transport` should succeed (currently, 12 tests fail for me on master). Includes two commits by TheStack I found in an old discussion https://github.com/bitcoin/bitcoin/pull/28331#discussion_r1326714164 Note that even though all tests should pass, the python `p2p.py` module will do v2 connections only after the merge of #24748, so that for now only connections between two full nodes will actually run v2. Some of the fixed tests were added with `--v2transport` to the test runner. Though after #24748 we might also want to consider running the entire suite with `--v2transport` in some CI. ACKs for top commit: sipa: utACK 35fb9930adb3501b29d3ad20d2e74c0114f2bcbe. Thanks for taking care of this. achow101: ACK 35fb9930adb3501b29d3ad20d2e74c0114f2bcbe theStack: ACK 35fb9930adb3501b29d3ad20d2e74c0114f2bcbe stratospher: ACK 35fb993. Tree-SHA512: 80dc0bf211fa525ff1d092043aea9f222f14c02e5832a548fb8b83b9ede1fcee03c5e8ade0d05c331bdaa492af9c1cf3d0f0b15b846673c6eacea82dd4cefbc3
2023-11-28test: Setup networking globallyHennadii Stepanov
2023-11-28Merge bitcoin/bitcoin#28912: refactor: VectorWriter and SpanReader without ↵fanquake
nVersion fae76a1f2ac0b352cdd708e6d57f8605bf40112e scripted-diff: Use DataStream in most places (MarcoFalke) fac39b56b723f79ba0aa9570708a1d4a600f4e12 refactor: SpanReader without nVersion (MarcoFalke) Pull request description: The serialize version is unused, so remove it. This also allows to remove `GCS_SER_VERSION` and allows a scripted-diff to remove most of `CDataStream`. ACKs for top commit: ajtowns: ACK fae76a1f2ac0b352cdd708e6d57f8605bf40112e ryanofsky: Code review ACK fae76a1f2ac0b352cdd708e6d57f8605bf40112e Tree-SHA512: 3b487dba8ea380f1eacff9fdfb9197f025dbc30906813d3f4c3e6f1e9e4d9f2a169c6f163f51d135e18af538be78e2d2b13d694073ad25c5762980ae971a4c83
2023-11-28guix: remove input labelsfanquake
Migrate package definitions to use the new format for propogated inputs. See https://guix.gnu.org/manual/en/html_node/package-Reference.html#index-inputs_002c-of-packages. See also: https://guix.gnu.org/blog/2021/the-big-change/
2023-11-28refactor: Use Txid in CMerkleBlockMarcoFalke
2023-11-28Merge bitcoin/bitcoin#28952: fuzz: Avoid timeout in process_messagesfanquake
fa825975b57bc5c4323e5d6f4bc8cd2b8189e238 fuzz: Avoid timeout in process_messages (MarcoFalke) Pull request description: Reduce the number of messages per fuzz input. There should be no reason to have more messages than that. This should also avoid timeouts, such as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=64548. CC https://github.com/bitcoin/bitcoin/issues/28812 ACKs for top commit: dergoegge: utACK fa825975b57bc5c4323e5d6f4bc8cd2b8189e238 Tree-SHA512: eeff732f7b0bd9a71f23aeecbf813d31fe34d355b906fd0384a43075cbc3cebc46a26df741b0f337208d8b33b3e28210c9b9437e2eed77844f03131bb8f5f2a1
2023-11-28Merge bitcoin/bitcoin#28766: Improve peformance of CTransaction::HasWitness ↵Andrew Chow
(28107 follow-up) af1d2ff88344e1545ac8d9ad09f8e37e264da712 [primitives] Precompute result of CTransaction::HasWitness (dergoegge) Pull request description: This addresses https://github.com/bitcoin/bitcoin/pull/28107#discussion_r1364961590 from #28107. ACKs for top commit: theStack: ACK af1d2ff88344e1545ac8d9ad09f8e37e264da712 achow101: ACK af1d2ff88344e1545ac8d9ad09f8e37e264da712 stickies-v: ACK af1d2ff88344e1545ac8d9ad09f8e37e264da712 TheCharlatan: ACK af1d2ff88344e1545ac8d9ad09f8e37e264da712 Tree-SHA512: a77654ae429d0d7ce12daa309770e75beec4f8984734f80ed203156199425af43b50ad3d8aab85a89371a71356464ebd4503a0248fd0103579adfc74a55aaf51
2023-11-28ci: Rename test script to 03_test_script.shMarcoFalke
2023-11-28scripted-diff: Use DataStream in most placesMarcoFalke
The remaining places are handled easier outside a scripted-diff. -BEGIN VERIFY SCRIPT- sed --regexp-extended -i 's/CDataStream ([0-9a-zA-Z_]+)\(SER_[A-Z]+, [A-Z_]+_VERSION\);/DataStream \1{};/g' $( git grep -l CDataStream) sed -i 's/, CDataStream/, DataStream/g' src/wallet/walletdb.cpp -END VERIFY SCRIPT-
2023-11-28refactor: SpanReader without nVersionMarcoFalke
The field is unused, so remove it. This is also required for future commits.
2023-11-28Merge bitcoin/bitcoin#28892: refactor: P2P transport without serialize ↵fanquake
version and type fa79a881ce0537e1d74da296a7513730438d2a02 refactor: P2P transport without serialize version and type (MarcoFalke) fa9b5f4fe32c0cfe2e477bb11912756f84a52cfe refactor: NetMsg::Make() without nVersion (MarcoFalke) 66669da4a5ca9edf2a40d20879d9a8aaf2b9e2ee Remove unused Make() overload in netmessagemaker.h (MarcoFalke) fa0ed0794161d937d2d3385963c1aa5624b60d17 refactor: VectorWriter without nVersion (MarcoFalke) Pull request description: Now that the serialize framework ignores the serialize version and serialize type, everything related to it can be removed from the code. This is the first step, removing dead code from the P2P stack. A different pull will remove it from the wallet and other parts. ACKs for top commit: ajtowns: reACK fa79a881ce0537e1d74da296a7513730438d2a02 Tree-SHA512: 785b413580d980f51f0d4f70ea5e0a99ce14cd12cb065393de2f5254891be94a14f4266110c8b87bd2dbc37467676655bce13bdb295ab139749fcd8b61bd5110
2023-11-28Merge bitcoin/bitcoin#28936: Change petertodd seeds to petertodd.netfanquake
ecb46837e7f4fc3a2860ba14f2d3034859e34900 Change petertodd seeds to petertodd.net (Peter Todd) Pull request description: I changed my DNS seeds to .net from .org to avoid issues with DNS blacklisting, that falsely thinks my domain name is pointing to IP addresses with malware and similar things. Right now there are CNAME records, so the .org addresses still work. But eventually, if needed, I'll remove those CNAME's. ACKs for top commit: pablomartin4btc: tACK ecb46837e7f4fc3a2860ba14f2d3034859e34900 fanquake: ACK ecb46837e7f4fc3a2860ba14f2d3034859e34900 - tested that usable addresses are being returned. Tree-SHA512: 285f7101198ea8e2e20900c17b38aa86db812308c6985d762e5fa8b6f1bc5b0d2d278da841fe2e10cf32e3fe18d4c984bc8cf195bd8d40c86b092b545c62acfa
2023-11-28Merge bitcoin/bitcoin#28934: ci: Set MSVC toolset version explicitlyfanquake
70100f8584c762cbc6cbc09d05cc4e9d22a3ec75 Revert "ci: Avoid toolset ambiguity that MSVC can't handle" (Hennadii Stepanov) 1a889f7ea043fc61865511a0d143321bbdc540a5 ci: Set MSVC toolset version explicitly (Hennadii Stepanov) 4335e553596a0ad5b136d3aa9fc898c906d226b4 ci: Run vcpkg with path prefix (Hennadii Stepanov) Pull request description: This PR is an alternative to https://github.com/bitcoin/bitcoin/pull/28905 and reverts it. To avoid toolset version incompatibilities, which result in errors like this: ``` LINK : fatal error C1900: Il mismatch between 'P1' version '20230904' and 'P2' version '20221215' [D:\a\bitcoin\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj] LINK : fatal error LNK1257: code generation failed [D:\a\bitcoin\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj] LINK : fatal error LNK1327: failure during running link.exe [D:\a\bitcoin\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj] ``` it is enough to set it explicitly in the vcpkg triplet file (see the second commit). The `VCToolsVersion` environment variable is set by the `ilammy/msvc-dev-cmd` action. Please note that the https://github.com/bitcoin/bitcoin/pull/28905 is not [optimal](https://github.com/bitcoin/bitcoin/pull/28905#issuecomment-1822571419): > I guess this is something we'll just have to maintain forever? That's a shame, because it also adds ~30% runtime to this CI job. ACKs for top commit: sipsorcery: utACK 70100f8584c762cbc6cbc09d05cc4e9d22a3ec75. pablomartin4btc: ACK 70100f8584c762cbc6cbc09d05cc4e9d22a3ec75 since I've reviewed to be reverted #28905. Tree-SHA512: 121a8e40c728060526f380b7946211b5d4eca8821bfe62e6451642ffdf95fe9ab7101e0cffa7f4a777bc9cf94278bb50c1b40b71768e1ac39801bb4831afeb90
2023-11-28fuzz: Avoid timeout in process_messagesMarcoFalke
2023-11-28fuzz: BIP324: damage ciphertext/aad in full byte rangeSebastian Falbesoner
Currently the damaging of input data for decryption (either ciphertext or aad) only ever happens in the lower nibble within the byte at the damage position, as the bit position for the `damage_val` byte was calculated with `damage_bit & 3` (corresponding to `% 4`) rather than `damage_bit & 7` (corresponding to the expected `% 8`).
2023-11-27Merge bitcoin/bitcoin#28933: fuzz: Faster wallet_notifications targetfanquake
fa15861763df71e788849b587883b3c16bb12229 fuzz: Faster wallet_notifications target (MarcoFalke) fa971c09f24887d4848082c551d4eed98e7f4edc Export assert from util/check.h (MarcoFalke) Pull request description: Avoid read/write from storage to speed the target up. ACKs for top commit: dergoegge: reACK fa15861763df71e788849b587883b3c16bb12229 brunoerg: reACK fa15861763df71e788849b587883b3c16bb12229 Tree-SHA512: 90aa856ae31db27a55ef0dfa2cb303d98e6c4d530d2937ad8d808c5f4048389b7ed3c78c27df92db8fe29531b5530aecbb06a0e8274dda424149f46cd6c19f98
2023-11-27fuzz: Faster wallet_notifications targetMarcoFalke
2023-11-26Merge bitcoin/bitcoin#28931: fuzz: Limit fuzz buffer size in script_flags targetfanquake
faf1fb207fb6e9a12c864074f8c40d5922d93ff4 Fix IWYU for the script_flags fuzz target (MarcoFalke) fa71285b7301b2993bcc68525649716afbd9abf8 fuzz: Limit fuzz buffer size in script_flags target (MarcoFalke) fa6b87b9ee661d8ef4ec244d230ebdeb7d1841a0 fuzz: CDataStream -> DataStream in script_flags (MarcoFalke) Pull request description: Most fuzz targets have an upper limit on the buffer size to avoid excessive runtime. Do the same for `script_flags` to avoid timeouts such as https://github.com/bitcoin/bitcoin/issues/28812#issuecomment-1824696971 Also, fix iwyu. Also, remove legacy `CDataStream`. ACKs for top commit: dergoegge: ACK faf1fb207fb6e9a12c864074f8c40d5922d93ff4 brunoerg: utACK faf1fb207fb6e9a12c864074f8c40d5922d93ff4 Tree-SHA512: 9301917b353f7409e448b6fd3635de19330856e0742431db5ef04e62873501b5b4cd6cb78ad81ada2747fa2bdae033115b5951d10489dd5d0d320426c8b96bee
2023-11-25msvc: Specify `boost-date-time` package explicitlyHennadii Stepanov
Compilation now succeeds only by coincidence, as the `boost-date-time` package is installed as a dependency of the `boost-process` one.
2023-11-25msvc: Update vcpkg manifest baseline up to "2023.08.09 Release"Hennadii Stepanov
Dependency changes (2023.01.09 --> 2023.08.09): - berkeleydb: 4.8.30#8 --> 4.8.30#9 - boost: 1.81.0 --> 1.82.0#2 - sqlite3: 3.40.0#1 --> 3.42.0#1 - zeromq: 4.3.4#6 --> 2023-06-20#1
2023-11-25msvc: No need to specify the default feature for `libevent` packageHennadii Stepanov