32710 Commits

Author SHA1 Message Date
Hennadii Stepanov
00f8492eeb
Merge bitcoin-core/gui#547: Override BitcoinApplication::event() to handle QEvent::Quit
e7fc50681e99e3c726db2bc4d3d425ed8a0fc6b3 qt: Override BitcoinApplication::event() to handle QEvent::Quit (Hennadii Stepanov)

Pull request description:

  bitcoin-core/gui#336 introduced a regression when termination requests from a platform are not handled properly.

  This PR fixes this regression. On macOS shutdown after clicking "Quit" in Dock icon menu, and during logout works again.

  Fixes bitcoin-core/gui#545.

ACKs for top commit:
  RandyMcMillan:
    tACK e7fc50681e99e3c726db2bc4d3d425ed8a0fc6b3
  Sjors:
    tACK e7fc50681e99e3c726db2bc4d3d425ed8a0fc6b3 (rebased on master) indeed fixes the crash described in #545
  promag:
    Tested ACK e7fc50681e99e3c726db2bc4d3d425ed8a0fc6b3 on macOS 10.15 with Qt 5.15.2.

Tree-SHA512: 236a483dc0828f22999469e133b8ac9f0b6267ec2a27004c3ebaa967689ddb972ea1fa90c1dd41f3bff3d17bf571a707babcef53bd79fd711fda98cfbf120131
2022-02-22 10:35:15 +02:00
MarcoFalke
48a90c61e2
Merge bitcoin/bitcoin#24370: rpc, cli: describe quality/recency filtering in getnodeaddresses and -addrinfo
ce690847b69eb80b0232f818152dbb1db7c4c61a cli: describe quality/recency filtering in -addrinfo (Jon Atack)
7c975614c0fc6ff2084a1708a4c1f0368a4bc98f rpc: describe quality/recency filtering in getnodeaddresses (Jon Atack)

Pull request description:

  Addresses #24278.

  ```
  $ bitcoin-cli help getnodeaddresses
  getnodeaddresses ( count "network" )

  Return known addresses, after filtering for quality and recency.
  These can potentially be used to find new peers in the network.
  The total number of addresses known to the node may be higher.
  ```
  ```
  $ bitcoin-cli -help | grep -A3 addrinfo
    -addrinfo
         Get the number of addresses known to the node, per network and total,
         after filtering for quality and recency. The total number of
         addresses known to the node may be higher.
  ```

ACKs for top commit:
  mzumsande:
    Thanks, Code Review ACK ce690847b69eb80b0232f818152dbb1db7c4c61a
  prayank23:
    reACK ce690847b6

Tree-SHA512: 82d23b15e64a99411eb8e70d7267a1b4f23182fabe072e824277569d9677e392b466be63f00e3d157d7db94bbe032d53f12ad4ab30b55b7b8a629c37d80d1d8c
2022-02-21 16:44:22 +01:00
MarcoFalke
e44423c9d3
Merge bitcoin/bitcoin#24224: util: Add SaturatingAdd helper
faa7d8a3f7cba02eca7e247108a6b98ea9daf373 util: Add SaturatingAdd helper (MarcoFalke)

Pull request description:

  Seems good to have this in the repo, as it might be needed to write cleaner code. For example:

  * https://github.com/bitcoin/bitcoin/pull/24090#issuecomment-1019948200
  * https://github.com/bitcoin/bitcoin/pull/23418#discussion_r744953272
  * ...

ACKs for top commit:
  MarcoFalke:
    Added a test. Should be trivial to re-ACK with `git range-diff bitcoin-core/master fa90189cbf faa7d8a3f7`
  klementtan:
    reACK faa7d8a3f7
  vasild:
    ACK faa7d8a3f7cba02eca7e247108a6b98ea9daf373

Tree-SHA512: d0e6efdba7dfcbdd16ab4539a7f5e45a97d17792e42586c3c52caaae3fc70612dc9e364359658de5de5718fb8c2a765a59ceb2230098355394fa067a9732bc2a
2022-02-21 15:51:15 +01:00
fanquake
bd6b1d0238
Merge bitcoin/bitcoin#24263: doc: Fix gen-manpages, rewrite in Python
87f54060ffffdb56c97594efdca378bace5323df doc: Swap gen-manpages and update RC steps in release process (laanwj)
42c202893b879d1bda54624d44c90b28143fc167 doc: Fix gen-manpages, rewrite in Python (laanwj)

