Skip to content

The bitcoincore-rpc dependency has problems in our specific use case #350

@DanGould

Description

@DanGould

bitcoincore-rpc presents us with a few problems

1. It depends on a different HTTP client stack than the rest of the project, minreq

Everywhere else in this project we use reqwest. There is an ecosystem-wide call for an async capable http crate with minimal dependencies which we discussed at rust-bitcoin summit. This crate does not exist as of writing, so we use reqwest for async requests in payjoin-cli and bitcoincore-rpc depends on minreq

2. It has no TLS support out of the box

Though minreq supports TLS, but afaict TLS is not exposed in bitcoincore-rpc and can't easily be enabled.

@thebrandonlucas ran into this problem trying to connect to a remote MutinyNet node hosted by voltage over HTTPS.

3. bitcoincore-rpc isn't really meant for production nor maintained

I've had this discussion with @tcharding: the maintainers intend that crate to be used for integration testing only and suggest production implementations depend on bitcoin-json-rpc-types and build their own application-specific client. There is a rust-miniscript PR for this dependency swap but I haven't found more specific documentation of best practice yet.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions