Commit Graph

32491 Commits

Author SHA1 Message Date
fanquake
07269321f3
build: remove Boost::system usage 2022-02-03 18:35:52 +08:00
Kiminuo
b87f9c5edf
build: remove boost::filesystem usage 2022-02-03 18:35:52 +08:00
Kiminuo
41d7166c8a
refactor: replace boost::filesystem with std::filesystem
Warning: Replacing fs::system_complete calls with fs::absolute calls
in this commit may cause minor changes in behaviour because fs::absolute
no longer strips trailing slashes; however these changes are believed to
be safe.

Co-authored-by: Russell Yanofsky <russ@yanofsky.org>
Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2022-02-03 18:35:52 +08:00
fanquake
ffc89d1f21
build: add support for std::filesystem
Add a macro to check if linking with -lstdc++fs or -lc++fs is required.
2022-02-03 18:35:41 +08:00
fanquake
c194293883
Merge bitcoin/bitcoin#24131: build, qt: Fix Windows cross-compiling with Qt 5.15
9796dcacdc doc: Install only "-posix" MinGW compiler when possible (Hennadii Stepanov)
0bbae237a8 ci: Drop no longer needed `update-alternatives` (Hennadii Stepanov)
01d1845a80 build, qt: Specify QMAKE_CXX explicitly (Hennadii Stepanov)

