Skip to content

Commit b15f775

Browse files
docs: add blog posts
1 parent 5ad2d53 commit b15f775

20 files changed

+2740
-0
lines changed

docs/blog/2023_q4_update.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# 2023 Q4 Project Update
2+
3+
:lucide-pen-tool:   [`Steve Myers`]()   [`Daniela Brozzoni`]()
4+
:lucide-calendar-1:   `Feb 20, 2024`
5+
---
6+
7+
### This Post
8+
9+
The [Spiral](https://spiral.xyz) 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](https://spiral.xyz/blog/). As of last summer we are grateful to also have received a generous [OpenSats grant](https://opensats.org/blog/bitcoin-and-nostr-grants-august-2023) 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.
10+
11+
### End of Year Review
12+
13+
The BDK project is made up of a core suite of [rust](https://www.rust-lang.org/) libraries ([bdk-*](https://github.com/bitcoindevkit/bdk?tab=readme-ov-file#architecture)) 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](https://github.com/bitcoindevkit/bdk-ffi) 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](https://bitcoindevkit.org/blog/tags/architecture/) of the BDK libraries to improve blockchain syncing, embedded device support ([no-std](https://docs.rust-embedded.org/book/intro/no-std.html)), update key dependencies ([rust-bitcoin](https://github.com/rust-bitcoin/rust-bitcoin), [rust-miniscript](https://github.com/rust-bitcoin/rust-miniscript)) and finally to provide a stable 1.0 API that our users can rely on for their production applications.
14+
15+
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](https://semver.org/).
16+
17+
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.
18+
19+
### Core BDK
20+
21+
For Q4 2023 we [merged 33 PRs](https://github.com/bitcoindevkit/bdk/pulls?page=1&q=is%3Apr+merged%3A2023-10-01..2023-12-31), [closed 32 issues](https://github.com/bitcoindevkit/bdk/issues?q=is%3Aissue+closed%3A2023-10-01..2023-12-31), and completed two 1.0.0-alpha releases, [1.0.0-alpha.2](https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-alpha.2) and [1.0.0-alpha.3](https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-alpha.3). 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](https://github.com/bitcoindevkit/bdk/releases/tag/v0.29.0) that upgraded our `rust-bitcoin` dependency to release to 0.30.
22+
23+
### BDK-FFI
24+
25+
In Q4 the BDK-FFI bindings for Kotlin, Swift, and Python saw [23 PRs merged](https://github.com/bitcoindevkit/bdk-ffi/pulls?page=1&q=is%3Apr+merged%3A2023-10-01..2023-12-31) and [15 issues closed](https://github.com/bitcoindevkit/bdk-ffi/issues?q=is%3Aissue+closed%3A2023-10-01..2023-12-31). One maintenance release was completed, [v0.31.0](https://github.com/bitcoindevkit/bdk-ffi/releases/tag/v0.31.0), 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](https://github.com/bitcoindevkit/bdk-ffi/releases/tag/v1.0.0-alpha.2a) 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.
26+
27+
### BDK contributors spotlight
28+
29+
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.
30+
31+
**[Daniela Brozzoni](https://github.com/danielabrozzoni/)**
32+
33+
November 3: Gave a [bolt.fun](https://bolt.fun) talk on open source development, [YouTube](https://www.youtube.com/watch?v=P75nCR1owws).
34+
35+
October 25-26: Joined a ["Contributing to free and open source projects" panel](https://planb.lugano.ch/contributing-to-free-and-open-source-projects/) at [Plan B](https://planb.lugano.ch/) lugano.
36+
37+
**[Evan Linjin](https://github.com/evanlinjin/)**
38+
39+
November 15: Worked with [wizardsardine](https://wizardsardine.com/) team to [extract and integrate BDK coin-selection into the Liana wallet](https://twitter.com/darosior/status/1724842410839093562).
40+
41+
December 3: Spoke at the [Bitcoin Tech Summit Taipei](https://twitter.com/TaiwanBitdevs/status/1726537941688967238).
42+
43+
December 13: Gave a talk about Bitcoin and BDK at [Taipei Blockchain Week](https://twitter.com/JCBA_org/status/1735100779172856170).
44+
45+
**[Thunderbiscuit](https://github.com/thunderbiscuit/)**
46+
47+
November 8: Created the educational [Opcode Explained](https://opcodeexplained.com/) website to help... explain bitcoin opcodes!
48+
49+
November 15: Joined the panel on the [Bitcoin Review Podcast Episode 55](https://bitcoin.review/podcast/episode-55/) to talked about his [padawan-wallet](https://github.com/thunderbiscuit/padawan-wallet) project.
50+
51+
**[Matthew Ramsden](https://github.com/reez/)**
52+
53+
October 11: Spoke at the [Bitcoin Park OpenHouse](https://www.meetup.com/bitcoinpark/events/291768716/) on the topic ["Exploring the Lightning Network"](https://podcasts.apple.com/us/podcast/open-house-exploring-the-lightning-network-ldk/id1646515985?i=1000631904227).
54+
55+
November 8: Created a video for the [Bitcoin Developers](https://www.youtube.com/@bitcoindevelopers) channel on YouTube titled ["Lightning Development with Swift: Make Your First Lightning App with LDK Node Swift"](https://www.youtube.com/watch?v=rcU3LU6iZCs).
56+
57+
**Other current and future contributors...**
58+
59+
If you are a contributor to BDK and doing something fun that's BDK and/or bitcoin related let us know! Tag [@bitcoindevkit](https://twitter.com/bitcoindevkit/) on X, [notmandatory](https://primal.net/profile/npub1ke470rdgnxg4gjs9cw3tv0dp690wl68f5xak5smflpsksedadd7qtf8jfm) on nostr, or send us an email: blog at bitcoindevkit dot org.

docs/blog/2024_q1_update.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# 2024 Q1 Project Update
2+
3+
:lucide-pen-tool:   [`Steve Myers`]()
4+
:lucide-calendar-1:   `Mar 21, 2024`
5+
---
6+
7+
<br>
8+
9+
### Core BDK
10+
11+
The majority of BDK rust library work this quarter was towards finishing new and improved electrum, esplora and Bitcoin Core RPC (block-by-block) syncing APIs. Bug fixes and improvements were also completed for the transaction builder and other wallet APIs. Six bi-weekly 1.0.0-alpha releases were made ([alpha.3](https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-alpha.3), [alpha.4](https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-alpha.4), [alpha.5](https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-alpha.5), [alpha.6](https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-alpha.6), [alpha.7](https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-alpha.7), [alpha.8](https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-alpha.8)). For the quarter [54 PRs](https://github.com/bitcoindevkit/bdk/pulls?q=is%3Apr+merged%3A2024-01-01..2024-03-31+) were merged and [55 issues](https://github.com/bitcoindevkit/bdk/issues?q=is%3Aissue+closed%3A2024-01-01..2024-03-31+) were closed.
12+
13+
### BDK-FFI
14+
15+
For the language binding libraries (Kotlin, Swift, Python) the focus was on small bug fixes for the pre-1.0 releases ([0.30.0](https://github.com/bitcoindevkit/bdk-ffi/releases/tag/v0.31.0) and [0.30.1](https://github.com/bitcoindevkit/bdk-ffi/releases/tag/v0.31.1)) and creating the first 1.0.0-alpha bindings release ([1.0.0-alpha.7](https://github.com/bitcoindevkit/bdk-ffi/releases/tag/v1.0.0-alpha.7)). For the quarter [23 PRs](https://github.com/bitcoindevkit/bdk-ffi/pulls?q=is%3Apr+merged%3A2024-01-01..2024-03-31+) were merged and [8 issues](https://github.com/bitcoindevkit/bdk-ffi/issues?q=is%3Aissue+closed%3A2024-01-01..2024-03-31+) closed.
16+
17+
### Plans for Next Quarter
18+
19+
The focus for Q2 development is completing our first 1.0.0 beta release and improving user docs and testing for it. The team will also work on updating all language bindings (Kotlin/Swift/Python) to use new rust lib 1.0.0 beta APIs.
20+
21+
### BDK contributors spotlight
22+
23+
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.
24+
25+
**[Evan Linjin](https://github.com/evanlinjin/)**
26+
27+
February 22: Gave a talk on [BDK 1.0 at BTC++](https://btcplusplus.dev/conf/ba24/talks) in Buena Aires, Argentina.
28+
29+
30+
**Other current and future contributors...**
31+
32+
If you are a contributor to BDK and doing something fun that's BDK and/or bitcoin related let us know! Tag [@bitcoindevkit](https://twitter.com/bitcoindevkit/) on X, [notmandatory](https://primal.net/profile/npub1ke470rdgnxg4gjs9cw3tv0dp690wl68f5xak5smflpsksedadd7qtf8jfm) on nostr, or send us an email: blog at bitcoindevkit dot org.

docs/blog/2024_q2_update.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# 2024 Q2 Update: What Have We Been Up To?
2+
3+
:lucide-pen-tool: &nbsp; [`thunderbiscuit`]()
4+
:lucide-calendar-1: &nbsp; `Jul 1, 2024`
5+
---
6+
7+
The bitcoindevkit team has been hard at work for Q2 in 2024, pushing to stabilize the API of its `bdk_wallet` crate and releasing 4 new alpha versions (9, 10, 11, and 12!), and aiming to release a 1.0 beta in July. Here are some of the notable changes and upgrades to the software libraries we maintain:
8+
- **Update `bdk_electrum` to use merkle proofs.** This PR is the first step in reworking `bdk_electrum` to use merkle proofs. When we fetch a transaction, we now also obtain the merkle proof and block header for verification. We then confirm a transaction is in a block only after validating it's Merkle proof.
9+
- **Upgrade of rust-bitcoin and rust-miniscript.** We upgraded our dependencies on these crates to the latest `0.32.0` and `0.12.0` respectively.
10+
- **Added examples.** We added examples and cleaned up our current example crates to help builders stay up-to-date on the latest changes.
11+
- **Use bitcoin::Amount in most public APIs.** This change ensures type safety when requiring and providing bitcoin amount in our APIs, using the rust-bitcoin crate `Amount` type.
12+
- **Introduce Sync and FullScan related types.** This change introduced universal structures that represent sync/full-scan requests/results for all SPK-based syncing clients.
13+
- **Allow user provided RNG.** This change makes the `rand` dependency optional.
14+
15+
The language bindings for iOS, Android, and Python have also seen some new alpha release and a ton of new features, in preparation for the beta release.
16+
- **Upgrade to the latest uniffi (0.28.0).** This was a major upgrade that gave us a whole new set of functionalities: the ability to implement traits in the foreign languages, using the `Display` trait to auto-generate the `toString()` methods, enable API docs in the UDL file, and support for async!
17+
- **Brand new iOS build workflow.** This one is nerdy but a goodie. Anyone interested in how we build bindings should check out this major cleanup of our iOS library build workflow!
18+
- **Starting the work on bitcoin-ffi.** The team has started the work on a separate crate called [bitcoin-ffi](https://github.com/bitcoindevkit/bdk-ffi), effectively migrating the types we exposed from rust-bitcoin into a standalone crate that other projects building on uniffi can use.
19+
20+
21+
### Our Grantees in Action
22+
In addition to our full-time grantees, the [BDK Foundation](https://bitcoindevkit.org/foundation/) provides part-time grants to folks on special projects. Q2 is funding 2 projects in particular:
23+
- **Wei Chen.** Wei has been contributing to BDK since late 2023 and was formerly a full stack Java developer based in Washington D.C. with ten years of experience. The focus of his contributions will be towards assisting with the restructuring of the electrum crate, reengineering of the TxGraph data components to simplify the tracking of lineal conflicts, as well as on performance optimization and the continued debugging of BDK.
24+
- **Manuel Gatti.** Manuel is a Project Manager at Wizard Sardine. He is involved in some educational projects related to bitcoin in Italy and hosts an Italian podcast about libertarian philosophy with episodes dedicated to bitcoin as a tool for freedom. He has been contributing to BDK since April 2023 mostly on the project management side (holding calls, helping with triage and prioritization, updating stakeholders). His project consists of conducting user interviews in order to get feedback on BDK usage and possible pain points with the aim to help the team with the definition and prioritization of the development activities.
25+
26+
We've also been active at conferences!
27+
- Evan made his way to South Korea to host a workshop at the [Bitcoin Seoul](https://www.bitcoinseoul.kr/) conference.
28+
- Evan and ValuedMammal also made their way to the [bitcoin++ conference in Buenos Aires](https://btcplusplus.dev/conf/ba24) to talk about BDK.
29+
- thunderbiscuit was in Montreal for the [Canadian Bitcoin Conference](https://canadianbitcoinconf.com) again this year. A fantastic event with many users of BDK present!
30+
31+
### BDK in the Wild
32+
- In Q2, [Bitkey](https://bitkey.world/en-US) open sourced their app, making it one of the biggest users of BDK on mobile.
33+
- [Bull Bitcoin](https://www.bullbitcoin.com/) released their [Android app](https://play.google.com/store/apps/details?id=com.bullbitcoin.mobile) based on the bdk-flutter library at the Canadian Bitcoin Conference in Montreal!

0 commit comments

Comments
 (0)