Commit Graph

25013 Commits

Author SHA1 Message Date
MarcoFalke
c342ce95b8
Merge bitcoin/bitcoin#22146: Reject invalid coin height and output index when loading assumeutxo
fa9ebedec3f982bb5bb459ea33d74c94d9b5cec4 Reject invalid coin height and output index when loading assumeutxo (MarcoFalke)

Pull request description:

  It should be impossible to have a coin at a height higher than the height of the snapshot block, so reject those early to avoid integer wraparounds and hash collisions later on.

  Same for the outpoint index.

  Both issues were found by fuzzing:

  * The height issue by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34793
  * The outpoint issue by my fuzz server: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34793#c2

ACKs for top commit:
  practicalswift:
    cr ACK fa9ebedec3f982bb5bb459ea33d74c94d9b5cec4: patch looks correct
  jamesob:
    crACK fa9ebedec3
  theStack:
    Code review ACK fa9ebedec3f982bb5bb459ea33d74c94d9b5cec4
  benthecarman:
    crACK fa9ebedec3f982bb5bb459ea33d74c94d9b5cec4

Tree-SHA512: dae7caee4b3862b23ebdf2acb7edec4baf75b0dbf1409b370b1a73aa6b632b317ebfac596dcbaf4edfb1301b513f45465ea75328962460f35e2af0d7e547c9ac
2024-02-28 13:16:38 -06:00
MarcoFalke
0557c32264
Merge bitcoin/bitcoin#22202: test: Add temporary coinstats suppressions
faca40ec68a25180f90a5b9ef017f931354d5bc6 test: Add temporary coinstats suppressions (MarcoFalke)

Pull request description:

  Needed for my fuzzer to continue to run

ACKs for top commit:
  practicalswift:
    cr ACK faca40ec68a25180f90a5b9ef017f931354d5bc6: suppression looks necessary (temporarily)

Tree-SHA512: 5bdff9a24a60546cfe31e775fa2aa5e238aefda2ed2604bef18c82b1b80c51ca3cbe058d6c7988fa75305258b70076036a3e430b9b7de13a111309fa7a66745b
2024-02-28 13:16:37 -06:00
MarcoFalke
3450fa5fe4
Merge bitcoin/bitcoin#21846: fuzz: Add -fsanitize=integer suppression needed for RPC fuzzer (generateblock)
575792e6ffe23c8236a1f8431f6be445e448809b fuzz: Add -fsanitize=integer suppression needed for RPC fuzzer (practicalswift)

Pull request description:

  Add `-fsanitize=integer` suppression needed for RPC fuzzer (`generateblock`).

  Context: https://github.com/bitcoin-core/qa-assets/pull/59/checks?check_run_id=2494624259

  ```
  miner.cpp:130:21: runtime error: implicit conversion from type 'int64_t' (aka 'long') of value 244763573890 (64-bit, signed) to type 'uint32_t' (aka 'unsigned int') changed the value to 4245405314 (32-bit, unsigned)
      #0 0x56143974eaf3 in BlockAssembler::CreateNewBlock(CScript const&) miner.cpp:130:21
      #1 0x56143993690d in generateblock()::$_4::operator()(RPCHelpMan const&, JSONRPCRequest const&) const rpc/mining.cpp:370:127
  ```

ACKs for top commit:
  practicalswift:
    > review ACK [575792e](575792e6ff), but this function shouldn't be called by the rpc fuzzer, at least not without sanitizing num_blocks
  MarcoFalke:
    review ACK 575792e6ffe23c8236a1f8431f6be445e448809b

Tree-SHA512: c2133d1064bf17df0e7749ef4a0f7664b5c8082040491a1035d39f0c6e5d96997b347ef2354411e285c7f1f973e34515f1c3c88eb3de60fab64ca4d2adf6dd74
2024-02-28 13:16:35 -06:00
pasta
41eb1b2b1e
Merge #5878: backport: Merge bitcoin#21818, 21752
1e613f0ca1 Merge bitcoin/bitcoin#21752: doc: Clarify that feerates are per virtual size. (Vijay Manikpuri)
ad73978530 Merge bitcoin/bitcoin#21818: doc:  fixup -coinstatsindex help, update bitcoin.conf and files.md (fanquake)

Pull request description:

  bitcoin backports

Top commit has no ACKs.

Tree-SHA512: d0db0e906a10a3168c8fbab64e960b8c1130313bb27c3db08b7e85734fa27e193c1411e45167f76089236f1f5f5dfceffb8d794574057ebe071f0394ac4f62bf
2024-02-27 12:01:26 -06:00
Vijay Manikpuri
1e613f0ca1
Merge bitcoin/bitcoin#21752: doc: Clarify that feerates are per virtual size.
fae196147bae11202c0d54543dc12ba5d92ab0cc doc: Clarify that feerates are per virtual size (MarcoFalke)
fa83e95ac6f318caa38016a08fa4e402c3b05833 scripted-diff: Clarify that feerates are per virtual size (MarcoFalke)

Pull request description:

  By implementing segwit, it is already clear that all feerates in Bitcoin Core are denoted in (amount/virtual size). Though, there is  inconsistency, as some places use kvB, some use kB. Thus, replace all with "kvB".

  See also commit 6da3afbaee5809ebf6d88efaa3958c505c2d71c7, which did the replacement for wallet RPCs.

ACKs for top commit:
  ryanofsky:
    Code review ACK fae196147bae11202c0d54543dc12ba5d92ab0cc. Checked instances where units were being added in the second commit and they all looked right.

Tree-SHA512: ab70d13cde7d55c1ac931bddc2b45aa218fc75ef46cb6ea9e5a30b1d4dbf27889c2b6357299a6c5427912443a46ec3592a4809dae335e03162bd2120a0f7f8ad
2024-02-27 12:01:05 -06:00
fanquake
ad73978530
Merge bitcoin/bitcoin#21818: doc: fixup -coinstatsindex help, update bitcoin.conf and files.md
54133c59b80ccac85eaebb0668cd2f0fe360b323 doc: add indexes/coinstats/db/ to files.md (Jon Atack)
5d1050f51647980b1204e3b44b319ab31948d11f doc: fix -coinstatsindex help, and test/rpc touchups (Jon Atack)
e041ee0a80e5f3e10301acf8512a18864af750cd doc: add coinstatsindex to bitcoin.conf (Jon Atack)

Pull request description:

ACKs for top commit:
  Sjors:
    utACK 54133c59b80ccac85eaebb0668cd2f0fe360b323
  MarcoFalke:
    cr ACK 54133c59b80ccac85eaebb0668cd2f0fe360b323
  clarkmoody:
    utACK 54133c5

Tree-SHA512: 1a7f3e89873b7dc79ec71d5d39e9e3e4977ce43cc4bee208ad55291bef1bb319a9d1c34ed84a87d6a803db983bdfd0af4d9f396cec0bec86b1701ebbb6f34378
2024-02-27 12:01:02 -06:00
pasta
4ff0c95400
Merge #5900: backport: merge bitcoin#21000, #21586, #21599, #21604, #23859, partial bitcoin#21798, #26341 (auxiliary backports: part 13)
d033cd55be partial bitcoin#26341: add BIP158 false-positive element check in rpc_scanblocks.py (Kittywhiskers Van Gogh)
eab94ac07b merge bitcoin#23859: Add missing suppressions for crypto_diff_fuzz_chacha20.cpp (Kittywhiskers Van Gogh)
0e8d4a1a95 partial bitcoin#21798: Create a block template in tx_pool targets (Kittywhiskers Van Gogh)
ad71db2dcc merge bitcoin#21604: Document why no symbol names can be used for suppressions (Kittywhiskers Van Gogh)
c116d8405a merge bitcoin#21599: Replace file level integer overflow suppression with function level suppression (Kittywhiskers Van Gogh)
8a0dc8cfa1 merge bitcoin#21586: Add missing suppression for signed-integer-overflow:txmempool.cpp (Kittywhiskers Van Gogh)
53cf0d5cea merge bitcoin#21000: Add UBSan suppressions needed for fuzz tests to not warn under -fsanitize=integer (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependency for https://github.com/dashpay/dash/pull/5902
  * [bitcoin#21586](https://github.com/bitcoin/bitcoin/pull/21586) was listed as DNM in the backports Google Sheet as listed below as it is `reverted as #23059`
    ![Listing of bitcoin#21586 as DNM](https://github.com/dashpay/dash/assets/63189531/413c116a-b3cb-4b58-becd-0d731b0e4b0b)
    * [bitcoin#23059](https://github.com/bitcoin/bitcoin/pull/23059) actually reverts [bitcoin#22925](https://github.com/bitcoin/bitcoin/pull/22925) (which deals with `addrman.cpp`), not [bitcoin#21586](https://github.com/bitcoin/bitcoin/pull/21586) (which deals with `txmempool.cpp`).

  ## Breaking Changes

  None, changes are limited to fuzzing, functional tests and undefined behavior exclusions

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)**
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: 7b6c3fcb462edc9bbcc12a0c4eab052d3ef3a6048281b162dd5650f311f6e1bae7a958adf1c03aa0dea09c56c1ddbc99d98a44023fd81f83b2325fd79dc32e80
2024-02-27 10:06:42 -06:00
Kittywhiskers Van Gogh
d033cd55be
partial bitcoin#26341: add BIP158 false-positive element check in rpc_scanblocks.py
excludes:
- fa54d3011ed0cbb7bcdc76548423ba41f0042832
2024-02-27 10:06:20 -06:00
Kittywhiskers Van Gogh
eab94ac07b
merge bitcoin#23859: Add missing suppressions for crypto_diff_fuzz_chacha20.cpp 2024-02-27 10:06:20 -06:00
Kittywhiskers Van Gogh
0e8d4a1a95
partial bitcoin#21798: Create a block template in tx_pool targets
excludes:
- fa03d0acd (except ubsan suppression entry)
2024-02-27 10:06:19 -06:00
Kittywhiskers Van Gogh
ad71db2dcc
merge bitcoin#21604: Document why no symbol names can be used for suppressions 2024-02-27 10:06:19 -06:00
Kittywhiskers Van Gogh
c116d8405a
merge bitcoin#21599: Replace file level integer overflow suppression with function level suppression 2024-02-27 10:06:19 -06:00
Kittywhiskers Van Gogh
8a0dc8cfa1
merge bitcoin#21586: Add missing suppression for signed-integer-overflow:txmempool.cpp 2024-02-27 10:06:19 -06:00
Kittywhiskers Van Gogh
53cf0d5cea
merge bitcoin#21000: Add UBSan suppressions needed for fuzz tests to not warn under -fsanitize=integer 2024-02-27 10:06:18 -06:00
pasta
e982db279c
Merge #5897: backport: trivial 2024 02 22
098748ac6a Merge bitcoin/bitcoin#25589: test: speedup wallet_coinbase_category.py (MacroFake)
8cc7f38017 Merge bitcoin/bitcoin#25568: Remove my key from trusted-keys (MacroFake)
d1018ff55a Merge bitcoin/bitcoin#25506: Rephrase error message for invalid value of `-peertimeout` (MacroFake)
64a6f74de1 Merge bitcoin/bitcoin#25457: Use more specific path when including `memenv.h` header (laanwj)
581dba9914 Merge bitcoin/bitcoin#25451: test: `-whitebind` and `-bind`  with `-listen=0` should throw an error (MacroFake)
6a8b3f2b40 Merge bitcoin/bitcoin#25440: log: Use consistent wording in random.cpp log (MacroFake)
6af409da1a Merge bitcoin/bitcoin#25425: build: Fix `::_wsystem` check (laanwj)
fa14df62bf Merge bitcoin/bitcoin#25370: test: check for `getblocktxn` request with out-of-bounds tx index (MacroFake)
da4fd2eaf2 Merge bitcoin/bitcoin#25367: [contrib] message-capture-parser: fix out of bounds error for empty vectors (MacroFake)

Pull request description:

  ## Issue being fixed or feature implemented
  batch of trivial backports; small batch as a lot of them ended up causing test failures

  ## What was done?

  ## How Has This Been Tested?
  Building locally; tests not ran

  ## Breaking Changes
  Didn't see any yet; didn't review much yet

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: e35c74c3f93556e42803da659ded780a8c2ba60a7ae322b8e15590189ddcef47dbccbd42b195c4a09a3ba149dc53c129e0c761cd299d66a8e40b7b4bc5fd4e87
2024-02-27 10:03:09 -06:00
MacroFake
098748ac6a
Merge bitcoin/bitcoin#25589: test: speedup wallet_coinbase_category.py
76a84c0a6cac3df711b1ed907a46c905cb85c485 test: speedup wallet_coinbase_category.py (furszy)

Pull request description:

  No need to create a chain (200 extra blocks), nor use the cache, for it.

Top commit has no ACKs.

Tree-SHA512: beec64ba6c580d475e19700371ae155f4f3d74325879802da83d02f4153a752d5829b8a4ed77e0c893e79cbc26f66389eed90ac2e8b03a59f6c630ee9333355c
2024-02-27 10:02:44 -06:00
MacroFake
8cc7f38017
Merge bitcoin/bitcoin#25568: Remove my key from trusted-keys
8cbeab4d90437765d1e63b95ede81e4d5e7c975f Remove my key from trusted-keys (Pieter Wuille)

Pull request description:

ACKs for top commit:
  achow101:
    ACK 8cbeab4d90437765d1e63b95ede81e4d5e7c975f
  junderw:
    ACK 8cbeab4d90437765d1e63b95ede81e4d5e7c975f
  kristapsk:
    ACK 8cbeab4d90437765d1e63b95ede81e4d5e7c975f
  1440000bytes:
    ACK 8cbeab4d90
  Zero-1729:
    ACK 8cbeab4d90437765d1e63b95ede81e4d5e7c975f

Tree-SHA512: a1c313984a7ed8841bc6f95533eedc8c662003cbf79b060b397679fcb5eafdc27527f8cf9894b58fe382a3d1cfac3ade3ea61003a6514bdb2cb568ef21bb02c2
2024-02-27 10:02:44 -06:00
MacroFake
d1018ff55a
Merge bitcoin/bitcoin#25506: Rephrase error message for invalid value of -peertimeout
748a10e896b84f084f573472428b76d49c3c9795 rephrase error for invalid timeout (/dev/fd0)

Pull request description:

  Fixes https://github.com/bitcoin/bitcoin/pull/25505#issuecomment-1170479405

ACKs for top commit:
  kristapsk:
    re-ACK 748a10e896b84f084f573472428b76d49c3c9795
  brunoerg:
    ACK 748a10e896b84f084f573472428b76d49c3c9795
  w0xlt:
    ACK 748a10e896

Tree-SHA512: 5602bb207933375004ffdfb173dd2a8302ea6005fd6f959a02e6670aa784923b4b459755153de4d24efc0fb0510ffc1e08cf8fc0a7d15ecf1529c9aea791d4df
2024-02-27 10:02:44 -06:00
laanwj
64a6f74de1
Merge bitcoin/bitcoin#25457: Use more specific path when including memenv.h header
f3b5c1e4522f13060e9ace2913203e7a6b2eb2d1 Use more specific path when including `memenv.h` header (Hennadii Stepanov)

Pull request description:

  This PR makes our code base compatible with `leveldb`'s own CMake [project](https://github.com/bitcoin/bitcoin/blob/master/src/leveldb/CMakeLists.txt).

  Required for https://github.com/hebasto/bitcoin/pull/3.

  As a justification, please note that internally `leveldb` uses `#include "helpers/memenv/memenv.h"` rather `#include "memenv.h"`.

  #### Guix builds on `arm64`:
  ```
  # find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  0e069318a681f9f848e803e5df8b25426b47ddc8994a21e0b83f0f86e7db7ae0  guix-build-f3b5c1e4522f/output/arm-linux-gnueabihf/SHA256SUMS.part
  e68e1b65514d42f1e33b2754356b68d3ddea1fe9df89d02df51375792867dd8c  guix-build-f3b5c1e4522f/output/arm-linux-gnueabihf/bitcoin-f3b5c1e4522f-arm-linux-gnueabihf-debug.tar.gz
  6b1b5c1f9525e8e467d038751bfc070ed6cbfbd42b17add2faac76fee421343e  guix-build-f3b5c1e4522f/output/arm-linux-gnueabihf/bitcoin-f3b5c1e4522f-arm-linux-gnueabihf.tar.gz
  9f8e941f37aa243fd36c1eaade9b88081b2a27562bfe7d8208d3c6021ecb6f03  guix-build-f3b5c1e4522f/output/arm64-apple-darwin/SHA256SUMS.part
  88cf46d00e67f3493e6ecbb85002ca0ff93dd47af3e93e51d95f92ed3218752f  guix-build-f3b5c1e4522f/output/arm64-apple-darwin/bitcoin-f3b5c1e4522f-arm64-apple-darwin-unsigned.dmg
  5afa9ae6943386ae600d612f1ed4831c0e92011f87284ae25465c2ffc6b8bb2b  guix-build-f3b5c1e4522f/output/arm64-apple-darwin/bitcoin-f3b5c1e4522f-arm64-apple-darwin-unsigned.tar.gz
  0b72a400f842ff31233ced2aadf0b8309ba6695b075b9f4345708dca235f6368  guix-build-f3b5c1e4522f/output/arm64-apple-darwin/bitcoin-f3b5c1e4522f-arm64-apple-darwin.tar.gz
  7912417348175c293002ccd3413ecb53c5a1d29a234959a94bdbd6481bd58d08  guix-build-f3b5c1e4522f/output/dist-archive/bitcoin-f3b5c1e4522f.tar.gz
  f8d28c57dc97fd1e6844fcb2679f2a44fc360ef37aad3fc4185fa1d091baf4b1  guix-build-f3b5c1e4522f/output/powerpc64-linux-gnu/SHA256SUMS.part
  c219a024c95bcdfe28961c18b8118152becf201b00f9e0e28ff35a7a2646fc9b  guix-build-f3b5c1e4522f/output/powerpc64-linux-gnu/bitcoin-f3b5c1e4522f-powerpc64-linux-gnu-debug.tar.gz
  2790ff48593be1699e4175cc31a6cc11fd2e758cdc99220c5a87ddb658d8a794  guix-build-f3b5c1e4522f/output/powerpc64-linux-gnu/bitcoin-f3b5c1e4522f-powerpc64-linux-gnu.tar.gz
  8d13f9f6141776263faceb396cbe3089e5c165523a5da160ba9ec6814744f7d4  guix-build-f3b5c1e4522f/output/powerpc64le-linux-gnu/SHA256SUMS.part
  72c1e8d7a9f2f0ff76c1dd84b4614202ce6734cb8ff29b2cf2cfc20a218d3aa5  guix-build-f3b5c1e4522f/output/powerpc64le-linux-gnu/bitcoin-f3b5c1e4522f-powerpc64le-linux-gnu-debug.tar.gz
  ed0494b336a1ae00050137ed0d18130d5c1213e6d45fada439de4e799ebfb720  guix-build-f3b5c1e4522f/output/powerpc64le-linux-gnu/bitcoin-f3b5c1e4522f-powerpc64le-linux-gnu.tar.gz
  a2a11b57a4a93b0b079c87c303e4c5250b16994d20f87ae362850efc1c181e57  guix-build-f3b5c1e4522f/output/riscv64-linux-gnu/SHA256SUMS.part
  ff63220629ef4b318cc9c2b858204961bc29fd0e901817a39e50e6893925f153  guix-build-f3b5c1e4522f/output/riscv64-linux-gnu/bitcoin-f3b5c1e4522f-riscv64-linux-gnu-debug.tar.gz
  eb0c0b3709a2d4fe9a6c18ad7a14b90a32fe8a5a7d72f75400ae014f2c847264  guix-build-f3b5c1e4522f/output/riscv64-linux-gnu/bitcoin-f3b5c1e4522f-riscv64-linux-gnu.tar.gz
  a82bb28e2a8c6523854f4f9d6ff89d6ba096fff526f17bf6182fd6b2ebf96395  guix-build-f3b5c1e4522f/output/x86_64-apple-darwin/SHA256SUMS.part
  91d2eea67bfde7a363c6ede8c358fb3de842b55cfe428abafa7b5985d619c62c  guix-build-f3b5c1e4522f/output/x86_64-apple-darwin/bitcoin-f3b5c1e4522f-x86_64-apple-darwin-unsigned.dmg
  f3cbc79b8fac7e8a8c9ba63b774cadb5a09cd64cc942e7b68cd1fc566b371021  guix-build-f3b5c1e4522f/output/x86_64-apple-darwin/bitcoin-f3b5c1e4522f-x86_64-apple-darwin-unsigned.tar.gz
  91fb98ed086613bb85959e9fc060ef0f816d5b4d52087b003c6a72ecf1c1309b  guix-build-f3b5c1e4522f/output/x86_64-apple-darwin/bitcoin-f3b5c1e4522f-x86_64-apple-darwin.tar.gz
  62309af3fc8316abd4c8f8285c666c568c140b9312f252a47ca6611fb51fef5e  guix-build-f3b5c1e4522f/output/x86_64-linux-gnu/SHA256SUMS.part
  deb27b75f52fb40cd13bfc6d594ed5ff0d82d1c211e2a6a91b9ca06ee3b8335b  guix-build-f3b5c1e4522f/output/x86_64-linux-gnu/bitcoin-f3b5c1e4522f-x86_64-linux-gnu-debug.tar.gz
  89faeb1f32f0447d26a73253a9f581b40b01982862351a7dd0cee05c8dbf29cc  guix-build-f3b5c1e4522f/output/x86_64-linux-gnu/bitcoin-f3b5c1e4522f-x86_64-linux-gnu.tar.gz
  5de46eec42bcd1e2e0fd3c9c6978a8a945b95411a9051fac9bb8a65d6b4875a5  guix-build-f3b5c1e4522f/output/x86_64-w64-mingw32/SHA256SUMS.part
  3271137a901889a38214173f01f96ae98385ea607e9573eaa2966e68c68401e1  guix-build-f3b5c1e4522f/output/x86_64-w64-mingw32/bitcoin-f3b5c1e4522f-win64-debug.zip
  7a74bf455bffa0d2abb99ce31ea1ef8088928f54c1f3c6e27044392f27e3e752  guix-build-f3b5c1e4522f/output/x86_64-w64-mingw32/bitcoin-f3b5c1e4522f-win64-setup-unsigned.exe
  73a23fd9846e615afcd569adc79fafdcf55b0efa9c383d2d0c9579fb0f79b91a  guix-build-f3b5c1e4522f/output/x86_64-w64-mingw32/bitcoin-f3b5c1e4522f-win64-unsigned.tar.gz
  ee5f3f9eb65f0ac1c0879d0aaa88cf20d8ca9329ba505f77580a0c9b57cd3244  guix-build-f3b5c1e4522f/output/x86_64-w64-mingw32/bitcoin-f3b5c1e4522f-win64.zip
  ```

ACKs for top commit:
  laanwj:
    Code review ACK f3b5c1e4522f13060e9ace2913203e7a6b2eb2d1
  fanquake:
    ACK f3b5c1e4522f13060e9ace2913203e7a6b2eb2d1

Tree-SHA512: 62e7cf49bc4ce08c8373a0fcfaf4ca10a83d18d0d00bdb21983c25b4b9192ace74acf64362b47faa429d13dbaf63be953fd3aa3b92366603866a472f95ef09a1
2024-02-27 10:02:44 -06:00
MacroFake
581dba9914
Merge bitcoin/bitcoin#25451: test: -whitebind and -bind with -listen=0 should throw an error
ceec6808d331fa082407a734cd5f3c2f1c7d11b3 test: `-whitebind` and `-bind`  with `-listen=0` should throw an error (brunoerg)

Pull request description:

  This PR adds test coverage for the following init error:
  b9122e95f0/src/init.cpp (L872-L875)

ACKs for top commit:
  laanwj:
    Code review ACK ceec6808d331fa082407a734cd5f3c2f1c7d11b3

Tree-SHA512: 03068abe7199b1235f029871ab87a3dd4943738c592ad62d82cdcd3e0201e627624960bd3ea1fc6fc1e7da4b8e215ba3393d1cb8130e1108049f764e51dc75c0
2024-02-27 10:02:43 -06:00
MacroFake
6a8b3f2b40
Merge bitcoin/bitcoin#25440: log: Use consistent wording in random.cpp log
c01ae8f5ead6837162a2772ce792a83f66757ee4 Use consistent wording in log (Igor Bubelov)

Pull request description:

  It's a trivial change, but it bothers me a bit that two log lines in a row aren't grammatically identical while following exactly the same pattern. I've read `contributing.md` and I'm aware that changes like this are usually being ignored and dropped, but I decided to leave it here anyway in case someone feels the same way about inconsistent log messages or grammar =)

ACKs for top commit:
  laanwj:
    Code review ACK c01ae8f5ead6837162a2772ce792a83f66757ee4

Tree-SHA512: d5b3849b3a6e3de7ea9b468c05f17cacd1dbd1aca2f3401b5138383dc8d385cea9e221db558ab472c1c4c7f6921d57dcc7af89a54776c5765fa00e429694b4e7
2024-02-27 10:02:43 -06:00
laanwj
6af409da1a
Merge bitcoin/bitcoin#25425: build: Fix ::_wsystem check
b5f6a4650334d58245b45eace57f2bc23467ffc7 build: Fix `::_wsystem` check (Hennadii Stepanov)

Pull request description:

  The `::_wsystem` check has been introduced in bitcoin/bitcoin#15457, and it is broken.

  An excerpt from `config.log` for `./autogen.sh && ./configure CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site` on master (a09033e22c4f072c86a1885dd476f3059e5416d1):
  ```
  configure:29111: checking for ::_wsystem
  configure:29125: x86_64-w64-mingw32-g++-posix -std=c++17 -o conftest.exe -pipe -std=c++17 -O2  -I/home/hebasto/git/bitcoin/depends/x86_64-w64-mingw32/include/  -L/home/hebasto/git/bitcoin/depends/x86_64-w64-mingw32/lib  conftest.cpp -lssp -liphlpapi -lshlwapi -lws2_32 -ladvapi32 -luuid -loleaut32 -lole32 -lcomctl32 -lshell32 -lwinmm -lcomdlg32 -lgdi32 -luser32 -lkernel32  >&5
  conftest.cpp: In function 'int main()':
  conftest.cpp:81:15: error: '::_wsystem' has not been declared
     81 |  int nErr = ::_wsystem("");
        |               ^~~~~~~~
  configure:29125: $? = 1
  configure: failed program was:
  | /* confdefs.h */
  | #define PACKAGE_NAME "Bitcoin Core"
  | #define PACKAGE_TARNAME "bitcoin"
  | #define PACKAGE_VERSION "23.99.0"
  | #define PACKAGE_STRING "Bitcoin Core 23.99.0"
  | #define PACKAGE_BUGREPORT "https://github.com/bitcoin/bitcoin/issues"
  | #define PACKAGE_URL "https://bitcoincore.org/"
  | #define HAVE_CXX17 1
  | #define HAVE_STDIO_H 1
  | #define HAVE_STDLIB_H 1
  | #define HAVE_STRING_H 1
  | #define HAVE_INTTYPES_H 1
  | #define HAVE_STDINT_H 1
  | #define HAVE_STRINGS_H 1
  | #define HAVE_SYS_STAT_H 1
  | #define HAVE_SYS_TYPES_H 1
  | #define HAVE_UNISTD_H 1
  | #define STDC_HEADERS 1
  | #define LT_OBJDIR ".libs/"
  | #define USE_ASM 1
  | #define HAVE_CLMUL 1
  | #define ENABLE_SSE41 1
  | #define ENABLE_AVX2 1
  | #define ENABLE_X86_SHANI 1
  | #define HAVE_LIBKERNEL32 1
  | #define HAVE_LIBUSER32 1
  | #define HAVE_LIBGDI32 1
  | #define HAVE_LIBCOMDLG32 1
  | #define HAVE_LIBWINMM 1
  | #define HAVE_LIBSHELL32 1
  | #define HAVE_LIBCOMCTL32 1
  | #define HAVE_LIBOLE32 1
  | #define HAVE_LIBOLEAUT32 1
  | #define HAVE_LIBUUID 1
  | #define HAVE_LIBADVAPI32 1
  | #define HAVE_LIBWS2_32 1
  | #define HAVE_LIBSHLWAPI 1
  | #define HAVE_LIBIPHLPAPI 1
  | #define HAVE_PTHREAD_PRIO_INHERIT 1
  | #define HAVE_PTHREAD 1
  | #define _FILE_OFFSET_BITS 64
  | #define HAVE_DECL_STRERROR_R 0
  | #define HAVE_LIBSSP 1
  | #define HAVE_STDIO_H 1
  | #define HAVE_STDLIB_H 1
  | #define HAVE_UNISTD_H 1
  | #define HAVE_STRINGS_H 1
  | #define HAVE_SYS_TYPES_H 1
  | #define HAVE_SYS_STAT_H 1
  | #define HAVE_DECL_GETIFADDRS 0
  | #define HAVE_DECL_FREEIFADDRS 0
  | #define HAVE_DECL_FORK 0
  | #define HAVE_DECL_SETSID 0
  | #define HAVE_DECL_PIPE2 0
  | #define HAVE_DECL_LE16TOH 0
  | #define HAVE_DECL_LE32TOH 0
  | #define HAVE_DECL_LE64TOH 0
  | #define HAVE_DECL_HTOLE16 0
  | #define HAVE_DECL_HTOLE32 0
  | #define HAVE_DECL_HTOLE64 0
  | #define HAVE_DECL_BE16TOH 0
  | #define HAVE_DECL_BE32TOH 0
  | #define HAVE_DECL_BE64TOH 0
  | #define HAVE_DECL_HTOBE16 0
  | #define HAVE_DECL_HTOBE32 0
  | #define HAVE_DECL_HTOBE64 0
  | #define HAVE_DECL_BSWAP_16 0
  | #define HAVE_DECL_BSWAP_32 0
  | #define HAVE_DECL_BSWAP_64 0
  | #define HAVE_BUILTIN_CLZL 1
  | #define HAVE_BUILTIN_CLZLL 1
  | #define HAVE_DEFAULT_VISIBILITY_ATTRIBUTE 1
  | #define HAVE_DLLEXPORT_ATTRIBUTE 1
  | #define HAVE_FDATASYNC 0
  | #define HAVE_O_CLOEXEC 0
  | /* end confdefs.h.  */
  |
  | int
  | main (void)
  | {
  |  int nErr = ::_wsystem("");
  |
  |   ;
  |   return 0;
  | }
  configure:29130: result: no
  ```

  See https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/system-wsystem

ACKs for top commit:
  laanwj:
    Code review ACK b5f6a4650334d58245b45eace57f2bc23467ffc7

Tree-SHA512: 30cadb7e2e2e3885955ba72c2c27c5dfef2f1b0a9e02e7e811d9bd7cb2c380bab77ca9df3a476d83105de3fa01d043f995e3680b7bff5e7c33829d281b67f374
2024-02-27 10:02:43 -06:00
MacroFake
fa14df62bf
Merge bitcoin/bitcoin#25370: test: check for getblocktxn request with out-of-bounds tx index
5a8c321444c10c7c89c4222c0b47c2d83a1a9ea4 test: check for `getblocktxn` request with out-of-bounds tx index (Sebastian Falbesoner)

Pull request description:

  This PR adds missing test coverage for the `getblocktxn` message handler, in the case that any of the contained indices is out-of-bounds:
  a05876619a/src/net_processing.cpp (L2180-L2183)

ACKs for top commit:
  dunxen:
    ACK 5a8c321

Tree-SHA512: 2743c2c6d8aed57b22f825aefd60ba3e670321b60625a42ea7248e7b0fc41c73e9a5945153567c02824ba3b5f0fce7f4125bffc974973fc608b6ffbe49e14b65

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2024-02-27 10:02:43 -06:00
MacroFake
da4fd2eaf2
Merge bitcoin/bitcoin#25367: [contrib] message-capture-parser: fix out of bounds error for empty vectors
42bbbba7c83d1e2baad18b4c6f05bad1358eb117 message-capture-parser: fix out of bounds error for empty vectors (Sebastian Falbesoner)

Pull request description:

  The script [message-capture-parser.py](https://github.com/bitcoin/bitcoin/blob/master/contrib/message-capture/message-capture-parser.py) currently throws an "out of bounds" error if a message containing an empty integer vector element is tried to converted to JSON (e.g. by the BIP157 message `cfcheckpt` with empty `FilterHeaders` vector):
  ```
  Traceback (most recent call last):
    File "/home/honey/bitcoin/./contrib/message-capture/message-capture-parser.py", line 217, in <module>
      main()
    File "/home/honey/bitcoin/./contrib/message-capture/message-capture-parser.py", line 202, in main
      process_file(str(capture), messages, "recv" in capture.stem, progress_bar)
    File "/home/honey/bitcoin/./contrib/message-capture/message-capture-parser.py", line 162, in process_file
      msg_dict["body"] = to_jsonable(msg)
    File "/home/honey/bitcoin/./contrib/message-capture/message-capture-parser.py", line 85, in to_jsonable
      elif slot in HASH_INT_VECTORS and isinstance(val[0], int):
  IndexError: list index out of range
  ```

  Fix this by using the `all(...)` predicate rather to access the first element `val[0]` (which in the error case doesn't exist).

ACKs for top commit:
  laanwj:
    Code review ACK 42bbbba7c83d1e2baad18b4c6f05bad1358eb117

Tree-SHA512: 139ec6b90304a69f26ec731e6f12b216fa10e554f777505b61adfa1e569f6861a4a849159dd1eae7a1aa0427e8598af226b6f0c4015020dcac8ab109fbc35dba
2024-02-27 10:02:42 -06:00
pasta
533d8e2f11
Merge #5871: refactor: alias Dash-specific globals to NodeContext, reduce globals use in GUI, interface, RPC and test logic
fb272dd8ff refactor: use NodeContext members instead of globals in interface logic (Kittywhiskers Van Gogh)
aba57cecb4 qt: add interface for CGovernanceObject querying (Kittywhiskers Van Gogh)
8d73cec438 refactor: reduce globals use in RPC and bench, use LLMQContext members (Kittywhiskers Van Gogh)
e8270ca91b refactor: use NodeContext members instead of globals in RPC logic (Kittywhiskers Van Gogh)
2efebcac81 refactor: use aliases of globals in unit tests (Kittywhiskers Van Gogh)
89f41fa826 refactor: dereference CDeterministicMNManager instance before use (Kittywhiskers Van Gogh)
d3dfdf353c refactor: use aliases of globals in initialization logic (Kittywhiskers Van Gogh)
bb7fe582f8 refactor: rename creditPoolManager to cpoolman in NodeContext, fix order (Kittywhiskers Van Gogh)
6f08e10540 refactor: remove extraneous creditPoolManager initialization (Kittywhiskers Van Gogh)
d136c407d7 refactor: add aliases for Dash-specific global pointers in NodeContext (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Notes

  * In some limited circumstances, we need to pass a reference to a smart pointer _before_ it is initialized. This is permissible if we know for sure that the pointer will be dereferenced _after_ it is initialized (usually, by `assert`'ing `!= nullptr`). This requires us to pass the const ref of the smart pointer object, to ensure that when dereferenced, we get access to the updated value that is set later on the initialization sequence.

    This means we cannot use the bare pointer alias as an argument as it would remain `nullptr` and will not be updated.

    Currently known examples are:
    * `CChainState` through `ChainstateManager::InitializeChainstate`
      * `llmq::CChainLocksHandler` (as `llmq::chainLocksHandler`)
      * `llmq::CInstantSendManager` (as `llmq::quorumInstantSendManager`)
      * `llmq::CQuorumBlockProcessor` (as `llmq::quorumBlockProcessor`)
    * `CDSNotificationInterface`
      * `CDeterministicMNManager` (as `deterministicMNManager`)
      * `CJContext` (as `NodeContext::cj_ctx`)
      * `LLMQContext` (as `NodeContext::llmq_ctx`)

  * We can verify the absence of globals in GUI, interface, RPC and test logic with the commands below (the above caveat applies)

    ```bash
    $ function make_filter() { echo "$1->|\*$1|::$1"; }
    $ PROHIBITED_TERMS="$(make_filter creditPoolManager)|$(make_filter deterministicMNManager)|$(make_filter dstxManager)|$(make_filter governance)|$(make_filter mmetaman)|$(make_filter netfulfilledman)|$(make_filter sporkManager)";
    $ PROHIBITED_LLMQ_TERMS="$(make_filter quorumBlockProcessor)|$(make_filter quorumManager)|$(make_filter chainLocksHandler)|$(make_filter quorumInstantSendManager)";
    $ grep -E "$PROHIBITED_TERMS|$PROHIBITED_LLMQ_TERMS" src/bench/*.{cpp,h} src/node/interfaces.cpp src/qt/*.{cpp,h} src/qt/test/*.{cpp,h} src/rpc/*.{cpp,h} src/test/*.{cpp,h} src/wallet/rpc*.{cpp,h};
    src/test/validation_chainstate_tests.cpp:    CChainState& c1 = WITH_LOCK(cs_main, return manager.InitializeChainstate(&mempool, *m_node.mnhf_manager, *m_node.evodb, llmq::chainLocksHandler, llmq::quorumInstantSendManager, llmq::quorumBlockProcessor));
    src/test/validation_chainstatemanager_tests.cpp:    CChainState& c1 = WITH_LOCK(::cs_main, return manager.InitializeChainstate(&mempool, *m_node.mnhf_manager, evodb, llmq::chainLocksHandler, llmq::quorumInstantSendManager, llmq::quorumBlockProcessor));
    src/test/validation_chainstatemanager_tests.cpp:        &mempool, *m_node.mnhf_manager, evodb, llmq::chainLocksHandler, llmq::quorumInstantSendManager, llmq::quorumBlockProcessor,
    src/test/validation_chainstatemanager_tests.cpp:    CChainState& c1 = WITH_LOCK(cs_main, return manager.InitializeChainstate(&mempool, *m_node.mnhf_manager, evodb, llmq::chainLocksHandler, llmq::quorumInstantSendManager, llmq::quorumBlockProcessor));
    src/test/validation_chainstatemanager_tests.cpp:    CChainState& c2 = WITH_LOCK(cs_main, return manager.InitializeChainstate(&mempool, *m_node.mnhf_manager, evodb, llmq::chainLocksHandler, llmq::quorumInstantSendManager, llmq::quorumBlockProcessor, GetRandHash()));
    src/test/validation_flush_tests.cpp:    CChainState chainstate(&mempool, blockman, *m_node.mnhf_manager, *m_node.evodb, llmq::chainLocksHandler, llmq::quorumInstantSendManager, llmq::quorumBlockProcessor);
    ```

  * We can also check the usage of globals in (test) initialization logic (it will also include all the actual (de)initialization logic and any usage of the bare pointer alias if the name of the global and the alias are the same, as is the case with `netfulfilledman`)

    ```bash
    $ grep -E "$PROHIBITED_TERMS|$PROHIBITED_LLMQ_TERMS" src/init.cpp src/test/util/setup_common.cpp;
    src/init.cpp:    ::netfulfilledman.reset();
    src/init.cpp:    ::mmetaman.reset();
    src/init.cpp:    ::dstxManager.reset();
    src/init.cpp:    ::sporkManager.reset();
    src/init.cpp:    ::governance.reset();
    src/init.cpp:    assert(!::governance);
    src/init.cpp:    ::governance = std::make_unique<CGovernanceManager>();
    src/init.cpp:    node.govman = ::governance.get();
    src/init.cpp:    assert(!::sporkManager);
    src/init.cpp:    ::sporkManager = std::make_unique<CSporkManager>();
    src/init.cpp:    node.sporkman = ::sporkManager.get();
    src/init.cpp:        *node.connman, *node.mn_sync, ::deterministicMNManager, *node.govman, node.llmq_ctx, node.cj_ctx
    src/init.cpp:                chainman.InitializeChainstate(Assert(node.mempool.get()), *node.mnhf_manager, *node.evodb, llmq::chainLocksHandler, llmq::quorumInstantSendManager, llmq::quorumBlockProcessor);
    src/init.cpp:    assert(!::dstxManager);
    src/init.cpp:    ::dstxManager = std::make_unique<CDSTXManager>();
    src/init.cpp:    node.dstxman = ::dstxManager.get();
    src/init.cpp:    assert(!::mmetaman);
    src/init.cpp:    ::mmetaman = std::make_unique<CMasternodeMetaMan>(fLoadCacheFiles);
    src/init.cpp:    node.mn_metaman = ::mmetaman.get();
    src/init.cpp:    assert(!::netfulfilledman);
    src/init.cpp:    ::netfulfilledman = std::make_unique<CNetFulfilledRequestManager>(fLoadCacheFiles);
    src/init.cpp:    node.netfulfilledman = ::netfulfilledman.get();
    src/init.cpp:    if (!node.netfulfilledman->IsValid()) {
    src/test/util/setup_common.cpp:    ::deterministicMNManager = std::make_unique<CDeterministicMNManager>(chainstate, *node.connman, *node.evodb);
    src/test/util/setup_common.cpp:    node.dmnman = ::deterministicMNManager.get();
    src/test/util/setup_common.cpp:    ::deterministicMNManager.reset();
    src/test/util/setup_common.cpp:    ::sporkManager = std::make_unique<CSporkManager>();
    src/test/util/setup_common.cpp:    m_node.sporkman = ::sporkManager.get();
    src/test/util/setup_common.cpp:    ::governance = std::make_unique<CGovernanceManager>();
    src/test/util/setup_common.cpp:    m_node.govman = ::governance.get();
    src/test/util/setup_common.cpp:    ::dstxManager = std::make_unique<CDSTXManager>();
    src/test/util/setup_common.cpp:    m_node.dstxman = ::dstxManager.get();
    src/test/util/setup_common.cpp:    ::mmetaman = std::make_unique<CMasternodeMetaMan>(/* load_cache */ false);
    src/test/util/setup_common.cpp:    m_node.mn_metaman = ::mmetaman.get();
    src/test/util/setup_common.cpp:    ::netfulfilledman = std::make_unique<CNetFulfilledRequestManager>(/* load_cache */ false);
    src/test/util/setup_common.cpp:    m_node.netfulfilledman = ::netfulfilledman.get();
    src/test/util/setup_common.cpp:    ::netfulfilledman.reset();
    src/test/util/setup_common.cpp:    ::mmetaman.reset();
    src/test/util/setup_common.cpp:    ::dstxManager.reset();
    src/test/util/setup_common.cpp:    ::governance.reset();
    src/test/util/setup_common.cpp:    ::sporkManager.reset();
    src/test/util/setup_common.cpp:    m_node.chainman->InitializeChainstate(m_node.mempool.get(), *m_node.mnhf_manager, *m_node.evodb, llmq::chainLocksHandler, llmq::quorumInstantSendManager, llmq::quorumBlockProcessor);
    ```

  ## Breaking Changes
  None, changes are limited to refactoring and do not logically change behaviour.

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: f6d1a668728525e7cab7af200858a6ab6e20a24786d691630530a9019e8d2b4f474ed4358f40b76266b938dfe96420e0c64ee66a1a0986a3d3f254670162bb1c
2024-02-27 10:01:42 -06:00
Kittywhiskers Van Gogh
fb272dd8ff
refactor: use NodeContext members instead of globals in interface logic 2024-02-27 09:56:08 -06:00
Kittywhiskers Van Gogh
aba57cecb4
qt: add interface for CGovernanceObject querying
The GetAbsoluteYesCount -> Get{Yes,No}Count -> CountMatchingVotes call
chain eventually results in needing to call GetListAtChainTip from the
CDeterministicMNManager instance.

Currently it's being accessed as a global but future deglobalization
will move fetching the CDeterministicMNList outside CGovernanceObject,
requiring an instance of CDeterministicMNManager.

In preparation of that, these changes are being made in advance.
2024-02-27 09:56:08 -06:00
Kittywhiskers Van Gogh
8d73cec438
refactor: reduce globals use in RPC and bench, use LLMQContext members 2024-02-27 09:56:08 -06:00
Kittywhiskers Van Gogh
e8270ca91b
refactor: use NodeContext members instead of globals in RPC logic 2024-02-27 09:56:08 -06:00
Kittywhiskers Van Gogh
2efebcac81
refactor: use aliases of globals in unit tests 2024-02-27 09:56:07 -06:00
Kittywhiskers Van Gogh
89f41fa826
refactor: dereference CDeterministicMNManager instance before use 2024-02-27 09:56:07 -06:00
Kittywhiskers Van Gogh
d3dfdf353c
refactor: use aliases of globals in initialization logic
We must pass ::deterministicMNManager to CDSNotificationInterface as
we are passing a const ref of the smart pointer object, because it is
init'ed further down the line.

The alias in NodeContext is a raw pointer that is assigned after init
and is unsuitable for this purpose.
2024-02-27 09:56:07 -06:00
Kittywhiskers Van Gogh
bb7fe582f8
refactor: rename creditPoolManager to cpoolman in NodeContext, fix order
All members within NodeContext are lower-case and the bare pointer should
be null'ed before the smart pointer is, doing it in reverse creates a
small gap where the bare pointer is directing to freed space.
2024-02-27 09:56:07 -06:00
Kittywhiskers Van Gogh
6f08e10540
refactor: remove extraneous creditPoolManager initialization
creditPoolManager is already initialized in BasicTestingSetup, parent
of ChainTestingSetup. This means that creditPoolManager is being init'ed
twice, once in the parent's constructor and again in the child's
constructor.
2024-02-27 09:56:06 -06:00
Kittywhiskers Van Gogh
d136c407d7
refactor: add aliases for Dash-specific global pointers in NodeContext 2024-02-27 09:56:03 -06:00
pasta
d6b5590c18
Merge #5883: refactor: use atomic to avoid blocking chainlocks cs on each call to cleanup
75d81fd2c0 refactor: use atomic to avoid blocking chainlocks cs on each call to cleanup (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Avoid needing to lock CS on each call to cleanup. Cleanup only gets called once every 5 seconds it seems; but maybe that'll change in the future.

  ## What was done?
  Make `lastCleanupTime` atomic instead of CS guarded

  ## How Has This Been Tested?
  Building

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: 587dbfbecce430c25b4d572b2e158fcda86aced3db976c16166c0cabcf960f46d300739bbf54644def30769347cc88ac14c58d71dd78d848f7d8af562cd12bc6
2024-02-24 11:53:51 -06:00
pasta
75d81fd2c0
refactor: use atomic to avoid blocking chainlocks cs on each call to cleanup 2024-02-24 11:16:04 -06:00
pasta
3fd913a9ed
Merge #5894: backport: partial Merge bitcoin-core/gui#96: Slight improve create wallet dialog
a50f20d779 backport: partial Merge bitcoin-core/gui#96: Slight improve create wallet dialog (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  It fixes strange behaviour of enable/disable checkboxes and checking/unchecking them

  kudos to thephez to found an issue.

  ## What was done?
  Partial backport bitcoin-core/gui#96

  ## How Has This Been Tested?
  Build & run `dash-qt`

  ## Breaking Changes
  No actual code changed for creating wallet, only UI for it

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

Top commit has no ACKs.

Tree-SHA512: 7b16d33af181e44ef5b77dbb0eabb3a435e5f0b3c0a5a5c4ce17c95bb5949a5a41d605f7e6100d0f994b50edf087b777cbed6fe6d29952c2446ac9f8229f1a3a
2024-02-24 11:11:22 -06:00
Konstantin Akimov
a50f20d779
backport: partial Merge bitcoin-core/gui#96: Slight improve create wallet dialog
It fixes strange behaviour of enable/disable checkboxes and checking/unchecking them
2024-02-24 11:10:55 -06:00
pasta
d64ec8bf47
Merge #5891: fix: adjust verify-binaries script to properly handle RCs
39db1fbabb fix: adjust verify-binaries script to properly handle RCs (pasta)

Pull request description:

  ## What was done?
  Adjusted verify.py to properly handle RC

  ## How Has This Been Tested?
  Ran verify on both 20.0.4 and 20.1.0-rc.1

  ## Breaking Changes
  None

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

Top commit has no ACKs.

Tree-SHA512: 894261004fb89588c8c01c67a95dd999a03657dc68895af566c8dd98deb82fbc5b5847382b052eb5a28284aba810052a5ee8d21ad3efeb9af6557302759a6e35
2024-02-24 11:09:02 -06:00
pasta
39db1fbabb
fix: adjust verify-binaries script to properly handle RCs 2024-02-24 11:07:44 -06:00
pasta
d686dc23f9
Merge #5892: chore: bump copyright to 2023 and fix wrong copyrights
097a8e7196 non-scripted-diff: bump copyright year to 2023 (Konstantin Akimov)
a8e0f54e27 fix: wrong copyright for dash files (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  Bump copyright year to 2023-2024

  ## What was done?
  run `copyright_header.py report` and `copyright_header.py update`
  previous work: https://github.com/dashpay/dash/pull/5160/files

  ## How Has This Been Tested?
  Please, notice, that copyrights should be updated at the end of year, not at the beginning of year for next years.
  That prevent bumping year for files where is only changes in that year - bumping a copyright. This misbehavior can be validated by running `copyright_header.py update` twice. So, bump 2024 should be done in December 2024, not in 2025.

  ## Breaking Changes
  n/a

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

Top commit has no ACKs.

Tree-SHA512: 7cc2a37bd3852456fc686ed02b1cc137a9d736bbc0d3957208d9c52ae76b3233f18404f47ebf916d800fa24b7e56c32ff0324c7e0c282b0fb22c67e831ef2c9c
2024-02-24 11:06:05 -06:00
Konstantin Akimov
097a8e7196
non-scripted-diff: bump copyright year to 2023
that's a result of:
contrib/devtools/copyright_header.py update ./

it is not scripted diff, because it works differentlly on my localhost and in CI:
CI doesn't want to use git commit date which is mocked to 30th Dec of 2023
2024-02-24 11:05:37 -06:00
Konstantin Akimov
a8e0f54e27
fix: wrong copyright for dash files 2024-02-24 11:05:35 -06:00
pasta
e9f1a4bedc
Merge #5893: feat: migrate to a CA issued certificate
37589507e5 feat: migrate to a CA issued certificate (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Uses a new CA issued certificate

  ## What was done?
  Certificate changed; the issuer according to the certificate is `GoGetSSL G4 CS RSA4096 SHA256 2022 CA-11` In reality, the CA is digicert and the root CA is `DigiCert Trusted Root G4` and is issued to "Dash Core Group, Inc."

  ## How Has This Been Tested?
  Signed a binary with it see: https://www.virustotal.com/gui/file/a6577f3b8b474cfb1def1ea339795cb229b26d248d71f0b6f0b65e9e9ba3411b/details. I can share the binary if you'd like.

  ## Breaking Changes
  Not really any; unless someone is relying on a specific certificate.

  ## Signature

  ```
  -----BEGIN PGP SIGNED MESSAGE-----
  Hash: SHA256

  8154f5a92ffe1124ad1573487f6e1842fe28eed7a455416c82fc6211253117ed  contrib/windeploy/win-codesign.cert
  -----BEGIN PGP SIGNATURE-----

  iQIzBAEBCAAdFiEEKVkDYuyHioH9PCArUlJ77avoeYQFAmXWkZEACgkQUlJ77avo
  eYSU2Q//fa6yzHrjW9cjsuxyRn/b+t7ry9lplzHtQDqxADxq5ANhddfurDWKOVNc
  Fu3iiK1iCtdaBMDSvlAW9/nWXaJaMSqkCdExaCS63EDyItPRSwiEmCIMe1EzR1Ed
  0AWrnWYIRk27huQ3RbCcnsQUEoMI3DbBMDN19ClMzyMtFiTjQfIgB0WO7OLsI785
  ZXx2dqcrRYSkDd72YYfuoamJPxFXC9+kOa1Ss531w4F/86jIG+VnqVuH6L0iPkJ1
  HM5jF2jLDCiU8eFN/ANsCvC65+a0nSq+xKJLeqSen0KwAPy/lBAcqY9VduvDpAyE
  a6gWDhTEbYGzQicVTS3EDp0360Y0UOKixuLibzD/8Vlhk0stgEyOwoeKbNj6vRt4
  MuKjAsmvh/WpuYXHmycJU1pJZ1V/udyjmpSRsr8+xB6Ww5T/epu2OJ3Yjsyny5P+
  ncVtQfO18rAVIRKb6zWBygz1ITqdU23bVHApp+3pwbZTQP1ilIMRadTX7cMic6/a
  eKc8jEW6BWYiXNjCOu3PPOE/P9ML537LqSg4XJXyxdemmJofzcPb1HMpngwmdQHO
  jm4tOzAFwe/rdISpthED1zfgLAuWiIYNstCtzdTeDizLOfYICe8kPBjsc3zaZqCx
  Cj8qlV/BqvXpua+KpuDLHa11n3amN+trNd5oOb6ewZmJqxLo4NM=
  =d3Bu
  -----END PGP SIGNATURE-----
  -----BEGIN PGP SIGNATURE-----

  iQEzBAEBCAAdFiEEYKz3C/cSZFBJ7m8V7+rxZoYiX2QFAmXWkZsACgkQ7+rxZoYi
  X2QOOwf/YUm2TPXtrxOT7/CJVTITQa3u0XMwJ6JADuHtJaXlmA9b9ucz2cSKaFdC
  noA1q8FFWbMUDM9+RkudAjhO5JCLMkJrfCK/mG2FlZrXV/61lounxyRdMerxk9qF
  8/iJS1cf6t3tE4/SziMgo3uCZf5tsORIiNRxdEhBITVmDenPNTpKKGetijH7gr7o
  lRHP5lNNPWH629eFqFtVORYiyvFOtSMV2PfG+lauBnm8DMoHIXC+Zs3lT6Soes+L
  hxli9z+/ZGnQdHHIFIM+qcQNKIiEoWb4iUmsMK2couGk6beoWZNUmEpTjzubEfbN
  QU252WZBsdGwQ/NEr5Gi4rNeUSfvig==
  =hlUn
  -----END PGP SIGNATURE-----
  ```

  ```
  -----BEGIN PGP SIGNED MESSAGE-----
  Hash: SHA256

  8154f5a92ffe1124ad1573487f6e1842fe28eed7a455416c82fc6211253117ed  win-codesign.cert
  5dcc037bb56205a8744c99d1ba15e8fc7e64144ba3ce728ce57546d804469ea1  win-codesign.cert.1
  -----BEGIN PGP SIGNATURE-----

  iQIzBAEBCAAdFiEEKVkDYuyHioH9PCArUlJ77avoeYQFAmXXbrAACgkQUlJ77avo
  eYSItRAAtVeQDgfl2Blxya6MuvnKJiyS9W2fSfjTchUo5zmhqcbhTLcCVh9JG25T
  ebpNRmf5GFzCIVDc3SRj9EuZ4SjRyf4ZcRBPq25+Q6IJUeI5S+W+v09LQ3k7nE44
  g9lgHVh1KDKzxmCiEoavQ5UhND0pi9A7HreDXS6Ntc84BDgHCOAF+7tGyq6APP8y
  LU35zlv6iJJcy+fCm/UspHQVYIsyShrMYNlOarK/6ZuBoCEAjPWU4L3fsaYIwxfU
  6JQyhKRe3XWMcOxbb3a0ZX1wTZNsFYl5o/1guTOwH6WUPIzOdYCQEkA3+z9fNs6n
  IZOzB8UdTx4Uhig8zxIlVw1EgBzvIjxbIqfBiCzKLNeEK8YFmQrmwemKtdOzPU0O
  dnKDxSvQirJ/YxESJF9zyzplBIGxHluT3xTAY3JdcEYs+Xc/RKmb6eGaP5MAO8z6
  lOVLbDObBMOvoPWHZaCoykGJvFvF9YXR0MpbxPtCqnpK6kTXU9z+qPDGkMLJ7pUj
  X/kZneW2Mril+t7g9CEqKKQcUkdf4MoonddDGdQ2fbfrYpEJ+b5jsUbI4XkbhCwl
  4KmAaBx7y1Zmxt83o2aSm1mNu5B687f8bUNOd7twE42sbsJ6w/YyKB7/JRbhIPDg
  vEHn9omSA2XHGxcteFA1LBbKjDvhKsCENIY64+lwOxv8fJ4XEiE=
  =TGa5
  -----END PGP SIGNATURE-----
  ```

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: 36af24773bb7897332fb7703e7509903e945e6033637ec07acb6e6985dc1f05e41d51776fa4db5a7d4be012b7faa3e89e8ed3c2e8079ebb173cecf372e972397
2024-02-24 10:49:17 -06:00
pasta
37589507e5
feat: migrate to a CA issued certificate 2024-02-24 10:44:55 -06:00
pasta
37f43e4e56
Merge #5737: backport: Merge bitcoin#18452, 19111, 19104
96ac317c27 Merge #19104: gui, refactor: Register Qt meta types in application constructor (Jonas Schnelli)
32f717c015 Merge #19111: Limit scope of all global std::once_flag (MarcoFalke)
7a6667f323 Merge #18452: qt: Fix shutdown when waitfor* cmds are called from RPC console (Jonas Schnelli)

Pull request description:

  ## Issue being fixed or feature implemented

  ## What was done?

  ## How Has This Been Tested?
  CI passing

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: a1a9d18674b7c55549edd684211bb9de983a67876ed292d90ef3dccb126122af9b5d8c887608bbce74b7fa92c020a542d2ea1acdc693d85eba889aa8c56ac8df
2024-02-23 13:47:47 -06:00
Jonas Schnelli
96ac317c27
Merge #19104: gui, refactor: Register Qt meta types in application constructor
4f49d5222eca11c149713ad34113d5a3d1c577b1 gui, refactor: Register Qt meta types in application constructor (João Barbosa)

Pull request description:

  Removes a warning when running `QT_QPA_PLATFORM=cocoa src/qt/test/test_bitcoin-qt`.

ACKs for top commit:
  jonasschnelli:
    Re utACK 4f49d5222eca11c149713ad34113d5a3d1c577b1
  hebasto:
    ACK 4f49d5222eca11c149713ad34113d5a3d1c577b1, tested on macOS 10.15.5.

Tree-SHA512: e931a022ba83cb0ef04d82544ebd9b18242f8fc2b41443afce4d5c4222f222e8b3517bdb484a1a4f61377c5dceca067d8ccf250da3a727299448e54bec33ed6e
2024-02-23 13:46:44 -06:00
MarcoFalke
32f717c015
Merge #19111: Limit scope of all global std::once_flag
fa9c67559186f5416c1c0b26c0a1d5e72c234ccb Limit scope of all global std::once_flag (MarcoFalke)

Pull request description:

  `once_flag` is  a helper (as the name might suggest) to execute a callable only once. Thus, the scope of the flag does never need to extend beyond where the callable is called. Typically this is function scope.

  Move all the flags to function scope to
  * simplify code review
  * avoid mistakes where similarly named flags are accidentally exchanged
  * avoid polluting the global scope

ACKs for top commit:
  hebasto:
    ACK fa9c67559186f5416c1c0b26c0a1d5e72c234ccb, tested on Linux Mint 19.3 (x86_64).
  promag:
    Code review ACK fa9c67559186f5416c1c0b26c0a1d5e72c234ccb.

Tree-SHA512: 095a0c11d93d0ddcb82b3c71676090ecc7e3de3d5e7a2a63ab2583093be279242acac43523bbae2060b4dcfa8f92b54256a0e91fbbae78fa92d2d49e9db62e57
2024-02-23 13:46:44 -06:00
Jonas Schnelli
7a6667f323
Merge #18452: qt: Fix shutdown when waitfor* cmds are called from RPC console
da73f1513a637a9f347b64de66564d6cdb2541f8 qt: Fix shutdown when waitfor* cmds are called from RPC console (Hennadii Stepanov)

Pull request description:

  On master (7eed413e72a236b6f1475a198f7063fd24929e23), if the GUI has been started with`-server=1`, `bitcoin-qt` hangs on shutdown during calling any of the `waitfor*` commands in the GUI RPC console.

  This PR suggests minimal changes to fix this bug.

  Fix #17495

ACKs for top commit:
  jonasschnelli:
    utACK da73f1513a637a9f347b64de66564d6cdb2541f8

Tree-SHA512: 469f5332945a5f2c57d19336cda5df79b123ccc494aea6d58a85eb1293be52708b2b9c5bb6bc2c402a90b7b4e9e8d7ab8fe84cf201cf7ce612c9290c57e43681
2024-02-23 13:46:44 -06:00