Commit graph

32962 commits

Author SHA1 Message Date
laanwj
2a1d3a48c4
build: Bump rc to 23.0rc3
Tree-SHA512: 558379b8b0e9e12a84b563d673377712950b425fd5862f68dddcecde14090e9566917e30720a82ddf8cb1132f02e21bab1ab93594f507e9ca34d039408ca15b4
2022-03-31 16:13:25 +02:00
fanquake
c243e08351
Merge bitcoin/bitcoin#24512: 23.x backports
174af33d5d util: Add inotify_rm_watch to syscall sandbox (AllowFileSystem) (Hennadii Stepanov)
ded10fe3ea build: Fix Boost.Process test for Boost 1.78 (Hennadii Stepanov)
26c2f23f36 build: Fix Boost.Process detection on macOS arm64 (Hennadii Stepanov)
85f85c7e5f util: add linkat to syscall sandbox (AllowFileSystem) (fanquake)
eaa04194b9 contrib: fix signet miner (sighash mismatch) (Sebastian Falbesoner)
235b042594 rpc: Exclude descriptor when address is excluded (MarcoFalke)
b05a59b69f ci: Temporarily use clang-13 to work around clang-14 TSan bug (MarcoFalke)
65b966743c doc, init: add links to doc/cjdns.md (Jon Atack)
7a553d4e65 doc: update i2p.md with cjdns, improve local addresses section (Jon Atack)
4148396229 doc: update tor.md with cjdns and getnodeaddresses, fix tor grep, (Jon Atack)
4690e8af13 doc: create initial doc/cjdns.md for cjdns how-to documentation (Jon Atack)
5d24f612d1 Clarify in -maxtimeadjustment that only outbound peers influence time data (Jon Atack)
b1646f1bb5 test: set segwit height back to 0 on regtest (Martin Zumsande)
ef6a37b7c4 rpc: rename getdeploymentinfo status-next to status_next (Jon Atack)
2a6fcf9c13 init, doc: improve -onlynet help and tor/i2p documentation (Jon Atack)

Pull request description:

  Backport the following to 23.x:

  - #24468
  - #24528
  - #24527
  - #24609
  - #24555
  - #24663
  - #24572
  - #24636
  - #24553
  - #24659
  - #24521
  - #24523
  - #24690
  - #24710

  Possibly also:
  - #24579
  - #24691

ACKs for top commit:
  laanwj:
    List-of-commits ACK 174af33d5d, I think we should merge this and move forward with rc3..
  hebasto:
    ACK 174af33d5d

Tree-SHA512: 5a493e1652b780b527767d6ca9e67012abd2fa5573496e85e0d8aa4bed3eb332bfcd72610b8dfb954ff274d42450623233c96c479de2085b9c8344ba5abf1935
2022-03-31 12:19:22 +01:00
Hennadii Stepanov
174af33d5d
util: Add inotify_rm_watch to syscall sandbox (AllowFileSystem)
Github-Pull: bitcoin#24690
Rebased-From: f05a4cd
2022-03-31 10:38:11 +02:00
Hennadii Stepanov
ded10fe3ea
build: Fix Boost.Process test for Boost 1.78
Github-Pull: bitcoin#24523
Rebased-From: 532c64a
2022-03-31 10:38:09 +02:00
Hennadii Stepanov
26c2f23f36
build: Fix Boost.Process detection on macOS arm64
Could be tested as follows:
```
% brew install boost@1.76
% ./autogen.sh
% ./configure --with-boost='/opt/homebrew/opt/boost@1.76'
```

Github-Pull: bitcoin#24521
Rebased-From: 1d4157a
2022-03-31 10:37:15 +02:00
fanquake
85f85c7e5f
util: add linkat to syscall sandbox (AllowFileSystem)
Github-Pull: bitcoin#24659
Rebased-From: 9809db3
2022-03-31 10:30:14 +02:00
Sebastian Falbesoner
eaa04194b9
contrib: fix signet miner (sighash mismatch)
PSBT signing was changed to use SIGHASH_DEFAULT by default in #22514.
The signet miner script sets the sighash type of the created PSBT to
SIGHASH_ALL, hence this leads to a sighash mismatch when the
`walletprocesspsbt` RPC is called. Fix this by explicitly passing the
correct sighash type.

