-
Notifications
You must be signed in to change notification settings - Fork 329
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
build(esplora): Add async-https-rustls flag to esplora client #1179
build(esplora): Add async-https-rustls flag to esplora client #1179
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 7330c7f
Also in my up-to-date |
Really interested to hear about your findings. I think generally using the platform's TLS implementation (i.e., I however heard before that making |
Lib Team Call comment: useful for android binding, possibly to be included in the next bdk_esplora release. Since it should be quick adding a flag, we added to alpha.3 |
7330c7f
to
4ee41db
Compare
395bc69
to
6817ca9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 6817ca9
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 6817ca9
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not yet sure if it's better to use rustls-tls or native-tls, however, I think it's important to offer the choice to our users (since, as you said, we already offer it in rust-esplora-client).
I found this post on the rust forum: https://users.rust-lang.org/t/any-reasons-to-prefer-native-tls-over-rustls/37626/6. It seems that the only drawback is what @tnull said, about not getting security patches shipped with the OS, and possible MSRV issues. Someone mentioned that rustls wasn't audited, but that changed in Jun 2020.
ACK 6817ca9
Description
The bdk_esplora crate currently doesn't expose the
async-https-rustls
flag offered by the rust-esplora-client crate and instead requires users to build using thedefault-tls
flag on reqwest, which uses the platform-specific openssl library when compiling. This creates complications for cross-compilation, notably for our Android builds that currently support 3 architectures (arm64-v8a
,armeabi-v7a
, andx86_64
). In order to solve this we can either compile the openssl libraries for each of the platforms we want to support, or use the rustls-tls version of reqwest. The second options is much easier and requires less fiddling with the internals of the Android native development kit and cross-compilation rabbit holes.Before we merge this I want to make sure I understand the tradeoffs between the
native-tls
and therustls-tls
and confirm that there are not potential issues there, but from what I understand they should provide the same functionality/security, and because these are already available/exposed in reqwest and rust-esplora-client, I think this should be a fairly straightforward additional feature we offer.Changelog notice
Checklists
All Submissions:
cargo fmt
andcargo clippy
before committing