Commit Graph

40578 Commits

Author SHA1 Message Date
fanquake
3b12fc7bcd
Merge bitcoin/bitcoin#29787: guix: remove errant leftover from #29648
fd8527a20e guix: remove errant leftover from #29648 (fanquake)

Pull request description:

  We no longer build a lib, so a non-existent dir is causing builds to fail.

ACKs for top commit:
  josibake:
    ACK fd8527a20e
  hebasto:
    ACK fd8527a20e.
  TheCharlatan:
    ACK fd8527a20e

Tree-SHA512: 9175a0de3f95f56939b3eaa3e89dca2cfae4996bcd84ef6b8e2872672bef39cb0550c9f4a79475d887eb8fac92c15dfa8c352648ff167d54a0b736978412226c
2024-04-02 17:05:14 +01:00
Ryan Ofsky
3b987d03a4
Merge bitcoin/bitcoin#29419: log: deduplicate category names and improve logging.cpp
b0344c219a logging: remove unused BCLog::UTIL (Vasil Dimov)
d3b3af9034 log: deduplicate category names and improve logging.cpp (Vasil Dimov)

Pull request description:

  The code in `logging.cpp` needs to:
  * Get the category name given the flag (e.g. `BCLog::PRUNE` -> `"prune"`)
  * Get the flag given the category name (e.g. `"prune"` -> `BCLog::PRUNE`)
  * Get the list of category names sorted in alphabetical order

  Achieve this by using the proper std containers. The result is
  * less code (the diff of the first commit is +62 / -129)
  * faster code (to linear search and no copy+sort)
  * more maintainable code (the categories are no longer duplicated in `LogCategories[]` and `LogCategoryToStr()`)

  This behavior is preserved:
  `BCLog::NONE` -> `""` (lookup by `LogCategoryToStr()`)
  `""` -> `BCLog::ALL` (lookup by `GetLogCategory("")`)

  ---

  Also remove unused `BCLog::UTIL`.

  ---

  These changes (modulo the `BCLog::UTIL` removal) are part of https://github.com/bitcoin/bitcoin/pull/29415 but they make sense on their own and would be good to have them, regardless of the fate of https://github.com/bitcoin/bitcoin/pull/29415. Also, if this is merged, that would reduce the size of https://github.com/bitcoin/bitcoin/pull/29415, thus the current standalone PR.

ACKs for top commit:
  davidgumberg:
    crACK b0344c219a
  pinheadmz:
    ACK b0344c219a
  ryanofsky:
    Code review ACK b0344c219a. Nice cleanup! Having to maintain multiple copies of the same mapping seemed messy and a like a possible footgun. I checked old and new mappings in both directions and confirmed no behavior should be changing.

Tree-SHA512: 57f87a090932f9b33dc8e075d1855dba9b71a3243a0758511745483dec2d9c46d3b532eadab297e78164c9b7caba370986ee380696a45f0778a841082f8e21a7
2024-04-02 10:47:05 -04:00
fanquake
6dabb315c4
Merge bitcoin/bitcoin#29784: [doc] add historical release notes for 26.1
d32346c39e [doc] add historical release notes for 26.1 (glozow)

Pull request description:

  Need for github release

ACKs for top commit:
  fanquake:
    ACK d32346c39e - looks like just a newline difference.

Tree-SHA512: 567647bdab8b5a8405b43682e3a0f86282eb0b866c83423a7866fef872307a7ca88d564604f1cfe53d6ce48407aa6cf88bdf18b35c16c959e2a36062bff39a50
2024-04-02 15:05:09 +01:00
fanquake
82b47cb52b
Merge bitcoin/bitcoin#29733: build, macos: Drop unused osx_volname target
eff19fa1c8 build, macos: Drop unused `osx_volname` target (Hennadii Stepanov)

