Skip to content

Improving Coinselection in BDK #483

@rajarshimaitra

Description

@rajarshimaitra

Description

Coinselection is the scheme to select a set of utxo, from all the available utxos, to create the most optimum spending transaction. Effective coinselection is beneficial for reducing transaction fees as well as improving operation privacy for a wallet. BDK currently uses two coinselection algorithms, LargestFirst and BranchAndBound.

The aim of the project is to

  • include more coinselection algorithms in the library.
  • Add a comparative mechanism to evaluate coinselection results from different algos.
  • Use the most “effective” algorithm chosen by a “specific metric”.

Expected Outcomes

  • General understanding coinselection in Bitcoin protocol.
  • Comparative study between different coinselection algorithms.
  • Coming up with a metric to compare results of different coinselection algos.

Resources

Skills Required

Mentor(s)
@danielabrozzoni

Difficulty : Medium

Competency Test (optional)

  • Install rust, compile and run all bdk examples and tests.
  • Read through the BDK docs.
  • Make a dummy wallet with BDK with different blockchain backends.
  • Familiarity with basic rust, should be able to write custom trait implementations on foreign structures.

Metadata

Metadata

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