Commit Graph

20176 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
d253a58d17 Merge #15322: wallet: Add missing cs_db lock
712d35bc563ac7de0b7dfc3a35fc48dc6448fa6a wallet: Add missing cs_db lock (João Barbosa)

Pull request description:

  Without this lock `BerkeleyEnvironment::~BerkeleyEnvironment` and `GetWalletEnv` would race for `g_dbenvs`. This wasn't detected before because thread safety analysis does not check constructors
  and destructors.

  Reference: http://releases.llvm.org/5.0.2/tools/clang/docs/ThreadSafetyAnalysis.html#no-checking-inside-constructors-and-destructors

Tree-SHA512: 350cb2b991ca699a6bca85f87c82c38f0814484c8ccb0d7d83cb3bff9afcf60dd32b2a9554a9e72eb5803bfad8b6970fe7da618b39be5889178b86faa1b74124
2021-08-03 10:46:00 -04:00
Jonas Schnelli
c2b8e5f0c9 Merge #15196: [test]: Update all subprocess.check_output functions to be Python 3.4 compatible
fdf82ba18 Update all subprocess.check_output functions in CI scripts to be Python 3.4 compatible (Graham Krizek)

Pull request description:

  CI is failing the `lint` stage on every Cron run (regular PR/Push runs still pass). The failure was introduced in 74ce326 and has been broken since. The Python version running in CI was downgraded to 3.4 from 3.6. There were a couple files that were using the `encoding` argument in the `subprocess.check_output` function. This was introduced in Python 3.6 and therefore broke the scripts that were using it. The `universal_newlines` argument was used as well, but in order to use it we must be able to set encoding because of issues on some BSD systems.

  To get CI to pass, I removed all `universal_newline` and `encoding` args to the `check_ouput` function. Then I decoded all `check_output` return values. This should keep the same behavior but be Python 3.4 compatible.

Tree-SHA512: f5e5885e98cf4777be9cc254446a873eedb03bdccbd8e06772a964db95e9fcf46736aa9cdcab1d8f123ea9f4947ed6020679898d8b2f47ffb1d94c21a4b08209
2021-08-03 10:43:56 -04:00
Wladimir J. van der Laan
d70d401c72 Merge #14884: Travis: enforce Python 3.4 support through linter
31926ee8cfc73501524dfa0fef2ccbaa786d6a00 [test] functional framework: add CScript hex() for Python 3.4 (Sjors Provoost)
74ce32683199b987e45eb16f0320ae392ff10edc [test] Travis: enforce Python 3.4 support in functional tests (Sjors Provoost)

Pull request description:

  The minimum supported version of Python is 3.4 according to [dependencies.md](https://github.com/bitcoin/bitcoin/blob/master/doc/dependencies.md). This PR makes the Travis linter use this version in order to catch accidental use of modern syntax.

Tree-SHA512: 71b2c102be72b135a8ba049378d66875760f20a04a657102a399240c5c2b2ddbdfa7d5ab4c0c0242ecc3259e0ee8eb2273f331bc5eb824f4ae4c3cc58aea37ac
2021-08-03 10:39:19 -04:00
MarcoFalke
76e22067df Merge #14966: docs: fix testmempoolaccept CLI syntax
b74a52192b fix testmempoolaccept CLI syntax (1Il1)

Pull request description:

  `testmempoolaccept "hexstring"` will give a "JSON parse error". The correct syntax is `testmempoolaccept \[\"hexstring\"\]` (but seems escaping is not displayed in other areas so leaving backspaces out).

Tree-SHA512: ad755147d6db0bd3f2d8481517dab29df755a32b28a3bdb4553b1fddd1940850450d1e9a6c3bd04e4e3faa7bc09aadfd3412b4cd65e61d61ea34452831597967
2021-08-03 10:36:15 -04:00
Wladimir J. van der Laan
6d221d5220 Merge #15012: Docs: Fix minor error in doc/psbt.md
72b63bc9054f7742a9b12ea29b21770b5e437092 Fix minor grammar error in doc (bitcoinhodler)

Pull request description:

  It's pretty clear that the author meant "rather than" here.

Tree-SHA512: aa31d0e8a8a203dba5c0f6edd73ba935b701449243a0fa75d7ca4a35d20c0fd44ba45b58e3d1c7f1854eb1ed66543ecd5d53181c54352e4c3d42eb3ab38cf6f2
2021-08-03 10:36:15 -04:00
Wladimir J. van der Laan
0720565814 Merge #14319: doc: Fix PSBT howto and example parameters
78542a3f36381fe96f60708834c8378042e3bab6 doc: Fix PSBT howto and example parameters (priscoan)

Pull request description:

Tree-SHA512: 2fcdd67717647e2f6166e6744c0938c96d8df6951e2ee5507372dad22ff66660f34c4554c86624c25f9a0dac2cdf8aff19bb7fc64a60e8e80a175f729ef913e4
2021-08-03 10:36:15 -04:00
MeshCollider
64b0e1ee2d Merge #14809: Tools: improve verify-commits.py script
45842c3d2 Improve documentation for running verify-commits.py script (Jameson Lopp)

Pull request description:

  I ran into 3 different issues while trying to run the verify-commits script for the first time and I think documenting them would help save time for future developers.

  1. I was trying to just run it with "python" and didn't realize I had multiple python versions installed and this script is only syntactically valid for python 3.x.
  2. I needed to import the trusted keys
  3. The script was hanging because it was triggering my yubikey for signature verification

Tree-SHA512: dfc7a62972ca3de528fae3c9d420c7d2d6658767a555ebbf5f4a27c04748c35ccf8bf63bfc9f264358346de0db49bfbaf2d1540793a609d81c2d9b622ee8182c
2021-08-03 10:36:15 -04:00
MarcoFalke
d4442aca01 Merge #14783: gui: Fix boost::signals2::no_slots_error in early calls to InitWarning
6bbdb2077e squashme: connect thru node interface (João Barbosa)
a0f8df365d qt: Call noui_connect to prevent boost::signals2::no_slots_error in early calls to InitWarning (João Barbosa)

Pull request description:

  Adding the following to `bitcoin.conf`
  ```
  [xxx]
  disablewallet=1
  ```
  And running `bitcoin-qt` gives:
  ```
  libc++abi.dylib: terminating with uncaught exception of type boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::signals2::no_slots_error> >: boost::signals2::no_slots_error
  ```

  Fixes regression in #14708.

Tree-SHA512: 7c158376fad6ebcd80fc0dbe549d5b6e893fb82e7dc1e455825633d7f91b14dc34493487cab7642152e88f9eaf99bfa91988972d600e9fb289cf26afd64aff8a
2021-08-03 10:36:15 -04:00
MarcoFalke
7603e1ce8c Merge #14820: test: Fix descriptor_tests not checking ToString output of public descriptors
c77f09230b Fix descriptor_tests not checking ToString output of public descriptors (Russell Yanofsky)

Pull request description:

  This fixes a minor test bug introduced in #13697 that I noticed while reviewing #14646

Tree-SHA512: efed91200cdff5f86ba5de3461ac00759d285e2905f6cb24cea15d3e23e0581ce5fc14b24a40db093f7ebd662ee1ee2cf67f8798bac1903a78298eda08909cfb
2021-08-03 10:36:15 -04:00
Wladimir J. van der Laan
9c27b383ae Merge #14678: [wallet] remove redundant KeyOriginInfo access, already done in CreateSig
b81a1860561ccbda3cd6913f54e49fdc91c7718c GetPubKey: make sigdata const (Gregory Sanders)
f7beb95a1f921ed292680fbd2f042b4bac73bf59 remove redundant KeyOriginInfo access, already done in CreateSig (Gregory Sanders)

Pull request description:

  This redundancy is confusing as it looks like pubkeyhashes are special in some way based on where it's called.

Tree-SHA512: a980b7c774c6d69322945227a2b156489fb1991ebf57fe6f26096d5f8047f246a133debc241b05af67810f604b040079add3ab3d30d9e2928095905a2afe17eb
2021-08-03 10:36:15 -04:00
Kittywhiskers Van Gogh
15055e46f6
merge bitcoin#13960: Fix PSBT deserialization of 0-input transactions (#4310) 2021-08-03 12:15:44 +03:00
UdjinM6
c5758c9a61
qt: Sync some Dash specific (non-)wallet actions with wallet availability (#4309)
* Enable non-wallet Tools menu actions even when wallet is disabled

* Lock/Unlock menu actions should follow the same logic as other wallet related actions

* Disable wallet repair actions that require wallet to be loaded when there is no wallet
2021-08-03 12:13:04 +03:00
PastaPastaPasta
c56f8150ee
bug: remove possible race condition crash; nullptr access (#4308)
This probably isn't a huge thing to fix, as I think this race condition would be VERY rare, but may as well fix it.

I'm not positive if this is the right approach or if we should just return false here
2021-07-31 21:30:05 +03:00
PastaPastaPasta
7de658769b
refac: remove redundant check for IsBanned (#4307)
* refac: remove redundant check for IsBanned

* add onlyValid commnet

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

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-07-31 21:29:36 +03:00
PastaPastaPasta
f87d62d677
refactor: misc bls, evo, include refactoring (#4305)
* refactor/bls: misc refactoring and spelling/grammar fixes in bls code

* refactor/evo: misc refactoring and spelling/grammar fixes in evo code

* refactor: some include changes

* refactor: remove redundant `public`

* fix linter

Signed-off-by: pasta <pasta@dashboost.org>

* Sort includes

* Move `class CTxDSIn;`

* Drop unused functions in CBLSWorker

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-07-31 21:29:12 +03:00
PastaPastaPasta
2364b3b2ba
Merge pull request #4295 from linuxsh2/backport/qt-items
Backports 0.18 - Qt items (14383, 14521, 14784, 15023)
2021-07-31 10:39:54 -05:00
Jonas Schnelli
0ccfb45431 Merge #15023: GUI: Restore RPC Console to non-wallet tray icon menu
f33efa8ec535faae96b490c34978432799ca221f GUI: Restore RPC Console to non-wallet tray icon menu (Luke Dashjr)

Pull request description:

  #14383 moved the debug window's menu position, to make it conditional on wallet mode. The rationale given was to match the behaviour of the 'Help' menu.

  #14573 replaced the 'Help' menu's conditional debug window with an unconditional list of items in the new 'Window' menu.

  This PR reverts the no-longer-applicable part of #14383, putting the debug window back on the tray menu unconditionally, and in the position it previously had.

ACKs for top commit:
  jonasschnelli:
    Tested ACK f33efa8ec535faae96b490c34978432799ca221f - the debug window is also accessible from the menu (though directly the subpages which counts IMO).

Tree-SHA512: c04a588fed37a8c31cb413baaa346e3c1c18724f9b40d64b8528c517f65290930d577bccf0a794180e968e84d3c52e9fa3fdc8a40bbc5fe3418eaddd73481271
2021-07-30 11:24:35 -04:00
Wladimir J. van der Laan
b8e420512e Merge #14383: qt: Clean system tray icon menu for '-disablewallet' mode
36323e2ac6cca134de47b06c3f6403de91ee9eda Clean systray icon menu for -disablewallet mode (Hennadii Stepanov)

Pull request description:

  There is a `Debug window` leftover in the system tray icon menu after #3392 merging.
  This PR makes both the app menu and the systray icon menu consistent.

Tree-SHA512: c9ef58785fe2a54bc6f778140a16001748ed8c46da948656822b86fdc2e224203cd467857f71d00ce56fc73ff2590c46d8c234a54c261c1141d83039de6fee1e
2021-07-30 11:22:46 -04:00
Wladimir J. van der Laan
9c05f6d568 Merge #14784: qt: Use WalletModel* instead of the wallet name as map key
91b0c5b09616bb8c5ef8107efb432ce4c7c9a383 qt: Use WalletModel* instead of wallet name in console window (João Barbosa)
b2ce86c3ad79db49ddf06207230512300ec11156 qt: Use WalletModel* instead of wallet name in main window (João Barbosa)
d2a1adffebee86763fafc6f3ed2722f7038654c7 qt: Factor out WalletModel::getDisplayName() (João Barbosa)

Pull request description:

  This a small refactor that doesn't change behavior. This is also necessary if in the future we allow renaming wallets.

Tree-SHA512: 1820d0ff28e84b1d862097f1f55b52f94520fa50c9b1939d235a448a48159748c3bbf99b19e4cb1ff4f91efc008c0971b4c25a91f645f9d43792c8aeaa93cf9e
2021-07-30 11:17:14 -04:00
Wladimir J. van der Laan
40d649da54 Merge #14521: qt, docs: Fix bitcoin-qt -version output formatting
60ae463a68206b08faaadfbb023d7ede78fff784 Fix `bitcoin-qt -version` output formatting (Hennadii Stepanov)

Pull request description:

  This PR makes command line output of `bitcoin-qt -version` formatted in the same way as `bitcoind -version` output.

  Before:
  ![screenshot from 2018-10-19 20-16-42](https://user-images.githubusercontent.com/32963518/47233718-434a2a80-d3dc-11e8-90d4-84dd23e8ac3b.png)

  After:
  ![screenshot from 2018-10-19 20-22-09](https://user-images.githubusercontent.com/32963518/47233888-b653a100-d3dc-11e8-9155-000b517a8e7b.png)

Tree-SHA512: fd8bd20e2108b9562bcbf6c094f950e867a5755994e8acc28b07e52fe73d04f783201c20bde47be2083ce89fb3ef9749f9c3757d479ad6c48ed09c633155f47e
2021-07-30 11:17:14 -04:00
MarcoFalke
e68964ca20 Merge #14310: [wallet] Ensure wallet is unlocked before signing
20442f617f [wallet] remove redundand restart node (gustavonalle)
db15805668 [wallet] Ensure wallet is unlocked before signing (gustavonalle)

Pull request description:

  Fixes #14082

Tree-SHA512: 200620a2ced934f958933aba34541565a992e5033cf04c4e2be48b99e7708973c85f8274968962cec943f0c1d76fb2faa5e056469bbf59ce7f768614572322f9
2021-07-29 22:27:57 -03:00
PastaPastaPasta
f65b789f9a
Refac: misc coinjoin refactoring and spelling / grammar fixes (#4304)
* refactor: misc coinjoin refactoring

* fix spelling / grammar recommendations in coinjoin
2021-07-30 03:01:02 +03:00
PastaPastaPasta
f14e8eeada
actions: Prevent accidental merging to master (#4302)
Signed-off-by: pasta <pasta@dashboost.org>
2021-07-29 13:12:54 +03:00
Stefan
6218a94677
Merge #13988: Add checks for settxfee reasonableness (#4301)
317f2cb3f4499afbaa63e3cac80567744f12c95b test: Check RPC settxfee errors
            (João Barbosa)
48618daf262b84c2e2f7322b5ca14375d7d68b64 Add checks for settxfee
            reasonableness (Anthony Towns)

Pull request description:

  When using the `settxfee` RPC, the value is silently ignored if it
is less than either than minrelaytxfee or the wallet's mintxfee. This
adds an error response if that's going to happen, but still allows
"settxfee 0" to deliberately default to the minimum value.
2021-07-29 13:01:15 +03:00
UdjinM6
dd7c1e84d3
Merge pull request #4300 from UdjinM6/more_werror
Few followups for recently merged PRs
2021-07-29 12:59:41 +03:00
UdjinM6
541d0a0255
Disable DIP0020 activation timeout on devnet (#4299) 2021-07-29 12:59:21 +03:00
Stefan
1a29d78829
Merge bitcoin#14771: test: Add BOOST_REQUIRE to getters returning optional (#4297)
* Merge #14771: test: Add BOOST_REQUIRE to getters returning optional

fa21ca09a8 test: Add BOOST_REQUIRE to getters returning optional
            (MarcoFalke)

Pull request description:

  Usually the returned value is already checked for equality, but for
sanity we might as well require that the getter successfully returned.

* Ports [[nodiscard]] portion of bitcoin#14771
2021-07-29 00:53:44 -05:00
UdjinM6
25f5611d1a
More of 11634: wallet: Add missing cs_wallet/cs_KeyStore locks to wallet 2021-07-29 04:19:14 +03:00
UdjinM6
21b98ba189
More of 13697: Support output descriptors in scantxoutset 2021-07-29 04:03:51 +03:00
UdjinM6
a972afdf9e
More of 13115: addrman: Add Clang thread safety annotations for variables guarded by CAddrMan.cs 2021-07-29 03:33:51 +03:00
MarcoFalke
6fb718dc96 Merge #14436: doc: add comment explaining recentRejects-DoS behavior
b191c7dfb7 doc: add comment explaining recentRejects-DoS behavior (James O'Beirne)

Pull request description:

  When we receive invalid txs for the first time, we mark the sender as
  misbehaving. If we receive the same tx before a new block is seen, we *don't*
  punish the second sender (in the same way we do the original sender). It wasn't
  initially clear to me that this is intentional, so add a clarifying comment.

Tree-SHA512: d12c674db137ed3ad83e0b941bffe6ddcd2982238048742afa574a4235881f0e58cfc0a4a576a0503e74c5c5240c270b9520fa30221e8b43a371fb3e0b37066b
2021-07-28 20:21:29 -04:00
rkarthik2k21
13cb92e27f
Add virtual destructors for CBLSWrapper and CBLSLazyWrapper (#4298)
* Fixes issue #3759

Add virtual destructors for CBLSWrapper and CBLSLazyWrapper

* Fix linter errors

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

Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-07-28 23:13:26 +03:00
UdjinM6
4ead0a71b7
Merge pull request #4289 from Munkybooty/backports-0.18-pr11
Backports 0.18 pr11
2021-07-28 20:54:28 +03:00
MarcoFalke
1018267b10 Merge #14660: trivial: Don't translate help texts
b6022149ec trivial: Don't translate in help text (ken2812221)

Pull request description:

Tree-SHA512: 05a92b3ac77d00e7bf8c62a0461c9801306e924ac408eae58b0e091eae1c7d54cf46a7a862355fb9aa50b26b505f2298ace6f7b8d294ad38578bdca4d8738343
2021-07-28 12:08:15 -04:00
Wladimir J. van der Laan
e74e8a74f4 Merge #14628: Trivial: Rename misleading 'defaultPort' to 'rpc_port'
4ed730802f9ec3d65477a29a318dd78216ef7085 scripted-diff: Rename misleading 'defaultPort' to 'http_port' (Murray Nesbitt)

Pull request description:

  `defaultPort` in `HTTPBindAddresses()` is misleadingly named. `defaultPort ` suggests a constant, not something that might be overridden by `-rpcport`.

Tree-SHA512: f6ae8bdc2b4a4f503e44df9efdec32c854d2dede87714399f53791d50cce6bc41c46b01d1583cfc0e3e4777c244e1c74443fa39d9da50a45e53af265b74a17d1
2021-07-28 12:08:07 -04:00
MarcoFalke
2f59f766d6 Merge #14410: rpcwallet: 'ischange' field for 'getaddressinfo' RPC
14a06525b2 tests: add test for 'getaddressinfo' RPC result 'ischange' field (whythat)
93d1aa9abc rpcwallet: add 'ischange' field to 'getaddressinfo' response (whythat)

Pull request description:

  Implementation of proposal in #14396.

  This introduces `CWallet::IsChange(CScript&)` method and replaces original `CWallet::IsChange(CTxOut&)` method with overloaded version that delegates to the new method with *txout*'s `scriptPubKey`. In this way `TODO` note from the original method can still be addressed in a single place.

Tree-SHA512: ef5dbc82d76b4b9b2fa6a70abc3385a677c55021f79e187ee2f392ee32bc6b406191f4129acae5c17b0206e72b6712e7e0cad574a4bbd966871c2e656c45e041

# Conflicts:
#	doc/release-notes-14282.md
#	src/wallet/rpcwallet.cpp
2021-07-28 12:08:07 -04:00
Wladimir J. van der Laan
65c030f7ac Merge #14377: check that a separator is found for psbt inputs, outputs, and global map
4fb3388db95f408566e43ebb9736842cfbff0a7d check that a separator is found for psbt inputs, outputs, and global map (Andrew Chow)

Pull request description:

  Currently it doesn't make sure that a separator was found so PSBTs missing a trailing separator would still pass. This fixes that and adds a test case for it.

  It really only makes sense to check for the separator for the output maps as if an input or global map was missing a separator, the fields following it would be interpreted as belonging to the previous input or global map. However I have added the check for those two anyways to be consistent.

Tree-SHA512: 50c0c08e201ba02494b369a4d36ddb73e6634eb5a4e4e201c4ef38fd2dbeea2c642b8a04d50c91615da61ecbfade37309e47431368f4b1064539c42015766b50
2021-07-28 12:08:07 -04:00
Wladimir J. van der Laan
ae6f3840c9 Merge #14554: qt: Remove unused adjustedTime parameter
04972fefd12c2c764b5f2afee87228e8d90f2448 Remove unused `adjustedTime` parameter (Hennadii Stepanov)

Pull request description:

  After merging #13622 the `adjustedTime` parameter in the `updateStatus` function is unused.

Tree-SHA512: 1d0e03e7343f076ee0032fb721f8ba50571d579958001aab372a43e45b4de24c2bf3bd18c245071cbd69f61ef38182e19666c6f936d55c9085b73c848ba62626

# Conflicts:
#	src/interfaces/wallet.cpp
#	src/interfaces/wallet.h
#	src/qt/transactionrecord.cpp
#	src/qt/transactionrecord.h
#	src/qt/transactiontablemodel.cpp
2021-07-28 12:08:07 -04:00
MarcoFalke
fe24157964 Merge #14528: travis: Compile once on xenial
fa4bcaf82a travis: Compile once on xenial (MarcoFalke)

Pull request description:

  Currently we only build on bionic (since that is also the current gitian environment). However, building on the current and previous Ubuntu LTS should be supported with only system packages and without depends.

Tree-SHA512: bf5725cfb1be09220510d53010c7b7deb20051a9995e39fe5e83505c63db09ac877a41b896c97b253052fefea58ca0a9b6d9c5962a7ac4b258782c476d6ee7c0
2021-07-28 12:08:07 -04:00
MarcoFalke
6d4984b0a7 Merge #14630: test_runner: Remove travis specific code
fa43626611 test_runner: Remove travis specific code (MarcoFalke)

Pull request description:

  The tests are no longer run on travis, but in a docker, developer machines or a windows vm.

  The code was essentially dead for months now. Fix that by explicitly passing in `--ci` to the test runner on our docker and appveyor windows vm.

Tree-SHA512: 5d48693c03e8eb27536658ccf9ba738fe93a72abd4b72c80caac084b5b2cdffa77a1031a671eeefe70b71d63500f55917803d4be54d01849722afdccb700a9e6
2021-07-28 12:08:07 -04:00
Stefan
59cfd5263a
Merge bitcoin#14636: Avoid using numeric_limits for sequence numbers and lock times (#4296)
Merges bitcoin/bitcoin#14636: Avoid using numeric_limits for sequence
numbers and lock times.

535203075e Avoid using numeric_limits for sequence numbers and lock
            times (Russell Yanofsky)
bafb921507 Remove duplicated code (Hennadii Stepanov)
e4dc39b3bc Replace platform dependent type with proper const
            (Hennadii Stepanov)

Pull request description:

  Switches to named constants, because numeric_limits calls can be
harder to read and less portable.

  Change was suggested by jamesob in
https://github.com/bitcoin/bitcoin/pull/10973#discussion_r213473620

  There are no changes in behavior except on some platforms we don't
support (ILP64, IP16L32, I16LP32), where `SignalsOptInRBF` and
`MutateTxAddInput` functions would now work correctly.
2021-07-28 09:16:46 -05:00
UdjinM6
b79c3e01ed
Resolve cs_main vs governance vs masternode-sync deadlocks (#4293) 2021-07-28 14:10:08 +03:00
PastaPastaPasta
18fae161d1
contrib: Dashify verifybin (#4288) 2021-07-27 13:48:01 +03:00
PastaPastaPasta
dfc17e235b
drop 16695 release notes (#4286) 2021-07-27 13:47:16 +03:00
gabriel-bjg
41190e9899
Fix data races triggered by functional tests. (#4247)
Function CWallet::KeepKey requires locking as it has concurrent access to database and member nKeysLeftSinceAutoBackup.

Avoid data race when reading setInventoryTxToSend size by locking the read. If locking happens after the read, the size may change.

Lock cs_mnauth when reading verifiedProRegTxHash.

Make fRPCRunning atomic as it can be read/written from different threads simultaneously.

Make m_masternode_iqr_connection atomic as it can be read/written from different threads simultaneously.

Use a recursive mutex to synchronize concurrent access to quorumVvec.

Make m_masternode_connection atomic as it can be read/written from different threads simultaneously.

Make m_masternode_probe_connection atomic as it can be read/written from different threads simultaneously.

Use a recursive mutex in order to lock access to activeMasterNode.

Use a recursive mutex to synchronize concurrent access to skShare.

Guarded all mnauth fields of a CNode.

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-07-26 10:52:52 -05:00
MarcoFalke
14af9c67b6 Merge #13783: validation: Pass tx pool reference into CheckSequenceLocks
fa511e8dad Pass tx pool reference into CheckSequenceLocks (MarcoFalke)

Pull request description:

  `CheckSequenceLocks` is called from ATMP and the member function `CTxMemPool::removeForReorg` without passing in the tx pool object that is used in those function's scope and instead using the global `::mempool` instance.

  This fix should be refactoring only, since currently there is only one (global) tx pool in normal operation. Though, it fixes hard to track down issues in future settings where more than one mempool exists at a time. (E.g. for tests, rpc or p2p tx relay purposes)

Tree-SHA512: f0804588c7d29bb6ff05ec14f22a16422b89ab31ae714f38cd07f811d7dc7907bfd14e799c4c1c3121144ff22711019bbe9212b39e2fd4531936a4119950fa49
2021-07-26 09:57:19 -04:00
MarcoFalke
6e0fdc7321 Merge #14571: [tests] Test that nodes respond to getdata with notfound
fa78a2fc67 [tests] Test that nodes respond to getdata with notfound (MarcoFalke)

Pull request description:

  If a node has not announced a tx at all, then it should respond to
  getdata messages for that tx with notfound, to avoid leaking tx
  origination privacy.

  In the future this could be adjusted such that a node responds with
  notfound when a tx has not been announced to us, but that seems
  to be a more involved change. See e.g.
  https://github.com/jnewbery/bitcoin/commits/pr14220.1

Tree-SHA512: 6244afa5bd5d8fec9b89dfc02c9958bc370195145a0f3715f33200d6cf73a376c94193d44bf4523867196e6591c53ede8f9b6a77cb296b48c114a117b8c8b1fa
2021-07-26 09:57:14 -04:00
PastaPastaPasta
edf0552c0c
Merge pull request #4187 from kittywhiskers/scantxout
merge #12196, #13697: Add scantxoutset RPC method
2021-07-25 19:10:11 -05:00
PastaPastaPasta
796462f81b
Merge pull request #4285 from Munkybooty/backports-0.18-pr8
Backports 0.18 pr10
2021-07-25 18:33:23 -05:00
MarcoFalke
1e2f6aa8a3 Merge #13515: travis: Enable qt for all jobs
3387bb0829 travis: avoid timeout without saving caches, also enable all qt (Chun Kuan Lee)

Pull request description:

  - If depends build take more than 20 mins, skip Bitcoin Core build to store depends caches and mark it fail. Then restart the job for Bitcoin Core build.
  - Enable Qt build for Windows and 32-bit Linux
  - Enable wallet for depends x86-64 Linux
  - Disable gui tests for Windows since they are not supported

  This would be helpful for upgrading Qt (#12971) and protobuf (#13513)

Tree-SHA512: e943cbd848d90f9f70e29c94ed717f96ad2c2d27b433bafea762015756a2d2794fc28976c54aee087bf0f3726ac2c9140920272445a902038719b956e2160cf9
2021-07-23 10:12:54 -04:00