Commit Graph

45190 Commits

Author SHA1 Message Date
Sebastian Falbesoner
9b3dce24a3 test: remove bare CTransaction .rehash()/.calc_sha256() calls
Since the previous commit, CTransaction object calls to the
methods `.rehash()` and `.calc_sha256()` are effectively no-ops
if the returned value is not used, so we can just remove them.
2025-06-09 17:28:24 +02:00
Sebastian Falbesoner
a2724e3ea3 test: remove txid caching in CTransaction class
Rather than txids (represented by the fields `.sha256` and `.hash`)
being stateful, simply compute them on-the-fly. This ensures that
the correct values are always returned and takes the burden of
rehashing from test writers, making the code shorter overall.
In a first step, the fields are kept at the same name with @property
functions as drop-in replacements, for a minimal diff. In later commits,
the names are changed to be more descriptive and indicating the return
type of the txid.
2025-06-09 16:55:04 +02:00
MarcoFalke
fa0b766f43 test: Remove intermittent and presumed fixed tsan race suppressions
LoadWallet was added in commit d77170d526, which
points to a traceback with BerkeleyBatch in it. Now that BDB is removed,
this can be removed as well.

The race in DatabaseBatch was added in commit
fd59670642, which does not point to a
traceback. This was likely also fixed with the BDB removal.

If not, the suppressions should be added back, mentioning that they are
intermittent and including a traceback and possibly steps to reproduce.
2025-06-09 16:28:48 +02:00
merge-script
f3bbc74664 Merge bitcoin/bitcoin#32406: policy: uncap datacarrier by default
a189d63618 add release note for datacarriersize default change (Greg Sanders)
a141e1bf50 Add more OP_RETURN mempool acceptance functional tests (Peter Todd)
0b4048c733 datacarrier: deprecate startup arguments for future removal (Greg Sanders)
63091b79e7 test: remove unnecessary -datacarriersize args from tests (Greg Sanders)
9f36962b07 policy: uncap datacarrier by default (Greg Sanders)

Pull request description:

  Retains the `-datacarrier*` args, marks them as deprecated, and does not require another startup argument for multiple OP_RETURN outputs.

  If a user has set `-datacarriersize` the value is "budgeted" across all seen OP_RETURN output scriptPubKeys. In other words the total script bytes stays the same, but can be spread across any number of outputs. This is done to not introduce an additional argument to support multiple outputs.

  I do not advise people use the option with custom arguments and it is marked as deprecated to not mislead as a promise to offer it forever. The argument itself can be removed in some future release to clean up the code and minimize footguns for users.

ACKs for top commit:
  stickies-v:
    re-ACK a189d63618
  Sjors:
    re-ACK a189d63618
  polespinasa:
    re-ACK a189d63618
  hodlinator:
    re-ACK a189d63618
  ajtowns:
    reACK a189d63618
  mzumsande:
    re-ACK a189d63618
  petertodd:
    ACK a189d63618
  theStack:
    re-ACK a189d63618
  1440000bytes:
    re-ACK a189d63618
  willcl-ark:
    ACK a189d63618
  dergoegge:
    ACK a189d63618
  fanquake:
    ACK a189d63618
  murchandamus:
    ACK a189d63618
  darosior:
    Concept ACK a189d63618.

Tree-SHA512: 3da2f1ef2f50884d4da7e50df2121bf175cb826edaa14ba7c3068a6d5b2a70beb426edc55d50338ee1d9686b9f74fdf9e10d30fb26a023a718dd82fa1e77b038
2025-06-09 08:23:56 -04:00
rkrux
b44514b876 rpc, doc: update listdescriptors RCP help
This RPC lists all the descriptors present in the wallet, not only
the ones that were imported, but also the ones generated when a
new wallet is created.

It can be verified by creating a new wallet and calling the
`listdescriptors` RPC, which will contain 8 ranged descriptors that
are created for every new wallet.

Also, update the description to get rid of "descriptor-enabled"
because this is the only wallet type available now after removal of
legacy wallets.
2025-06-09 15:15:47 +05:30
MarcoFalke
fa4b659dcd test: Explain how to reproduce zmq:: upstream race 2025-06-08 16:39:33 +02:00
Luis Schwab
32d4e92b9a doc: make -DWITH_ZMQ=ON explicit on build-unix.md 2025-06-06 19:42:01 -03:00
Ava Chow
e2174378aa Merge bitcoin/bitcoin#32539: init: Configure reachable networks before we start the RPC server
12ff4be9c7 test: ensure -rpcallowip is compatible with RFC4193 (Matthew Zipkin)
c02bd3c187 config: Explain RFC4193 and CJDNS interaction in help and init error (Matthew Zipkin)
f728b6b111 init: Configure reachable networks before we start the RPC server (Matthew Zipkin)

