Iceymann18777
commented at 4:57 PM on August 8, 2021:
none
<!--
*** Please remove the following help text before submitting: ***
Pull requests without a rationale and clear improvement may be closed
immediately.
GUI-related pull requests should be opened against
https://github.com/bitcoin-core/gui
first. See CONTRIBUTING.md
-->
<!--
Please provide clear motivation for your patch and explain how it improves
Bitcoin Core user experience or Bitcoin Core developer experience
significantly:
* Any test improvements or new tests that improve coverage are always welcome.
* All other changes should have accompanying unit tests (see `src/test/`) or
functional tests (see `test/`). Contributors should note which tests cover
modified code. If no tests exist for a region of modified code, new tests
should accompany the change.
* Bug fixes are most welcome when they come with steps to reproduce or an
explanation of the potential issue as well as reasoning for the way the bug
was fixed.
* Features are welcome, but might be rejected due to design or scope issues.
If a feature is based on a lot of dependencies, contributors should first
consider building the system outside of Bitcoin Core, if possible.
* Refactoring changes are only accepted if they are required for a feature or
bug fix or otherwise improve developer experience significantly. For example,
most "code style" refactoring changes require a thorough explanation why they
are useful, what downsides they have and why they *significantly* improve
developer experience or avoid serious programming bugs. Note that code style
is often a subjective matter. Unless they are explicitly mentioned to be
preferred in the [developer notes](/doc/developer-notes.md), stylistic code
changes are usually rejected.
-->
<!--
Bitcoin Core has a thorough review process and even the most trivial change
needs to pass a lot of eyes and requires non-zero or even substantial time
effort to review. There is a huge lack of active reviewers on the project, so
patches often sit for a long time.
-->
build: Set msvc builds's CLIENT_VERSION_IS_RELEASE
Of course, this one was in another place too.
Tree-SHA512: 87784829b1f700dcf5fd22daad0c920cfb25485ae17eff0b3e236513dc543c8643e568f39d418d43ea0eeb330fcac93ab2276cda8253ec6538d01e20d102d10c
80496f9e81
Merge #20431: [backport 0.21] tests: shrink feature_taproot transfer of funds tx
7ffac12545328cadd92a3caec4f1c6ca7c127493 tests: shrink feature_taproot transfer of funds tx (Anthony Towns)
Pull request description:
Github-Pull: #20428
Rebased-From: 7ffac12545328cadd92a3caec4f1c6ca7c127493
Top commit has no ACKs.
Tree-SHA512: 4e6b37a44dca3e29d5168b7eb9238a7ce0bbb9b0924a21671537a7c534790fb6b05b1a30a404db434fade030b4f369adfc73694ef85d91884bb7349adddc5f6a
bf9548bc59
Fix QPainter non-determinism on macOS
Aplies a patch to Qt that fixes the non-determinism by modifying Qt. The
source of the non-determinism is how LLVM 8 optimizes qt_intersect_spans
when compiling. The particular optimization that seems to be causing the
problems is that a temp variable is being added for spans->y. For some
reason, when it does this, it chooses different instructions to use when
making that variable. We bypass this problem by patching
qt_intersect_spans to always make and use this local variable.
Github-Pull: #20447
Rebased-From: 8f7d1b39efbe65ab2747c593cc3560d4a449a333
Tree-SHA512: 558da5c2bb0373e2a89f2c219170f802036e0e87cc8e808336b23d074152cb893007a440f46ec957156b0921355cd18502710f2d224f27bc26e934c50ebebc41
ab23a83400
Merge #20475: [backport] RPC: unloadwallet: Clarify docs/error when both the RPC endpoint and wallet_name parameter specify a wallet
b1f59d55d920d2b35269b474762f94fec87bfb16 RPC/Wallet: unloadwallet: Clarify docs/error when both the RPC endpoint and wallet_name parameter specify a wallet (Luke Dashjr)
Pull request description:
Github-Pull: #20462
Rebased-From: b1f59d55d920d2b35269b474762f94fec87bfb16
Top commit has no ACKs.
Tree-SHA512: 2ee0a8a280f56baf196a3a48a59620f297075d23898e6aa3b3e677cdde74826688614d27a477a1448306234c2109fa39083946f691ced10d8bbc53006730784e
3fae2f95f1
Merge #20479: Fix QPainter non-determinism on macOS (0.21 backport)
ab23a83400d5ad13137ce0f9697a51f0b70e9d29 Fix QPainter non-determinism on macOS (Andrew Chow)
Pull request description:
Aplies a patch to Qt that fixes the non-determinism by modifying Qt. The
source of the non-determinism is how LLVM 8 optimizes qt_intersect_spans
when compiling. The particular optimization that seems to be causing the
problems is that a temp variable is being added for spans->y. For some
reason, when it does this, it chooses different instructions to use when
making that variable. We bypass this problem by patching
qt_intersect_spans to always make and use this local variable.
Github-Pull: #20447
Rebased-From: 8f7d1b39efbe65ab2747c593cc3560d4a449a333
Tree-SHA512: 558da5c2bb0373e2a89f2c219170f802036e0e87cc8e808336b23d074152cb893007a440f46ec957156b0921355cd18502710f2d224f27bc26e934c50ebebc41
ACKs for top commit:
jonasschnelli:
codereview ACK ab23a83400d5ad13137ce0f9697a51f0b70e9d29
achow101:
ACK ab23a83400d5ad13137ce0f9697a51f0b70e9d29
Tree-SHA512: 10991fe2b5452b1393678c315281cfdca011e9bb2cd8094a002746e690890ace148ac2dbf39c5fbe5e7f4cd39eeebfa0a715c065cff150cf70e9733cb0ff32d6
Merge #20486: [backport] test: Fix intermittent issue in mempool_compatibility
fa05d19bd6ba619bb3f9aabc05c439cd18d34544 test: Fix intermittent issue in mempool_compatibility (MarcoFalke)
Pull request description:
Github-Pull: #20456
Rebased-From: fa05d19bd6ba619bb3f9aabc05c439cd18d34544
Top commit has no ACKs.
Tree-SHA512: c07ed3ffab315da2bf70427882e2da8216964fef97dd538d7c46c5d5b3563b0732626ffbe4b0e19537ad49a8542eedb3c08850cccacdef466f24582defe99d22
4e964094db
Merge #20485: [backport] wallet: Do not treat default constructed types as None-type
fa69c2c78455fd0dc436018fece9ff7fc83a180d wallet: Do not treat default constructed types as None-type (MarcoFalke)
fac4e136fa3d0fab7fde900a6be921313e16e7a6 refactor: Change pointer to reference because it can not be null (MarcoFalke)
Pull request description:
Github-Pull: #20410
Rebased-From: fac4e136fa3d0fab7fde900a6be921313e16e7a6
Github-Pull: #20410
Rebased-From: fa69c2c78455fd0dc436018fece9ff7fc83a180d
Top commit has no ACKs.
Tree-SHA512: 05c3fe29677710b57dcc482fd529b0ab79475519f60f9cfde19f956c4e2212d09b042af458ec4f1272c581360ce841b735dca4df144e0798b3ccf16547de9cd0
d47d16025e
Merge #20490: [backport] wallet: upgradewallet fixes, improvements, test coverage
ca8cd893bb56bf5d455154b0498b1f58f77d20ed wallet: fix and improve upgradewallet error responses (Jon Atack)
99d56e357159c7154f69f28cb5587c5ca20d6594 wallet: fix and improve upgradewallet result responses (Jon Atack)
2498b04ce88696a3216fc38b7d393906b733e8b1 Don't upgrade to HD split if it is already supported (Andrew Chow)
c46c18b788cb0862aafbb116fd37936cbed6a431 wallet: refactor GetClosestWalletFeature() (Jon Atack)
Pull request description:
Github-Pull: #20403
Rebased-From: c46c18b788cb0862aafbb116fd37936cbed6a431
Github-Pull: #20403
Rebased-From: 2498b04ce88696a3216fc38b7d393906b733e8b1
Github-Pull: #20403
Rebased-From: 99d56e357159c7154f69f28cb5587c5ca20d6594
Github-Pull: #20403
Rebased-From: ca8cd893bb56bf5d455154b0498b1f58f77d20ed
Top commit has no ACKs.
Tree-SHA512: b18a1d015c963298740c585385eaa056988464112c88a519fe619be22dc78a8f6a102365cf799c50b781a77a09bec82b58ce411ab007b48f8b5de876e9c75060
Allow zero-fee fundrawtxn and walletcreatefundedpsbt calls
A check to raise an error on zero-fee txns was mistakenly extended in commit
a0d4957 from the bumpfee and send{toaddress, many} RPCs to also include
fundrawtransaction and walletcreatefundedpsbt.
This commit overrides zero fee rate checking for these two RPCs, not only for
the feeRate (BTC/kvB) arg to return to previous behavior, but also for the new
fee_rate (sat/vB) arg.
Github-Pull: #20426
Rebased-From: 1b3d7009280595108eb22ac1188bc43678
54e1edcc2b
Update feeRate (BTC/kvB) to fee_rate (sat/vB) in wallet_bumpfee
as the feeRate argument should soon be deprecated.
Also loosen one test (and a similar one) that caused a one-off CI failure with:
expected message
'Insufficient total fee 0.00000141, must be at least 0.00001704 (oldFee 0.00000999 + incrementalFee 0.00000705)'
actual message
'Insufficient total fee 0.00000141, must be at least 0.00001712 (oldFee 0.00001007 + incrementalFee 0.00000705)'
Github-Pull: #20426
Rebased-From: 3f1e10b2b1cd11f7112fbad6355464bd4adbbc5c
6e4969f76f
Use the correct incremental fee constant in bumpfee help
and remove redundant units ("Must be at least 1.000 sat/vB sat/vB" -> "1.00 sat vB")
Github-Pull: #20426
Rebased-From: 9f08780dd7946b63476e9736745131db8e7f4e93
6313362553
Merge #20505: [backport] build: Avoid secp256k1.h include from system
01b647b1a20bbf1de2f5f4624c34b554ad3790f2 build: Avoid secp256k1.h include from system (Niklas Gรถgge)
Pull request description:
Backports #20469 to the 0.21 branch.
ACKs for top commit:
hebasto:
ACK 01b647b1a20bbf1de2f5f4624c34b554ad3790f2, I have reviewed the code and it looks OK, I agree it can be merged.
Tree-SHA512: c098055b5e413be6f438d1d43e80c1943329ebb708531d8d82e72de402bddeb6f8b812303f9ae5a45abf62b3ff87fa909fbbf7fb56dca7959ecb9061febae4a1
68bd88597a
Merge #20510: [backport] wallet: allow zero-fee fundrawtransaction/walletcreatefundedpsbt and other fixes
6313362553d91bddb75a43f62dffbec16065e4d6 Use the correct incremental fee constant in bumpfee help (Jon Atack)
6e4969f76f58518d47ce2f2cdfc4e3ef1f2228bd Update feeRate (BTC/kvB) to fee_rate (sat/vB) in wallet_bumpfee (Jon Atack)
54e1edcc2bca76f783170768e65bf0850b036b81 Allow zero-fee fundrawtxn and walletcreatefundedpsbt calls (Jon Atack)
Pull request description:
Github-Pull: #20426
Rebased-From: 1b3d7009280595108eb22ac1188bc4367804fc5d
Github-Pull: #20426
Rebased-From: 3f1e10b2b1cd11f7112fbad6355464bd4adbbc5c
Github-Pull: #20426
Rebased-From: 9f08780dd7946b63476e9736745131db8e7f4e93
Top commit has no ACKs.
Tree-SHA512: 89556f69ca4a36d86d6ab5df740b6d5de809f13d45b03450fb526362b1eabd3d2d5285f97c552dc0bcb07e17ac2e6c557ff46335962e6bcf366d36ad412f257c
Whenever both encodings are permitted, try both, and if only one succeeds,
return that one. Otherwise prefer the one for which the heuristic sanity
check passes. If that is the case for neither or for both, return the
extended-permitting deserialization.
Github-Pull: #20595
Rebased-From: 39c42c442044aef611d03ee7053d2dd6df63deb7
build, refactor: Check that Homebrew's qt5 package is actually installed
This change unifies Homebrew packages workflow, and does not change
behavior.
Github-Pull: #20527
Rebased-From: c96d1f65a552712f8476269ad64a415717ead50d
48f8929aad
build: Use Homebrew's sqlite package if it is available
This change to the appveyor CI config for msvc builds reverses a change introduced in #19960. It re-applies a setting to inform vcpkg to only build release vesions of the dependencies rather than the default of debug and release.
It had been expected that the vcpkg manifest mechanism introduced in #19960 would do this automatically but it turns out not to be the case.
Github-Pull: #20489
Rebased-From: fa18e7cbc5ea6aaba94dca4ebdc850c9db141f89
e7b53d4721
Adjusted msvc compiler and linker settings to remove optimisations that are causing sporadic ABI issues on Visual Studio updates.
Tidied up debug and release configuration blocks in common project file to avoid duplication.
Updated appveyor config to use latest Visual Studio 2019 image.
Changed appveyor config file hash to use a new version of Qt pre-compiled binaries built for Visual Studio 2019 v16.8.1.
Bumped vcpkg version to tag '2020.11-1' for binary caching feature.
See #20392 for related discussion.
Github-Pull: #20506
Rebased-From: 8b99e609e7da5dd3601e9214d8f869e96108fffe
This field was already being returned, but the RPCHelpMan did not indicate
this. So, this PR updates the help text to match.
Github-Pull: #20756
Rebased-From: 667d203687708390bc0f43f2dd3f4ab427b88338
b1c0f97483
Merge #20669: [0.21] final rc4 backports
b1c0f97483f01f8836e5d83e98c881e44018cde5 [doc] Add permissions to the getpeerinfo help. (Amiti Uttarwar)
1fda7db64f0f30c23724f6db14f8a49d3975c716 rpc: Add missing description of vout in getrawtransaction help text (Ben Carman)
ef7a155cf06bf54fff4ff9fda9b28207fcc9adfb qt: Align layout of checkboxes (Hennadii Stepanov)
35a10e4ebc9da916c470d2a9e5b68c3cfc3efd02 Add patch to make codesign_allocate compatible with Apple's (Pieter Wuille)
e70ccb0bc4b695cd331aeda6d7aa405fa6d8f2e7 doc: update -externalip documentation in tor.md (Jon Atack)
2c8482d0a279d07a814eaaae231c90d3d2058e55 doc: add tor.md section on how to get tor info via bitcoind (Jon Atack)
0c1fa78af1c413c848359df76f4d55f819b9fad5 doc: update tor.md address examples from onion v2 to v3 (Jon Atack)
84e8d5467fcec3b7c8ce950cd7a3e7e7b24452a3 doc: warn that incoming conns are unlikely when not using default ports (Adam Jonas)
e4440eb67b339fdacb2c1476f8f909a009c6a47f doc: Add warnings for http interfaces limitations (Fabian Jahr)
85dabd12494a0d82a8f5883cee1c1ff29fb81b27 Removed redundant git pull from appveyor config. (Aaron Clauson)
249d61a382014c15025fe63025ac5f46d4721262 Adjusted msvc compiler and linker settings to remove optimisations that are causing sporadic ABI issues on Visual Studio updates. (Aaron Clauson)
e7b53d47218301790bfec44d50219561502922ad This change to the appveyor CI config for msvc builds reverses a change introduced in #19960. It re-applies a setting to inform vcpkg to only build release vesions of the dependencies rather than the default of debug and release. (Aaron Clauson)
8273ea3b8db1449b65cf369e541a1253c4490f45 Move signet onion seed from v2 to v3 (Sjors Provoost)
Pull request description:
The remaining backports to get rc4 out. Currently only waiting on the macOS build fix.
ACKs for top commit:
benthecarman:
ACK b1c0f97483f01f8836e5d83e98c881e44018cde5
Sjors:
ACK b1c0f97
Tree-SHA512: 53eaecd531ba461678917cb630d67f1e6bb737d64022abe971eaced6eca366c9ed593e44276bd9c7ad7b3aebe3850d2d29282eb310e10b547986d10fe77a8482
Allow creation of valid `CSubNet` objects of non-IP networks and only
match the single address they were created from (like /32 for IPv4 or
/128 for IPv6).
This fixes a deficiency in `CConnman::DisconnectNode(const CNetAddr& addr)`
and in `BanMan` which assume that creating a subnet from any address
using the `CSubNet(CNetAddr)` constructor would later match that address
only. Before this change a non-IP subnet would be invalid and would not
match any address.
Github-Pull: #20852
Rebased-From: 94d335da7f8232bc653c9b08b0a33b517b4c98ad
c33fbab25c
test: add test for banning of non-IP addresses
Co-authored-by: Jon Atack <jon@atack.com>
Github-Pull: #20852
Rebased-From: 39b43298d9c54f9c18bef36f3d5934f57aefd088
bdce029191
Bugfix: GUI: Restore SendConfirmationDialog button default to "Yes"
The SendConfirmationDialog is used for bumping the fee, where "Send" doesn't really make sense
Github-Pull: #bitcoin-core/gui#148
Rebased-From: 8775691383ff394b998232ac8e63fac3a214d18b
7bf3ed495b
doc: Move 0.21.0 release notes from wiki66e6742a27
Merge #20929: doc: Move 0.21.0 release notes from wiki
66e6742a273796e9bdab37b4ad9e05cf18a99981 doc: Move 0.21.0 release notes from wiki (Wladimir J. van der Laan)
Pull request description:
These were the contents of https://github.com/bitcoin-core/bitcoin-devwiki/wiki/0.21.0-Release-Notes-Draft, minus the paragraph about gauging how fast taproot can be deployed.
Top commit has no ACKs.
Tree-SHA512: d7bb61a76d87cb9d9e43602bf81b51ea463e3a098748e42440950d08e6f6e84bf6c02b07b297ac959f979aa72682775dd2ae2be6d30b22977ed60ed454b9c66d
doc: Archive release notes, Add template for minor releaseb6d3502993
Merge #20933: [0.21] doc: Archive release notes, Add template for minor release
b6d35029932ef245e040723dc924be2db4928666 doc: Archive release notes, Add template for minor release (MarcoFalke)
Pull request description:
Same as #20931, but also clearing the template
ACKs for top commit:
laanwj:
ACK b6d35029932ef245e040723dc924be2db4928666
Tree-SHA512: 929d2f774904b58d62dd60d4dcf8447f7e40d959596f3f97462076627d89549ad39dc39c56456f4c8861353cfdf6633abca0be3e84a783f174be1ee1b8d213a4
This change (1) prevents overlapping date and amount strings,
and (2) guaranties that "eye" sign at the end of the watch-only
address/label is always visible.
Github-Pull: bitcoin-core/gui#176
Rebased-From: f0d04795e23606399414d074d78efe5aa0da7259
7bc4498234
qt: Stop the effect of hidden widgets on the size of QStackedWidget
Layouts of the hidden widgets, those are children of QStackedWidget,
could prevent to adjust the size of the parent widget in the
WalletFrame widget.
Github-Pull: bitcoin-core/gui#176
Rebased-From: af58f5b12cea91467692dd4ae71d8cc916a608ed
qt: Use "fusion" style on macOS Big Sur with old Qt
The "macintosh" style is broken on macOS Big Sur at least for Qt 5.9.8.
Github-Pull: #bitcoin-core/gui#177
Rebased-From: 4e1154dfd128cbada65e9ea08ee274cdeafc4c53
tests: Test that a fully signed tx given to signrawtx is unchanged
Tests that a fully signed transaction given to
signrawtransactionwithwallet is both unchanged and marked as complete.
This tests for a regression in 0.20 where the transaction would not be
marked as complete.
Github-Pull: #20562
Rebased-From: 773c42b265fb2212b5cb8785b7226a206d063543
Previously vcpkg was relying on https://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-0.29.2-1-any.pkg.tar.xz which is no longer available. The vcpkg source has been updated to use http://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-0.29.2-2-any.pkg.tar.zst. This PR updates the commit ID used to checkout vcpkg for the updated URL.
Github-Pull: #21446
Rebased-From: b9e3f3530611d5fbb799a401b839ee23e3eba835
fuzz: Update FuzzedDataProvider.h from upstream (LLVM)
Upstream revision: https://github.com/llvm/llvm-project/blob/6d0488f75bb2f37bcfe93fc8f59f6e78c9a0c939/compiler-rt/include/fuzzer/FuzzedDataProvider.h
Changes:
* [compiler-rt] FuzzedDataProvider: add ConsumeData and method.
* [compiler-rt] Fix a typo in a comment in FuzzedDataProvider.h.
* [compiler-rt] Add ConsumeRandomLengthString() version without arguments.
* [compiler-rt] Refactor FuzzedDataProvider for better readability.
* [compiler-rt] FuzzedDataProvider: make linter happy.
* [compiler-rt] Mark FDP non-template methods inline to avoid ODR violations.
Github-Pull: #20740
Rebased-From: e3d2ba7c70b13a2165020e45abf02373a1e953f7
a48c9d3161
fuzz: Bump FuzzedDataProvider.h
Latest version from https://raw.githubusercontent.com/llvm/llvm-project/70de7e0d9a95b7fcd7c105b06bd90fdf4e01f563/compiler-rt/include/fuzzer/FuzzedDataProvider.h
Github-Pull: #20812
Rebased-From: fafce49336e18033b26948886bbd7342c779b246
14e3f2a1c9
fuzz: Bump FuzzedDataProvider.h
Latest version from https://github.com/llvm/llvm-project/blob/0cccccf0d2cbd707503263785f9a0407d3e2bd5e/compiler-rt/include/fuzzer/FuzzedDataProvider.h
Github-Pull: #21397
Rebased-From: fa7dc7ae9595ea49a2b31a3baef9af674d8def60
8426e3a8a1
doc: Remove outdated comment
The removed commit is wrong since v0.21.0.
Github-Pull: #21342
Rebased-From: f1f63ac3f833e14badac6edf88ed09d0161e18f7
5a2d98c640
Merge #21490: [0.21] Backport versionbits tests
e775b0a6dd8358df0e8921739faf15942027239e tests: Add fuzzing harness for versionbits (Anthony Towns)
0c471a5f306044cbd2eb230714571f05dd6aaf3c tests: check never active versionbits (Anthony Towns)
3ba9283a47ac358168db9db7840ae559f443486c tests: more helpful errors for failing versionbits tests (Anthony Towns)
Pull request description:
Backport of unit test (#21334) and fuzz test (#21380) changes for versionbits.
Top commit has no ACKs.
Tree-SHA512: b68b570e48e0076bb2ade3b91c59612029235d2c9e39048d548aa141fa0906343fa492e9a981065fbdbbebecbbb3dcbaf39ec69228c7581178fcca567e8201b8
1bad33f952
Merge #20901: [0.21.1]: rc1 Backports
5a2d98c640cf308d3c7e85ba51fbb7e84f99322a doc: Remove outdated comment (Hennadii Stepanov)
8426e3a8a1aad2e1ea794158ffb9a587f476d8d3 fuzz: Bump FuzzedDataProvider.h (MarcoFalke)
14e3f2a1c916fccf375a6570e58072c4d007fc3c fuzz: Bump FuzzedDataProvider.h (MarcoFalke)
a48c9d31610cab3ddd4f7334e83db5cf4f184df1 fuzz: Update FuzzedDataProvider.h from upstream (LLVM) (practicalswift)
6746cd078be8a15c69f8f5ba5253b1768d0acf21 doc: add signet to doc/bitcoin-conf.md (Jon Atack)
58975d5c0abeab8cb66f6006ee558d4bb7cc12b5 doc: add signet to share/examples/bitcoin.conf (Jon Atack)
b35711efdebc4e95906b1e809e711bc707852f2d Update vcpkg checkout commit. (Aaron Clauson)
3a126724195fcf00d84e852a9247475fccd14f38 GUI: Write PSBTs to file with binary mode (Andrew Chow)
36ecf5eb8752890fdffd617c9fedb08033607f99 tests: Test that a fully signed tx given to signrawtx is unchanged (Andrew Chow)
4ef1e4bd407ccf80b2a1d40e946e2ac832e624e5 test: disallow sendtoaddress/sendmany when private keys disabled (Jon Atack)
d6b5eb5fcc8e8f7f0ab778f32d49aabf6e04d80d Disallow sendtoaddress and sendmany when private keys disabled (Andrew Chow)
08dada84565ea5f49127123e356c82a150626f3c util: Disallow negative mocktime (MarcoFalke)
95218ee95cdb4046ee7d622eac822e74d94314c7 net: Avoid UBSan warning in ProcessMessage(...) (practicalswift)
4607019798c543f046bcd22d5b7c09750e7e0ee2 fix the unreachable code at feature_taproot (Bruno Garcia)
6dc58e99457fe4609fa3c401e89f98c92dbd9878 qt: Use "fusion" style on macOS Big Sur with old Qt (Hennadii Stepanov)
e2ebc8567a96e92d1c039b2e7c5f48826fece810 raise helpMessageDialog (randymcmillan)
a98f211940dc6eaed8050263efad7656126b7b3e Fix MSVC build after gui#176 (Hennadii Stepanov)
bdc64c9030488e7a6b88f369fb876c0b21c04a25 qt: Stop the effect of hidden widgets on the size of QStackedWidget (Hennadii Stepanov)
7bc4498234e16bc75975555cbe7855384489782f qt: Fix TxViewDelegate layout (Hennadii Stepanov)
b7086e69ff3825c3f3bfde4ca9af90663a4575dd qt: Add TransactionOverviewWidget class (Hennadii Stepanov)
0dba346a568882434098dd08566978e23eb4a516 qt: Use layout manager for Create Wallet dialog (Hennadii Stepanov)
7bf3ed495b96f0959d5c45c6e1936d8628dec730 Bugfix: GUI: Restore SendConfirmationDialog button default to "Yes" (Luke Dashjr)
bdce029191ab094a4a325b143324487f1c62ba7c test: add test for banning of non-IP addresses (Vasil Dimov)
c33fbab25c82b6a18773b80e8b355c987066ae5a net: allow CSubNet of non-IP networks (Vasil Dimov)
Pull request description:
Current backports for *0.21.1*.
One conflict was in the test case.
ACKs for top commit:
ajtowns:
ACK 5a2d98c640cf308d3c7e85ba51fbb7e84f99322a -- checked 'rebased-from' patches are in master, and rebased patches are clean rebases (except for the first one which changes `""s` to `std::string("")` to avoid c++17 dependency). commits seem fine, but haven't reviewed in detail.
fanquake:
ACK 5a2d98c640cf308d3c7e85ba51fbb7e84f99322a - branched off `0.21` and redid the backports. Minor conflict in c33fbab25c82b6a18773b80e8b355c987066ae5a. The diff between my branch and #20901 was just in release notes, `_CLIENT_VERSION_RC` (#20901 branched before 95ea54ba089610019a74c1176a2c7c0dba144b1c) and #21490 which has already been merged into `0.21`.
Tree-SHA512: 75d16d3cf9066a45759758b8185dc3b9dad6a6102c2ac9921f758a310e48d5d3122f0dafa515df42475235fc66a42cc04dd156ee1e61c86a1238bd11707642ea
a30fd40735
wallet: Use existing feerate instead of getting a new one
During each loop of CreateTransaction, instead of constantly getting a
new feerate, use the feerate that we have already fetched for all
fee calculations. Thix fixes a race condition where the feerate required
changes during each iteration of the loop.
This commit changes behavior as the "Fee estimation failed" error will
now take priority over "Signing transaction failed".
Github-Pull: #21083
Rebased-From: 1a6a0b0dfb90f9ebd4b86d7934c6aa5594974f5f
48fc675163
wallet: Replace nFeeRateNeeded with effective_fee
Make sure that all fee calculations use the same feerate.
coin_selection_params.effective_fee is the variable we use for all fee
calculations, so get rid of remaining nFeeRateNeeded usages and just
directly set coin_selection_params.effective_fee.
Does not change behavior.
Github-Pull: #21083
Rebased-From: e2f429e6bbf7098f278c0247b954ecd3ba53cf37
34c89f92f3
wallet: Move long term feerate setting to CreateTransaction
Instead of setting the long term feerate for each SelectCoinsMinConf
iteration, set it once during CreateTransaction and let it be shared
with each SelectCoinsMinConf through
coin_selection_params.m_long_term_feerate.
Does not change behavior.
Github-Pull: #21083
Rebased-From: 448d04b931f86941903e855f831249ff5ec77485
bcd716670b
wallet: Move discard feerate fetching to CreateTransaction
Instead of fetching the discard feerate for each SelectCoinsMinConf
iteration, fetch and cache it once during CreateTransaction so that it
is shared for each SelectCoinsMinConf through
coin_selection_params.m_discard_feerate.
Does not change behavior.
Github-Pull: #21083
Rebased-From: bdd0c2934b7f389ffcfae3b602ee3ecee8581acd
This also includes updates to the Python test framework implementation,
test vectors, and release notes.
Github-Pull: #20861
Rebased-From: fe5e495c31de47b0ec732b943db11fe345d874af
Reduced version of the test from master/#20861 by John Newbery.
Github-Pull: #20861
Rebased-From: fe5e495c31de47b0ec732b943db11fe345d874af
f2195d7c4a
Merge #21469: BIP 350: Implement Bech32m and use it for v1+ segwit addresses (0.21 backport)
f2195d7c4aa45f5168ec55b14406aeaf970adcb1 Backport invalid address tests (Pieter Wuille)
1e9671116fc5805baa0442bd8fd1c88f2307fef0 naming nits (Fabian Jahr)
7dfe406e2023c9db7d9cc2e98484423adfbc8963 Add signet support to gen_key_io_test_vectors.py (Pieter Wuille)
593e206627f4fb789de70f55017f71b85d10754d Use Bech32m encoding for v1+ segwit addresses (Pieter Wuille)
8944aaa6d6ce55faa6224e288fe0a14dbbf5ca4f Add Bech32m test vectors (Pieter Wuille)
1485533092a0732bae55313659a3e3f9669fd77a Implement Bech32m encoding/decoding (Pieter Wuille)
Pull request description:
Backport of #20861. Also includes #21471.
ACKs for top commit:
jnewbery:
utACK f2195d7c4aa45f5168ec55b14406aeaf970adcb1
MarcoFalke:
cherry-pick re-ACK f2195d7c4aa45f5168ec55b14406aeaf970adcb1 , only change is version number in doc/bips and new test commit ๐
fanquake:
ACK f2195d7c4aa45f5168ec55b14406aeaf970adcb1 - performed the backport, changes look sane. Have not tested extensively.
Tree-SHA512: 7dc043e44d7cda07d73331a7b49666b9db98c99f2635dab0cfeb45422dbfbe75a7b44d0aff85ef6369d412d8a5041ed0826c86ffdfc13c5fbff74adfe4d91c1a
65fa43bda1
Rename CoinSelectionParams::effective_fee to m_effective_feerate
It's a feerate, not a fee. Also follow the style guide for member names.
Github-Pull: #21083
Rebased-From: f9cd2bfbccb7a2b8ff07cec5f6d2adbeca5f07c3
Merge #21616: [0.21] build: link against -lsocket if required for *ifaddrs
1a9a2cb7dcc60781a3cbca3a7846ff153143260c net: add ifaddrs.h include (fanquake)
f6896dfde73bb37f4f0f0f9bfe9855d4fe9e9fe5 build: check if -lsocket is required with *ifaddrs (fanquake)
e99d6d0c7cbdbb23f966e50c045bbd525ba8daf0 rand: only try and use freeifaddrs if available (fanquake)
Pull request description:
Backports #21486 to the 0.21 branch. Related to #21485.
ACKs for top commit:
MarcoFalke:
cherry-pick-only ACK 1a9a2cb7dcc60781a3cbca3a7846ff153143260c did not test or review ๐ถ
Tree-SHA512: 400dcf0f0bffa9b2c820403936b894969113a2bd82a32ae29d3fb73c4ef9ffafb55f5325fcc4929f6e685f8932be6f566f5dd2163ecf8a64b154b0c401109311
0b9a046c1a
Introduce DeferringSignatureChecker and inherit with SignatureExtractor
Introduces a DeferringSignatureChecker which simply takes a
BaseSignatureChecker and passes through everything.
SignatureExtractorChecker now subclasses DeferringSignatureChecker. This
allows for all BaseSignatureChecker functions to be implemented for
SignatureExtractorChecker, while allowing for future signature checkers
which opreate similarly to SignatureExtractorChecker.
Github-Pull: #21166
Rebased-From: 6965456c10c9c4025c71c5e24fa5b27b15e5933a
7de019bc61
Test that signrawtx works when a signed CSV and CLTV inputs are present
Merge #21640: [0.21] Introduce DeferredSignatureChecker and have SignatureExtractorClass subclass it
f79189ca54524881d52b91679eb9035d6718ce01 Test that signrawtx works when a signed CSV and CLTV inputs are present (Andrew Chow)
7de019bc619b0b2433bfb553feba5f6dc58c8db8 Introduce DeferringSignatureChecker and inherit with SignatureExtractor (Andrew Chow)
Pull request description:
Backport of #21166
ACKs for top commit:
MarcoFalke:
checked this is a clean cherry-pick did not review ACK f79189ca54524881d52b91679eb9035d6718ce01 ๐
instagibbs:
ACK https://github.com/bitcoin/bitcoin/pull/21640/commits/f79189ca54524881d52b91679eb9035d6718ce01
Tree-SHA512: 51e945c9b353713423d3886c557066c66a6517d2300523832e5a5471ab91a8943385096d9bf5b46910477cb4c47470431690cf3da09b9f6956fe030f13ddff51
e358b43f7d
tests: pull ComputeBlockVersion test into its own function
The intent here is to allow checking ComputeBlockVersion behaviour with
each deployment, rather than only testdummy on mainnet. This commit does
the trivial refactoring component of that change.
Github-Pull: #21377
Rebased-From: 63879f0a4760c0c0f784029849cb5d21ee088abb
2e9e7f4329
tests: test ComputeBlockVersion for all deployments
This generalises the ComputeBlockVersion test so that it can apply to
any activation parameters we might set, and checks all the parameters
set for each deployment on each chain, to simultaneously ensure that the
deployments we have configured work sensibly, and that the test code
does not suffer bitrot in the event that all interesting deployments
are buried.
Github-Pull: #21377
Rebased-From: 593274445004506c921d5d851361aefb3434d744
1c0164544c
tests: clean up versionbits test
Simplify the versionbits unit test slightly to make the next set of
changes a little easier to follow.
Github-Pull: #21377
Rebased-From: 9e6b65f6fa205eee5c3b99343988adcb8d320460
Previously we used deployments that would timeout prior to Bitcoin's
invention, which allowed the deployment to still be activated in unit
tests. This switches those deployments to be truly never active.
Github-Pull: #21377
Rebased-From: 55ac5f568a3b73d6f1ef4654617fb76e8bcbccdf
3acf0379e0
versionbits: simplify state transitions
This removes the DEFINED->FAILED transition and changes the
STARTED->FAILED transition to only occur if signalling didn't pass the
threshold. This ensures that it is always possible for activation to
occur, no matter what settings are chosen, or the speed at which blocks
are found.
Github-Pull: #21377
Rebased-From: f054f6bcd2c2ce5fea84cf8681013f85a444e7ea
600357306e
chainparams: drop versionbits threshold to 90% for mainnnet and signet
Merge #21520: [0.21] wallet: Avoid requesting fee rates multiple times during coin selection
d61fb07da7c12e4a1f68cf645f32d563a657a506 Rename CoinSelectionParams::effective_fee to m_effective_feerate (Andrew Chow)
5fc381e443d6d967e6f7f8bc88a4fd66e18379eb wallet: Move discard feerate fetching to CreateTransaction (Andrew Chow)
bcd716670ba8a189a2e9b8b035318abceb9ce631 wallet: Move long term feerate setting to CreateTransaction (Andrew Chow)
34c89f92f34b5ca12da95d5f0b0240682c5a1c1f wallet: Replace nFeeRateNeeded with effective_fee (Andrew Chow)
48fc675163a657e615fd4b2680fc3accba12f95d wallet: Use existing feerate instead of getting a new one (Andrew Chow)
Pull request description:
Backport of #21083
ACKs for top commit:
MarcoFalke:
cherry-pick-only re-ACK d61fb07da7c12e4a1f68cf645f32d563a657a506 ๐
instagibbs:
utACK https://github.com/bitcoin/bitcoin/pull/21520/commits/d61fb07da7c12e4a1f68cf645f32d563a657a506
Tree-SHA512: 23b212301bb467153dd9723903918ae01dd520525c81d541c411e7a4381e46594fe032e2a7c06ddcff7dc56dcb546991d50187c33fcff08ec45bd835cc01bd19
0fe5b6130c
Merge #21701: [0.21] Speedy trial activation for Taproot
cbd64c3a28a7466f421477daadc6e6e6b69b898a Add mainnet and testnet taproot activation params (Andrew Chow)
ec7824396bdd2e93b429ddce9fea6bb29695454a chainparams: drop versionbits threshold to 90% for mainnnet and signet (Anthony Towns)
600357306e2e182a457174862ea2e41c7ba39c64 versionbits: simplify state transitions (Anthony Towns)
3acf0379e0979ea4bdd03976f4987aa6711eb92f versionbits: Add explicit NEVER_ACTIVE deployments (Anthony Towns)
b529222ad18f7facbaff394455875b4aa65d653e fuzz: test versionbits delayed activation (Anthony Towns)
71917e01ebf48790b9df48421d8e97986f92e2e4 tests: test versionbits delayed activation (Anthony Towns)
4cab84cfdfc98cd10462681b5eb0fbbc08afd2a7 versionbits: Add support for delayed activation (Anthony Towns)
f9517e6014ccfe91d5a77e2bacca928bdce7c285 tests: clean up versionbits test (Anthony Towns)
1c0164544c66b691f93b3b1114eee97cbabd99b2 tests: test ComputeBlockVersion for all deployments (Anthony Towns)
2e9e7f4329fc313adf9ba2394edbaf2a69b59bc1 tests: pull ComputeBlockVersion test into its own function (Anthony Towns)
Pull request description:
Backport of #21377 and #21686
ACKs for top commit:
instagibbs:
cherry-pick ACK https://github.com/bitcoin/bitcoin/pull/21701/commits/cbd64c3a28a7466f421477daadc6e6e6b69b898a
jnewbery:
ACK cbd64c3a28a7466f421477daadc6e6e6b69b898a
Sjors:
tACK cbd64c3
MarcoFalke:
cherry-pick-only ACK cbd64c3a28a7466f421477daadc6e6e6b69b898a ๐พ
Tree-SHA512: e9efb0ca9986d685161bcba5ed43efdc5f1dca88322cf65faccf17009b567c2d930c2aba4d1541539fc65347574ed4faa3d4558b907c779d1c128b3d2c681f31
e3b76b6c13
test: use pointers in denialofservice_tests/peer_discouragement
This is a non-functional change that replaces the `CNode` on-stack
variables with `CNode` pointers.
The reason for this is that it would allow us to add those `CNode`s
to `CConnman::vNodes[]` which in turn would allow us to check that they
are disconnected properly - a `CNode` object must be in
`CConnman::vNodes[]` in order for its `fDisconnect` flag to be set.
If we store pointers to the on-stack variables in `CConnman` then it
would crash at the end, trying to `delete` them.
Github-Pull: #21571
Rebased-From: 4d6e246fa46f2309e2998b542e4c104d73d29071
dfeb6c10bb
test: also check disconnect in denialofservice_tests/peer_discouragement
Use `CConnmanTest` instead of `CConnman` and add the nodes to it
so that their `fDisconnect` flag is set during disconnection.
Github-Pull: #21571
Rebased-From: 637bb6da368b87711005b909f451f94909400092
b765f41164
test: make sure non-IP peers get discouraged and disconnected
b8af67eeefc9fc9622f839ec8919b7391d91bf6f fuzz: cleanups for versionbits fuzzer (Anthony Towns)
79cdb4a1984c90a4d9377fbb0dda7bdd61d57031 test: make sure non-IP peers get discouraged and disconnected (Vasil Dimov)
b765f41164663c93d63e5a401d3b23c586a4e4fe test: also check disconnect in denialofservice_tests/peer_discouragement (Vasil Dimov)
dfeb6c10bba80dc91245318feb0ad1d879015a99 test: use pointers in denialofservice_tests/peer_discouragement (Vasil Dimov)
Pull request description:
Backport tests
ACKs for top commit:
vasild:
ACK b8af67eeefc9fc9622f839ec8919b7391d91bf6f
jnewbery:
ACK b8af67eeefc9fc9622f839ec8919b7391d91bf6f
ajtowns:
ACK b8af67eeefc9fc9622f839ec8919b7391d91bf6f ; visually compared individual commits to originals, checked original commits are in master
Tree-SHA512: 22f665560f9d452993b12508d93d93ff54e3e91dcf39f731e27aedfb891570168066c185413d455bee4fa082c011b65ea1b0eee51e3633392b07a0db008d51c8
doc: Merge release notes fragment, merge taproot description from wiki
Co-authored-by: David A. Harding <dave@dtrt.org>
Co-authored-by: Jon Atack <jon@atack.com>
Co-authored-by: Pieter Wuille <pieter@wuille.net>
Tree-SHA512: dd9ac416ff22276833111198445d76cf8417012a6faad0c3560276f1dcf24586ff41c65ac3430fbf1e840aaa563d3dd101671cff306b0fd92aa2ee03bb7f926b
- bintray is closing.
- updated to jfrog.io.
Github-Pull: #21662
Rebased-From: 36c10b9f4b181db6afa2f8cb7d4872b158768c16
856de5bd5e
Merge bitcoin/bitcoin#21860: [0.21] Backport update to Boost download URL
856de5bd5e4594d12c1d35704c49d0d086fc3d84 build,boost: update download url. (fdov)
Pull request description:
Backports #21662 to the 0.21 branch. Boost has migrated it's download URLs due to bintrays imminent closure. The Boost site has also been updated to point to the new URLs. i.e: https://www.boost.org/users/history/version_1_70_0.html.
Github-Pull: #21662
Rebased-From: 36c10b9f4b181db6afa2f8cb7d4872b158768c16
ACKs for top commit:
jarolrod:
ACK 856de5bd5e4594d12c1d35704c49d0d086fc3d84
Tree-SHA512: cae7262f963dd6e00af699c3e1bce2ee3ff9f76c5dcc24c8a5bf37025b53de28e4cb80de65a380208ee1841a89736d5c35605e40b728b6c7a9f026d8165d74c8
bbd89d23b3
doc: Archive and clean out release notes post-0.21.1
deff4e763e11f92e5cb7732cace7239fead4fba8 depends: update Qt 5.9 source url (Kittywhiskers Van Gogh)
Pull request description:
## Expected Behavior
Running `make` in the depends directory should result in the successful building of host platform dependencies
## Actual Behavior
`make` terminates as `qt.mk` points to (now) outdated URL path for Qt 5.9 sources, returning error 404
## Remedy
Update `qt.mk` to point to updated source location as Qt has relocated them
ACKs for top commit:
RandyMcMillan:
tACK deff4e7
hebasto:
ACK deff4e763e11f92e5cb7732cace7239fead4fba8, I have verified the new link, and checked that old one is unavailable:
jarolrod:
tACK deff4e763e11f92e5cb7732cace7239fead4fba8
Tree-SHA512: d5b11a678c871a87e6884a35641178ee349728ead51da06018953be36aab5a30aef9c80b549da49802e87903eb0b7836cc343301325bd8c505cb4246f6752505
58c0742632
p2p, bugfix: use NetPermissions::HasFlag() in CConnman::Bind()
PF_NOBAN is a multi-flag that includes PF_DOWNLOAD, so the conditional
in CConnman::Bind() using a bitwise AND will return the same result
for both the "noban" status and the "download" status.
Example:
`PF_DOWNLOAD` is `0b1000000`
`PF_NOBAN` is `0b1010000`
This makes a check like `flags & PF_NOBAN` return `true` even if `flags`
is equal to `PF_DOWNLOAD`.
If `-whitebind=download@1.1.1.1:8765` is specified, then `1.1.1.1:8765`
should be added to the list of local addresses. We only want to avoid
adding to local addresses (that are advertised) a whitebind that has a
`noban@` flag.
As a result of a mis-check in `CConnman::Bind()` we would not have added
`1.1.1.1:8765` to the local addresses in the example above.
Co-authored-by: Vasil Dimov <vd@FreeBSD.org>
Github-Pull: bitcoin/bitcoin#21644
Rebased-From: dde69f20a01acca64ac21cb13993c6e4f8709f23
f2a88986a1
Remove user input from URI error message
+ Detailed error messages for invalid address
+ Used `IsValidDestination` instead of `IsValidDestinationString`
+ Referred to https://github.com/bitcoin/bitcoin/pull/20832 for solution
Github-Pull: bitcoin-core/gui#280
Rebased-From: 3bad0b3fada9ab7c5b03d31dc33d72654c1ba2be
Update gitian and guix to use the same latest signapple commit
Github-Pull: #22190
Rebased-From: 683d197970a533690ca1bd4d06d021900e87cb8b
0fe60a84ae
wallet: Do not iterate a directory if having an error while accessing it
This change prevents infinite looping for, for example, system folders
on Windows.
Github-Pull: #21907
Rebased-From: 29c9e2c2d2015ade47ed4497926363dea3f9c59b
7b0b201d10
Merge bitcoin/bitcoin#22191: [0.21] gitian: Use custom MacOS code signing tool
0fe60a84ae2f52e87ee07cd0243f09d45b0b15e2 Use latest signapple commit (Andrew Chow)
5313d6aed2d8bd515401b3782c0bc352af423015 gitian: Remove codesign_allocate and pagestuff from MacOS build (Andrew Chow)
27d691b6b5b4a15dc3d1f9dd248a8880ab3ab326 gitian: use signapple to create the MacOS code signature (Andrew Chow)
2f33e339a8903e79bf750367c073056bea4a9788 gitian: use signapple to apply the MacOS code signature (Andrew Chow)
65ce8330427114c2827d00a658d2e5887349c76a gitian: install signapple in gitian-osx-signer.yml (Andrew Chow)
Pull request description:
Backport of #20880 and #22190
ACKs for top commit:
MarcoFalke:
cherry-pick-only ACK 0fe60a84ae ๐
Tree-SHA512: e864048fab02a1857161602dd53abba552ca3f859c133a47a5e62c28d3e4de9cd099bce86123a1b5892042b09f51cc1ddd2ed1b0c71bfba162710eaee3f5bf91
926f76cb20
fuzz: add missing ECCVerifyHandle to base_encode_decode
Remove the erroneous trailing newline '\n'. Also, print only the first
value to remove needless redundancy in the error message.
Github-Pull: #22002
Rebased-From: fad0867d6ab9430070aa7d60bf7617a6508e0586
513613d8a8
util: Properly handle -noincludeconf on command line
This bug was introduced in commit
fad0867d6ab9430070aa7d60bf7617a6508e0586.
Unit test
Co-Authored-By: Russell Yanofsky <russ@yanofsky.org>
Github-Pull: #22137
Rebased-From: fa910b47656d0e69cccb1f31804f2b11aa45d053
da816247f0
Merge bitcoin/bitcoin#22255: [0.21] wallet: Do not iterate a directory if having an error while accessing it
7b0b201d109b6240f114498fc1b94af9cb85f26e wallet: Do not iterate a directory if having an error while accessing it (Hennadii Stepanov)
Pull request description:
This change prevents infinite looping for, for example, system folders
on Windows.
Github-Pull: #21907
Rebased-From: 29c9e2c2d2015ade47ed4497926363dea3f9c59b
Note: Trivial backport, but in a differently-named function in another file
ACKs for top commit:
hebasto:
ACK 7b0b201d109b6240f114498fc1b94af9cb85f26e, I have reviewed the code and it looks OK, I agree it can be merged.
Tree-SHA512: d41ab267250e8bfd9289cacf1fd804cc1a3bb20fc479dc9da5a69ebf26530b552b11b2ee6b11e17a1c146ca792ee65bd64eeb2269fa5e73a70361da8a2a09925
4c29b63cfb
Merge bitcoin/bitcoin#22366: [0.21] fuzz: add missing ECCVerifyHandle to base_encode_decode
da816247f0c00e1644f7ebe2b848cfd6a5c7026e util: Properly handle -noincludeconf on command line (MarcoFalke)
513613d8a87337f1d1f639bc9426165c3b6be62e Cleanup -includeconf error message (MarcoFalke)
70eac6fcd02b6c44cb4b1f2fb895eae147e3f490 Fix crash when parsing command line with -noincludeconf=0 (MarcoFalke)
c5357fa4151e1ac90427ae0493a7bb3e451f8de5 fuzz: add missing ECCVerifyHandle to base_encode_decode (Andrew Poelstra)
Pull request description:
Backports #22279, #22002 and #22137 to fix fuzzing issues in the 0.21 branch: https://github.com/bitcoin/bitcoin/runs/2864012729.
ACKs for top commit:
achow101:
ACK da816247f0c00e1644f7ebe2b848cfd6a5c7026e
Tree-SHA512: ab8751387e42e03ff43594ae34be8ed0dba903d7da1aaecb9f19c08366570d8995abe89ba0c9bafe37662940f3e83bef1e9e50f330e86114cd6a773becd1fd21
bd2f4164c6
qt: Do not use QClipboard::Selection on Windows and macOS.
Windows and macOS do not support the global mouse selection.
Github-Pull: bitcoin-core/gui#277
Rebased-From: 7f3a5980c1d54988a707b961fd2ef647cebb4c5b
f220368220
qt: Do not extend recent transaction width to address/label string
Merge bitcoin/bitcoin#22427: [0.21] gui: Backports for 0.21.2
e3f1da4bf3db120cc691a844d612fbc522f11fb9 qt: Draw "eye" sign at the beginning of watch-only addresses (Hennadii Stepanov)
6ca54ce2ae0808513172c4945e38165e766e1381 qt: Do not extend recent transaction width to address/label string (Hennadii Stepanov)
f220368220abb11040fa944a853cda3d4f1fe84d qt: Do not use QClipboard::Selection on Windows and macOS. (Hennadii Stepanov)
Pull request description:
Backports https://github.com/bitcoin-core/gui/pull/277, https://github.com/bitcoin-core/gui/pull/365.
ACKs for top commit:
fanquake:
ACK e3f1da4bf3db120cc691a844d612fbc522f11fb9
jarolrod:
ACK e3f1da4bf3db120cc691a844d612fbc522f11fb9
Tree-SHA512: 43cc2ac48f4e5014bfdbe86cc904bb36d2be9fcd257f0fc0800c384bd727bb98466723e450a8909b06708784ad91184be599c49cf60de2e4377202774cb878f6
55e941f5df18ce6d9b1ee8759f1419c5d1f03a8f test: Fix intermittent feature_taproot issue (MarcoFalke)
681f728a35b800d6f1cc359171b6b40de9ddb9a4 ci: Build with --enable-werror by default, and document exceptions (Hennadii Stepanov)
89426c43fb75fabd72e6e16433dab7f8ee9c860c ci: Fix macOS brew install command (Hennadii Stepanov)
Pull request description:
This backports a few changes to fix CI failures we are seeing with the 0.21 branch.
Backports #21663, this might be the easiest way to fix the macOS CI failures we're seeing. i.e in #22569. The underlying issue is that the older CI images are using a version of brew that without running `brew update` first, is trying to download packages like Boost, from bintray (which no-longer works).
This also includes #20182, as by fixing macOS failure, via running `brew upgrade`, we end up using a newer version of miniupnpc, which emits a GNU extension related warning, and causes the build to fail, because we use `-Werror`.
Backporting #20535 should fix #22581.
ACKs for top commit:
hebasto:
ACK 55e941f5df18ce6d9b1ee8759f1419c5d1f03a8f, I verified changes by backporting locally.
Tree-SHA512: 3ab2c5c73c707d0f5b862264f3a0179cdeee30ae55aae872f3c3e0bb81d71a5027c39ba830210c99a21f98cc86c4167c4f215e24d1a8891ec79ce512debf82df
068ac69b56
Rate limit the processing of incoming addr messages
While limitations on the influence of attackers on addrman already
exist (affected buckets are restricted to a subset based on incoming
IP / network group), there is no reason to permit them to let them
feed us addresses at more than a multiple of the normal network
rate.
This commit introduces a "token bucket" rate limiter for the
processing of addresses in incoming ADDR and ADDRV2 messages.
Every connection gets an associated token bucket. Processing an
address in an ADDR or ADDRV2 message from non-whitelisted peers
consumes a token from the bucket. If the bucket is empty, the
address is ignored (it is not forwarded or processed). The token
counter increases at a rate of 0.1 tokens per second, and will
accrue up to a maximum of 1000 tokens (the maximum we accept in a
single ADDR or ADDRV2). When a GETADDR is sent to a peer, it
immediately gets 1000 additional tokens, as we actively desire many
addresses from such peers (this may temporarily cause the token
count to exceed 1000).
The rate limit of 0.1 addr/s was chosen based on observation of
honest nodes on the network. Activity in general from most nodes
is either 0, or up to a maximum around 0.025 addr/s for recent
Bitcoin Core nodes. A few (self-identified, through subver) crawler
nodes occasionally exceed 0.1 addr/s.
Github-Pull: #22387
Rebased-From: 0d64b8f709b4655d8702f810d4876cd8d96ded82
Includes logging improvements by Vasil Dimov and John Newbery.
Github-Pull: #22387
Rebased-From: f424d601e1b6870e20bc60f5ccba36d2e210377b
a653aacbd6
Avoid Appveyor compilation failure2a57108051
Merge bitcoin/bitcoin#22569: [0.21] Rate limit the processing of rumoured addresses
2a5710805195ca54a02aff3540ceaefb9cb3b3e2 Avoid Appveyor compilation failure (Pieter Wuille)
a653aacbd66a47edd6d14ddc62fec2d4038456b8 Add logging and addr rate limiting statistics (Pieter Wuille)
aaa4833fc9c3d44378e232002f4b9b447a2d18cb Functional tests for addr rate limiting (Pieter Wuille)
8df3e5bd84f2b2b60730034cbd71fe8f3276d434 Randomize the order of addr processing (Pieter Wuille)
83dfe6c65ef6c30ca01348ee5059c3d76e03d1d3 Rate limit the processing of incoming addr messages (Pieter Wuille)
Pull request description:
Backport of #22387.
The rate at which IP addresses are rumoured (through ADDR and ADDRV2 messages) on the network seems to vary from 0 for some non-participating nodes, to 0.005-0.025 addr/s for recent Bitcoin Core nodes. However, the current codebase will happily accept and process an effectively unbounded rate from attackers. There are measures to limit the influence attackers can have on the addrman database (bucket restrictions based on source IPs), but still - there is no need to permit them to feed us addresses at a rate that's orders of magnitude larger than what is common on the network today, especially as it will cause us to spam our peers too.
This PR implements a [token bucket](https://en.wikipedia.org/wiki/Token_bucket) based rate limiter, allowing an average of 0.1 addr/s per connection, with bursts up to 1000 addresses at once. Whitelisted peers as well as responses to GETADDR requests are exempt from the limit. New connections start with 1 token, so as to not interfere with the common practice of peers' self-announcement.
Due to the lack of the `Peer` struct in 0.21, the relevant fields have been added to `CNodeState` instead, necessitating additional locks, and slightly different structure to avoid too much `cs_main` grabbing. The last test-improving commit has also been dropped, as the code has changed too much. Most of the behavior is still tested however, just not the part that compares with RPC statistics.
ACKs for top commit:
achow101:
ACK 2a5710805195ca54a02aff3540ceaefb9cb3b3e2
GeneFerneau:
Approach + code review ACK [2a57108](https://github.com/bitcoin/bitcoin/pull/22569/commits/2a5710805195ca54a02aff3540ceaefb9cb3b3e2)
jnewbery:
reACK 2a5710805195ca54a02aff3540ceaefb9cb3b3e2
Tree-SHA512: ecf4891ac6173d732aa40b4d05fc0dce94127a613cb9051bf6188a2f95824f8234b17d386dd0b352ddf3d352202cc2ff07915ae35657d8e64907e3f80703d1d9
4b523c8f0a
DrahtBot added the label Build system on Aug 8, 2021
DrahtBot added the label Consensus on Aug 8, 2021
DrahtBot added the label GUI on Aug 8, 2021
DrahtBot added the label P2P on Aug 8, 2021
DrahtBot added the label RPC/REST/ZMQ on Aug 8, 2021
DrahtBot added the label Scripts and tools on Aug 8, 2021
DrahtBot added the label Utils/log/libs on Aug 8, 2021
DrahtBot added the label Validation on Aug 8, 2021
DrahtBot added the label Wallet on Aug 8, 2021
DrahtBot
commented at 5:38 PM on August 8, 2021:
member
<!--cf906140f33d8803c4a75a2196329ecb-->
๐ This pull request conflicts with the target branch and needs rebase.
<sub>Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft".</sub>
DrahtBot added the label Needs rebase on Aug 8, 2021
hebasto closed this on Aug 8, 2021
hebasto renamed this: /main/0.21 . on Aug 8, 2021
hebasto locked this on Aug 8, 2021
hebasto removed the label GUI on Aug 8, 2021
hebasto removed the label Wallet on Aug 8, 2021
hebasto removed the label Build system on Aug 8, 2021
hebasto removed the label RPC/REST/ZMQ on Aug 8, 2021
hebasto removed the label P2P on Aug 8, 2021
hebasto removed the label Validation on Aug 8, 2021
hebasto removed the label Consensus on Aug 8, 2021
hebasto removed the label Scripts and tools on Aug 8, 2021
hebasto removed the label Utils/log/libs on Aug 8, 2021
hebasto removed the label Needs rebase on Aug 8, 2021
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2026-04-13 18:14 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me