aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-02depends: fix capnp's descriptor for make downloadCory Fields
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-02doc: Install only "-posix" MinGW compiler when possibleHennadii Stepanov
2022-02-02ci: Drop no longer needed `update-alternatives`Hennadii Stepanov
2022-02-02build, qt: Specify QMAKE_CXX explicitlyHennadii Stepanov
This change allows to drop the `update-alternatives` step if the `g++-mingw-w64-x86-64` package has been installed.
2022-02-02build: remove unneeded getentropy detection (HAVE_GETENTROPY)Sebastian Falbesoner
2022-02-02random: use arc4random on OpenBSDSebastian Falbesoner
Following best practices on OpenBSD. The getentropy(2) man page states: "getentropy() is not intended for regular code; please use the arc4random(3) family of functions instead."
2022-02-02test: Avoid testing negative block heightsMarcoFalke
2022-02-02Merge bitcoin/bitcoin#24219: Fix implicit-integer-sign-change in bloomMarcoFalke
fad84a25956ec081f22aebbda309d168a3dc0004 refactor: Fixup uint64_t-cast style in touched line (MarcoFalke) fa041878de786f5be74ec74a06ec407c99ca8656 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 fad84a25956ec081f22aebbda309d168a3dc0004 theStack: Code-review ACK fad84a25956ec081f22aebbda309d168a3dc0004 Tree-SHA512: 7139dd9aa098c41e4af1b6e63dd80e71a92b0a98062d1676b01fe550ffa8e21a5f84a578afa7a536d70dad1b8a5017625e3a9e2dda6f864b452ec77b130ddf2a
2022-02-02validation: use stronger EXCLUSIVE_LOCKS_REQUIRED()Vasil Dimov
https://github.com/bitcoin/bitcoin/pull/24103 added annotations to denote that the callers of `CChainState::ActivateBestChain()` and `CChainState::InvalidateBlock()` must not own `m_chainstate_mutex` at the time of the call. Replace the added `LOCKS_EXCLUDED()` with a stronger `EXCLUSIVE_LOCKS_REQUIRED()`, see https://clang.llvm.org/docs/ThreadSafetyAnalysis.html#negative for the difference between both.
2022-02-02Merge bitcoin/bitcoin#24223: test: use MiniWallet for interface_rest.pyMarcoFalke
438e6f4c3324ec48ab7daf4d4e77c3947ffc00cd test: speedup interface_rest.py by whitelisting peers (immediate tx relay) (Sebastian Falbesoner) 11b9684dfd3237c6cafc83e56b4aceeb3e3340fb 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 438e6f4c3324ec48ab7daf4d4e77c3947ffc00cd Tree-SHA512: eac351c5fb7e043c36c193d51545f20f563be9aaa04f3429a2bfb452ae4aa72294d2552800d6cac55c9a3ec2b4f30bcda2abcd74736dec3ed75e7d83c5af437f
2022-02-01Merge bitcoin/bitcoin#24083: Revert "Add to spends only transcations from me"Andrew Chow
3ee6d0788ec1b90f7c39c9644dba4011f7cf5db4 test: add more wallet conflicts assertions (S3RK) 3b98bf9c43ece060d57d7ae31624d4a8220de266 Revert "Add to spends only transcations from me" (S3RK) Pull request description: This reverts commit d04566415e16ae685af066384f346dff522c068f 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 3ee6d0788ec1b90f7c39c9644dba4011f7cf5db4 Tree-SHA512: bf5a77ced6bac57d5eb85771d9189c53e1edc295d179ed5a1bdce18e365794a9101b4cecf35387b27f67260db3b47f7214e7876e490494529b748cceeb95632d
2022-02-01Fix unsigned integer overflow in LoadMempoolMarcoFalke
2022-02-01Merge bitcoin/bitcoin#24212: ci: Bump CentOS 8 imageMarcoFalke
fafc55a489d8f654dd7732b699c9bf51b5136b4b ci: Use dash when building depends in centos build (MarcoFalke) fa33236e77974de13a329c8eda34ebc842d1aa01 scripted-diff: Rename DOCKER_EXEC to CI_EXEC (MarcoFalke) fa5457e64adfc6060382bd36c45e95be6ea693ef 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-01refactor: Fixup uint64_t-cast style in touched lineMarcoFalke
2022-02-01Merge bitcoin/bitcoin#24218: zmq: Fix implicit-integer-sign-changeMarcoFalke
fa2406a50a83184d101d1bb3f2b282ae280370ba 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 fa2406a50a83184d101d1bb3f2b282ae280370ba PastaPastaPasta: utACK fa2406a50a83184d101d1bb3f2b282ae280370ba, I have reviewed the code and think it makes sense Tree-SHA512: 150ebcf3fdc3e0f60b6fd8e5fe638737b01e8a0863296bd545fb5ed17d33ab23b2ff94204996aa7b4617650b7383bd86ed2d2bf46746b410feae449de179a2bd
2022-02-01ci: Use dash when building depends in centos buildMarcoFalke
2022-02-01scripted-diff: Rename DOCKER_EXEC to CI_EXECMarcoFalke
-BEGIN VERIFY SCRIPT- sed -i "s/DOCKER_EXEC/CI_EXEC/g" $(git grep -l DOCKER_EXEC) -END VERIFY SCRIPT-
2022-02-01ci: Bump CentOS 8 imageMarcoFalke
2022-02-01Merge bitcoin/bitcoin#24190: test: Fix sanitizer suppresions in streams_testsMarcoFalke
faa630aa15bbda0f3b0cf3b6f31cf8fdaeb66975 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 196b4599201dbce3e0317e9b98753fa6a244b82d. * 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 faa630aa15bbda0f3b0cf3b6f31cf8fdaeb66975, I have reviewed the changes and agree it makes sense to merge Tree-SHA512: 747b9d4676fad6d07f3955668639c93333625e69199ff4c499f01167de3875990d93db85e775a7f5b1b684575dceaec8aa000b4db15525fc47b699bac1c85e3d
2022-01-31build: Replace `which` command with `command -v`Hennadii Stepanov
This change made in a way that is compatible with GNU Make versions older than 4.3.
2022-01-31test: speedup interface_rest.py by whitelisting peers (immediate tx relay)Sebastian Falbesoner
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-31test: use MiniWallet for rest_interface.pySebastian Falbesoner
This test can now be run even with the Bitcoin Core wallet disabled.
2022-01-31test: activate all index types in feature_init.pyMartin Zumsande
2022-01-31index: Don't commit without valid m_best_block_indexMartin Zumsande
Also report an error when coinstatsindex init fails.
2022-01-31Merge bitcoin/bitcoin#24192: test: Fix feature_init intermittent issuesMarcoFalke
fa7b07571f24b6def6effdd4cc1b96c7507bf959 test: Fix feature_init intermittent issues (MarcoFalke) fa4595deb334f14dac9ba481d786a823e0f0fde1 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 https://github.com/bitcoin/bitcoin/pull/24192/commits/fa7b07571f24b6def6effdd4cc1b96c7507bf959 mzumsande: Code Review ACK fa7b07571f24b6def6effdd4cc1b96c7507bf959 Tree-SHA512: f107a04926270a1d9ac8f53b6e5254566d1827ba7d27fd74f9ce909319f8794f8bd46da9c42256bf41b6df26c0bad8b9a0d54e4e148695189af09f31e3948330
2022-01-31Fix implicit-integer-sign-change in bloomMarcoFalke
2022-01-31zmq: Fix implicit-integer-sign-changeMarcoFalke
2022-01-31Fix unsigned integer overflow in tapscript validation weight calculationMarcoFalke
2022-01-31Merge bitcoin/bitcoin#24191: refactor: Make MessageBoxFlags enum underlying ↵MarcoFalke
type unsigned 1111d33532516c16fb2e22660ac2745ce56ad6cd 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 1111d33532516c16fb2e22660ac2745ce56ad6cd, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 48b16c4a0ace1a1e4d351d6eadadbb1bc42aef7fd82e24e3ea50c62f2c04a552ed21027158d09aa97e630c8c7d732cb150c38065333d7c2accbae46593b7ed9f
2022-01-31Merge bitcoin/bitcoin#24103: Replace RecursiveMutex `m_cs_chainstate` with ↵MarcoFalke
Mutex, and rename it 020acea99b605c9b5ee7939a6acef131db84ad4a refactor: replace RecursiveMutex m_chainstate_mutex with Mutex (w0xlt) ddeefeef20fa2fe48c3c4563370a6297704d228e refactor: add negative TS annotations for `m_chainstate_mutex` (w0xlt) 1dfd31bc267c54144a7e62ad5a1a5860c032f4d7 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 020acea99b605c9b5ee7939a6acef131db84ad4a, I have reviewed the code and it looks OK, I agree it can be merged. theStack: Code-review ACK 020acea99b605c9b5ee7939a6acef131db84ad4a 🌴 shaavan: reACK 020acea99b605c9b5ee7939a6acef131db84ad4a Tree-SHA512: c7c16e727e326df3410514915ce753a2a5e1da78857ef965ef683e36251e1b73c9cced4cd5231b04dbe2be0ea14084f6731b4d7a4d9a8e086e982b985e37e4b4
2022-01-31test: Fix feature_init intermittent issuesMarcoFalke
2022-01-31test: Remove random line number feature from feature_init.pyMarcoFalke
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-31Merge bitcoin/bitcoin#24136: Extract CTxIn::MAX_SEQUENCE_NONFINAL constant, ↵MarcoFalke
rework BIP 65/68/112 docs fa4339e4c1bb60e0d9263d4f0fe65d03aad52f88 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 fa4339e4c1bb60e0d9263d4f0fe65d03aad52f88 luke-jr: crACK fa4339e4c1bb60e0d9263d4f0fe65d03aad52f88 Tree-SHA512: 8d8f3dd5afb33eb5b72aa558e1e03de874c5ed02aa1084888e92ed86f3aaa5c725db45ded02e14cdfa67a92ac6774e97185b697f20a8ab63abbfcaa2fcd1fc6a
2022-01-31refactor: Make MessageBoxFlags enum underlying type unsignedMarcoFalke
2022-01-31Merge bitcoin/bitcoin#24146: Avoid integer sanitizer warnings in chain.oMarcoFalke
fa832103aaa61e93b78ece9dd68c245a41afa6b6 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 fa832103aaa61e93b78ece9dd68c245a41afa6b6 jonatack: ACK fa832103aaa61e93b78ece9dd68c245a41afa6b6 Tree-SHA512: d32a06099c56eed9f69130a3209f989872acc593f849528acd7746ee6caa96688cc32de37e8e59ad5d25dcb8912e341f1a43e50642dadeff6ca7624d0873ad10
2022-01-31Merge bitcoin/bitcoin#24179: fuzz: Speed up script fuzz targetMarcoFalke
fa6842978d01f6707564a841303033d7bfbabb3b 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 fa6842978d01f6707564a841303033d7bfbabb3b Tree-SHA512: 5e408255f96f9e92e472f4e8a8a0f8d8814bad444ac0ff7d5db5ed84a59a861135ffe5e04d81f479b0695cb17e4d7af005734959dd4aa9328bdc5acc98f36665
2022-01-31Merge bitcoin/bitcoin#24168: Fix some race conditions in `BanMan::DumpBanlist()`MarcoFalke
99a6b699cd650f13d7200d344bf5e2d4b45b20ac Fix race condition for SetBannedSetDirty() calls (Hennadii Stepanov) 83c76467157bbca023bffda0f0bc2f01eb76a040 Avoid calling BanMan::SweepBanned() twice in a row (Hennadii Stepanov) 33bda6ab87cc1b569e96da337296eb3e9ce6db1a Fix data race condition in BanMan::DumpBanlist() (Hennadii Stepanov) 5e20e9ec3859205c220867ca49efb752b8edaacc 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 99a6b699cd650f13d7200d344bf5e2d4b45b20ac Tree-SHA512: da4e7268c7bd3424491f446145f18af4ccfc804023d0a7fe70e1462baab550a5e44f9159f8b9f9c7820d2c6cb6447b63883616199e4d9d439ab9ab1b67c7201b
2022-01-31Merge bitcoin/bitcoin#24197: Replace lock with thread safety annotation in ↵MarcoFalke
CBlockTreeDB::LoadBlockIndexGuts() 20276ca5d124285bdd1bda4cd777ca186b378555 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 20276ca5d124285bdd1bda4cd777ca186b378555, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 2d91d1c962af0286d835d92a56396a27ea00e9d061b869eaff9421b448a083b0513828e1d4df7504396896057bf1e344e180a50271a5cfd1e1c7b6527155b2bb
2022-01-31Merge bitcoin/bitcoin#24203: doc: Fix typos pointed out by lint-spellingMarcoFalke
58ccc885413d66b4fa581574360febfa27eb545f lint: add creat and ba into ignore-words for lint-spelling (brunoerg) bad0e7f5212434a44851a4a49d104f23a623453a 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 58ccc885413d66b4fa581574360febfa27eb545f Tree-SHA512: b350d0e64968b96ead226da0be6aa4ca3f8e482ae401697867684ce8478e96b954124b3dea6dcd697aad4206f209f32f238d7cf0a0589075f24f5cf629c563f3
2022-01-31Merge bitcoin/bitcoin#24129: build: Fix xargs warnings for Guix buildsfanquake
c73415bc10c1baa7988e1c55a0e9201df73a6c22 build: Fix xargs warnings for Guix builds (Hennadii Stepanov) Pull request description: On master (e3ce019667fba2ec50a59814a26566fb67fa9125) 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-31Merge bitcoin/bitcoin#24111: build: force CRCCheck in Windows installerfanquake
b3ccf26df47c70e7559625a0e65205648f64efb7 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 b3ccf26df47c70e7559625a0e65205648f64efb7, I have reviewed the code and it looks OK, I agree it can be merged. prusnak: utACK b3ccf26df47c70e7559625a0e65205648f64efb7 Tree-SHA512: 6b3c151bfd896dbf1a4af26114aec1721e4d4e6dad89eef796cd754c988b1bb03fd9a3f9889be3c754ff5b1cd7bf5bbfc126876c76038205c17807daff029319
2022-01-30lint: add creat and ba into ignore-words for lint-spellingbrunoerg
2022-01-30doc: Fix typos pointed out by lint-spellingbrunoerg
2022-01-28Merge bitcoin-core/gui#526: Add address relay/processed/rate-limited fields ↵Hennadii Stepanov
to peer details 9fbd1bb7fabec76c668a649967f6f4e355e6ca59 gui: use available space to display "Last Transaction" in peer details (Jon Atack) 6cd132d38014e790d7c65ea4755ff63733660e36 gui: add "Addresses Rate-Limited" (m_addr_rate_limited) to peer details (Jon Atack) 19623d3182d426a263ae57e8b34a8f57e905f75f gui: add "Addresses Processed" (m_addr_processed) to peer details (Jon Atack) a465a66ef209a241a4df1164d50cea97daaf4d99 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 9fbd1bb7fabec76c668a649967f6f4e355e6ca59, tested on Ubuntu 21.10 (Qt 5.15.2). w0xlt: reACK 9fbd1bb Tree-SHA512: 76d414b82f432b7baf2cadcf2f52412a3af8ad78a93755bb82c65df5353dda4d2e2522428a36c8bb95316bf84b17f2485636c33ce5ae11566469671b5384d845
2022-01-28Replace lock with thread safety annotation in CBlockTreeDB::LoadBlockIndexGuts()Jon Atack
2022-01-28Fix race condition for SetBannedSetDirty() callsHennadii Stepanov
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-28Avoid calling BanMan::SweepBanned() twice in a rowHennadii Stepanov
2022-01-28Fix data race condition in BanMan::DumpBanlist()Hennadii Stepanov
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-28Prevent possible concurrent CBanDB::Write() callsHennadii Stepanov
2022-01-28test: Repair failfast option for test runnerMartin Zumsande