aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-12build: Fix MSVC linker /SubSystem option for bitcoin-qt.exeHennadii Stepanov
It is still possible to use -printtoconsole option for debug builds.
2021-06-12Merge bitcoin-core/gui#333: refactor: Signal-slot connections cleanupHennadii Stepanov
f507681baa406046c9c3d44be39e99124a2d6e5f qt: Connect WalletView signal to BitcoinGUI slot directly (Hennadii Stepanov) bd50ff9290ea9ec8b482db11314a6fd658373f23 qt: Drop redundant OverviewPage::handleOutOfSyncWarningClicks slot (Hennadii Stepanov) 793f19599b6d9009c2fb11e4c07e0872ff00defe qt: Drop redundant WalletView::requestedSyncWarningInfo slot (Hennadii Stepanov) Pull request description: This PR: - removes slots whose only job is to emit a signal, since we can use the signal as a slot - connects the`WalletView::outOfSyncWarningClicked` signal to the `BitcoinGUI::showModalOverlay` slot directly, and removes intermediate `WalletFrame` slot and signal - split from #29 This PR does not change behavior. ACKs for top commit: Talkless: tACK f507681baa406046c9c3d44be39e99124a2d6e5f, tested on Debian Sid with Qt 5.15.2, no any behavioral changes noticed. promag: Code review ACK f507681baa406046c9c3d44be39e99124a2d6e5f. Tree-SHA512: cd636a7e61881b2cbee84d5425d2107a8e39683b8eb32d79dc9ea942db55d5c1979be2f70da1660eaee5de622d10ed5a92f11fc2351de21b84324b10b23d0c96
2021-06-12Merge bitcoin/bitcoin#22172: doc: update tor.md, release notes with removal ↵W. J. van der Laan
of tor v2 support 2ad034a89095bc1b148bdeeacfa5b75ec23b8a21 doc: update release notes with removal of tor v2 support (Jon Atack) 49938eee9c338cd96e357a0dd51dcce934ceb212 doc: update tor.md with removal of tor v2 support (Jon Atack) Pull request description: Follow-up documentation to #22050 that removed support for Tor version 2 hidden services from Bitcoin Core. ACKs for top commit: laanwj: ACK 2ad034a89095bc1b148bdeeacfa5b75ec23b8a21 Tree-SHA512: 0f13f9d1db7e11f1e3d9967b6d17b8dc3144b3ab3a258c706464c5e6ac5cbcf2ce2db4ea54be9939f05a82ebd1e7f325f50b435f9822c08b4f21ed4ac58de0af
2021-06-12doc: update release notes with removal of tor v2 supportJon Atack
2021-06-12Merge bitcoin/bitcoin#22221: refactor: Pass block reference instead of ↵fanquake
pointer to PeerManagerImpl::BlockRequested fa334b405411dc97fbed12b5e9103510eeb2c9f1 refactor: Pass block reference instead of pointer to PeerManagerImpl::BlockRequested (MarcoFalke) Pull request description: This allows to remove an assert and at the same time make it more obvious that the block is never nullptr. Also, add missing `{}` while touching the function. ACKs for top commit: jnewbery: Code review ACK fa334b405411dc97fbed12b5e9103510eeb2c9f1 mjdietzx: crACK fa334b405411dc97fbed12b5e9103510eeb2c9f1 theStack: Code review ACK fa334b405411dc97fbed12b5e9103510eeb2c9f1 Tree-SHA512: 9733d3e20e048fcb2ac7510eae3539ce8aaa7397bd944a265123f1ffd90e15637cdaad19dba16f76d83f3f0d1888f1b7014c191bb430e410a106c49ca61a725c
2021-06-12Merge bitcoin/bitcoin#18722: addrman: improve performance by using more ↵fanquake
suitable containers a92485b2c250fd18f55d22aa32722bf52ab32bfe addrman: use unordered_map instead of map (Vasil Dimov) Pull request description: `CAddrMan` uses `std::map` internally even though it does not require that the map's elements are sorted. `std::map`'s access time is `O(log(map size))`. `std::unordered_map` is more suitable as it has a `O(1)` access time. This patch lowers the execution times of `CAddrMan`'s methods as follows (as per `src/bench/addrman.cpp`): ``` AddrMan::Add(): -3.5% AddrMan::GetAddr(): -76% AddrMan::Good(): -0.38% AddrMan::Select(): -45% ``` ACKs for top commit: jonatack: ACK a92485b2c250fd18f55d22aa32722bf52ab32bfe achow101: ACK a92485b2c250fd18f55d22aa32722bf52ab32bfe hebasto: re-ACK a92485b2c250fd18f55d22aa32722bf52ab32bfe, only suggested changes and rebased since my [previous](https://github.com/bitcoin/bitcoin/pull/18722#pullrequestreview-666663681) review. Tree-SHA512: d82959a00e6bd68a6c4c5a265dd08849e6602ac3231293b7a3a3b7bf82ab1d3ba77f8ca682919c15c5d601b13e468b8836fcf19595248116635f7a50d02ed603
2021-06-12Merge bitcoin/bitcoin#22214: refactor: Rearrange fillPSBT argumentsfanquake
f47e8028391fbcf44fe1dbf3539f42e4185590fd Rearrange fillPSBT arguments (Russell Yanofsky) Pull request description: Move fillPSBT inout argument before output-only arguments. This is a nice thing to do to keep the interface style [consistent](https://google.github.io/styleguide/cppguide.html#Inputs_and_Outputs). But motivation is to work around a current limitation of the libmultiprocess code generator (which figures out order of inout parameters by looking at input list, but more ideally would use the output list). --- This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10). The commit was first part of larger PR #10102. ACKs for top commit: achow101: ACK f47e8028391fbcf44fe1dbf3539f42e4185590fd theStack: Code-review ACK f47e8028391fbcf44fe1dbf3539f42e4185590fd Tree-SHA512: 1787af3031ff7ed6b519f3b93054d8b257af96a3380a476a6dab0f759329039ecc5d624b785c5c2d14d594fc852dd81c626880c775c691ec9c79b7b3dbcfb257
2021-06-12Merge bitcoin/bitcoin#21866: [Bundle 7/7] validation: Farewell, global ↵fanquake
Chainstate! 6f994882deafe62e97f0a889d8bdb8c96dcf913d validation: Farewell, global Chainstate! (Carl Dong) 972c5166ee685447a6d4bf5e501b07a0871fba85 qt/test: Reset chainman in ~ChainstateManager instead (Carl Dong) 6c3b5dc0c13c3ac8c6e86298f924abe99d8d6bd1 scripted-diff: tree-wide: Remove all review-only assertions (Carl Dong) 3e82abb8dd7e21ec918966105648be7ae077fd8c tree-wide: Remove stray review-only assertion (Carl Dong) f323248aba5088c9630e5cdfe5ce980f21633fe8 qt/test: Use existing chainman in ::TestGUI (can be scripted-diff) (Carl Dong) 6c15de129cd645bf0547cb184003fae131b95b83 scripted-diff: wallet/test: Use existing chainman (Carl Dong) ee0ab1e959e0e75e04d87fabae8334ad4656f3e5 fuzz: Initialize a TestingSetup for test_one_input (Carl Dong) 0d61634c066a7102d539e85e2b1a4ca15be9660a scripted-diff: test: Use existing chainman in unit tests (Carl Dong) e197076219e986ede6cf924e0ea36bd723503b2d test: Pass in CoinsTip to ValidateCheckInputsForAllFlags (Carl Dong) 4d99b61014ba26eb1f3713df5528d2804edff165 test/miner_tests: Pass in chain tip to CreateBlockIndex (Carl Dong) f0dd5e6bb4b16e69d35b648b7ef973a732229873 test/util: Use existing chainman in ::PrepareBlock (Carl Dong) 464c313e304cef04a82e14f736e3c44ed5604a4e init: Use existing chainman (Carl Dong) Pull request description: Based on: #21767 à la Mr. Sandman ``` Mr. Chainman, bring me a tip (bung, bung, bung, bung) Make it the most work that I've ever seen (bung, bung, bung, bung) Rewind old tip till we're at the fork point (bung, bung, bung, bung) Then tell it that it's time to call Con-nectTip Chainman, I'm so alone (bung, bung, bung, bung) No local objects to call my own (bung, bung, bung, bung) Please make sure I have a ref Mr. Chainman, bring me a tip! ``` This is the last bundle in the #20158 series. Thanks everyone for their diligent review. I would like to call attention to https://github.com/bitcoin/bitcoin/issues/21766, where a few leftover improvements were collated. - Remove globals: - `ChainstateManager g_chainman` - `CChainState& ChainstateActive()` - `CChain& ChainActive()` - Remove all review-only assertions. ACKs for top commit: jamesob: reACK https://github.com/bitcoin/bitcoin/pull/21866/commits/6f994882deafe62e97f0a889d8bdb8c96dcf913d based on the contents of ariard: Code Review ACK 6f99488. jnewbery: utACK 6f994882deafe62e97f0a889d8bdb8c96dcf913d achow101: Code Review ACK 6f994882deafe62e97f0a889d8bdb8c96dcf913d ryanofsky: Code review ACK 6f994882deafe62e97f0a889d8bdb8c96dcf913d. Tree-SHA512: 4052ea79360cf0efd81ad0ee3f982e1d93aab1837dcec75f875a56ceda085de078bb3099a2137935d7cc2222004ad88da94b605ef5efef35cb6bc733725debe6
2021-06-12Merge bitcoin-core/gui#361: Fix gui segfault caused by bitcoin/bitcoin#22216Hennadii Stepanov
d7f3b1af21daa93165b3726fee059a55b7727280 Fix gui segfault caused by bitcoin/bitcoin#22216 (Russell Yanofsky) Pull request description: Reported by Hennadii Stepanov https://github.com/bitcoin/bitcoin/pull/22216#issuecomment-859790682 Fixes bitcoin/bitcoin#22227 ACKs for top commit: hebasto: ACK d7f3b1af21daa93165b3726fee059a55b7727280, tested on Linux Mint 20.1 (Qt 5.12.8). jarolrod: ACK d7f3b1af21daa93165b3726fee059a55b7727280 Tree-SHA512: d672bfa9f1bcd500a879ec7ed27096086ae93b73ad5da8090f29cc5b6d985c46a76583cc384304d67210f87b6b839c2391f0fcc24fd3588c4a014e540283fdfe
2021-06-11Fix gui segfault caused by bitcoin/bitcoin#22216Russell Yanofsky
Reported by Hennadii Stepanov https://github.com/bitcoin/bitcoin/pull/22216#issuecomment-859790682 Fixes bitcoin/bitcoin#22227
2021-06-11refactor: Pass block reference instead of pointer to ↵MarcoFalke
PeerManagerImpl::BlockRequested
2021-06-11Merge bitcoin/bitcoin#22216: refactor: Make SetupServerArgs callable without ↵MarcoFalke
NodeContext 493fb47c577b7564138c883a8f22cbac3619ce44 Make SetupServerArgs callable without NodeContext (Russell Yanofsky) Pull request description: `bitcoin-gui` code needs to call `SetupServerArgs` but will not have a `NodeContext` object if it is communicating with an external `bitcoin-node` process, so this just passes `ArgsManager` directly. --- This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10). The commit was first part of larger PR #10102. ACKs for top commit: MarcoFalke: review ACK 493fb47c577b7564138c883a8f22cbac3619ce44 Tree-SHA512: 94cda4350113237976e32f1935e3602d1e6ea90c29c4434db2094be70dddf4b63702c3094385258bdf1c3e5b52c7d23bbc1f0282bdd4965557eedd5aef9a0fd4
2021-06-11Merge bitcoin/bitcoin#22118: test: check anchors.dat when node starts for ↵MarcoFalke
the first time ef99d03c2bbb6b5fa5ff3d3d3cb9c5da7d471133 test: check anchors.dat when node starts for the first time (bruno) Pull request description: See https://github.com/bitcoin/bitcoin/pull/21338#discussion_r598406712, https://github.com/bitcoin/bitcoin/pull/21338#discussion_r598406187, https://github.com/bitcoin/bitcoin/pull/21338#discussion_r598405613. ACKs for top commit: laanwj: Code review ACK ef99d03c2bbb6b5fa5ff3d3d3cb9c5da7d471133 Tree-SHA512: 505f1f34fbc0c72a92968883be0f1c5f169a4ba3aa8a56e1ce8bc5e514f49e3a17ce51fd40be0073dc4bc06eaeda36dfe90ace843c181170e34643226afd78ef
2021-06-11Merge bitcoin/bitcoin#22190: Use latest signapple commitfanquake
683d197970a533690ca1bd4d06d021900e87cb8b Use latest signapple commit (Andrew Chow) Pull request description: Update gitian and guix to use the same latest signapple commit. Also changed guix to use the actual repo. The changes from the fork were incorporated upstream. ACKs for top commit: fanquake: ACK 683d197970a533690ca1bd4d06d021900e87cb8b - sanity checked that the updated package is built: Tree-SHA512: a4981f8bbe33e6c5654632bc9b9f6f2f1e675741a19ac7296205e370f1e64a747101ecb632e0cc82a0134e4c2e9ce47b3f7b4d8c8f75f0f06dd069c078303759
2021-06-11Merge bitcoin/bitcoin#22203: test: Use ConnmanTestMsg from test lib in ↵fanquake
denialofservice_tests fa72fce7c948185752a01002000ea511809146ed test: Use ConnmanTestMsg from test lib in denialofservice_tests (MarcoFalke) Pull request description: This allows to remove code. Also, required for https://github.com/bitcoin/bitcoin/pull/18470 ACKs for top commit: mjdietzx: crACK fa72fce7c948185752a01002000ea511809146ed 👍👍 fanquake: ACK fa72fce7c948185752a01002000ea511809146ed Tree-SHA512: 12aa68cde697c0f7c25d60bb0c02783e5462eb3ba39947b0d94a7798bc278e7d5f092f3ab2a3d0547947c3502cde7c4a599419055a57f78ef1f70f9f637e14c7
2021-06-10validation: Farewell, global Chainstate!Carl Dong
2021-06-10qt/test: Reset chainman in ~ChainstateManager insteadCarl Dong
There are some mutable, global state variables that are currently reset by UnloadBlockIndex such as pindexBestHeader which should be cleaned up whenever the ChainstateManager is unloaded/reset/destructed/etc. Not cleaning them up leads to bugs like a use-after-free that happens like so: 1. At the end of a test, ChainstateManager is destructed, which also destructs BlockManager, which calls BlockManager::Unload to free all CBlockIndexes in its BlockMap 2. Since pindexBestHeader is not cleaned up, it now points to an invalid location 3. Another test starts to init, and calls LoadGenesisBlock, which calls AddToBlockIndex, which compares the genesis block with an invalid location 4. Cute puppies perish by the hundreds Previously, for normal codepaths (e.g. bitcoind), we relied on the fact that our program will be unloaded by the operating system which effectively resets these variables. The one exception is in QT tests, where these variables had to be manually reset. Since now ChainstateManager is no longer a global, we can just put this logic in its destructor to make sure that callers are always correct. Over time, we should probably move these mutable global state variables into ChainstateManager or CChainState so it's easier to reason about their lifecycles.
2021-06-10scripted-diff: tree-wide: Remove all review-only assertionsCarl Dong
-BEGIN VERIFY SCRIPT- find_regex='((assert|CHECK_NONFATAL)\(std::addressof|TODO: REVIEW-ONLY)' \ && git grep -l -E "$find_regex" -- . \ | xargs sed -i -E "/${find_regex}/d" -END VERIFY SCRIPT-
2021-06-10tree-wide: Remove stray review-only assertionCarl Dong
Unfortunately, these assertion don't fit the regex in the scripted-diff. Therefore, we remove it manually.
2021-06-10qt/test: Use existing chainman in ::TestGUI (can be scripted-diff)Carl Dong
2021-06-10scripted-diff: wallet/test: Use existing chainmanCarl Dong
-BEGIN VERIFY SCRIPT- git ls-files -- src/wallet/test \ | xargs sed -i -E \ -e 's@g_chainman\.m_blockman@m_node.chainman->m_blockman@g' \ -e 's@([^:])(Chain(state|)Active)@\1::\2@g' \ -e 's@::Chain(state|)Active\(\)@m_node.chainman->ActiveChain\1()@g' -END VERIFY SCRIPT-
2021-06-10fuzz: Initialize a TestingSetup for test_one_inputCarl Dong
For fuzz tests that need it.
2021-06-10scripted-diff: test: Use existing chainman in unit testsCarl Dong
-BEGIN VERIFY SCRIPT- git ls-files -- src/test \ | grep -v '^src/test/fuzz' \ | xargs sed -i -E \ -e 's@g_chainman\.m_blockman@m_node.chainman->m_blockman@g' \ -e 's@([^:])(Chain(state|)Active)@\1::\2@g' \ -e 's@::Chain(state|)Active\(\)@m_node.chainman->ActiveChain\1()@g' -END VERIFY SCRIPT-
2021-06-10test: Pass in CoinsTip to ValidateCheckInputsForAllFlagsCarl Dong
2021-06-10test/miner_tests: Pass in chain tip to CreateBlockIndexCarl Dong
2021-06-10test/util: Use existing chainman in ::PrepareBlockCarl Dong
2021-06-10init: Use existing chainmanCarl Dong
2021-06-10Rearrange fillPSBT argumentsRussell Yanofsky
Move fillPSBT input-output argument before output-only arguments. This is a temporary workaround which can go away with improvements to libmultiprocess code generator. Currently code generator figures out order of input-output parameters by looking at input list, but it would make more sense for it to take order from output list, so input-only parameters still have to be first but there is more flexibility for the other parameters.
2021-06-10Make SetupServerArgs callable without NodeContextRussell Yanofsky
bitcoin-gui code needs to call SetupServerArgs but will not have a NodeContext object if it is communicating with an external bitcoin-node process.
2021-06-10Merge bitcoin/bitcoin#22141: net processing: Remove hash and ↵W. J. van der Laan
fValidatedHeaders from QueuedBlock 2f4ad6b7efa408b8a858e87499bf6cfcdf936d73 scripted-diff: rename MarkBlockAs functions (John Newbery) 2c45f832e87acd11fbd144cc0bb8e49816933c70 [net processing] Tidy up MarkBlockAsReceived() (John Newbery) 62993507336be06490b202b3955d4830a99e9e34 [net processing] Add IsBlockRequested() function (John Newbery) 4e90d2dd0e91e7eb560f2c1b430f13c7a047804f [net processing] Remove QueuedBlock.hash (John Newbery) 156a19ee6a22789adedcb6ab067c2eca2d3bfdfe scripted-diff: rename nPeersWithValidatedDownloads (John Newbery) b03de9c7538d85b12929a62b9ec966fd3910e660 [net processing] Remove CNodeState.nBlocksInFlightValidHeaders (John Newbery) b4e29f2436943c131dd25b123d13a25ce09bab58 [net processing] Remove QueuedBlock.fValidatedHeaders (John Newbery) 85e058b19145b5068f2f71a90c1182bf2a93c473 [net processing] Remove unnecessary hash arg from MarkBlockAsInFlight() (John Newbery) Pull request description: The QueuedBlock struct contains a `fValidatedHeaders` field that indicates whether we have already validated a header for the requested block. Since headers-first syncing, we only request blocks where the header is already validated, so `fValidatedHeaders` is always true. Remove it and clean up the logic that uses that field. Likewise, QueuedBlock contains a `hash` field that is set to the block hash. Since headers-first syncing, we always have a CBlockIndex, which contains the block hash, so remove the redundant `hash` field. Tidy up the logic and rename functions to better indicate what they're doing. ACKs for top commit: mjdietzx: crACK 2f4ad6b7efa408b8a858e87499bf6cfcdf936d73 sipa: utACK 2f4ad6b7efa408b8a858e87499bf6cfcdf936d73 MarcoFalke: review ACK 2f4ad6b7efa408b8a858e87499bf6cfcdf936d73 📊 Tree-SHA512: 3d31d2bcb4d35d0fdb7c1da624c2878203218026445e8f76c4a2df68cc7183ce0e7d0c47c7c0a3242e55efaca7c9f5532b683cf6ec7c03d23fa83764fdb82fd2
2021-06-10Merge bitcoin/bitcoin#22084: package testmempoolaccept followupsfanquake
ee862d6efb4c3c01e55f0d5d7a82cce75323cf40 MOVEONLY: context-free package policies (glozow) 5cac95cd15da04b83afa1d31a43be9f5b30a1827 disallow_mempool_conflicts -> allow_bip125_replacement and check earlier (glozow) e8ecc621be6afd3252c0f8147e42c3b4918f7f46 [refactor] comment/naming improvements (glozow) 7d91442461776e2ef240d7885f768b624de341a7 [rpc] reserve space in txns (glozow) 6c5f19d9c4d267c54f4dbc4f9d65370ff1e0625b [package] static_assert max package size >= max tx size (glozow) Pull request description: various followups from #20833 ACKs for top commit: jnewbery: utACK ee862d6efb4c3c01e55f0d5d7a82cce75323cf40 ariard: Code Review ACK ee862d6 Tree-SHA512: 96ecb41f7bbced84d4253070f5274b7267607bfe4033e2bb0d2f55ec778cc41e811130b6321131e0418b5835894e510a4be8a0f822bc9d68d9224418359ac837
2021-06-10Merge bitcoin/bitcoin#22208: doc: Update `REVIEWERS`MarcoFalke
3636d9be8f1daf9160db84c46731b9ef8a7cbc6c Update REVIEWERS: I've found that I keep track of PRs in need of review without the need for DrahtBot's automated notification :) (practicalswift) Pull request description: Update `REVIEWERS`: I've found that I keep track of PRs in need of review without the need for DrahtBot's automated notification :) ACKs for top commit: MarcoFalke: ACK 3636d9be8f1daf9160db84c46731b9ef8a7cbc6c Tree-SHA512: 8602bb7ab10bd04ab8e65b63708a2bb33fecb1b7494ebc59030976fd3eb53ec2d57a3ed96fd9170e2de7771e630d9571e73f7d3b939452cf6bf9e75c3bfaa282
2021-06-10Update REVIEWERS: I've found that I keep track of PRs in need of review ↵practicalswift
without the need for DrahtBot's automated notification :)
2021-06-10Merge bitcoin/bitcoin#22204: doc: remove obsolete `okSafeMode` RPC guideline ↵MarcoFalke
from developer notes 6780a095d8526a46c3c2b20a14831687e9fc2462 doc: remove obsolete `okSafeMode` RPC guideline from developer notes (Sebastian Falbesoner) Pull request description: Since the flag has been removed from the RPC command table in commit ec6902d0ea2bbe75179684fc71849d5e34647a14 (PR #11179), this guideline is not relevant anymore and can be removed. ACKs for top commit: MarcoFalke: ACK 6780a095d8526a46c3c2b20a14831687e9fc2462. Also, safe mode was removed completely in commit 2ae705d84178fb9faa49f92091206e92379a2c63 Tree-SHA512: 2a6b002ae302e979ce403171b79a892e32f5083792c3b0b8204edb5eb08c6b24ab77bbeeae0e3bb6d6564a6f1678cfce00eb7b5b82063b7741f89a96b0c0aef3
2021-06-10Merge bitcoin/bitcoin#22186: build, qt: Fix compiling qt package in depends ↵fanquake
with GCC 11 d1d1cc983146ece950430da78ebae6f502913a53 build, qt: Fix compiling qt package in depends with GCC 11 (Hennadii Stepanov) Pull request description: The `qt` package in depends fails to compile with GCC 11 due to the missed `<limits>` headers. See: https://bugreports.qt.io/browse/QTBUG-90395 Affected systems: - Ubuntu 21.04 + GCC 11.1.0 - Fedora 34 + GCC 11.1.1 Ubuntu 21.04 build log excerpt: ``` Configuring qt... Creating qmake... gmake[1]: Entering directory '/home/hebasto/bitcoin/depends/work/build/x86_64-pc-linux-gnu/qt/5.12.11-1ff5c6c1f55/qtbase/qmake' In file included from /home/hebasto/bitcoin/depends/work/build/x86_64-pc-linux-gnu/qt/5.12.11-1ff5c6c1f55/qtbase/include/QtCore/qendian.h:1, from /home/hebasto/bitcoin/depends/work/build/x86_64-pc-linux-gnu/qt/5.12.11-1ff5c6c1f55/qtbase/src/corelib/codecs/qutfcodec.cpp:43: /home/hebasto/bitcoin/depends/work/build/x86_64-pc-linux-gnu/qt/5.12.11-1ff5c6c1f55/qtbase/include/QtCore/../../src/corelib/global/qendian.h: In static member function ‘static constexpr QSpecialInteger<S> QSpecialInteger<S>::max()’: /home/hebasto/bitcoin/depends/work/build/x86_64-pc-linux-gnu/qt/5.12.11-1ff5c6c1f55/qtbase/include/QtCore/../../src/corelib/global/qendian.h:331:35: error: ‘numeric_limits’ is not a member of ‘std’ 331 | { return QSpecialInteger(std::numeric_limits<T>::max()); } | ^~~~~~~~~~~~~~ /home/hebasto/bitcoin/depends/work/build/x86_64-pc-linux-gnu/qt/5.12.11-1ff5c6c1f55/qtbase/include/QtCore/../../src/corelib/global/qendian.h:331:54: error: ‘::max’ has not been declared; did you mean ‘std::max’? 331 | { return QSpecialInteger(std::numeric_limits<T>::max()); } | ^~~ | std::max ``` ACKs for top commit: fanquake: ACK d1d1cc983146ece950430da78ebae6f502913a53 Tree-SHA512: 2dd643efc0aefc492f9565c0900ba0f1657c016bc4a44792f85478b9fc6e0e4ecad78847114ef6ec702d2de4cdbc3f657e9b96634ea58f42b6cc98dfb5e09eab
2021-06-10doc: remove obsolete `okSafeMode` RPC guideline from developer notesSebastian Falbesoner
Since the flag has been removed from the RPC command table in commit ec6902d0ea2bbe75179684fc71849d5e34647a14 (PR #11179), this guideline is not relevant anymore and can be removed.
2021-06-09Merge bitcoin/bitcoin#22202: test: Add temporary coinstats suppressionsMarcoFalke
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
2021-06-09test: Use ConnmanTestMsg from test lib in denialofservice_testsMarcoFalke
2021-06-09test: Add temporary coinstats suppressionsMarcoFalke
2021-06-09Merge bitcoin/bitcoin#22200: zmq: use std::string in zmqError()MarcoFalke
3f05a9e681c4b72d99ddda8ccb6911d6ffad44ec zmq: use msg: prefix over errno= in zmqError (fanquake) 9a7cb57bbc61b2dfb772f8486db2a44c1673983a zmq: use std::string in zmqError() (fanquake) Pull request description: This is two minor changes. The first is to change `zmqError` to take a `const std::string&` instead of a `const char*`. The second is to change the second portion of `zmqError` to print `msg: message` rather than `errno=message`, given that `zmq_strerror` returns a message. To me, this seems more readable / useful than output like: `Error: Unable to initialize context errno=No such file or directory`. ACKs for top commit: practicalswift: cr ACK 3f05a9e681c4b72d99ddda8ccb6911d6ffad44ec instagibbs: utACK https://github.com/bitcoin/bitcoin/pull/22200/commits/3f05a9e681c4b72d99ddda8ccb6911d6ffad44ec theStack: Code-Review ACK 3f05a9e681c4b72d99ddda8ccb6911d6ffad44ec Tree-SHA512: 197cf381e8b3ced271d0e575e0c6d8e5e9ed93c4b284338b17873c5232eaabe64d6c4b66e1aeb5e76befc89e316abae2b28b7fd760f178481d7b9f4e3f85da67
2021-06-09zmq: use msg: prefix over errno= in zmqErrorfanquake
zmq_strerror() converts the passed errno into a description, meaning currently you have output like: "errno=No such file or directory". Using msg: would seem to make more sense here.
2021-06-09zmq: use std::string in zmqError()fanquake
2021-06-09Merge bitcoin/bitcoin#22173: wallet: Do not load external signers wallets ↵Samuel Dobson
when unsupported e60cd26ad46559770ad84d2959c9a1742ae8b7a6 Do not load external signers wallets when unsupported (Andrew Chow) Pull request description: When external signer support is not compiled, do not load external signer wallets. Alternative to #22168. ACKs for top commit: promag: Tested ACK e60cd26ad46559770ad84d2959c9a1742ae8b7a6. meshcollider: Code review ACK e60cd26ad46559770ad84d2959c9a1742ae8b7a6 Tree-SHA512: aed2d0038f448c2f89c6b48f412b106e63c9ed20e748e69aae21fb58c33fc7e4fa73375a52372c73788669eb2b968a8da6b022c65658fa4484f5bbcf205b1b15
2021-06-09Merge bitcoin/bitcoin#21944: wallet: Fix issues when `walletdir` is root ↵Samuel Dobson
directory d44a261acff40c1c8727d3cc0106bde65a6416d0 Fix issues when `walletdir` is root directory (unknown) Pull request description: + Remove one character less from wallet path + After testing lot of random strings with special chars in `wallet_name`, I found that the issue was not related to special characters in the name. Reviewing PR https://github.com/bitcoin/bitcoin/pull/21907 helped me resolve the issue. **Real issue**: If the path mentioned in `walletdir` is a root directory, first character of the wallet name or path is removed **Solution**: `if` statement to check `walletdir` is a root directory Fixes: https://github.com/bitcoin/bitcoin/issues/21510 https://github.com/bitcoin/bitcoin/issues/21501 Related PR: https://github.com/bitcoin/bitcoin/pull/20080 Consider the wallet directories `w1` and `w2` saved in `D:\`. Run `bitcoind.exe -walletdir=D:\`, Results for `bitcoin-cli.exe listwalletdir`: Before this PR: ``` { "wallets": [ { "name": "1" }, { "name": "2" } ] } ``` After this PR: ``` "wallets": [ { "name": "w1" }, { "name": "w2" } ] } ``` ACKs for top commit: ryanofsky: Code review ACK d44a261acff40c1c8727d3cc0106bde65a6416d0 meshcollider: utACK d44a261acff40c1c8727d3cc0106bde65a6416d0 Tree-SHA512: b09b00f727407e3771c8694861dae1bfd29d97a0d51ddcb5d9c0111dc618b3fff2f75829cbb4361c54457ee564e94fcefd9e2928262a1c918a2b6bbad724eb55
2021-06-09Merge bitcoin/bitcoin#22008: wallet: Cleanup and refactor ↵Samuel Dobson
CreateTransactionInternal 96c2c9520e80ee4fed92f0e1ab859d59fcbdb110 scripted-diff: Rename SelectCoinsMinConf to AttemptSelection (Andrew Chow) b583f73354c617ede9145f9738f13cedf1c13e08 Move vin filling to before final fee setting (Andrew Chow) d39cac0547c960df0a890e89f43b458147b4b07a Set m_subtract_fee_outputs during recipients vector loop (Andrew Chow) 364e0698a543a19e81ae407cc523970e6ed924e8 Move variable initializations to where they are used (Andrew Chow) 32ab430651594ed3d10a6ed75f19de5197f0e9b0 Move recipients vector checks to beginning of CreateTransaction (Andrew Chow) cd1d6d3324a841087f6d5da723394e8d7df07ec7 Rename nSubtractFeeFromAmount in CreateTransaction (Andrew Chow) dac21c793f8fbb4d5debc55ac97c406c7c93ff48 Rename nValue and nValueToSelect (Andrew Chow) d2aee3bbc765a1f02e4ceadb2fa5928ac524f1a7 Remove extraneous scope in CreateTransactionInternal (Andrew Chow) b2995963b5d0b9bca503b0cc69c747f4cedec1e4 Move cs_wallet lock in CreateTransactionInternal to top of function (Andrew Chow) Pull request description: #17331 did some refactors and cleanup of `CreateTransactionInternal` to make it easier to understand, however it is still a bit convoluted even though it doesn't have to be. This PR does additional cleanup and refactoring to `CreateTransactionInternal` so that it is easier to understand. Some unnecessary code was removed, some variables moved around to where they matter, and several indents removed. ACKs for top commit: glozow: reACK 96c2c95 ryanofsky: Code review ACK 96c2c9520e80ee4fed92f0e1ab859d59fcbdb110 also acked previously (was reverted). meshcollider: re-utACK 96c2c9520e80ee4fed92f0e1ab859d59fcbdb110 Tree-SHA512: 3dba67ed436968a07bfd82d435d566ad74e116c6e50ac9baed7144a46ad5c0f630b1ba59d91e8e8972ac2af559d7c0576f0560f09684d2ab20fad6689902866f
2021-06-09Merge bitcoin/bitcoin#22174: build, qt: Fix libraries linking order for ↵fanquake
Linux hosts a8bd5ea01720e5639cabdc9897cf9cf7c02c47c6 build, qt: Fix libraries linking order for Linux hosts (Hennadii Stepanov) Pull request description: `-lxcb-shm` should follow `-lxcb` when linking libraries for Linux hosts. Fixes #22105. ACKs for top commit: prayank23: ACK https://github.com/bitcoin/bitcoin/pull/22174/commits/a8bd5ea01720e5639cabdc9897cf9cf7c02c47c6 fanquake: ACK a8bd5ea01720e5639cabdc9897cf9cf7c02c47c6 Tree-SHA512: 6ea2a1ba5440dd01e64428e5c3aa3e7a6e1380b723071ad38a0516b23b56dc252cb2a6544e014b13a0b2f89b3fe45c04a82e498669b5cc74a5f9b70d9c270926
2021-06-09Merge bitcoin-core/gui#4: UI external signer support (e.g. hardware wallet)Samuel Dobson
1c4b456e1a0ccf0397d652f8c18201c3224c5c21 gui: send using external signer (Sjors Provoost) 24815c6309431cb0797defaf7add1150bcf4b567 gui: wallet creation detects external signer (Sjors Provoost) 3f845ea2994f53e29abeb3fa158c35f1ee56e7e8 node: add externalSigners to interface (Sjors Provoost) 62ac119f919ae1160ed67af796f24b78025fa8e3 gui: display address on external signer (Sjors Provoost) 450cb40a344605dda3bcc39495c35869580b9fc2 wallet: add displayAddress to interface (Sjors Provoost) eef8d6452962cd4a8956d9ad268164715365b9ab gui: create wallet with external signer (Sjors Provoost) 6cdbc83e9341d1552faee4ccd8c190babc63e8d1 gui: add external signer path to options dialog (Sjors Provoost) Pull request description: Big picture overview in [this gist](https://gist.github.com/Sjors/29d06728c685e6182828c1ce9b74483d). This PR adds GUI support for external signers, based on the since merged bitcoin/bitcoin#16546 (RPC). The UX isn't amazing - especially the blocking calls - but it works. First we adds a GUI setting for the signer script (e.g. path to HWI): <img width="625" alt="Schermafbeelding 2019-08-05 om 19 32 59" src="https://user-images.githubusercontent.com/10217/62483415-e1ff1680-b7b7-11e9-97ca-8d2ce54ca1cb.png"> Then we add an external signer checkbox to the wallet creation dialog: <img width="374" alt="Schermafbeelding 2019-11-07 om 19 17 23" src="https://user-images.githubusercontent.com/10217/68416387-b57ee000-0194-11ea-9730-127d60273008.png"> It's checked by default if HWI detects a device. It also grabs the name. It then creates a fresh wallet and imports the keys. You can verify an address on the device (blocking...): <img width="673" alt="Schermafbeelding 2019-08-05 om 19 29 22" src="https://user-images.githubusercontent.com/10217/62483560-43bf8080-b7b8-11e9-9902-8a036116dc4b.png"> Sending, including coin selection, Just Works(tm) as long the device is present. ~External signer support is enabled by default when the GUI is configured and Boost::Process is present.~ External signer support remains disabled by default, see https://github.com/bitcoin/bitcoin/pull/21935. ACKs for top commit: achow101: Code Review ACK 1c4b456e1a0ccf0397d652f8c18201c3224c5c21 hebasto: ACK 1c4b456e1a0ccf0397d652f8c18201c3224c5c21, tested on Linux Mint 20.1 (Qt 5.12.8) with HWW `2.0.2-rc.1`. promag: Tested ACK 1c4b456e1a0ccf0397d652f8c18201c3224c5c21 but rebased with e033ca1379, with HWI 2.0.2, with Nano S and Nano X. meshcollider: re-code-review ACK 1c4b456e1a0ccf0397d652f8c18201c3224c5c21 Tree-SHA512: 3503113c5c69d40adb6ce364d8e7cae23ce82d032a00474ba9aeb6202eb70f496ef4a6bf2e623e5171e524ad31ade7941a4e0e89539c64518aaec74f4562d86b
2021-06-09Merge bitcoin/bitcoin#22075: guix: Misc leftover usability improvementsfanquake
108a6be92adc1e80839d90b552e72b8142140f6c guix: Check for disk space availability before building (Carl Dong) d7dec89091ee4a456ff64ad7ce675ae6813668f1 guix: Remove dest if OUTDIR mv fails (Carl Dong) Pull request description: There seems to be some corner cases that can be hit when guix scripts unexpectedly fail in the middle of operation, see: https://gnusha.org/bitcoin-builds/2021-05-24.log - Perform an early disk space check for `guix-build` - Overwrite existing output directory after a successful build (the existing one might be malformed), and cleanup output directory if the `mv` somehow fails ACKs for top commit: laanwj: Tested ACK 108a6be92adc1e80839d90b552e72b8142140f6c achow101: ACK 108a6be92adc1e80839d90b552e72b8142140f6c Tree-SHA512: cf6438317da40bf55714cd2d8cce859b3d435cc66cabefe8d4a53552d7880966acfe84ffe8fadf1c80e368ae6b037992258a6d409df85ffc6ce8bf780e98e2e5
2021-06-08Use latest signapple commitAndrew Chow
Update gitian and guix to use the same latest signapple commit
2021-06-08Merge bitcoin/bitcoin#21946: Document and test lack of inherited signaling ↵MarcoFalke
in RBF policy 2eb0eeda39cab997f9a5f817f7c12e7fffeaf35a validation: document lack of inherited signaling in RBF policy (Antoine Riard) 906b6d9da6a6b2e6a5f1d9046b3b9c2c7e490c99 test: Extend feature_rbf.py with no inherited signaling (Antoine Riard) Pull request description: Contrary to BIP125 or other full-node implementation (e.g btcd), Bitcoin Core's mempool policy doesn't implement inherited signaling. This PR documents our mempool behavior on this and add a test demonstrating the case. ACKs for top commit: jonatack: ACK 2eb0eeda39cab997f9a5f817f7c12e7fffeaf35a benthecarman: ACK 2eb0eeda39cab997f9a5f817f7c12e7fffeaf35a Tree-SHA512: d41453d3b49bae3c1eb532a968f43bc047084913bd285929d4d9cba142777ff2be38163d912e28dfc635f4ecf446de68effad799c6e71be52f81e83410c712fb