Commit Graph

44376 Commits

Author SHA1 Message Date
Hennadii Stepanov
52ac17757e cmake: Add NO_CACHE_IF_FAILED option for checking linker flags
Use it for checking `-fsanitize`.

This change improves the user experience when the configuration step
fails due to a missing library. Now, there is no need to manually clean
the CMake cache after installing the required library.
2025-03-10 16:55:48 +00:00
Hodlinator
3301d2cbe8 qa: Wait for txindex to avoid race condition
Can be verified to be necessary through adding std::this_thread::sleep_for(0.5s) at the beginning of TxIndex::CustomAppend.
2025-03-10 15:24:16 +01:00
Hennadii Stepanov
45719390a1 Merge bitcoin/bitcoin#32011: Docs: fix typos in documentation files
5601bab4f8 Docs: fix typos in documentation files (wgyt)

Pull request description:

ACKs for top commit:
  jonatack:
    ACK 5601bab4f8
  mabu44:
    crACK 5601bab4f8
  maflcko:
    lgtm ACK 5601bab4f8

Tree-SHA512: 66c14638090f472f6c68d094cd9b0fc2e47e40d29e4f30a0a798992317cce8e96ef053ff159cf950a1d44cffb24554c6cebccec5cf49d24f105b367fc29382c1
2025-03-09 16:44:34 +00:00
Hennadii Stepanov
4637cb1eec Merge bitcoin/bitcoin#32002: doc: add note to Windows build about stripping bins
c94195c077 doc: add note to windows build about stripping bin (fanquake)

Pull request description:

  The Windows binaries are particularly big when they contain debug info, closing in on 500mb. Add a note to the Windows build instructions about using `--strip`.

  I haven't tested this (the copying out to WSL). If we don't want to add this note, in favour of [user-presents or similar](https://github.com/bitcoin/bitcoin/issues/30593#issuecomment-2271304490), then we should just close #30593.

  Fixes #30593.

ACKs for top commit:
  hodlinator:
    ACK c94195c077
  hebasto:
    ACK c94195c077.

Tree-SHA512: c55670486ef60c6bda720e65443e17747b840e220c5bf6d6c0b77590d95cd6c8f040bc0e67dfa8eb11451f4f2eac9faf25d74ea68251b881773836f4113e8595
2025-03-08 11:43:34 +00:00
Hennadii Stepanov
5f732089d6 Merge bitcoin/bitcoin#32017: doc: warn against having qt6 installed on macOS
d79dab0fa9 doc: warn against having qt6 installed on macOS (Sjors Provoost)

Pull request description:

  Document #31009 in time for the v29 release.

ACKs for top commit:
  achow101:
    ACK d79dab0fa9
  hebasto:
    ACK d79dab0fa9.

Tree-SHA512: 4c6e557b6410c7fd766e1cdc356ae9f7410fbb4746732580e5bdf33ba43dca64e6f2fb66677d1e0c8fa71c19f212dc81ac73dc4277f2fd966bbd41c20d9291f8
2025-03-08 11:29:44 +00:00
Hennadii Stepanov
a1aea3ea74 Merge bitcoin/bitcoin#31996: doc: link to benchcoin over bitcoinperf
611999e097 doc: link to benchcoin over bitcoinperf (fanquake)

Pull request description:

  Seems like linking to https://github.com/bitcoin-dev-tools/benchcoin is now the best thing to do here. If not, we can just drop the other links.

ACKs for top commit:
  l0rinc:
    ACK 611999e097
  laanwj:
    ACK 611999e097
  hebasto:
    ACK 611999e097. I agree. I've had a great experience using it.

Tree-SHA512: 558060bec92099befaa047e9192e5172e6a0cdfc5530d1f8b4d64ac717ce999a993d39c5d108fa9df3e30b2fc089e31d720f344153381e7c53f0ed40938ae1e0
2025-03-08 10:46:58 +00:00
wgyt
5601bab4f8 Docs: fix typos in documentation files 2025-03-08 09:26:18 +08:00
Hodlinator
59c4930394 qa: Enable feature_init.py on Windows 2025-03-07 22:33:49 +01:00
Hodlinator
9bfb0d75ba qa: Remove unnecessary -txindex args
(Parent commit ensured indexes in feature_init.py are actually used, otherwise they would be removed here as well).
2025-03-07 22:22:31 +01:00
Hodlinator
7ac281c19c qa: Add missing coverage of corrupt indexes 2025-03-07 22:22:31 +01:00
fanquake
c94195c077 doc: add note to windows build about stripping bin
The Windows binaries are particularly big when they contain debug
info, closing in on 500mb. Add a note to the Windows build instructions
about using `--strip`.
2025-03-07 17:19:05 +00:00
merge-script
ee68b05f3d Merge bitcoin/bitcoin#32014: ci: Do not try to install for fuzz builds
a3c3f37e71 ci: Do not try to install for fuzz builds (Hennadii Stepanov)

Pull request description:

  This PR is a follow-up to https://github.com/bitcoin/bitcoin/pull/31844 and extends the changes from fb0546b1c5 to all fuzz builds in the CI.

  Fixes https://github.com/bitcoin/bitcoin/issues/32001.

ACKs for top commit:
  dergoegge:
    utACK a3c3f37e71

Tree-SHA512: bc422c53f6f06f25a0e13e788ade7c98711d864773a909487b8863e7cacfbc499ea466ec675a955279a89e247745ff0e845cd42896b4d405c4441d5e9f3a9c1b
2025-03-07 14:08:25 +00:00
Hennadii Stepanov
093c757d7c Merge bitcoin/bitcoin#32000: Update minisketch subtree to d1e6bb8bbf8ef104b9dd002cab14a71b91061177
f5d8b66a8c Squashed 'src/minisketch/' changes from eb37a9b8e7..d1e6bb8bbf (fanquake)

Pull request description:

  Includes:
  * https://github.com/bitcoin-core/minisketch/pull/92

ACKs for top commit:
  hebasto:
    ACK 4fde88bc46, I've updated the subtree locally and got zero diff with this PR.

Tree-SHA512: 0ddaa6b64ca14da244d455594bc122a059fd1d199d28a7a78f266e352811568bd0f30d3b1e5e5d859f92753d3979831c095e3f6078f0ba2c909b1566a0e74a0c
2025-03-07 12:37:56 +00:00
Hennadii Stepanov
a3c3f37e71 ci: Do not try to install for fuzz builds 2025-03-07 11:09:57 +00:00
Sjors Provoost
d79dab0fa9 doc: warn against having qt6 installed on macOS 2025-03-07 05:01:46 -05:00
Jon Atack
f0b659716b seeds: update .gitignore with signet and testnet4 2025-03-06 15:39:58 -06:00
Jon Atack
48f07ac9da chainparams: remove hardcoded signet seeds 2025-03-06 15:39:58 -06:00
Jon Atack
d4ab1150c4 chainparams: add signet fixed seeds if default network 2025-03-06 15:39:58 -06:00
Jon Atack
49f155efbf seeds: update fixed dns seeds 2025-03-06 15:39:58 -06:00
Lőrinc
236687083f makeseeds: regex improvements 2025-03-06 14:50:39 -06:00
Jon Atack
98f84d6c23 generate-seeds: update and add signet 2025-03-06 14:50:39 -06:00
Jon Atack
c4ed23e539 seeds: add testnet4 seeds 2025-03-06 14:50:39 -06:00
Jon Atack
60f17dd816 seeds: add signet seeds 2025-03-06 14:50:39 -06:00
Jon Atack
2bcccaa410 makeseeds: align I2P column header 2025-03-06 14:50:39 -06:00
Jon Atack
94e21aa5fc makeseeds: update MIN_BLOCKS, add reminder to README 2025-03-06 14:50:39 -06:00
Jon Atack
6ae7a3bc4e makeseeds: update user agent regex 2025-03-06 14:50:39 -06:00
laanwj
9b0d2e5094 makeseeds: fix incorrect regex
We shouldn't have | at the end of the last clause, as this will make it match
the empty string too (so effectively everything starting with Satoshi: matches).

While doing this, put the | at the beginning of every line of regex rather than
the end, to make it easier to update in the future without accidentally running
into this problem again.
2025-03-06 14:50:39 -06:00
Ava Chow
a9a2b669f3 Merge bitcoin/bitcoin#32003: doc: remove note about macOS self-signing
c873ab6f23 doc: remove note about macOS self-signing (fanquake)

Pull request description:

  Followup to #31407.

ACKs for top commit:
  Sjors:
    ACK c873ab6f23
  achow101:
    ACK c873ab6f23

Tree-SHA512: f51aacf11606fb3c0a5811a0bb2ed8dbddfcf36c9e4ece1ef0f742195d0a9f3b26dd60299c165c90caca8e2ce264922bdb990632f991d1fef53f2274ec3dcb6a
2025-03-06 10:00:20 -08:00
merge-script
c7d216ac94 Merge bitcoin/bitcoin#31993: ci: use LLVM 20.1.0 for MSAN
d76647eb8f ci: use LLVM 20.1.0 for MSAN (fanquake)

Pull request description:

  Now that the release is out, stop using rc1.

ACKs for top commit:
  l0rinc:
    utACK d76647eb8f
  Sjors:
    ACK d76647eb8f

Tree-SHA512: 2eefad118dd617c3e9554caee1549965fc4acc437dbef1252c1912faea57ccbfcb39f879911f27f4274931c1d8723b9c7f981aafa6958e70d4371f16c368c627
2025-03-06 17:19:59 +00:00
merge-script
9f3dcacef7 Merge bitcoin/bitcoin#31978: kernel: pre-29.x chainparams and headerssync update
11a2d3a63e [headerssync] update headerssync config for v29 (glozow)
dd23c53258 [kernel] update chainTxData for v29 (glozow)
80926af8c2 [kernel] update assumevalid and minimumChainWork for v29 (glozow)
0683b8ebf3 [kernel] update assumed blockchain and chainstate sizes for v29 (glozow)

Pull request description:

  Update chainparams and headerssync config for v29.0 (see [release process](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#before-branch-off)).

ACKs for top commit:
  achow101:
    ACK 11a2d3a63e
  Sjors:
    ACK 11a2d3a63e

Tree-SHA512: 726cbb16a3bc8b11419c2888b17552d70217f616f17a715ba4983fdfccb0cfd9705c528601a6bb3e62563a6f43d41543181e13cdbad89d75abba3b7899328031
2025-03-06 10:23:01 +00:00
Lőrinc
d5537c18a9 fuzz: make sure DecodeBase58(Check) is called with valid values more often
In Base58 fuzz the two roundtrips are merged now, the new `decode_input` switches between a completely random input and a valid encoded one, to make sure the decoding passes more often.
The `max_ret_len` can also exceed the original length now and is being validated more thoroughly.

Co-authored-by: maflcko <6399679+maflcko@users.noreply.github.com>
Co-authored-by: marcofleon <marleo23@proton.me>
2025-03-05 22:30:28 +01:00
Lőrinc
bad1433ef2 fuzz: Always restrict base conversion input lengths
They seem to cause timeouts:
> Issue 397734700: bitcoin-core:base58check_encode_decode: Timeout in base58check_encode_decode

The `encoded_string.empty()` check was corrected here to `decoded.empty()` to make sure the `(0, decoded.size() - 1)` range is always valid.

Co-authored-by: maflcko <6399679+maflcko@users.noreply.github.com>
Co-authored-by: marcofleon <marleo23@proton.me>
Co-authored-by: Martin Zumsande <mzumsande@gmail.com>
2025-03-05 22:28:08 +01:00
fanquake
c873ab6f23 doc: remove note about macOS self-signing
Followup to #31407.
2025-03-05 17:35:58 +00:00
merge-script
bd0ee07310 Merge bitcoin/bitcoin#31407: guix: Notarize MacOS app bundle and codesign all MacOS and Windows binaries
e181bda061 guix: Apply all codesignatures to Windows binaries (Ava Chow)
aafbd23fd9 guix: Apply codesignatures to all MacOS binaries (Ava Chow)
3656b828dc contrib: Sign all Windows binaries too (Ava Chow)
31d325464d contrib: Sign and notarize all MacOS binaries (Ava Chow)
710d5b5149 guix: Update signapple (Ava Chow)
e8b3c44da6 build: Include all Windows binaries for codesigning (Ava Chow)
dd4ec840ee build: Include all MacOS binaries for codesigning (Ava Chow)
4e5c9ceb9d guix: Rename Windows unsigned binaries to unsigned.zip (Ava Chow)
d9d49cd533 guix: Rename MacOS binaries to unsigned.tar.gz (Ava Chow)
c214e5268f guix: Rename unsigned.tar.gz to codesigning.tar.gz (Ava Chow)

Pull request description:

  I have updated signapple to notarize MacOS app bundles without adding any additional dependencies. Further, it can also sign and apply detached signatures to standalone binaries.

  As such, we can use signapple to perform the notarization and stapling steps so that MacOS will run the app bundle after it is installed. `detached-sig-create.sh` is updated to have a notarization step and to download the ticket which will be included in the detached signatures. The workflow is largely unchanged for the MacOS codesigners except for the additional requirement of having an App Store Connect API key and Team UUID, instructions for which can be found at https://github.com/achow101/signapple/blob/master/docs/notarization.md. For guix builders, the workflow is unchanged.

  Additionally, the standalone binaries packaged in the MacOS `.tar.gz` and Windows `.zip` will now be codesigned. `detached-sig-create.sh` was updated to handle these, so the workflow for both MacOS and Windows codesigners remains unchanged. For guix builders, the workflow is also unchanged.

  Because those binaries will how have codesigned and unsigned versions, the build command is modified to output `-unsigned.{tar.gz,zip}` archives containing the binaries. Since this happens to conflict with the tarball used for codesigning, the codesigning tarball was renamed to `-codesigning.tar.gz`. Both MacOS and Windows codesigners will need to adjust their workflows to account for the new name.

  Fixes #15774 and #29749

ACKs for top commit:
  Sjors:
    Tested ACK e181bda061
  davidgumberg:
    Tested ACK e181bda061.
  pinheadmz:
    tested ACK e181bda061

Tree-SHA512: ce0e2bf38e1748cdaa0d13be6f61c3289cd09cfb7d071a68b0b13d2802b3936c9112eda6e4c7b29c535c0995d56b14871442589cdcea2e7707e35c1b278b9263
2025-03-05 17:34:26 +00:00
Martin Zumsande
11f8ab140f test: wallet, coverage for crash on dup block disconnection during unclean shutdown
Co-authored-by: furszy <matiasfurszyfer@protonmail.com>
2025-03-05 10:40:04 -05:00
fanquake
4fde88bc46 Update minisketch subtree to latest master 2025-03-05 15:36:56 +00:00
fanquake
f5d8b66a8c Squashed 'src/minisketch/' changes from eb37a9b8e7..d1e6bb8bbf
d1e6bb8bbf Merge bitcoin-core/minisketch#92: doc: rename from sipa to bitcoin-core
b7b7dd0ec8 doc: rename from sipa to bitcoin-core

git-subtree-dir: src/minisketch
git-subtree-split: d1e6bb8bbf8ef104b9dd002cab14a71b91061177
2025-03-05 15:36:56 +00:00
glozow
0391d7e4c2 Merge bitcoin/bitcoin#31848: test, tracing: don't use problematic bpf_usdt_readarg_p()
a0b66b4bff Revert "test: Disable known broken USDT test for now" (0xb10c)
ec47ba349d contrib: don't use bpf_usdt_readarg_p (0xb10c)
35ae6ff60f test: don't use bpf_usdt_readarg_p (0xb10c)

Pull request description:

  Instead of using the undocumented bcc helper `bpf_usdt_readarg_p()`, use [`bpf_usdt_readarg()`][1] and [`bpf_probe_read_user()`][2]/[`bpf_probe_read_user_str()`][3] as documented in the [bcc USDT reference guide][1].

  Note that the `bpf_probe_read_user()` documentation says the following:
  > For safety, all user address space memory reads must pass through bpf_probe_read_user().

  It's [assumed](https://github.com/bitcoin/bitcoin/issues/27380#issuecomment-2286505348) that using `bpf_usdt_readarg_p()` caused a lifetime issue. With `bpf_usdt_readarg()` and `bpf_probe_read_user()`, this doesn't [seem](https://github.com/bitcoin/bitcoin/issues/27380#issuecomment-2528671656) to be a problem anymore.

  This allows to revert faed533743 and closes #27380.

    [1]: https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md#6-usdt-probes
    [2]: https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md#10-bpf_probe_read_user
    [3]: https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md#11-bpf_probe_read_user_str

ACKs for top commit:
  i-am-yuvi:
    Tested ACK a0b66b4bff
  willcl-ark:
    tACK a0b66b4bff

Tree-SHA512: 002a692ad81ef284d4a610bbc6da477d623bf4dae5134c3692431c56b71692fa597e280fddd411eadd08eae77f01f47e2dcd0f37c0081326abe11a75bb10d6a6
2025-03-05 10:21:10 -05:00
merge-script
36d4bd7fe3 Merge bitcoin/bitcoin#31997: doc: update location of minisketch repository
972b604dc4 doc: update location of minisketch repository (fanquake)

Pull request description:

  This repository is now at https://github.com/bitcoin-core/minisketch.

ACKs for top commit:
  hebasto:
    ACK 972b604dc4.
  theStack:
    ACK 972b604dc4

Tree-SHA512: a164f97700e73b284429993f9639d1d4eab23cc09ded3104be392d5d259297c2906906a565ffa8848a495e8f35cbbe18ba4155fe1d16cda0406ac3c75f9d9a62
2025-03-05 14:49:52 +00:00
Hennadii Stepanov
0c0a2717bc Merge bitcoin/bitcoin#31954: doc: update fuzz instructions when on macOS
75486c8ed8 doc: update fuzz instructions when on macOS (Max Edwards)

Pull request description:

  Fixes: #31049

  Updates the instructions for fuzzing on macOS to use `lld` instead of `ld`.

  Tested instructions on M1 Mac running 14.6.1

ACKs for top commit:
  l0rinc:
    ACK 75486c8ed8
  brunoerg:
    ACK 75486c8ed8
  hebasto:
    ACK 75486c8ed8, tested on macOS 15.3.1 (Apple M1) + Clang 19.1.7.

Tree-SHA512: 2c5645d78fce1644964dee55c8ca6a6549bfd4f4a9a5719bbe49264f7216f0267c27999e23402a47eecbc8502985d812b986bf6850a5d63d110bdb98769f23c2
2025-03-05 14:31:13 +00:00
Hennadii Stepanov
a2ab2faf4a Merge bitcoin/bitcoin#31982: scripted-diff: rename libmultiprocess repository
18749efb07 scripted-diff: rename libmultiprocess repository (fanquake)

Pull request description:

  For when we shift `libmultiprocess` into the `bitcoin-core` organisation.

ACKs for top commit:
  Sjors:
    tACK 18749efb07
  hebasto:
    ACK 18749efb07.

Tree-SHA512: df361e239da072dba2574e90231bbf8c4daf906786a838fe63761d38d5624510dbeeb6308567dc32321bd3bc76f1117606c8eb2c22e299aa164786ec342bd4b3
2025-03-05 14:24:02 +00:00
fanquake
972b604dc4 doc: update location of minisketch repository 2025-03-05 14:13:53 +00:00
fanquake
611999e097 doc: link to benchcoin over bitcoinperf 2025-03-05 13:58:21 +00:00
fanquake
d76647eb8f ci: use LLVM 20.1.0 for MSAN 2025-03-05 10:31:25 +00:00
merge-script
c2341ebb5b Merge bitcoin/bitcoin#31983: build: don't show ccache summary with MSVC
c718bffc36 build: don't use ccache with MSVC (fanquake)

Pull request description:

  Set `WITH_CCACHE` to `OFF` for MSVC, so it doesn't show as `ON` in the configure summary.

  Fixes #31771.

ACKs for top commit:
  hebasto:
    ACK c718bffc36, I have reviewed the code and it looks OK.

Tree-SHA512: cf20b36a496a446051d0586c55d05a9133dce26a958e6b39b510094c56014275b866806c88be40ffa918b4280970c082b981b4e52e4bfdb8cec1556f666898fc
2025-03-05 09:54:26 +00:00
Eval EXEC
f708498293 torcontrol: Limit reconnect timeout to max seconds and log delay in whole seconds
Signed-off-by: Eval EXEC <execvy@gmail.com>
2025-03-05 11:42:07 +08:00
Ryan Ofsky
57d8b1f1b3 cmake: Avoid fuzzer "multiple definition of `main'" errors
This change builds libraries with -fsanitize=fuzzer-no-link instead of
-fsanitize=fuzzer when the cmake -DSANITIZERS=fuzzer option is specified. This
is necessary to make fuzzing and IPC cmake options compatible with each other
and avoid CI failures in #30975 which enables IPC in the fuzzer CI build:

https://cirrus-ci.com/task/5366255504326656?logs=ci#L2817
https://cirrus-ci.com/task/5233064575500288?logs=ci#L2384

The failures can also be reproduced by checking out #31741 and building with
`cmake -B build -DBUILD_FOR_FUZZING=ON -DSANITIZERS=fuzzer -DENABLE_IPC=ON`
with this fix reverted.

The fix updates the cmake build so when -DSANITIZERS=fuzzer is specified, the
fuzz test binary is built with -fsanitize=fuzzer (so it can use libFuzzer's
main function), and libraries are built with -fsanitize=fuzzer-no-link (so they
can be linked into other executables with their own main functions).

Previously when -DSANITIZERS=fuzzer was specified, -fsanitize=fuzzer was
applied to ALL libraries and executables. This was inappropriate because it
made it impossible to build any executables other than the fuzz test executable
without triggering link errors:

- "multiple definition of `main'"
- "undefined reference to `LLVMFuzzerTestOneInput'"

if they depended on any libraries instrumented for fuzzing.

This was especially a problem when the ENABLE_IPC option was set because it
made building the mpgen code generator impossible so nothing else that depended
on generated sources, including the fuzz test binary, could be built either.

This commit was previously part of
https://github.com/bitcoin/bitcoin/pull/31741 and had some discussion there
starting in
https://github.com/bitcoin/bitcoin/pull/31741#pullrequestreview-2619682385
2025-03-04 14:45:05 -05:00
glozow
88debb3e42 Merge bitcoin/bitcoin#31940: Add assumeutxo chainparams to release-process.md
02fae33635 doc: add assumeutxo chainparams to release proc (willcl-ark)

Pull request description:

  This should ideally be bumped every major (and perhaps even minor?) release to avoid falling too far behind, and therefore keeping this feature as useful as it can be.

  Document in release-process.md to avoid forgetting to do this.

ACKs for top commit:
  achow101:
    ACK 02fae33635
  glozow:
    ACK 02fae33635

Tree-SHA512: 1c570b476a2c1369cde20965a762a4bce76fc27e7cf2704032132c9679ac1bc003d5dcc5b2bf39625f1b92b182254bec60743e52858ef89428df2b90ff4fb804
2025-03-04 14:45:05 -05:00
Ava Chow
c8dcb61172 Merge bitcoin/bitcoin#31985: doc: Bring reduce-memory.md up to date
fff4f93dff doc: Bring reduce-memory.md up to date (laanwj)

Pull request description:

  Update default number of RPC threads to 16 (#31215) and remove reference to very old version of bitcoin core.

  Let me know if you notice other mismatches with current defaults.

ACKs for top commit:
  achow101:
    ACK fff4f93dff
  brunoerg:
    ACK fff4f93dff
  TheCharlatan:
    ACK fff4f93dff
  vasild:
    ACK fff4f93dff

Tree-SHA512: 14d91da1f86c8b460828a6e4ae9151ec430cbbaefa85d258c574b5e340cbf64244de981d5b3f37a0d97aafe872f3edb100596fc9e2b11c0df7874b1da8054a55
2025-03-04 11:36:16 -08:00
glozow
11a2d3a63e [headerssync] update headerssync config for v29 2025-03-04 14:23:18 -05:00