Repository navigation
backport: v0.26 bitcoin#28071, bitcoin#27838, bitcoin#27171, bitcoin#28558 - #110
Open
DCG-Claude wants to merge 4 commits into
Open
DCG-Claude wants to merge 4 commits into
DCG-Claude wants to merge 4 commits into
Conversation
fa4ccf1 ci: Add missing -O2 to valgrind tasks (MarcoFalke) Pull request description: Currently the tasks have nothing (`-O0`) set, which makes them slow. Fix this by falling back to the default (`-O2`). ACKs for top commit: recursive-rat4: utACK fa4ccf1 dergoegge: utACK fa4ccf1 Tree-SHA512: 44d803000d883cfa534f2c76d793d7d7f840e114fc377d20fc36d008b471d69ec9f0170358ed1f3567d49e3ff63682244062c954cd0b963df31ca39c08d2d5b9 Dash adaptations: - ci/test/00_setup_env_native_fuzz_with_valgrind.sh: puts -gdwarf-4 into CC/CXX on Dash's clang-19/clang++-19, keeping Dash's dwarf comment and CCACHE_MAXSIZE - ci/test/00_setup_env_native_valgrind.sh: puts -gdwarf-4 into CC/CXX on Dash's clang-19/clang++-19, keeping Dash's dwarf comment, PACKAGES and --timeout-factor=4
fac7f4a ci: Invalidate Cirrus CI docker cache (MarcoFalke) Pull request description: Currently the Cirrus CI seems to fail for some reason. No idea why, but maybe invalidating the Docker image cache fixes it? The failure is: ``` Failed to start an instance! Failed to pull null image! Repository does not exist or may require authentication. Container errored with 'ImagePullBackOff: Back-off pulling image "gcr.io/cirrus-ci-community/bitcoin/bitcoin/ci/test_imagefile:b3e086572130d8954f84bb90778d02e2cfbb6dc624c01e2f74ee17335a9c453e"' ``` https://cirrus-ci.com/task/5983593860694016 ACKs for top commit: achow101: ACK fac7f4a Tree-SHA512: 3e8ed4f51ba29109e508f269b4281c81dfa844dc0dd5658a83388da586fc4234ae5c076c174122834114fb7c9e0026c042ea38deac53e7d796cc59526fbb7c46 Dash adaptations: - ci/test/00_setup_env_native_tsan.sh: copyright year bump taken as upstream (applied cleanly) - ci/test/00_setup_env_native_msan.sh: kept Dash's '2020-present' header; a later upstream change already replaced the year range upstream bumps here Not applicable to Dash (intentionally omitted): - ci/test/00_setup_env_native_msan.sh: Header already reads '2020-present'; bumping to '2020-2023' would undo a newer change, and Dash has no Cirrus docker cache to invalidate - ci/test/00_setup_env_native_tidy.sh: Dash has no native_tidy env script (tidy runs via ci/dash/lint-tidy.sh); the hunk only invalidates a Cirrus cache, which Dash lacks
…espersigop` setting) 89cd20c test: add coverage for sigop limit policy (`-bytespersigop` setting) (Sebastian Falbesoner) Pull request description: This PR adds missing test coverage for the `-bytespersigop` option, which determines how pre-taproot signature operations (OP_CHECKSIG{VERIFY}, OP_CHECKMULTIGSIG{VERIFY}) affect fee handling calculations. The setting was introduced in PR dashpay#7081 for mitigating the [sigop spam attack](https://bitcointalk.org/index.php?topic=1166928.0); the initial implementation rejected txs exceeding the limit, but was changed in bitcoin#8365 later to account for higher sizes in the mempool (i.e. exceeding the sigop limit is possible, but has to be compensated by higher fees). For each combination of `-bytespersigop` setting and sigops count, the test first creates a P2WSH spending transaction with a witness script that puts sigops in a non-executing branch (OP_FALSE OP_IF OP_CHECKMULTISIG ... OP_CHECKSIG ... OP_ENDIF). This tx is then bumped up to reach exactly the _sig-op limit equivalent vsize_ by padding its datacarrier output. Based on that, increasing the tx's vsize should still reflect a vsize increase in the mempool, while a decrease of the tx's vsize should lead to the mempool treating the tx's vsize to be the _sig-op limit equivalent vsize_, since the limit was exceeded. I assume that this parameter is almost never set explicitly by users (also it is not relevant for taproot spends), but it doesn't hurt to have a test for it. See also https://bitcoin.stackexchange.com/a/87958 for another explanation. ACKs for top commit: glozow: light review ACK 89cd20c MarcoFalke: nice ACK 89cd20c 📁 Tree-SHA512: 06998ce93bf9d5ce6143db2996a43f13990c415f97afe684227ad469349e73952bf4f6c871c1e6349e07606f4d45db64408848873a86a89481cdca5a134e5e60
4cafe9f [test] Make PeerManager's rng deterministic in tests (dergoegge) fecec3e [net processing] FeeFilterRounder doesn't own a FastRandomContext (dergoegge) 47520ed [net processing] Make fee filter rounder non-global (dergoegge) 77506f4 [net processing] Addr shuffle uses PeerManager's rng (dergoegge) a648dd7 [net processing] PushAddress uses PeerManager's rng (dergoegge) 87c7067 [net processing] PeerManager holds a FastRandomContext (dergoegge) Pull request description: This lets us avoid some non-determinism in tests (also see bitcoin#28537). ACKs for top commit: MarcoFalke: re-ACK 4cafe9f 🕗 glozow: concept && light code review ACK 4cafe9f Tree-SHA512: 3c18700773d0bc547ccb6442c41567e6f26b0b50fab5b79620da417ec91b9c0ae1395d15258da3aa4a91447b8ce560145dd135e39fbbd0610749e528e665b111 Dash adaptations: - src/net_processing.cpp: adds only m_rng to PeerManagerImpl, with no m_fee_filter_rounder member, because Dash removed feefilter (FeeFilterRounder/MaybeSendFeefilter do not exist) - src/net_processing.cpp: m_rng{opts.deterministic_rng} is initialised in Dash's extended PeerManagerImpl constructor (dstxman, mn_metaman, llmq_ctx, ...), which keeps all its Dash parameters - src/test/util/setup_common.cpp: sets peerman_opts.deterministic_rng = true before Dash's MakePeerManager(...) helper instead of upstream's PeerManager::make(...) call Not applicable to Dash (intentionally omitted): - src/policy/fees.cpp: Dash has no FeeFilterRounder (feefilter was reverted in Dash, see 8b4c419), so there is no constructor to give an rng parameter - src/policy/fees.h: FeeFilterRounder class does not exist in Dash; feefilter P2P message is not implemented - src/test/fuzz/fees.cpp: Dash's fees fuzz target has no FeeFilterRounder section to update, since Dash has no feefilter - src/test/policy_fee_tests.cpp: This file only tests FeeFilterRounder, which Dash lacks; it is absent in Dash and stays deleted - src/net_processing.cpp: MaybeSendFeefilter hunks (g_filter_rounder to m_fee_filter_rounder) dropped; Dash has no MaybeSendFeefilter or feefilter relay
3 tasks
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Automated Bitcoin Core v0.26 backports, batch
backport-0.26-b192-other.8853c351cf282325c9462ee276f9c0-bytespersigop), switching from P2WSH to P2SH because Dash has no segwit, ra2551046d5Skipped in this batch:
git cat-file -e HEAD:ci/test/02_run_container.shfails, andgit log --diff-filter=AD HEAD -- ci/test/02_run_container.shreturns nothiProvenance
Each commit passed: cherry-pick (adapted by an Opus lane only where conflicts existed), build, touched tests, a mechanical diff-of-diffs check (every upstream hunk landed; no added line without an upstream counterpart), and an independent Opus verification lane where anything was adapted. Gate rows and lane artifacts are in the backportsys DB.