2023 Q4 Project Update
# This Post
The Spiral (opens new window) team has graciously supported BDK financially (and spiritually) for the past four years and since early 2022 the BDK team has let folks know what we've been up to via the Spiral blog (opens new window). As of last summer we are grateful to also have received a generous OpenSats grant (opens new window) supporting our project. To keep our current and future financial supporters, open source contributors, and downstream users updated on our progress, starting this year we will be publishing a quarterly BDK project updates here on our blog.
# End of Year Review
The BDK project is made up of a core suite of rust (opens new window) libraries (bdk-* (opens new window)) that work together to provide everything an application developer needs to incorporate on-chain bitcoin wallet functionality into their project. Wrapped around the BDK core libraries is our bdk-ffi (opens new window) bindings libraries that let Kotlin (desktop/android), Swift (desktop/iOS), and Python developers use BDK seamlessly in their projects. And wrapped around all of this software is documentation and examples. For over a year the BDK team has been working on a major re-architecture (opens new window) of the BDK libraries to improve blockchain syncing, embedded device support (no-std (opens new window)), update key dependencies (rust-bitcoin (opens new window), rust-miniscript (opens new window)) and finally to provide a stable 1.0 API that our users can rely on for their production applications.
The team is currently working on the 1.0.0-alpha release train. The purposed of these alpha releases is to give early adopters (including our own bdk-ffi
contributors) a chance to try-out new BDK features and updated APIs and provide feedback. Once we have a stable, feature complete 1.0.0 BDK that our alpha users love we'll begin publishing 1.0.0-beta releases. With our beta releases we will finish updating tutorials and examples and performance testing, and ask all BDK users to start migrating and testing their applications with BDK 1.0.0. When our key contributors and users are satisfied that we have shaken out any final 1.0.0-beta issues we'll publish our BDK 1.0.0 release. Once 1.0.0 is out subsequent releases will use semantic versioning (opens new window).
For those keeping score, we'd originally planned to have the BDK 1.0.0 release out last year, but (spoiler) that didn't happen. As I'm sure our kind readers understand making safe, feature rich, easy to use bitcoin software isn't easy, reviewing it is even harder, and we, like every project in the space are short-handed. But with every release, as we build the software we also on-board new contributors and build the team that will deliver BDK 1.0.0, 1.1.0, 2.0.0, and beyond.
# Core BDK
For Q4 2023 we merged 33 PRs (opens new window), closed 32 issues (opens new window), and completed two 1.0.0-alpha releases, 1.0.0-alpha.2 (opens new window) and 1.0.0-alpha.3 (opens new window). The primary deliverable of these releases was to further stabilize the bdk_chain
crate which provides the central logic for tracking and updating wallet keychains and scripts to be tracked and manages all of the related blockchain and transaction data. Additional PRs started this quarter lay the groundwork for the next phase of development focused on improving how we sync data via blockchain clients and save that data to persistent storage. We also made one maintenance release 0.29.0 (opens new window) that upgraded our rust-bitcoin
dependency to release to 0.30.
# BDK-FFI
In Q4 the BDK-FFI bindings for Kotlin, Swift, and Python saw 23 PRs merged (opens new window) and 15 issues closed (opens new window). One maintenance release was completed, v0.31.0 (opens new window), which updated the language bindings dependency to the latest rust bdk
maintenance release 0.29.0 and in doing so updated the BDK FFI rust-bitcoin
dependency to version 0.30. This quarter the team took on the major task of creating the first language bindings based on the bdk
1.0.0-alpha API. The resulting bdk-ffi
v1.0.0-alpha2a (opens new window) release is only able to expose part of the full bdk
1.0.0 API but prepares the project for full support in future releases. As part of this work the current Kotlin API docs were removed, but fear not they will return in future alpha releases and be better than ever with not only API docs for Kotlin but also Swift and Python.
# BDK contributors spotlight
In this section we share what some of our hardworking contributors are doing to educate people about BDK, help on board new projects, and generally promote bitcoin and open source development around the world.
Daniela Brozzoni (opens new window)
November 3: Gave a bolt.fun (opens new window) talk on open source development, YouTube (opens new window).
October 25-26: Joined a "Contributing to free and open source projects" panel (opens new window) at Plan B (opens new window) lugano.
Evan Linjin (opens new window)
November 15: Worked with wizardsardine (opens new window) team to extract and integrate BDK coin-selection into the Liana wallet (opens new window).
December 3: Spoke at the Bitcoin Tech Summit Taipei (opens new window).
December 13: Gave a talk about Bitcoin and BDK at Taipei Blockchain Week (opens new window).
Thunderbiscuit (opens new window)
November 8: Created the educational Opcode Explained (opens new window) website to help... explain bitcoin opcodes!
November 15: Joined the panel on the Bitcoin Review Podcast Episode 55 (opens new window) to talked about his padawan-wallet (opens new window) project.
Matthew Ramsden (opens new window)
October 11: Spoke at the Bitcoin Park OpenHouse (opens new window) on the topic "Exploring the Lightning Network" (opens new window).
November 8: Created a video for the Bitcoin Developers (opens new window) channel on YouTube titled "Lightning Development with Swift: Make Your First Lightning App with LDK Node Swift" (opens new window).
Other current and future contributors...
If you are a contributor to BDK and doing something fun that's BDK and/or bitcoin related let us know! Tag @bitcoindevkit (opens new window) on X, notmandatory (opens new window) on nostr, or send us an email: blog at bitcoindevkit dot org.