Pull request description:

  Closes https://github.com/bitcoin/bitcoin/issues/32433

  `MaybeFlipIPv6toCJDNS()` relies on `g_reachable_nets` to distinguish between CJDNS addresses and other IPv6 addresses. In particular, [RFC4193](https://www.rfc-editor.org/rfc/rfc4193#section-3.1) address or "Unique Local Address" with the L-bit unset also begins with the `fc` prefix. #32433 highlights a use case for these addresses that have nothing to do with CJDNS.

  On master we don't parse init flags like `-cjdnsreachable` until *after* the HTTP server has started, causing conflicts with `-rpcallowip` because CJDNS doesn't support subnets.

  This PR ensures that `NET_CJDNS` is only present in the reachable networks list if set by `-cjdnsreachable` *before* `-rpcallowip` is checked. If it is set all `fc` addresses are assumed to be CJDNS, can not have subnets, and can't be set for `-rpcallowip`.

  I also noted this specific parameter interaction in the init help as well as the error message if configured incorrectly.

  This can be tested locally:

  `bitcoind -regtest -rpcallowip=fc00:dead:beef::/64 -rpcuser=u -rpcpassword=p`

  On master this will just throw an error that doesn't even mention IPv6 at all.

  On the branch, this will succeed and can be tested by adding the ULA to a local interface.

  On linux: `sudo ip -6 addr add fc00:dead:beef::1/64 dev lo`

  On macos: `sudo ifconfig lo0 inet6 fc00:dead:beef::1/128 add`

  then: `curl -v -g -6 --interface fc00:dead:beef::1 u:p@[::1]:18443 --data '{"method":"getblockcount"}'`

  If the `rpcallowip` option is removed, the RPC request will fail to authorize.

  Finally, adding `-cjdnsreachable` to the start up command will throw an error and specify the incompatibility:

  > RFC4193 is allowed only if -cjdnsreachable=0.

ACKs for top commit:
  achow101:
    ACK 12ff4be9c7
  tapcrafter:
    tACK 12ff4be9c7
  ryanofsky:
    Code review ACK 12ff4be9c7
  willcl-ark:
    ACK 12ff4be9c7

Tree-SHA512: a4dd70ca2bb9f6ec2c0a9463fd73985d1ed80552c674a9067ac9a86662d1c018cc275ba757cebb2993c5f3971ecf4778b95d35fe7a7178fb41b1d18b601c9960
2025-06-06 15:31:36 -07:00
Ava Chow
2053c43684 Merge bitcoin/bitcoin#32675: test: wallet: cover wallet passphrase with a null char
7cfbb8575e test: wallet: cover wallet passphrase with a null char (brunoerg)

Pull request description:

  This PR adds test coverage for the `walletpassphrase`/`walletpassphrasechange` RPC when the passphrase is incorrect due to a null character.

  For reference: https://github.com/bitcoin/bitcoin/pull/27068 introduced the usage of `SecureString` to allow null characters.

ACKs for top commit:
  maflcko:
    lgtm ACK 7cfbb8575e
  achow101:
    ACK 7cfbb8575e
  w0xlt:
    Code review ACK 7cfbb8575e
  BrandonOdiwuor:
    Code Review ACK 7cfbb8575e
  theStack:
    ACK 7cfbb8575e
  pablomartin4btc:
    cr ACK 7cfbb8575e

Tree-SHA512: ecdb48662ceb6c55c4b301ca7f537c3159ece7b66ee40ea977583ffb74bd3d06e334ab3a5639a9cde3aa6443129f412f9aea0ee5a8b73b31dba0728d0890b7f1
2025-06-06 15:12:01 -07:00
furszy
331a25cb16 test: indexes, avoid creating threads when sync runs synchronously
The indexes test call StartBackgroundSync(), which spawns a thread to run Sync(),
only for the test thread to wait for it to complete by calling IndexWaitSynced().

So, since the sync is performed synchronously, we can skip the extra thread creation
entirely and call Sync() directly.
2025-06-06 16:32:54 -04:00
Martin Zumsande
f6b782f3aa doc: Improve m_best_header documentation 2025-06-06 11:23:44 -04:00
Martin Zumsande
ee673b9aa0 validation: remove m_failed_blocks
After changes in previous commits, we now mark all blocks that descend from an invalid block
immediately as the block is found invalid. This happens both in the AcceptBlock
and ConnectBlock stages of block validation.
As a result, the pindexPrev->nStatus check in AcceptBlockHeader is now sufficient to detect
invalid blocks and checking m_failed_blocks there is no longer necessary.
2025-06-06 11:23:44 -04:00
Martin Zumsande
ed764ea2b4 validation: Add more checks to CheckBlockIndex()
This adds checks that
1) Descendants of invalid block indexes are also marked invalid
2) m_best_header cannot be invalid, and there can be no valid
block with more work than it.
2025-06-06 11:23:44 -04:00
Martin Zumsande
9a70883002 validation: in invalidateblock, calculate m_best_header right away
Before, m_best_header would be calculated only after disconnecting
multiple blocks, letting go of cs_main in the meantime.
This is in preparation for adding checks to CheckBlockIndex()
requiring that m_best_header is the most-work header not known to be invalid.

Co-authored-by: stringintech <stringintech@gmail.com>
2025-06-06 11:23:44 -04:00
Martin Zumsande
8e39f2d20d validation: in invalidateblock, mark children as invalid right away
Before, they would be marked as invalid only after disconnecting
multiple blocks, letting go of cs_main in the meantime.
This is in preparation for adding a check to
CheckBlockIndex() requiring that descendants of invalid block indexes
are always marked as invalid.
Entries from highpow_outofchain_headers are now only removed if made invalid,
no longer after inserting into setBlockIndexCandidates, because they
might still become invalid later in the second case.
This means that blocks could be inserted multiple times now into
setBlockIndexCandidates - this won't have any effect, so
behavior isn't changed.
2025-06-06 11:23:44 -04:00
Martin Zumsande
4c29326183 validation: cache all headers with enough PoW in invalidateblock
We now include blocks without HaveNumChainTxs() / lower validation status
than BLOCK_VALID_TRANSACTIONS. These checks are still performed at the
spot where we use the cache to insert into setBlockIndexCandidates.

This is in preparation for using the cache for more things than
just setBlockIndexCandidates candidates in the following commits.

Co-authored-by: stickies-v <stickies-v@protonmail.com>
2025-06-06 11:23:44 -04:00
Martin Zumsande
15fa5b5a90 validation: call InvalidBlockFound also from AcceptBlock
When a block it found invalid during acceptance (but before connection)
we now mark its descendants with BLOCK_FAILED_CHILD and update
m_best_header when these things weren't done reliably before.

This does not fix a serious bug because the flags and m_best_header were being set on a best-effort basis before
and not used for anything critical.
Setting these reliably has a slight performance cost (iterating over the
entire block index) but leads to more consistency in validation and allows removing m_failed_blocks in a later commit.
This can only be triggered by providing a block with sufficient PoW
that is otherwise invalid, so it is not a DoS vector.
2025-06-06 11:23:44 -04:00
MarcoFalke
fa9cfdf3be ci: [doc] fix url redirect
This solves an URL redirect. (The commit is also used to trigger the test-each-commit CI)
2025-06-06 09:00:27 +02:00
MarcoFalke
fac60b9c48 ci: Rewrite test-each-commit as py script 2025-06-06 09:00:24 +02:00
Sebastian Falbesoner
8713e8060d depends: fix SHA256SUM command on OpenBSD (use GNU mode output)
On OpenBSD, the `sha256` command by default outputs hashsums on files in
"BSD" mode, looking like this:

$ sha256 ~/.vimrc
SHA256 (/home/thestack/.vimrc) = 6ba69d100e8c5ca0488ded6293d4e5f740a6a5d5ace96cbcf0599c18d27389e4

This is not compatible with our depends commands, which expect the
hashes to be on the first column (to be extracted via `cut -d" " -f1`).
Fix this by switching to GNU mode output, looking like this:

$ sha256 -r ~/.vimrc
6ba69d100e8c5ca0488ded6293d4e5f740a6a5d5ace96cbcf0599c18d27389e4 /home/thestack/.vimrc

Without this change, the multiprocess depends build fails with the following output:

