Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Bitcoin 0.17.1 into Unit-e #860

Closed
wants to merge 2,256 commits into from
Closed

Merge Bitcoin 0.17.1 into Unit-e #860

wants to merge 2,256 commits into from

Conversation

cmihai
Copy link
Member

@cmihai cmihai commented Mar 28, 2019

Fixes #41

This PR contains the changes from the latest Bitcoin 0.17.1, adapted for Unit-e. It still needs quite some work before it can be merged with a clean conscience.

What works: It compiles, launches, the unit tests work, and some functional tests too. I've marked a few spots in the C++ code which need attention with MIHAI:.

The plan is to fix the remaining functional tests in this branch, then squash all of the fixes into the merge commit, review the code (as much as possible) for any glaring functional issues, and finally merge.

Spoiler alert: Here are some of the things that changed in Bitcoin 0.17, as compared to 0.16:

  • The wallet "safe mode" was removed.
  • Address "accounts" were removed from most places, and renamed to "labels" in the rest.
  • Wallets can now have status flags attached to them. Right now, the only one is WALLET_FLAG_DISABLE_PRIVATE_KEYS, but 0.18 adds another one for empty wallets.
  • 0.17 now supports partially-signed transactions.

sdaftuar and others added 30 commits September 17, 2018 16:15
…nsaction

0d49c82 [qa] backport: Test for duplicate inputs within a transaction (Suhas Daftuar)
833180f Fix crash bug with duplicate inputs within a transaction (Suhas Daftuar)

Pull request description:

  This is a backport of #14247.

Tree-SHA512: 4d3b6244d501a48f56a728c571dac9a346019a671434edac943f4f535ef8f94ec6bfd569a0585ad5e23a6e488ecd7e0079510cbb10a2a22f576eb36d73accb0c
…untime

A few years ago, libfreetype introduced FT_Get_Font_Format() as an alias for
FT_Get_X11_Font_Format(), but FT_Get_X11_Font_Format() was kept for abi
backwards-compatibility.

Our qt bump to 5.9 introduced a call to FT_Get_Font_Format(). Replace it with
FT_Get_X11_Font_Format() in order to remain compatibile with older freetype,
which is still used by e.g. Ubuntu Trusty.

Github-Pull: #14348
Rebased-From: 430bf6c
Tree-SHA512: fd22b824e7251a7975d9e9222eff06d2b04ebf30e13aeccab580596c042b3abe2f62da1f0ef75106b0b171368ee1062ef2f459cfa435aa54826766a9005b80df
…ore/bitcoin-devwiki

786825c doc: Update release-notes.md from upstream devwiki (fanquake)

Pull request description:

  sipa [suggested in IRC](https://botbot.me/freenode/bitcoin-core-dev/2018-09-06/?msg=104094793&page=1) that now would be a good time to merge the release notes from the [bitcoin-devwiki](https://github.com/bitcoin-core/bitcoin-devwiki).

Tree-SHA512: 6d9631e12147b4e64f5382a64cceb71b84ca21bdb3fc516248de79968f7f26e74ab5d569e3767018581bcda4d5b8c8ec103b1795929e98f7e9c4d6e95379f7de
Tree-SHA512: 0b641fdf4cf4ac6a6f9f5c1b45d65c4449b0d7bb777ba57498e389840ba7a37bfc0569ce5e70f0ac998785fc4eea600ecf6f7c7d83d86513997f4033bcc14a5d
Backport of PR 14411 to v0.17.

This change partially reverts #13075 and #14023.

Fixes #14382
f7dbcaa [doc] getblocktemplate: use SegWit in example (Sjors Provoost)

Pull request description:

  Backport of #14472

Tree-SHA512: ac0863b5f04abe2cbdbb44f376094aa6c224aecd6d3a87689a2bb5a939cb18503eab6e33bfb9814dd2129ddf1dae0118054afc8eb4c438bd390c172defab343b
Github-Pull: #14024
Rebased-From: fa3e9f7
Github-Pull: #14052
Rebased-From: fae0400
-BEGIN VERIFY SCRIPT-
sed -i --regexp-extended -e 's/(test_witness_block|test_transaction_acceptance)\((self\.nodes\[.\])\.rpc/\1(\2/g' test/functional/p2p_segwit.py
-END VERIFY SCRIPT-

Github-Pull: #14101
Rebased-From: 749ba35
-BEGIN VERIFY SCRIPT-
sed -i --regexp-extended -e "s/sync_blocks\((.*?), (True|False), (1.?), /sync_blocks(\1, success=\2, reject_code=\3, reject_reason=/g" ./test/functional/feature_block.py
-END VERIFY SCRIPT-

Github-Pull: #14101
Rebased-From: b4d3309
Github-Pull: #14101
Rebased-From: fa782a3
Github-Pull: #14020
Rebased-From: 6af6d9b
Github-Pull: #14180
Rebased-From: fac9539
Github-Pull: #13965
Rebased-From: a9cf5c9
Add some implementation details, and tweak phrasing in examples section to be
more explicit about how script expressions are used for matching.

Github-Pull: #14161
Rebased-From: eb49412
macOS Qt minimal platform is frequently broken, and these are currently failing
with Qt 5.11.1.

The tests do pass when run on the full cocoa platform
(with `test_bitcoin-qt -platform cocoa`).

Github-Pull: #14011
Rebased-From: a3197c5
Github-Pull: #14416
Rebased-From: 43719e0
Tree-SHA512: 0b5987abf34a8c62c3f704c4ca3c9837a23fbce11954740461833099157db94418886001993f9f1a0b3252c923bd049bc1e1d0f99d04205c889270755a8cd245
f9fc08c travis: Pin flake8 version to 3.5.0 (fanquake)

Pull request description:

  Pin flake8 version to 3.5.0 to fix the linters.

Tree-SHA512: 4f06d0aacbdfbbc6d090790aeea5185f2a61259381e586f4015bc0f8c0d0c8fec6156343a9587b8605bc776b39c080bd6584e6e9b685eaba3d90a58c726ac469
dc4923a build: Bump version for 0.17.0.1 (Wladimir J. van der Laan)
248e5ec doc: Update release notes for 0.17.0.1 (Wladimir J. van der Laan)

Pull request description:

  Update release notes and bump version

Tree-SHA512: b1c3f77150d89450735c2a82cb5d859b11e7463cc3370c46f847a6f7b22318114cf4d3254eb3f6b15dc7204bc43d052781f97d02ef5a76d102d5d42a762be964
scravy and others added 8 commits April 3, 2019 15:31
Signed-off-by: Julian Fleischer <julian@thirdhash.com>
…on slowly

Signed-off-by: Julian Fleischer <julian@thirdhash.com>
Signed-off-by: Julian Fleischer <julian@thirdhash.com>
Signed-off-by: Julian Fleischer <julian@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
cmihai and others added 4 commits April 4, 2019 14:23
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Remove unused code. The Windows handler is already defined as
consoleCtrlHandler. This wasn't detected before because it didn't
break compilation. With fRequestShutdown moved to shutdown.cpp it
did.

Signed-off-by: Cornelius Schumacher <cornelius@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
cmihai and others added 8 commits April 5, 2019 18:44
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Bitcoin 0.17 now allows us to unload (and re-load) wallets. This clashed
with the `CWalletExtension::ManagePendingSlashings`, which was scheduled
to run periodically every 10 seconds, and which tried to access the
wallet, even though it could be unloaded by that moment.

This commit saves a reference to the wallet during the execution of the
task, to avoid a segfault. Further, it introduces a new type of benign
exception, `task_unscheduled`, which interrupts the execution of the
current task and does not reschedule it.

Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Signed-off-by: Julian Fleischer <julian@thirdhash.com>
Signed-off-by: Julian Fleischer <julian@thirdhash.com>
Signed-off-by: Julian Fleischer <julian@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Signed-off-by: Mihai Ciumeica <mihai@thirdhash.com>
Signed-off-by: Julian Fleischer <julian@thirdhash.com>
Signed-off-by: Julian Fleischer <julian@thirdhash.com>
Signed-off-by: Julian Fleischer <julian@thirdhash.com>
@cmihai cmihai closed this Apr 9, 2019
@cmihai cmihai deleted the merge-bitcoin-0.17 branch April 11, 2019 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
upstream sync Related to upstream merges
Projects
None yet
Development

Successfully merging this pull request may close these issues.

merge with bitcoin 0.17