forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 7
update bitcoin to 0.18.1 #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
pinhopro
wants to merge
10,000
commits into
blinktrade:master
Choose a base branch
from
bitcoin:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
dee7eec doc: mention coverage build in quickstart section (frankomosh) Pull request description: Adds a single comment in the libFuzzer quick-start that links to the Developer Notes coverage section. No build flags are changed or shown. ACKs for top commit: janb84: ACK dee7eec dergoegge: ACK dee7eec Tree-SHA512: 2fe5ffb6c3d06f75694646473c29b4cc9fe571f4659631ec174d444a14716771308eedeb7acab3bef7f62e9bfa8ed0462da0163b214cccdc6a9ad63bbf66d2a0
0698c6b doc: Correct `pkgin` command usage on NetBSD (Hennadii Stepanov) Pull request description: When using `pkgin` on NetBSD, the `install` command must be specified. ACKs for top commit: fanquake: ACK 0698c6b Tree-SHA512: 840fc1621d6fa9ad43501a3691a31cffd66c1ac8d34167f7ab0fe33e1a395198c241b3c31f3d0ebc314e28c0edb6055cc2ca3deba6408dcbd14390fd679a4803
3672420 scripted-diff: Remove obsolete comment (Hennadii Stepanov) Pull request description: The removed comment become obsolete after #32697 and #32881. ACKs for top commit: l0rinc: code review ACK 3672420 maflcko: lgtm ACK 3672420 rkrux: crACK 3672420 Tree-SHA512: b880f71ce9aa8288c635eb216c86d5424227a27bfb524443255d48193afca05e65b092fb1b481f3b850f7b8d6cef0f64d275d173c580023b8b5fa19966356d52
fad6efd refactor: Use STR_INTERNAL_BUG macro where possible (MarcoFalke) fada379 doc: Remove unused bugprone-lambda-function-name suppression (MarcoFalke) fae1d99 refactor: Use const reference to std::source_location (MarcoFalke) fa5fbcd util: Allow Assert() in contexts without __func__ (MarcoFalke) Pull request description: Without this, compile warnings could be hit about `__func__` being only valid inside functions. ``` warning: predefined identifier is only valid inside function [-Wpredefined-identifier-outside-function] note: expanded from macro Assert 115 | #define Assert(val) inline_assertion_check<true>(val, __FILE__, __LINE__, __func__, #val) | ^ ``` Ref #32740 (comment) This also introduces a slight behaviour change, because `std::source_location::function_name` usually includes the entire function signature instead of just the name. ACKs for top commit: l0rinc: Code review ACK fad6efd stickies-v: ACK fad6efd hodlinator: re-ACK fad6efd Tree-SHA512: e78a2d812d5ae22e45c93db1661dafbcd22ef209b3d8d8d5f2ac514e92fd19a17c3f0a5db2ef5e7748aa2083b10c0465326eb36812e6a80e238972facd2c7e98
It does not make sense to use a pointer, when a reference is more
appropriate, especially given that nullptr has been ruled out.
This is also allows to remove the CI workaround to avoid warnings:
```
C++ compiler .......................... GNU 13.0.0, /bin/x86_64-w64-mingw32-g++-posix
...
/ci_container_base/src/test/blockmanager_tests.cpp: In member function ‘void blockmanager_tests::blockmanager_scan_unlink_already_pruned_files::test_method()’:
/ci_container_base/src/test/blockmanager_tests.cpp:63:17: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
63 | const auto& chainman = Assert(m_node.chainman);
| ^~~~~~~~
In file included from /ci_container_base/src/streams.h:13,
from /ci_container_base/src/dbwrapper.h:11,
from /ci_container_base/src/node/blockstorage.h:10,
from /ci_container_base/src/test/blockmanager_tests.cpp:8:
/ci_container_base/src/util/check.h:116:49: note: the temporary was destroyed at the end of the full expression ‘inline_assertion_check<true, std::unique_ptr<ChainstateManager>&>(((blockmanager_tests::blockmanager_scan_unlink_already_pruned_files*)this)->blockmanager_tests::blockmanager_scan_unlink_already_pruned_files::<anonymous>.TestChain100Setup::<anonymous>.TestingSetup::<anonymous>.ChainTestingSetup::<anonymous>.BasicTestingSetup::m_node.node::NodeContext::chainman, std::source_location{(& *.Lsrc_loc27)}, std::basic_string_view<char>(((const char*)"m_node.chainman")))’
116 | #define Assert(val) inline_assertion_check<true>(val, std::source_location::current(), #val)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/ci_container_base/src/test/blockmanager_tests.cpp:63:28: note: in expansion of macro ‘Assert’
63 | const auto& chainman = Assert(m_node.chainman);
| ^~~~~~
cc1plus: all warnings being treated as errors
gmake[2]: Leaving directory '/ci_container_base/ci/scratch/build-x86_64-w64-mingw32'
gmake[2]: *** [src/test/CMakeFiles/test_bitcoin.dir/build.make:382: src/test/CMakeFiles/test_bitcoin.dir/blockmanager_tests.cpp.obj] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1810: src/test/CMakeFiles/test_bitcoin.dir/all] Error 2
gmake[1]: Leaving directory '/ci_container_base/ci/scratch/build-x86_64-w64-mingw32'
gmake: *** [Makefile:146: all] Error 2
```
This false-positive warning is also fixed in later GCC versions.
See also https://godbolt.org/z/fjc6be65M
It is equivalent to calling btck_chain_get_by_height(0).
It is equivalent to calling btck_chain_get_by_height with the height obtained from btck_chain_get_height. In neither case do we provide guarantees that the returned block index still corresponds to the actual tip.
4543a3b Squashed 'src/minisketch/' changes from ea8f66b1ea..d1bd01e189 (Hennadii Stepanov) Pull request description: This PR updates the `minisketch` subtree to latest upstream, which includes: - bitcoin-core/minisketch#75 - bitcoin-core/minisketch#98 ACKs for top commit: fanquake: ACK c235aa4 Tree-SHA512: 856fb8b7dc2e743c9c67164023bf53faf8766079aeccc82a30c8b90c85920b31977b6a8b26e51e5485b20e445a3ca6ff806e701a53e95f70181ea30055e3528c
…address is found 79b4c27 Bugfix: QA: rpc_bind: Skip nonloopback test if no such address is found (Luke Dashjr) Pull request description: Without this, I get: ``` 2025-09-19T03:14:05.157000Z TestFramework (INFO): PRNG seed is: 3218602557639511064 2025-09-19T03:14:05.158000Z TestFramework (INFO): Initializing test directory /tmp/bitcoin-test/a 2025-09-19T03:14:05.158000Z TestFramework (INFO): Check for ipv6 2025-09-19T03:14:05.158000Z TestFramework (INFO): Check for non-loopback interface 2025-09-19T03:14:05.158000Z TestFramework (INFO): Bind test for [] 2025-09-19T03:14:05.516000Z TestFramework (INFO): Bind test for [] 2025-09-19T03:14:05.871000Z TestFramework (INFO): Bind test for ['[::1]'] 2025-09-19T03:14:06.227000Z TestFramework (INFO): Bind test for ['127.0.0.1', '[::1]'] 2025-09-19T03:14:06.583000Z TestFramework (INFO): Using interface None for testing 2025-09-19T03:14:06.583000Z TestFramework (INFO): Bind test for [None] 2025-09-19T03:14:06.583000Z TestFramework (ERROR): Unexpected exception Traceback (most recent call last): File "/Bitcoin/bitcoin/workingtree/test/functional/test_framework/test_framework.py", line 135, in main self.run_test() ~~~~~~~~~~~~~^^ File "/Bitcoin/bitcoin/workingtree/test/functional/rpc_bind.py", line 126, in run_test self._run_nonloopback_tests() ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/Bitcoin/bitcoin/workingtree/test/functional/rpc_bind.py", line 157, in _run_nonloopback_tests self.run_bind_test([self.non_loopback_ip], self.non_loopback_ip, [self.non_loopback_ip], ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [(self.non_loopback_ip, self.defaultport)]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Bitcoin/bitcoin/workingtree/test/functional/rpc_bind.py", line 38, in run_bind_test expected = [(addr_to_hex(addr), port) for (addr, port) in expected] ~~~~~~~~~~~^^^^^^ File "/Bitcoin/bitcoin/workingtree/test/functional/test_framework/netutil.py", line 132, in addr_to_hex if '.' in addr: # IPv4 ^^^^^^^^^^^ TypeError: argument of type 'NoneType' is not iterable ``` ACKs for top commit: maflcko: review ACK 79b4c27 🏑 theStack: Tested ACK 79b4c27 Tree-SHA512: 2a723d9bc5d1d50a8321a4f8a8cac3da3125d373ea71e6cc9d03de07307008f58970e361490d4c34530a6a976cb078b62d0ef09b7fb321ca1cfb9249a70d99a5
…uring block replay 1fc7a81 log: reduce excessive messages during block replay (Lőrinc) Pull request description: ### Summary After an incomplete reindex the blocks will need to be replayed. This results in excessive `Rolling back` and `Rolling forward` messages which quickly triggers the recently introduced log rate limiter. Change the logging strategy to: - Add single `LogInfo` messages showing the full range being replayed for both rollback and roll forward; - Log progress at `LogInfo` level only every 10,000 blocks to track the long operations. ### Reproducer: * Start a normal ibd, stop after some progress * Do a reindex, stop before it finishes * Restart the node normally without specifying the reindex parameter It should start rolling the blocks forward. Before this change the excessive logging would show: ``` [*] Rolling forward 000000002f4f55aecfccc911076dc3f73ac0288c83dc1d79db0a026441031d40 (46245) [*] Rolling forward 0000000017ffcf34c8eac010c529670ba6745ea59cf1edf7b820928e3b40acf6 (46246) ``` After the change it shows: ``` Replaying blocks Rolling forward to 00000000000000001034012d7e4facaf16ca747ea94b8ea66743086cfe298ef8 (326223 to 340991) Rolling forward 00000000000000000faabab19f17c0178c754dbed023e6c871dcaf74159c5f02 (330000) Rolling forward 00000000000000000d9b2508615d569e18f00c034d71474fc44a43af8d4a5003 (340000) ... Rolled forward to 00000000000000001034012d7e4facaf16ca747ea94b8ea66743086cfe298ef8 ``` (similarly to rolling back) ACKs for top commit: Crypt-iQ: crACK 1fc7a81 stickies-v: ACK 1fc7a81 achow101: ACK 1fc7a81 vasild: ACK 1fc7a81 hodlinator: Concept ACK 1fc7a81 Tree-SHA512: 44ed1da8336de5a3d937e11a13e6f1789064e23eb70640a1c406fbb0074255344268f6eb6b06f036ca8d22bfeb4bdea319c3085a2139d848f6d36a4f8352b76a
…ng blocks 01cc20f test: improve coverage for a resolved stalling situation (Martin Zumsande) 9af6daf test: remove magic number when checking for blocks that have arrived (Martin Zumsande) 3069d66 p2p: During block download, adjust pindexLastCommonBlock better (Martin Zumsande) Pull request description: As described in #32179, `pindexLastCommonBlock` is updated later than necessary in master. In case of a linear chain with no forks, it can be moved forward at the beginning of `FindNextBlocksToDownload`, so that the updated value can be used to better estimate `nWindowEnd`. This helps the node to request all blocks from peers within the correct 1024-block-window and avoids peers being incorrectly marked as stallers. I also changed `p2p_ibd_stalling.py` to cover the situation after a resolved situation, making sure that no additional peers are marked for stalling. Fixes #32179 ACKs for top commit: Crypt-iQ: crACK 01cc20f stringintech: re-ACK 01cc20f achow101: ACK 01cc20f sipa: utACK 01cc20f Tree-SHA512: a97f7a7ef5ded538ee35576e04b3fbcdd46a6d0189c7ba3abacc6e0d81e800aac5b0c2d2565d0462ef6fd4acc751989f577fd6adfd450171a7d6ab26f437df32
…et gettransaction response 060bb55 rpc: add decoded tx details to gettransaction with extra wallet fields (Matthew Zipkin) ad1c3bd [move only] move DecodeTxDoc() to a common util file for sharing (Matthew Zipkin) d633db5 rpc: add "ischange: true" in wallet gettransaction decoded tx output (Matthew Zipkin) Pull request description: This change is motivated by external RBF clients like https://github.com/CardCoins/additive-rbf-batcher/. It saves the user a redundant re-looping of tx outputs, calling `getaddressinfo` on each one, looking for the change output in order to adjust the fee. The field `"ischange"` only appears when `gettransaction` is called on a wallet, and is either `true` or not present at all. I chose not to include `ischange: false` because it is confusing to see that on *received* transactions. Example of the new field: ``` "vout": [ { "value": 1.00000000, "n": 0, "scriptPubKey": { "asm": "0 5483235e05c76273b3b50af62519738781aff021", "desc": "addr(bcrt1q2jpjxhs9ca388va4ptmz2xtns7q6lupppkw7wu)#d42g84j6", "hex": "00145483235e05c76273b3b50af62519738781aff021", "address": "bcrt1q2jpjxhs9ca388va4ptmz2xtns7q6lupppkw7wu", "type": "witness_v0_keyhash" } }, { "value": 198.99859000, "n": 1, "scriptPubKey": { "asm": "0 870ab1ab58632b05a417d5295f4038500e407592", "desc": "addr(bcrt1qsu9tr26cvv4stfqh65547spc2q8yqavj7fnlju)#tgapemkv", "hex": "0014870ab1ab58632b05a417d5295f4038500e407592", "address": "bcrt1qsu9tr26cvv4stfqh65547spc2q8yqavj7fnlju", "type": "witness_v0_keyhash" }, "ischange": true } ] ``` ACKs for top commit: furszy: ACK [060bb55](060bb55) maflcko: review ACK 060bb55 🌛 achow101: ACK 060bb55 rkrux: lgtm ACK 060bb55 Tree-SHA512: aae4854d2bb4e9a7bc1152691ea90e594e8da8a63c9c7fda72a504fb6a7e54ae274ed5fa98d35d270e0829cc8f8d2fd35a5fc9735c252a10aa42cc22828930e7
…` write methods 743abbc refactor: inline constant return value of `BlockTreeDB::WriteBatchSync` and `BlockManager::WriteBlockIndexDB` and `BlockTreeDB::WriteFlag` (Lőrinc) e030240 refactor: inline constant return value of `CDBWrapper::Erase` and `BlockTreeDB::WriteReindexing` (Lőrinc) cdab948 refactor: inline constant return value of `CDBWrapper::Write` (Lőrinc) d1847cf refactor: inline constant return value of `TxIndex::DB::WriteTxs` (Lőrinc) 50b63a5 refactor: inline constant return value of `CDBWrapper::WriteBatch` (Lőrinc) Pull request description: Related to #31144 (comment) ### Summary `WriteBatch` always returns `true` - the errors are handled by throwing `dbwrapper_error` instead. ### Context This boolean return value of the `Write` methods is confusing because it's inconsistent with `CDBWrapper::Read`, which catches exceptions and returns a boolean to indicate success/failure. It's bad that `Read` returns and `Write` throws - but it's a lot worse that `Write` advertises a return value when it actually communicates errors through exceptions. ### Solution This PR removes the constant return values from write methods and inlines `true` at their call sites. Many upstream methods had boolean return values only because they were propagating these constants - those have been cleaned up as well. Methods that returned a constant `true` value that now return `void`: - `CDBWrapper::WriteBatch`, `CDBWrapper::Write`, `CDBWrapper::Erase` - `TxIndex::DB::WriteTxs` - `BlockTreeDB::WriteReindexing`, `BlockTreeDB::WriteBatchSync`, `BlockTreeDB::WriteFlag` - `BlockManager::WriteBlockIndexDB` ### Note `CCoinsView::BatchWrite` (and transitively `CCoinsViewCache::Flush` & `CCoinsViewCache::Sync`) were intentionally not changed here. While all implementations return `true`, the base `CCoinsView::BatchWrite` returns `false`. Changing this would cause `coins_view` tests to fail with: > terminating due to uncaught exception of type std::logic_error: Not all unspent flagged entries were cleared We can fix that in a follow-up PR. ACKs for top commit: achow101: ACK 743abbc janb84: ACK 743abbc TheCharlatan: ACK 743abbc sipa: ACK 743abbc Tree-SHA512: b2a550bff066216f1958d2dd9a7ef6a9949de518cc636f8ab9c670e0b7a330c1eb8c838e458a8629acb8ac980cea6616955cd84436a7b8ab9096f6d648073b1e
66978a1 kernel: remove btck_chain_get_tip (stickies-v) 4dd7e6d kernel: remove btck_chain_get_genesis (stickies-v) Pull request description: Removes `btck_chain_get_genesis` and `btck_chain_get_tip`. They are trivially replaced with `btck_chain_get_by_height` (as indicated in the updated `bitcoinkernel_wrapper.h`), so I think it makes sense to trim the interface. For `btck_chain_get_tip`: on `master` we don't provide any guarantees that the returned block index still corresponds to the actual tip, so the extra call doesn't seem like a regression to me. ACKs for top commit: TheCharlatan: ACK 66978a1 janb84: ACK 66978a1 Tree-SHA512: f583fbb7f2e3f8f23afb57732b2cbe9e1d550bfc43c9a2619895ee30c27f5f3c5cd9e4ecb7e05b1f6ab9e11c368596ec9b733d67e06cfafb12326d88e8e4dd7d
f06c6e1 guix: build for Linux HOSTS with -static-libgcc (fanquake) 1bdf469 guix: patch store paths out of libunwind (fanquake) 078a72c guix: move static-libc++ into CMAKE_EXE_LINKER_FLAGS flags (fanquake) Pull request description: Build release binaries with `-static-libgcc`. Would avoid future issues like #33178. ACKs for top commit: willcl-ark: ACK f06c6e1 hebasto: ACK f06c6e1. janb84: Concept ACK f06c6e1 Tree-SHA512: 79409d9044fe7a339ea8090ca0e70e1305816aa3225b41ca6e4f2fec37650206ab5a78c1b2495a27a0c6c0dd6d5f86bd696101d2d1c5ecc72c630dc34e55f7dc
Makes the sponge utility available for an upcoming scripted-diff.
-BEGIN VERIFY SCRIPT- sed -i 's/^\t/ /' src/univalue/include/univalue_escapes.h -END VERIFY SCRIPT- Co-authored-by: Anthony Towns <[email protected]>
-BEGIN VERIFY SCRIPT- expand -t4 src/crypto/sha256_sse4.cpp | sed 's/ *$//' | sponge src/crypto/sha256_sse4.cpp -END VERIFY SCRIPT- Co-authored-by: Anthony Towns <[email protected]>
This change provides finer control over the compilation of RCC-generated files.
This is available in GCC 15. See https://gcc.gnu.org/gcc-15/changes.html.
fa9537c ci: Use latest Xcode that the minimum macOS version allows (MarcoFalke) Pull request description: Changing the CI policy to use the *latest* Xcode (instead of the *earliest*), allowed by the Bitcoin Core minimum supported macOS version, makes sense: While this may require the developer or user to install a later security point-release on macOS, this should generally be fine and it is even expected that users run the latest supported security release of their operating system. Also, in practise, this often doesn't result in a visible change anyway: This specific change from Xcode 16.0 to 16.2 does not change any behavior of the Bitcoin Core CI, because there are no C++-related changes in those point releases. ACKs for top commit: l0rinc: ACK fa9537c vasild: ACK fa9537c fanquake: ACK fa9537c - seems fine. Tree-SHA512: ca0e6c4fc396cad7569d04d7a648bc5318cce171f2fa941d8b00a30cf49b054e70a0133738533c744bccd65baf9129ba527b1950b15e10c3f7953a24ef359977
1db7491 depends: sqlite 3.50.4 (fanquake) 286f3e4 guix: sqlite wants tcl (fanquake) Pull request description: Migrate to SQLite `3.50.4` in depends; switching to its new [Autosetup](https://msteveb.github.io/autosetup/) build system. ACKs for top commit: TheCharlatan: ACK 1db7491 willcl-ark: tACK 1db7491 Tree-SHA512: 2932fcde866e4eb7bae6a7c4fa0ef7a6dfcc4d2fdf239b0a0c224e064086ca8bda62d159f89dd7273db232e609a0d28c625756628b885abcfbc0940d067f4d20
…ain warning 8343a9f test: add `-alertnotify` test for large work invalid chain warning (Sebastian Falbesoner) Pull request description: This PR adds missing test coverage for the `LARGE_WORK_INVALID_CHAIN` fork warning, checked with the `-alertnotify` option: https://github.com/bitcoin/bitcoin/blob/ead849c9f177a3a175a22b35fa864b4b37fb9934/src/validation.cpp#L2033-L2040 Found that this is missing during review of #32587. The test works by first creating a bunch of invalid blocks, that are first announced by headers and then submitted fully in reverse (invalid tip first), in order to set `m_best_invalid` to that value, finally leading to the best chain / invalid chain gap of >= 6 blocks. I'd be curious if there are other (more realistic?) ways to test this. One simple alternative is just to call `invalidateblock` twice (once at the tip, once at the base of the invalid chain). Note that the written warning doesn't include the exclamation mark, as it is removed via `SanitizeString` in the `AlertNotify` function. ACKs for top commit: brunoerg: reACK 8343a9f mzumsande: re-ACK 8343a9f Tree-SHA512: d81e9ce7622026498cad5cdcdb867a22068670983737502888c72c72209ca6ff183e77d7429f758765a42c25cda439e01f795884864ac6fe6ff258a98d0bbcbc
fa7ea49 ci: Run GUI unit tests in cross-Windows task (MarcoFalke) Pull request description: Most users of the cross-compiled releases for Windows will most likely pick the GUI, so running the cross-compiled GUI unit tests on a real Windows seems desirable. ACKs for top commit: fanquake: ACK fa7ea49 - didn't test. Tree-SHA512: 6826474295ecf0170e45a644100887d5e53899b4a3eb49635e5cc62c774b512b383bc0b2de15ac854a527da0779b5ab8f52aae9f817c7f2971a0cbfc68c027b7
50cbde3 depends: Update Qt download link (Hennadii Stepanov) Pull request description: Replace the [unreliable](#33898 (comment)) https://code.qt.io with the GitHub mirror link. Closes #33898. ACKs for top commit: fanquake: ACK 50cbde3 Tree-SHA512: 1c59f438e39662a58618d3701ba5d39e87f4d4f7c05074b9f8a99d4b5a2665ee071bc3528865e25dbebbdc3bd1ce52a9016273261b7584360f3712e7dfb2774e
fa7e222 clang-format: Set Bitcoin Core IncludeCategories (MarcoFalke) Pull request description: Replace the default llvm include categories with the ones specific to Bitcoin Core. Ref: https://releases.llvm.org/17.0.1/tools/clang/docs/ClangFormatStyleOptions.html#includecategories Also, format a file as example. To test this, the diff in src/test needs to be reverted. Also `IncludeBlocks: Regroup` needs to be set. Then `clang-format -i src/test/blockchain_tests.cpp` should recreate the diff. ```diff diff --git a/src/.clang-format b/src/.clang-format index 15335fe..579079095f 100644 --- a/src/.clang-format +++ b/src/.clang-format @@ -99,3 +99,3 @@ IfMacros: - KJ_IF_MAYBE -IncludeBlocks: Preserve +IncludeBlocks: Regroup IncludeCategories: ``` ACKs for top commit: l0rinc: ACK fa7e222 Tree-SHA512: f500060858898c48f709e8fecfe4c41fc05645e2ff3b1504cc82ce354129642dd658a2311fd038363068ed682d016c32b56d935783c8084591ac5152b413fa2c
096924d kernel: add btck_block_tree_entry_equals (stickies-v) Pull request description: `BlockTreeEntry` objects are often compared. This happens frequently in our own codebase and seems likely to be the case for clients, too. Users can already work around this by comparing based on block hash (and optionally height as belt-and-suspenders), but I think this should be part of the interface for performance and consistency reasons. Note: perhaps this is too ad-hoc, and we should extend this PR to add the operator for more types? `BlockTreeEntry` is the main one I've needed this for in developing `py-bitcoinkernel`, though. ACKs for top commit: maflcko: review ACK 096924d 📓 TheCharlatan: ACK 096924d yuvicc: Code Review ACK 096924d Tree-SHA512: a0c08c01ab6c855aec4e2b2b898e9550493cd4cf8c6e1fe9e4fe5039d0d9ef3bffb2f2ab0454c7cc449b9deedd7889f5fd7b5f100fa706a855023af4adb803c6
ade0397 txgraph: drop move assignment operator (Anthony Towns) Pull request description: This removes the only place where move-assignment of `TxGraph::Ref` is used (in tests), and drops supports for it. Suggested in #33629 (comment) ACKs for top commit: l0rinc: reACK ade0397 instagibbs: ACK ade0397 Tree-SHA512: 0f49e454d0d44817278cbd3fbb8fce89c64c6f6c6d852bea26c728b9f1b6827a0f2b8731ac2031150af92b0ec479c2fe4ece01256fb3b6b2bf941f16c0e2c541
c34bc01 doc: clarify and cleanup macOS fuzzing notes (dergoegge) Pull request description: * Remove or consolidate macOS notes sprinkled throughout the doc into dedicated section * Note that support for fuzzing on macOS is not maintained Closes #33731 ACKs for top commit: frankomosh: ACK c34bc01 janb84: Concept ACK c34bc01 darosior: reACK c34bc01 brunoerg: ACK c34bc01 rkrux: ACK c34bc01 ismaelsadeeq: reACK c34bc01 Tree-SHA512: 76a79a102b4941b31bd05b65aa37beb0f48d8bb7b07f4ec2fa55be7e6b4880ce7031fe9a7764984dbd879bf6238dc61689006a9225deee39b8b759722078b808
fa0fee4 ci: Remove redundant busybox option (MarcoFalke) fa102ec doc: Shorten ci name (MarcoFalke) 2222223 doc: Remove bash -c wrapper (MarcoFalke) Pull request description: The option was fine, but now that there is a dedicated Alpine Linux task, which uses BusyBox, it seems redundant. (See: `ci/test/00_setup_env_native_alpine_musl.sh`) So remove the `USE_BUSY_BOX` option, along with the `BINS_SCRATCH_DIR` env var. Also includes two small ci-doc fixups. ACKs for top commit: fanquake: ACK fa0fee4 Tree-SHA512: abad7888cbf5833cc322d133187f74653c232c03b8949ad06dd1ea5ace14127871322fe682268ebec7720963615c3f113c7660a2055bf48bbb9ff9a730221d7e
8558902 depends: Add patch for Windows11Style plugin (Hennadii Stepanov) Pull request description: This PR fixes bitcoin-core/gui#906: <img width="561" height="179" alt="image" src="https://github.com/user-attachments/assets/6bb6d12b-91a6-4659-b6eb-be64093ec86d" /> ACKs for top commit: waketraindev: ACK 8558902 fanquake: ACK 8558902 - did not test on Windows. Tree-SHA512: c8c0518b9cfccffb364f9305febec238236ef51134e915885f491c7f0bef59401367f60bbb034e0216edf0a74a99a07a3dcc22804d8396260375ea60a60756a9
…py module to enable reuse across multiple tests.
Only include what we really need. Skip 100s of mb of manpages, swiftmodules, modulemaps. Note that System/Library is only needed for the Qt build.
Starting with Python 3.11, Pythons gzip might delegate to zlib. Depending on the OS, i.e Ubuntu vs Fedora, the underlying zlib implementation might differ, resulting in different output. For now, or until a better solution exists, disable compression. This results in the SDK increasing in size to ~157mb. Which is not unreasonable, to regain determinism (and would be significantly worse without the previous commit). See: https://docs.python.org/3/library/gzip.html#gzip.compress Co-authored-by: stickies-v <[email protected]>
This puts it in scope for the Python linters.
3e43553 depends: latest config.sub (fanquake) 04eb84f depends: latest config.guess (fanquake) Pull request description: It's been about a year since these were last updated. Pull in the latest versions. ACKs for top commit: hebasto: ACK 3e43553, I have reviewed the code and it looks OK. Tree-SHA512: f18a0b95e71588e9f1ea55efb6379664aa6e9154801448e9425362414c3f3c4dab29dbe0e3ab02c46ac1f2e2ad1d067bc6feb8c550ccde37cabd1c0bd9d1b87c
…sed approach 70d9e8f fix: reorg behaviour in mempool tests to match real one (yuvicc) 540ed33 Move the create_empty_fork method to the test framework's blocktools.py module to enable reuse across multiple tests. (yuvicc) Pull request description: Updated functional tests to replace direct use of `invalidateblock` with proper fork-based reorg behaviour. The direct invalidation approach bypasses important validation checks and has depth limitations(10 block) that don't match real-world reorg scenarios. For more details see #32531. Fixes #32531 ACKs for top commit: instagibbs: reACK 70d9e8f theStack: re-ACK 70d9e8f Tree-SHA512: 8aae298bfa295b4e0e4627b522e9eac549399008fd8e336a66f8c9950c886917da0b3f0bdc62d0c8ea2b8082f36639300cac4070986a7766398e15bc1f666da5
Clear out space on the centos job be deleteing unnecessary files. Raised by #33293 which pointed to a solution like google/oss-fuzz@b7f04d7 Only runs when cache provider (runner) is `gha`, and on the CentOS job.
…:isInMempool() 2909655 fix: remove redundant mempool lock in ChainImpl::isInMempool() (Fibonacci747) Pull request description: This PR removes an unnecessary `LOCK(mempool->cs)` in `ChainImpl::isInMempool()`. The method calls `CTxMemPool::exists()`, which already locks `mempool->cs` internally. Because the mempool mutex is a RecursiveMutex, double-locking was safe but redundant. Dropping the outer lock matches patterns used elsewhere in ChainImpl (e.g. `hasDescendantsInMempool()` and `GetTransactionAncestry()` callers) where mempool read APIs are invoked without an additional lock and rely on the callee’s internal locking. `isRBFOptIn()` remains unchanged since `IsRBFOptIn(tx, pool)` explicitly requires the caller to hold `pool.cs` as indicated by its thread-safety annotation. ACKs for top commit: maflcko: lgtm ACK 2909655 instagibbs: utACK 2909655 stickies-v: ACK 2909655 Tree-SHA512: 4dfd88e01d8c7a4b6ceb3c736243fb22bfee5ccfc422d134acb633b908ca14c807637a2aa20de89e86e583b23ec70a1d121d77e35af60e114d93971b2a4bfd3b
52230a7 test: check for output to stdout in `TestShell` test (Sebastian Falbesoner) Pull request description: This is a small follow-up PR to the recently added `TestShell` test (#33546), verifying the stdout message "TestShell is already running!" when trying to instantiate a second instance. ACKs for top commit: maflcko: lgtm ACK 52230a7 rkrux: crACK 52230a7 Tree-SHA512: 096d70e1bd0f09c1b389e58fa4b880442406c56f0c8ef8b8fbd0627081bc390b1ce5d6032bcca19b03206b7a444d9c523f9b62078b5ca5b7f1ae3c57bb4129c9
c0bfe72 Change Parse descriptor argument to string_view (Sjors Provoost) Pull request description: While investigating a silent merge conflict in #33135 I noticed that #32983 changed the descriptor `Parse` function signature from `const std::string& descriptor` to `std::span<const char> descriptor`. Calling that new version of `Parse` with a string literal will trigger a confusing "Invalid characters in payload" due to the trailing "\0". It can be worked around by having (the test) wrap string literals in `std::string()`, but that's easy to forget. Using `string_view` is easier and more compact than (as a previous version of this PR did) checking for trailing `\0`. Also add a test. ACKs for top commit: maflcko: review ACK c0bfe72 🍨 enirox001: tACK c0bfe72 stickies-v: ACK c0bfe72 rkrux: crACK c0bfe72 Tree-SHA512: 6b20307f834dae66826c8763f6c2ba0071f4e369375184cb5ff8543b85220fcaf33a47ddb065e418d1af3ed9a3fac401a7854f8924f52aab2b000b1f65328f2c
e07e573 ci: clear out space on centos job (will) Pull request description: Fixes #33293 Clear out space on jobs running on GHA by deleteing unnecessary files. Raised in #33293 which pointed to a solution like google/oss-fuzz@b7f04d7 which is adapted slightly here. Only runs when cache provider (runner) is `gha`. A run on my fork can be seen here: https://github.com/willcl-ark/bitcoin/actions/runs/19703413734/job/56444984809 ACKs for top commit: maflcko: lgtm ACK e07e573 m3dwards: ACK e07e573 janb84: ACK e07e573 Tree-SHA512: 723589df4c434dd3eaed43acefe25f1788837743882e910e79eceee25e2bd98990cd01b8b80a46ba82418867b32c5ee1b96341223696244504e118eae6ad4a16
…minism (across distros) 3e01b5d contrib: rename gen-sdk to gen-sdk.py (fanquake) c1213a3 macdeploy: disable compression in macOS gen-sdk script (fanquake) a33d034 contrib: more selectively pick files for macOS SDK (fanquake) Pull request description: This includes three changes. The first is to more selectively pick files for inclusion into our macOS SDK tarball (skip manpages, binaries etc), which is nice because it redues the size of the tarball (from ~80mb to 20mb), and makes the size increase that happens with the next commit, less-bad. The second change removes compression of the tarball. Starting with Python 3.11, Pythons gzip might delegate to zlib. Depending on the OS, i.e Ubuntu vs Fedora, the underlying zlib implementation might differ, resulting in different output. For now, or until a better solution exists, remove compression. This results in the SDK increasing in size to ~157mb. Which is not unreasonable, to regain determinism (and would be significantly worse without the previous commit). See: https://docs.python.org/3/library/gzip.html#gzip.compress The third renames `gen-sdk` to `gen-sdk.py`, so that it will be linted, along with the rest of our Python files. Fixes #31873. We could probably also put this into 30.x. ACKs for top commit: stickies-v: ACK 3e01b5d modulo the new .tar SDK being uploaded davidgumberg: Tested ACK 3e01b5d Tree-SHA512: 272164a98e0e6f10822870162c1b3a405693c2f64d3ed085a2d2243a48641d940704b5ef6022256915ac9cf383e87a4f8d4dc2ec4eaa9d25e2abd30f5498778b
…ive testing 2e27bd9 ci: Add Windows + UCRT jobs for cross-compiling and native testing (Hennadii Stepanov) bd130db ci: Rename items specific to Windows + MSVCRT (Hennadii Stepanov) Pull request description: This PR is part of the ongoing effort to migrate to the modern UCRT runtime for cross-compiled Windows binaries, including release builds. For more details about this migration, see: - #30210 - #33593 MSVCRT-related CI jobs should be removed from the CI framework once the migration to UCRT is complete. ACKs for top commit: maflcko: review ACK 2e27bd9 🖊 fanquake: ACK 2e27bd9 Tree-SHA512: 222ca5e54646bcce9db6e20191d5891e988274e18b2f30085de6435a3b288a9d0fc414e8f76342e275ae58ee6603f751933d1faa8bdff446edf2695091f8ca4c
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.
No description provided.