$ gmake -C depends MULTIPROCESS=1 NO_BOOST=1 NO_LIBEVENT=1 NO_QT=1 NO_QR=1 NO_WALLET=1 NO_ZMQ=1 NO_USDT=1
[ ..... ]
Extracting native_libmultiprocess...
sha256: /home/thestack/bitcoin/depends/work/build/x86_64-unknown-openbsd7.7/native_libmultiprocess/-2bc902f4693/.src-ipc-libmultiprocess.tar.hash: no properly formatted checksum lines found
gmake: *** [funcs.mk:342: /home/thestack/bitcoin/depends/work/build/x86_64-unknown-openbsd7.7/native_libmultiprocess/-2bc902f4693/.stamp_extracted] Error 1
2025-06-06 02:02:30 +02:00
Sebastian Falbesoner
2d938720bd depends: add patch to fix capnp build on OpenBSD
see https://github.com/capnproto/capnproto/pull/2308
2025-06-06 01:32:00 +02:00
merge-script
ae024137bd Merge bitcoin/bitcoin#32496: depends: drop ltcg for Windows Qt
9653ebc053 depends: remove support for Windows Qt LTO builds (fanquake)

Pull request description:

  The related Windows patches were dropped in 5e794e6202, and "Cross-compiling does not support LTO." (from #30997).

ACKs for top commit:
  maflcko:
    lgtm ACK 9653ebc053

Tree-SHA512: 40ae7b17669bf87f2e848055e85e1a6c946f0bb0bc1674e18f1622ec4a0613fe955a4daf83928c9375035dac289ce2a72dd7f347b15f86d108157f9da9499945
2025-06-05 10:54:08 +02:00
merge-script
6a2ff67909 Merge bitcoin/bitcoin#32679: doc: update tor docs to use bitcoind binary from path
4ce53495e5 doc: update tor docs to use bitcoind binary from path (ismaelsadeeq)

Pull request description:

  I noticed this while trying to run a node over Tor.
  Using `./bitcoind` as the executable path is incorrect.

  This is a simple documentation update PR that fixes the path by removing the prefix and just
  having `bitcoind`  as the usage example targeting those who have Bitcoin Core in their PATH.

ACKs for top commit:
  davidgumberg:
    ACK 4ce53495e5
  janb84:
    ACK 4ce53495e5
  jonatack:
    ACK 4ce53495e5

Tree-SHA512: a23c94a175f77d66ee1a81599a15a809ad768090eebb619c8e4a67b8a020a2256da4f40cec3c00ec35775b265d3c53cdb70c09fbed48d399416fbc9156ebff31
2025-06-05 10:38:40 +02:00
merge-script
fd4399cb9c Merge bitcoin/bitcoin#32602: fuzz: Add target for coins database
cfc42ae5b7 fuzz: add a target for the coins database (Antoine Poinsot)
46e14630f7 fuzz: move the coins_view target's body into a standalone function (Antoine Poinsot)
56d878c465 fuzz: avoid underflow in coins_view target (Antoine Poinsot)

Pull request description:

  This reopens https://github.com/bitcoin/bitcoin/pull/28216.

  The current `coins_view` target only tests `CCoinsViewCache` using a basic `CCoinsView` instance. The addition of the `coins_view_db` target enables testing with an actual `CCoinsViewDB` as the backend.

ACKs for top commit:
  maflcko:
    lgtm ACK cfc42ae5b7
  l0rinc:
    code review ACK cfc42ae5b7
  TheCharlatan:
    ACK cfc42ae5b7

Tree-SHA512: d3a92f122629f075767453a1abd9819a1c9716db53b997418993fef62d27683324740d0a8f84df76d8a7a45e508ccadeb69553b6f69e29a1238cd7c0be5276ca
2025-06-05 10:28:24 +02:00
Ava Chow
130a922980 wallet, interfaces: Use BERKELEY_RO in isEncrypted
Since isEncrypted opens a file to search for a particular record, it
needs to use BERKELEY_RO when opening a legacy wallet.
2025-06-04 16:51:51 -07:00
Ava Chow
f94167512d Merge bitcoin/bitcoin#32676: test: apply microsecond precision to test framework logging
ed179e0a65 test: apply microsecond precision to test framework logging (Martin Zumsande)

Pull request description:

  When analyzing functional test logs (produced with `combine_logs.py`), entries sometimes sort slightly out of order because even though python prints 6 digits for microsecond precision, it fills up the last 3 digits with zeroes. For example, it may look like a message was received by the test framework before it was sent by the node.

  Change this to actually use microsecond precision - this should make combined logs a little bit easier to analyze.

ACKs for top commit:
  davidgumberg:
    Tested ACK ed179e0a65
  achow101:
    ACK ed179e0a65
  maflcko:
    review ACK ed179e0a65 🗳
  janb84:
    ACK ed179e0a65

Tree-SHA512: 55cdb5024e8e910c5a5ce741ce512eb88f4f82f11f378ba0fe7a5a2b1c97d2e7b540bdf5603c76aab837d35798610b165f087fbeb7c9dc90aaad890bf4d0323d
2025-06-04 15:09:54 -07:00
Ava Chow
0dcb45290c Merge bitcoin/bitcoin#32607: rpc: Note in fundrawtransaction doc, fee rate is for package
f98e1aaf34 rpc: Note in fundrawtransaction doc, fee rate is for package (benthecarman)

Pull request description:

  Accidentally made some transactions with a much higher fee rate than I wanted because I did not know this would do it for the package rather than the individual tx.

ACKs for top commit:
  achow101:
    ACK f98e1aaf34
  rkrux:
    re-ACK f98e1aaf34
  danielabrozzoni:
    ACK f98e1aaf34

Tree-SHA512: 9f961de1200803ec4d1c6901fd606bb6cf707ffd03942d9dc0d4b6554c827075f99d693b93e892f728679d67e63e12c71da4426dab091b3311d1605bc37251a2
2025-06-04 14:55:10 -07:00
ismaelsadeeq
4ce53495e5 doc: update tor docs to use bitcoind binary from path 2025-06-04 20:25:52 +01:00
merge-script
a5e98dc3ae Merge bitcoin/bitcoin#32651: cmake: Replace deprecated qt6_add_translation with qt6_add_lrelease
18cf727429 cmake: Replace deprecated `qt6_add_translation` with `qt6_add_lrelease` (Hennadii Stepanov)

Pull request description:

  See Qt docs:
  - https://doc.qt.io/archives/qt-6.2/qtlinguist-cmake-qt-add-translation.html
  - https://doc.qt.io/archives/qt-6.2/qtlinguist-cmake-qt-add-lrelease.html

ACKs for top commit:
  fanquake:
    ACK 18cf727429

Tree-SHA512: 10a4023b24d2936a41b8049063b0e210b76cd4d9c9e22a28de579a211f047b5446785005d6918f0b80c6461960717be62cf9b92b0c66000a95379a41dfa83fd2
2025-06-04 16:36:23 +02:00
fanquake
9653ebc053 depends: remove support for Windows Qt LTO builds
The patches needed to support this were dropped in
5e794e6202 and "Cross-compiling does not
support LTO." (from #30997), so remove it for now.
2025-06-04 15:49:49 +02:00
brunoerg
7cfbb8575e test: wallet: cover wallet passphrase with a null char 2025-06-04 09:50:03 -03:00
will
5c4a0f8009 guix: warn and abort when SOURCE_DATE_EPOCH is set
Current behaviour will by-default use SOURCE_DATE_EPOCH from the
environment without warning. This breaks the default reproducibility
from a guix build.

Warn when and exit when this variable is set, and
FORCE_SOURCE_DATE_EPOCH is unset.
2025-06-04 12:24:08 +01:00
merge-script
4af72d8b08 Merge bitcoin/bitcoin#32647: build: add -Wthread-safety-pointer
83bfe1485c build: add -Wthread-safety-pointer (fanquake)
240a4fb95d Squashed 'src/leveldb/' changes from 113db4962b..aba469ad6a (fanquake)

Pull request description:

  This will become available in Clang 21:

  > ThreadSafetyAnalysis now supports -Wthread-safety-pointer, which
  > enables warning on passing or returning pointers to guarded variables
  > as function arguments or return value respectively. Note that
  > ThreadSafetyAnalysis still does not perform alias analysis. The
  > feature will be default-enabled with -Wthread-safety in a future release.

  See https://github.com/llvm/llvm-project/blob/main/clang/docs/ReleaseNotes.rst.

  Also updates the leveldb subtree to pull: https://github.com/bitcoin-core/leveldb-subtree/pull/54.

ACKs for top commit:
  davidgumberg:
    Tested ACK  83bfe1485c
  maflcko:
    lgtm ACK 83bfe1485c
  theuni:
    utACK 83bfe1485c

Tree-SHA512: 9bc80bd04a9cebed8aca20bc23a17e52a6a89a1fb042993322f43dbf7bd93de509c091ebb69255063833b098ab11a64285eccf61e17b9f94f974c734a20ad8da
2025-06-04 10:58:04 +02:00
merge-script
a980918f51 Merge bitcoin/bitcoin#32568: depends: use "mkdir -p" when installing xproto
df9ebbf659 depends: use "mkdir -p" when installing xproto (fanquake)

Pull request description:

  It looks like the mkdir detection in xproto is broken on Alpine. Ensure we always use `mkdir -p`.

  Fixes #32494.

ACKs for top commit:
  hebasto:
    ACK df9ebbf659, I have reviewed the code and it looks OK.
  janb84:
    ACK df9ebbf659
  willcl-ark:
    ACK df9ebbf659

Tree-SHA512: 0f23b1096ffdf5ffa13115665dc42b65835b78bb0ab04a8be8f210980356953ab518e1273302fe4c9239361201f4f9ac737c0ebf10625f4817f81b65b3b25572
2025-06-03 20:21:19 +01:00
Martin Zumsande
ed179e0a65 test: apply microsecond precision to test framework logging
This makes it easier to compare test and bitcoind logs -
combine_logs.py orders by timestamp and will be more precise.
2025-06-03 14:02:01 -04:00
MarcoFalke
fa9ca13f35 refactor: Sort includes of touched source files 2025-06-03 19:56:55 +02:00
MarcoFalke
facb152697 scripted-diff: Bump copyright headers after include changes
Historically, the headers have been bumped some time after a file has
been touched. Do it now to avoid having to touch them again in the
future for that reason.

-BEGIN VERIFY SCRIPT-
 sed -i --regexp-extended 's;( 20[0-2][0-9])(-20[0-2][0-9])? The Bitcoin Core developers;\1-present The Bitcoin Core developers;g' $( git show --pretty="" --name-only HEAD~0 )
-END VERIFY SCRIPT-
2025-06-03 15:13:57 +02:00
MarcoFalke
fae71d30f7 clang-tidy: Apply modernize-deprecated-headers
This can be reproduced according to the developer notes with something
like

( cd ./src/ && ../contrib/devtools/run-clang-tidy.py -p ../bld-cmake -fix -j $(nproc) )

Also, the header related changes were done manually.
2025-06-03 15:13:54 +02:00
merge-script
e872a566f2 Merge bitcoin/bitcoin#32644: doc: miscellaneous changes
e50312eab0 doc: fix typos (fanquake)
c797e50dda ci: update codespell to 2.4.1 (fanquake)
21ee656337 doc: Remove obselete link in notificator.cpp (strmfos)
ee4406c04a doc: update URLs (fanquake)

Pull request description:

  A round up of #32629 + some other changes that had previously been PR'd.

ACKs for top commit:
  maflcko:
    review ACK e50312eab0 🥗

Tree-SHA512: 8fa3e14fdfa0cf65a42debc9cbb1f8b379aba44aa185e2e27337431e884d169bf1e811655c3a884d918e65ea28c5767ddaabaf25c862ebd9b4b38a0229ec5a93
2025-06-03 09:10:49 +01:00
fanquake
e50312eab0 doc: fix typos
Co-authored-by: Ragnar <rodiondenmark@gmail.com>
Co-authored-by: VolodymyrBg <aqdrgg19@gmail.com>
2025-06-03 08:09:28 +01:00
fanquake
c797e50dda ci: update codespell to 2.4.1 2025-06-03 08:09:28 +01:00
strmfos
21ee656337 doc: Remove obselete link in notificator.cpp 2025-06-03 08:09:28 +01:00
fanquake
ee4406c04a doc: update URLs
Some are now redirecting, some are outdated, i.e qt5.
2025-06-03 08:09:21 +01:00
Ava Chow
2d819fa4df Merge bitcoin/bitcoin#29032: signet: omit commitment for some trivial challenges
6ee32aaaca test: signet tool genpsbt and solvepsbt commands (Sjors Provoost)
0a99d99fe4 signet: miner skips PSBT step for OP_TRUE (Sjors Provoost)
cdfb70e5a6 signet: split decode_psbt miner helper (Sjors Provoost)

Pull request description:

  [BIP325](https://github.com/bitcoin/bips/blob/master/bip-0325.mediawiki) mentions the following rule:

  > In the special case where an empty solution is valid (ie scriptSig and scriptWitness are both empty) this additional commitment can optionally be left out. This special case is to allow non-signet-aware block generation code to be used to test a custom signet chain where the challenge is trivially true.

  Such a signet can be created using e.g. `-signetchallenge=51` (`OP_TRUE`). However `contrib/signet/miner` won't omit the commitment.

  This PR improves the miner by skipping the PSBT for known trivial scripts (just `OP_TRUE` and trivial pushes for now). This prevents it from appending the 4 byte signet header to the witness commitment, as allowed by the above rule.

  ---

  Previously the script would fail with `PSBT signing failed`, making it difficult to mine. This is no longer the case.

ACKs for top commit:
  achow101:
    ACK 6ee32aaaca
  theStack:
    re-ACK 6ee32aaaca
  danielabrozzoni:
    ACK 6ee32aaaca

Tree-SHA512: e47fbf471f2909286a6c1c073799ea388b9c19551afcce96cf9af45cc48d25c02f1e48e08861a88b604361e2c107a759d5baf393da8a37360de419f31651758a
2025-06-02 15:24:34 -07:00
Ava Chow
f999c3775c Merge bitcoin/bitcoin#32449: wallet: init, don't error out when loading legacy wallets
86e1111239 test: verify node skips loading legacy wallets during startup (furszy)
9f94de5bb5 wallet: init, don't error out when loading legacy wallets (furszy)

Pull request description:

  Instead of failing during initialization and shutting down the app when encountering a legacy wallet, skip loading the wallet and notify the user accordingly.

  This allows users to access migration functionalities without needing to manually remove the wallet from settings.json or resort to using the bitcoin-wallet utility.

  This means that GUI users will be able to use the migration button, and bitcoin-cli users will be able to call the migratewallet RPC directly after init.

ACKs for top commit:
  achow101:
    ACK 86e1111239
  w0xlt:
    ACK 86e1111239

Tree-SHA512: 85d594a503ee7a833a23754b71b6ba4869ca34ed802c9ac0cd7b2fa56978f5fcad84ee4bd3acdcc61cf8e7f08f0789336febc5d76beae1eebf7bd51462512b78
2025-06-02 13:31:35 -07:00
Ava Chow
0def84d407 test: Verify parent_desc in RPCs
getaddressinfo, listunspent, listtransactions, listsinceblock, and
gettransaction all include parent_desc(s). Make sure that these are
consistent with each other, as well as being in normalized form.
2025-06-02 12:51:16 -07:00
benthecarman
f98e1aaf34 rpc: Note in fundrawtransaction doc, fee rate is for package 2025-06-02 11:18:24 -05:00
merge-script
1c6602399b Merge bitcoin/bitcoin#32662: doc: Remove build instruction for running clang-tidy
4b1b36acb4 doc: Remove build instruction for running `clang-tidy` (Hennadii Stepanov)

Pull request description:

  One of the benefits of using a compilation database, which is available after the CMake build system generation step, is that it is not necessary to actually build the code in order to run `clang-tidy`.

ACKs for top commit:
  TheCharlatan:
    ACK 4b1b36acb4
  janb84:
    ACK 4b1b36acb4

Tree-SHA512: cf28fb1bcff83016b927522f1c719f3b91df7d107a310250c550308c8544b212fa6d2e8a5502d69fa424421acdf952469edd67504ac2a8465a2c1520593a1f26
2025-06-02 14:46:03 +01:00
Hennadii Stepanov
4b1b36acb4 doc: Remove build instruction for running clang-tidy
One of the benefits of using a compilation database, which is available
after the CMake build system generation step, is that it is not
necessary to actually build the code in order to run `clang-tidy`.
2025-06-02 13:49:19 +01:00
merge-script
9e105107bf Merge bitcoin/bitcoin#32656: depends: don't install & then delete sqlite pkgconf
72a5aa9b79 depends: don't install & then delete sqlite pkgconf (fanquake)

Pull request description:

ACKs for top commit:
  stickies-v:
    ACK 72a5aa9b79
  hebasto:
    ACK 72a5aa9b79.

Tree-SHA512: d70b024ca68294ab79e5f9aa15ab8a17eca83f65713d5de3b421e868b0f24c26a459a6240d348438fd4706a9f46e96ab4979e952099d5f2a9bc00e8e1a7b558f
2025-06-02 12:34:51 +01:00