Pull request description:

  The `osx_volname` makefile target was introduced in https://github.com/bitcoin/bitcoin/pull/7192 and was used to pass the package name to Gitian scripts as a content of the `osx_volname` file.

  With the current Guix scripts, the `osx_volname` file is never read. Therefore, its creation might be omitted.

  My Guix builds:
  ```
  x86_64
  5e2d254e207d53784621c8df331c9bf4a969da667d185992402f48a5ac49f563  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/SHA256SUMS.part
  089dba70685893aca5e7c8ce1d53a07380e87ca50eda8b3a2a75aeaeb1d28e48  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/bitcoin-eff19fa1c8d7-arm64-apple-darwin-unsigned.tar.gz
  390c57197c6ab4aefdde1c665d5e4ebdfb4ae5e553f8f93b017f2fad1093d110  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/bitcoin-eff19fa1c8d7-arm64-apple-darwin-unsigned.zip
  e1edde7ca28bf26aea8d956b1d3c1725a475f2a9c148f5c36b651db4b814091c  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/bitcoin-eff19fa1c8d7-arm64-apple-darwin.tar.gz
  d0096ea73a5f75cc4d3cef4ef1761ae3e48c8a63aff918f07371c5c88896e4e6  guix-build-eff19fa1c8d7/output/dist-archive/bitcoin-eff19fa1c8d7.tar.gz
  51b4affb9fd6f8aea05b7d25d29f017d0a0a145395f457caa14b9af9646b035b  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/SHA256SUMS.part
  b1df081ecf636a92754e673e5388d1d988653d4646f0b0446a4c9f14d865a265  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/bitcoin-eff19fa1c8d7-x86_64-apple-darwin-unsigned.tar.gz
  62e09926029d176da950d3e3db7ff8ae6cbe4c0b2ea17b084fc1d28565f91475  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/bitcoin-eff19fa1c8d7-x86_64-apple-darwin-unsigned.zip
  477dcb2382cbd447bd88a3b644b4bd736f5b67d66d42cb73fe31ffc153d3e181  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/bitcoin-eff19fa1c8d7-x86_64-apple-darwin.tar.gz
  ```

ACKs for top commit:
  Empact:
    ACK eff19fa1c8
  Sjors:
    tACK eff19fa1c8
  TheCharlatan:
    ACK eff19fa1c8

Tree-SHA512: 29714be5c58caa07b3eb99846d71bb83366dade769af022059bb3c499878adcd34cdf03b006c5da561291f373ccc59abdb83c925057ec0049465eaa8dd6ef4e1
2024-04-02 14:57:22 +01:00
fanquake
fd8527a20e
guix: remove errant leftover from #29648
We no longer build a lib, so a non-existent dir is causing builds to
fail.
2024-04-02 13:39:33 +01:00
fanquake
c407caa297
Merge bitcoin/bitcoin#29687: cli: improve bitcoin-cli error when not connected
69d6fd676e cli: improve bitcoin-cli error when not connected (willcl-ark)

Pull request description:

  Closes: #29555

  Simply adds an additional suggestion to check `bitcoin-cli -help`.

ACKs for top commit:
  maflcko:
    lgtm ACK 69d6fd676e
  itornaza:
    tested ACK 69d6fd676e
  tdb3:
    ACK for 69d6fd676e

Tree-SHA512: af0c712bcc9b1267f81a8316d015bef99ab788ef43e3b450cdc4a9cb74004727d757d48f50d3af2b28b01be2931578623311677a79f1b148a53f364bd4279a0c
2024-04-02 11:20:38 +01:00
fanquake
1d8a5f0d9b
Merge bitcoin/bitcoin#29750: test: makes timeout a forced named argument in tests methods that use it
61560d5e93 test: makes timeout a forced named argument in tests methods that use it (Sergi Delgado Segura)

Pull request description:

  This makes calls to such methods more explicit and less error-prone.

  Motivated by https://github.com/bitcoin/bitcoin/pull/29736#discussion_r1540654057

ACKs for top commit:
  maflcko:
    lgtm ACK 61560d5e93
  brunoerg:
    ACK 61560d5e93
  BrandonOdiwuor:
    crACK 61560d5e93
  AngusP:
    ACK 61560d5e93
  stratospher:
    tested ACK 61560d5.

Tree-SHA512: 8d6ec3fe1076c868ddbd3050f3c242dbd83cc123f560db3d3b0ed74968e6050dc9ebf4e7c716af9cc1b290c97d736c2fc2ac936b0b69ebdbceed934dae7d55d9
2024-04-02 11:06:35 +01:00
glozow
d32346c39e [doc] add historical release notes for 26.1 2024-04-02 09:37:10 +01:00
fanquake
23ba39470c
Merge bitcoin/bitcoin#29753: test: fix StopIteration exception in p2p_node_network_limited.py
2eb5175de8 test: fix StopIteration exception in p2p_node_network_limited.py (furszy)

Pull request description:

  Fixes #29731

  The `next()` call throws an exception if the default parameter is omitted and the iterator is exhausted.
  Fix it by providing a default value.

  The failure can be tested by commenting out lines 90 and 91 in the test (the `self.connect_nodes(2, 0)`). Since there is no connection, the node in question retrieves a single element in the 'getchaintips()' call. This scenario without the fix, aborts the test right away, throwing an `StopIteration` exception, and with the fix, the test properly waits until the timeout (`wait_until()` call).

ACKs for top commit:
  maflcko:
    review ACK 2eb5175de8
  brunoerg:
    crACK 2eb5175de8
  BrandonOdiwuor:
    crACK 2eb5175de8
  tdb3:
    Tested ACK for 2eb5175de8.

Tree-SHA512: b0873eb4d3334146fd250cd2cd23add3e744877033c8bfa4eb8dff36633100604adf49dd7846856ddfa88c9768663f095db705c00eef3641618df8fc13f8c2c5
2024-04-01 18:59:42 +02:00
fanquake
948ecf181e
Merge bitcoin/bitcoin#29648: Remove libbitcoinconsensus
80f8b92f4f remove libbitcoinconsensus (fanquake)

Pull request description:

  This was deprecated in `v27.0`, for removal in `v28.0`. See discussion in PR #29189.

ACKs for top commit:
  theuni:
    Concept ACK and light review ACK 80f8b92f4f. My only hesitation here is that (afaics?) there's now nothing keeping undesired features like threading or globals from working their way into the interpreter in future commits.
  m3dwards:
    Concept ACK 80f8b92f4f
  TheCharlatan:
    ACK 80f8b92f4f
  hebasto:
    ACK 80f8b92f4f, I have reviewed the code and it looks OK.

Tree-SHA512: 17a62118aeb088f2695c892bb32794dfea3061e3cb7d9e8e9f1c06c3ff6f63a7587fa532e37edbb91fbc5a19b12c9a0f8e05fa9e8864aa07f92665375d847e80
2024-04-01 17:53:31 +02:00
fanquake
90224fbf61
Merge bitcoin/bitcoin#29756: doc: Override -g properly to skip debugging information
f8f5cece4d doc: Override `-g` properly to skip debugging information (Hennadii Stepanov)

Pull request description:

  Fix https://github.com/bitcoin/bitcoin/issues/29755.

ACKs for top commit:
  TheCharlatan:
    ACK f8f5cece4d

Tree-SHA512: 02bff5fc41859deb914531ef01ea1ac88ab2e138219fe175472962192b11feefe772128da03f466ec765c1b35b21eead31a42cc76e62ecb7ea5dc947cf568d61
2024-04-01 16:54:44 +02:00
fanquake
c7247bd9e8
Merge bitcoin/bitcoin#29765: ci: Use clang-18
fa75220ac5 ci: Use clang-18 in asan/fuzz/tsan task (MarcoFalke)
fad23a0646 ci: Bump clang+llvm in i686_multiprocess task (MarcoFalke)

Pull request description:

  Use clang-18, which comes with bugfixes and sanitizer upgrades.

ACKs for top commit:
  fanquake:
    ACK fa75220ac5

Tree-SHA512: da251eb55d3a7e537110b03fb0fc10fc6e2f4406d55bdb33bdc91459daabfd3b8d1d20859a66718bb1b09126e11495f6584c52504a85eb09bde9eafafdaf0b0b
2024-04-01 16:27:18 +02:00
fanquake
3d37ed490a
Merge bitcoin/bitcoin#29732: depends: qt 5.15.13
430f319f73 depends: qt 5.15.13 (fanquake)

Pull request description:

  I need to try and patch around Qts buildsystem to keep #21778 moving along (the issue being that even when you tell Qt to build using Clang on Linux, it still calls out to GCC, breaking our ability to have a macOS release build env that doesn't have a GCC toolchain installed, and thus no `ld` binary).

  Before trying to patch Qt any further, update to the latest LTS release, and update the current patch set.

ACKs for top commit:
  TheCharlatan:
    Re-ACK 430f319f73
  hebasto:
    re-ACK 430f319f73.

Tree-SHA512: 11122c04d63f4ec79e5d7945e1686eaf308cb1f98c3ff8bc52e265d7353cd4f1a532f4d78d55b43183245aeebf93cc1092087d9fe83e42eefa8a69ad9017d2da
2024-04-01 16:10:42 +02:00
fanquake
b8420e4603
Merge bitcoin/bitcoin#29764: doc: Suggest installing dev packages for debian/ubuntu qt5 build
6c2990416e ci: Pull in qtbase5-dev instead of seperate low-level libraries (laanwj)
a3c6a13cb2 doc: Suggest installing dev packages for debian/ubuntu qt5 build (laanwj)

Pull request description:

  Pretty much all library packages were renamed in the 64-bit time_t migration to add `t64` (even on 64-bit platforms).

  Instead of complicating the doc with conditional package names, suggest installing the `-dev` packages which still have the same name, and besides that, are the right way to go about it as they contain the "user facing" C++ headers needed to build against Qt5. They pull in the necessary library packages through dependencies.

  For Fedora, devel packages are already suggested.

  This affects Ubuntu 24.04 and Debian Testing.

ACKs for top commit:
  maflcko:
    lgtm ACK 6c2990416e
  hebasto:
    ACK 6c2990416e.

Tree-SHA512: dae21b7d08fdb221b7b72c323fdaaa6d1a8b014f90e24d2beae64b1ae229fdbeb93d726a61e826447813e52a3cb9775426aefc6c44a4c5ccc541afabb89cb135
2024-04-01 15:56:27 +02:00
fanquake
8d19d688f4
Merge bitcoin/bitcoin#29738: doc: fix typos
601edd8ee8 ci: use codespell 2.2.6 (fanquake)
52fa0d285f doc: fix some typos (crazeteam)
b5ed13a240 doc: Fix typos (RoboSchmied)

Pull request description:

  Combines the recent PRs to fix typos so they can be merged.

ACKs for top commit:
  brunoerg:
    crACK 601edd8ee8
  tdb3:
    crACK 601edd8ee8
  kristapsk:
    cr utACK 601edd8ee8

Tree-SHA512: d054b1dad1336d6b9291cc5d5252d4debf6424a993d4edd6a97d7c15055a7fc48a333d30967f72e7dc9c6c1d9a9038ca8bb5e219c529f4c2365ea48404a508d0
2024-04-01 15:54:45 +02:00
Ava Chow
61de64df67
Merge bitcoin/bitcoin#29724: 29242 Diagram check followups
ee1b9b231a CalculateFeerateDiagramsForRBF: update misleading description of old diagram contents (Greg Sanders)
a9d42b9aa5 CompareFeerateDiagram: short-circuit comparison when detected as incomparable (Greg Sanders)
cebcced65e remove erroneous CompareFeerateDiagram comment about slope (Greg Sanders)
a0376e1061 unit test: clarify unstated assumption for calc_feerate_diagram_rbf chunking (Greg Sanders)
890cb015f3 s/effected/affected/ (Greg Sanders)
d9391ec095 CalculateFeerateDiagramsForRBF: remove size tie-breaking from chunking conflicts (Greg Sanders)
b684d82d7e fuzz: Add more invariant checks for package_rbf (Greg Sanders)
2a3ada8b21 fuzz: finer grained ImprovesFeerateDiagram check on error result (Greg Sanders)
c377ae9ba0 unit test: improve ImprovesFeerateDiagram coverage with one less vb case (Greg Sanders)
d2bf923eb1 unit test: make calc_feerate_diagram_rbf less brittle (Greg Sanders)
defe023f6e fuzz: add PrioritiseTransaction coverage in diagram checks (Greg Sanders)
216d5ff162 unit test: add coverage showing priority affects diagram check results (Greg Sanders)
a80d80936a unit test: add CheckConflictTopology case for not the only child (Greg Sanders)
69bd18ca80 unit test: check tx4 conflict error message (Greg Sanders)
c0c37f07eb unit test: have CompareFeerateDiagram tested with diagrams both ways (Greg Sanders)
b62e2c0fa5 ImprovesFeerateDiagram: Spelling fix and removal of unused diagram vectors (Greg Sanders)
bb42402945 doc: fix comment about non-existing CompareFeeFrac (Greg Sanders)

Pull request description:

  Follow-ups to https://github.com/bitcoin/bitcoin/pull/29242

ACKs for top commit:
  glozow:
    ACK ee1b9b231a, reviewed the changes and package_rbf fuzzer seems to run fine
  murchandamus:
    crACK ee1b9b231a
  ismaelsadeeq:
    Code review ACK ee1b9b231a
  willcl-ark:
    ACK ee1b9b231a

Tree-SHA512: 8399fe12064fb49b0e4c73258968b57be1d9c2e35701b2d3b0bb67e2e4052e44216358238f92508e4697d0fb6176518d5b885474054d3deda242f669e99262a7
2024-03-29 19:52:50 -04:00
MarcoFalke
fa75220ac5
ci: Use clang-18 in asan/fuzz/tsan task 2024-03-29 16:41:18 +01:00
MarcoFalke
fad23a0646
ci: Bump clang+llvm in i686_multiprocess task 2024-03-29 15:19:08 +01:00
Ryan Ofsky
4373414d26
Merge bitcoin/bitcoin#29130: wallet: Add createwalletdescriptor and gethdkeys RPCs for adding new automatically generated descriptors
746b6d8839 test: Add test for createwalletdescriptor (Ava Chow)
2402b63062 wallet: Test upgrade of pre-taproot wallet to have tr() descriptors (Ava Chow)
460ae1bf67 wallet, rpc: Add createwalletdescriptor RPC (Ava Chow)
8e1a475062 wallet: Be able to retrieve single key from descriptors (Ava Chow)
85b1fb19dd wallet: Add GetActiveHDPubKeys to retrieve xpubs from active descriptors (Ava Chow)
73926f2d31 wallet, descspkm: Refactor wallet descriptor generation to standalone func (Andrew Chow)
54e74f46ea wallet: Refactor function for single DescSPKM setup (Andrew Chow)
3b09d0eb7f tests: Test for gethdkeys (Ava Chow)
5febe28c9e wallet, rpc: Add gethdkeys RPC (Ava Chow)
66632e5c24 wallet: Add IsActiveScriptPubKeyMan (Ava Chow)
fa6a259985 desc spkm: Add functions to retrieve specific private keys (Ava Chow)
fe67841464 descriptor: Be able to get the pubkeys involved in a descriptor (Ava Chow)
ef6745879d key: Add constructor for CExtKey that takes CExtPubKey and CKey (Ava Chow)

Pull request description:

  This PR adds a `createwalletdescriptor` RPC which allows users to add new automatically generated descriptors to their wallet, e.g. to upgrade a 0.21.x wallet to contain a taproot descriptor. This RPC takes 3 arguments: the output type to create a descriptor for, whether the descriptor will be internal or external, and the HD key to use if the user wishes to use a specific key. The HD key is an optional parameter. If it is not specified, the wallet will use the key shared by the active descriptors, if they are all single key. For most users in the expected upgrade scenario, this should be sufficient. In more advanced cases, the user must specify the HD key to use.

  Currently, specified HD keys must already exist in the wallet. To make it easier for the user to know, `gethdkeys` is also added to list out the HD keys in use by all of the descriptors in the wallet. This will include all HD keys, whether we have the private key, for it, which descriptors use it and their activeness, and optionally the extended private key. In this way, users with more complex wallets will be still be able to get HD keys from their wallet for use in other scenarios, and if they want to use `createwalletdescriptor`, they can easily get the keys that they can specify to it.

  See also https://github.com/bitcoin/bitcoin/pull/26728#issuecomment-1866961865

ACKs for top commit:
  Sjors:
    re-utACK 746b6d8839
  furszy:
    ACK 746b6d8
  ryanofsky:
    Code review ACK 746b6d8839, and this looks ready to merge. There were various suggested changes since last review where main change seems to be switching `gethdkeys` output to use normalized descriptors (removing hardened path components).

Tree-SHA512: f2849101e6fbf1f59cb031eaaaee97af5b1ae92aaab54c5716940d210f08ab4fc952df2725b636596cd5747b8f5beb1a7a533425bc10d09da02659473516fbda
2024-03-29 06:39:57 -04:00
laanwj
6c2990416e ci: Pull in qtbase5-dev instead of seperate low-level libraries
Fix CI build for t64 migration.
2024-03-29 11:17:39 +01:00
laanwj
a3c6a13cb2 doc: Suggest installing dev packages for debian/ubuntu qt5 build
Pretty much all library packages were renamed in the 64-bit time_t
migration to add `t64` (even on 64-bit platforms).

Instead of complicating the doc with conditional package names, suggest
installing the `-dev` packages which still have the same name, and
besides that, are the right way to go about it as they contain the
"user facing" C++ headers needed to build against Qt5.

For Fedora, devel packages are already suggested.

This affects Ubuntu 24.04 and Debian Testing.
2024-03-29 09:33:43 +01:00
Hennadii Stepanov
f8f5cece4d
doc: Override -g properly to skip debugging information 2024-03-28 11:50:12 +00:00
glozow
d1e9a02126
Merge bitcoin/bitcoin#29402: mempool: Log added for dumping mempool transactions to disk
4d5b55735b log: renamed disk to file so wording was more accurate (kevkevin)
b9f04be870 mempool: Log added for dumping mempool transactions to disk (kevkevin)

Pull request description:

  Sometimes when shutting off bitcoind it can take a while to dump the mempool transaction onto the disk so
  this change adds additional logging to the `DumpMempool` method in `kernel/mempool_persist.cpp`

  Motivated by https://github.com/bitcoin/bitcoin/pull/29227 this change
   - adds a single new line for the amount of transactions being dumped and the amount of memory being dumped to file

  This is in response to https://github.com/bitcoin/bitcoin/pull/29227#issuecomment-1893375082

  The logs will now look like this
  ```
  2024-02-09T23:41:52Z DumpAnchors: Flush 2 outbound block-relay-only peer addresses to anchors.dat completed (0.02s)
  2024-02-09T23:41:52Z scheduler thread exit
  2024-02-09T23:41:52Z Writing 29 mempool transactions to file...
  2024-02-09T23:41:52Z Writing 0 unbroadcast transactions to file.
  2024-02-09T23:41:52Z Dumped mempool: 0.000s to copy, 0.022s to dump, 0.015 MB dumped to file
  2024-02-09T23:41:52Z Flushed fee estimates to fee_estimates.dat.
  2024-02-09T23:41:53Z Shutdown: done
  ```

ACKs for top commit:
  maflcko:
    cr-ACK 4d5b55735b
  glozow:
    reACK 4d5b557

Tree-SHA512: 049191e140d00c1ea57debe0138f1c9eb0f9bb0ef8138e2568e6d89e64f45a5d5853ce3b9cc0b28566aab97555b47ddfb0f9199fc8cea6b81e53f50592d5ae6a
2024-03-28 11:43:10 +00:00
furszy
2eb5175de8
test: fix StopIteration exception in p2p_node_network_limited.py
The `next()` call throws an exception if the default parameter is omitted and the iterator is exhausted.
Fix it by providing a default value.

