Skip to content

Future of this project #16

@darosior

Description

@darosior

It would be nice if we could make this project more friendly to downstream users. At the moment it is tailored to the needs of the Liana GUI, but i think a HWI library in a compiled language is dearly needed in the Bitcoin space. And Rust seems like a good fit for this. Plus, we already have the implementation for the Ledger and Specter devices.

I tweeted about this and it looks like there is interest from other Bitcoin developers in contributing to a Rust HWI. Given the interest in using or contributing to this library, i'm happy for Wizardsardine to dedicate some resources to extend the scope of this library to a wider audience than the Liana project. Let's discuss on this issue the path forward.

Regarding the goal of the library i think there isn't much to discuss. It should aim to be a high-level interface to the largest reasonable number of Bitcoin signing devices. I would just add a requirement that output descriptors be first class citizens. I'm not sure yet how (maybe using @bigspider's wallet policies?).

Regarding the path toward this goal, i think we:

  1. First need to cleanup the current code. It's been a one man (@edouardparis)'s project and it could use some review (probably mine but anyone's welcome) / bit more testing.
  2. Make the asyncness optional.
  3. Re-design the main interface, the HWI trait, with the new goals of this library in mind.
  4. Add support for more signing devices.
  5. Provide Python bindings.
  6. Get to feature parity with the existing Python HWI.
  7. ?Get the existing Python HWI to migrate to Rust HWI under the hood?
  8. ?Honour an MSRV and move this repo to an org that isn't our company? Rust-Bitcoin maybe?

Thoughts? People interested in contributing to or using this Rust-HWI please chime in!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions