aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-02-27i2p: reuse created I2P sessions if not usedVasil Dimov
In the case of `i2pacceptincoming=0` we use transient addresses (destinations) for ourselves for each outbound connection. It may happen that we * create the session (and thus our address/destination too) * fail to connect to the particular peer (e.g. if they are offline) * dispose the unused session. This puts unnecessary load on the I2P network because session creation is not cheap. Is exaggerated if `onlynet=i2p` is used in which case we will be trying to connect to I2P peers more often. To help with this, save the created but unused sessions and pick them later instead of creating new ones. Alleviates: https://github.com/bitcoin/bitcoin/issues/26754 Github-Pull: #26837 Rebased-From: b906b64eb76643feaede1da5987a0c4d466c581b
2023-02-22wallet: reuse change dest when recreating TX with avoidpartialspendsMatthew Zipkin
Github-Pull: #27053 Rebased-From: 14b4921a91920df25b19ff420bfe2bff8c56f71e
2023-02-20Zero out wallet master key upon lockJohn Moffett
When an encrypted wallet is locked (for instance via the RPC `walletlock`), the docs indicate that the key is removed from memory. However, the vector (with a secure allocator) is merely cleared. This allows the key to persist indefinitely in memory. Instead, manually fill the bytes with zeroes before clearing. Github-Pull: #27080 Rebased-From: 3a11adc7004d21b3dfe028b190d83add31691c55
2023-02-20Correctly limit overview transaction listJohn Moffett
The way that the main overview page limits the number of transactions displayed (currently 5) is not an appropriate use of Qt. If it's run with a DEBUG build of Qt, it'll result in a segfault in certain relatively common situations. Instead of artificially limiting the rowCount() in the subclassed proxy filter, we hide/unhide the rows in the displaying QListView upon any changes in the sorted proxy filter. Github-Pull: bitcoin-core/gui/pull/704 Rebased-From: 08209c039ff4ca5be4982da7a2ab7a624117ce1a
2023-02-20depends: fix systemtap download URLfanquake
Github-Pull: #26944 Rebased-From: d81ca6619a5d05472af7f59e36cd100dd04a3a01
2023-02-20Add missing includes to fix gcc-13 compile errorMarcoFalke
Github-Pull: #26924 Rebased-From: fadeb6b103cb441e0e91ef506ef29febabb10715
2023-02-20addrdb: Only call Serialize() onceMartin Zumsande
The previous logic would call it once for serializing into the filestream, and then again for serializing into the hasher. If AddrMan was changed in between these calls by another thread, the resulting peers.dat would be corrupt with non-matching checksum and data. Fix this by using HashedSourceWriter, which writes the data to the underlying stream and keeps track of the hash in one go. Github-Pull: #26909 Rebased-From: 5eabb61b2386d00e93e6bbb2f493a56d1b326ad9
2023-02-20hash: add HashedSourceWriterMartin Zumsande
This class is the counterpart to CHashVerifier, in that it writes data to an underlying source stream, while keeping a hash of the written data. Github-Pull: #26909 Rebased-From: da6c7aeca38e1d0ab5839a374c26af0504d603fc
2023-02-20For feebump, ignore abandoned descendant spendsJohn Moffett
To be eligible for fee-bumping, a transaction must not have any of its outputs (eg - change) spent in other unconfirmed transactions in the wallet. However, this check should not apply to abandoned transactions. A new test case is added to cover this case. Github-Pull: #26675 Rebased-From: f9ce0eadf4eb58d1e2207c27fabe69a5642482e7
2023-02-20wallet: Skip rescanning if wallet is more recent than tipAndrew Chow
If a wallet has key birthdates that are more recent than the currrent chain tip, or a bestblock height higher than the current tip, we should not attempt to rescan as there is nothing to scan for. Github-Pull: #26679 Rebased-From: 378400953424598fd78ccec5ba8cc38bc253c550
2023-02-20test: wallet: check that labels are migrated to watchonly walletSebastian Falbesoner
Github-Pull: #26761 Rebased-From: 730e14a317ae45fe871c8d6f44a51936756bbbea
2023-02-20wallet: fully migrate address book entries for watchonly/solvable walletsSebastian Falbesoner
Currently `migratewallet` migrates the address book (i.e. labels and purposes) for watchonly and solvable wallets only in RAM, but doesn't persist them on disk. Fix this by adding another loop for both of the special wallet types after which writes the corresponding NAME and PURPOSE entries to the database in a single batch. Github-Pull: #26761 Rebased-From: d5f4ae7fac0bceb0c9ad939b9a4fbdb85da0bf95
2023-01-20Merge bitcoin/bitcoin#26457: [24.x] backport rpc: skip getpeerinfo for a ↵fanquake
peer without CNodeStateStats e72313e6b3fbf865e0eaa9aee0a555b7a7fe6850 rpc: Require NodeStateStats object in getpeerinfo (Martin Zumsande) Pull request description: Backports #26515. ACKs for top commit: fanquake: ACK e72313e6b3fbf865e0eaa9aee0a555b7a7fe6850 Tree-SHA512: 28e885ea299fe8a3a7538628d413c434bc42c251a2c1ae238bca0652709f5bd781eb157675171ab538f6e2f6f720f1c184200ac3857f6c78f48858949eed49da
2023-01-12Merge bitcoin/bitcoin#26880: [24.x] ci: replace Intel macOS CI jobMarcoFalke
95ec9604a443e2182d9c0eeba36293d57b37e1f9 ci: Use `macos-ventura-xcode:14.1` image for "macOS native" task (Hennadii Stepanov) 50ad39d9d049d99ecce8a41553e0578950617265 ci: Make `getopt` path architecture agnostic (Hennadii Stepanov) ce2a072ba846cc497b9823c6359e7230a268e137 ci: Allow PIP_PACKAGES on centos (MacroFake) 644c0304f56171ef2bac595ab67344f45733e169 ci: Remove unused package (MacroFake) Pull request description: ACKs for top commit: fanquake: ACK 95ec9604a443e2182d9c0eeba36293d57b37e1f9 did the same for 23.x & in #26878. Tree-SHA512: 086fbe2f2a39e210cc41076d42fb911abdd720a2824fcaaacfaf50345c90d23b9f9f8b0a06e4f85cced0a8fdf0e5f5a7a3a00a05edbc267574893975dfc7c061
2023-01-12ci: Use `macos-ventura-xcode:14.1` image for "macOS native" taskHennadii Stepanov
Github-Pull: #26388 Rebased-From: da168934741b776bce07d5503ca2344d300723b3
2023-01-12ci: Make `getopt` path architecture agnosticHennadii Stepanov
Github-Pull: #26388 Rebased-From: 702836530ffa351e863b1b1300fd2e559a14ef23
2023-01-12ci: Allow PIP_PACKAGES on centosMacroFake
This was added in 7fc5e865b93af59364e9c8bf75ec68b4decc7e5d but I can't see a reason why this should be forbidden. Github-Pull: #26234 Rebased-From: fa6054e952f4522b98dc89609033950a3cbfd06c
2023-01-12ci: Remove unused packageMacroFake
Address feedback from https://github.com/bitcoin/bitcoin/pull/24561/files#r985719812 Github-Pull: #26234 Rebased-From: fac085a05cc518b14271353128bb1fa830b3c612
2023-01-11rpc: Require NodeStateStats object in getpeerinfoMartin Zumsande
There is no situation in which CNodeStateStats could be missing for a legitimate reason - this can only happen if there is a race condition between peer disconnection and the getpeerinfo call, in which case the disconnected peer doesn't need to be included in the response. Github-Pull: bitcoin#26515 Rebased-From: 6fefd49
2022-12-23Merge bitcoin/bitcoin#26735: [24.x] qt: Load PSBTs using istreambuf_iterator ↵fanquake
rather than istream_iterator 0662105e884dce3eae9d3eb0b0d49600c1260b90 qt: Load PSBTs using istreambuf_iterator rather than istream_iterator (Andrew Chow) Pull request description: ACKs for top commit: fanquake: ACK 0662105e884dce3eae9d3eb0b0d49600c1260b90 Tree-SHA512: 6a2ee4d2150bf3d90e95325966d4f73b05f8cb1a5af1db6a64c891880b9f3a0846d59eb6896fee80a63b05f2084bfadc64cf9a9029598c3b31ce104715a0ca81
2022-12-21qt: Load PSBTs using istreambuf_iterator rather than istream_iteratorAndrew Chow
istream_iterator eats whitespace charactesr which causes parsing failures for PSBTs that contain the bytes corresponding to those characters. Github-Pull: bitcoin-core/gui#687 Rebased-From: bb5ea1d9a954b7b9f443ee8fbbb04549cd0b08a7
2022-12-06Merge bitcoin/bitcoin#26647: 24.0.1 final changesv24.0.1MarcoFalke
a9ea7158351ad89f62a13335368df8cc54114f7f doc: adjust release notes for 24.0.1 (fanquake) c119b0a1766d2b3daa07c09da7947afe862f4bd1 doc: generate manual pages for 24.0.1 final (fanquake) 1b19c894a2c282177335fd61f633d4d6fd38d425 build: bump version to 24.0.1 final (fanquake) Pull request description: Changes for 24.0.1. At this stage, I don't think an rc is necessary here, and would just add another 5-x days delay to fixing these issues. This will be accompanied by a pull request to master to add a note in the 24.0.md that already exists there. Similar to what was done with 0.19.0.1. ACKs for top commit: gruve-p: ACK https://github.com/bitcoin/bitcoin/pull/26647/commits/a9ea7158351ad89f62a13335368df8cc54114f7f instagibbs: ACK https://github.com/bitcoin/bitcoin/pull/26647/commits/a9ea7158351ad89f62a13335368df8cc54114f7f hebasto: ACK a9ea7158351ad89f62a13335368df8cc54114f7f, I have reviewed the changes and they look OK. josibake: ACK https://github.com/bitcoin/bitcoin/pull/26647/commits/a9ea7158351ad89f62a13335368df8cc54114f7f w0xlt: ACK https://github.com/bitcoin/bitcoin/pull/26647/commits/a9ea7158351ad89f62a13335368df8cc54114f7f Tree-SHA512: 2e0d81ef91d947c9d55dcadcb6168fbb5251a5e613642c6250075add6a4f14f54cbb452934fa46aec035decb339e611fe721f5e9d9156e47a0341c3be26f5aa9
2022-12-06doc: adjust release notes for 24.0.1fanquake
This will be accompianied by a change to release-notes-24.0.md on master.
2022-12-06doc: generate manual pages for 24.0.1 finalfanquake
2022-12-06build: bump version to 24.0.1 finalfanquake
2022-12-06Merge bitcoin/bitcoin#26616: [24.x] Backports for 24.0.1MarcoFalke
8b726bf556e05edf02946d4b1c3356df17fd0d57 test: Coin Selection, duplicated preset inputs selection (furszy) 9d73176d00a013e1383ae18cb5c0f8cbdd186cba test: wallet, coverage for CoinsResult::Erase function (furszy) 195f0dfd0ec7fadfbbb3d86decb3f6d96beae159 wallet: bugfix, 'CoinsResult::Erase' is erasing only one output of the set (furszy) e5d097b639c7f75b530349b524836804cb753597 [test] Add p2p_tx_privacy.py (dergoegge) c8426706deda827231715a1e9afd2078026a5e49 [net processing] Assume that TxRelay::m_tx_inventory_to_send is empty pre-verack (dergoegge) e15b3060179f94962eff82f3ed87a1d26ef65c88 [net processing] Ensure transaction announcements are only queued for fully connected peers (dergoegge) 95fded106979a523431863679107810db81ca4b3 wallet: Explicitly say migratewallet on encrypted wallets is unsupported (Andrew Chow) d464b2af30f2b02be2ce0b5e45dc6c141529dba5 tests: Test for migrating encrypted wallets (Andrew Chow) 7a97a56ffb22fbf8ccb143a8a7da77e8c7e77069 wallet: Avoid null pointer deref when cleaning up migratewallet (Andrew Chow) Pull request description: Backports remaining changes on the 24.0.1 milestone. Currently backports: * https://github.com/bitcoin/bitcoin/pull/26594 * https://github.com/bitcoin/bitcoin/pull/26569 * https://github.com/bitcoin/bitcoin/pull/26560 ACKs for top commit: josibake: ACK https://github.com/bitcoin/bitcoin/pull/26616/commits/8b726bf556e05edf02946d4b1c3356df17fd0d57 Tree-SHA512: db77ec1a63a7b6a4412750a0f4c0645681fc346a5df0a7cd38d5d27384e1d0fa95f3953af90042afe131ddbd4b6a6e009527095f13e9f58c0190cd378738a9e5
2022-12-05test: Coin Selection, duplicated preset inputs selectionfurszy
This exercises the bug inside CoinsResult::Erase that ends up on (1) a wallet crash or (2) a created and broadcasted tx that contains a reduced recipient's amount. This is covered by making the wallet selects the preset inputs twice during the coin selection process. Making the wallet think that the selection process result covers the entire tx target when it does not. It's actually creating a tx that sends more coins than what inputs are covering for. Which, combined with the SFFO option, makes the wallet incorrectly reduce the recipient's amount by the difference between the original target and the wrongly counted inputs. Which means, a created and relayed tx sending less coins to the destination than what the user inputted. Github-Pull: #26560 Rebased-From: cf793846978a8783c23b66ba6b4f3f30e83ff3eb
2022-12-05test: wallet, coverage for CoinsResult::Erase functionfurszy
Github-Pull: #26560 Rebased-From: 341ba7ffd8cdb56b4cde1f251768c3d2c2a9b4e9
2022-12-05wallet: bugfix, 'CoinsResult::Erase' is erasing only one output of the setfurszy
The loop break shouldn't have being there. Github-Pull: #26560 Rebased-From: f930aefff9690a1e830d897d0a8c53f4219ae4a8
2022-12-02[test] Add p2p_tx_privacy.pydergoegge
Github-Pull: #26569 Rebased-From: 8f2dac54096c20afd8fd12c21a2ee5465fea085e
2022-12-02[net processing] Assume that TxRelay::m_tx_inventory_to_send is empty pre-verackdergoegge
This commit documents our assumption about TxRelay::m_tx_inventory_to_send being empty prior to version handshake completion. The added Assume acts as testing oracle for our fuzzing tests to potentially detect if the assumption is violated. Github-Pull: #26569 Rebased-From: ce63fca13e9b500e9f687d80a457175ac967a371
2022-12-02[net processing] Ensure transaction announcements are only queued for fully ↵dergoegge
connected peers Github-Pull: #26569 Rebased-From: 845e3a34c49abcc634b5a10ccdd6b10fb4fcf449
2022-12-01wallet: Explicitly say migratewallet on encrypted wallets is unsupportedAndrew Chow
Github-Pull: #26594 Rebased-From: 5e65a216d1fd00c447757736d4f2899d235e731a
2022-12-01tests: Test for migrating encrypted walletsAndrew Chow
Due to an oversight, we cannot currently migrate encrypted wallets, regardless of whether they are unlocked. Migrating such wallets will trigger an error, and result in the cleanup being run. This conveniently allows us to check some parts of the cleanup code. Github-Pull: #26594 Rebased-From: 88afc73ae0c67a4482ecd3d77eb2a8fd2673f82d
2022-12-01wallet: Avoid null pointer deref when cleaning up migratewalletAndrew Chow
If migratewallet fails, we do a cleanup which removes the watchonly and solvables wallets if they were created. However, if they were not, their pointers are nullptr and we don't check for that, which causes a segfault during the cleanup. So check that they aren't nullptr before cleaning them up. Github-Pull: #26594 Rebased-From: 86ef7b3c7be84e4183098f448c77ecc9ea7367ab
2022-11-28Merge bitcoin/bitcoin#26591: [24.x] ci: Skip COMMIT_RANGE if no CIRRUS_PRMarcoFalke
fad1c55301b9f2d091d3b0d8a75ff522ce8dae5a lint: Skip COMMIT_RANGE if no CIRRUS_PR (MarcoFalke) Pull request description: Identical commit from https://github.com/bitcoin/bitcoin/pull/26588 Untested, but this may fix the red-ness in https://cirrus-ci.com/github/bitcoin/bitcoin/24.x, e.g. https://cirrus-ci.com/task/4697153604419584: Backport requested in https://github.com/bitcoin/bitcoin/pull/26588#issuecomment-1328916876 ACKs for top commit: hebasto: ACK fad1c55301b9f2d091d3b0d8a75ff522ce8dae5a, the same commit as in #26588. Tree-SHA512: 8d8a735e25bc1f774f8cbf058b95b7019941138ab78fb7819852755c7a416a783ee116457b97031d447639002353d7bf12ee8445275b7b5eec4abc7421cc171d
2022-11-28lint: Skip COMMIT_RANGE if no CIRRUS_PRMarcoFalke
2022-11-18Merge bitcoin/bitcoin#26523: [24.x] GUI backportsfanquake
39af5f216461b614c78060ff89ea1ab03b936dd0 Fixes bitcoin#26490 by preventing notifications (John Moffett) Pull request description: Backports: - bitcoin-core/gui#680 ACKs for top commit: jarolrod: ACK 39af5f216461b614c78060ff89ea1ab03b936dd0 Tree-SHA512: 1c84703395cc750611922aa2c59dc2e2f2e98c92845859f9f57e30ee5371c9a31690318230ab514f2d9b71e75a716a30280aa1e585b6da31e45fd970017bc74e
2022-11-17Fixes bitcoin#26490 by preventing notificationsJohn Moffett
MacOS 13 sends a window focus change notification after the main window has been destroyed but before the QTApplication has been destroyed. This results in the menu bar receiving a notification despite it no longer existing. The solution is to pass the main window as context when subscribing to the notifications. Qt automatically unsubscribes to notifications if the sender OR context is destroyed. Github-Pull: bitcoin-core/gui#680 Rebased-From: 8a5014cd8a05b3ab86ae34a47653a82ce11bdf17
2022-11-17Merge bitcoin/bitcoin#26503: [24.x] bump version to v24.0v24.0fanquake
0ee1cfe94a1b735edc2581a05c4b12f8340ff609 doc: add 24.0 release notes (fanquake) 7b9d904c685bb6796dec522344b1de8b7df79683 doc: Generate manual pages for 24.0 final (fanquake) 7c8e5e69d95477fa4277105a4cedc41fafa698b1 build: Bump version to 24.0 final (fanquake) Pull request description: Bump version to v24.0. Regenerate manpages. Pull in the release notes from [the devwiki](https://github.com/bitcoin-core/bitcoin-devwiki/wiki/24.0-Release-Notes-draft): - I've added the credits section; please comment if a name is missing / needs amending. - I've dropped any content-less sections. - If there are items that should be in the release notes, and are still missing, please comment. ACKs for top commit: 0xB10C: ACK 0ee1cfe94a1b735edc2581a05c4b12f8340ff609 Tree-SHA512: b2e9477f515709faf3991a5b4aa4b300cb24178e282bf544e0b86a2cb18e8d79f5f42e65addbf90d74862b816d333735c2793f1bcb50e1b0ed0974ea5821f909
2022-11-17doc: add 24.0 release notesfanquake
2022-11-15doc: Generate manual pages for 24.0 finalfanquake
2022-11-15build: Bump version to 24.0 finalfanquake
2022-11-09Merge bitcoin/bitcoin#26475: [24.x] Bump version to 24.0rc4v24.0rc4MacroFake
da1e753eeb078c98abce3d726c7bd7391faea839 doc: Generate manual pages for 24.0rc4 (fanquake) 1e4db14df9c3026ae1deb45e3f2112ed1f24eeaa build: Bump version to 24.0rc4 (fanquake) Pull request description: Bump version. Regen manpages. Hopefully the final rc given no further bugs / major issues. ACKs for top commit: dergoegge: ACK da1e753eeb078c98abce3d726c7bd7391faea839 hebasto: ACK da1e753eeb078c98abce3d726c7bd7391faea839 Tree-SHA512: aa1e6c44f0d0acdc7348587fc085540e6ea87e09fe9ec5f5856a572f9bbb9ec89c1e16a8c767e26168b32802735108021dd08da3a21d7238296fd7e9c3377d30
2022-11-09Merge bitcoin/bitcoin#26476: qt: 24.0rc4 translations updateMacroFake
7948fdd06059f28a829a38818be641c8bd1992a0 qt: 24.0rc4 translations update (Hennadii Stepanov) Pull request description: This PR pulls the recent translations from the [Transifex.com](https://www.transifex.com/bitcoin/bitcoin) using the [`bitcoin-maintainer-tools/update-translations.py`](https://github.com/bitcoin-core/bitcoin-maintainer-tools/blob/main/update-translations.py) tool. According to our [Release Process docs](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#before-every-release-candidate), it is supposed to be merged (just) before `v24.0rc4` tagging. Will keep this PR updated regularly until merging. Top commit has no ACKs. Tree-SHA512: 600e07bbd48116726899b60086acf1e507722bf7458c78f812e13110e58f67cefc6dd8833fcfeb649b40285b706ab89c2ee88a7ac9f6aeb4fc935e47c33f6bdc
2022-11-09qt: 24.0rc4 translations updateHennadii Stepanov
2022-11-09doc: Generate manual pages for 24.0rc4fanquake
2022-11-09build: Bump version to 24.0rc4fanquake
2022-11-09Merge bitcoin/bitcoin#26452: [24.x] rc4 backportsfanquake
42c74a0a4c05c9b44593bacfb444949a8c152236 rpc: doc: add missing option "bech32m" for `change_type` parameters (Sebastian Falbesoner) 6e4d87e69622be8cd9ea199ac62ae36b4ab4f49f tests: Test Taproot PSBT signing with keys in other descriptor (Andrew Chow) 0a5ea2aa84cb8ad8387482c6b1b09322830171bd tests: Use new wallets for each test in wallet_taproot.py (Andrew Chow) 2159676b6e5ce2753db294068a699c0bfc0809fa psbt: Include output pubkey in additional pubkeys to sign (Andrew Chow) 754eefd21cf7bd253d0000e998115406ed7433c6 sign: Fill in taproot pubkey info for all script path sigs (Andrew Chow) bb1fabda307b58a5a48d063e1b72491c17666f97 doc: mention BIP86 in doc/bips.md (Sebastian Falbesoner) Pull request description: Currently backports: * https://github.com/bitcoin/bitcoin/pull/26418 * https://github.com/bitcoin/bitcoin/pull/26443 * https://github.com/bitcoin/bitcoin/pull/26449 ACKs for top commit: dergoegge: ACK 42c74a0a4c05c9b44593bacfb444949a8c152236 Tree-SHA512: e40f57b28cc4c06fc9dedebad6c9ab647fa0b98af1aef2d36874c6a05d39164c99fd763a2eb9ca162b7e276aa2e7d0f5934465ab4d7c1f5ba4a3162087e7089f
2022-11-07rpc: doc: add missing option "bech32m" for `change_type` parametersSebastian Falbesoner
Affects the help of the `fundrawtransaction`, `send` and `walletcratefundedpsbt` RPCs. Github-Pull: #26449 Rebased-From: c3b1fe59dbc7abe45973e282cddf3677514e220f