23560 Commits

Author SHA1 Message Date
João Barbosa
eb6b82a558
qa: Test concurrent wallet loading
Github-Pull: #19300
Rebased-From: 9b009fae6e2eb0ab2ee7ce7882c3556a9ac363a7
2020-07-03 09:58:17 +08:00
João Barbosa
c9b49d2856
wallet: Handle concurrent wallet loading
Github-Pull: #19300
Rebased-From: b9971ae5853c1d62e09d976a8705f4f731290d85
2020-07-03 09:51:24 +08:00
Andrew Chow
cf0b5a933d
tests: Check that segwit inputs in psbt have both UTXO types
Github-Pull: #19215
Rebased-From: 84d295e51341a126a6c3cbeea7a8caa04c7b5bc3
2020-07-03 09:22:21 +08:00
Andrew Chow
3228b59b17
psbt: always put a non_witness_utxo and don't remove it
Offline signers will always need a non_witness_utxo so make sure it is
there.

Github-Pull: #19215
Rebased-From: 46004790588c24174a0bec49b540d158ce163ffd
2020-07-03 09:21:42 +08:00
Andrew Chow
ed5ec30804
psbt: Allow both non_witness_utxo and witness_utxo
Github-Pull: #19215
Rebased-From: 5279d8bc07d601fe6a67ad665fbc7591fe73c7de
2020-07-03 09:18:54 +08:00
Andrew Chow
68e0e6f852
rpc: show both UTXOs in decodepsbt
Github-Pull: #19215
Rebased-From: 72f6bec1da198764d4648a10a61c485e7ab65e9e
2020-07-03 09:15:42 +08:00
Russell Yanofsky
27786d072d
trivial: Suggested cleanups to surrounding code
https://github.com/bitcoin/bitcoin/pull/18982#pullrequestreview-416974841

Github-Pull: #18982
Rebased-From: 7eaf86d3bfc83f2beb3ef449707d5156853126fb
2020-06-09 21:55:27 +08:00
Russell Yanofsky
654420d6df
wallet: Minimal fix to restore conflicted transaction notifications
This fix is a based on the fix by Antoine Riard <ariard@student.42.fr> in
https://github.com/bitcoin/bitcoin/pull/18600.

Unlike that PR, which implements some new behavior, this just restores previous
wallet notification and status behavior for transactions removed from the
mempool because they conflict with transactions in a block. The behavior was
accidentally changed in two `CWallet::BlockConnected` updates:
a31be09bfd77eed497a8e251d31358e16e2f2eb1 and
7e89994133725125dddbfa8d45484e3b9ed51c6e from
https://github.com/bitcoin/bitcoin/pull/16624, causing issue
https://github.com/bitcoin/bitcoin/issues/18325.

The change here could be improved and replaced with a more comprehensive
cleanup, so it includes a detailed comment explaining future considerations.

Fixes #18325

Co-authored-by: Antoine Riard <ariard@student.42.fr>

Github-Pull: #18982
Rebased-From: b604c5c8b5892842f13dee89ae31812a28ab25d1
2020-06-09 21:12:38 +08:00
Samuel Dobson
febebc4ea6
Fix WSL file locking by using flock instead of fcntl
Co-authored-by: sipa <pieter@wuille.net>

Github-Pull: #18700
Rebased-From: e8fa0a3d2025509fcddc59fc618e91371542cf87
2020-06-09 21:09:22 +08:00
fanquake
5c7151a604
gui: update Qt base translations for macOS release
These haven't been updated since their addition, so this updates the list that
controls which qt base translations are bundled with the macOS binary, to all the
languages that are available with qt 5.9.8.

This could probably be improved in some way, however qt updates are infrequent,
and I didn't want to spend any more time looking at this. Also given that no-one
seems to have noticed and/or reported this it wouldn't seem high-priority.

Could be backported to 0.20.1.

Github-Pull: #19059
Rebased-From: 69bfcac27a83440092bc6e61904ded910ed4baf4
2020-06-09 21:08:32 +08:00
sachinkm77
c219d21634
build: improved output of configure for build OS
Github-Pull: #19152
Rebased-From: 0fef60c63d6d2f4df8e698936221e2330ef3a244
2020-06-09 21:07:45 +08:00
MIZUTA Takeshi
0596a6eeb5
util: Don't reference errno when pthread fails.
Pthread library does not set errno.
Pthread library's errno is returned by return value.

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>