The failure can be tested by commenting out lines 90 and 91 in the test (the `self.connect_nodes(2, 0)``).
Since there is no connection, the node in question retrieves a single element in the 'getchaintips()' call.
This scenario without the fix, aborts the test right away, throwing an StopIteration exception, and with
the fix, the test properly waits until the timeout (wait_until() call).
2024-03-27 16:37:36 -03:00
fanquake
430f319f73
depends: qt 5.15.13
I need to try and patch around Qts buildsystem to keep #21778 moving
along (the issue being that even when you tell Qt to build using
Clang on Linux, it still calls out to GCC, breaking our ability to have
a macOS release build env that doesn't have a GCC toolchain installed,
and thus no ld binary).

Before trying to patch Qt any further, update to the latest LTS
release, and update the current patch set.
2024-03-27 16:45:21 +00:00
Ryan Ofsky
c8e3978114
Merge bitcoin/bitcoin#27307: wallet: track mempool conflicts with wallet transactions
5952292133 wallet, rpc: show mempool conflicts in `gettransaction` result (ishaanam)
54e07ee22f wallet: track mempool conflicts (ishaanam)
d64922b590 wallet refactor: use CWalletTx member functions to determine tx state (ishaanam)
ffe5ff1fb6 scripted-diff: wallet: s/TxStateConflicted/TxStateBlockConflicted (ishaanam)
180973a941 test: Add tests for wallet mempool conflicts (ishaanam)

Pull request description:

  The `mempool_conflicts` variable is added to `CWalletTx`, it is a set of txids of txs in the mempool conflicting with the wallet tx or a wallet tx's parent. This PR only changes how mempool-conflicted txs are dealt with in memory.

  `IsSpent` now returns false for an output being spent by a mempool conflicted transaction where it previously returned true.

  A txid is added to `mempool_conflicts` during  `transactionAddedToMempool`. A txid is removed from `mempool_conflicts` during  `transactionRemovedFromMempool`.

  This PR also adds a `mempoolconflicts` field to the `gettransaction` wallet RPC result.

  Builds on #27145
  Second attempt at #18600

ACKs for top commit:
  achow101:
    ACK 5952292133
  ryanofsky:
    Code review ACK 5952292133. Just small suggested changes since last review
  furszy:
    ACK 59522921

Tree-SHA512: 615779606723dbb6c2e302681d8e58ae2052ffee52d721ee0389746ddbbcf4b4c4afacf01ddf42b6405bc6f883520524186a955bf6b628fe9b3ae54cffc56a29
2024-03-27 12:45:08 -04:00
fanquake
7a12cbed99
Merge bitcoin/bitcoin#29747: depends: fix mingw-w64 Qt DEBUG=1 build
b7e7e727ab depends: fix mingw-w64 Qt DEBUG=1 build (fanquake)

Pull request description:

  The issue is that compilation is done with `x86_64-w64-mingw32-g++-posix`, but then linking is done with `x86_64-w64-mingw32-g++`.

  I'm guessing this has been broken since #24131 (01d1845a80), but have not checked.

  Fixes #29734.
  Unblocks #29527 (`DEBUG=1` builds can be tested).

ACKs for top commit:
  hebasto:
    ACK b7e7e727ab, tested on Ubuntu 22.04 with the [installed](https://github.com/bitcoin/bitcoin/issues/29734#issuecomment-2022852344) `g++-mingw-w64-x86-64` package.
  TheCharlatan:
    ACK b7e7e727ab

Tree-SHA512: 9e24e84046c0489c20971bb9c68d1a643c233837193c184f61bff79dfc8d7397a5c5526ac1a205ad423920f2589559cd01cb104ceb7f89515bb6421510d82ca9
2024-03-27 16:36:14 +00:00
Sergi Delgado Segura
61560d5e93 test: makes timeout a forced named argument in tests methods that use it
This makes calls to such methods more explicit and less error prone
2024-03-27 15:33:07 +01:00
kevkevin
4d5b55735b
log: renamed disk to file so wording was more accurate 2024-03-27 07:19:46 -05:00
kevkevin
b9f04be870
mempool: Log added for dumping mempool transactions to disk 2024-03-27 07:18:49 -05:00
fanquake
28f2ca675f
Merge bitcoin/bitcoin#29479: test: Refactor subtree exclusion in lint tests
80fa7da21c test: Refactor subtree exclusion in lint tests (Brandon Odiwuor)

Pull request description:

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

  Refactor subtree exclusion in lint tests to one place

  Second attempt after PR: https://github.com/bitcoin/bitcoin/pull/24435

ACKs for top commit:
  fjahr:
    re-ACK 80fa7da21c
  maflcko:
    lgtm ACK 80fa7da21c
  davidgumberg:
    ACK 80fa7da21c

Tree-SHA512: deff7457dd19ca5ea440d3d53feae047e8863b9ddeb6494a3c94605a5d16edc91db8f99a435b4fab2ef89aedee42439562be006da647fb85bbf3def903a3ce50
2024-03-27 11:40:18 +00:00
fanquake
b8b0d64765
Merge bitcoin/bitcoin#29740: ci: Print tsan errors to stderr
fa22a438fa ci: Print tsan errors to stderr (MarcoFalke)

Pull request description:

  This fixes a bug introduced in https://github.com/bitcoin/bitcoin/pull/27667

  All sanitizers print their errors to stderr, except for tsan, which prints to a file and expects the file to be read.

  Fix this by not using a log file in any sanitizer.

ACKs for top commit:
  dergoegge:
    utACK fa22a438fa

Tree-SHA512: 15dca57932a21bda145335fab6367bbf2ae67b25e0b7b61044d2c06ab7a8db3a452f057f6656b81a031726375b7bb238f5ced18ab8894f005e7ab254c7d1ef06
2024-03-27 11:07:02 +00:00
fanquake
b7e7e727ab
depends: fix mingw-w64 Qt DEBUG=1 build
The issue is that compilation is done with `x86_64-w64-mingw32-g++-posix`,
but then linking is done with `x86_64-w64-mingw32-g++`.

I'm guessing this has been broken since #24131
(01d1845a80), but have not checked.

Fixes #29734.
Unblocks #29527 (now DEBUG=1 builds can be tested).
2024-03-27 10:52:32 +00:00
MarcoFalke
fa22a438fa
ci: Print tsan errors to stderr 2024-03-26 19:19:28 +01:00
fanquake
601edd8ee8
ci: use codespell 2.2.6 2024-03-26 16:51:46 +00:00
crazeteam
52fa0d285f
doc: fix some typos
Signed-off-by: crazeteam <lilujing@outlook.com>
2024-03-26 16:51:46 +00:00
RoboSchmied
b5ed13a240
doc: Fix typos
Fix three typos.
2024-03-26 16:51:37 +00:00
Greg Sanders
ee1b9b231a CalculateFeerateDiagramsForRBF: update misleading description of old diagram contents 2024-03-26 11:42:42 -04:00
fanquake
d04324a705
Merge bitcoin/bitcoin#29695: guix: build GCC with --enable-standard-branch-protection
7850c5fe20 guix: build GCC with --enable-standard-branch-protection (fanquake)

Pull request description:

  This is one change extracted from #24123 (which now produces fully BTI & PAC enabled bins), which will mean that everything in depends, for Guix builds, is compiled using `-mbranch-protection=standard`.

  Turning this on by default, is similar to what we already do with `--enable-default-ssp`, `--enable-default-pie` etc.

  See: https://gcc.gnu.org/install/specific.html#aarch64-x-x

  > To enable Branch Target Identification Mechanism and Return Address Signing by default at configure time use the `--enable-standard-branch-protection` option.

  > This is equivalent to having `-mbranch-protection=standard` during compilation. This can be explicitly disabled during compilation by passing the `-mbranch-protection=none` option which turns off all types of branch protections.

ACKs for top commit:
  TheCharlatan:
    ACK 7850c5fe20

Tree-SHA512: 18f898da27021bab502e708ea5fa9b325352f8f6e23d9488a2a0feda87e0af2ac0e4f87b3af9ad6a9a37bbfc99ab0285de4f0bdc174dcd38163d92c122e958e2
2024-03-26 13:45:33 +00:00
Greg Sanders
a9d42b9aa5 CompareFeerateDiagram: short-circuit comparison when detected as incomparable 2024-03-26 08:41:06 -04:00
Greg Sanders
cebcced65e remove erroneous CompareFeerateDiagram comment about slope 2024-03-26 08:20:30 -04:00
Greg Sanders
a0376e1061 unit test: clarify unstated assumption for calc_feerate_diagram_rbf chunking 2024-03-26 08:20:30 -04:00
Greg Sanders
890cb015f3 s/effected/affected/ 2024-03-26 08:20:30 -04:00
Greg Sanders
d9391ec095 CalculateFeerateDiagramsForRBF: remove size tie-breaking from chunking conflicts 2024-03-26 08:20:30 -04:00
Greg Sanders
b684d82d7e fuzz: Add more invariant checks for package_rbf 2024-03-26 08:20:30 -04:00
Greg Sanders
2a3ada8b21 fuzz: finer grained ImprovesFeerateDiagram check on error result 2024-03-26 08:20:30 -04:00
Greg Sanders
c377ae9ba0 unit test: improve ImprovesFeerateDiagram coverage with one less vb case 2024-03-26 08:20:30 -04:00
Greg Sanders
d2bf923eb1 unit test: make calc_feerate_diagram_rbf less brittle 2024-03-26 08:20:30 -04:00
Greg Sanders
defe023f6e fuzz: add PrioritiseTransaction coverage in diagram checks 2024-03-26 08:20:30 -04:00
Greg Sanders
216d5ff162 unit test: add coverage showing priority affects diagram check results 2024-03-26 08:20:30 -04:00