aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-15Merge bitcoin/bitcoin#25730: RPC: listunspent, add "include immature ↵Andrew Chow
coinbase" flag fa84df1f033a5d1a8342ea941eca0b5ef73d78e7 scripted-diff: wallet: rename AvailableCoinsParams members to snake_case (furszy) 61c2265629fdf11a2cc266fad54ceb0a1247bb5e wallet: group AvailableCoins filtering parameters in a single struct (furszy) f0f6a3577bef2e9ebd084fe35850e4e9580128a9 RPC: listunspent, add "include immature coinbase" flag (furszy) Pull request description: Simple PR; adds a "include_immature_coinbase" flag to `listunspent` to include the immature coinbase UTXOs on the response. Requested by #25728. ACKs for top commit: danielabrozzoni: reACK fa84df1f033a5d1a8342ea941eca0b5ef73d78e7 achow101: ACK fa84df1f033a5d1a8342ea941eca0b5ef73d78e7 aureleoules: reACK fa84df1f033a5d1a8342ea941eca0b5ef73d78e7 kouloumos: reACK fa84df1f033a5d1a8342ea941eca0b5ef73d78e7 theStack: Code-review ACK fa84df1f033a5d1a8342ea941eca0b5ef73d78e7 Tree-SHA512: 0f3544cb8cfd0378a5c74594480f78e9e919c6cfb73a83e0f3112f8a0132a9147cf846f999eab522cea9ef5bd3ffd60690ea2ca367dde457b0554d7f38aec792
2022-11-15Merge bitcoin/bitcoin#16981: Improve runtime performance of --reindexAndrew Chow
db929893ef0bc86ea2708cdbcf41152240cd7c73 Faster -reindex by initially deserializing only headers (Larry Ruane) c72de9990ae8f1744006d9c852023b882d5ed80c util: add CBufferedFile::SkipTo() to move ahead in the stream (Larry Ruane) 48a68908ba3d5e077cda7bd1e908b923fbead824 Add LoadExternalBlockFile() benchmark (Larry Ruane) Pull request description: ### Background During the first part of reindexing, `LoadExternalBlockFile()` sequentially reads raw blocks from the `blocks/blk00nnn.dat` files (rather than receiving them from peers, as with initial block download) and eventually adds all of them to the block index. When an individual block is initially read, it can't be immediately added unless all its ancestors have been added, which is rare (only about 8% of the time), because the blocks are not sorted by height. When the block can't be immediately added to the block index, its disk location is saved in a map so it can be added later. When its parent is later added to the block index, `LoadExternalBlockFile()` reads and deserializes the block from disk a second time and adds it to the block index. Most blocks (92%) get deserialized twice. ### This PR During the initial read, it's rarely useful to deserialize the entire block; only the header is needed to determine if the block can be added to the block index immediately. This change to `LoadExternalBlockFile()` initially deserializes only a block's header, then deserializes the entire block only if it can be added immediately. This reduces reindex time on mainnet by 7 hours on a Raspberry Pi, which translates to around a 25% reduction in the first part of reindexing (adding blocks to the index), and about a 6% reduction in overall reindex time. Summary: The performance gain is the result of deserializing each block only once, except its header which is deserialized twice, but the header is only 80 bytes. ACKs for top commit: andrewtoth: ACK db929893ef0bc86ea2708cdbcf41152240cd7c73 achow101: ACK db929893ef0bc86ea2708cdbcf41152240cd7c73 aureleoules: ACK db929893ef0bc86ea2708cdbcf41152240cd7c73 - minor changes and new benchmark since last review theStack: re-ACK db929893ef0bc86ea2708cdbcf41152240cd7c73 stickies-v: re-ACK db929893e Tree-SHA512: 5a5377192c11edb5b662e18f511c9beb8f250bc88aeadf2f404c92c3232a7617bade50477ebf16c0602b9bd3b68306d3ee7615de58acfd8cae664d28bb7b0136
2022-11-15Merge bitcoin/bitcoin#26489: test: Split overly large util_tests.cpp fileMacroFake
fa4ec1be513c80d6db644f1e3170e980035e7306 test: Split overly large util_tests.cpp file (MacroFake) Pull request description: The file has ~3kLOC and is slow to compile. Fix both issues by splitting it. (On my machine the compilation goes from 25 seconds previously to 17+10 seconds for the two smaller files) To review, `--color-moved=dimmed-zebra` can be used. ACKs for top commit: RandyMcMillan: ACK fa4ec1be513c80d6db644f1e3170e980035e7306 for: shaavan: ACK fa4ec1be513c80d6db644f1e3170e980035e7306 aureleoules: ACK fa4ec1be513c80d6db644f1e3170e980035e7306 Tree-SHA512: 4719439c7ee0c6c06b6f6ccf07b3a037c0cae58b1bd6e6e929ebfeab8403be3d1905581669ed733bff0cbf4e385c27ae58d519ce031e145e6889bd5bce1c1d03
2022-11-14test: Split overly large util_tests.cpp fileMacroFake
2022-11-14Merge bitcoin/bitcoin#26240: rpc: Adjust RPCTypeCheckObj error stringMacroFake
2dede9f67596787e18904d3d5961f48ec75f241e Adjust RPCTypeCheckObj error string (Leonardo Araujo) Pull request description: Unifies the JSON type error strings as mentioned in #26214. Also refer to #25737. ACKs for top commit: furszy: ACK 2dede9f6 Tree-SHA512: c918889e347ba32cb6d0e33c0de5956c2077dd40c996151e16741b0c4983ff098c60258206ded76ad7bbec4876c780c6abb494a97e4f1e05717d28a59b9167a6
2022-11-14Merge bitcoin/bitcoin#25714: univalue: Avoid std::string copiesMacroFake
fa095257511e53d7a593c6714724aafb484e6b6f univalue: string_view test (MacroFake) 1111c7e3f1f5c550f62016d71ccc518aafd97acf univalue: Avoid std::string copies (MacroFake) Pull request description: This shouldn't matter too much, unless a really large string is pushed into a json struct, but I think it also clarifies the code. ACKs for top commit: martinus: Code review ACK https://github.com/bitcoin/bitcoin/commit/fa095257511e53d7a593c6714724aafb484e6b6f aureleoules: reACK fa095257511e53d7a593c6714724aafb484e6b6f ryanofsky: Code review ACK fa095257511e53d7a593c6714724aafb484e6b6f Tree-SHA512: 74c441912bd0b00cdb9ea7890121f71ae5d62a7594e7d29aa402c9e3f033710c5d3afb27a37c552e6513804b249aa37e375ce013a3db853a25d1fd7b6e6cd3a8
2022-11-10Merge bitcoin/bitcoin#26483: test: Don't pass add_to_wallet option to ↵Andrew Chow
walletcreatefundedpsbt 737c285f6955253b4bb6f5e2cb024cd79aca8ee4 test: Don't pass add_to_wallet option to walletcreatefundedpsbt (Ryan Ofsky) Pull request description: It's not a documented option. Noticed while working on #19762 ACKs for top commit: achow101: ACK 737c285f6955253b4bb6f5e2cb024cd79aca8ee4 Tree-SHA512: 1bf4186fae4390233b2f23389eb6c515c7f0209f12553592df5166e75c452ccd1fb125d9246047c08cff0b869fdda7793812d15da01441e2c4777514446f3ed6
2022-11-10test: Don't pass add_to_wallet option to walletcreatefundedpsbtRyan Ofsky
It's not a documented option. Noticed while working on #19762.
2022-11-09Merge bitcoin/bitcoin#26472: test: add missing bech32m / BIP86 test-cases to ↵MacroFake
wallet_descriptor.py 887d85e43d136dbfc2428f873ced3de50076bbd0 test: add missing bech32m / BIP86 test-cases to wallet_descriptor.py (Sebastian Falbesoner) Pull request description: This small PR adds missing "bech32m" address type / BIP86 checks w.r.t. to the `getnewaddress`/`getrawchangeaddress` RPC and descriptor export functionality to the functional test `wallet_descriptor.py`. ACKs for top commit: shaavan: ACK 887d85e43d136dbfc2428f873ced3de50076bbd0 kristapsk: ACK 887d85e43d136dbfc2428f873ced3de50076bbd0 Tree-SHA512: 05b443ae14138769dc3c87a0178f21db2698fa5bcbeaa953c50ed0c9cf5dcd1effcf4afd09551ca9f4ce73898a7882caaf4c57078767beb6a6a65eb3a662726d
2022-11-09Merge bitcoin/bitcoin#26473: test: Avoid collision with valid path names in ↵MacroFake
`getarg_tests/logargs` c8f91478c10affdfba8e52200c85379052f4e1b1 test: Avoid collision with valid path names in `getarg_tests/logargs` (Hennadii Stepanov) Pull request description: This PR prevents test failure when "private" is a part of a valid path. For example, `/private/var` is a valid path on macOS for temporary files, which in turn causes test failure on CI for tests managed by the [CTest](https://github.com/bitcoin/bitcoin/pull/25797) framework. ACKs for top commit: MarcoFalke: ACK c8f91478c10affdfba8e52200c85379052f4e1b1 Tree-SHA512: 09d257f8fa6be903ec8092b2ae92887a4bec2d05085c76c110637657f4a4bfe2714bf87e2e4727719b3624c8fa4c835ce2ca259c2c9c93033837f997b2057e4f
2022-11-09test: Avoid collision with valid path names in `getarg_tests/logargs`Hennadii Stepanov
2022-11-08test: add missing bech32m / BIP86 test-cases to wallet_descriptor.pySebastian Falbesoner
2022-11-07univalue: string_view testMacroFake
2022-11-05Merge bitcoin/bitcoin#26419: log: mempool: log removal reason in validation ↵MacroFake
interface 25ef049d60535ac02508ba71ef60f17d8349f120 log: mempool: log removal reason in validation interface (James O'Beirne) Pull request description: Currently the exact reason a transaction is removed from the mempool isn't logged. It is sometimes detectable from context, but adding the `reason` to the validation interface logs (where it is already passed) seems like an easy way to disambiguate. For example in the case of mempool expiry, the logs look like this: ``` [validationinterface.cpp:220] [TransactionRemovedFromMempool] [validation] Enqueuing TransactionRemovedFromMempool: txid=<txid> wtxid=<wtxid> [txmempool.cpp:1050] [RemoveUnbroadcastTx] [mempool] Removed <txid> from set of unbroadcast txns before confirmation that txn was sent out [validationinterface.cpp:220] [operator()] [validation] TransactionRemovedFromMempool: txid=<txid> wtxid=<wtxid> [validation.cpp:267] [LimitMempoolSize] [mempool] Expired 1 transactions from the memory pool ``` There is no context-free way to know $txid was evicted on the basis of expiry. This change will make that case (and probably others) clear. ACKs for top commit: 0xB10C: ACK 25ef049d60535ac02508ba71ef60f17d8349f120 Tree-SHA512: 9890f9fa16f66c8a9296798d8c28993e1b81da17cf592946f2abc22041f0b30b0911ab86a0c48d4aa46b9a8b3f7f5de67778649ac48c97740b0a09aa6816e0af
2022-11-05Merge bitcoin/bitcoin#26449: rpc: doc: add missing option "bech32m" for ↵MacroFake
`change_type` parameters c3b1fe59dbc7abe45973e282cddf3677514e220f rpc: doc: add missing option "bech32m" for `change_type` parameters (Sebastian Falbesoner) Pull request description: Affects the help of the `fundrawtransaction`, `send` and `walletcreatefundedpsbt` RPCs. This was found by manually inspecting the results of `$ git grep p2sh-segwit.*bech32`. ACKs for top commit: achow101: ACK c3b1fe59dbc7abe45973e282cddf3677514e220f Tree-SHA512: a3f1f8fde5905c80e1b95bd042ca0bc73d08c1c0e79c52ab0d6d12d7afdd4aa288afb41e12279fcea328a396f3d0a5564018170c0a11c5aa26dc6d44d2a62b1c
2022-11-04Merge bitcoin/bitcoin#26418: Fix signing of multi_a and rawtr scripts with ↵fanquake
wallets that only have corresponding keys 0de30ed509a9969cb254e00097671625c9e107d2 tests: Test Taproot PSBT signing with keys in other descriptor (Andrew Chow) 6efcdf6b7f6daa83b5937aa630fce358fdaed333 tests: Use new wallets for each test in wallet_taproot.py (Andrew Chow) 8781a1b6bbd0af3cfdf1421fd18de5432494619a psbt: Include output pubkey in additional pubkeys to sign (Andrew Chow) 323890d0d7db2628f9dc6eaeba6e99ce0a12e1f5 sign: Fill in taproot pubkey info for all script path sigs (Andrew Chow) Pull request description: A user reported on [stackexchange](https://bitcoin.stackexchange.com/q/115742/48884) that they were unable to sign for a `multi_a` script using a wallet that only had the corresponding keys (i.e. it did not have the `multi_a()` descriptor). This PR fixes this issue. Additionally, `wallet_taproot.py` is modified to test for this scenario by having another wallet in `do_test_psbt` which contains descriptors that only have the keys involved in the descriptor being tested. `wallet_taproot.py` was also modified to create new wallets for each test case rather than sharing wallets throughout as the sharing could result in the signing wallet having the keys in a different descriptor and accidentally result in failing to detect a test failure. The changes to the test also revealed a similar issue with `rawtr()` descriptors, which has also been fixed by checking if a descriptor can produce a `SigningProvider` for the Taproot output pubkey. ACKs for top commit: instagibbs: crACK https://github.com/bitcoin/bitcoin/pull/26418/commits/0de30ed509a9969cb254e00097671625c9e107d2 darosior: ACK 0de30ed509a9969cb254e00097671625c9e107d2 Tree-SHA512: 12e131dd8afd93da7b1288c9054de2415a228d4477b97102da3ee4e82ce9de20b186260c3085a4b7b067bd8b74400751dcadf153f113db83abc59e7466e69f14
2022-11-04Merge bitcoin/bitcoin#26448: test: fix intermittent failure in ↵MacroFake
p2p_sendtxrcncl.py 74d975318a1443aebfbcee36e331df4e54ec1fbe test: fix intermittent failure in p2p_sendtxrcncl.py (Martin Zumsande) Pull request description: `p2p_sendtxrcncl.py` currently fails intermittently in the CI, see e.g. https://cirrus-ci.com/task/5511952184115200?logs=ci#L4024 I believe that this is related to the reuse of the parameter `p2p_idx=2` of `add_outbound_p2p_connection` in this test: When we call `peer_disconnect`, we don't wait until the node has completed the disconnection. So there is a race between setting up the next connection (next `addconnection` RPC), and if the old one hasn't been removed and has an identical port like the new one (because we didn't increment `p2p_idx`), `CConnman::OpenNetworkConnection` just [returns](https://github.com/bitcoin/bitcoin/blob/5274f324375fd31cf8507531fbc612765d03092f/src/net.cpp#L1976) without establishing a connection, and the test fails. Fix this by using distinct `disconnect_p2ps` instead of `peer_disconnect`, which waits for the disconnect to complete. We can then use the same value for `p2p_idx` everywhere. ACKs for top commit: MarcoFalke: review ACK 74d975318a1443aebfbcee36e331df4e54ec1fbe Tree-SHA512: f99f2550b6b320c0a2416a475c1cf189c009fce3a5abf1d4462486e1bfe309e2c3fd4228a4009b0ca38cb77465ce85e3d22298719eb07302fa0a72fbab0e0668
2022-11-04Merge bitcoin/bitcoin#26443: doc: mention BIP86 in doc/bips.mdfanquake
303fb8ff459e67baf97c2ab0b6dd6fa25aff76e3 doc: mention BIP86 in doc/bips.md (Sebastian Falbesoner) Pull request description: ACKs for top commit: fanquake: ACK 303fb8ff459e67baf97c2ab0b6dd6fa25aff76e3 Tree-SHA512: f30de5be3c789d315d0118594671e9f6a5c7b6e9ec7b7f1c9428f582eeff13946c37ebae26910a2134091e284f30499fcc62923f873418d0ba46a0322af998ad
2022-11-04log: mempool: log removal reason in validation interfaceJames O'Beirne
Currently the exact reason a transaction is removed from the mempool isn't logged. It is sometimes detectable from context, but adding the `reason` to the validation interface logs (where it is already passed) seems like an easy way to disambiguate. For example, in the case of mempool expiry, the logs look like this: ``` [validationinterface.cpp:220] [TransactionRemovedFromMempool] [validation] Enqueuing TransactionRemovedFromMempool: txid=<txid> wtxid=<wtxid> [txmempool.cpp:1050] [RemoveUnbroadcastTx] [mempool] Removed <txid> from set of unbroadcast txns before confirmation that txn was sent out [validationinterface.cpp:220] [operator()] [validation] TransactionRemovedFromMempool: txid=<txid> wtxid=<wtxid> [validation.cpp:267] [LimitMempoolSize] [mempool] Expired 1 transactions from the memory pool ``` There is no context-free way to know $txid was evicted on the basis of expiry. This change will make that case (and probably others) clear.
2022-11-03test: fix intermittent failure in p2p_sendtxrcncl.pyMartin Zumsande
Using disconnect_p2ps instead of peer_disconnect makes the node wait for the disconnect to complete. As a result, we can reuse p2p_idx=0 in the add_outbound_p2p_connection calls.
2022-11-03rpc: doc: add missing option "bech32m" for `change_type` parametersSebastian Falbesoner
Affects the help of the `fundrawtransaction`, `send` and `walletcratefundedpsbt` RPCs.
2022-11-03Merge bitcoin/bitcoin#26445: .python-version: bump patch version to 3.6.15MacroFake
29fa38a41aa1844768d4b90df739eec3e66ea25f .python-version: bump patch version to 3.6.15 (Sjors Provoost) Pull request description: I'm unable to build Python 3.6.12 using PyEnv on macOS 13.0 as well as Ubuntu 22.10. Bumping the patch version fixes that issue on both systems. A workaround is to add `.python-version` to your local git excludes and then do `pyenv local 3.6.15`, but this won't persist when you switch branches. Another workaround is to disable `pyenv`, but then you're potentially not running the test suite against the oldest supported Python version. ACKs for top commit: MarcoFalke: concept ACK 29fa38a41aa1844768d4b90df739eec3e66ea25f Tree-SHA512: 60ecf76c957456fe4ece9e92c30866b27aba32d5bdb1696495281c2f7ef7a1fc30226e8992d55bf6f45e430b7588e05fbe49de7138aefab5597dd52bd4f021c0
2022-11-03Merge bitcoin/bitcoin#25248: refactor: Add LIFETIMEBOUND / -Wdangling-gsl to ↵fanquake
Assert() fa3ea81c3e7d962715788ab5525958a532c51414 refactor: Add LIFETIMEBOUND / -Wdangling-gsl to Assert() (MacroFake) Pull request description: Currently compiles clean, but I think it may still be useful. Can be tested by adding an `&`: ```diff diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index 5766fff92d..300c1ec60f 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -125,7 +125,7 @@ BOOST_AUTO_TEST_CASE(util_check) // Check -Wdangling-gsl does not trigger when copying the int. (It would // trigger on "const int&") - const int nine{*Assert(std::optional<int>{9})}; + const int& nine{*Assert(std::optional<int>{9})}; BOOST_CHECK_EQUAL(9, nine); } ``` Output: ``` test/util_tests.cpp:128:29: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl] const int& nine{*Assert(std::optional<int>{9})}; ^~~~~~~~~~~~~~~~~~~~~ ./util/check.h:75:50: note: expanded from macro 'Assert' #define Assert(val) inline_assertion_check<true>(val, __FILE__, __LINE__, __func__, #val) ^~~ 1 warning generated. ACKs for top commit: jonatack: ACK fa3ea81c3e7d962715788ab5525958a532c51414 theuni: ACK fa3ea81c3e7d962715788ab5525958a532c51414 Tree-SHA512: 17dea4d75f2ee2bf6e1b6a6f6d8f439711c777df0390574e8d8edb6ac9ee807a135341e4439050bd6a15ecc4097a1ba9a7ab15d27541ebf70a4e081fa6871877
2022-11-03.python-version: bump patch version to 3.6.15Sjors Provoost
2022-11-02Merge bitcoin/bitcoin#26417: test: fix intermittent failure in ↵MacroFake
feature_index_prune.py 201b9a02fd9885ce40999e383cf75b8354d6ef26 test: fix intermittent failure in feature_index_prune.py (Martin Zumsande) Pull request description: I can't reproduce the error from #26630 locally, but from analying the logs I think the problem is the following: After calling `sync_blocks`, we didn't check that the indexes have caught up to the tip before performing the manual pruning. This could possibly lead to prune blockers with a lower height than the expected 2489, which do appear in the logs of the failed CI runs, e.g. - `2022-10-27T21:14:17.703920Z [C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build\src\validation.cpp:2395] [FlushStateToDisk] [prune] coinstatsindex limited pruning to height 2488` ([Cirrus](https://cirrus-ci.com/task/5443742333665280?logs=functional_tests#L2506)) So, this should be fixed by a call to `sync_index`. Fixes #26330 ACKs for top commit: brunoerg: crACK 201b9a02fd9885ce40999e383cf75b8354d6ef26 Tree-SHA512: fb7023c9eb2ba6d0e69e059a401453cbdf63abc6804543dffcf36ba9f93c9cd13209e57aa5536d94b2e420c9d4cd0b1a7eff1adadd19aa7b3c33f592502e1bc0
2022-11-02Merge bitcoin/bitcoin#26396: net: Avoid SetTxRelay for feeler connectionsMacroFake
fa24239a1c2281f61ab70a62228e88f4c7e72701 net: Avoid SetTxRelay for feeler connections (MacroFake) Pull request description: Seems odd to reserve memory for the struct (the heaviest member being `m_tx_inventory_known_filter`) when it is never used. This also avoids sending out `msg_sendtxrcncl` before disconnecting. This shouldn't matter, as other messages, such as `msg_wtxidrelay`, `msg_sendaddrv2`, `msg_verack` or `msg_getaddr` are still sent. Though, it allows to test the changes here as a side-effect. ACKs for top commit: naumenkogs: ACK fa24239a1c2281f61ab70a62228e88f4c7e72701 vasild: ACK fa24239a1c2281f61ab70a62228e88f4c7e72701 jonatack: ACK fa24239a1c2281f61ab70a62228e88f4c7e72701 mzumsande: ACK fa24239a1c2281f61ab70a62228e88f4c7e72701 Tree-SHA512: d7604c7eb4df8f2de811e600bdd312440ee03e508d3a0f09ae79f7f2d3eeec663bfd47a2d079fa50b756d61e35dfa998de068a7b9afaf35378fa0e62a538263d
2022-11-01doc: mention BIP86 in doc/bips.mdSebastian Falbesoner
2022-11-01Merge bitcoin/bitcoin#26437: test: remove unused `CHANGE_{XPRV,XPUB}` constantsMacroFake
f1ee974e8e18a6a4fa50e0062d0531936dac32ae test: remove unused `CHANGE_{XPRV,XPUB}` constants (Sebastian Falbesoner) Pull request description: These constants exist since the introduction of the functional test wallet_taproot.py (2667366aaa69447a9de4d819669d254a5ebd4d4b), but they have never been used. ACKs for top commit: instagibbs: ACK f1ee974e8e18a6a4fa50e0062d0531936dac32ae brunoerg: ACK f1ee974e8e18a6a4fa50e0062d0531936dac32ae Tree-SHA512: 2c6f8cd537c35af59c4cbe6abb07386b7fb9e4662c7bed27ad8935e004f9bf452705fb1caef4f5ea1f4ad509745afba966005f95a18cf2b59e00b7739a5df7f8
2022-11-01test: remove unused `CHANGE_{XPRV,XPUB}` constantsSebastian Falbesoner
These constants exist since the introduction of the functional test wallet_taproot.py (2667366aaa69447a9de4d819669d254a5ebd4d4b), but they have never been used.
2022-11-01Merge bitcoin/bitcoin#25548: gui: Check for readlink buffer overflow and ↵fanquake
handle gracefully e049fd76f0d57c1e6400fbfbaf4cc6ebe540f16f Bugfix: Check for readlink buffer overflow and handle gracefully (Luke Dashjr) Pull request description: If readlink returns the size of the buffer, an overflow may have (safely) occurred. Pass a buffer size of MAX_PATH+1 (the size of the actual buffer) to detect this scenario. ACKs for top commit: hebasto: ACK e049fd76f0d57c1e6400fbfbaf4cc6ebe540f16f. Tree-SHA512: 188bace79cbe556efe7782e46b870c02729b07b104a9316b0f7d50013504972e85baf507403d2d6060bb2bf3e13f40d735bddd18255d97a60810208c3de87691
2022-11-01Merge bitcoin/bitcoin#26360: build: remove threadinterrupt from libbitcoinkernelfanquake
afbcd227dd0889002eeeec6148538ed2e2c9aadb build: remove threadinterrupt from libbitcoinkernel (fanquake) Pull request description: Extracted from #26292. ACKs for top commit: hebasto: ACK afbcd227dd0889002eeeec6148538ed2e2c9aadb, tested on Ubuntu 22.04. ryanofsky: Code review ACK afbcd227dd0889002eeeec6148538ed2e2c9aadb Tree-SHA512: 9d355f0e417561be41cdd0674a8f94c9ffe3ecfb4063bb9c90f1032cb9d471be11d4fa26de40993e3a411e015272201551fbbb3d3c2b43e4c17bf49386a2741c
2022-11-01Merge bitcoin/bitcoin#26294: build: move util/url to common/urlfanquake
3a0b352c63db543833e0f919a004cf2c5093fe9c refactor: move url.h/cpp from lib util to lib common (fanquake) 058eb69ce47c17205a41fc667ce66429f09a332a build: add missing event cflags to libbitcoin_util (fanquake) Pull request description: Move `util/url` to `common/url`. Also add missing `event_*` flags to `libbitcoin_util`. #26293 + the commit dropping boost cppflags from `libbitcoin_util` shows this issue. i.e: ```bash CXX util/libbitcoin_util_a-url.o util/url.cpp:7:10: fatal error: 'event2/http.h' file not found #include <event2/http.h> ^~~~~~~~~~~~~~~ 1 error generated. ``` ACKs for top commit: hebasto: ACK 3a0b352c63db543833e0f919a004cf2c5093fe9c ryanofsky: Code review ACK 3a0b352c63db543833e0f919a004cf2c5093fe9c Tree-SHA512: 600a76fd334267a02d332df9b67891a38d3fd7f5baf8a82b2447879b3bc65eab2552d2c081c0a5f1ec927bf80df7fc1f0cbbdda4cb76994b46dadf260b8e1cb3
2022-11-01Merge bitcoin/bitcoin#26373: Update minisketch subtree to latest upstreamfanquake
e9f1d8c27261070d209a28570ad36fe91531cdd2 Squashed 'src/minisketch/' changes from 47f0a2d26f..a571ba20f9 (Hennadii Stepanov) Pull request description: Contains: - https://github.com/sipa/minisketch/pull/68 - https://github.com/sipa/minisketch/pull/69 - https://github.com/sipa/minisketch/pull/70 - https://github.com/sipa/minisketch/pull/72 Fixes bitcoin/bitcoin#26262. Required for bitcoin/bitcoin#25797. Guix builds on `arm64`: ``` 28af3bdd17924bb5279934add1fe34f5664181a1c99f33793725adc35f90d778 guix-build-45a0f4e01448/output/aarch64-linux-gnu/SHA256SUMS.part c9cdcb107de5b683221b0e2a3796814548414cdba27be198516a2b401ada90c3 guix-build-45a0f4e01448/output/aarch64-linux-gnu/bitcoin-45a0f4e01448-aarch64-linux-gnu-debug.tar.gz ce1e916cc7574f555c04ed5fa9e9a47a1e4d2d9d1cb82a040269e8c32aca9194 guix-build-45a0f4e01448/output/aarch64-linux-gnu/bitcoin-45a0f4e01448-aarch64-linux-gnu.tar.gz 26404d3479108bcb8ede4ae7f3d37dbb64a335f0cd5bce7ee901d171a1ef2b0b guix-build-45a0f4e01448/output/arm-linux-gnueabihf/SHA256SUMS.part 0fe32aee5836baed86ad25cbddb43c5a9d2ecbbe5cc954f3a76670aa52ff3c6f guix-build-45a0f4e01448/output/arm-linux-gnueabihf/bitcoin-45a0f4e01448-arm-linux-gnueabihf-debug.tar.gz 41f312cbf26a0e51e6867e644beb3d085ebd4221dc83ea84a97b708e6d230b6d guix-build-45a0f4e01448/output/arm-linux-gnueabihf/bitcoin-45a0f4e01448-arm-linux-gnueabihf.tar.gz c05ba8235e05c171ecdbacba87dfc1db34d1971286b853c26e3de52a6b0ea1cc guix-build-45a0f4e01448/output/arm64-apple-darwin/SHA256SUMS.part 9d1dae2b73573d34950684269c41f2504761f2df19f24033513f6664b70b1aad guix-build-45a0f4e01448/output/arm64-apple-darwin/bitcoin-45a0f4e01448-arm64-apple-darwin-unsigned.dmg 1ff742346bd04b7edf27e096286f4863fcfec984b99caf265a64fe72b298b36a guix-build-45a0f4e01448/output/arm64-apple-darwin/bitcoin-45a0f4e01448-arm64-apple-darwin-unsigned.tar.gz 74a001f16ba382c22acb9979ee5d905af42f4ca3613fc6e8fa66fec994fb0850 guix-build-45a0f4e01448/output/arm64-apple-darwin/bitcoin-45a0f4e01448-arm64-apple-darwin.tar.gz ec2f70a0b8a128d3ca69307150714c400620199b506a411b0a4c0a506cc3ed66 guix-build-45a0f4e01448/output/dist-archive/bitcoin-45a0f4e01448.tar.gz 9a67ea74e1b5ef3d08b6a59217ecf8d193234c76f81157192fabe7a9b679af0c guix-build-45a0f4e01448/output/powerpc64-linux-gnu/SHA256SUMS.part 95b458427d73ed81f4a4f85be0dfe81a9a48dc254be65ef158de93d32f07a17a guix-build-45a0f4e01448/output/powerpc64-linux-gnu/bitcoin-45a0f4e01448-powerpc64-linux-gnu-debug.tar.gz 2b269c630f069cc42da5f361d13f5b684fbacb49641f44ed6687379a1e9281b0 guix-build-45a0f4e01448/output/powerpc64-linux-gnu/bitcoin-45a0f4e01448-powerpc64-linux-gnu.tar.gz 33d576b9be022108db6d76c41c1f72c865b5bb38439c6da1cbceac757a1be47f guix-build-45a0f4e01448/output/powerpc64le-linux-gnu/SHA256SUMS.part 053dc9cecc978601701459109eec82f3bcce4042d794c520fd4bd8cd4e17eff3 guix-build-45a0f4e01448/output/powerpc64le-linux-gnu/bitcoin-45a0f4e01448-powerpc64le-linux-gnu-debug.tar.gz 32946d589103c763c2fc67c0d8fa13a38b9194df76cd31755a761a7b9ad856a6 guix-build-45a0f4e01448/output/powerpc64le-linux-gnu/bitcoin-45a0f4e01448-powerpc64le-linux-gnu.tar.gz 7d1be372c84f9403333462e82d7800dfb1812b14c1ed228dacf605dff9aab75c guix-build-45a0f4e01448/output/riscv64-linux-gnu/SHA256SUMS.part 3338bcaf6b8ffd9c155c055a0a18d039e1173212e128561fdea493c263d6ecb9 guix-build-45a0f4e01448/output/riscv64-linux-gnu/bitcoin-45a0f4e01448-riscv64-linux-gnu-debug.tar.gz 7735eefa84630d16d8d37ea23c734578c6fb6540d4359b78d0d1508887e76042 guix-build-45a0f4e01448/output/riscv64-linux-gnu/bitcoin-45a0f4e01448-riscv64-linux-gnu.tar.gz c3a96d6758631b8e8b4f5bb8035e5442e1fc5b831c7a0ddedb26473b025b2503 guix-build-45a0f4e01448/output/x86_64-apple-darwin/SHA256SUMS.part b6c87738e6e561bfc4052464e93a6d03a87c51e8f27e4df8ae7458c9828e28cb guix-build-45a0f4e01448/output/x86_64-apple-darwin/bitcoin-45a0f4e01448-x86_64-apple-darwin-unsigned.dmg 0c16f9435c3d572970400ff4683705b297eda3dd37a682619371771da8efbb24 guix-build-45a0f4e01448/output/x86_64-apple-darwin/bitcoin-45a0f4e01448-x86_64-apple-darwin-unsigned.tar.gz 22e06590afe07b992f6f4e46d5568499403937606d16540b121f23e133270560 guix-build-45a0f4e01448/output/x86_64-apple-darwin/bitcoin-45a0f4e01448-x86_64-apple-darwin.tar.gz 56ddb44760f71fd1c1ea06c7174bf035b8b73c32569d69a1401d130551db43e5 guix-build-45a0f4e01448/output/x86_64-linux-gnu/SHA256SUMS.part 1c8a27fab5d9d0f3a5449f04ae8a7e693c5f144948f6d0c2dbf397e04ce9ebfa guix-build-45a0f4e01448/output/x86_64-linux-gnu/bitcoin-45a0f4e01448-x86_64-linux-gnu-debug.tar.gz 66aca3767407f6c2e77b8b93edc58e71c00bed518a75362e3c2f5009739c666c guix-build-45a0f4e01448/output/x86_64-linux-gnu/bitcoin-45a0f4e01448-x86_64-linux-gnu.tar.gz 7ac04c1d5f2dbb6c2c392add9c4e2c5c838c718910b920fe6691a5e9881065b9 guix-build-45a0f4e01448/output/x86_64-w64-mingw32/SHA256SUMS.part 2c51afbcf5645516d01d5f730e9883d9ed3cb90b9b9baf90792ecdb2b3eb21cf guix-build-45a0f4e01448/output/x86_64-w64-mingw32/bitcoin-45a0f4e01448-win64-debug.zip 81738a0690e954d6850f210fa3933ca5de8800078734f8b0810b5e7fe3e63e5d guix-build-45a0f4e01448/output/x86_64-w64-mingw32/bitcoin-45a0f4e01448-win64-setup-unsigned.exe ecade9ee23ad156e057d466afe79943f008de316973738efdf5ae33d2a527631 guix-build-45a0f4e01448/output/x86_64-w64-mingw32/bitcoin-45a0f4e01448-win64-unsigned.tar.gz 3b17762d01825a3f7d5aecf34cf038938d9ee467e63ea3f34efd1dfa2af5e284 guix-build-45a0f4e01448/output/x86_64-w64-mingw32/bitcoin-45a0f4e01448-win64.zip ``` ACKs for top commit: fanquake: ACK 45a0f4e014484695a00c30d792a6ea514d42f04e Tree-SHA512: e48d79aa0e3563aeae981ddf1281420fff9b739af43e3d77f13cace158724ff01a7622762aadfd093dcd18822a2c1b76d1c548ae64faf727ba93044887b560fb
2022-10-31Merge bitcoin/bitcoin#26387: p2p: TryLowWorkHeadersSync follow-upsfanquake
784b02319128988038d4bd82f05736be22f14ee9 [net processing] Simplify use of IsContinuationOfLowWorkHeadersSync in TryLowWorkHeaderSync (dergoegge) e891aabf5a4992a65b9c5ae8606f8dd08515b310 [net processing] Fixup TryLowWorkHeadersSync comment (dergoegge) Pull request description: See https://github.com/bitcoin/bitcoin/pull/26355#discussion_r1003561481 and https://github.com/bitcoin/bitcoin/pull/26355#discussion_r1004554187 ACKs for top commit: hernanmarino: ACK 784b02319128988038d4bd82f05736be22f14ee9 brunoerg: crACK 784b02319128988038d4bd82f05736be22f14ee9 mzumsande: ACK 784b02319128988038d4bd82f05736be22f14ee9 Tree-SHA512: b47ac0d78a09ca3a1806e38c5d2e2fcf1e5f0668f202450b5079c5cb168e168ac6828c0948d23f3610696375134986d75ef3c6098858173023bcb743aec8004c
2022-10-31Merge bitcoin/bitcoin#24051: Bugfix: configure: bitcoin-{cli,tx,util} don't ↵fanquake
need UPnP, NAT-PMP, or ZMQ 98868633d1d5cd2591b9613545bd2ce2e81af212 Bugfix: configure: bitcoin-{cli,tx,util} don't need UPnP, NAT-PMP, or ZMQ (Luke Dashjr) Pull request description: As with #23345, these other tools likewise don't use various deps. ACKs for top commit: achow101: ACK 98868633d1d5cd2591b9613545bd2ce2e81af212 Tree-SHA512: 4be056b8e0c9f69834229aa257187457de1bc34214d320b770834e21ecc1f0ca7aa7b9689fba525928947bfabbb461528795f709014fb9618b82f088fe64f271
2022-10-31Merge bitcoin/bitcoin#26402: doc: Fix typosMacroFake
180eac0f73b7d96861f9626ebb701d9a46585a5b Fix: typos (omahs) Pull request description: Fix: typos ACKs for top commit: aureleoules: ACK 180eac0f73b7d96861f9626ebb701d9a46585a5b Tree-SHA512: 23150f3408a2eb9cb298c6add16d1bcb149da277238786f053c2896c803f896b07555b3dc71e15cd8d390023800c8e006f931f415f887bab69ee5bd4b0420581
2022-10-31refactor: move url.h/cpp from lib util to lib commonfanquake
2022-10-31build: add missing event cflags to libbitcoin_utilfanquake
The fact that this is missing is currently masked by the inclusion of BOOST_CPPFLAGS.
2022-10-31Merge bitcoin/bitcoin#26424: doc: correct deriveaddresses RPC nameMacroFake
0f38524c31da4cf69d8e904569fe56292e4325b9 doc: correct deriveaddresses RPC name (Bitcoin Hodler) Pull request description: There never was a `deriveaddress` RPC, from what I can tell. It was always called `deriveaddresses` (plural). ACKs for top commit: theStack: ACK 0f38524c31da4cf69d8e904569fe56292e4325b9 Zero-1729: ACK 0f38524c31da4cf69d8e904569fe56292e4325b9 Tree-SHA512: 3f405f5479a0d39cf150fd80b4d854ffe4eef718a358202c619e34a08d98c1252b82fc70d106cdf2215dc5a50c6f6cd5e26fe7ed87156f6b08f8e97d963affb7
2022-10-30doc: correct deriveaddresses RPC nameBitcoin Hodler
2022-10-29scripted-diff: wallet: rename AvailableCoinsParams members to snake_casefurszy
-BEGIN VERIFY SCRIPT- sed -i 's/nMinimumAmount/min_amount/g' $(git grep -l nMinimumAmount) sed -i 's/nMaximumAmount/max_amount/g' $(git grep -l nMaximumAmount) sed -i 's/nMinimumSumAmount/min_sum_amount/g' $(git grep -l nMinimumSumAmount) sed -i 's/nMaximumCount/max_count/g' $(git grep -l nMaximumCount) -END VERIFY SCRIPT-
2022-10-29wallet: group AvailableCoins filtering parameters in a single structfurszy
Plus clean callers that use the params default values
2022-10-29RPC: listunspent, add "include immature coinbase" flagfurszy
so we can return the immature coinbase UTXOs as well.
2022-10-29Merge bitcoin/bitcoin#26404: test: fix intermittent failure in ↵MacroFake
rpc_getblockfrompeer.py 8a9f1e4d18e2b94509548af2aa3ad14185793f73 test: fix intermittent failure in rpc_getblockfrompeer.py (Martin Zumsande) Pull request description: Fixes an intermittent failure in `rpc_getblockfrompeer.py` observed in https://cirrus-ci.com/task/6610115527704576 by adding a sync to make sure the node has processed the header we sent it before we query it for the corresponding block. Fixes #26412 ACKs for top commit: jonatack: ACK 8a9f1e4d18e2b94509548af2aa3ad14185793f73 Tree-SHA512: f6188ab3cfd863034e44e9806d0d99a8781462bec94141501aefc71589153481ffb144e126326ab81807c2b2c93de7f4aac5d09dbcf26c4512a176e06fc6e5f8
2022-10-29Merge bitcoin/bitcoin#26408: test: Remove spam from debug logMacroFake
ef97b89902f03d710f6111a1d8deaaa87d92a817 Exclude rand from debug log (Jeff Ruane) Pull request description: Currently, `debug.log` is spammed with messages like this from `random.cpp` when functional tests are run. ``` 2022-10-25T19:24:34.787663Z [scheduler] [random.cpp:519] [SeedPeriodic] [rand] Feeding 36565 bytes of dynamic environment data into RNG ``` These logs are not useful for debugging and decrease the signal-to-noise ratio of the logs, so they should be suppressed by excluding the `rand` category, as the `libevent` and `leveldb` categories currently are. ACKs for top commit: LarryRuane: ACK ef97b89902f03d710f6111a1d8deaaa87d92a817 kouloumos: ACK ef97b89902f03d710f6111a1d8deaaa87d92a817, confirmed that this log level is only used in `random.cpp` and indeed it seems that it doesn't add any value to the debug.log during functional tests. satsie: ACK ef97b89902f03d710f6111a1d8deaaa87d92a817 theStack: ACK ef97b89902f03d710f6111a1d8deaaa87d92a817 Tree-SHA512: 5cea384a3197f0ec77efa9efc77822914450ecf5546606568bbd432c3536040c772c57aef58d3bb083a2e5e756f690766fa1fb382ab1973748db238108a58746
2022-10-28tests: Test Taproot PSBT signing with keys in other descriptorAndrew Chow
Test that the same keys included in other descriptors will still be able to sign a PSBT that requires those keys.
2022-10-28tests: Use new wallets for each test in wallet_taproot.pyAndrew Chow
To avoid a wallet potentially being able to sign a transaction using keys from descriptors imported in previous tests, make new wallets for each test case rather than sharing them.
2022-10-28psbt: Include output pubkey in additional pubkeys to signAndrew Chow
In addition to the pubkeys in hd_keypaths and tap_bip32_keypaths, also see if the descriptor can produce a SigningProvider for the output pubkey. Also slightly refactors this area to reduce code duplication.
2022-10-28sign: Fill in taproot pubkey info for all script path sigsAndrew Chow
Taproot pubkey info was not being added for multi_a signing. The filling of this info is moved into the common function CreateTaprootScriptSig so that any signing of taproot scripts will include the pubkey info.
2022-10-28Merge bitcoin/bitcoin#26409: refactor: Silence GCC ↵Andrew Chow
Wmissing-field-initializers in ChainstateManagerOpts fa29ef00adac6f0842acdd38344820a1ce0e3087 refactor: Silence GCC Wmissing-field-initializers in ChainstateManagerOpts (MacroFake) Pull request description: The `std::optional` fields in the struct that fall back to chain param defaults if not provided should be initialized to `std::nullopt`. This already happens with the current code. However, for consistency with `check_block_index` and to silence a GCC warning, add the "missing" `{}`. ACKs for top commit: achow101: ACK fa29ef00adac6f0842acdd38344820a1ce0e3087 hebasto: ACK fa29ef00adac6f0842acdd38344820a1ce0e3087, tested on Ubuntu 22.04 + GCC 11.3. jonatack: ACK fa29ef00adac6f0842acdd38344820a1ce0e3087 Tree-SHA512: bdec9c56df5d601a5616e107fed48737b13b0a7242b6526092fb682b5016544a4bc08666b60304c668d44c6f7ac69d3788093d921382c1d6c577c1f9fe31fc50