Skip to content

Lining Up The Big 3.0 PRs #339

@thunderbiscuit

Description

@thunderbiscuit

This issue aims to put in writing some of the discussions and brainstorms we had in person last week. It's an attempt at laying out the big PRs that we see as potentials for the 3.0 release, and how they relate to each other. Namely, some of them are simply lower-hanging fruits that can be quicker wins, and others have dependencies between them, and so should be approached in order. Feel free to add to this, comment, etc. Note that this list does not imply that all of those features will make it into the 3.0 release. They are simply the potential ones. Where exactly the line ends up being drawn is still in the works.


The 9 features discussed were the following, in no particular order:

  1. Locking UTXOs (feat!: Persist utxo lock status #259)
  2. Wallet events (Return wallet events when applying updates (3.0 milestone) #319 and Add apply_block_events and apply_block_connected_to_events #336)
  3. TxBuilder becomes create_psbt/PsbtParams (Implement create_psbt for Wallet #297)
  4. Wallet doesn't handle signing (refactor(wallet)!: remove signers and it's APIs, relying on rust-bitcoin's Psbt::sign instead. #235)
  5. Intent tracker/Broadcast queue (Introduce IntentTracker #257)
  6. Multi-Keychain support (Support For Arbitrary Number of Keychains #318)
  7. Single Sync flow (issue)
  8. Bump bdk_chain (miniscript 12.4.1 + other goodies)
  9. Auxiliary data on TxNode

Of those, we identified UTXO locking as a potential ready-to-go, with wallet events as close second (maybe needs a bit more work now with the new block events). Then these unlock (3) and (8) -> (4). The rest are more "floaters" and can arrive in any order. Numbers (5), (7), and (9) are probably the ones that are less ready at the moment and will need more review/design before being fully ready.

Here is the diagram representing basically the above:

       (1)
        |
        |
        |                   Floaters
       (2)                 ----------
       / \                 5, 6, 7, 9
      /   \
     /     \
   (3)     (8)
            |
            |
            |
           (4)  

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions