This removes BIP70 support. It also removes OpenSSL linking from Qt and building OpenSSLs lib_ssl in depends, as well as SSL lib detection from the build system. It's something that I'd optimistically like to do for 0.20.0.
Remove BIP70 support #17165
pull fanquake wants to merge 11 commits into bitcoin:master from fanquake:remove_bip70 changing 48 files +38 −2114-
fanquake commented at 8:15 PM on October 16, 2019: member
- fanquake added the label GUI on Oct 16, 2019
- fanquake added the label Build system on Oct 16, 2019
- fanquake added the label Needs gitian build on Oct 16, 2019
- fanquake added the label Needs Conceptual Review on Oct 16, 2019
-
emilengler commented at 8:26 PM on October 16, 2019: contributor
Not tested yet but a
grep -rnI bip70only finds matches in release notes so it looks good to me -
MarcoFalke commented at 9:24 PM on October 16, 2019: member
Concept ACK

-
MarcoFalke commented at 9:29 PM on October 16, 2019: member
Can the ssl libs be removed from the msvc build in
build_msvc/README.mdas well? -
fanquake commented at 12:55 AM on October 17, 2019: member
Can the ssl libs be removed from the msvc build in build_msvc/README.md as well? @sipsorcery Any chance you can take a look here, and put together some changes I can cherry-pick in?
-
laanwj commented at 8:25 AM on October 17, 2019: member
Concept ACK
Looks like there are still some extra SSL related symbols sneaking into the binaries for the Windows and Linux builds
That's strange! How is this possible if it doesn't link to OpenSSL? Can you list which ones?
-
practicalswift commented at 11:23 AM on October 17, 2019: contributor
Concept ACK
+22 −2,079- very nice to see! :) -
hebasto commented at 1:33 PM on October 17, 2019: member
Concept ACK
-
fanquake commented at 1:55 PM on October 17, 2019: member
That's strange! How is this possible if it doesn't link to OpenSSL? Can you list which ones? @laanwj The following gists contain the output of
nm -C src/qt/bitcoin-qt | grep -i sslafter doing a depends build with this PR. I have cleaned up the output somewhat (check the revision for the symbols I've trimmed). A bunch of these will also disappear once we remove thenetworkmodule from the Qt build. -
MarcoFalke commented at 2:53 PM on October 17, 2019: member
(needs rebase for the macOS bip70 run in
./ci/) - fanquake force-pushed on Oct 17, 2019
- fanquake removed the label Needs Conceptual Review on Oct 17, 2019
- fanquake added this to the milestone 0.20.0 on Oct 17, 2019
-
MarcoFalke commented at 5:13 PM on October 17, 2019: member
The following gists contain the output of nm -C src/qt/bitcoin-qt | grep -i ssl after doing a depends build with this PR
None of those symbols are in
bitcoind, right? -
DrahtBot commented at 6:52 PM on October 17, 2019: member
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--174a7506f384e20aa4161008e828411d-->
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #17078 (Android depends by BlockMechanic)
- #16883 (WIP: Qt: add QML based mobile GUI by icota)
- #16839 (Replace Connman and BanMan globals with Node local by ryanofsky)
- #16834 (Fetch Headers over DNS by TheBlueMatt)
- #16762 (Rust-based Backup over-REST block downloader by TheBlueMatt)
- #16738 (gui: Remove needless GCC diagnostic pragmas by hebasto)
- #16710 (build: Enable -Wsuggest-override if available by hebasto)
- #16367 (Multiprocess build support by ryanofsky)
- #15768 (gui: Add close window shortcut by IPGlider)
- #14066 (gitian-linux: Build binaries for 64-bit POWER by luke-jr)
- #10785 (Serialization improvements by sipa)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
-
laanwj commented at 9:43 AM on October 18, 2019: member
@laanwj The following gists contain the output of nm -C src/qt/bitcoin-qt | grep -i ssl after doing a depends build with this PR.
Huh. I'm really confused. Can we be sure that Qt isn't doing an internal build of OpenSSL? (e.g. like the fallback it has for image format parsers)
Or is it gasp linking to the system OpenSSL?
A bunch of these will also disappear once we remove the network module from the Qt build.
Yeah. I guess we don't need Qt networking at all right now. Though maybe in the future, when the GUI is separate and communicates with a backend?
- DrahtBot removed the label Needs gitian build on Oct 18, 2019
-
fanquake commented at 5:42 PM on October 18, 2019: member
None of those symbols are in bitcoind, right?
Some of them are, because we still using OpenSSL crypto in
bitcoind.Huh. I'm really confused. Can we be sure that Qt isn't doing an internal build of OpenSSL? (e.g. like the fallback it has for image format parsers)
I don't think it is. I'm also working on slimming down our
OpenSSLbuild in a branch on top of these changes. Which should make it a lot clearer what is being built and included. - fanquake force-pushed on Oct 18, 2019
-
in configure.ac:229 in 87a81ddc31 outdated
225 | @@ -226,13 +226,6 @@ AC_ARG_ENABLE([zmq], 226 | [disable ZMQ notifications])], 227 | [use_zmq=$enableval], 228 | [use_zmq=yes]) 229 | -AC_ARG_ENABLE([bip70],
theuni commented at 6:11 PM on October 18, 2019:I think we probably want to leave this here, but turn
--enable-bip70into an error. That way it's obvious to those who are currently manually overriding.
fanquake commented at 4:09 PM on October 19, 2019:Have reverted this removal, and now throw an error for
--enable-bip70.in src/qt/optionsmodel.cpp:486 in 87a81ddc31 outdated
482 | @@ -483,24 +483,6 @@ void OptionsModel::setDisplayUnit(const QVariant &value) 483 | } 484 | } 485 | 486 | -bool OptionsModel::getProxySettings(QNetworkProxy& proxy) const
theuni commented at 6:17 PM on October 18, 2019:I guess the paymentprotocol was the only user of QNetwork* ?
in src/qt/paymentserver.h:53 in 87a81ddc31 outdated
50 | QT_END_NAMESPACE 51 | 52 | -// BIP70 max payment request size in bytes (DoS protection) 53 | -static const qint64 BIP70_MAX_PAYMENTREQUEST_SIZE = 50000; 54 | - 55 | class PaymentServer : public QObject
theuni commented at 6:21 PM on October 18, 2019:I imagine the necessary scraps can probably move out of here and we can nuke PaymentServer?
fanquake commented at 2:30 PM on October 21, 2019:Yes, that, and removing the network module from the Qt build can all be done as followups.
in src/qt/sendcoinsentry.cpp:5 in 87a81ddc31 outdated
1 | @@ -2,10 +2,6 @@ 2 | // Distributed under the MIT software license, see the accompanying 3 | // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 | 5 | -#if defined(HAVE_CONFIG_H)
theuni commented at 6:22 PM on October 18, 2019:Please leave this in case someone uses another define down the road.
in src/qt/transactiondesc.cpp:5 in 87a81ddc31 outdated
1 | @@ -2,10 +2,6 @@ 2 | // Distributed under the MIT software license, see the accompanying 3 | // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 | 5 | -#ifdef HAVE_CONFIG_H
theuni commented at 6:23 PM on October 18, 2019:Same, please leave these.
theuni commented at 6:29 PM on October 18, 2019: memberConcept ACK. Only reviewed very briefly.
fanquake force-pushed on Oct 19, 2019fanquake commented at 4:09 PM on October 19, 2019: memberRebased on master and #17191. Reverted the
HAVE_CONFIG_Hdeletions and swapped to throwing an error on--enable-bip70rather than dropping the check entirely as suggested by theuni.Also re-ordered the commits so the removal steps are a bit more logical and added another change so that we are now only building OpenSSLs
lib_crypto(no longer buildinglib_ssl).fanquake force-pushed on Oct 19, 2019fanquake force-pushed on Oct 21, 2019fanquake renamed this:[WIP] Remove BIP70 support
Remove BIP70 support
on Oct 21, 2019fanquake marked this as ready for review on Oct 21, 2019fanquake force-pushed on Oct 21, 2019laanwj added the label Needs gitian build on Oct 22, 2019laanwj commented at 11:33 AM on October 22, 2019: memberCode review ACK 609042a6bbd6a4526cd9713a221f827035db9935Code review ACK 8c6081a884cd0969160955ce8687d4d4ed074db3MarcoFalke deleted a comment on Oct 22, 2019DrahtBot commented at 6:14 AM on October 23, 2019: member<!--a722867cd34abeea1fadc8d60700f111-->
Gitian builds for commit a22b62481aae95747830bd3c0db3227860b12d8e (master):
504b30745cfcaa639fa31adb227d5295...bitcoin-0.19.99-aarch64-linux-gnu-debug.tar.gz7240079a85bb6f811dd03a562cb5cec0...bitcoin-0.19.99-aarch64-linux-gnu.tar.gz7ab54dd61264a27b97c63f00e8824227...bitcoin-0.19.99-arm-linux-gnueabihf-debug.tar.gzf0b9cc0ac4154af510a7850043916c43...bitcoin-0.19.99-arm-linux-gnueabihf.tar.gz07c609eec4daef18deab8f5792a92a28...bitcoin-0.19.99-i686-pc-linux-gnu-debug.tar.gz59e534df6418f834e27a1d8466c1f3b7...bitcoin-0.19.99-i686-pc-linux-gnu.tar.gz0fce9ce999ee0d36675198ed6a167a57...bitcoin-0.19.99-osx-unsigned.dmgccf49d4b45f5f5f454985dbf86442ce8...bitcoin-0.19.99-osx64.tar.gz4dfb939f00b19f9f51888bd3487c513f...bitcoin-0.19.99-riscv64-linux-gnu-debug.tar.gz0423de4e9fbfef2c480fd96b24d0e1d9...bitcoin-0.19.99-riscv64-linux-gnu.tar.gze02b25cb7d7b5821cd1a551374b0d08e...bitcoin-0.19.99-win64-debug.zipc641e3b2be613a67d81373a04bcc82e4...bitcoin-0.19.99-win64-setup-unsigned.exe87f5a9bfa8033378d693b4601e1cab06...bitcoin-0.19.99-win64.zip05ed69dc49af3e829d2cae1c3d38559a...bitcoin-0.19.99-x86_64-linux-gnu-debug.tar.gzf3d3fd9ab39d0838fc979479a0f9e9f1...bitcoin-0.19.99-x86_64-linux-gnu.tar.gz3462df0e2054965ac2079fea2ce8f8b7...bitcoin-0.19.99.tar.gz1a678dea5e782769ecc10087fc82bbf0...bitcoin-core-linux-0.20-res.yml58a813e8b9e2c8dfa7e707a4b014ba50...bitcoin-core-osx-0.20-res.yml84c78b74a1d8d581303d4baeb0f82017...bitcoin-core-win-0.20-res.yml9a2e8a0f61b627d1c0161a1eb41c5e9d...linux-build.log07e746700e4809b9f977600a49bee0be...osx-build.logd779bab7117f8e7fe5a63bd20c5396ad...win-build.log
Gitian builds for commit 75a3c6727ff2dcc6bf542030fa9b0ee94233e605 (master and this pull):
c98c2760a79d5adc7da6958ce50e503e...bitcoin-0.19.99-aarch64-linux-gnu-debug.tar.gz8c2ce7e6657eab20266b057d211c7b74...bitcoin-0.19.99-aarch64-linux-gnu.tar.gze6233f0d62c02cd6c5cf9f62d16b21ba...bitcoin-0.19.99-arm-linux-gnueabihf-debug.tar.gzcbef4827001c138381fcdd4db4bb9a6c...bitcoin-0.19.99-arm-linux-gnueabihf.tar.gz91b6c840fa8a465cabe5539e9ead6c88...bitcoin-0.19.99-i686-pc-linux-gnu-debug.tar.gzba525b6d9c4141f7c0c91a60eccdca7e...bitcoin-0.19.99-i686-pc-linux-gnu.tar.gzb5380be1916945ed36c78cb671159081...bitcoin-0.19.99-osx-unsigned.dmgc5c15e0b240656f499e29a38841c7044...bitcoin-0.19.99-osx64.tar.gz5f55435a7c27c385f46f789207cadb60...bitcoin-0.19.99-riscv64-linux-gnu-debug.tar.gzca1c18103fb0877da496026fcd13da87...bitcoin-0.19.99-riscv64-linux-gnu.tar.gz0330e427fff6092dc4057a9361ab849a...bitcoin-0.19.99-win64-debug.zipbb2bf8342a4c09bcaec86d4f3c14cee2...bitcoin-0.19.99-win64-setup-unsigned.exe3223878569dac1b029b04d4eeccec7d6...bitcoin-0.19.99-win64.zip6a5ba6a9c2b21196be0183ef23b72076...bitcoin-0.19.99-x86_64-linux-gnu-debug.tar.gz3a01566e7d3a56f157bace42b58149f9...bitcoin-0.19.99-x86_64-linux-gnu.tar.gz359b790ad2b4badbf90384d3c21b96ab...bitcoin-0.19.99.tar.gz4f04d1373169e03fd19369e3cc2893f8...bitcoin-core-linux-0.20-res.yml9391cff9539d3b5c1cd5f365a96f399b...bitcoin-core-linux-0.20-res.yml.diff2464863774d1f29e98bcf57cc09763cd...bitcoin-core-osx-0.20-res.yml2ff044442ec9d7a1d6bbc782062befd3...bitcoin-core-osx-0.20-res.yml.diffb5c5061c71617b667512d504ee24c178...bitcoin-core-win-0.20-res.yml5a78179b93f76aa91368280051f310ae...bitcoin-core-win-0.20-res.yml.diffe4577617e3fa77dca31e274d1b6e14c6...linux-build.log45a9ab8ff0a1ebf3f92fdcc45890fb7d...linux-build.log.diff1cedcc592a830625201b4fa282cbd123...osx-build.logd5f2c555195d9bb6edf1d6a4421e9851...osx-build.log.diff58e6e553690ade4f14fd61890f4a65fe...win-build.log0ee24d4b187a90d9116bc3f2fd8bfb5e...win-build.log.diff
DrahtBot removed the label Needs gitian build on Oct 23, 2019laanwj commented at 8:38 AM on October 23, 2019: memberGood, this time the OSX binaries are included in the gitian build.
laanwj added this to the "Blockers" column in a project
jtimon commented at 7:23 PM on October 24, 2019: contributorOh, wow, I hadn't seen this. Yes, please. Concept ACK
DrahtBot commented at 8:00 PM on October 24, 2019: member<!--cf906140f33d8803c4a75a2196329ecb-->Needs rebase
DrahtBot added the label Needs rebase on Oct 24, 2019build: remove protobuf from depends 67328bb7cadocs: remove protobuf from docs 1cb9a4e28cRemove BIP70 Support 3548e4aac7gui: remove payment request file handling from OpenURI dialog 72fe13a58dbuild: remove BIP70 entries from macOS Info.plist a3e810326dgui: Update BIP70 support message c7f30dbca8build: remove SSL lib detection fcee10c2d0befbc40eb5build: remove EVP_MD_CTX_new detection
This was added in #9475 to fix LibreSSL compatibility for BIP70, so is no longer required.
45a2d3c552build: remove OpenSSL from Qt build
More info available from: https://doc.qt.io/qt-5/ssl.html#enabling-and-disabling-ssl-support
build: skip building OpenSSL lib_ssl 2cba35ab388c6081a884compat: remove bswap_* check on macOS
This was originally added in #9366 to fix the gui build, as Protobuf would also define these macros. Now that we're no-longer using Protobuf, remove the additional check.
fanquake force-pushed on Oct 24, 2019fanquake removed the label Needs rebase on Oct 24, 2019in src/qt/walletmodel.h:67 in 8c6081a884
63 | @@ -67,15 +64,9 @@ class SendCoinsRecipient 64 | CAmount amount; 65 | // If from a payment request, this is used for storing the memo 66 | QString message; 67 | - 68 | -#ifdef ENABLE_BIP70 69 | - // If from a payment request, paymentRequest.IsInitialized() will be true 70 | - PaymentRequestPlus paymentRequest; 71 | -#else 72 | // If building with BIP70 is disabled, keep the payment request around as
fjahr commented at 4:25 PM on October 25, 2019:BIP70 reference should be removed from comment
in src/qt/transactiondesc.cpp:53 in 8c6081a884
47 | @@ -48,7 +48,6 @@ QString TransactionDesc::FormatTxStatus(const interfaces::WalletTx& wtx, const i 48 | } 49 | } 50 | 51 | -#ifndef ENABLE_BIP70 52 | // Takes an encoded PaymentRequest as a string and tries to find the Common Name of the X.509 certificate 53 | // used to sign the PaymentRequest. 54 | bool GetPaymentRequestMerchant(const std::string& pr, QString& merchant)
fjahr commented at 5:20 PM on October 25, 2019:Could this method not rather be removed as well, along with the one place where it is used (line 295, same file)? I guess you try to keep the PR small but I would probably still remove this.
MarcoFalke commented at 9:02 PM on October 25, 2019:I think this is still needed to display the merchant name for existing txs made with bip 70?
fjahr commented at 11:36 AM on October 26, 2019:Ok, thanks for clarifying!
fjahr approvedfjahr commented at 5:24 PM on October 25, 2019: memberACK 8c6081a
Reviewed code, built and ran tests. Two nits but this works.
MarcoFalke commented at 9:00 PM on October 25, 2019: memberACK 8c6081a884cd0969160955ce8687d4d4ed074db3
<details><summary>Show signature and timestamp</summary>
Signature:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 ACK 8c6081a884cd0969160955ce8687d4d4ed074db3 -----BEGIN PGP SIGNATURE----- iQGzBAEBCgAdFiEE+rVPoUahrI9sLGYTzit1aX5ppUgFAlwqrYAACgkQzit1aX5p pUjKSgv/exTwf/JSsLIdKgCml6kmBoF0kadbbWndiUR7azT5wlTQcWV/+c9McOxO clD0f1Sci5Fks1Dy9N5SIEoVpjh29CYSInYnbu3rQTagb4+DYi1kVtVgp0j7E1lD eHxTD4VJIbz1rdnseGs6xJA5KU8bkZekDrwIO4u7qRZWP4ikK2dwwf96MoMt42KI x7w6apQaSkyBjAxTVa665xOpV+PugO0CcdbMudVq3v8awC1ITrcRUH3Fp2egnuJn ithoI7FONpQH9+ipFxQ3KO0shJWYk45nw0EMATjBZO+Amhzif1gTJacbeozC6sZs u4jplY3sHH2pYlPdIhs3FAaHO1Cia/lwfV+k2GvXD/2Ym5qGX63ZhPYo483wghtO 3av1EsgdHdxx62TWgQChPi/5lC0DU/h5M+vnHQYE/bhzvViUrqPzyODG1NoBhKIE JoX5SWQE7XmvCrsjhbMS/91YevGUe61AFjUwx4ITyr3zh8VGH43YOc9BZRDOyvSC ZUO0vK0l =K4mK -----END PGP SIGNATURE-----Timestamp of file with hash
962930a6f6f662ed694e7153800aef1dfae989ffe2d302c9f2c6c70952527e09 -</details>
laanwj referenced this in commit d91af4768c on Oct 26, 2019laanwj merged this on Oct 26, 2019laanwj closed this on Oct 26, 2019fanquake deleted the branch on Oct 26, 2019fanquake removed this from the "Blockers" column in a project
fanquake added the label Needs release note on Oct 26, 2019MarcoFalke referenced this in commit c737839471 on Nov 1, 2019sidhujag referenced this in commit a1cc49265c on Nov 2, 2019laanwj referenced this in commit 463eab5e14 on Nov 2, 2019sidhujag referenced this in commit 902791dd2a on Nov 3, 2019fanquake referenced this in commit 4e21f72980 on Nov 6, 2019sidhujag referenced this in commit f5be3f374b on Nov 7, 2019MarkLTZ referenced this in commit 18a6d41cb0 on Nov 17, 2019laanwj referenced this in commit 2065ef66ee on Nov 19, 2019sidhujag referenced this in commit 517bf47683 on Nov 19, 2019laanwj referenced this in commit 5e4912f990 on Dec 16, 2019sidhujag referenced this in commit d2ef00b117 on Dec 16, 2019fanquake removed the label Needs release note on May 23, 2020fanquake commented at 7:28 AM on May 23, 2020: memberThis has a release note in https://github.com/bitcoin-core/bitcoin-devwiki/wiki/0.20.0-Release-Notes-Draft.
fanquake referenced this in commit 492cdc56e0 on May 23, 2020fanquake referenced this in commit c4ffcf07af on Jun 12, 2020laanwj referenced this in commit 9d92ee12fd on Jul 1, 2020sidhujag referenced this in commit 2790fd2b3b on Jul 8, 2020zkbot referenced this in commit 5bea6d806f on Sep 23, 2020zkbot referenced this in commit 8777d2884e on Sep 29, 2020zkbot referenced this in commit b5fa52b701 on Oct 1, 2020sidhujag referenced this in commit 8ce33973c3 on Nov 10, 2020sidhujag referenced this in commit 50ec6bafea on Nov 10, 2020sidhujag referenced this in commit 98c9ba6d69 on Nov 10, 2020sidhujag referenced this in commit 8d83aefe28 on Nov 10, 2020sidhujag referenced this in commit 207d5ff5f3 on Nov 10, 2020furszy referenced this in commit e9807864f3 on Apr 18, 2021PastaPastaPasta referenced this in commit 2c81cbc6c9 on Jun 27, 2021PastaPastaPasta referenced this in commit 8f92d6dc50 on Jun 28, 2021PastaPastaPasta referenced this in commit a90dde110b on Jun 29, 2021PastaPastaPasta referenced this in commit 282f6492ea on Jul 1, 2021PastaPastaPasta referenced this in commit 6da725c555 on Jul 1, 2021PastaPastaPasta referenced this in commit 51813dd249 on Jul 14, 2021PastaPastaPasta referenced this in commit 39f7ef74d2 on Sep 17, 2021DrahtBot locked this on Feb 15, 2022LabelsMilestone
0.20.0Linked (view graph)#17265 Remove OpenSSL#17285 doc: Bip70 removal follow-up#17309 doc: update MSVC instructions to remove Qt OpenSSL linking#17370 doc: Update doc/bips.md with recent changes in master#17730 depends: remove Qt networking features#17747 SSL/TLS support for the HTTP(S) server#19058 doc: Drop protobuf stuff#19257 build: remove BIP70 configure option
github-metadata-mirror
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-05-02 18:14 UTC
This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me