Age | Commit message (Collapse) | Author |
|
Github-Pull: #29195
Rebased-From: d742be3d3f5d5063d7160f72422bce2fec953f38
|
|
LLVM Clang >=16.0 and Apple Clang >=15.0 do not recognize
`-Xclang -internal-isystem/usr/local/include` anymore.
For example, see: https://github.com/llvm/llvm-project/commit/cbbe1d44546db52c71c9a2b18f85b87ae82df9e7
Github-Pull: #29195
Rebased-From: 8decc5c726caca2381cffbd1b3585862421f5b8e
|
|
11f3a7e6baf145360190635f47b1fb371fb38912 Use hardened runtime on macOS release builds. (Mark Friedenbach)
ac1b9a51dbb0ac682ac04e0a2a711091d5e962d8 [test] import descriptor wallet with reorged parent + IsFromMe child in mempool (glozow)
ecb8ebc6608c71676f377398b8dd38fc484dc48e [test] rescan legacy wallet with reorged parent + IsFromMe child in mempool (Gloria Zhao)
438ac2947dd76f9abd11d73b442656d5c77754cf snapshots: don't core dump when running -checkblockindex after `loadtxoutset` (Mark Friedenbach)
7ec34554afca9159096720de36f44707a4c628ce [log] mempool loading (glozow)
fe0f8fe8aa4a8c4dddf45f4e3519a5ded8c79ad5 net: create I2P sessions with both ECIES-X25519 and ElGamal encryption (Jon Atack)
fc62271015e9585bd3a3889adac894c9ef2e2ab2 [refactor] Add helper for iterating through mempool entries (stickies-v)
Pull request description:
Backports for 26.x. Includes:
- 453b481 from #28391
- #29179
- #29200
- #29227
- #28791
- #29127
ACKs for top commit:
stickies-v:
ACK 11f3a7e6baf145360190635f47b1fb371fb38912
Tree-SHA512: 20ef871ec768f2328056d83f958e595b36ae9b8baa8a6e8b0e1f02c3df4b16965a8e05dcb4323afbcc9ecc4bdde10931232512022c39ee7e12baf9795bf25bf1
|
|
The Apple notary service requires submitted app bundles to be configured to use the hardened runtime libraries. This is configured at signing time, and supported by the signapple tool Bitcoin Core uses for reproduceable signed binaries. We simply need to pass "--hardened-runtime" when the signature is created. Once attached to the bundle, the resulting codesigned binary can be successfully submitted to the Apple binary notarization service by any Apple Developer.
Github-Pull: #29127
Rebased-From: 4fdd836db92e789c98b9e68398ca931a968cc9c3
|
|
Test that wallet rescans process transactions topologically, even if a
parent's entry into the mempool is later than that of its child.
This behavior is important because IsFromMe requires the ability to look
up a transaction's inputs.
Co-authored-by: furszy <matiasfurszyfer@protonmail.com>
Github-Pull: #29179
Rebased-From: df30247705940c50c5eaafd74e2abbeb8b0cec07
|
|
Test that wallet rescans process transactions topologically, even if a
parent's entry into the mempool is later than that of its child.
This behavior is important because IsFromMe requires the ability to look
up a transaction's inputs.
Github-Pull: #29179
Rebased-From: c3d02be536ac3f35c10efa03653186a17ebbfc12
|
|
Github-Pull: #28791
Rebased-From: cdc6ac4126b31426261605a757c52ea2dbfb2a81
|
|
Log at the top before incrementing so that this log isn't printed when
there's only 1 tx.
Github-Pull: #29227
Rebased-From: eb78ea4eebfe150bc1746282bfdad6eb0f764e3c
|
|
A Bitcoin Core node may only connect to a peer destination via I2P if both sides
have sessions with the same encryption type. The encryption type is a property
of the session, not the destination. Sessions may support multiple encryption
types.
As Bitcoin Core is not currently setting the I2P encryption type when creating
sessions, it is using the older default, ElGamal (type 0).
This pull updates Bitcoin Core to use both ECIES-X25519 and ElGamal (types 4 and
0, respectively). This allows to connect to I2P peers with either type, and the
newer, faster ECIES-X25519 will be preferred.
See also the recently updated section "Signature and Encryption Types" in
https://geti2p.net/en/docs/api/samv3
Thanks and credit to zzzi2p (https://github.com/zzzi2p) for reporting.
Closes https://github.com/bitcoin/bitcoin/issues/29197.
Github-Pull: #29200
Rebased-From: 9d728916b27e18efc6f8839770ed5ec14789fc08
|
|
Instead of reaching into the mapTx data structure, use a helper method
that provides the required vector of CTxMemPoolEntry pointers.
Github-Pull: #28391
Rebased-From: 453b4813ebc74859864803e9972b58e4be76a4d6
|
|
7b79e54474b86864c81148c74824bfe4b732412d doc: update release notes for 26.x (fanquake)
ccf00b1e6eb811a3af2c22518a832dd9a51f8aa4 wallet: Fix use-after-free in WalletBatch::EraseRecords (MarcoFalke)
40252e184eb188c4af767adb4918f729015910e8 ci: Set `HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK` to avoid failures (Hennadii Stepanov)
b06b14e68d81f8be091d32db162c8d85b9d29e4c rpc: getwalletinfo, return wallet 'birthtime' (furszy)
12834012c2a31f7c33e3410d67edba1eaec53ae9 test: coverage for wallet birth time interaction with -reindex (furszy)
0fa47e2569a40e74db701f16421b8638a486ebd3 wallet: fix legacy spkm default birth time (furszy)
84f4a6c14587344652ef34dbf944364580417a87 wallet: birth time update during tx scanning (furszy)
074296dd60ef49bf6b28b191472f45ea4f995b4b refactor: rename FirstKeyTimeChanged to MaybeUpdateBirthTime (furszy)
35039ac3cc1c2318762907961aee412a7239ce9b fuzz: disable BnB when SFFO is enabled (furszy)
903b4623d369d86925093fdce08d18019e5266e1 test: add coverage for BnB-SFFO restriction (furszy)
05d0576d3c03ae3797c91ac51bff4e2a18d6a993 wallet: create tx, log resulting coin selection info (furszy)
5493ebbe7428f95e41d5c7a64aea9e7f33190579 wallet: skip BnB when SFFO is active (Murch)
b15e2e2cec596662275e790449fd250b6be75076 test: add regression test for the getrawtransaction segfault (Martin Zumsande)
5097bb3389fe3add504851302918692b3f05db70 rpc: fix getrawtransaction segfault (Martin Zumsande)
81e744a9a6a55cb5c2b88cd6eeb9dd6523f3a438 ci: Use Ubuntu 24.04 Noble for asan (MarcoFalke)
69e53d1e47613efb831d01e446b790d21c35ba4b ci: Use Ubuntu 24.04 Noble for tsan,tidy,fuzz (MarcoFalke)
d2c80b6f52f255c8d9237177bf0bd1b160409b81 doc: Missing additions to 26.0 release notes (fanquake)
8dc2c753ff3b89c3afefdc791fff38ac590488da doc: add historical release notes for 26.0 (fanquake)
Pull request description:
Backports for `26.x`. Currently:
* https://github.com/bitcoin/bitcoin/pull/28920
* https://github.com/bitcoin/bitcoin/pull/28992
* https://github.com/bitcoin/bitcoin/pull/28994
* https://github.com/bitcoin/bitcoin/pull/29003
* https://github.com/bitcoin/bitcoin/pull/29023
* https://github.com/bitcoin/bitcoin/pull/29080
* https://github.com/bitcoin/bitcoin/pull/29176
ACKs for top commit:
TheCharlatan:
ACK 7b79e54474b86864c81148c74824bfe4b732412d
glozow:
ACK 7b79e54474b86864c81148c74824bfe4b732412d, matches mine
Tree-SHA512: 898aec76ed3ad35e0edd0980af5bcc21bd60003bbf69e0b4f473ed2aa38c4e3b360b930bc3747cf798195906a8f9fe66417524f5e5ef40fa68f1c1aaceebdeb0
|
|
|
|
Github-Pull: #29176
Rebased-From: faebf1df2afe207f5d2d4f73f50ac66824fe34bb
|
|
Homebrew attempts to check for outdated dependents or those with broken
linkage. Such behavior might lead to failures when Homebrew updates them
on old macOS images.
This change prevents such behavior.
Github-Pull: #29080
Rebased-From: 43c3246af774bda284111056268a814477f9b256
|
|
And add coverage for it
Github-Pull: #28920
Rebased-From: 1ce45baed7dd2da3f1cb85c9c25110e5537451ae
|
|
Verifying the wallet updates the birth time accordingly when it
detects a transaction with a time older than the oldest descriptor
timestamp.
This could happen when the user blindly imports a descriptor with
'timestamp=now'.
Github-Pull: #28920
Rebased-From: 83c66444d0604f0a9ec3bc3f89d4f1a810b7cda0
|
|
To avoid scanning blocks, as assumed by a wallet with no
generated keys or imported scripts, the default value for
the birth time needs to be set to the maximum int64_t value.
Once the first key is generated or the first script is imported,
the legacy SPKM will update the birth time automatically.
Github-Pull: #28920
Rebased-From: 6f497377aa17cb8a590fd7717fa8ededf4249999
|
|
As the user could have imported a descriptor with
a newer timestamp (by blindly setting 'timestamp=now'),
the wallet needs to update the birth time when it detects
a transaction older than the oldest descriptor timestamp.
Github-Pull: #28920
Rebased-From: 75fbf444c1e13c6ba0e79a34871534c845a13849
|
|
In the following-up commit, the wallet birth time will also
be modified by the transactions scanning process. When a tx
older than all descriptor's timestamp is detected.
Github-Pull: #28920
Rebased-From: b4306e3c8db6cbaedc8845c6d21c750b39f682bf
|
|
Github-Pull: #28994
Rebased-From: 576bee88fd36e207b7288077626947a1fce0fc33
|
|
Verify the transaction creation process does not produce
a BnB solution when SFFO is enabled.
This is currently problematic because it could require a
change output. And BnB is specialized on changeless solutions.
Co-authored-by: Andrew Chow <achow101@gmail.com>
Co-authored-by: Murch <murch@murch.one>
Github-Pull: #28994
Rebased-From: 05e5ff194c7722b4ebc2b9309fc0bf47b3cf1df7
|
|
Useful for understanding what is going on internally
when the software is running. Debug issues, and provide
more accurate feedback to users.
Github-Pull: #28994
Rebased-From: 0c5755761c3e544547899ad096121585dffa73df
|
|
Co-authored-by: furszy <matiasfurszyfer@protonmail.com>
Github-Pull: #28994
Rebased-From: 5cea25ba795d6eb9ccc721d01560783ae576af34
|
|
This fails on master without the previous commit.
Github-Pull: #29003
Rebased-From: 9075a446461ccbc446d21af778aac50b604f39b3
|
|
The crash would happen when querying a mempool transaction with verbosity=2, while pruning.
Github-Pull: #29003
Rebased-From: 494a926d05df44b60b3bc1145ad2a64acf96f61b
|
|
Github-Pull: #28992
Rebased-From: fad2392c5861a88a87cb8a03d2fc9773e178feb8
|
|
Github-Pull: #28992
Rebased-From: fa83b65ef8934b44fbac02da8dbc27fc0bc230e6
|
|
Github-Pull: #29023
Rebased-From: ca5937553b4b4dde53995d0b66e30150401023eb
|
|
Github-Pull: #29023
Rebased-From: 7d4e47d1849ba00c5b45995a96f2c747f1a97c71
|
|
b1d350c78b0a26e3c514a79b928578727df70538 doc: update release notes for 26.0 (fanquake)
b0546bc907edc4e6b7ab1baaf1f9400bd8315bf3 doc: update manual pages for 26.0 (fanquake)
9ce1766d206d3ef607d659d6d0759b8c02a02f60 build: bump version to v26.0 final (fanquake)
Pull request description:
Final changes for 26.0. Assuming no further backports. rc3 was done in #28872.
ACKs for top commit:
achow101:
ACK b1d350c78b0a26e3c514a79b928578727df70538
hebasto:
ACK b1d350c78b0a26e3c514a79b928578727df70538, I have reviewed the code and it looks OK.
Tree-SHA512: 8b1bfa9e9d6c5ccf8305335eba503c02a76043b2752e2302da84cb574078889ddb761b9efd14ef97f68bbae154b00ac54f531e2e33eba6baf8d703aa98ef5175
|
|
|
|
|
|
|
|
2f86d3053314c382dfce5cf314e98811ed433859 doc: update release notes for v26.0rc3 (fanquake)
3b6c7f240c85fa7a0eb0f037cdc9dd0975a02e42 doc: update manual pages for v26.0rc3 (fanquake)
3db4d1cff292c003f58a1755ba94cb0c5ebbb700 build: bump version to v26.0rc3 (fanquake)
6045f38dc8f6a3e028e45fd0024d0b4c6b3cf918 build: Fix regression in "ARMv8 CRC32 intrinsics" test (Hennadii Stepanov)
5eaa179f2785d74b621ff7edbe7fd8be9cdeb419 ci: Avoid toolset ambiguity that MSVC can't handle (Hennadii Stepanov)
55af112565aefc9167877076d6ee4dae991dcd6d p2p: do not make automatic outbound connections to addnode peers (Jon Atack)
5e0bcc1977ea1efe3888c8fcd0991f3116ab1125 ci: Switch from `apt` to `apt-get` (Hennadii Stepanov)
437a5316e50b7906780105bea6094ea7c6a34ddd ci: Update apt cache (Hennadii Stepanov)
1488648104718fe727e4a0784120cc95bf232bdb pool: change memusage_test to use int64_t, add allocation check (Martin Leitner-Ankerl)
bcc183cccefdc84a09e43965d6b88a8bec3a5446 pool: make sure PoolAllocator uses the correct alignment (Martin Leitner-Ankerl)
7dda4991a875ca9bd9f79b3d52b12837ad7f92f1 doc: regenerate example bitcoin.conf (fanquake)
5845331a6c57c25c873818ad165516a5df29b099 doc: rewrite explanation for -par= (fanquake)
Pull request description:
Currently backports:
* https://github.com/bitcoin/bitcoin/pull/28858
* https://github.com/bitcoin/bitcoin/pull/28895 (partial)
* https://github.com/bitcoin/bitcoin/pull/28913
* https://github.com/bitcoin/bitcoin/pull/28905
* https://github.com/bitcoin/bitcoin/pull/28919
* https://github.com/bitcoin/bitcoin/pull/28925
Also includes changes for rc3, and reintegrating the release-notes.
ACKs for top commit:
hebasto:
re-ACK 2f86d3053314c382dfce5cf314e98811ed433859, only https://github.com/bitcoin/bitcoin/pull/28919 backported since my [recent](https://github.com/bitcoin/bitcoin/pull/28872#pullrequestreview-1744950215) review.
TheCharlatan:
ACK 2f86d3053314c382dfce5cf314e98811ed433859
Tree-SHA512: 43c91b344d37f582081ac184ac59cf76c741317b2b69a24fcd4287eefa8333e20c545e150798f4057d6f4ac8e70ed9cba1c8dd9777b11c1cf8992cce09108727
|
|
Few further changes are expected, so reintegrate the release-notes.
|
|
|
|
|
|
The `vmull_p64` is a part of the Crypto extensions from the ACLE. They
are optional extensions, so they get enabled with a `+crypto` for
architecture flags.
Github-Pull: #28919
Rebased-From: 228d6a2969e4fcee573c9df7aad31550eab9c8d4
|
|
This change is required to work with the new windows-2022 image version
20231115 properly.
Github-Pull: #28905
Rebased-From: 91d5bd8ac9a28725c735f8e6900bc85673bb190a
|
|
to allocate our limited outbound slots correctly, and to ensure addnode
connections benefit from their intended protections.
Our addnode logic usually connects the addnode peers before the automatic
outbound logic does, but not always, as a connection race can occur. If an
addnode peer disconnects us and if it was the only one from its network, there
can be a race between reconnecting to it with the addnode thread, and it being
picked as automatic network-specific outbound peer. Or our internet connection
or router, or the addnode peer, could be temporarily offline, and then return
online during the automatic outbound thread. Or we could add a new manual peer
using the addnode RPC at that time.
The race can be more apparent when our node doesn't know many peers, or with
networks like cjdns that currently have few bitcoin peers.
When an addnode peer is connected as an automatic outbound peer and is the only
connection we have to a network, it can be protected by our new outbound
eviction logic and persist in the "wrong role".
Examples on mainnet using logging added in the same pull request:
2023-08-12T14:51:05.681743Z [opencon] [net.cpp:1949] [ThreadOpenConnections]
[net:debug] Not making automatic network-specific outbound-full-relay connection
to i2p peer selected for manual (addnode) connection: [geh...odq.b32.i2p]:0
2023-08-13T03:59:28.050853Z [opencon] [net.cpp:1949] [ThreadOpenConnections]
[net:debug] Not making automatic block-relay-only connection to onion peer
selected for manual (addnode) connection: kpg...aid.onion:8333
2023-08-13T16:21:26.979052Z [opencon] [net.cpp:1949] [ThreadOpenConnections]
[net:debug] Not making automatic network-specific outbound-full-relay connection
to cjdns peer selected for manual (addnode) connection: [fcc...8ce]:8333
2023-08-14T20:43:53.401271Z [opencon] [net.cpp:1949] [ThreadOpenConnections]
[net:debug] Not making automatic network-specific outbound-full-relay connection
to cjdns peer selected for manual (addnode) connection: [fc7...59e]:8333
2023-08-15T00:10:01.894147Z [opencon] [net.cpp:1949] [ThreadOpenConnections]
[net:debug] Not making automatic feeler connection to i2p peer selected for
manual (addnode) connection: geh...odq.b32.i2p:8333
Finally, there does not seem to be a reason to make block-relay or short-lived
feeler connections to addnode peers, as the addnode logic will ensure we connect
to them if they are up, within the addnode connection limit.
Fix these issues by checking if the address is an addnode peer in our automatic
outbound connection logic.
Github-Pull: #28895
Rebased-From: cc627169206fe902157806d88fcaf2b05701c38d
|
|
Github-Pull: #28925
Rebased-From: 710da28c72259e1054bb63d2d81a8f3aea4c9000
|
|
Github-Pull: #28925
Rebased-From: a6cc059ea50b3629a287f66be3658e766b6ddd47
|
|
If alignment of the PoolAllocator would be insufficient, then the test would fail. This also catches the issue with ARM 32bit,
where int64_t is aligned to 8 bytes but void* is aligned to 4 bytes. The test adds a check to ensure the pool has allocated
a minimum number of chunks
Github-Pull: #28913
Rebased-From: d5b4c0b69e543de51bb37d602d488ee0949ba185
|
|
This changes the PoolAllocator to default the alignment to the given type. This makes the code simpler, and most importantly
fixes a bug on ARM 32bit that caused OOM: The class CTxOut has a member CAmount which is an int64_t and on ARM 32bit int64_t
are 8 byte aligned which is larger than the pointer alignment of 4 bytes. So for CCoinsMap to be able to use the pool, we
need to use the alignment of the member instead of just alignof(void*).
Github-Pull: #28913
Rebased-From: ce881bf9fcb7c30bb1fafd6ce38844f4f829452a
|
|
|
|
The negative bound for script threads comes from the machine which
generates the man pages, so may only be correct for that machine. Any
other placeholder value will also be wrong for some machines. Fix this
be removing the value. This also fixes help2man incorrectly bolding the
value, as if it were a paramater.
Closes #28850.
Github-Pull: #28858
Rebased-From: d799ea26edfd63434b6d1cf55500de184dc67fac
|
|
e4e84790f62990f31a519f1ec0e8cc16e93a3c3b doc: update manual pages for v26.0rc2 (fanquake)
0b189a90926eaa6694b4031fe31c111e2f5052ae build: bump version to v26.0rc2 (fanquake)
e097d4cb5329e9037c0e66d1c71b1bc5a02d56e6 gui: fix crash on selecting "Mask values" in transaction view (Sebastian Falbesoner)
05e887455454813465a2a5b376df672f199bfbf9 guix: update signapple (fanquake)
deccc506314c467f1e87e0a48a94626df841fe63 guix: Zip needs to include all files with time as SOURCE_DATE_EPOCH (Andrew Chow)
fe57abd7e9c3d08553589a54a4f63f69960f78fd test: add coverage for snapshot chainstate not matching AssumeUTXO parameters (pablomartin4btc)
b761a58171f2a7b2249211840aeb203a37dc8b13 assumeutxo, blockstorage: prevent core dump on invalid hash (pablomartin4btc)
d3ebf6e9fcb8459695ea58cc2a551c0a7b1dd881 [test] Test i2p private key constraints (Vasil Dimov)
1f11784aac33c4d6aa5beccec19e6ff025808b24 [net] Check i2p private key constraints (dergoegge)
6544ffa01fc1f219817e8c22b5d1d44ea2efa465 bugfix: Mark CNoDestination and PubKeyDestination constructor explicit (MarcoFalke)
Pull request description:
Backports for v26.0rc2:
* #28695
* #28698
* #28728
* #28757
* #28759
* https://github.com/bitcoin-core/gui/pull/774
ACKs for top commit:
josibake:
ACK https://github.com/bitcoin/bitcoin/commit/e4e84790f62990f31a519f1ec0e8cc16e93a3c3b
hebasto:
re-ACK e4e84790f62990f31a519f1ec0e8cc16e93a3c3b, only a backport of https://github.com/bitcoin-core/gui/pull/774 added since my [recent](https://github.com/bitcoin/bitcoin/pull/28754#pullrequestreview-1707143194) review.
TheCharlatan:
Re-ACK e4e84790f62990f31a519f1ec0e8cc16e93a3c3b
Tree-SHA512: 4b95afd26b8bf91250cb883423de8b274cefa48dc474734f5900aeb756eee3a6c656116efcfa2caff3c250678c16b70cc6b7a5d840018dc7e2c1e8161622cd61
|
|
|
|
|
|
This commits fixes a crash bug that can be caused with the following steps:
- change to the "Transactions" view
- right-click on an arbitrary transaction -> "Show transaction details"
- close the transaction detail window again
- select "Settings" -> "Mask values"
The problem is that the list of opened dialogs, tracked in the member
variable `m_opened_dialogs`, is only ever appended with newly opened
transaction detail dialog pointers, but never removed. This leads to
dangling pointers in the list, and if the "Mask values" menu item is
selected, a crash is caused in the course of trying to close the opened
transaction detail dialogs (see `closeOpenedDialogs()` method). Fix this
by removing the pointer from the list if the corresponding widget is
destroyed.
Github-Pull: https://github.com/bitcoin-core/gui/pull/774
Rebased-From: e26e665f9f64a962dd56053be817cc953e714847
|