Pull request description:

  While changes introduced in bitcoin/bitcoin#22093 worked fine with Qt 5.12, after bumping Qt up to 5.15 the cross-compiling of `qt` package for Windows fails with `error: ‘mutex’ in namespace ‘std’ does not name a type`.

  The first commit fixes this bug.

  The second commit cleans up a related CI script.

  The third commit improves related docs (see https://github.com/bitcoin/bitcoin/pull/22093#discussion_r680911586).

ACKs for top commit:
  prusnak:
    ACK 9796dca

Tree-SHA512: 0dc46c5dfab85bd6d2901052cd630e86f9b4e09c08ef87136b44ddecb1783cdf3cd0a6e67b95ac7a78da24cd7adedc88745f61f9a8d9993fbff26d33bf88d874
2022-02-03 10:52:58 +08:00
fanquake
0f43fb5d87
Merge bitcoin/bitcoin#24240: depends: fix capnp's descriptor for make download
01e121d290 depends: fix capnp's descriptor for make download (Cory Fields)

Pull request description:

  The non-native capnp was trying to fetch the wrong file.
  Without this, "make -C depends MULTIPROCESS=1 download" is broken.

  Presumably it breaks with the download target because the dependency graph is flattened. It manages to work if native_capnp is encountered first because it will then be found in the cache.

ACKs for top commit:
  gruve-p:
    tACK 01e121d290
  hebasto:
    ACK 01e121d290, tested on Linux Mint 20.2 (x86_64).

Tree-SHA512: 2605d895f3799be5a311f6f7d36a5c13cdb715dc148915ad818f4afc7d5de92cd6b8ecd34ff2b21cef6743b090819bba1e3353096cfb5659c55f76113ce5adf3
2022-02-03 10:44:17 +08:00
laanwj
c545a7aeb1
Merge bitcoin/bitcoin#23948: build: add support for FreeBSD to depends
ae9175f608 build: add FreeBSD support to depends (fanquake)

Pull request description:

  Setup to use the system Clang (11.0.1 as of FreeBSD 13.0).

  Doesn't build the Qt package; that requires a few additional changes. The current issue is that FreeBSDs `byacc` seems to have an issue parsing something in libxkbcommon. Work in progress branch here: https://github.com/fanquake/bitcoin/tree/depends_support_freebsd_qt. In any case, I don't think building the Qt libs on FreeBSD is a super high priority (I'd also have no way to test the GUI).

ACKs for top commit:
  laanwj:
    ACK ae9175f608

Tree-SHA512: 1ecc7855f0195f68c96e534bd77ce17c3975db1dfb3caa35302c2b46643c8c30f75b1c2e1735cf69f1eddb70447d11e67e7f339ef5497336cdff7a59b32be961
2022-02-02 20:00:53 +01:00
laanwj
df669230cf
Merge bitcoin/bitcoin#24166: p2p, contrib: add cjdns hardcoded seeds and update the i2p seeds
bcc5676f16 p2p, contrib: update i2p hardcoded seeds (Jon Atack)
e5332425fc p2p, contrib: add cjdns hardcoded seeds (Jon Atack)

Pull request description:

  This update targets the v23 release.  Additional reliable CJDNS seeds, and feedback on the I2P seeds, is welcome.  To verify `src/chainparamsseeds.h` locally, run:
  ```
  contrib/seeds/generate-seeds.py contrib/seeds > src/chainparamsseeds.h
  ```

ACKs for top commit:
  laanwj:
    Code review ACK bcc5676f16
  lsilva01:
    tACK bcc5676

Tree-SHA512: 40b1bbb89b9677e1e88c17ac279d6ff5a8ea9f4a1e1ef07e2b71074471308da4760b69cf5130134082c25e7caf4ded02bcc89bd75fae68c2834c64c230e82ac4
2022-02-02 19:38:07 +01:00
laanwj
56a0fbf836
Merge bitcoin/bitcoin#24156: build: Replace which command with command -v
148b33cf72 build: Replace `which` command with `command -v` (Hennadii Stepanov)

Pull request description:

  On some systems the `which` command can emit messages into stderr. For example, for `debianutils 5.5-1` package in Debian Sid:
  ```
  # which cat
  /usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead.
  /bin/cat
  ```

  Although such messages are harmless, they could distract developers needlessly (see bitcoin/bitcoin#24056).

  Fixes bitcoin/bitcoin#24056.

ACKs for top commit:
  dongcarl:
    Code Review ACK 148b33cf72
  laanwj:
    Code review ACK 148b33cf72

Tree-SHA512: 36ee45d8831afb75a1ba6f8c8491fa5381159a2b86042140ac09037752f74e92d3e725caa793b8e97c36afe03ada0b557eede95df2bec049173c27f32ffc804a
2022-02-02 19:24:37 +01:00
Cory Fields
01e121d290 depends: fix capnp's descriptor for make download
The non-native capnp was trying to fetch the wrong file.
Without this, "make -C depends MULTIPROCESS=1 download" is broken.

Presumably it breaks with the download target because the dependency graph is
flattened. It manages to work if native_capnp is encountered first because it
will then be found in the cache.
2022-02-02 17:55:20 +00:00
Hennadii Stepanov
9796dcacdc
doc: Install only "-posix" MinGW compiler when possible 2022-02-02 19:29:01 +02:00
Hennadii Stepanov
0bbae237a8
ci: Drop no longer needed update-alternatives 2022-02-02 19:29:01 +02:00
Hennadii Stepanov
01d1845a80
build, qt: Specify QMAKE_CXX explicitly
This change allows to drop the `update-alternatives` step if the
`g++-mingw-w64-x86-64` package has been installed.
2022-02-02 19:28:36 +02:00
MarcoFalke
219d728fcb
Merge bitcoin/bitcoin#24219: Fix implicit-integer-sign-change in bloom
fad84a2595 refactor: Fixup uint64_t-cast style in touched line (MarcoFalke)
fa041878de Fix implicit-integer-sign-change in bloom (MarcoFalke)

Pull request description:

  Signed values don't really make sense when using `std::vector::operator[]`.

  Fix that and remove the suppression.

ACKs for top commit:
  PastaPastaPasta:
    utACK fad84a2595
  theStack:
    Code-review ACK fad84a2595

Tree-SHA512: 7139dd9aa098c41e4af1b6e63dd80e71a92b0a98062d1676b01fe550ffa8e21a5f84a578afa7a536d70dad1b8a5017625e3a9e2dda6f864b452ec77b130ddf2a
2022-02-02 15:00:22 +01:00
MarcoFalke
a41976ab77
Merge bitcoin/bitcoin#24223: test: use MiniWallet for interface_rest.py
438e6f4c33 test: speedup interface_rest.py by whitelisting peers (immediate tx relay) (Sebastian Falbesoner)
11b9684dfd test: use MiniWallet for rest_interface.py (Sebastian Falbesoner)

Pull request description:

  This PR enables one more of the non-wallet functional tests (interface_rest.py) to be run even with the Bitcoin Core wallet disabled by using the MiniWallet instead, as proposed in #20078.

  Note that the original test sent funds from one node to another and checked node's balances, but the state of a node's wallet is not relevant to any of the REST endpoints, i.e. the replacement is quite stright-forward. In an additional commit, the test is further sped up by using the good ol' immediate tx relay trick (parameter `-whitelist=noban@127.0.0.1`).

ACKs for top commit:
  brunoerg:
    ACK 438e6f4c33

Tree-SHA512: eac351c5fb7e043c36c193d51545f20f563be9aaa04f3429a2bfb452ae4aa72294d2552800d6cac55c9a3ec2b4f30bcda2abcd74736dec3ed75e7d83c5af437f
2022-02-02 09:07:54 +01:00
Andrew Chow
02e1d8d06f
Merge bitcoin/bitcoin#24083: Revert "Add to spends only transcations from me"
3ee6d0788e test: add more wallet conflicts assertions (S3RK)
3b98bf9c43 Revert "Add to spends only transcations from me" (S3RK)

Pull request description:

  This reverts commit d04566415e from #22929.

  This commit was based on invalid assumption that `mapTxSpends` should contain only outgoing txs and broke wallet conflicts feature.

ACKs for top commit:
  achow101:
    ACK 3ee6d0788e

Tree-SHA512: bf5a77ced6bac57d5eb85771d9189c53e1edc295d179ed5a1bdce18e365794a9101b4cecf35387b27f67260db3b47f7214e7876e490494529b748cceeb95632d
2022-02-01 14:46:11 -05:00
MarcoFalke
133f73e86b
Merge bitcoin/bitcoin#24212: ci: Bump CentOS 8 image
fafc55a489 ci: Use dash when building depends in centos build (MarcoFalke)
fa33236e77 scripted-diff: Rename DOCKER_EXEC to CI_EXEC (MarcoFalke)
fa5457e64a ci: Bump CentOS 8 image (MarcoFalke)

Pull request description:

  CentOS 8 was just shut down:

  ```
  $ pob centos:8
  [root_e606059da4d9 /]# dnf update
  Failed to set locale, defaulting to C.UTF-8
  CentOS Linux 8 - AppStream
  Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
  ```

  Fix that by bumping the image.

ACKs for top commit:
  Sjors:
    utACK fafc55a with the caveat that I've never used CentOS.

Tree-SHA512: 741eb606c9f67cd218e41ce98460606d8594ff98148636c28ac20bae2809e3ee4a18c97aa3c849630f0a6ac30255c7423253b4309ae2d7cdd5c6624cc6836b95
2022-02-01 11:28:39 +01:00
MarcoFalke
fad84a2595
refactor: Fixup uint64_t-cast style in touched line 2022-02-01 11:19:18 +01:00
MarcoFalke
36f8e99d24
Merge bitcoin/bitcoin#24218: zmq: Fix implicit-integer-sign-change
fa2406a50a zmq: Fix implicit-integer-sign-change (MarcoFalke)

Pull request description:

  uint256::begin() returns unsigned data, so there is no reason to make it signed.

  Fix that and remove the sanitizer suppression.

ACKs for top commit:
  hebasto:
    ACK fa2406a50a
  PastaPastaPasta:
    utACK fa2406a50a, I have reviewed the code and think it makes sense

Tree-SHA512: 150ebcf3fdc3e0f60b6fd8e5fe638737b01e8a0863296bd545fb5ed17d33ab23b2ff94204996aa7b4617650b7383bd86ed2d2bf46746b410feae449de179a2bd
2022-02-01 10:18:53 +01:00
MarcoFalke
fafc55a489
ci: Use dash when building depends in centos build 2022-02-01 10:15:17 +01:00
MarcoFalke
fa33236e77
scripted-diff: Rename DOCKER_EXEC to CI_EXEC
-BEGIN VERIFY SCRIPT-
 sed -i "s/DOCKER_EXEC/CI_EXEC/g" $(git grep -l DOCKER_EXEC)
-END VERIFY SCRIPT-
2022-02-01 10:14:53 +01:00
MarcoFalke
fa5457e64a
ci: Bump CentOS 8 image 2022-02-01 10:13:25 +01:00
MarcoFalke
fcac16fff8
Merge bitcoin/bitcoin#24190: test: Fix sanitizer suppresions in streams_tests
faa630aa15 test: Fix sanitizer suppresions in streams_tests (MarcoFalke)

Pull request description:

  Two changes (that also make sense on their own) to remove the file-wide sanitizer suppression:

  * `FindByte` no longer takes a `char`, but an `uint8_t`, after commit 196b459920.
  * The `key` vector of unsigned chars can be removed and inlined as initializer-list. This avoids a bunch of verbose code like `clear()` and `push_back` of `char`s.

ACKs for top commit:
  PastaPastaPasta:
    utACK faa630aa15, I have reviewed the changes and agree it makes sense to merge

Tree-SHA512: 747b9d4676fad6d07f3955668639c93333625e69199ff4c499f01167de3875990d93db85e775a7f5b1b684575dceaec8aa000b4db15525fc47b699bac1c85e3d
2022-02-01 09:42:34 +01:00
Hennadii Stepanov
148b33cf72
build: Replace which command with command -v
This change made in a way that is compatible with GNU Make versions
older than 4.3.
2022-01-31 22:30:00 +00:00
Sebastian Falbesoner
438e6f4c33 test: speedup interface_rest.py by whitelisting peers (immediate tx relay)
By whitelisting the peers via -whitelist, the inventory is transmissioned
immediately rather than on average every 5 seconds, speeding up the test by at
least a factor of two:

before:
$ time ./interface_rest.py
...
0m14.82s real     0m01.44s user     0m01.19s system

with this commit:
$ time ./interface_rest.py
...
0m05.67s real     0m01.07s user     0m01.35s system
2022-01-31 22:56:34 +01:00
Sebastian Falbesoner
11b9684dfd test: use MiniWallet for rest_interface.py
This test can now be run even with the Bitcoin Core wallet disabled.
2022-01-31 22:47:40 +01:00
MarcoFalke
8f137e69ca
Merge bitcoin/bitcoin#24192: test: Fix feature_init intermittent issues
fa7b07571f test: Fix feature_init intermittent issues (MarcoFalke)
fa4595deb3 test: Remove random line number feature from feature_init.py (MarcoFalke)

Pull request description:

  The test doesn't work currently because the log might be finalized before `wait_for_debug_log` is started, in which case it will assume the log is empty and fail to detect any line.

  Fix this by calling `wait_for_debug_log` first. Fixes #24060.

  Also, remove the "random line number" part of the test, because it doesn't really test anything novel. `wait_for_debug_log` is inherently racy, so will randomly terminate at the exact point or later. So the randomization is already sufficiently covered.

ACKs for top commit:
  jamesob:
    ACK fa7b07571f
  mzumsande:
    Code Review ACK fa7b07571f

Tree-SHA512: f107a04926270a1d9ac8f53b6e5254566d1827ba7d27fd74f9ce909319f8794f8bd46da9c42256bf41b6df26c0bad8b9a0d54e4e148695189af09f31e3948330
2022-01-31 18:05:01 +01:00
MarcoFalke
fa041878de
Fix implicit-integer-sign-change in bloom 2022-01-31 17:23:54 +01:00
MarcoFalke
fa2406a50a
zmq: Fix implicit-integer-sign-change 2022-01-31 16:53:12 +01:00
MarcoFalke
0ff1391328
Merge bitcoin/bitcoin#24191: refactor: Make MessageBoxFlags enum underlying type unsigned
1111d33532 refactor: Make MessageBoxFlags enum underlying type unsigned (MarcoFalke)

Pull request description:

  All values in the enum are unsigned. Also, flags shouldn't be treated as signed types. So clarify the underlying type and remove a sanitizer suppression.

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

Tree-SHA512: 48b16c4a0ace1a1e4d351d6eadadbb1bc42aef7fd82e24e3ea50c62f2c04a552ed21027158d09aa97e630c8c7d732cb150c38065333d7c2accbae46593b7ed9f
2022-01-31 16:27:42 +01:00
MarcoFalke
ad05e68e17
Merge bitcoin/bitcoin#24103: Replace RecursiveMutex m_cs_chainstate with Mutex, and rename it
020acea99b refactor: replace RecursiveMutex m_chainstate_mutex with Mutex (w0xlt)
ddeefeef20 refactor: add negative TS annotations for `m_chainstate_mutex` (w0xlt)
1dfd31bc26 scripted-diff: rename m_cs_chainstate -> m_chainstate_mutex (w0xlt)

Pull request description:

  This PR is related to #19303 and gets rid of the `RecursiveMutex m_cs_chainstate`.

  `m_cs_chainstate` is only held in `ActivateBestChain()` and `InvalidateBlock()`.
  So apparently there is no recursion involved, so the `m_cs_chainstate` can be a non-recursive mutex.

ACKs for top commit:
  hebasto:
    ACK 020acea99b, I have reviewed the code and it looks OK, I agree it can be merged.
  theStack:
    Code-review ACK 020acea99b 🌴
  shaavan:
    reACK 020acea99b

Tree-SHA512: c7c16e727e326df3410514915ce753a2a5e1da78857ef965ef683e36251e1b73c9cced4cd5231b04dbe2be0ea14084f6731b4d7a4d9a8e086e982b985e37e4b4
2022-01-31 11:00:40 +01:00
MarcoFalke
fa7b07571f
test: Fix feature_init intermittent issues 2022-01-31 10:10:25 +01:00
MarcoFalke
fa4595deb3
test: Remove random line number feature from feature_init.py
This is needed for the next commit.

Also, it doesn't really test anything novel. wait_for_debug_log is
inherently racy, so will randomly terminate at the exact point or later.
So the randomization is already sufficiently covered by the existing
test.
2022-01-31 10:09:11 +01:00
MarcoFalke
5f4c07b799
Merge bitcoin/bitcoin#24136: Extract CTxIn::MAX_SEQUENCE_NONFINAL constant, rework BIP 65/68/112 docs
fa4339e4c1 Extract CTxIn::MAX_SEQUENCE_NONFINAL constant (MarcoFalke)

Pull request description:

  Extracting the constant makes it possible to attach documentation to it.

  Also, rework the docs for the other "sequence constants".

ACKs for top commit:
  w0xlt:
    reACK fa4339e for specifying the transaction version.
  darosior:
    re-ACK fa4339e4c1
  luke-jr:
    crACK fa4339e4c1

Tree-SHA512: 8d8f3dd5afb33eb5b72aa558e1e03de874c5ed02aa1084888e92ed86f3aaa5c725db45ded02e14cdfa67a92ac6774e97185b697f20a8ab63abbfcaa2fcd1fc6a
2022-01-31 09:40:33 +01:00
MarcoFalke
1111d33532
refactor: Make MessageBoxFlags enum underlying type unsigned 2022-01-31 09:27:12 +01:00
MarcoFalke
b25a752dfd
Merge bitcoin/bitcoin#24146: Avoid integer sanitizer warnings in chain.o
fa832103aa Avoid integer sanitizer warnings in chain.o (MarcoFalke)

Pull request description:

  The two changes make the code more self-documenting and also allow to remove 5 file-wide suppressions for the module

ACKs for top commit:
  PastaPastaPasta:
    utACK fa832103aa
  jonatack:
    ACK fa832103aa

Tree-SHA512: d32a06099c56eed9f69130a3209f989872acc593f849528acd7746ee6caa96688cc32de37e8e59ad5d25dcb8912e341f1a43e50642dadeff6ca7624d0873ad10
2022-01-31 09:23:54 +01:00
MarcoFalke
9237bdaac1
Merge bitcoin/bitcoin#24179: fuzz: Speed up script fuzz target
fa6842978d fuzz: Speed up script fuzz target (MarcoFalke)

Pull request description:

  Currently the script fuzz target takes the longest time (5000 seconds, aka 80 minutes, see https://cirrus-ci.com/task/5651378755338240?logs=ci#L4501).

  Fix this by making it twice as fast.

  Instead of running all possible combinations for all fuzz inputs, consume a bool and decide at runtime which path to take.

  I moved the new calls to the end to not invalidate existing fuzz inputs.

ACKs for top commit:
  prusnak:
    ACK fa6842978d

Tree-SHA512: 5e408255f96f9e92e472f4e8a8a0f8d8814bad444ac0ff7d5db5ed84a59a861135ffe5e04d81f479b0695cb17e4d7af005734959dd4aa9328bdc5acc98f36665
2022-01-31 08:58:23 +01:00
MarcoFalke
eacc0e87f8
Merge bitcoin/bitcoin#24168: Fix some race conditions in BanMan::DumpBanlist()
99a6b699cd Fix race condition for SetBannedSetDirty() calls (Hennadii Stepanov)
83c7646715 Avoid calling BanMan::SweepBanned() twice in a row (Hennadii Stepanov)
33bda6ab87 Fix data race condition in BanMan::DumpBanlist() (Hennadii Stepanov)
5e20e9ec38 Prevent possible concurrent CBanDB::Write() calls (Hennadii Stepanov)

Pull request description:

  This PR split from bitcoin/bitcoin#24097 with some additions. This makes the following switch from `RecursiveMutex` to `Mutex` a pure refactoring.

  See details in commit messages.

ACKs for top commit:
  w0xlt:
    reACK 99a6b69
  shaavan:
    ACK 99a6b699cd

Tree-SHA512: da4e7268c7bd3424491f446145f18af4ccfc804023d0a7fe70e1462baab550a5e44f9159f8b9f9c7820d2c6cb6447b63883616199e4d9d439ab9ab1b67c7201b
2022-01-31 08:55:35 +01:00
MarcoFalke
4efdbabd70
Merge bitcoin/bitcoin#24197: Replace lock with thread safety annotation in CBlockTreeDB::LoadBlockIndexGuts()
20276ca5d1 Replace lock with thread safety annotation in CBlockTreeDB::LoadBlockIndexGuts() (Jon Atack)

Pull request description:

  Following up on https://github.com/bitcoin/bitcoin/pull/22932#discussion_r794495535 by Marco Falke (good observation, thank you), we can replace a cs_main lock in `CBlockTreeDB::LoadBlockIndexGuts()` with a Clang thread safety annotation/assertion instead. The unlocked code is reverted to its original state before #22932.

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

Tree-SHA512: 2d91d1c962af0286d835d92a56396a27ea00e9d061b869eaff9421b448a083b0513828e1d4df7504396896057bf1e344e180a50271a5cfd1e1c7b6527155b2bb
2022-01-31 08:42:47 +01:00
MarcoFalke
af7b077973
Merge bitcoin/bitcoin#24203: doc: Fix typos pointed out by lint-spelling
58ccc88541 lint: add creat and ba into ignore-words for lint-spelling (brunoerg)
bad0e7f521 doc: Fix typos pointed out by lint-spelling (brunoerg)

Pull request description:

  Occuring -> occurring (random.h)
  Covert -> convert (chacha_poly_aead.cpp)
  Fix `nWe` false positive in blockchain.cpp (https://github.com/bitcoin/bitcoin/pull/24203#issuecomment-1025116962)

  Got it by linter, other ones are false positives.

ACKs for top commit:
  prusnak:
    ACK 58ccc88541

Tree-SHA512: b350d0e64968b96ead226da0be6aa4ca3f8e482ae401697867684ce8478e96b954124b3dea6dcd697aad4206f209f32f238d7cf0a0589075f24f5cf629c563f3
2022-01-31 08:18:51 +01:00
fanquake
5a51815275
Merge bitcoin/bitcoin#24129: build: Fix xargs warnings for Guix builds
c73415bc10 build: Fix xargs warnings for Guix builds (Hennadii Stepanov)

Pull request description:

  On master (e3ce019667) there are warnings in `./contrib/guix/guix-build` logs:
  ```
  xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value
  ```

  This PR fixes such warnings.

ACKs for top commit:
  prusnak:
    utACK c73415b

Tree-SHA512: a7b55f59afbb19b78f795cea64acacf29903cfcd5fd7c37a771b073c1f2ff54555a26f3d00c1c73a8ef588396217ddf598e32b2ae961559042cc051b0aad162a
2022-01-31 14:07:43 +08:00
fanquake
32ee7675fa
Merge bitcoin/bitcoin#24111: build: force CRCCheck in Windows installer
b3ccf26df4 build: force CRCCheck in Windows installer (fanquake)

Pull request description:

  Otherwise a user can pass `/NCRC` on the command line and bypass the
  CRC check, meaning they could use a corrupted installer. I can't think of
  a reason why we'd want to allow the use of corrupted installers.

  [NSIS docs](https://nsis.sourceforge.io/Docs/Chapter4.html#acrccheck):
  > Specifies whether or not the installer will perform a CRC on itself before allowing an install. Note that if the user uses /NCRC on the command line when executing the installer, and you didn't specify 'force', the CRC will not occur, and the user will be allowed to install a (potentially) corrupted installer.

ACKs for top commit:
  hebasto:
    ACK b3ccf26df4, I have reviewed the code and it looks OK, I agree it can be merged.
  prusnak:
    utACK b3ccf26df4

Tree-SHA512: 6b3c151bfd896dbf1a4af26114aec1721e4d4e6dad89eef796cd754c988b1bb03fd9a3f9889be3c754ff5b1cd7bf5bbfc126876c76038205c17807daff029319
2022-01-31 13:35:57 +08:00
brunoerg
58ccc88541 lint: add creat and ba into ignore-words for lint-spelling 2022-01-30 16:16:18 -03:00
brunoerg
bad0e7f521 doc: Fix typos pointed out by lint-spelling 2022-01-30 08:59:10 -03:00
Hennadii Stepanov
5b4b8f76f3
Merge bitcoin-core/gui#526: Add address relay/processed/rate-limited fields to peer details
9fbd1bb7fa gui: use available space to display "Last Transaction" in peer details (Jon Atack)
6cd132d380 gui: add "Addresses Rate-Limited" (m_addr_rate_limited) to peer details (Jon Atack)
19623d3182 gui: add "Addresses Processed" (m_addr_processed) to peer details (Jon Atack)
a465a66ef2 gui: add "Address Relay" (m_addr_relay_enabled) to peer details (Jon Atack)

Pull request description:

  This pull adds the following address fields in rpc getpeerinfo and cli -netinfo to the gui peers details:

  - Address Relay (Yes/No)
  - Addresses Processed (integer)
  - Addresses Rate-Limited (integer)

  and uses the additional horizontal space to display "Last Transaction" (instead of "Last Tx").

  ![Screenshot from 2022-01-21 00-05-49](https://user-images.githubusercontent.com/2415484/150436343-02abe635-8abe-4212-9ce5-522df17ca2b6.png)

ACKs for top commit:
  hebasto:
    ACK 9fbd1bb7fa, tested on Ubuntu 21.10 (Qt 5.15.2).
  w0xlt:
    reACK 9fbd1bb

Tree-SHA512: 76d414b82f432b7baf2cadcf2f52412a3af8ad78a93755bb82c65df5353dda4d2e2522428a36c8bb95316bf84b17f2485636c33ce5ae11566469671b5384d845
2022-01-28 20:42:42 +00:00
Jon Atack
20276ca5d1
Replace lock with thread safety annotation in CBlockTreeDB::LoadBlockIndexGuts() 2022-01-28 20:52:53 +01:00
Hennadii Stepanov
99a6b699cd
Fix race condition for SetBannedSetDirty() calls
Another thread can `SetBannedSetDirty(true)` while `CBanDB::Write()`
call being executed. The following `SetBannedSetDirty(false)`
effectively makes `m_is_dirty` flag value inconsistent with the actual
`m_banned` state. Such behavior can result in data loss, e.g., during
shutdown.
2022-01-28 19:27:25 +00:00
Hennadii Stepanov
83c7646715
Avoid calling BanMan::SweepBanned() twice in a row 2022-01-28 19:27:25 +00:00
Hennadii Stepanov
33bda6ab87
Fix data race condition in BanMan::DumpBanlist()
The m_is_dirty value being read in BannedSetIsDirty() can differ from
the value being set in SweepBanned(), i.e., be inconsistent with a
BanMan instance internal state.
2022-01-28 19:27:25 +00:00
Hennadii Stepanov
5e20e9ec38
Prevent possible concurrent CBanDB::Write() calls 2022-01-28 19:26:27 +00:00