Commit graph

26617 commits

Author SHA1 Message Date
MacroFake
ec0a4ad677
Merge bitcoin/bitcoin#25538: [0.21] test: replace hashlib.ripemd160 with an own implementation
bf79f08d97 Swap out hashlib.ripemd160 for own implementation (Pieter Wuille)
6bfa0bef48 Add pure Python RIPEMD-160 (Pieter Wuille)

Pull request description:

  Backports #23716 to 0.21. Closes #25534.

Top commit has no ACKs.

Tree-SHA512: d2a175d781b30249b14488b818720554995a71cae1861c7443be120a01fd7828737949ece5fc9c193a154e06f4e37d373e44ec7d9dcd64f8e86c0429abe70bb6
2022-07-06 09:24:02 +02:00
Pieter Wuille
bf79f08d97
Swap out hashlib.ripemd160 for own implementation
Github-Pull: #23716
Rebased-From: 5b559dc7ec
2022-07-04 11:51:43 +01:00
Pieter Wuille
6bfa0bef48
Add pure Python RIPEMD-160
Github-Pull: #23716
Rebased-From: ad3e9e1f21
2022-07-04 11:51:20 +01:00
fanquake
dca463bd81
Merge bitcoin/bitcoin#25318: 0.21 Backports
efb9f00f07 build: Restrict check for CRC32C intrinsic to aarch64 (W. J. van der Laan)
cfb08c342e refactor: include a missing <limits> header in fs.cpp (Joan Karadimov)

Pull request description:

  There might not be another 0.21.x release, however these are both straight forward changes. If this isn't merged, then the pulls can remain untagged for needing backport.

  Backports:
  - https://github.com/bitcoin/bitcoin/pull/23045
  - https://github.com/bitcoin/bitcoin/pull/23335

ACKs for top commit:
  laanwj:
    ACK efb9f00f07
  LarryRuane:
    utACK efb9f00f07

Tree-SHA512: 09be8f8ce90f862e2d408c5707a8387ca828fdd05a9814cfed5236030a3b33012e7d7a557c2ee3989db26922ad45cb8a307bdeba7ac8e34b5f21f0d46eda1955
2022-06-10 11:58:53 +01:00
W. J. van der Laan
efb9f00f07
build: Restrict check for CRC32C intrinsic to aarch64
`crc32c`'s hardware accelerated code doesn't handle ARM 32-bit at all.
Make the check in `configure.ac` check for this architecture explicitly.

For the release binaries, the current `configure.ac` check happens
to work: it enables it on aarch64 but disables it for armhf. However
some combination of compiler version and settings might ostensibly cause
this check to succeed on armhf (as reported on IRC). So make the 64-bit
platform requirement explicit.

Github-Pull: #23045
Rebased-From: f2747d1602
2022-06-09 12:53:50 +01:00
Joan Karadimov
cfb08c342e
refactor: include a missing <limits> header in fs.cpp
... needed for std::numeric_limits<T>::max on WIN32

Github-Pull: #23335
Rebased-From: 077a875d94
2022-06-09 12:53:09 +01:00
fanquake
af591f2068
Merge bitcoin/bitcoin#22858: [0.21] Final changes for 0.21.2
6c102a696e release: bump RC to 0 (-final) (fanquake)
f78570ef87 doc: mention bech32m/BIP350 in doc/descriptors.md (Pieter Wuille)

Pull request description:

  Backports:
  * #22837 - doc: mention bech32m/BIP350 in doc/descriptors.md

ACKs for top commit:
  laanwj:
    ACK 6c102a696e
  glozow:
    ACK 6c102a696e looks correct to me
  jnewbery:
    ACK 6c102a696e

Tree-SHA512: 8cdfee955e1abdbc6900df3d01982cb77ec57ef008b75487ac9a63d571cc21e4ae0f107849aa575d239a8662619553778955ffbebf57201de5afcd34298d57b4
2021-09-23 18:07:49 +08:00
fanquake
6c102a696e
release: bump RC to 0 (-final) 2021-09-23 15:07:14 +08:00
Pieter Wuille
f78570ef87
doc: mention bech32m/BIP350 in doc/descriptors.md
Github-Pull: #22837
Rebased-From: d2a09c8355
2021-09-23 14:50:29 +08:00
fanquake
97d3500601
Merge bitcoin/bitcoin#22823: [0.21] Update version and release notes for 0.21.2rc2
b8f5fb7c6b build: bump version to 0.21.2rc2 (fanquake)
82c5208ddc doc: update release notes for rc2 (fanquake)

Pull request description:

  Bump version to `0.21.2rc2` and add the new backports to the release notes.

