[pull] master from bitcoin:master - #1880
Merged
Merged
Conversation
In file included from /home/runner/work/_temp/src/init/common.cpp:11:
/home/runner/work/_temp/src/logging.h:66:24: error: ‘BCLog::RATELIMIT_MAX_BYTES’ defined but not used [-Werror=unused-const-variable=]
66 | constexpr uint64_t RATELIMIT_MAX_BYTES{1_MiB}; // maximum number of bytes per source location that can be logged within the RATELIMIT_WINDOW
| ^~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
`python-lief` and `nsis-x86_64` transitively pull in packages whose tests fail when building natively on `riscv64`: - `python-lief`: `python-psutil`, `python-pytest-xprocess`, `python-sh` - `nsis-x86_64`: `python-psutil`
This is necessary to unblock building on RISC-V systems. Fixes #36232.
…wallet Only kernel::Context users selected a hardware SHA256 implementation, so these tools fell back to the generic one. On an M2 Max, grind is ~5x faster and signing 2000 P2PKH inputs with bitcoin-tx ~2.3x.
test_maxfeerate configured -maxfeerate=0.00001009 and then created a transaction requesting the exact same fee rate. This is fragile because the wallet sizes the fee from the estimated (maximum) signed vsize, while the -maxfeerate limit is checked against the actual signed vsize. When the actual signature is smaller than the estimate, the actual vsize is smaller than estimated resulting in a higher feerate and the transaction is rejected, causing intermittent CI failures. Request a fee rate slightly below `-maxfeerate` so the transaction is accepted regardless of the signature size, while still exercising the limit.
…x and bitcoin-wallet 4048909 tools: Call SHA256AutoDetect in bitcoin-util, bitcoin-tx and bitcoin-wallet (Torkel Rogstad) Pull request description: Only kernel::Context users selected a hardware SHA256 implementation, so these tools fell back to the generic one. On an M2 Max, grind is ~5x faster and signing 2000 P2PKH inputs with bitcoin-tx ~2.3x. ACKs for top commit: maflcko: lgtm ACK 4048909 furszy: utACK 4048909 Tree-SHA512: 0edc6b78efbf0c84c22bbe98bd1ab295accc9530e24cee8f0faed9f63515fe8b677e8c33d3b46e0f1c0a44b422374cd7395ce163468d98772ea72a8faa9a1cfa
cf57dc2 build: add -Wunused-const-variable (fanquake) b45a708 refactor: use inline constexpr (fanquake) Pull request description: Split out of #36167. Fixes: ```bash /root/bitcoin/src/leveldb/db/dbformat.h:42:18: warning: ‘leveldb::config::kMaxMemCompactLevel’ defined but not used [-Wunused-const-variable=] 42 | static const int kMaxMemCompactLevel = 2; | ^~~~~~~~~~~~~~~~~~~ /root/bitcoin/src/leveldb/db/dbformat.h:28:18: warning: ‘leveldb::config::kL0_CompactionTrigger’ defined but not used [-Wunused-const-variable=] 28 | static const int kL0_CompactionTrigger = 4; | ^~~~~~~~~~~~~~~~~~~~~ In file included from /root/bitcoin/src/leveldb/db/dbformat.h:13: /root/bitcoin/src/leveldb/include/leveldb/db.h:19:18: warning: ‘leveldb::kMinorVersion’ defined but not used [-Wunused-const-variable=] 19 | static const int kMinorVersion = 22; | ^~~~~~~~~~~~~ /root/bitcoin/src/leveldb/include/leveldb/db.h:18:18: warning: ‘leveldb::kMajorVersion’ defined but not used [-Wunused-const-variable=] 18 | static const int kMajorVersion = 1; | ^~~~~~~~~~~~~ ``` ```bash In file included from /home/runner/work/_temp/src/init/common.cpp:11: /home/runner/work/_temp/src/logging.h:66:24: error: ‘BCLog::RATELIMIT_MAX_BYTES’ defined but not used [-Werror=unused-const-variable=] 66 | constexpr uint64_t RATELIMIT_MAX_BYTES{1_MiB}; // maximum number of bytes per source location that can be logged within the RATELIMIT_WINDOW | ^~~~~~~~~~~~~~~~~~~ cc1plus: all warnings being treated as errors ``` etc. ACKs for top commit: maflcko: lgtm ACK cf57dc2 BrandonOdiwuor: ACK cf57dc2 hebasto: ACK cf57dc2. Tree-SHA512: b1a2dac38f942da7f0250f4040007f06de14a9f3ddc1554ef090ea12bcb1c79c2a66449189f39503d203d4dd549f74103b2e8545f3cfcb8f1dcc1a0ca774563b
…ea615e9acfc74f8` feb77d8 guix: Update time-machine to `60f6956aeffa7f30285745bd0ea615e9acfc74f8` (Hennadii Stepanov) f14a3ef guix: Skip some packages' tests in `python-lief` and `nsis-x86_64` (fanquake) Pull request description: On the master branch @ 1781781, building on a RISC-V system [fails](#36232): ``` guix shell: error: package python-lief@0.17.5 does not support riscv64-linux ``` Also see #34550 (comment). This is caused by the `python-msgspec` package, an indirect dependency of `python-lief`: `python-lief` <-- `python-scikit-build-core` <-- `python-cattrs` <-- `python-msgspec` Also see #34550 (comment). This [commit](https://codeberg.org/guix/guix/commit/b35905695afd2e24c56e6950433dd4f571581873) updates `python-msgspec` and removes `(supported-systems (list "x86_64-linux" "aarch64-linux"))` from its definition. Package updates: - `git-minimal`: 2.52.0 -> 2.54.0 - `linux-headers` 6.1.166 -> 6.1.172 - `python-lief`: 0.17.5 -> 0.17.6 - `python-minimal`: 3.11.14 -> 3.12.12 Additionally, `python-lief` and `nsis-x86_64` transitively pull in packages whose tests fail when building natively on `riscv64`: - `python-lief`: `python-psutil`, `python-pytest-xprocess`, `python-sh` - `nsis-x86_64`: `python-psutil` Tests for the problematic packages are temporarily disabled. Fixes #36232. ACKs for top commit: maflcko: re-review ACK feb77d8 🦏 willcl-ark: ACK feb77d8 Tree-SHA512: c89c57e0f3f8090c3eaa52cbc6b55c6564f297158afebf8306bcae692f4f5121156e64e5af3fb9e6dcb0091a9cd2d65e002854abb5befd7df6df31f1618ed280
025768f test: avoid testing at the exact `-maxfeerate` boundary (ismaelsadeeq) Pull request description: Fixes #36363 `test_maxfeerate` configured `-maxfeerate=0.00001009` and then created a transaction requesting the exact same fee rate. This is fragile because the wallet sizes the fee from the estimated (maximum) signed vsize, while the `-maxfeerate` limit is checked against the actual signed vsize. When the actual signature is smaller than the estimate, the actual vsize is smaller than estimated resulting in a higher feerate and the transaction is rejected, causing intermittent CI failures. Request a fee rate slightly below `-maxfeerate` so the transaction is accepted regardless of the signature size, while still exercising the limit. Can be reproduced with ```diff --- a/test/functional/wallet_send.py +++ b/test/functional/wallet_send.py @@ -221,8 +221,17 @@ class WalletSendTest(BitcoinTestFramework): self.nodes[0].sendtoaddress, address=self.nodes[0].getnewaddress(), amount=1, fee_rate=11) self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), amount=1, fee_rate=9) - self.restart_node(0, extra_args=['-maxfeerate=0.00001009']) - self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), amount=1, fee_rate=Decimal("1.009")) + self.restart_node(0, extra_args=['-maxfeerate=0.00001009', '-changetype=bech32m']) + w = self.nodes[0].get_wallet_rpc(self.default_wallet_name) + tr_addr = w.getnewaddress(address_type="bech32m") + funding_txid = w.sendtoaddress(tr_addr, 5) + self.generate(self.nodes[0], 1) + vout = next(o["n"] for o in w.gettransaction(funding_txid, verbose=True)["decoded"]["vout"] + if o["scriptPubKey"]["address"] == tr_addr) + # Spend the taproot input at exactly maxfeerate. The tr() descriptor + # estimates a 65-byte sig but the key-path spend is 64 bytes, so the + # estimated vsize always exceeds the actual deterministic rejection. + w.send(outputs={w.getnewaddress(): 1}, fee_rate=Decimal("1.009"), + options={"inputs": [{"txid": funding_txid, "vout": vout}], "add_inputs": False}) ``` The actual failure in #36363 is intermittent because legacy output signatures only sometimes result in a tx size smaller than estimated. It can be reproduced in master by running the test on the file from 100 to 200 times. And running it again at the same time with this PR does not fail. ACKs for top commit: maflcko: lgtm ACK 025768f achow101: ACK 025768f furszy: utACK 025768f Tree-SHA512: 9e70b238f22e6d75108c1b10096008aad5f1bea7ddbb51a11fe722674adcd2dada3dabe577a6049b242fcf826ccd582c16a025b406742ad6b3195a0dae27b44f
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )