Commit graph

43023 commits

Author SHA1 Message Date
furszy
122d103ca2
wallet: introduce 'SetWalletFlagWithDB' 2024-10-21 08:29:22 -03:00
furszy
6052c7891d
wallet: decouple default descriptors creation from external signer setup
This will be useful in the following-up commit to batch the entire
wallet migration process.
2024-10-21 08:29:22 -03:00
furszy
f2541d09e1
wallet: batch MigrateToDescriptor() db transactions
Grouping all db writes into a single atomic write operation.
Speeding up the flow and preventing inconsistent states.
2024-10-21 08:29:22 -03:00
furszy
66c9936455
bench: add coverage for wallet migration process 2024-10-21 08:29:22 -03:00
merge-script
563c4d2926
Merge bitcoin/bitcoin#31105: Update libmultiprocess library
90b405516f Update libmultiprocess library (Ryan Ofsky)

Pull request description:

  Add recent changes and fixes for shutdown bugs.

  https://github.com/chaincodelabs/libmultiprocess/pull/111: doc: Add internal design section
  https://github.com/chaincodelabs/libmultiprocess/pull/113: Add missing include to util.h
  https://github.com/chaincodelabs/libmultiprocess/pull/116: shutdown bugfix: destroy RPC system before running cleanup callbacks
  https://github.com/chaincodelabs/libmultiprocess/pull/118: shutdown bugfix: Prevent segfault in server if connection is broken during long function call
  https://github.com/chaincodelabs/libmultiprocess/pull/119: cmake: avoid libatomic not found error on debian

ACKs for top commit:
  fanquake:
    ACK 90b405516f
  TheCharlatan:
    ACK 90b405516f

Tree-SHA512: 2c256667f0c16e00bb5a81b2c6d3db103fae211844e32b111bbed673ab2612ad1478e6b3ecd3a867a4e425cfa6e778b67388343626597a8fac800a15cea5e53a
2024-10-21 10:54:38 +01:00
merge-script
0e9f20625a
Merge bitcoin/bitcoin#31063: lint: commit-script-check.sh: echo to stderr
fac6cfe5ac lint: commit-script-check.sh: echo to stderr (MarcoFalke)

Pull request description:

  This makes it easier to redirect the produced `git diff` on failure. On success, it shouldn't hurt, because the same output is still present, just on stderr.

  Can be tested by introducing a fault in any scripted diff and then calling `commit-script-check.sh HEAD~..HEAD > any_file.txt`. Previously the file contained the full output, now it contains just the diff.

ACKs for top commit:
  TheCharlatan:
    ACK fac6cfe5ac

Tree-SHA512: b4dfad10a4a902729a7ad7533ed0ef86b9e79761083f2ec623d448a551462b268fe04bdba387ca62160dae9ef7b1781e005dec60f18b111d9bfa6b97357108e6
2024-10-21 10:46:46 +01:00
Lőrinc
33a28e252a Change default help arg to -help and mention -h and -? as alternatives
% build/src/bench/bench_bitcoin -h
[...]
  -help
       Print this help message and exit (also -h or -?)
2024-10-21 11:08:51 +02:00
Lőrinc
f0130ab1a1 doc: replace -? with -h for bench_bitcoin help
The question mark (`?`) is interpreted as a wildcard for any single character in Zsh (see https://www.techrepublic.com/article/globbing-wildcard-characters-with-zsh), so `bench_bitcoin -?` will not work on systems using Zsh, such as macOS.

Since `-h` provides equivalent help functionality (as defined in https://github.com/bitcoin/bitcoin/blob/master/src/common/args.cpp#L684-L693), the `benchmarking.md` documentation has been updated to ensure compatibility with macOS.
\
2024-10-19 18:44:22 +02:00
Jon Atack
681ebcceca netinfo: rename and hoist max level constant to use in top-level help
to avoid overlooking to update the top-level help if the value of the constant changes.
2024-10-17 15:04:27 -06:00
Jon Atack
e7d307ce8c netinfo: clarify relaytxes and addr_relay_enabled help docs 2024-10-17 15:04:17 -06:00
Jon Atack
eef2a9d406 netinfo: add peer services column 2024-10-17 15:04:06 -06:00
merge-script
e8f72aefd2
Merge bitcoin/bitcoin#29877: tracing: explicitly cast block_connected duration to nanoseconds
Some checks failed
CI / test each commit (push) Has been cancelled
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Has been cancelled
CI / Win64 native, VS 2022 (push) Has been cancelled
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Has been cancelled
cd0edf26c0 tracing: cast block_connected duration to nanoseconds (0xb10c)

Pull request description:

  When the `validation:block_connected` tracepoint was introduced in 8f37f5c2a5, the connect block duration was passed in microseconds `µs`. By starting to use steady clock in fabf1cdb20 this changed to nanoseconds `ns`. As the test only checked if the duration value is `> 0` as a plausibility check, this went unnoticed. This was detected this when setting up monitoring for block validation time as part of the Great Consensus Cleanup Revival discussion.

  This change casts the duration explicitly to nanoseconds, updates the documentation, and adds a check for an upper bound to the tracepoint interface tests. The upper bound is quite lax as mining the block takes much longer than connecting the empty test block. It's however able to detect a duration passed in an incorrect unit (1000x off).

  A previous version of this PR casted the duration to microseconds `µs` - however, as the last three major releases have had the duration as nanoseconds (and this went unnoticed), we assume that this is the API now and changeing it back to microseconds would break the API again. See also https://github.com/bitcoin/bitcoin/pull/29877#issuecomment-2067867597

ACKs for top commit:
  maflcko:
    re-lgtm ACK cd0edf26c0
  laanwj:
    re-ACK cd0edf26c0

Tree-SHA512: 54a1eea0297e01c07c2d071ffafbf97dbd080f763e1dc0014ff086a913b739637c1634b1cf87c90b94a3c2f66006acfaada0414a15769cac761e03bc4aab2a77
2024-10-17 16:30:12 +01:00
Antoine Poinsot
86e2a6b749 [test] A non-standard transaction which is also consensus-invalid should return the consensus error 2024-10-17 10:58:42 +01:00
Hennadii Stepanov
4d3da08d1b
guix: Enable CET for glibc package 2024-10-17 09:32:39 +01:00
merge-script
a38603456e
Merge bitcoin/bitcoin#31100: doc: remove dependency install instructions from win docs
Some checks are pending
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
184f12c154 doc: remove dependency install instructions from win docs (fanquake)

Pull request description:

  This duplicates what is in depends, and is outdated.

  Closes #31090.

ACKs for top commit:
  maflcko:
    lgtm ACK 184f12c154
  jarolrod:
    ACK 184f12c154
  BrandonOdiwuor:
    ACK 184f12c154

Tree-SHA512: 089c9ff91c501c22ec1b9d5925a2b8c6cd1ea9ac2b75dd6a8c5fe75cf2f0090d808842cb321017894d2da70a30a87dbc1c4c481771d3c4aba13ce44244fcf392
2024-10-17 09:19:28 +01:00
Ryan Ofsky
90b405516f Update libmultiprocess library
Add recent changes and fixes for shutdown bugs.

https://github.com/chaincodelabs/libmultiprocess/pull/111: doc: Add internal design section
https://github.com/chaincodelabs/libmultiprocess/pull/113: Add missing include to util.h
https://github.com/chaincodelabs/libmultiprocess/pull/116: shutdown bugfix: destroy RPC system before running cleanup callbacks
https://github.com/chaincodelabs/libmultiprocess/pull/118: shutdown bugfix: Prevent segfault in server if connection is broken during long function call
https://github.com/chaincodelabs/libmultiprocess/pull/119: cmake: avoid libatomic not found error on debian
2024-10-16 12:13:27 -04:00
merge-script
479715e9db
Merge bitcoin/bitcoin#30996: doc: update signet documentation related to build directories
Some checks are pending
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
a647d4400d doc: update signet documentation related to build directories (Torkel Rogstad)

Pull request description:

  While setting up my own signet I noticed that the binary paths in the documentation for this is out of date, after build artifacts moved to the `build` directory. This PR mimics what happened in #30741

ACKs for top commit:
  maflcko:
    lgtm ACK a647d4400d
  pablomartin4btc:
    ACK a647d4400d
  tdb3:
    Code review and light test ACK a647d4400d

Tree-SHA512: ac7c3806e0ff65860c41d7b7bdad538368d8a6d8d289c10f9714804f963bafd3a9658301b6697f110f5462a92826b62770963508d5eebf88bf9a0a8442d9f72d
2024-10-16 16:58:31 +01:00
merge-script
99e041f86f
Merge bitcoin/bitcoin#31099: doc: drop macOS LLVM install instructions
79aa8280b2 doc: drop LLVM install instructions (fanquake)

Pull request description:

  Followup from #31048.

ACKs for top commit:
  maflcko:
    lgtm ACK 79aa8280b2
  hebasto:
    ACK 79aa8280b2.

Tree-SHA512: 9404845cc9a17f85363ce893addadaaba839b4a37e1e3e64ad4a50eb237ffb78636970480ff2f486ff5bd1b3dba9b85bf3d6654a680b11c6832d17daf6dd6c0a
2024-10-16 14:51:35 +01:00
merge-script
21e2f06a1c
Merge bitcoin/bitcoin#31067: test: Print CompletedProcess object on error
fa43c4f93c test: Print CompletedProcess object on error (MarcoFalke)

Pull request description:

  It would be good to know the output on `Error parsing command output`. Otherwise test failures are meaningless: https://github.com/bitcoin/bitcoin/issues/30792#issuecomment-2325911157

  Fix it by just printing the full `CompletedProcess` object.

  Also, use the modern `subprocess.run` to simplify the code.

ACKs for top commit:
  BrandonOdiwuor:
    Code Review ACK fa43c4f93c
  laanwj:
    This contains some useful information, so ACK fa43c4f93c

Tree-SHA512: ae7c1cb1f48af2a6feae6d1a5a967c0720f6c6675c1ce20ace7cac18c00f3d4069b8abcc58204855e92ff5303158b9a942bab3b71acae0737768d941a5773c91
2024-10-16 14:50:49 +01:00
fanquake
184f12c154
doc: remove dependency install instructions from win docs
This duplicates what is in depends, and is outdated.
2024-10-16 14:47:11 +01:00
Ava Chow
dea9fb9a8b
Merge bitcoin/bitcoin#30093: optimization: reserve memory allocation for transaction inputs/outputs
ec585f11c3 Reserve space for transaction inputs in CreateTransactionInternal (Lőrinc)
c76aaaf900 Reserve space for transaction outputs in CreateTransactionInternal (Lőrinc)

Pull request description:

  Reserved memory for the transaction inputs and outputs.

  Split out of https://github.com/bitcoin/bitcoin/pull/30050/files#r1597631104

ACKs for top commit:
  achow101:
    ACK ec585f11c3
  TheCharlatan:
    ACK ec585f11c3
  stickies-v:
    ACK ec585f11c3

Tree-SHA512: de399fb19824423467f48af64aa57f41a23cdd00eb17461e0131e4deafdd15e0d2daebf6a0a7ac7728b2fb486b2a54f1a7ef26bbe823c56b2a09f892f6b9a581
2024-10-16 09:20:23 -04:00
fanquake
79aa8280b2
doc: drop LLVM install instructions 2024-10-16 14:20:21 +01:00
Ava Chow
2123c94448
Merge bitcoin/bitcoin#30527: Bump python minimum supported version to 3.10
fa1b139d17 Bump python minimum supported version to 3.10 (MarcoFalke)

Pull request description:

  All supported operating systems ship with python 3.10 (or later), so bumping the minimum should not cause any issues. A bump will allow new code to use new python features.

  For reference:
  * https://packages.debian.org/bookworm/python3
  * https://packages.ubuntu.com/jammy/python3
  * FreeBSD 13/14 ships with 3.11
  * CentOS-like 8/9 ships with 3.11/3.12 (via `appstream`)
  * OpenSuse Tumbleweed ships with all python versions, e.g. https://software.opensuse.org/package/python312-base

  This is for Bitcoin Core 29.0 in 2025 (next year), not the soon upcoming 28.0 this fall.

ACKs for top commit:
  achow101:
    ACK fa1b139d17
  AngusP:
    ACK fa1b139d17
  l0rinc:
    ACK fa1b139d17
  stickies-v:
    ACK fa1b139d17

Tree-SHA512: 910b202ff2374bb21c93e5249a151fd2c8f63759bed5659676b0e467afa6e8e977be797c3fccceca303c82575e11ec236a8d7c5880910e4314b3875b820e7e8a
2024-10-16 08:35:26 -04:00
merge-script
538ccaed00
Merge bitcoin/bitcoin#31048: build: Bump minimum supported macOS to 13.0
Some checks are pending
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
a0e089a71d build: Bump minimum supported macOS to 13.0 (Hennadii Stepanov)

Pull request description:

  Running Bitcoin Core on unsupported OSes may expose users to security issues.

  macOS Monterey 12 received its final security update ([12.7.6](https://support.apple.com/en-us/100100)) on July 2024. Apple classifies the hardware that can run macOS 12 at most as ["obsolete worldwide"](https://support.apple.com/en-us/102772).

ACKs for top commit:
  maflcko:
    lgtm ACK a0e089a71d
  m3dwards:
    ACK a0e089a71d
  itornaza:
    reACK a0e089a71d

Tree-SHA512: b219730de87bcb2bcb40a972e910f516c739a538b0741fc245d23df04650f7e2f5774c38c1d1c9c053ed9e2a377488002feb708e8c7cba9c0070b81169719b10
2024-10-16 11:53:32 +01:00
dergoegge
f859ff8a4e [validation] Improve script check error reporting 2024-10-16 10:18:48 +01:00
MarcoFalke
ddddbac9c1
fees: Pin required version to 149900
There is no need to compare the field to CLIENT_VERSION. Either the
format remains compatible and the value can be left unchanged, or it is
incompatible and the value needs to be increased to at least 289900+1.
2024-10-16 11:17:33 +02:00
MarcoFalke
fa5126adcb
fees: Pin "version that wrote" to 0
The field is unused and there is no need to tie it to CLIENT_VERSION and
increase it, if the format does not change.
2024-10-16 11:12:53 +02:00
merge-script
0ca1d1bf69
Merge bitcoin/bitcoin#31092: doc: fuzz: remove Honggfuzz NetDriver instructions
Some checks are pending
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
d823ba6e20 doc: fuzz: remove Honggfuzz NetDriver instructions (brunoerg)

Pull request description:

  Remove Honggfuzz NetDriver instructions from the documentation since it has not been useful for us. See https://github.com/bitcoin/bitcoin/issues/30957 and https://github.com/bitcoin/bitcoin/pull/31012.

ACKs for top commit:
  maflcko:
    lgtm ACK d823ba6e20
  marcofleon:
    ACK d823ba6e20

Tree-SHA512: f63fde1076d523dc5e511ef868ca3c1ea2e38fe7df56ae275f33209581f96452d86effedb54d9b0ee8b7a1d492b610799807a727d8bd81e2286d31db4aa68731
2024-10-15 12:17:53 +01:00
brunoerg
d823ba6e20 doc: fuzz: remove Honggfuzz NetDriver instructions 2024-10-15 07:46:54 -03:00
merge-script
15563d3388
Merge bitcoin/bitcoin#30859: doc: cmake: prepend "build" to functional/test_runner.py
e64b2f1a16 doc: cmake: prepend and explain "build/" where needed (Larry Ruane)

Pull request description:

  This is a small follow-on to #30741, prepend `build/` to the path for `test_runner.py`.

ACKs for top commit:
  jonatack:
    ACK e64b2f1a16
  maflcko:
    lgtm ACK e64b2f1a16
  tdb3:
    re ACK e64b2f1a16

Tree-SHA512: 80943d4f342987bf060adacb1c7db2e9ff8de5a6da592846ba23f230281d3a5b306162c4c86e61739a29323eaa4abf09f69f41302996d5809f448e5788a74a87
2024-10-15 11:10:20 +01:00
merge-script
2ac5ba24bf
Merge bitcoin/bitcoin#31083: doc: add doxygen for m_args in tests
1fe1b3ba8e doc: doxygen comment for m_args usage in tests (willcl-ark)

Pull request description:

  Closes: #25055

  Add a doxygen comment to the `m_args` member in the unit test framework, clarifying its purpose and providing usage guidelines.

ACKs for top commit:
  maflcko:
    lgtm ACK 1fe1b3ba8e
  brunoerg:
    ACK 1fe1b3ba8e

Tree-SHA512: 9b8dc30e3b0d26c0cecec4599dc5addca519965603073d02f37fa0a46c488659958e327d9c25da8acdb4bb9b082a64455baaffb406ac11827d7f56a094522fce
2024-10-15 11:04:49 +01:00
Hennadii Stepanov
a0e089a71d
build: Bump minimum supported macOS to 13.0
Running Bitcoin Core on unsupported OSes may expose users to security
issues.

macOS Monterey 12 received its final security update (12.7.6) on July
2024. Apple classifies the hardware that can run macOS 12 at most as
"obsolete worldwide".
2024-10-15 10:18:48 +01:00
willcl-ark
1fe1b3ba8e doc: doxygen comment for m_args usage in tests
Closes: #25055

Add doxygen comment to the m_args member in the unit test framework,
clarifying its purpose.
2024-10-13 09:05:21 +01:00
Hennadii Stepanov
82e16e6983
cmake: Refactor install kernel dependencies 2024-10-12 16:54:08 +02:00
TheCharlatan
42e6277987
build: Add static libraries to Kernel install component 2024-10-12 16:48:42 +02:00
Larry Ruane
e64b2f1a16 doc: cmake: prepend and explain "build/" where needed 2024-10-11 11:24:21 -06:00
merge-script
48cf3da636
Merge bitcoin/bitcoin#30970: build: Add missing USDT header dependency to kernel
Some checks failed
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Has been cancelled
CI / test each commit (push) Has been cancelled
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Has been cancelled
CI / Win64 native, VS 2022 (push) Has been cancelled
ccd10fdb97 build: Add missing USDT header dependency to kernel (Cory Fields)

Pull request description:

  Noticed while testing a branch that replaces `boost::multi_index` with a custom replacement.

  Currently depends builds pick up usdt and boost from the same path, and because boost always exists, the usdt path is implicitly included. So without boost, USDT isn't found.

  An alternative to this would be to disable USDT for the kernel. I'd be open to either approach.

ACKs for top commit:
  hebasto:
    ACK ccd10fdb97, the diff looks correct.
  fanquake:
    ACK ccd10fdb97

Tree-SHA512: 2f91b8d5c8b169f7b72323d9163b5201f606ccdab95de7085847d2a672d10f940f69642c2528226a5efa4c589af24ca3bb9dd909eed0993e4cecd9689b4bed2f
2024-10-11 13:46:40 +01:00
merge-script
d8b835cf18
Merge bitcoin/bitcoin#31070: contrib: fix typos in check-deps.sh
Some checks are pending
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
da8824ba30 Fix typos in check-deps.sh (omahs)

Pull request description:

  Fix typos in check-deps.sh

ACKs for top commit:
  maflcko:
    lgtm ACK da8824ba30

Tree-SHA512: 217d18ff3f032f52730ca3bbfa2d874e88bfcd1289135fd24f7b836a02a69ef9bee759bdb88201c5a36315b6fca518d78fdb5ad462510ae862ad2ebfb7273f02
2024-10-11 09:59:09 +01:00
omahs
da8824ba30
Fix typos in check-deps.sh 2024-10-11 10:26:34 +02:00
MarcoFalke
fa43c4f93c
test: Print CompletedProcess object on error 2024-10-10 21:16:52 +02:00
glozow
489e5aa3a2
Merge bitcoin/bitcoin#30857: cluster mempool: extend DepGraph functionality
Some checks are pending
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
0b3ec8c59b clusterlin: remove Cluster type (Pieter Wuille)
1c24c62510 clusterlin: merge two DepGraph fuzz tests into simulation test (Pieter Wuille)
0606e66fdb clusterlin: add DepGraph::RemoveTransactions and support for holes in DepGraph (Pieter Wuille)
75b5d42419 clusterlin: make DepGraph::AddDependency support multiple dependencies at once (Pieter Wuille)
abf50649d1 clusterlin: simplify DepGraphFormatter::Ser (Pieter Wuille)
eaab55ffc8 clusterlin: rework DepGraphFormatter::Unser (Pieter Wuille)
5901cf7100 clusterlin: abstract out DepGraph::GetReduced{Parents,Children} (Pieter Wuille)

Pull request description:

  Part of cluster mempool: #30289

  This adds:
  * `DepGraph::AddDependencies` to add 0 or more dependencies to a single transaction at once (identical to calling `DepGraph::AddDependency` once for each, but more efficient).
  * `DepGraph::RemoveTransactions` to remove 0 or more transactions from a depgraph.
  * `DepGraph::GetReducedParents` (and `DepGraph::GetReducedChildren`) to get the (reduced) direct parents and children of a transaction in a depgraph.

  After which, the `Cluster` type is removed.

  This is the result of fleshing out the design for the "intermediate layer" ("TxGraph", no PR yet) between the cluster linearization layer and the mempool layer. My earlier thinking was that TxGraph would store `Cluster` objects (vectors of pairs of `FeeFrac`s and sets of parents), and convert them to `DepGraph` on the fly whenever needed. However, after more consideration, it seems better to have TxGraph store `DepGraph` objects, and manipulate them directly without constantly re-creating them. This requires `DepGraph` to have some additional functionality.

  The bulk of the complexity here is the addition of `DepGraph::RemoveTransactions`, which leaves the remaining transactions' positions within the `DepGraph` untouched (we want existing identifiers to remain valid), so this implies that graphs can now have "holes" (positions that are unused, but followed by positions that are used). To enable that, an extension of the fuzz/test serialization format `DepGraphFormatter` is included to deal with such holes.

ACKs for top commit:
  sdaftuar:
    reACK 0b3ec8c59b
  instagibbs:
    reACK 0b3ec8c59b
  ismaelsadeeq:
    reACK 0b3ec8c59b
  glozow:
    ACK 0b3ec8c59b, reviewed range-diff from  aab53ddcd8fcbc3c0be0da9383f8e06abe5badda and `clusterlin_depgraph_sim`

Tree-SHA512: a804b7f26d544c5cb0847322e235c810525cb0607737be6116c3156d582da3ba3352af8ea48e74eed5268f9c3eca63b30181d01b23a6dd0be1b99191f81cceb0
2024-10-10 10:40:44 -04:00
merge-script
9f45062b9b
Merge bitcoin/bitcoin#30937: build: scripted-diff: drop config/ subdir for bitcoin-config.h
882f736d0a doc: lint: correct outdated comment (s/Makefile.am/CMakeLists.txt/) (Sebastian Falbesoner)
1786be7b4a scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h (Sebastian Falbesoner)

Pull request description:

  This PR is a follow-up to #30856, as suggested in comment https://github.com/bitcoin/bitcoin/pull/30856#issuecomment-2356804690. With the scripted diff, review should be fairly trivial, but it could still be seen as controversial due to the large number of files (78 in total) being touched.

ACKs for top commit:
  fanquake:
    ACK 882f736d0a

Tree-SHA512: 2e6cae4590f660e741edf84df456168b8b1f3861d381cfebf6647bb0a303c26bf7b969a837e0058e59bf852d220990dd8f5f400d8975fd0fab106d0507a70c9b
2024-10-10 13:33:38 +01:00
Sebastian Falbesoner
882f736d0a doc: lint: correct outdated comment (s/Makefile.am/CMakeLists.txt/) 2024-10-10 12:25:14 +02:00
Sebastian Falbesoner
1786be7b4a scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h
Follow-up for PR #30856, commit 0dd66251.

-BEGIN VERIFY SCRIPT-
sed -i "s|config/bitcoin-config\.h|bitcoin-build-config.h|g" $(git grep -l config/bitcoin-config\.h)
sed -i "s|bitcoin-config\.h|bitcoin-build-config.h|g" $(git grep -l "bitcoin-config\.h" ./src ./test ./cmake)
git mv ./cmake/bitcoin-config.h.in ./cmake/bitcoin-build-config.h.in
-END VERIFY SCRIPT-
2024-10-10 12:22:12 +02:00
TheCharlatan
3a4a788ee0
init: Correct coins db cache size setting
The chainstate caches are currently re-balanced on startup
even in the non-assumeutxo case, leading to the database being
needlessly re-opened and its cache re-allocated.

Similar to `InitCoinsCache` and `m_coinstip_cache_size_bytes` the
`m_coinsdb_cache_size_bytes` should be set in `InitCoinsDB`.

Together with only conservatively setting the cache values when a
assumeutxo chainstate is present, this allows for skipping the cache
re-balance during initialization in the normal non-assumeutxo case.
2024-10-10 11:27:41 +02:00
Ava Chow
0c2c3bb3f5
Merge bitcoin/bitcoin#30955: Mining interface: getCoinbaseMerklePath() and submitSolution()
Some checks are pending
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / test each commit (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
525e9dcba0 Add submitSolution to BlockTemplate interface (Sjors Provoost)
47b4875ef0 Add getCoinbaseMerklePath() to Mining interface (Sjors Provoost)
63d6ad7c89 Move BlockMerkleBranch back to merkle.{h,cpp} (Sjors Provoost)

Pull request description:

  The new `BlockTemplate` interface introduced in #30440 allows for a more efficient way for a miner to submit the block solution. Instead of having the send the full block, it only needs to provide the nonce, timestamp, version fields and coinbase transaction.

  This PR introduces `submitSolution()` for that. It's currently unused.

  #29432 and https://github.com/Sjors/bitcoin/pull/48 use it to process the Stratum v2 message [SubmitSolution](https://github.com/stratum-mining/sv2-spec/blob/main/07-Template-Distribution-Protocol.md#77-submitsolution-client---server). The method should be sufficiently generic to work with alternative mining protocols (none exist that I'm aware off).

  This PR also introduces `getCoinbaseMerklePath()`, which is needed in Stratum v2 to construct the `merkle_path` field of the `NewTemplate` message (see [spec](https://github.com/stratum-mining/sv2-spec/blob/main/07-Template-Distribution-Protocol.md#72-newtemplate-server---client)). The coinbase merkle path is also used in Stratum "v1", see e.g. https://bitcoin.stackexchange.com/questions/109820/questions-on-merkle-root-hashing-for-stratum-pools

  This last function uses `BlockMerkleBranch` which was moved to the test code in #13191. The reason back then for moving it was that it was no longer used. This PR moves it back.

  This PR does not change behaviour since both methods are unused.

ACKs for top commit:
  achow101:
    ACK 525e9dcba0
  itornaza:
    Code review ACK 525e9dcba0
  tdb3:
    Code review and light test ACK 525e9dcba0
  ryanofsky:
    Code review ACK 525e9dcba0. Left minor suggestions but none are important, and looks like this could be merged as-is

Tree-SHA512: 2a6a8f5d409ff4926643193cb67702240c7c687615414371e53383d2c13c485807f65e21e8ed98515b5456eca3d9fca13cec04675814a4081467d88b849c5653
2024-10-09 20:20:09 -04:00
Ava Chow
9909a34d79
Merge bitcoin/bitcoin#30992: doc: update IBD requirements in doc/README.md
36a6d4b007 doc: update IBD requirements in doc/README.md (Mackain)

Pull request description:

  A small change to the first paragraph of the Setup part of the README that has been bugging me for a while.
  The disk space required for the Bitcoin transactions can no longer be described as "a few" hundred gigabytes.
  So I thought it was time it was changed to "several" instead.

  <!--
  *** Please remove the following help text before submitting: ***

  Pull requests without a rationale and clear improvement may be closed
  immediately.

  GUI-related pull requests should be opened against
  https://github.com/bitcoin-core/gui
  first. See CONTRIBUTING.md
  -->

  <!--
  Please provide clear motivation for your patch and explain how it improves
  Bitcoin Core user experience or Bitcoin Core developer experience
  significantly:

  * Any test improvements or new tests that improve coverage are always welcome.
  * All other changes should have accompanying unit tests (see `src/test/`) or
    functional tests (see `test/`). Contributors should note which tests cover
    modified code. If no tests exist for a region of modified code, new tests
    should accompany the change.
  * Bug fixes are most welcome when they come with steps to reproduce or an
    explanation of the potential issue as well as reasoning for the way the bug
    was fixed.
  * Features are welcome, but might be rejected due to design or scope issues.
    If a feature is based on a lot of dependencies, contributors should first
    consider building the system outside of Bitcoin Core, if possible.
  * Refactoring changes are only accepted if they are required for a feature or
    bug fix or otherwise improve developer experience significantly. For example,
    most "code style" refactoring changes require a thorough explanation why they
    are useful, what downsides they have and why they *significantly* improve
    developer experience or avoid serious programming bugs. Note that code style
    is often a subjective matter. Unless they are explicitly mentioned to be
    preferred in the [developer notes](/doc/developer-notes.md), stylistic code
    changes are usually rejected.
  -->

  <!--
  Bitcoin Core has a thorough review process and even the most trivial change
  needs to pass a lot of eyes and requires non-zero or even substantial time
  effort to review. There is a huge lack of active reviewers on the project, so
  patches often sit for a long time.
  -->

ACKs for top commit:
  achow101:
    ACK 36a6d4b007
  danielabrozzoni:
    ACK 36a6d4b007
  jonatack:
    ACK 36a6d4b007
  ismaelsadeeq:
    ACK 36a6d4b007
  tdb3:
    ACK 36a6d4b007
  itornaza:
    ACK 36a6d4b007

Tree-SHA512: c5b21aca526c0ebe5f3234bd72e4080dc64cbba0ccd2306397aafe8349bc3573773ee64ff31fafcf59ea1afc7527caaf6d7cd8fe798311d9dc11ad0cd539e21e
2024-10-09 20:01:16 -04:00
MarcoFalke
fac6cfe5ac
lint: commit-script-check.sh: echo to stderr 2024-10-09 18:00:42 +02:00
merge-script
5fb9455063
Merge bitcoin/bitcoin#31058: refactor: include the proper header rather than forward-declaring RemovalReasonToString
Some checks are pending
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
ca2e4ba352 refactor: include the proper header rather than forward-declaring RemovalReasonToString (Cory Fields)

Pull request description:

  Trivial no-op fixup.

  This was pointed out by #31053, which causes the include order to be shuffled around:

  ```
  [21:49:26.130] /ci_container_base/src/validationinterface.cpp:22:13: error: redundant 'RemovalReasonToString' declaration [readability-redundant-declaration,-warnings-as-errors]
  [21:49:26.130]    22 | std::string RemovalReasonToString(const MemPoolRemovalReason& r) noexcept;
  [21:49:26.130]       | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  [21:49:26.130] /ci_container_base/src/kernel/mempool_removal_reason.h:22:13: note: previously declared here
  [21:49:26.130]    22 | std::string RemovalReasonToString(const MemPoolRemovalReason& r) noexcept;
  [21:49:26.130]       |             ^
  ```

  I don't see any reason why the include shouldn't just be used.

ACKs for top commit:
  maflcko:
    lgtm ACK ca2e4ba352
  hebasto:
    ACK ca2e4ba352, IWYU seems [agree](https://cirrus-ci.com/task/6170839912022016):
  TheCharlatan:
    ACK ca2e4ba352

Tree-SHA512: e3584cae4f50bf2bc6c824bfaddfe683ef6a17d16138d0cbcc544b98bd64d5d7353b0826b1e8cf16e12410e27b0fcedde27100d4241b7cc194cd4465c8175a5b
2024-10-09 10:08:50 +01:00
Ava Chow
e569eb8d91
Merge bitcoin/bitcoin#30885: scripted-diff: Modernize nLocalServices naming
Some checks are pending
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
33381ea530 scripted-diff: Modernize nLocalServices to m_local_services (Fabian Jahr)

Pull request description:

  The type of the `nLocalServices` variable was changed to `std::atomic<ServiceFlags>` in #30807 and I suggested the variable name to get updated with a scripted diff along with it. It wasn't included in the PR but I am still suggesting to do it as a follow-up since I had already prepared the commit.

ACKs for top commit:
  sipa:
    utACK 33381ea530
  achow101:
    ACK 33381ea530
  furszy:
    utACK 33381ea530
  jonatack:
    ACK 33381ea530
  theStack:
    ACK 33381ea530

Tree-SHA512: 407ea9eac694f079aa5b5c1611b5874d7a0897ba6bc3aa0570be94afe1bf3a826657b6890b6597c03c063e95b9dc868f0bdfbfc41e77ec7e06f5b045bf065c71
2024-10-08 20:41:37 -04:00