Pull request description:

  Rewrite the manual page generation script in Python.

  This:
  - solves '-' stripping issue (fixes #22681)
  - makes that a copyright footer is generated correctly again

  Also change the release process to swap gen-manpages and update RC steps, so that the pages will have the correct rc and/or final version.

ACKs for top commit:
  dongcarl:
    Code Review ACK 87f54060ffffdb56c97594efdca378bace5323df
  fanquake:
    ACK 87f54060ffffdb56c97594efdca378bace5323df - tested generating and opening the man pages locally, but didn't run through the release process. Will propose some changes to address consolidating the help / version output.

Tree-SHA512: 39254721ca84e4f223a321c554f2e08c36428b15019a0f9fa3eff408b4c6f1e1d74941143f4d2927427afa3ad7a7e6f999d6ec660132d817809b640a87ae9f7d
2022-02-21 14:17:40 +00:00
MarcoFalke
faa7d8a3f7
util: Add SaturatingAdd helper 2022-02-21 14:32:53 +01:00
Jon Atack
ce690847b6
cli: describe quality/recency filtering in -addrinfo
Co-authored-by: Martin Zumsande <mzumsande@gmail.com>
2022-02-21 14:16:48 +01:00
Jon Atack
7c975614c0
rpc: describe quality/recency filtering in getnodeaddresses
Co-authored-by: Martin Zumsande <mzumsande@gmail.com>
2022-02-21 14:16:34 +01:00
fanquake
2ab4fbe375
Merge bitcoin/bitcoin#24292: Revert "ci: Run fuzzer task for the master branch only"
fa27745ccbdf8df7949a2e79dba18de49dc89169 ci: Bump fuzz tasks to jammy (MarcoFalke)
fab8cd5f8764883dc48695c0e0916bae42f1cfdc Revert "ci: Run fuzzer task for the master branch only" (MarcoFalke)

Pull request description:

  This reverts commit 5a9e255e5a324e7aa0b63a9634aa3cfda9a300bd.

  I think we should attempt to maintain the fuzz tasks for release branches as well.

  If it is too difficult for one branch, it could make sense to disable it for that branch, but not for all branches unconditionally.

  Also, bump to jammy.

ACKs for top commit:
  fanquake:
    ACK fa27745ccbdf8df7949a2e79dba18de49dc89169 - we'll see how we go with the 23.x release branch.

Tree-SHA512: d6d08e7dce0884b556c51ff1896aebbbb5a805c22decd58af81a04192d19876978696017b489ec55886ddfd5c022963baaab5f11022369ae5291016826ff8017
2022-02-21 13:12:36 +00:00
MarcoFalke
1337b93f50
Merge bitcoin/bitcoin#24339: rpc: Improve RPC help by explicitly mentioning output types
c821ab8be8dffb749853c05e05cb515c11e6328a Use `GetAllOutputTypes` in `getblock` RPC function (Kiminuo)
d970a85d335202cc85f6604f794c43af6645673f Move `GetAllOutputTypes` function from `rpc/rawtransaction.cpp` to `rpc/util.{h|cpp}` (Kiminuo)

Pull request description:

  This PR attempts to replicate 0ccf9b2e55/src/rpc/rawtransaction.cpp (L547) to one other place (at the moment) so that users have better idea what RPC methods can actually return.

  I created this PR as a follow-up to the idea mentioned here https://github.com/bitcoin/bitcoin/pull/23320#discussion_r732458112 (resolved).

ACKs for top commit:
  kristapsk:
    re-ACK c821ab8be8dffb749853c05e05cb515c11e6328a

Tree-SHA512: 5ff66a41ad7c43ec769f4a99933d2d070feea7c617286d94b6f9bfa1a2547a42211915778210a89074ad4b14d99f34852cc6871efed5e6f1e2ffedd40d669386
2022-02-21 13:58:09 +01:00
fanquake
85ae549a46
Merge bitcoin/bitcoin#24137: doc: Rework generate* doc
fa30e62cc609ff29f0acaa5047d3f437cb04a67b doc: Rework generate* doc (MarcoFalke)

Pull request description:

  Hide the test-only calls and clarify the short description

ACKs for top commit:
  0xB10C:
    reACK fa30e62cc609ff29f0acaa5047d3f437cb04a67b. changes since fa3bb584dcc742a767b2141cd7324877e3cf5302 are: dropping the `immediately` + formatting the touched line and a rebase

Tree-SHA512: 07439f39660bbf144c2cc406b6010b64dcdd27150d78654fe04a36a982a519f837a0cf0f030c9f30af69c451ccf7a3b7287a275637aa81904c202029b9efc661
2022-02-21 12:19:11 +00:00
Kiminuo
c821ab8be8 Use GetAllOutputTypes in getblock RPC function 2022-02-21 12:56:43 +01:00
fanquake
72f97289c4
Merge bitcoin/bitcoin#24343: Add descriptor_tests covering tr(), and fix minor bugs
0683f377e1588758da86368f82efee765f89d890 Add tr() descriptor unit tests (Pieter Wuille)
4b2e31a7ae630e68735e9c8e32f1df422ef4aff0 Bugfix: make ToPrivateString work with x-only keys (Pieter Wuille)
18ad54c3b21804ad540631dd4527cbad6d6ccc75 Bugfix: set x-only flag when inferring pk() inside tr() (Pieter Wuille)

Pull request description:

  This fixes two bugs in the current logic for `tr()` descriptors:
  * ToPrivateString does not always work, because the provided private key may mismatch the parity of the x-only public key.
  * The descriptors inferred for `pk()` inside `tr()` have the wrong x-only flag, leading to such descriptors generating the wrong scriptPubKey (roundtripping through ToString does fix it however, so this seems unobservable in the current code).

  These were discovered while adding unit tests to descriptor_tests that cover various aspects of `tr()` descriptors, which are now also added here.

ACKs for top commit:
  achow101:
    ACK 0683f377e1588758da86368f82efee765f89d890
  instagibbs:
    ACK 0683f377e1
  jonatack:
    Code review ACK 0683f377e1588758da86368f82efee765f89d890

Tree-SHA512: fc0e11b45da53054a108effff2029d67b64e508b160a6e22e00c98b506c39ec12ccc95afd21ea68a6c691eb62930afc7af18908f2fa3a954d102afdc67bc355a
2022-02-21 10:16:42 +00:00
MarcoFalke
fa30e62cc6
doc: Rework generate* doc
Can be reviewed with --word-diff-regex=. --ignore-all-space
2022-02-21 11:02:20 +01:00
MarcoFalke
cf22191fd8
Merge bitcoin/bitcoin#24072: doc: fix wording of alertnotify to match behaviour
6981de4435573ad44ee53fd5efc10894866ed2f9 doc: fix wording of alertnotify (willcl-ark)

Pull request description:

  The documentation of the `alertnotify` startup option no longer matches the implementation.

  Currently the alert is only triggered by `DoWarning` (as part of `CChainstate::UpdateTip` when blocks containing unknown versionbits are detected on the network, indicating that there may be an upcoming softfork which you don't know about), but not when we see a "really long fork":

  2825c41a61/src/validation.cpp (L2418-L2433)

  I think it would be desirable in a follow-up PR to implement the logic to alert on a (really) long fork, but not to alert for "partition detection" (abnormally slow/fast blocks). `PartitionChecker` code was removed in ab8be98fdb25b678a8cd7e89adf06d1b1f6bdd62

ACKs for top commit:
  josibake:
    ACK 6981de4435
  achow101:
    ACK 6981de4435573ad44ee53fd5efc10894866ed2f9

Tree-SHA512: ea124f53ca1db803ba93d649f4bc983484c47fb5fe7fa61a8eb32fcbc7425f67d8578e66a6ba70202e13868fe8add0103306dede3b1edd1d3261ffb9c1042b87
2022-02-21 08:16:31 +01:00
MarcoFalke
4acf2332d4
Merge bitcoin/bitcoin#24376: doc: bitcoin-wallet fixes (help output and code comment)
62cc138ecb9cc7afcbe6fdb42b060a8f149826de Rename wallet-tool to bitcoin-wallet in code comment (Kristaps Kaupe)
0db3ad3ba41a76dff80bcb5f292e587da400ebf1 Mention -signet in bitcoin-wallet help output (Kristaps Kaupe)

Pull request description:

  * Mention `-signet` in sentence where there is already `-testnet/-signet` in help output.
  * Rename `wallet-tool` to `bitcoin-wallet` in single remaining place in code comments (was already done in #17648 at other places).

ACKs for top commit:
  RandyMcMillan:
    tACK 62cc138ecb

Tree-SHA512: c5df7811b8200f61943908dcf3b2b788fe991bf00bef28f069ab8784924556ffd5d86fc0ba2ad0b3c3f9be2ba73a34bc67059d7c057bba646c1801ffa3cb2070
2022-02-21 08:14:44 +01:00
MarcoFalke
abaf943477
Merge bitcoin/bitcoin#24231: streams: Fix read-past-the-end and integer overflows
fa1b89a6bdbab50bdb0504782afd4bb3375d1b57 scripted-diff: Rename nReadPos to m_read_pos in streams.h (MarcoFalke)
fa56c79df91e5d87533af38b64f4f4148a48a276 Make CDataStream work properly on 64-bit systems (MarcoFalke)
fab02f799194c75af7def3a2ab45c443b75de230 streams: Fix read-past-the-end and integer overflows (MarcoFalke)

Pull request description:

  This is a follow-up to commit e26b62093ae21e89ed7d36a24a6b863f38ec631d with the following fixes:

  * Fix unsigned integer overflow in `ignore()`, when `nReadPos` wraps.
  * Fix unsigned integer overflow in `read()`, when `nReadPos` wraps.
  * Fix read-past-the-end in `read()`, when `nReadPos` wraps.

  This shouldn't be remote-exploitable, because it requires a stream of more than 1GB of size. However, it might be exploitable if the attacker controls the datadir (I haven't checked).

  A unit test for the overflow in `ignore()` looks like following. It is left as an excercise to the reader to replace `foo.ignore(7)` with the appropriate call to `read()` to reproduce the overflow and read-error in `read()`.

  ```diff
  diff --git a/src/test/coins_tests.cpp b/src/test/coins_tests.cpp
  index 922fd8e513..ec6ea93919 100644
  --- a/src/test/coins_tests.cpp
  +++ b/src/test/coins_tests.cpp
  @@ -534,6 +534,20 @@ BOOST_AUTO_TEST_CASE(ccoins_serialization)
       } catch (const std::ios_base::failure&) {
       }

  +    CDataStream foo{0, 0};
  +    auto size{std::numeric_limits<uint32_t>::max()};
  +    foo.resize(size);
  +    BOOST_CHECK_EQUAL(foo.size(), size);
  +    foo.ignore(std::numeric_limits<int32_t>::max());
  +    size -= std::numeric_limits<int32_t>::max();
  +    BOOST_CHECK_EQUAL(foo.size(), size);
  +    foo.ignore(std::numeric_limits<int32_t>::max());
  +    size -= std::numeric_limits<int32_t>::max();
  +    BOOST_CHECK_EQUAL(foo.size(), size);
  +    BOOST_CHECK_EQUAL(foo.size(), 1);
  +    foo.ignore(7); // Should overflow, as the size is only 1
  +    BOOST_CHECK_EQUAL(foo.size(), uint32_t(1 - 7));
  +
       // Very large scriptPubKey (3*10^9 bytes) past the end of the stream
       CDataStream tmp(SER_DISK, CLIENT_VERSION);
       uint64_t x = 3000000000ULL;
  ```

ACKs for top commit:
  klementtan:
    Code Review ACK fa1b89a6bdbab50bdb0504782afd4bb3375d1b57:

Tree-SHA512: 67f0a1baafe88eaf1dc844ac55b638d5cf168a18c945e3bf7a2cb03c9a5976674a8e3af2487d8a2c3eae21e5c0e7a519c8b16ee7f104934442e2769d100660e9
2022-02-21 08:09:18 +01:00
MarcoFalke
3de5fcc94f
Merge bitcoin/bitcoin#24296: ci: use Ubuntu Jammy for Windows cross-compilation CI
a1515cdd9683942d733ff509b785cb3ca73c7a30 ci: use Ubuntu Jammy for Windows CI (fanquake)

Pull request description:

  This means we'll compile using [GCC 10.3.x](https://packages.ubuntu.com/jammy/g++-mingw-w64) and [mingw-w64 8.0.0](https://packages.ubuntu.com/jammy/mingw-w64) which better matches our Guix release environment.

ACKs for top commit:
  MarcoFalke:
    cr ACK a1515cdd9683942d733ff509b785cb3ca73c7a30
  hebasto:
    ACK a1515cdd9683942d733ff509b785cb3ca73c7a30, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: a57cce1874324c9dd00e5d8989996d214facbdd561440471c15e6cc1808bca1c6fd758abe7a1b87378b2e7f9c25e7c9d8242df911cd1ef6cfbe49718adc3be5d
2022-02-21 07:55:36 +01:00
MarcoFalke
7cc39b1838
Merge bitcoin/bitcoin#24347: rpc: Fix implicit-integer-sign-change in verifychain
fa8dad0e078c577d740a9667636733957586c035 rpc: Fix implicit-integer-sign-change in verifychain (MarcoFalke)

Pull request description:

  It doesn't really make sense to treat `DEFAULT_CHECKLEVEL` as unsigned as long as `VerifyDB` accepts a signed integer.

  Making it signed also avoids a cast round trip from signed->unsigned->signed in the RPC.

ACKs for top commit:
  luke-jr:
    utACK fa8dad0e078c577d740a9667636733957586c035
  theStack:
    Code-review ACK fa8dad0e078c577d740a9667636733957586c035

Tree-SHA512: 75499dbe4ace2962792e5fbec7defb10c25fdbbfde951d5e542a91daa880cc50395da0287173e2c84a28e18267c74af7b44b9f38ce364bcb0216c402f65b7641
2022-02-21 07:52:57 +01:00
fanquake
5f44c5c428
Merge bitcoin/bitcoin#24133: index: Improve robustness of coinstatsindex at restart
820c03aff5295fff68a4577aa51667198036e372 index: check muhash is in sync on coinstatsindex launch (Fabian Jahr)
38ed58b8503f2809e555036f4e98ff9b40a950c8 index: remove txindex references from base index (Fabian Jahr)

Pull request description:

  This change lets the `coinstatsindex` fail loudly in case the internal `muhash` state differs from the last finalized output saved on disk, which would indicate that the `muhash` state somehow got out of sync. This should generally not happen since both are written to disk in a batch but #24076 seems to indicate that the might still be an issue.

  Since #24076 so far can not be reproduced reliably, the issue should not be closed yet. Further investigation and testing needs to be done.

ACKs for top commit:
  Sjors:
    re-ACK 820c03aff5295fff68a4577aa51667198036e372
  mzumsande:
    re-ACK 820c03aff5295fff68a4577aa51667198036e372
  ryanofsky:
    Code review ACK 820c03aff5295fff68a4577aa51667198036e372. Good to catch the error earlier

Tree-SHA512: 3c985d7152698d25bad95d4ad512ff87dff13fabef790589c5a6cf93ca4251ad599e12feb7251a084503e2a213b022eaacfbaaa601464114ad372b029f64f204
2022-02-20 11:30:42 +00:00
fanquake
ffcbaf569e
Merge bitcoin/bitcoin#24369: util: Add missing rseq to syscall sandbox
6c4fd36089d016447c8199d752a328979f0d56d5 util: Add missing rseq to syscall sandbox (laanwj)

Pull request description:

  Fixes #24368.

ACKs for top commit:
  prusnak:
    Approach ACK 6c4fd36

Tree-SHA512: fc01b99483581280fc5dcbd3367975677849eadf2aabb66850dd0fa40bba9c3979c67d96427c1f4feff948b68744797c4a3ec0a12fc983d91642da794fcea824
2022-02-20 11:29:29 +00:00
fanquake
2b0735d183
Merge bitcoin/bitcoin#23907: tracing: utxocache tracepoints follow up for #22902
799968e8b38833dc7fd7b6d488a66a14580ef674 tracing: misc follow-ups to 22902 (0xb10c)
36a65847033540cf2203252c7baf42bc5ec97579 tracing: correctly scope utxocache:flush tracepoint (Arnab Sen)

Pull request description:

  This PR is a follow-up to the [#22902](https://github.com/bitcoin/bitcoin/pull/22902).

  Previously, the tracepoint `utxocache:flush` was called, even when it was not flushing. So, the tracepoint is now scoped to write only when coins cache to disk.

ACKs for top commit:
  0xB10C:
    ACK 799968e8b38833dc7fd7b6d488a66a14580ef674

Tree-SHA512: ebb096cbf991c551c81e4339821f10d9768c14cf3d8cb14d0ad851acff5980962228a1c746914c6aba3bdb27e8be53b33349c41efe8bab5542f639916e437b5f
2022-02-20 11:27:54 +00:00
fanquake
98b9d607a8
Merge bitcoin/bitcoin#24390: test: Remove suppression no longer needed with headers-only Boost.Test
81738d2881253f28b69666ada2a01ebb353f503a test: Remove suppression no longer needed with headers-only Boost.Test (Hennadii Stepanov)

Pull request description:

  It appears, that moving to [headers-only](https://github.com/bitcoin/bitcoin/pull/24301) Boost.Test makes the removed suppression unneeded even without [bumping](https://github.com/bitcoin/bitcoin/pull/24383) boost version.

ACKs for top commit:
  MarcoFalke:
    cr ACK 81738d2881253f28b69666ada2a01ebb353f503a

Tree-SHA512: e60443f79a2e38cc78fceeff5c2956d622e8a10730129f9c27c14aef59bc6fa0894b8011e6191530443bf3165f78da978bc08ad04248ddb65e2da373264afa6a
2022-02-19 19:54:20 +00:00
Hennadii Stepanov
81738d2881
test: Remove suppression no longer needed with headers-only Boost.Test 2022-02-19 12:40:00 +02:00
MarcoFalke
28aa0e3ca0
Merge bitcoin/bitcoin#24385: build: remove boost dep from libmultiprocess
07dcf1a76e34a6f7c919e7d5c57fa61caea6007b build: remove boost dep from libmultiprocess (fanquake)

Pull request description:

  Looks like this hasn't been needed since https://github.com/chaincodelabs/libmultiprocess/pull/25 and was just missed in #19160.

ACKs for top commit:
  ryanofsky:
    Code review ACK 07dcf1a76e34a6f7c919e7d5c57fa61caea6007b. Should probably wait for GUIX build results, but I think this should be fine
  hebasto:
    ACK 07dcf1a76e34a6f7c919e7d5c57fa61caea6007b

Tree-SHA512: 7988efd4aaf6ad512d60cfd33f350df56090daf88aac3aed2a1d400e80bc723dc27d27f5fa5d75359f9fae60d04b87d4b120d4e79e3079df8631956ab6c3b83c
2022-02-19 11:22:09 +01:00
MarcoFalke
a6c3da131c
Merge bitcoin/bitcoin#24350: Primitives: Correct CTransaction deserialization docstring
d4b3483cece9c27d58e4026df35725655ce06cf5 Primitives: Correct CTransaction deserialization docstring (TheCharlatan)

Pull request description:

  Since https://github.com/bitcoin/bitcoin/pull/8589 CTxWitness was removed and instead replaced with CScriptWitness inside each CTxIn.

ACKs for top commit:
  w0xlt:
    ACK d4b3483

Tree-SHA512: 02bb73e8a7d1fc449e4776a162009261baecc573837fade74ad7d76b3cd63200424e02fd0abd000c63706072f2ab3c95d3053139495b81347463f43e56192ca9
2022-02-19 09:35:10 +01:00
MarcoFalke
5d254a234d
Merge bitcoin/bitcoin#24384: ci: remove boost_cxxflags from MSAN CIs
7e02adf78d8a5816ec1490d0528a625d149b7d1e ci: add missing sqlite_cflags to MSAN fuzz job (fanquake)
54d817c5b9f6adbcd19d24ce9bee6751b9cd0fd2 ci: remove boost_cxxflags from MSAN CIs (fanquake)

Pull request description:

  No-longer needed after #24301.
  Add missing sqlite_cflags.

ACKs for top commit:
  MarcoFalke:
    cr ACK 7e02adf78d8a5816ec1490d0528a625d149b7d1e

Tree-SHA512: df7588e1380661d2777f2d2d0ba25546eb25fb9e398e37d69d888f5e5250abbbeabc5b92df6a7a781743ad0b7ab5acb9b0110de247f8dbb1b1862b424bcbeadd
2022-02-18 17:47:58 +01:00
fanquake
a1515cdd96
ci: use Ubuntu Jammy for Windows CI
This means we'll compile using GCC 10.3.x and mingw-w64 8.0.0 which
better matches our Guix release environment.
2022-02-18 15:19:05 +00:00
0xb10c
799968e8b3 tracing: misc follow-ups to 22902
- mention 'Lost X events' workaround
- clarify flush tracepoint docs
- fix typo in tracepoint context
- clarify flush for prune
    The documentation and examples for the `fFlushForPrune` argument
    of the utxocache flush tracepoint weren't clear without looking
    at the code.

    See these comments: https://github.com/bitcoin/bitcoin/pull/22902#issuecomment-987094612

- doc: note that there can be temporary UTXO caches
    Bitcoin Core uses temporary clones of it's _main_ UTXO cache in some
    places. The utxocache:add and :spent tracepoints are triggered when
    temporary caches are changed too. This is documented.
2022-02-18 20:48:52 +05:30
fanquake
07dcf1a76e
build: remove boost dep from libmultiprocess
Looks like this hasn't been needed since
https://github.com/chaincodelabs/libmultiprocess/pull/25 and was just
missed in #19160.
2022-02-18 15:13:09 +00:00
fanquake
7e02adf78d
ci: add missing sqlite_cflags to MSAN fuzz job
These are present in the other MSAN job.
2022-02-18 14:10:59 +00:00
fanquake
54d817c5b9
ci: remove boost_cxxflags from MSAN CIs
No-longer needed after #24301.
2022-02-18 14:07:55 +00:00
MarcoFalke
66636ca438
Merge bitcoin/bitcoin#24360: doc: improve -netinfo help based on feedback from users and devs
a4da16fbd43ea1fff344f1602f7a5ace3d4a8a95 Improve -netinfo help based on feedback from users and devs (Jon Atack)

Pull request description:

  Clarify which networks are displayed by the peer counts table (*reachable* networks; follow-up to #23324) in response to questions received over the past months, and a few other improvements.

ACKs for top commit:
  laanwj:
    Code review ACK a4da16fbd43ea1fff344f1602f7a5ace3d4a8a95
  w0xlt:
    ACK a4da16f
  kristapsk:
    utACK a4da16fbd43ea1fff344f1602f7a5ace3d4a8a95

Tree-SHA512: e6522c08421aa7f10d50723156d0a8fc5ec82cad2f0bd931bbec603077fcd4921c6505ef743d57386fba81c95dcfc77df75abf3378319886368e4ae33f9a6d73
2022-02-18 07:32:06 +01:00
Kristaps Kaupe
62cc138ecb
Rename wallet-tool to bitcoin-wallet in code comment 2022-02-18 07:30:05 +02:00
Kristaps Kaupe
0db3ad3ba4
Mention -signet in bitcoin-wallet help output 2022-02-18 07:29:06 +02:00
Andrew Chow
3a618c1e3b
Merge bitcoin/bitcoin#24281: docs: Update to match new default wallet type
8e9699cb10db9cce9f03675c4a5b625ff2f34fd0 Update doc to match new default wallet type (Bitcoin Hodler)

Pull request description:

  #23002 changed the default wallet type to descriptors, so this doc was out of date.

ACKs for top commit:
  achow101:
    ACK 8e9699cb10db9cce9f03675c4a5b625ff2f34fd0

Tree-SHA512: 2f69b23c153163bf2a091dbf728b713d28f795cc81e031bf201160882d2456494e94955ff6385634615fdcfece11542749ad1c982e2994e64ed69011380a2353
2022-02-17 17:06:05 -05:00
fanquake
edc0d327f1
Merge bitcoin/bitcoin#24349: fuzz: Split script formatting from script fuzz target
fae3f178238df96554dc2495e040f5580b55408a fuzz: Split script formatting from script fuzz target (MarcoFalke)

Pull request description:

  This is a follow-up to commit 9237bdaac196951a437accaefa65638149b25978.

  The target was improved a bit, but is still taking enormously long. See for example 4096 seconds in https://cirrus-ci.com/task/5153886888525824?logs=ci#L4451.

  Most of the time is spent formatting the script. See the flamegraph: ![flame](https://user-images.githubusercontent.com/6399679/154052491-ad868078-42e6-4d85-9c77-c2e7e8291a9f.png)

  Thus, I suggest to split up the formatting into a new target. This will:

  * Allow more fuzz cycles in the `script` target when exploring the search space with the fuzz engine
  * Hopefully allow to reduce the fuzz inputs in `qa-assets` without losing coverage

ACKs for top commit:
  fanquake:
    ACK fae3f178238df96554dc2495e040f5580b55408a

Tree-SHA512: f86154b23019b7721e5dd10f54d11f4f7603d280471a396cb5256f4c460f48333318a60efe8b77fa8749a4abc67ad2631211b766fde5da70ded9fab8f904747b
2022-02-17 16:48:44 +00:00
fanquake
003523d239
Merge bitcoin/bitcoin#24338: util: Work around libstdc++ create_directories issue
b223c3c21e89f6af76b5401413880923f7c444d6 test: Add functional test for symlinked blocks directory (laanwj)
ddb75c2e87a60ed24065bdf0c3bfabf4e058cef1 test: Add fs_tests/create_directories unit test (Hennadii Stepanov)
1f46b6e46e1454b91ff7ceb31853bc440952f8eb util: Work around libstdc++ create_directories issue (laanwj)

Pull request description:

  Work around libstdc++ issue [PR101510] with create_directories where the leaf already exists as a symlink. Fixes #24257, introduced by the switch to `std::filesystem`. It is meant to be more thorough than #24266, which worked around one instance of the problem.

  The issue was [fixed upstream](https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=124eaa50e0a34f5f89572c1aa812c50979da58fc), but unfortunately we'll have to carry a fix for it for a while.

  This introduces a function `fs::create_directories` which wraps
  `std::filesystem::create_directories`. This allows easiliy reverting the
  workaround when it is no longer necessary.

ACKs for top commit:
  jonatack:
    re-ACK b223c3c21e89f6af76b5401413880923f7c444d6 per `git range-diff df08250 67019cd b223c3c`
  hebasto:
    re-ACK b223c3c21e89f6af76b5401413880923f7c444d6
  w0xlt:
    re-ACK b223c3c
  vasild:
    ACK b223c3c21e89f6af76b5401413880923f7c444d6

Tree-SHA512: 028321717c8b10d16185c3711b35da6b05fb7aa31cee1c8c7e754e92bf5a0b02719a3785cd0f6f8bf052b3bd759f644af212320672baabc9e44e0b93ba464abc
2022-02-17 16:29:10 +00:00
laanwj
6c4fd36089 util: Add missing rseq to syscall sandbox
Fixes #24368.
2022-02-17 15:01:43 +01:00
laanwj
922c49a138
Merge bitcoin/bitcoin#23819: ConnectBlock: don't serialize block hash twice
eb8b22d5176d7abc6f93b4473df446105ca595e6 block_connected: re-use previous GetTimeMicros (William Casarin)
80e1c55687aae61767f1ade0826746cda00d6a24 block_connected: don't serialize block hash twice (William Casarin)

Pull request description:

  In the validation:block_connected tracepoint, we call block->GetHash(), which
  ends up calling CBlockHeader::GetHash(), executing around 8000 serialization
  instructions. We don't need to do this extra work, because block->GetHash() is
  already called further up in the function. Let's save that value as a local
  variable and re-use it in our tracepoint so there is no unnecessary tracepoint
  overhead.

  Shave off an extra 100 or so instructions from the validation:block_connected
  tracepoint by reusing a nearby GetTimeMicros(). This brings the tracepoint down
  to 54 instructions.  Still high, but much better than the previous ~154 and
  8000 instructions which it was originally.

  Signed-off-by: William Casarin <jb55@jb55.com>

ACKs for top commit:
  0xB10C:
    ACK eb8b22d5176d7abc6f93b4473df446105ca595e6
  laanwj:
    Code review ACK eb8b22d5176d7abc6f93b4473df446105ca595e6
  theStack:
    re-ACK eb8b22d5176d7abc6f93b4473df446105ca595e6

Tree-SHA512: 92ae585e487554e0f73042a8abaa239f630502c1d198e010bd7c1de252d882bccb627bbf0e4faec09c1253e782b145bcf153f9fee78cdb8456188044a96f8267
2022-02-17 14:10:13 +01:00
laanwj
b223c3c21e test: Add functional test for symlinked blocks directory 2022-02-17 12:33:30 +01:00
Hennadii Stepanov
ddb75c2e87 test: Add fs_tests/create_directories unit test 2022-02-17 12:30:59 +01:00
laanwj
1f46b6e46e util: Work around libstdc++ create_directories issue
Work around libstdc++ issue [PR101510] with create_directories where the
leaf already exists as a symlink. Fixes #24257, introduced by the switch
to `std::filesystem`. It is meant to be more thorough than #24266, which
only worked around one instance of the problem.

The issue was fixed upstream in
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=124eaa50e0a34f5f89572c1aa812c50979da58fc,
but unfortunately we'll have to carry a fix for it for a while.

This introduces a function `fs::create_directories` which wraps
`std::filesystem::create_directories`. This allows easiliy reverting the
workaround when it is no longer necessary.
2022-02-17 12:30:11 +01:00
laanwj
df0825046a
Merge bitcoin/bitcoin#24331: util: Revert back MoveFileExW call for MinGW-w64
dc01cbc538765f64326bca30952c83e3862d0d54 test: Add fs_tests/rename unit test (Hennadii Stepanov)
d4999d40b9bd04dc20111aaaa6ed2d3db1a5caf9 util: Revert back MoveFileExW call for MinGW-w64 (Hennadii Stepanov)

Pull request description:

  Unfortunately, bitcoin/bitcoin#24308 introduced a [regression](https://github.com/bitcoin/bitcoin/pull/24308#issuecomment-1037259386) for mingw builds.

  The root of the problem is a broken implementation of [`std::filesystem::rename`](https://en.cppreference.com/w/cpp/filesystem/rename). In particular, the expected behavior
  > If `old_p` is a non-directory file, then `new_p` must be ... existing non-directory file: `new_p` _is first deleted_...

  fails with the "File exists" error.

  This PR reverts back the `MoveFileExW` call, and adds the [suggested](https://github.com/bitcoin/bitcoin/pull/24308#pullrequestreview-878832906) unit test.

ACKs for top commit:
  vasild:
    ACK dc01cbc538765f64326bca30952c83e3862d0d54

Tree-SHA512: c8e5a98844cfa32bec0ad67a1aaa58fe2efd0c5474d3e83490211985b110f83245758a742dcaa0a933a192ab66a7f11807e0c53ae69260b7dd02fc99f6d03849
2022-02-17 12:29:41 +01:00
fanquake
97611921be
Merge bitcoin/bitcoin#24348: build: Fix Guix build for Windows (attempt 2)
b3617a99c141d09cdec3b4dc07b6c876edf68bce build: Point Guix to recent commit on the master branch (Hennadii Stepanov)
7f2f35fe20c7706d547fa22a62521fe926f9c12b build: Fix gcc-cross-x86_64-w64-mingw32-10.3.0 in Guix (Hennadii Stepanov)

Pull request description:

  Fixes bitcoin/bitcoin#24055.
  Replaces bitcoin/bitcoin#24300.

  #### Guix builds:
  ```
  $ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  d807189a8b5721892395968a86acd47f0cff2c7e76e75e6e927045ba339ba1dc  guix-build-b3617a99c141/output/aarch64-linux-gnu/SHA256SUMS.part
  a1c89935c5d5c57df428a360168944d1be83fc00324a903a0a68c284fa4d71cf  guix-build-b3617a99c141/output/aarch64-linux-gnu/bitcoin-b3617a99c141-aarch64-linux-gnu-debug.tar.gz
  2936adc6d4425f297c2eee310fa8a90b51209289474d10a5a320346c9b4fb90a  guix-build-b3617a99c141/output/aarch64-linux-gnu/bitcoin-b3617a99c141-aarch64-linux-gnu.tar.gz
  10420ef9e7001f7dbe009261925db81ee94764bb42514f28d0aa429de37c81d6  guix-build-b3617a99c141/output/arm-linux-gnueabihf/SHA256SUMS.part
  00b762833139e0d7b470570e30dfe10c427f78a5bd498207b8750695b307fcfe  guix-build-b3617a99c141/output/arm-linux-gnueabihf/bitcoin-b3617a99c141-arm-linux-gnueabihf-debug.tar.gz
  2084c431e262a49cf18a2346e1465f73ccb8c320cfda3aa918439f371c1fec9c  guix-build-b3617a99c141/output/arm-linux-gnueabihf/bitcoin-b3617a99c141-arm-linux-gnueabihf.tar.gz
  752b769cbee5b04a4ae1fff0db5d8521b76df68e20c966bad141e9c65de3d196  guix-build-b3617a99c141/output/arm64-apple-darwin/SHA256SUMS.part
  708a39f525ea225cce71d53120df411c808a5f5a29e9c3498646ab7e5d5ab14d  guix-build-b3617a99c141/output/arm64-apple-darwin/bitcoin-b3617a99c141-arm64-apple-darwin.tar.gz
  cc60ed18529d0656feb87189c69f2fbe048b2b37ac11952d9290dd0f8576ea97  guix-build-b3617a99c141/output/arm64-apple-darwin/bitcoin-b3617a99c141-osx-unsigned.dmg
  5e10d7f0ab7352995ceb7959b5b371615e06904f9a857d59229dd5e1b7f5825e  guix-build-b3617a99c141/output/arm64-apple-darwin/bitcoin-b3617a99c141-osx-unsigned.tar.gz
  b44e8a11279d3fe29cc4d72f3ac1b3da1f11608636b4a9c8653272bf6be5ed92  guix-build-b3617a99c141/output/dist-archive/bitcoin-b3617a99c141.tar.gz
  c467e2371a88fd2fbcd98c9413f47f1ddc81183ac9f0674182a7af208df18e31  guix-build-b3617a99c141/output/powerpc64-linux-gnu/SHA256SUMS.part
  2de931fe54aaf6fdaac9aa2595d7f4901eeba80ab1185249c2bc2141318a9811  guix-build-b3617a99c141/output/powerpc64-linux-gnu/bitcoin-b3617a99c141-powerpc64-linux-gnu-debug.tar.gz
  2d2cf5236d41d9dbe2480e19a94107c726dce3c52bfa8672e3f41ada7a8acd61  guix-build-b3617a99c141/output/powerpc64-linux-gnu/bitcoin-b3617a99c141-powerpc64-linux-gnu.tar.gz
  2815de278610cc7aa3d365af3834ed77e49cf6695dc9e2ffdbc3ccd6cc8362fc  guix-build-b3617a99c141/output/powerpc64le-linux-gnu/SHA256SUMS.part
  fd13b01363a44c03dd52b1193b2690efdaa358c2bcdc31c43e83c96e06c2bc05  guix-build-b3617a99c141/output/powerpc64le-linux-gnu/bitcoin-b3617a99c141-powerpc64le-linux-gnu-debug.tar.gz
  796bd23f314e6edb429d893e7ffafc7c4d6b51c0febe1faaa192085435aeb0bb  guix-build-b3617a99c141/output/powerpc64le-linux-gnu/bitcoin-b3617a99c141-powerpc64le-linux-gnu.tar.gz
  c1e449e6ac3e78682d613d8bcebf97bce5ed69a865cfdc939cf6d290a3a5c7ef  guix-build-b3617a99c141/output/riscv64-linux-gnu/SHA256SUMS.part
  c3e6380e81229779ad60fa1c1fa856d6af46c1cab9a87abe296694be0b42b405  guix-build-b3617a99c141/output/riscv64-linux-gnu/bitcoin-b3617a99c141-riscv64-linux-gnu-debug.tar.gz
  1351e7755ace57cdbcb66f2673733f31d3b90063e414a0eeb1f0c71b19ca3b88  guix-build-b3617a99c141/output/riscv64-linux-gnu/bitcoin-b3617a99c141-riscv64-linux-gnu.tar.gz
  1af14acc6e7210286d09618e9e43b93707540eac9ee48226a6a2d69ab10dfe24  guix-build-b3617a99c141/output/x86_64-apple-darwin/SHA256SUMS.part
  e76b872e075604916ad60fa50989bba81080ecad9a12e8793a2628713bc816fd  guix-build-b3617a99c141/output/x86_64-apple-darwin/bitcoin-b3617a99c141-osx-unsigned.dmg
  2755d5766efc86f360909b01206e4594f5049e7aed17bc8ba3781a375acc28cf  guix-build-b3617a99c141/output/x86_64-apple-darwin/bitcoin-b3617a99c141-osx-unsigned.tar.gz
  335a08ee376c51692e9e24f4dd0a71fc24af2b15f3acd4ef2881ecb882fc708f  guix-build-b3617a99c141/output/x86_64-apple-darwin/bitcoin-b3617a99c141-osx64.tar.gz
  0ed78a1a1e22e8d20de9aeff052f57f0ada1eb536d541d28318223120610614b  guix-build-b3617a99c141/output/x86_64-linux-gnu/SHA256SUMS.part
  d07dfb39d9fd65ed2514eae7697a25f43ece18efdd1255a592feb0e6eb0510e4  guix-build-b3617a99c141/output/x86_64-linux-gnu/bitcoin-b3617a99c141-x86_64-linux-gnu-debug.tar.gz
  c427792751e83edbc48a4ed05278b70d888b957b77d8e7d9e298da47d2351bab  guix-build-b3617a99c141/output/x86_64-linux-gnu/bitcoin-b3617a99c141-x86_64-linux-gnu.tar.gz
  f24d5d065cebd214a948600adc97cdc1535ad3411e07ec66d3af2007586518e9  guix-build-b3617a99c141/output/x86_64-w64-mingw32/SHA256SUMS.part
  de196c52b6767a84c36d0d8c304ad46060dfd27accbc0812dd29600449385ab2  guix-build-b3617a99c141/output/x86_64-w64-mingw32/bitcoin-b3617a99c141-win-unsigned.tar.gz
  f6795755776c06fcc42482f2aaeedc0d45f11396a7766423bc8ee408feb203b8  guix-build-b3617a99c141/output/x86_64-w64-mingw32/bitcoin-b3617a99c141-win64-debug.zip
  76e75bb47277ae9f4a1b3116f98a91ed7291705c6c87456d9fa10a98448818d3  guix-build-b3617a99c141/output/x86_64-w64-mingw32/bitcoin-b3617a99c141-win64-setup-unsigned.exe
  615cb51c1536ff809025a580e3542da5eba02041676a37a21dbe11e1ac5f97c2  guix-build-b3617a99c141/output/x86_64-w64-mingw32/bitcoin-b3617a99c141-win64.zip
  ```

ACKs for top commit:
  laanwj:
    In any case I'm pretty happy with this solution. Code review and lightly tested ACK b3617a99c141d09cdec3b4dc07b6c876edf68bce
  fanquake:
    ACK b3617a99c141d09cdec3b4dc07b6c876edf68bce - thanks Carl for following up upstream.

Tree-SHA512: 9621cadcf5ce75142eeec97e9b5dabe36e3b9f39b4c58c1088f2341d3a6a66b1d1351c80c508b82a1587380d3b3ec6274453ccf0542ffa336da3b31ba8ef16a5
2022-02-17 10:51:08 +00:00
MarcoFalke
03c8c6937e
Merge bitcoin/bitcoin#24177: validation, refactor: add missing thread safety lock assertions
f485a0745455b46390f1c14260643ad69c8fe2ad Add missing thread safety lock assertions in validation.h (Jon Atack)
37af8a20cf39ed8ee4b3ba4e1d8d55178eaacb78 Add missing thread safety lock assertions in validation.cpp (Jon Atack)

Pull request description:

  A number of functions in validation.{h,cpp} have a thread safety lock annotation in the declaration but are missing the corresponding run-time lock assertion in the definition.

ACKs for top commit:
  hebasto:
    re-ACK f485a0745455b46390f1c14260643ad69c8fe2ad, only suggested change since my [previous](https://github.com/bitcoin/bitcoin/pull/24177#pullrequestreview-877810465) review.
  vasild:
    ACK f485a0745455b46390f1c14260643ad69c8fe2ad

Tree-SHA512: c86c0c0e8fe6ec7ae9ed9890f1dd7d042aa482ecf99feb6679a670aa004f6e9a99f7bc047205a34968fab7f1f841898c59b48c3ed6245c166e3b5abbf0867445
2022-02-17 08:01:52 +01:00
MarcoFalke
b304b65782
Merge bitcoin/bitcoin#24359: doc: Fix typos
ba4906f951d9f436d9669701fdb3b6e2884121f3 doc: Fix typos (Taeik Lim)

Pull request description:

  Fix typos.

ACKs for top commit:
  prayank23:
    ACK ba4906f951
  Zero-1729:
    crACK ba4906f951d9f436d9669701fdb3b6e2884121f3
  jonatack:
    ACK ba4906f951d9f436d9669701fdb3b6e2884121f3

Tree-SHA512: 63ae44e97c0bf9530dce974df58f2ec0ea95dc03168f54e26342d741adf6b6914e2dedac7db1737bba0d419c58bdc648d46715e896200e613b0764352f76f76a
2022-02-17 07:58:31 +01:00
Fabian Jahr
820c03aff5
index: check muhash is in sync on coinstatsindex launch 2022-02-17 00:36:47 +01:00
Fabian Jahr
38ed58b850
index: remove txindex references from base index 2022-02-17 00:34:37 +01:00
Taeik Lim
ba4906f951 doc: Fix typos 2022-02-17 03:42:08 +09:00
Jon Atack
a4da16fbd4
Improve -netinfo help based on feedback from users and devs
- clarify that the peer counts table is of reachable networks

- a few other clarifications
2022-02-16 18:38:37 +01:00