Commit Graph

15286 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
b37a692571 merge bitcoin#15934: Merge settings one place instead of five places
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-06-03 18:25:21 +05:30
Kittywhiskers Van Gogh
3ebe6db923 revert dash#4715: Fix Repair tab 2022-06-03 18:25:21 +05:30
Kittywhiskers Van Gogh
cb4d60159d revert dash#1494: Don't try to create empty datadir before the real path is known 2022-06-03 18:25:21 +05:30
Kittywhiskers Van Gogh
c34638d20b test: Check return value of ParseParameters(...)
This commit is from 145fe95ec7 but the commit wasn't titled as such,
this to prevent confusion due to a potentially misleading commit title as the change doesn't match the pull request title's description per-se.
2022-06-03 18:25:20 +05:30
Kittywhiskers Van Gogh
b747bdbd42 test: don't pass null pointer reference into PeerLogicValidation
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-06-03 18:24:39 +05:30
PastaPastaPasta
875305a901
Merge pull request #4839 from Munkybooty/backports-0.20-pr2
backport: v0.20 pr2
2022-06-01 13:53:54 -05:00
MarcoFalke
3f71883a4e Merge #17366: test: Reset global args between test suites
fa07b8beb598642655b1207afd275b801ff8cec2 test: Reset global args between test suites (MarcoFalke)

Pull request description:

  Ideally there wouldn't be any globals in Bitcoin Core. However, as we still have globals, they need to be reset between runs of test cases. One way to do this is to run each suite in a different process. `make check` does that. However, `./src/test/test_bitcoin` when run manually or on appveyor is a single process, where all globals are preserved between test cases.

  This leads to hard to debug issues such as https://github.com/bitcoin/bitcoin/pull/15845#pullrequestreview-310852164.

  Fix that by resetting the global arg for each test suite. Note that this wont reset the arg between test cases, as the constructor/destructor is not called for them.

  Addendum: This is not a general fix, only for `-segwitheight`. I don't know if clearing all args can be done with today's argsmanager.  Nor do I know if it makes sense. Maybe we want datadir set to a temp path to not risk accidentally corrupting the default data dir?

ACKs for top commit:
  laanwj:
    ACK fa07b8beb598642655b1207afd275b801ff8cec2
  practicalswift:
    ACK fa07b8beb598642655b1207afd275b801ff8cec2
  mzumsande:
    ACK fa07b8beb598642655b1207afd275b801ff8cec2, I also tested that this fixes the issue in #15845.

Tree-SHA512: 1e30b06f0d2829144a61cc1bc9bdd6a694cbd911afff83dd3ad2a3f15b577fd30acdf9f1469f8cb724d0642ad5d297364fd5a8a2a9c8619a7a71fa9ae2837cdc
2022-05-31 12:06:32 -04:00
MarcoFalke
6bb8f5e192 Merge #17349: Remove redundant copy constructors
fa8919889f3c1bd3e2700ecbb56493e3cd1e25ad bench: Remove redundant copy constructor in mempool_stress (MarcoFalke)
29f84343681831baf02a17d3af566c5c57ecf3c2 refactor: Remove redundant PSBT copy constructor (Hennadii Stepanov)

Pull request description:

  I fail to see why people add these copy constructors manually without explanation, when the compiler can generate them at least as good automatically with less code.

ACKs for top commit:
  promag:
    ACK fa8919889f3c1bd3e2700ecbb56493e3cd1e25ad.
  hebasto:
    ACK fa8919889f3c1bd3e2700ecbb56493e3cd1e25ad, nit s/constructor/operator/ in commit fa8919889f3c1bd3e2700ecbb56493e3cd1e25ad message, as @promag [mentioned](https://github.com/bitcoin/bitcoin/pull/17349#discussion_r341776389) above.
  jonatack:
    ACK fa8919889f3c1bd3e2700ecbb56493e3cd1e25ad

Tree-SHA512: ce024fdb894328f41037420b881169b8b1b48c87fbae5f432edf371a35c82e77e21468ef97cda6f54d34f1cf9bb010235d62904bb0669793457ed1c3b2a89723
2022-05-31 12:06:32 -04:00
UdjinM6
edc8621619
Merge pull request #4820 from Munkybooty/misc-backports-18
backport: Misc backports 18
2022-05-30 19:35:27 +03:00
UdjinM6
c20c40fab4
chore(tests): Create/destroy g_txindex in TestChainSetup (#4855) 2022-05-30 19:29:52 +03:00
MarcoFalke
910dc0c2a6 Merge #14653: rpcwallet: Add missing transaction categories to rpc helptexts
f3f6dde56e Test coinbase category in wallet rpcs (andrewtoth)
e982f0b682 Add all category options to wallet rpc help (andrewtoth)

Pull request description:

  The current helptext for `listtransactions`, `listsinceblock` and `gettransaction` only list two of the five possible options for `category`. This incorrectly implies that these are the only two options, and can cause problems if the other three options aren't accounted for. Also, some of the documentation is incorrect when specifying which options are returned for which categories.

  This PR updates the helptext for these RPCs and adds a functional regression test for the cases when the other three categories are returned.

Tree-SHA512: 67dd7ff6269a3b0f17f5d1a61b0ae1fb1f3778f05e1c440bfbb9b3a005c9c6d740abcace20f3d597cf2bd6779c494448690f13fab0bd2340f206213bc7890b51
2022-05-30 01:11:05 -04:00
MeshCollider
22ebfbd6bf Merge #14821: Replace CAffectedKeysVisitor with descriptor based logic
0e75f44a0 Replace CAffectedKeysVisitor with descriptor based logic (Pieter Wuille)

Pull request description:

  It seems we don't need a custom visitor pattern anymore to find what keys are affected by a script. Instead, infer the descriptor, and see which keys it expands to.

Tree-SHA512: 8a52f61fb74e8ebfd8d02e759629e423ced6bd7d9a9ee7c4bdd2cca8465bc27b951cc69c8d835244a611ba55c6d22f83b81acef05487cb988c88c0951b797699
2022-05-30 01:11:05 -04:00
Jonas Schnelli
13ff3d6291 Merge #14608: qt: Remove the "Pay only required fee..." checkbox
a16f44c04 qt: Remove "Pay only required fee" checkbox (Hennadii Stepanov)
8711cc0c7 qt: Improve BitcoinAmountField class (Hennadii Stepanov)

Pull request description:

  Ref #13280
  This PR removes the "Pay only the required fee..." checkbox from the custom transaction fee section in the "Send" tab. Instead, a minimum value will be enforced on the custom fee input box.

  All comments from #13280 are addressed.

  Before:
  ![screenshot from 2018-10-30 16-42-18](https://user-images.githubusercontent.com/32963518/47726622-866d8e80-dc63-11e8-8670-3f97ff0fa5da.png)

  After:
  ![screenshot from 2018-10-30 16-40-37](https://user-images.githubusercontent.com/32963518/47726633-8f5e6000-dc63-11e8-82cf-5b9ff4aae91d.png)

  cc: @promag @MarcoFalke @Sjors

Tree-SHA512: 073577d38d8353b10e8f36fb52e3c6e81dd45d25d84df9b9e4f78f452ff0bdbff3e225bdd6122b5a03839ffdcc2a2a08175f81c2541cf2d12918536abbfa3fd1
2022-05-30 01:11:05 -04:00
Wladimir J. van der Laan
d413109da5 Merge #13558: Drop unused GetType() from CSizeComputer
893628be0166b4096b6e52f516e0f65bb63a75a2 Drop minor GetSerializeSize template (Ben Woosley)
da74db0940720407fafaf3582bbaf9c81a4d3b4d Drop unused GetType() from CSizeComputer (Ben Woosley)

Pull request description:

  Based on conversation in #13462, it seems the serialization `GetType` has very narrow use/effect. In every case except for `CAddress`, which specifically relates to a network peer's address, not a wallet address etc., the serialized representation of an object is irrespective of its destination / type.

  This removes the unused `GetType` method from `CSizeComputer` as a step to further narrowing that use.

Tree-SHA512: e72b8e9e5160396691e05aeaee3aba5a57935a75bd5005cfcc7fb51c936f3d1728a397f999da5c36696506dd815fafa5c738f3894df8864f25f91f639eba9c3d
2022-05-30 01:11:03 -04:00
Wladimir J. van der Laan
70e749cd98 Merge #13248: [gui] Make proxy icon from statusbar clickable
Clicking on the proxy icon will open settings showing the network tab
              Create enum Tab in OptionsModel
              Use new connect syntax
              Use lambda for private slots
2022-05-30 01:10:43 -04:00
UdjinM6
c6b734f99c
fix(qt): Disable "Show address QR code" menu items/buttons when no qrencode support was compiled in (#4854) 2022-05-29 23:42:18 +03:00
PastaPastaPasta
604cdbc447
Merge pull request #4642 from Munkybooty/backports-0.18-pr19
Backports 0.18 pr19
2022-05-29 15:05:15 -05:00
PastaPastaPasta
e7b6ab67f2
Merge pull request #4703 from kittywhiskers/assumeutxo2
merge bitcoin#16240...21526: assumeutxo project backports (part 2)
2022-05-29 14:39:11 -05:00
Odysseas Gabrielides
3fcfe3f176
fix!: Return FinalCommitment in qrinfo (instead of simply quorumHash) (#4850) 2022-05-28 11:37:20 -05:00
Odysseas Gabrielides
145fee358d
Adjusted keepOldConnections value for llmq_devnet (#4851) 2022-05-27 22:51:32 +03:00
Odysseas Gabrielides
acb1dd6179
fix!: llmqTypeInstantSend deactivation prevention if used for other purposes (#4848) 2022-05-26 23:16:13 +03:00
Konstantin Akimov
d8cc65bd4d
feat(qt): UI fixes for window "Wallet Repair" (#4846)
* Qt: fix layout of components on "Wallet Repair" window

* Qt: refactor ui xml config

It orders components accordingly their positions on windows and fixes space indentation
2022-05-25 10:12:40 -05:00
fanquake
0cb7934d88 Merge #17242: refactor: Remove unused cacheSigStore from CheckInputsFromMempooAndCache
0a433fc876d82df1005f175c1254fff62f0f36f8 [validation] Remove unused cacheSigStore from CheckInputsFromMempoolAndCache (John Newbery)

Pull request description:

  CheckInputsFromMempoolAndCache() is only called in one place, and
  cacheSigStore is set to true in that call site. Remove the argument
  entirely.

  Also improve commenting.

ACKs for top commit:
  MarcoFalke:
    unsigned ACK 0a433fc876d82df1005f175c1254fff62f0f36f8 Comment looks good
  jamesob:
    ACK 0a433fc876
  laanwj:
    ACK 0a433fc876d82df1005f175c1254fff62f0f36f8
  fanquake:
    ACK 0a433fc876d82df1005f175c1254fff62f0f36f8. Checked that `CheckInputsFromMempoolAndCache` is only called once, in `MemPoolAccept::ConsensusScriptChecks`, and that `cacheSigStore` is true.

Tree-SHA512: e4b4d2550e35df55c8f8fa4c539174cc2d3728112ddb937cb2ff759d8630a01566b5ec42a70a82e33994e6586f5a457a75a59f64b15d27c65331c723cbb097af
2022-05-23 02:23:02 -04:00
Wladimir J. van der Laan
1d1cca6fb0 Merge #17080: consensus: Explain why fCheckDuplicateInputs can not be skipped and remove it
fa928134075220254a15107c1d9702f4e66271f8 consensus: Explain why fCheckDuplicateInputs can not be skipped and remove it (MarcoFalke)

Pull request description:

  As a follow up to CVE-2018-17144, this removes the unused `fCheckDuplicateInputs` parameter and explains why the test can not be disabled. Apart from protecting against a dumb accident in the future, this should document the logic in the code. There is a technical write-up that explains how the underlying coins database behaves if this test is skipped: https://bitcoincore.org/en/2018/09/20/notice/#technical-details. However, it does not explicitly mention why the test can not be skipped. I hope my code comment does that.

ACKs for top commit:
  jnewbery:
    ACK fa928134075220254a15107c1d9702f4e66271f8
  amitiuttarwar:
    utACK fa928134075220254a15107c1d9702f4e66271f8
  Empact:
    Code review ACK fa92813407
  promag:
    ACK fa928134075220254a15107c1d9702f4e66271f8.

Tree-SHA512: fc1ef670f1a467c543b84f704b9bd8cc7a59a9f707be048bd9b4e85fe70830702aa560a880efa2c840bb43818ab44dfdc611104df04db2ddc14ff92f46bfb28e
2022-05-23 02:23:02 -04:00
Wladimir J. van der Laan
3dbc611e55 Merge #14993: rpc: Fix data race (UB) in InterruptRPC()
6c10037f72073eecc674c313580ef50a4f1e1e44 rpc: Fix data race (UB) in InterruptRPC() (practicalswift)

Pull request description:

  Fix data race (UB) in `InterruptRPC()`.

  Before:

  ```
  $ ./configure --with-sanitizers=thread
  $ make
  $ test/functional/test_runner.py feature_shutdown.py
  …
  SUMMARY: ThreadSanitizer: data race rpc/server.cpp:314 in InterruptRPC()
  …
  ALL                 | ✖ Failed  | 2 s (accumulated)
  ```

  After:

  ```
  $ ./configure --with-sanitizers=thread
  $ make
  $ test/functional/test_runner.py feature_shutdown.py
  …
  ALL                 | ✓ Passed  | 3 s (accumulated)
  ```

Tree-SHA512: b139ca1a0480258f8caa7730cabd7783a821d906630f51487750a6b15b7842675ed679747e1ff1bdade77d248807e9d77bae7bb88da54d1df84a179cd9b9b987
2022-05-23 02:15:51 -04:00
Wladimir J. van der Laan
15df1dcbe4 Merge #13966: gui: When private key is disabled, only show watch-only balance
82d6c5aad gui: Show watch-only eye instead of HD disabled (Chun Kuan Lee)
fe1ff5026 Hide spendable label if priveate key is disabled (Chun Kuan Lee)

Pull request description:

  If a wallet is in private key disabled mode, the spendable balance is always zero, it does not have to show on GUI. Show the watch-only balance at normal balance column if a wallet is in that mode.

  ![image](https://user-images.githubusercontent.com/11154118/45662527-dfaab400-bb34-11e8-98c8-c06ac5c0b08a.png)

Tree-SHA512: 8b535427d26d3f8e61081f50e4773bd25656be042d378fd34cf647e9a0065cb4dfb67a8ab9fb4fbf5f196390df8cb983ebf2f0fa8a6503b7c046c56bec87ba72
2022-05-23 02:15:51 -04:00
MarcoFalke
a557022252 Merge #14092: tests: Dry run bench_bitcoin as part "make check" to allow for quick identification of assertion/sanitizer failures in benchmarking code
dfef0df840 tests: Dry run bench_bitcoin (-evals=1 -scaling=0: <1 second running time) as part "make check" to allow for quick identification of assertion/sanitizer failures in benchmarking code (practicalswift)
00c6306a61 Remove RUN_BENCH logic (practicalswift)

Pull request description:

  Dry run `bench_bitcoin` (`-evals=1 -scaling=0`: <1 second running time) as part `make check` to allow for quick identification of assertion/sanitizer failures or crashes in benchmarking code.

  This is already tested in Travis but it is nice to have it locally too. The cost is near zero.

Tree-SHA512: 1f51b86b34bf97f75785f2694891d80f1bfb3e050211e6f6c35d8d9bc80c75bdebaa5ebfa51855ac0cf76d8773c3026bc576f60d0227afb0e646d728b83abde7
2022-05-23 02:15:41 -04:00
MarcoFalke
26d6ace1c2 Merge #14212: build: Remove libssl from LDADD unless gui
cccc362d62 build: Remove libssl from LDADD unless gui (MarcoFalke)

Pull request description:

  libssl is only used by the gui, so no need to LDADD it to the other tools and binaries

  Follow up of the commit which removed rpcssl: 40b556d374

Tree-SHA512: 9dbdf4faf40699cea3a37349ac83dbcacdaa062f5338416ff4ba77924c47d9e148b27218165c5aa3584a1ef4899e0fa237ff571208aa0b98803761e802d1e5dc
2022-05-23 02:15:41 -04:00
Wladimir J. van der Laan
d3d2d5fa17 Merge #15456: Enable PID file creation on WIN
3f5ad622e5fe0781a70bee9e3322b23c2352e956 Enable PID file creation on Windows - Add available WIN PID function - Consider WIN32 in each relevant case - Add new preprocessor definitions to suppress warning - Update error message for generic OS (riordant)

Pull request description:

  # Introduction

  As discussed with @laanwj on IRC:

  - PID file creation was never enabled for Windows, as the `pid_t` filetype is not available for it. However, the WIN32 API contains the header [`Processthreadsapi.h`](https://github.com/CodeShark/x86_64-w64-mingw32/blob/master/include/processthreadsapi.h) which in turn contains the function [`GetCurrentProcessId()`](https://docs.microsoft.com/en-gb/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getcurrentprocessid). ~~This function is called at a higher level by [`_getpid()`](https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/getpid?view=vs-2017)~~ EDIT: `_getpid()` is not available to the MSVC compiler used in the AppVeyor build. As a result, I have changed the function call to`GetCurrentProcessId()`, which performs the same function and is available to both MinGW & MSVC.
  This allows one to capture the PID in Windows, without any additional includes - the above function is already available.

  - Within this PR, I have added a separate line that calls `GetCurrentProcessId()` in the case of a WIN compilation, and the usual `getpid()` otherwise. All code blocks processing PID file logic that avoid WIN32 have been changed to consider it. I have also updated the preprocessor definitions in `libbitcoin_server.vcxproj.in` to suppress a warning related to `std::strerror` for the MSVC build, that was causing the AppVeyor build to fail (see @fanquake comment below).

  # Rationale
  - Consistency between OS's running Bitcoin
      - Applications which build off of `bitcoind`, such as novel front-end clients, often need access to the PID in order to control the daemon. Instead of designing some alternate way of doing this for one system, it should be consistent between all of them.

  In collaboration with @joernroeder

Tree-SHA512: 22fcbf866e99115d12ed29716e68d200d4c118ae2f7b188b7705dc0cf5f0cd0ce5fb18f772744c6238eecd9e6d0922c615e2f0e12a7fe7c810062a79d97aa6a2
2022-05-23 02:15:41 -04:00
Wladimir J. van der Laan
8a62dfc196 Merge #15477: doc: Remove misleading hint in getrawtransaction
9999879f56c88ca2837f5d18e6688917ba96e9e2 refactor: Use RPCHelpMan::IsValidNumArgs in getrawtransaction (MarcoFalke)
fa9ff8fe212ae40a1ef4980455bf916bc044fee2 doc: Remove misleading hint in getrawtransaction (MarcoFalke)

Pull request description:

  For 0.18.0

  I asked this line to be added in #15159, which was wrong because getmempoolentry does not return the raw transaction hex.

Tree-SHA512: 7ac85500c8192314347b7283cd369196bb959c124863642b6c1ce73d5662b1cbe4f42ded9c374dac6657458ab70b01810caf1235dd1d2b404bf376ebf09efa69
2022-05-23 02:15:41 -04:00
Kittywhiskers Van Gogh
22934231dc merge bitcoin#19604: Pass mempool pointer to UnloadBlockIndex/GetCoinsCacheSizeState 2022-05-23 10:40:35 +05:30
Kittywhiskers Van Gogh
cbdc7e09ba merge bitcoin#19589: Avoid useless mempool query in gettxoutproof 2022-05-23 10:40:35 +05:30
Kittywhiskers Van Gogh
faaf840016 partial bitcoin#19204: Reduce inv traffic during IBD 2022-05-23 10:40:35 +05:30
Kittywhiskers Van Gogh
2fb3a9fbf5 merge bitcoin#18637: allow cache resize after init
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-05-23 10:39:43 +05:30
Kittywhiskers Van Gogh
c1ed4cbdae merge bitcoin#18615: Avoid accessing free'd memory in validation_chainstatemanager_tests 2022-05-23 10:39:43 +05:30
Kittywhiskers Van Gogh
35ee0b4b89 merge bitcoin#19323: Fix regression in *txoutset* in GUI console 2022-05-23 10:39:43 +05:30
Kittywhiskers Van Gogh
8b38752be3 merge bitcoin#19056: Make gettxoutsetinfo/GetUTXOStats interruptible 2022-05-23 10:39:43 +05:30
Kittywhiskers Van Gogh
0fbe1a2b95 merge bitcoin#18809: Do not advertise dumptxoutset as a way to flush the chainstate 2022-05-23 10:39:43 +05:30
Kittywhiskers Van Gogh
3ba8431900 merge bitcoin#16899: UTXO snapshot creation (dumptxoutset)
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-05-23 10:38:33 +05:30
PastaPastaPasta
22a24ab5b7
Merge pull request #4801 from kittywhiskers/deglobalization2
backport: bitcoin#18038, #14193, #17564, #17999, #18740, #19096, #16426, #17737, #18698: deglobalization backports (part 2)
2022-05-19 11:36:36 -05:00
UdjinM6
7e74de3d28
chore(qt): 19671 follow-up: drop zapwallettxes from gui (#4841) 2022-05-18 23:28:49 +03:00
Odysseas Gabrielides
73cf7ff978
fix!: incorrect CalcCbTxMerkleRootQuorums with rotation (#4833)
* Fix for CalcCbTxMerkleRootQuorums with rotation

* Added check for merkleRootQuorums in feature_llmq_rotation

* Correct logging

* Update test/functional/feature_llmq_rotation.py

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* Update test/functional/feature_llmq_rotation.py

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* lint: fix python linter

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: pasta <pasta@dashboost.org>
2022-05-18 12:45:15 -05:00
Kittywhiskers Van Gogh
7f2cfaeadd rpc: remove remnant BlockIndex global invocations 2022-05-18 20:53:41 +05:30
Kittywhiskers Van Gogh
761305d44d merge bitcoin#18698: Make g_chainman internal to validation 2022-05-18 20:53:41 +05:30
Kittywhiskers Van Gogh
8b9e784a64 merge bitcoin#17737: Add ChainstateManager, remove BlockManager global
Co-authored-by: "UdjinM6 <UdjinM6@users.noreply.github.com>"
2022-05-18 20:53:40 +05:30
Kittywhiskers Van Gogh
f2300bc9cf merge bitcoin#16426: Reverse cs_main, cs_wallet lock order and reduce cs_main locking
Co-authored-by: "UdjinM6 <UdjinM6@users.noreply.github.com>"
2022-05-18 20:53:35 +05:30
Kittywhiskers Van Gogh
f8924cebb8 merge bitcoin#19096: Remove g_rpc_chain global 2022-05-18 20:50:50 +05:30
Kittywhiskers Van Gogh
1a65972c2e merge bitcoin#18740: Remove g_rpc_node global 2022-05-18 20:50:50 +05:30
Kittywhiskers Van Gogh
465ea129bc merge bitcoin#17564: Use mempool from node context instead of global 2022-05-18 20:49:34 +05:30
Kittywhiskers Van Gogh
a250f2c977 merge bitcoin#14193: Add missing mempool locks
Co-authored-by: "UdjinM6 <UdjinM6@users.noreply.github.com>"
2022-05-18 20:49:34 +05:30