Note that the same change was needed in one of our functional tests,
see commit d3992669df.

Reported by gruve-p.

Github-Pull: bitcoin#24553
Rebased-From: 12cc020
2022-03-31 10:30:12 +02:00
MarcoFalke
235b042594
rpc: Exclude descriptor when address is excluded
Github-Pull: bitcoin#24636
Rebased-From: faf37c2
2022-03-31 10:30:10 +02:00
MarcoFalke
b05a59b69f
ci: Temporarily use clang-13 to work around clang-14 TSan bug
Github-Pull: bitcoin#24572
Rebased-From: fa43933
2022-03-31 10:30:07 +02:00
Jon Atack
65b966743c
doc, init: add links to doc/cjdns.md
Github-Pull: bitcoin#24663
Rebased-From: daae288
2022-03-31 10:30:05 +02:00
Jon Atack
7a553d4e65
doc: update i2p.md with cjdns, improve local addresses section
Github-Pull: bitcoin#24555
Rebased-From: f44efc3
2022-03-31 10:30:02 +02:00
Jon Atack
4148396229
doc: update tor.md with cjdns and getnodeaddresses, fix tor grep,
and improve local addresses section

Github-Pull: bitcoin#24555
Rebased-From: 3bf6f0c
2022-03-31 10:29:25 +02:00
Jon Atack
4690e8af13
doc: create initial doc/cjdns.md for cjdns how-to documentation
Adapted in part from the CJDNS description in #23077 by Vasil Dimov
and from CJDNS documentation and feedback by Caleb James DeLisle.

Co-authored-by: Vasil Dimov <vd@FreeBSD.org>

Github-Pull: bitcoin#24555
Rebased-From: ed15848
2022-03-31 10:28:29 +02:00
Jon Atack
5d24f612d1
Clarify in -maxtimeadjustment that only outbound peers influence time data
Github-Pull: bitcoin#24609
Rebased-From: 1bba72d
2022-03-28 12:49:51 +02:00
MarcoFalke
7d03cf632d
Merge bitcoin/bitcoin#24596: [23.x] GUI backports
70f2c579b9 options: flip listenonion to false if not listening (Vasil Dimov)
642f2726de gui: restore Send for external signer (Sjors Provoost)
940694664d refactor: helper function signWithExternalSigner() (Sjors Provoost)
fc421d4c8c move-only: helper function to present PSBT (Sjors Provoost)

Pull request description:

  Backports from the GUI repo:
  - bitcoin-core/gui#555
  - bitcoin-core/gui#568

ACKs for top commit:
  Sjors:
    utACK 70f2c579b9
  gruve-p:
    ACK 70f2c579b9

Tree-SHA512: 883c442f8b789a9d11c949179e4382843cbb979a89a625bef3f481c7070421681d9db2af0e5b2449abca362c8ba05cf61db5893aeb6a9237b02088c2fb71e93e
2022-03-24 08:12:11 +01:00
Vasil Dimov
70f2c579b9
options: flip listenonion to false if not listening
If the user has unchecked "Allow incoming connections" in
`Settings->Options...->Network` then `fListen=false` is saved in
`~/.config/Bitcoin/Bitcoin-Qt.conf`. This flips `-listen` to `false`
during startup, but leaves `-listenonion` to `true`.

This flipping of `-listen` is done in `OptionsModel::Init()` after
`InitParameterInteraction()` has been executed which would have flipped
`-listenonion`, should it have seen `-listen` being `false`
(this is a difference between `bitcoind` and `bitcoin-qt`).

Fixes: https://github.com/bitcoin-core/gui/issues/567

Github-Pull: bitcoin-core/gui#568
Rebased-From: 7f90dc26c8
2022-03-23 17:26:19 +01:00
laanwj
55a60b9718
Merge bitcoin/bitcoin#24593: [23.x] macOS / build backports
61c021605f doc, guix: Include arm64-apple-darwin into codesigned archs (Hennadii Stepanov)
f541a252f6 doc: Drop a note about Intel-based Macs (Hennadii Stepanov)
dd2c7f71fd guix: Use "win64" for Windows artifacts consistently (Hennadii Stepanov)
2e7cde8f68 guix: Drop "-signed" suffix for signed macOS .dmg files (Hennadii Stepanov)
7f6420c833 guix: Use $HOST instead of generic osx{64} for macOS artifacts (Hennadii Stepanov)
de528793b6 Update signapple for platform identifier fix (Andrew Chow)

Pull request description:

  Backports:
  * #24549
  * #24573
  * #24588
  * #24597

ACKs for top commit:
  laanwj:
    Code review ACK 61c021605f

Tree-SHA512: 023bfe6f1a31cec66f0255fb8e9c186f44a50a900a9f22c65b2da672b413fec7570f0f11626317344b6f91e74610006ffe0e35243af510de1eb8a3ceb8e8d37f
2022-03-17 09:47:42 +01:00
Hennadii Stepanov
61c021605f
doc, guix: Include arm64-apple-darwin into codesigned archs
Github-Pull: #24597
Rebased-From: 1f4801b6b1
2022-03-17 08:38:58 +00:00
Sjors Provoost
642f2726de
gui: restore Send for external signer
Before this change the send confirmation dialog would keep the Send option disabled. The Create Unsigned choice would actually send. This is potentially confusing.

With this change the Create Unsigned button will not attempt to sign and always produce a PSBT. The Send button will attempt to sign, and only return a PSBT if more signatures are needed.

When using an external signer, the Create Unsigned option only appears when PSBT controls are enabled in the wallet settings.

This commit maintains the pre-existing behavior of filling the PSBT (without signing) even when not using an external signer.

Closes #551

Co-authored-by: Jon Atack <jon@atack.com>

Github-Pull: bitcoin-core/gui#555
Rebased-From: 2efdfb88aa
2022-03-17 07:28:50 +01:00
Sjors Provoost
940694664d
refactor: helper function signWithExternalSigner()
Does not change behavior.

Review hint:
git show --color-moved --color-moved-ws=allow-indentation-change

Github-Pull: bitcoin-core/gui#555
Rebased-From: 4b5a6cd149
2022-03-17 07:28:50 +01:00
Sjors Provoost
fc421d4c8c
move-only: helper function to present PSBT
This commit does not change behavior.

Review hint:
git show --color-moved --color-moved-ws=allow-indentation-change

Github-Pull: bitcoin-core/gui#555
Rebased-From: 026b5b4523
2022-03-17 07:28:50 +01:00
Hennadii Stepanov
f541a252f6
doc: Drop a note about Intel-based Macs
Github-Pull: #24588
Rebased-From: e359ba6b35
2022-03-16 20:51:32 +00:00
Hennadii Stepanov
dd2c7f71fd
guix: Use "win64" for Windows artifacts consistently
Github-Pull: #24549
Rebased-From: 53dd6165b8
2022-03-16 20:50:30 +00:00
Hennadii Stepanov
2e7cde8f68
guix: Drop "-signed" suffix for signed macOS .dmg files
This change makes naming of the signed artifacts consistent across
different OSes, including Windows.

Github-Pull: #24549
Rebased-From: 4b4b04a66d
2022-03-16 20:49:47 +00:00
Hennadii Stepanov
7f6420c833
guix: Use $HOST instead of generic osx{64} for macOS artifacts
Github-Pull: #24549
Rebased-From: 933a43018f
2022-03-16 20:49:19 +00:00
Andrew Chow
de528793b6
Update signapple for platform identifier fix
Github-Pull: #24573
Rebased-From: 3c74f775ac
2022-03-16 20:47:58 +00:00
Martin Zumsande
b1646f1bb5
test: set segwit height back to 0 on regtest
This was changed in #22818 from 0 to 1. Since it changes
BLOCK_OPT_WIT of the genesis block, older versions of bitcoin
core would not read regtest directories created with newer versions
without a reindex.

Github-Pull: bitcoin#24527
Rebased-From: 5ce3057
2022-03-13 17:43:36 +01:00
Jon Atack
ef6a37b7c4
rpc: rename getdeploymentinfo status-next to status_next
Github-Pull: bitcoin#24528
Rebased-From: 5d7c69b
2022-03-13 17:41:05 +01:00
Jon Atack
2a6fcf9c13
init, doc: improve -onlynet help and tor/i2p documentation
and harmonize them as follows

- s/outgoing/automatic outbound/
- s/Incoming/Inbound and manual/ (are not affected by this option.)
- s/only through network/only to network/
- s/this option. This option/this option. It/
- s/network types/networks/

and also pick up a few nits in doc/p2p-bad-ports.md

Github-Pull: bitcoin#24468
Rebased-From: a1db99a
2022-03-13 17:35:56 +01:00
laanwj
71866d8566
doc: Update manual pages for rc2
Tree-SHA512: c0ded71cf1dc0b0727f7b87ad353b149fd0c53fdcccf6c058bbcaf3d4bdbf70290b3296f3a93af6f442cbcb1a007f4f8784941fdfd930e389dc5a229c6ee632a
2022-03-10 11:55:00 +01:00
laanwj
60ca24a506
build: Bump to 23.0rc2
Tree-SHA512: 6432a93c0f7cca96e548b1a12958b5812621b74c05de581b94fe6a2b2f5958c42bdbc6c1bbe0ab34829d3942784fc811d270fb95b6f64b8228d4b3ec4ccc163f
2022-03-10 11:51:12 +01:00
fanquake
2bd5fdbced
Merge bitcoin/bitcoin#24514: [23.x] Second round signapple backports (M1)
1fd91da454 build, mac: Include arch in codesignature tarball (Andrew Chow)
eba46583ed guix: use latest signapple (Andrew Chow)

Pull request description:

  This backports additional signapple and macOS codesigning changes from #24506 for 23.x (skipping #24503, which is an interim signapple update, and the certvalidator change, which is not strictly necessary), and should complete the changes required to perform M1 codesigning for the 23.x release.

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

Tree-SHA512: 55b7e0680058203744dc491da060ef56a880270a01c10e475b7a171457902410806895dbe7332a323ce47c2a776337fa29eb811d2511fce84ede13aeacbe2a02
2022-03-10 09:46:49 +00:00
fanquake
430808ab13
Merge bitcoin/bitcoin#24511: [23.x] qt: Avoid crash on startup if int specified in settings.json
7e1b968f61 qt: Avoid crash on startup if int specified in settings.json (Ryan Ofsky)
4607f700d0 test: Add tests for GetArg methods / settings.json type coercion (Ryan Ofsky)

Pull request description:

  Backport of #24498

ACKs for top commit:
  jonatack:
    ACK 7e1b968f61

Tree-SHA512: efe6ec4361858e50fd524db64141ad3622ecef321b99567da9650575558a9a9bdec0fc43113967cae2f23a1375132eed2d6ebf64d4aa91ac1c5f2f591a26ba74
2022-03-10 09:44:50 +00:00
Andrew Chow
1fd91da454
build, mac: Include arch in codesignature tarball
Github-Pull: #24506
Rebased-From: 0189df1d31
2022-03-09 18:06:18 +00:00
Andrew Chow
eba46583ed
guix: use latest signapple
Github-Pull: #24506
Rebased-From: 6e9308c6d4
2022-03-09 18:06:14 +00:00
Ryan Ofsky
7e1b968f61
qt: Avoid crash on startup if int specified in settings.json
Fix GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 that happens if
settings.json contains an integer value for any of the configuration
options which GUI settings can currently clash with (-dbcache, -par,
-spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy,
-proxy, -onion, -onion, -lang, and -prune).

Fix is a one-line change in ArgsManager::GetArg.

Github-Pull: bitcoin/bitcoin#24498
Rebased-From: 5b1aae12ca
2022-03-09 11:03:05 -05:00
Ryan Ofsky
4607f700d0
test: Add tests for GetArg methods / settings.json type coercion
Just add tests. No changes to application behavior. Tests will be
updated in the next commit changing & improving current behavior.

Include a Qt test for GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 caused by GetArg
behavior that happens if settings.json contains an integer value for any
of the configuration options which GUI settings can currently clash with
(-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen,
-server, -proxy, -proxy, -onion, -onion, -lang, and -prune).

Github-Pull: bitcoin/bitcoin#24498
Rebased-From: 84b0973e35
2022-03-09 11:03:00 -05:00
fanquake
cbdfb46b55
Merge bitcoin/bitcoin#24485: [23.x] guix: use same commit for codesigning time-machine
0dcbd2ee93 guix: use same commit for codesigning time-machine (fanquake)

Pull request description:

  The time machines should be updated in lockstep. Backports #24484.

  Github-Pull: #24484
  Rebased-From: 29862bdd40

ACKs for top commit:
  hebasto:
    ACK 0dcbd2ee93

Tree-SHA512: 831f2d1a0bd92bc6acbe20b0c2e2557f9cc8056034c6975ec6be2cae2eafe584d618b83519623caa81adc434121174e4c56a2df3cc8912352146ac610901bd0f
2022-03-07 09:37:20 +00:00
fanquake
0dcbd2ee93
guix: use same commit for codesigning time-machine
The time machines should be updated in lockstep.

Github-Pull: #24484
Rebased-From: 29862bdd40
2022-03-06 18:55:44 +00:00
laanwj
440fbe6dba
qt: Pull translations for 0.23rc1
Tree-SHA512: 8366ebbb3603f3f021285f62df75996883458273b24db4e84ff56a3cb56b54cef474f640ea1f48ebc29dbde0593bd78256b9830555a288ba7e4a0a88e07f729e
2022-03-03 19:38:39 +01:00
laanwj
5d2b11c7c9
doc: Generate manual pages for 23.0rc1
Tree-SHA512: f0d7b08a621194176f49faad17fcdb144ca4c2d67ea9c2b51855c3adc506461020b091acd710acdfbcfe4b515d01929538a1ae64dc40a6edb6f069ef29a6d90d
2022-03-03 19:33:35 +01:00
laanwj
0970d151d7
build: Bump version to 23.0rc1
Tree-SHA512: f60e9a8379e299fb54ceb4ba2604913532fa69f882d4cb88577102e259c09318e7edec856bfa8959df5c16584f2d78ed29e0c54a80ad82e60846fac6d432620a
2022-03-03 18:57:13 +01:00
laanwj
30308cc380
Merge bitcoin/bitcoin#20196: net: fix GetListenPort() to derive the proper port
7d64ea4a01 net: only assume all local addresses if listening on any (Vasil Dimov)
0cfc0cd322 net: fix GetListenPort() to derive the proper port (Vasil Dimov)
f98cdcb357 net: pass Span by value to CaptureMessage() (Vasil Dimov)
3cb9d9c861 net: make CaptureMessage() mockable (Vasil Dimov)
43868ba416 timedata: rename variables to match the coding style (Vasil Dimov)
60da1eaa11 timedata: make it possible to reset the state (Vasil Dimov)

Pull request description:

  `GetListenPort()` uses a simple logic: "if `-port=P` is given, then we
  must be listening on `P`, otherwise we must be listening on `8333`".
  This is however not true if `-bind=` has been provided with `:port` part
  or if `-whitebind=` has been provided. Thus, extend `GetListenPort()` to
  return the port from `-bind=` or `-whitebind=`, if any.

  Also, if `-bind=` is provided then we would bind only to a particular address
  and should not add all the other addresses of the machine to the list of
  local addresses.

  Fixes https://github.com/bitcoin/bitcoin/issues/20184

ACKs for top commit:
  sipa:
    utACK 7d64ea4a01. I didn't review the tests in detail.
  jonatack:
    re-ACK 7d64ea4a01 per `git range-diff 08bcfa27 35ec977 7d64ea4`, changes are rebase-only, light re-review, re-ran the new tests locally

Tree-SHA512: 45135ab9c0ec3cc8c83e3b3e58a1c1f77eaeaba00618d54f1010db1d23d6db7d9c0dc7807e72ebc34e8b2d0e91f1e0d0e9239d13b90f1bdce8be84459e7837f0
2022-03-03 13:49:01 +01:00
Vasil Dimov
7d64ea4a01
net: only assume all local addresses if listening on any
If `-bind=` is provided then we would bind only to a particular address
and should not add all the other addresses of the machine to the list of
local addresses.

Fixes https://github.com/bitcoin/bitcoin/issues/20184 (case 4.)
2022-03-02 15:42:40 +01:00
Vasil Dimov
0cfc0cd322
net: fix GetListenPort() to derive the proper port
`GetListenPort()` uses a simple logic: "if `-port=P` is given, then we
must be listening on `P`, otherwise we must be listening on `8333`".
This is however not true if `-bind=` has been provided with `:port` part
or if `-whitebind=` has been provided. Thus, extend `GetListenPort()` to
return the port from `-bind=` or `-whitebind=`, if any.

Fixes https://github.com/bitcoin/bitcoin/issues/20184 (cases 1. 2. 3. 5.)
2022-03-02 15:42:37 +01:00
Vasil Dimov
f98cdcb357
net: pass Span by value to CaptureMessage()
Span is lightweight and need not be passed by const reference.
2022-03-02 15:40:36 +01:00
Vasil Dimov
3cb9d9c861
net: make CaptureMessage() mockable
Rename `CaptureMessage()` to `CaptureMessageToFile()` and introduce a
`std::function` variable called `CaptureMessage` whose value can be
changed by unit tests, should they need to inspect message contents.
2022-03-02 15:40:36 +01:00
Vasil Dimov
43868ba416
timedata: rename variables to match the coding style
Rename the local variables in `src/timedata.cpp`:
`setKnown` -> `g_sources`
`vTimeOffsets` -> `g_time_offsets`
`fDone` -> `g_warning_emitted`
2022-03-02 15:40:35 +01:00
Vasil Dimov
60da1eaa11
timedata: make it possible to reset the state
Add a new function `TestOnlyResetTimeData()` which would reset the
internal state used by `GetTimeOffset()`, `GetAdjustedTime()` and
`AddTimeData()`.

This is needed so that unit tests that call `AddTimeData()` can restore
the state in order not to confuse other tests that rely on it.

Currently `timedata_tests/addtimedata` is the only test that modifies
the state (via `AddTimeData()`) and also the only test that relies on
that state.
2022-03-02 15:40:30 +01:00
MarcoFalke
08bcfa2767
Merge bitcoin/bitcoin#24375: Do not use LocalTestingSetup in getarg_tests test file.
5d7f22595f Do not use `LocalTestingSetup` in getarg_tests test file. (Kiminuo)

Pull request description:

  Avoid using a test fixture in getarg_tests for better readability. Change was implemented by _kiminuo_ and posted https://github.com/bitcoin/bitcoin/pull/24306#issuecomment-1036643216

ACKs for top commit:
  kiminuo:
    ACK 5d7f22595f

Tree-SHA512: 0fd98622010e6923e91c66447a1d0861bf344a65d86a313dff7d428c089b1740a25f699327f6ed4c163255f270bcbd4f7be962bb551862214f9b9e395d40df04
2022-03-02 12:09:27 +01:00