Github-Pull: #19194
Rebased-From: cb38b069b0f41b1a26264784b1c1303c8ac6ab08
2020-06-09 21:06:15 +08:00
MarcoFalke
cd32134bda
Merge #19170: [0.20] Add missing QPainterPath include
384d3f991c9bdeec6eb4685df5918877dbbe7634 Add missing QPainterPath include (Andrew Chow)

Pull request description:

  This is needed to compile with Qt 5.15.

  Github-Pull: #19097
  Rebased-From: 79b0a69e09c1a912122e6431ea3c530cc292c690

Top commit has no ACKs.

Tree-SHA512: 23c4604cddb0bf5955afa6dfb6be87989df591e5f5ca5b85257c72e916f29337012b24c9ab5374a3289700ab7518ddb48f21195a2173ea1f935d69bd2ad13b8b
2020-06-04 18:21:28 -04:00
Andrew Chow
384d3f991c Add missing QPainterPath include
This is needed to compile with Qt 5.15.

Github-Pull: #19097
Rebased-From: 79b0a69e09c1a912122e6431ea3c530cc292c690
2020-06-04 21:56:05 +00:00
MarcoFalke
e42c959c1d
Merge #19019: [0.20] Fix GBT: Restore "!segwit" and "csv" to "rules" key
412d5fe8791c417bf46fc55a5bb8d59be98a33db QA: feature_segwit: Check that template "rules" includes "!segwit" as appropriate (Luke Dashjr)
2abe8cc3b760219cfa434e4c96e9f8d3611d0037 Bugfix: Include "csv","!segwit" in "rules" (Luke Dashjr)

Pull request description:

  Original branch merges cleanly (no rebase needed)

  See also #17946

ACKs for top commit:
  jnewbery:
    utACK 412d5fe8791c417bf46fc55a5bb8d59be98a33db

Tree-SHA512: 8b269f7782c10f02dc245cc377d91f594474eade6a32184a49fa2ed3928d91917e4b83eefee6947bfb5ffff54eca2781f8cf2169c1f0ad3fefca1d4b3cf304dd
2020-06-02 17:55:19 -04:00
Wladimir J. van der Laan
a62f0ed64f
doc: Manpages update pre-final
Tree-SHA512: 00d03cb9913a7fe3fe90b12a866e88e08c79fdfdb05fcf043d77623b2d30cadd56557db1f225b428fd03d4b4bc4f24f66205d8330d025ed015d3a12dffd5222e
v0.20.0
2020-06-02 09:43:04 +02:00
Wladimir J. van der Laan
808c8d15fe
build: Set rc to 0 for -final
Tree-SHA512: 07ec7c9f9f32aeb6249a406b4d1738a7f8c988d157ecd84a4eb13f3d86b9a6c6407d4c14669cc4cad5483e9b2f393693833adc8e9fbd3cc75311257ed6894652
2020-06-02 09:39:22 +02:00
fanquake
60e8e74d10
Merge #19138: doc: Merge 0.20.0 release notes from wiki
1dfad4259558a3bc7d2d4f344321de729113a3d9 doc: Merge 0.20.0 release notes from wiki (Wladimir J. van der Laan)

Pull request description:

  Need to do this before -final.

ACKs for top commit:
  fanquake:
    ACK 1dfad4259558a3bc7d2d4f344321de729113a3d9

