Meeting Minutes 1
===
###### tags: `BDK Core` `Meeting`
:::info
- **Location:** Online
- **Date:** Oct 5, 2022 10:00 am (UTC)
- **Agenda**
- Coin Selection chit-chat
- How the coin selection is currently structured
- How it could be better
- How the bdk_core coin selection is structured
- How to integrate the bdk_core coin selection in bdk
- Improving TxBuilder
- Segregating the coin selection in a different crate
- **Participants:**
- Alekos @afilini
- Evan @evanlinjin
- Daniela @danielabrozzoni
- Cesar @csralvall
:::
:timer_clock: Minutes
--
- Thank you @daniela for signing up to HackMD.
- Cesar provided an overview of how coin selection currently works in BDK and pointed out various "problems" with CS in BDK:
- Database reference (not needed)
- Required UTXOs (always included). Why?
- We looked at how CS works in `bdk_core`:
- `CoinSelector`
- Add/remove selected utxos
- `finish()` checks whether our selection has satisfied all constraints.
- `CoinSelectorOpt`
- The constraints/target of CS.
- `WeightedValue`
- Struct that holds UTXOs that need to be spent together, but they don't have to have the same spk (different from the Bitcoin Core OutputGroup)
- BranchAndBound coin selection
- `BranchStrategy`: how we continue from the node we're looking at.
- Optimize for different things: either waste, or maybe some other scoring method (privacy?)
- We need to use the waste metric for comparing the algorithm results as well :rocket:
- How can we decouple tx building steps in BDK and integrate `bdk_core`?
- Look at `Conditions` (in BDK)
- Timelocks
- Version (Add version)?
- Add to "candidate UTXO" structure
- Plan + Assets (in `miniscript`): Which signers are available? Which way is the best way to spend? Satisfaction weight? How long am I willing to wait for confirmation? (This can be before coin control, or the parameters should be provided to "coin control").
- "Fallback Algorithm" is currently hardcoded in BDK. A way to compose algorithm. We can clone coin selector and apply different.
- 
:closed_book: Tasks
--
- Cesar will look into how we can make `bdk_core::coin_select::Select` and `bdk_core::coin_select::ExcessStrategy` more generic.
- Alekos will look into how we can make `BnbIter` better.
- Add meeting notes for Friday meeting. (0900 UTC)