ACKs for top commit:
  MarcoFalke:
    ACK b8f5fb7c6b
  hebasto:
    ACK b8f5fb7c6b

Tree-SHA512: 7bcdf6c42ac75fb24df8d6b60bddcac5f14363a3f7dd89a239f798bb14b5c911c2d7535a0372c2998719d33a561d0d28b0b6764aaf1f2ec330d4035ce965997b
2021-08-28 16:25:43 +08:00
fanquake
b8f5fb7c6b
build: bump version to 0.21.2rc2 2021-08-28 16:01:20 +08:00
fanquake
82c5208ddc
doc: update release notes for rc2 2021-08-28 15:55:03 +08:00
fanquake
6ebb9d0e46
Merge bitcoin/bitcoin#22808: [0.21] 0.21.2rc2 backports
d9b18c1290 Fix build with Boost 1.77.0 (Rafael Sadowski)
2d7f2606c1 ci: Run fuzzer task for the master branch only (Hennadii Stepanov)

Pull request description:

  Backported:

  1) #22730
  1) #22713

ACKs for top commit:
  fanquake:
    ACK d9b18c1290 - Checked the backports and tested building this branch with system Boost 1.76.0 and depends Boost 1.77.0.

Tree-SHA512: dc3e0a2b3c1e3e80f6570e329a08ebc5103c233c30562f660432891c90bacb4d88d5373e32b9ac34fd143be46b8e63900ce9f52786b04bc799a4d17ba9fd8499
2021-08-28 15:33:34 +08:00
fanquake
55a8a5b2df
Merge bitcoin/bitcoin#22810: [0.21] qt: Pre-0.21.2rc2 translations update
2a7568999c qt: Pre-0.21.2rc2 translations update (Hennadii Stepanov)

Pull request description:

  New translations with insignificant amount of translated strings were ignored: `ach`, `cmn`, `gd`, `ig`, `sc`.

ACKs for top commit:
  fanquake:
    ACK 2a7568999c - didn't review any specific translations.

Tree-SHA512: fab299a7a3691b38f85812e9302ae3a6fda2b7bd95a824aaf5537f1bc066417f912c042fa4366432ed091244f051cc7d4c57161d8da1e4bd6261a85570f8f12e
2021-08-28 14:44:02 +08:00
Rafael Sadowski
d9b18c1290
Fix build with Boost 1.77.0
BOOST_FILESYSTEM_C_STR changed to accept the path as an argument

Github-Pull: bitcoin/bitcoin#22713
Rebased-From: acb7aad27e
2021-08-27 09:54:05 +03:00
Hennadii Stepanov
2d7f2606c1
ci: Run fuzzer task for the master branch only
Github-Pull: bitcoin/bitcoin#22730
Rebased-From: 5a9e255e5a
2021-08-27 09:54:04 +03:00
Hennadii Stepanov
2a7568999c
qt: Pre-0.21.2rc2 translations update 2021-08-27 00:29:27 +03:00
W. J. van der Laan
3118a5eedf
Merge bitcoin/bitcoin#22721: doc: add inital PR and author list to 0.21.2 release notes
2873e01c6a doc: add inital PR and author list to 0.21.2 release notes (fanquake)

Pull request description:

  Any further updates / version number adjustments can be done prior to final.

ACKs for top commit:
  laanwj:
    ACK 2873e01c6a

Tree-SHA512: 57135f64ccfc41ec63aa265eb25978a2afd68b6b8719e79358c52ec7d2dc0cee04b81f720b827263c381529f457667b0b1a8f7d835118dc56bf2a6aa9d321859
2021-08-17 15:42:43 +02:00
fanquake
2873e01c6a
doc: add inital PR and author list to 0.21.2 release notes
Any further updates / version number adjustments can be done prior to
final.
2021-08-17 13:57:17 +08:00
W. J. van der Laan
89d148c8c6
qt: Translations update for 0.21.2rc1
Tree-SHA512: f0a74deb84711645ba112b364fbe958db51992f28d0ec87262dd0a21f1052a270f5fc8c13dfd6dc6f5a8a5580e7f1991b3de2d44e3a44252cd3c315dfc2e00ba
2021-08-11 13:23:05 +02:00
W. J. van der Laan
e94e433762
doc: Update manual pages for 0.21.2
Tree-SHA512: 26870ec4b8423879ccdbe0d74670985bf73f4814d32ff5d2c312acdd766e93e07e6a69bfb58b0288be8ba402d283ce493684420b254f8535936cb061ee11c0d2
2021-08-11 13:20:35 +02:00
W. J. van der Laan
bf672ce25a
build: Bump version to 0.21.2rc1
Tree-SHA512: 73d4df24ad516ca54ab23bcbd686223447a208904bb18a7a34400daab6d4b07322a7f244504547c772ede08b9e8606291df9d101236d8fd6debcb43563d069ac
2021-08-11 12:08:43 +02:00
MarcoFalke
4b523c8f0a
Merge bitcoin/bitcoin#22569: [0.21] Rate limit the processing of rumoured addresses
2a57108051 Avoid Appveyor compilation failure (Pieter Wuille)
a653aacbd6 Add logging and addr rate limiting statistics (Pieter Wuille)
aaa4833fc9 Functional tests for addr rate limiting (Pieter Wuille)
8df3e5bd84 Randomize the order of addr processing (Pieter Wuille)
83dfe6c65e 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 2a57108051
  GeneFerneau:
    Approach + code review ACK [2a57108](2a57108051)
  jnewbery:
    reACK 2a57108051

Tree-SHA512: ecf4891ac6173d732aa40b4d05fc0dce94127a613cb9051bf6188a2f95824f8234b17d386dd0b352ddf3d352202cc2ff07915ae35657d8e64907e3f80703d1d9
2021-08-06 19:46:04 +02:00
Pieter Wuille
2a57108051 Avoid Appveyor compilation failure 2021-08-05 09:48:25 -07:00
Pieter Wuille
a653aacbd6 Add logging and addr rate limiting statistics
Includes logging improvements by Vasil Dimov and John Newbery.

Github-Pull: #22387
Rebased-From: f424d601e1
2021-08-05 09:40:04 -07:00
Pieter Wuille
aaa4833fc9 Functional tests for addr rate limiting
Github-Pull: #22387
Rebased-From: b4ece8a1cd
2021-08-05 09:40:04 -07:00
Pieter Wuille
8df3e5bd84 Randomize the order of addr processing
Github-Pull: #22387
Rebased-From: 5648138f59
2021-08-05 09:40:04 -07:00
Pieter Wuille
83dfe6c65e 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: 0d64b8f709
2021-08-05 09:40:00 -07:00
MarcoFalke
068ac69b56
Merge bitcoin/bitcoin#22578: [0.21] Additional backports
55e941f5df test: Fix intermittent feature_taproot issue (MarcoFalke)
681f728a35 ci: Build with --enable-werror by default, and document exceptions (Hennadii Stepanov)
89426c43fb 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 55e941f5df, I verified changes by backporting locally.

Tree-SHA512: 3ab2c5c73c707d0f5b862264f3a0179cdeee30ae55aae872f3c3e0bb81d71a5027c39ba830210c99a21f98cc86c4167c4f215e24d1a8891ec79ce512debf82df
2021-07-30 09:15:14 +02:00
fanquake
52778f4245
Merge bitcoin/bitcoin#22580: [0.21] Backport: Reset scantxoutset progress before inferring descriptors
080b47d9ce rpc: reset scantxoutset progress on finish (Pavol Rusnak)

Pull request description:

  Backport of #19362.

ACKs for top commit:
  achow101:
    Code Review ACK 080b47d9ce

Tree-SHA512: 1f58965393663bfc0796fc06ef846bc87521d04d79c2a62227acf4d466de649db7d244c8992a32aa1086e6bf0ac92fb8a5aeadf4673441fefa505e40c02d5daf
2021-07-30 10:22:08 +08:00
MarcoFalke
55e941f5df
test: Fix intermittent feature_taproot issue
Github-Pull: #20535
Rebased-From: fa275e1539
2021-07-29 20:25:28 +08:00
Hennadii Stepanov
681f728a35
ci: Build with --enable-werror by default, and document exceptions
Github-Pull: #20182
Rebased-From: 2f6fe4e4e9
2021-07-29 20:25:03 +08:00
Hennadii Stepanov
89426c43fb
ci: Fix macOS brew install command
Details: https://github.com/Homebrew/discussions/discussions/691

Github-Pull: #21663
Rebased-From: b7381552cd
2021-07-29 16:52:15 +08:00
Pavol Rusnak
080b47d9ce
rpc: reset scantxoutset progress on finish
Github-Pull: #19362
Rebased-From: 8c4129b454
2021-07-29 16:02:26 +08:00
fanquake
997e528a34
Merge bitcoin/bitcoin#22427: [0.21] gui: Backports for 0.21.2
e3f1da4bf3 qt: Draw "eye" sign at the beginning of watch-only addresses (Hennadii Stepanov)
6ca54ce2ae qt: Do not extend recent transaction width to address/label string (Hennadii Stepanov)
f220368220 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 e3f1da4bf3
  jarolrod:
    ACK e3f1da4bf3

Tree-SHA512: 43cc2ac48f4e5014bfdbe86cc904bb36d2be9fcd257f0fc0800c384bd727bb98466723e450a8909b06708784ad91184be599c49cf60de2e4377202774cb878f6
2021-07-29 11:20:57 +08:00
Hennadii Stepanov
e3f1da4bf3
qt: Draw "eye" sign at the beginning of watch-only addresses
Github-Pull: bitcoin-core/gui#365
Rebased-From: cd46c11577
2021-07-11 12:03:33 +03:00
Hennadii Stepanov
6ca54ce2ae
qt: Do not extend recent transaction width to address/label string
Github-Pull: bitcoin-core/gui#365
Rebased-From: 9ea1da6fc9
2021-07-11 12:03:12 +03:00
Hennadii Stepanov
f220368220
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: 7f3a5980c1
2021-07-11 12:03:11 +03:00
fanquake
bd2f4164c6
Merge bitcoin/bitcoin#22366: [0.21] fuzz: add missing ECCVerifyHandle to base_encode_decode
da816247f0 util: Properly handle -noincludeconf on command line (MarcoFalke)
513613d8a8 Cleanup -includeconf error message (MarcoFalke)
70eac6fcd0 Fix crash when parsing command line with -noincludeconf=0 (MarcoFalke)
c5357fa415 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 da816247f0

Tree-SHA512: ab8751387e42e03ff43594ae34be8ed0dba903d7da1aaecb9f19c08366570d8995abe89ba0c9bafe37662940f3e83bef1e9e50f330e86114cd6a773becd1fd21
2021-07-08 11:52:07 +08:00
MarcoFalke
4c29b63cfb
Merge bitcoin/bitcoin#22255: [0.21] wallet: Do not iterate a directory if having an error while accessing it
7b0b201d10 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: 29c9e2c2d2

  Note: Trivial backport, but in a differently-named function in another file

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

Tree-SHA512: d41ab267250e8bfd9289cacf1fd804cc1a3bb20fc479dc9da5a69ebf26530b552b11b2ee6b11e17a1c146ca792ee65bd64eeb2269fa5e73a70361da8a2a09925
2021-07-01 08:35:53 +02:00
MarcoFalke
da816247f0
util: Properly handle -noincludeconf on command line
This bug was introduced in commit
fad0867d6a.

Unit test
Co-Authored-By: Russell Yanofsky <russ@yanofsky.org>

Github-Pull: #22137
Rebased-From: fa910b4765
2021-06-30 10:39:33 +08:00
MarcoFalke
513613d8a8
Cleanup -includeconf error message
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: fad0867d6a
2021-06-30 10:23:54 +08:00
MarcoFalke
70eac6fcd0
Fix crash when parsing command line with -noincludeconf=0
Github-Pull: #22002
Rebased-From: fa9f711c37
2021-06-30 10:23:51 +08:00
Andrew Poelstra
c5357fa415
fuzz: add missing ECCVerifyHandle to base_encode_decode
GitHub Pull: #22279
Rebased-From: 906d791311
2021-06-29 11:03:27 +08:00
MarcoFalke
926f76cb20
Merge bitcoin/bitcoin#22191: [0.21] gitian: Use custom MacOS code signing tool
0fe60a84ae Use latest signapple commit (Andrew Chow)
5313d6aed2 gitian: Remove codesign_allocate and pagestuff from MacOS build (Andrew Chow)
27d691b6b5 gitian: use signapple to create the MacOS code signature (Andrew Chow)
2f33e339a8 gitian: use signapple to apply the MacOS code signature (Andrew Chow)
65ce833042 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
2021-06-19 09:50:11 +02:00
Hennadii Stepanov
7b0b201d10 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: 29c9e2c2d2
2021-06-15 19:02:45 +00:00
Andrew Chow
0fe60a84ae
Use latest signapple commit
Update gitian and guix to use the same latest signapple commit

Github-Pull: #22190
Rebased-From: 683d197970
2021-06-08 17:04:36 -04:00
Andrew Chow
5313d6aed2
gitian: Remove codesign_allocate and pagestuff from MacOS build
Github-Pull: #20880
Rebased-From: 2c403279e2
2021-06-08 16:58:40 -04:00
Andrew Chow
27d691b6b5
gitian: use signapple to create the MacOS code signature
Github-Pull: #20880
Rebased-From: f55eed2514
2021-06-08 16:57:32 -04:00
Andrew Chow
2f33e339a8
gitian: use signapple to apply the MacOS code signature
Github-Pull: #20880
Rebased-From: 95b06d2185
2021-06-08 16:57:28 -04:00