Tree-SHA512: 5db5a9ed8860b78941ebf0e1d966564ac0e2914fd18fc0c2f4e7a32d78306c1bb1aa2fd416e1fb01d427ff69c698a019498fc94a6e580c5d84a53c0716e675f1
2020-06-02 14:14:17 +08:00
Wladimir J. van der Laan
1dfad42595 doc: Merge 0.20.0 release notes from wiki 2020-06-02 06:48:32 +02:00
Wladimir J. van der Laan
6f7f94a276
build: Bump RC to rc2
Tree-SHA512: c1bb2b3fb772704ab0266a30011869cb326608b731b1c7feaea107e1cbd0e67f7cf500ca4be36c705d8a3e6d7fcf324c52c062164d6ba315fbf0b99eed362b76
v0.20.0rc2
2020-05-15 14:19:14 +02:00
Wladimir J. van der Laan
0793eca3a6
qt: Pre-rc2 translations update
Tree-SHA512: 50d0605712273d661f22d0ded2f8010d69fd8baa94537419d3d0ff82bf5f407e6d7bce0e8cf8ff32a2d8e40feb224124f30e22c52b0f132c3a56128335a2593a
2020-05-15 14:13:03 +02:00
MarcoFalke
17bdf2afae
Merge #18973: [0.20] Final backports for rc2
245c862cfd4883ea91b53d766abb00a9c3c1ea5c test: disable script fuzz tests (fanquake)
9a8fb4cf4ba472a5c3e1b9b71d31673f881a4896 fuzz: Remove enumeration of expected deserialization exceptions in ProcessMessage(...) fuzzer (practicalswift)
6161c94a6108ebddafe4e95c14bde4cdc3f8c01c [net processing] Only send a getheaders for one block in an INV (John Newbery)
cf2a6e2a390ad18a616d7f2718688375f2576577 test: Remove const to work around compiler error on xenial (Wladimir J. van der Laan)
cc7d34465bbb0195d8bcd9143097840a2e9765f2 miner: Avoid stack-use-after-return in validationinterface (MarcoFalke)
37a620748bd3578eda1c74daad8df8451d13b989 test: Add unregister_validation_interface_race test (MarcoFalke)
ff4dc2075031e9a49220cc27a270aeabe8954989 gui: Fix manual coin control with multiple wallets loaded (João Barbosa)
ed0afe8c1ff37926cc5bdcb0e8e4983e194e6d61 test: Add test for conflicted wallet tx notifications (Russell Yanofsky)
251e321ad7d9ddb938e8a07ddfbe90739f0bafdd rpc: Relock wallet only if most recent callback (João Barbosa)
ca4dac48c5675af3fc53db6740a0b70fef622b0a rpc: Add mutex to guard deadlineTimers (João Barbosa)
a3fe458a1e477cacd19e7e0edb8e7bb965067115 [docs] Improve commenting in ProcessGetData() (John Newbery)
011532e380bb1a42eac9e79a17b35531f768becf [test] test that an invalid GETDATA doesn't prevent processing of future messages (Amiti Uttarwar)
1e73d7248a10863dc99a93f1db36d035c17f29d7 [net processing] ignore unknown INV types in GETDATA messages (Amiti Uttarwar)
fb821731eb12906996bffdf4b3633d7fe47c85a7 [net processing] ignore tx GETDATA from blocks-only peers (Amiti Uttarwar)
315ae14f3f5c98ae4c4476e4bb260b9086c773a4 gui: Fix itemWalletAddress leak when not tree mode (João Barbosa)

Pull request description:

  Backports the following PRs to the 0.20 branch:

  * https://github.com/bitcoin/bitcoin/pull/18578: gui: Fix leak in CoinControlDialog::updateView
  * https://github.com/bitcoin/bitcoin/pull/18808: [net processing] Drop unknown types in getdata
  * https://github.com/bitcoin/bitcoin/pull/18814: rpc: Relock wallet only if most recent callback
  * https://github.com/bitcoin/bitcoin/pull/18878: test: Add test for conflicted wallet tx notifications
  * https://github.com/bitcoin/bitcoin/pull/18894: gui: Fix manual coin control with multiple wallets loaded
  * https://github.com/bitcoin/bitcoin/pull/18742: miner: Avoid stack-use-after-return in validationinterface
  * https://github.com/bitcoin/bitcoin/pull/18962: net processing: Only send a getheaders for one block in an INV
  * https://github.com/bitcoin/bitcoin/pull/18975: test: Remove const to work around compiler error on xenial

ACKs for top commit:
  promag:
    Tested ACK 245c862cfd4883ea91b53d766abb00a9c3c1ea5c coin control with multiple wallets.
  laanwj:
    ACK 245c862cfd4883ea91b53d766abb00a9c3c1ea5c
  MarcoFalke:
    ACK 245c862cfd solved the conflicts myself as a sanity check. Did not re-review 🍷

Tree-SHA512: 285e5a5fad5bbeba6032742c65dc68836e8eccfcceda9e69fec4ddd162a3f61679a96f9bbe3d434267835af67c21ac4c05accf6f63e827c2eb47203c6daafe31
2020-05-15 07:54:36 -04:00
fanquake
245c862cfd
test: disable script fuzz tests
Given that #18413 has not been backported.
2020-05-15 15:50:32 +08:00
practicalswift
9a8fb4cf4b
fuzz: Remove enumeration of expected deserialization exceptions in ProcessMessage(...) fuzzer
Github-Pull: #18757
Rebased-From: fdceb6328382ac0f9d643f9d42ba0509062d7d48
2020-05-15 12:03:50 +08:00
John Newbery
6161c94a61
[net processing] Only send a getheaders for one block in an INV
Headers-first is the primary method of announcement on the network. If a
node fell back sending blocks by inv, it's probably for a re-org. The
final block hash provided should be the highest, so send a getheaders
and then fetch the blocks we need to catch up.

Github-Pull: #18962
Rebased-From: 746736639e6d05acdb85c866d4c605c947d4c500
2020-05-15 08:10:05 +08:00
Wladimir J. van der Laan
cf2a6e2a39
test: Remove const to work around compiler error on xenial
Fix the following error in travis:

    test/validationinterface_tests.cpp:26:36: error: default initialization of an object of const type 'const BlockValidationState' without a user-provided default constructor

    const BlockValidationState state_dummy;

Github-Pull: #18975
Rebased-From: 050e2ee6f28e7b31c167013be7313726e34084e9
2020-05-15 08:08:15 +08:00
MarcoFalke
cc7d34465b
miner: Avoid stack-use-after-return in validationinterface
This is achieved by switching to a shared_ptr.

Also, switch the validationinterfaces in the tests to use shared_ptrs
for the same reason.

Github-Pull: #18742
Rebased-From: 7777f2a4bb1f9d843bc50a4e35085cfbb2808780
2020-05-15 07:42:08 +08:00
MarcoFalke
37a620748b
test: Add unregister_validation_interface_race test
This commit is (intentionally) adding a broken test. The test is broken
because it registering a subscriber object that can go out of scope
while events are still being sent.

To run the broken test and reproduce the bug:
  - Remove comment /** and */
  - ./configure --with-sanitizers=address
  - export ASAN_OPTIONS=detect_leaks=0
  - make
  - while ./src/test/test_bitcoin -t validationinterface_tests/unregister_validation_interface_race --catch_system_errors=no  ; do true; done

Github-Pull: #18742
Rebased-From: fab6d060ce5f580db538070beec1c5518c8c777c
2020-05-15 07:42:08 +08:00
João Barbosa
ff4dc20750
gui: Fix manual coin control with multiple wallets loaded
Github-Pull: #18894
Rebased-From: a8b5f1b133d4f23975a3fbfb7a415b17261466ee
2020-05-15 07:42:08 +08:00
Russell Yanofsky
ed0afe8c1f
test: Add test for conflicted wallet tx notifications
Add test coverage for conflicted wallet transaction notifications so we improve
current behavior and avoid future regressions

https://github.com/bitcoin/bitcoin/pull/9240 - accidental break
https://github.com/bitcoin/bitcoin/issues/9479 - bug report
https://github.com/bitcoin/bitcoin/pull/9371 - fix
https://github.com/bitcoin/bitcoin/pull/16624 - accidental break
https://github.com/bitcoin/bitcoin/issues/18325 - bug report
https://github.com/bitcoin/bitcoin/pull/18600 - potential fix

Github-Pull: #18878
Rebased-From: f963a680515eda66429b3d1537a7baf281ab9283
2020-05-15 07:42:08 +08:00
João Barbosa
251e321ad7
rpc: Relock wallet only if most recent callback
Github-Pull: #18814
Rebased-From: 9f59dde9740d065118bdddde75ef9f4e4603a7b1
2020-05-15 07:42:08 +08:00
João Barbosa
ca4dac48c5
rpc: Add mutex to guard deadlineTimers
Github-Pull: #18814
Rebased-From: a2e6db5c4f1bb52a8814102b628e51652493d06a
2020-05-15 07:42:07 +08:00
John Newbery
a3fe458a1e
[docs] Improve commenting in ProcessGetData()
Github-Pull: #18808
Rebased-From: 9847e205bf7edcac4c30ce4b6d62f482aa7bc1b7
2020-05-15 07:42:07 +08:00
Amiti Uttarwar
011532e380
[test] test that an invalid GETDATA doesn't prevent processing of future messages
Co-Authored-By: John Newbery <john@johnnewbery.com>

Github-Pull: #18808
Rebased-From: 2f032556e08a04807c71eb02104ca9589eaadf1b
2020-05-15 07:42:07 +08:00
Amiti Uttarwar
1e73d7248a
[net processing] ignore unknown INV types in GETDATA messages
Co-Authored-By: John Newbery <john@johnnewbery.com>

Github-Pull: #18808
Rebased-From: e257cf71c851e25e1a533bf1d4296f6b55c81332
2020-05-15 07:42:07 +08:00
Amiti Uttarwar
fb821731eb
[net processing] ignore tx GETDATA from blocks-only peers
Co-Authored-By: John Newbery <john@johnnewbery.com>

Github-Pull: #18808
Rebased-From: 047ceac142246b5d51056a51dbf4645b31802be4
2020-05-15 07:42:07 +08:00
João Barbosa
315ae14f3f
gui: Fix itemWalletAddress leak when not tree mode
Github-Pull: #18578
Rebased-From: e8123eae40eb264bbb71007d0eb074901f0e2fe5
2020-05-15 07:42:06 +08:00
MarcoFalke
aa7c6858e6
travis: Remove s390x
Github-Pull: #18905
Rebased-From: 8c705ff1291ef7876ab1a939e2c7312aacc3dc37
Tree-SHA512: b45e091f00237b96263a967a52ce35bb4782b41a9c69314b30337ca46e9b9a1ed9a9415a30ea5195625e3cc3b231f194a5e097f78cf7159f8090c1e7c826b221
2020-05-14 17:41:16 +02:00
MarcoFalke
7d87ba0e02
travis: Remove valgrind
Github-Pull: #18899
Rebased-From: fa082d0a57afedca9122fac4aecd6a3070f06b04
Tree-SHA512: 29b26d3e2cf76fa9762035c2b1444323460c5a6a8d742addd2ec143f2b028d40d5d7992623a41718e550d287f82d4c4781aa82b4cb41504e66567afad7b9215f
2020-05-14 17:39:00 +02:00
Wladimir J. van der Laan
5747c4ca1b
Merge #18945: build: Ensure source tarball has leading directory name (0.20)
59d57f6c103100b3fdef59298d57ee8cf4c0b181 build: Ensure source tarball has leading directory name (Luke Dashjr)

Pull request description:

  In the interest of moving 0.20.0 forward and being able to do rc2, extract and backport the non-controversial part from #18818.: ensure that the source tarball has leading directory name.

ACKs for top commit:
  Sjors:
    tACK 59d57f6c103100b3fdef59298d57ee8cf4c0b181
  hebasto:
    ACK 59d57f6c103100b3fdef59298d57ee8cf4c0b181.

Tree-SHA512: 6562f4cd631d2ca3c331a05d028a3c46289a7e146319b8718f96b766f952e3b831d05e249ebcc1b27f5b91a6f318a5fdd86d07b2a80ce792d4b1b032e982ed6a
2020-05-12 16:18:44 +02:00
Luke Dashjr
59d57f6c10 build: Ensure source tarball has leading directory name 2020-05-11 15:09:08 +02:00
Wladimir J. van der Laan
fb5b098598
Merge #18748: [0.20] rc2 Backports
7f7548d822549579c57685c691e737f862b29e93 rpc: Do not advertise dumptxoutset as a way to flush the chainstate (MarcoFalke)
a9ca65bd29d5da63ade1e7995ec121a581ca7b17 Fix naming of macOS SDK and clarify version (Andrew Chow)
54d2063d1a395851d9ab9031d8600b983c1523b8 Do not expose and consider -logthreadnames when it does not work (Hennadii Stepanov)
6986b26346f8d86128eb55bfa67c023afb7a236f build: fix ASLR for bitcoin-cli on Windows (fanquake)
1d1e3585fee91c5c445fb6e836a79c3ee223f7cf build: Set libevent minimum version to 2.0.21 (Hennadii Stepanov)
842b13a5f44846e21d8a0a0eafb4be7234866a26 Avoid non-trivial global constants in SHA-NI code (Pieter Wuille)
ade4185e63557aca9c60f75e4d6fa111f2c46fd4 gitian: Add missing automake package to gitian-win-signer.yml (Andrew Chow)

Pull request description:

  Currently backports the following to the 0.20 branch:

  * #18598 - gitian: Add missing automake package to gitian-win-signer.yml
  * #18702 - build: fix ASLR for bitcoin-cli on Windows
  * #18676 - build: Check libevent minimum version in configure script
  * #18665 - Do not expose and consider -logthreadnames when it does not work
  * #18553 - Avoid non-trivial global constants in SHA-NI code
  * #18589 - Fix naming of macOS SDK and clarify version

ACKs for top commit:
  laanwj:
    ACK 7f7548d822549579c57685c691e737f862b29e93

Tree-SHA512: 2cba748414a440e3fb901940085a7ae059e8b926c9187fbbbdeb7846a32e7374f318cc21e499c911ff803c42aef2c844b04af10b87f9c5a2b3edf6deb03ebb04
2020-05-11 14:58:52 +02:00
MarcoFalke
7f7548d822
rpc: Do not advertise dumptxoutset as a way to flush the chainstate
Github-Pull: #18809
Rebased-From: fac0cf6e5513df1402068df113d496b4e03a4bdc
2020-05-05 07:48:11 +08:00
Andrew Chow
a9ca65bd29
Fix naming of macOS SDK and clarify version
Github-Pull: #18589
Rebased-From: eb37275a6f972c81caef010b4ee9c5dc88edc759
2020-04-24 17:24:24 +08:00
Hennadii Stepanov
54d2063d1a
Do not expose and consider -logthreadnames when it does not work
Github-Pull: #18665
Rebased-From: b91e4ae0d8ab2ae6b77585c97c52d825f56ed539
2020-04-23 14:31:32 +08:00
fanquake
6986b26346
build: fix ASLR for bitcoin-cli on Windows
ASLR is not currently working for the bitcoin-cli.exe binary. This is
due to it not having a .reloc section, which is stripped by default by
the mingw-w64 ld we use for gitian builds. A good summary of issues with
ld and mingw-w64 is available in this thread:
https://sourceware.org/bugzilla/show_bug.cgi?id=19011.

All other Windows binaries that we distribute (bitcoind, bitcoin-qt,
bitcoin-wallet, bitcoin-tx and test_bitcoin) do not suffer this issue,
and currently having working ASLR. This is due to them exporting
(inadvertent or not) libsecp256k1 symbols, and, as a result, the .reloc
section is not stripped by ld.

This change is a temporary workaround, also the same one described here:
https://www.kb.cert.org/vuls/id/307144/, that causes main() to be
exported. Exporting a symbol will mean that the .reloc section is not
stripped, and ASLR will function correctly.

Github-Pull: #18702
Rebased-From: 315a4d36f716341a38bc4e4de8630b3246d27dbc
2020-04-23 14:30:39 +08:00
Hennadii Stepanov
1d1e3585fe
build: Set libevent minimum version to 2.0.21
Github-Pull: #18676
Rebased-From: b68e71796792a9da9daa0a4e759d284d15595230
2020-04-23 14:29:07 +08:00
Pieter Wuille
842b13a5f4
Avoid non-trivial global constants in SHA-NI code
Github-Pull: #18553
Rebased-From: 850847309458f43fc7ce6c13fa08c86e1cae042a
2020-04-23 14:24:10 +08:00
Andrew Chow
ade4185e63
gitian: Add missing automake package to gitian-win-signer.yml
automake is needed to build osslsigncode otherwise autogen.sh fails.

Github-Pull: #18598
Rebased-From: e44aeefaaed8d698d1b9004b66f85384397b1a75
2020-04-23 13:32:59 +08:00
Wladimir J. van der Laan
cd1f5bf1db
qt: Update translations pre-rc1
Tree-SHA512: 6c695a4a8adc51b72660f012f27548380d44e7b11e10cfa656ef70b0c5412981036a2694f7103821c8eb0148c50b94c69ce5271ed467ae6783a591192a76abdd
v0.20.0rc1
2020-04-10 19:44:47 +02:00