# Q4 Spiral Update (for Q3 Work) # Paragraph Style Keep an eye out for the bdk `1.0.0-alpha.2` release with all the improvments added in Q3. Noteble changes include [@evanlinjin]'s innovative new [bitcoind RPC based blockchain client module](https://github.com/bitcoindevkit/bdk/pull/1041) that updates the chain and wallet state block by block. This enables quick syncing to bitcoind, even for wallets tracking many addresses. [@evanlinjin] also merged a major change to [Implement linked-list LocalChain](https://github.com/bitcoindevkit/bdk/pull/1034). This change enables more efficent and thread safe block data storage. [@vladimirfomene] did some required refactoring to the chain update structures to improve usability. [@danielabrozzoni] performed our long overdue upgrade to the latest `rust-bitcoin` 0.30 version which is a big win for interoperating with other `rust-bitcoin` base projects. [@notmandatory] removed the `TransactionDetails` type from the Wallet API and replaced it with new functions to provide the same info. [@evanlinjin] added a new cli example for the esplora blockchain client showing off new chain syncing features. And [@LagginTimes] and [@danielabrozzoni] implemented a new and improved set of tests to prevent conflicting transactions in the `TxGraph` struture. In related news, [@danielabrozzoni]'s `rust-miniscript` planning module [PR](rust-bitcoin/rust-miniscript#592) was merged :tada:. This work lays the foundation for future improvements to the bdk transaction builder. A new BDK Case Studies page was released on the [bitcoindevkit website](https://bitcoindevkit.org/) showcasing a growing list of projects that use the bitcoin development kit. a new maintenance bdk version [0.29.0](https://github.com/bitcoindevkit/bdk/releases/tag/v0.29.0) was released which fixes a small bug in the wallet and updates the rust-bitcoin dependency to the latest 0.30 version. The language bindings for BDK have a new release (0.30.0) of bdk-android, BitcoinDevKit (Swift library), bdkpython, bdk-rn, and bdk-flutter with support for new BIP-86 (Taproot) descriptor templates. The language bindings are also working to make their build tools and system well documented and produce templates so that other Rust-based bitcoin projects can leverage their process. Check out the [uniffi examples website](https://thunderbiscuit.github.io/uniffi-examples/getting-started/introduction.html) and [Rust language bindings template](https://github.com/thunderbiscuit/uniffi-bindings-template) for more information. Three successfull Summer of Bitcoin projects were completed, including a new [Swift iOS Demo Wallet] for which [@reez] and [@notmandatory] mentored [@Ytemiloluwa](https://github.com/Ytemiloluwa), adding [Payjoin support to bdk-cli](https://github.com/bitcoindevkit/bdk-cli/pull/156) for which [@DanGould](https://github.com/DanGould) and [@notmandatory] mentored [@willowenss](https://github.com/willowenss), and a now ready-for-showtime [Padawan Wallet](https://padawanwallet.com/), where [@thunderbiscuit] mentored [@Prakhar](https://github.com/Prakhar-Agarwal-byte). The summer also saw some of the crew active in the community and at conferences. [@evanlinjin] was on the [億聰哲史 podcast](https://open.spotify.com/episode/3IMsSOPG6ngHiLDOsWA8Yl?si=kushf4q0SiqpRhjQrdPLRw), helped start a new [BitDevs in Taipei](https://www.meetup.com/taiwan-bitdevs/events/295581262), and gave a talk and workshop at the first [Bitcoin Thailand conference](https://twitter.com/evanlinjin/status/1681317323477770241). [@danielabrozzoni] taught a few lessons on Bitcoin and BDK for the cubo+ mentoring program, gave a talk at hack.bs.it on Rust, and was on the ["Il priorato del Bitcoin" podcast](https://open.spotify.com/episode/3ciY2ChgvgfiJCbWsF02yf?si=TWA6mPp8RWe1WMTAWTRa9g) for an episode on Bitcoin technical news (BIP324, covenants, drivechains, Ark, etc). [@notmandatory] gave a [workshop](https://github.com/TABConf/2023.tabconf.com/issues/113) at [TABConf2023](https://2023.tabconf.com/) on how to use the new BDK 1.0 syncing mechanisms. <br> <br> # Bullet Points Style * Check out the new [BDK case studies page](https://bitcoindevkit.org/case-studies/) with a growing list of projects that use the bitcoin development kit. ## BDK 1.0 * Keep an eye out for the bdk `1.0.0-alpha.2` release with all the improvments below. * [@evanlinjin] implemented an innovative new [bitcoind RPC based blockchain client module](https://github.com/bitcoindevkit/bdk/pull/1041) that updates the chain and wallet state block by block. This enables quick syncing to bitcoind, even for wallets tracking many addresses. * [@evanlinjin] merged a major change to [Implement linked-list LocalChain](https://github.com/bitcoindevkit/bdk/pull/1034). This change enables more efficent and thread safe block data storage. * [@vladimirfomene] did some required refactoring to the chain update structures to improve usability. * [@danielabrozzoni] performed our long overdue upgrade to the latest `rust-bitcoin` 0.30 version which is a big win for interoperating with other `rust-bitcoin` base projects. * [@danielabrozzoni]'s `rust-miniscript` planning module [PR](rust-bitcoin/rust-miniscript#592) was merged :tada:. This work lays the foundation for future improvements to the bdk transaction builder. * [@notmandatory] removed the `TransactionDetails` type from the Wallet API and replaced it with new functions to provide the same info via new functions. * [@evanlinjin] added a new cli example for the esplora blockchain client showing off new chain syncing features. * [@LagginTimes] and [@danielabrozzoni] implemented a new and improved set of tests to prevent conflicting transactions in the `TxGraph` struture. ## BDK Maintenance * bdk version [0.29.0](https://github.com/bitcoindevkit/bdk/releases/tag/v0.29.0) was released which fixes a bug in the wallet balance if the wallet receives more than one coinbase transaction and updates the rust-bitcoin dependency to the latest 0.30 version. ## BDK Language Bindings * released bdk-cli version [0.30.0](https://github.com/bitcoindevkit/bdk-ffi/releases/tag/v0.30.0) of bdk-android, BitcoinDevKit (Swift library), bdkpython, bdk-rn, and bdk-flutter with support for new BIP-86 (Taproot) descriptor templates (plus a bunch of internal improvements). * [@thunderbiscuit] added the [uniffi examples website](https://thunderbiscuit.github.io/uniffi-examples/getting-started/introduction.html) and [Rust language bindings template](https://github.com/thunderbiscuit/uniffi-bindings-template) repo to help other Rust-based bitcoin projects leverage language bindings. * [@reez] created the new [Swift iOS Demo Wallet] project to help jumpstart new BDK iOS wallet projects and demonstrate best practices. See also [@reez]'s blog post ["Developing a Bitcoin Wallet for iOS"](https://matthewramsden.substack.com/p/developing-a-bitcoin-wallet-for-ios). ## Summer of Bitcoin We wrapped up three [SoB](https://www.summerofbitcoin.org/) projects to: * Add new screens and multilanguage support to new [Swift iOS Demo Wallet], [@reez] and [@notmandatory] mentored [@Ytemiloluwa](https://github.com/Ytemiloluwa) from Ahmadu Bello University (Nigeria). * Add [Payjoin support to bdk-cli](https://github.com/bitcoindevkit/bdk-cli/pull/156), [@DanGould](https://github.com/DanGould) and [@notmandatory] mentored [@willowenss](https://github.com/willowenss) from Vanderbilt University, Nashville. * Add advanced bitcoin features to [Padawan Wallet](https://padawanwallet.com/), [@thunderbiscuit] mentored [Prakhar](https://github.com/Prakhar-Agarwal-byte) at the Indian Institute of Technology (Banaras Hindu University), Varanasi. ## BDK Talks and Workshops * [@evanlinjin] had a chat about BDK on the [億聰哲史 podcast](https://open.spotify.com/episode/3IMsSOPG6ngHiLDOsWA8Yl?si=kushf4q0SiqpRhjQrdPLRw), let us know how his chinese is, helped run some workshops and socratic seminars for [BitDevs in Taipei](https://www.meetup.com/taiwan-bitdevs/events/295581262), and gave a talk and workshop at the first [Bitcoin Thailand conference](https://twitter.com/evanlinjin/status/1681317323477770241). * [@danielabrozzoni] taught a few lessons on Bitcoin and BDK for the cubo+ mentoring program and gave a talk at hack.bs.it on Rust. * [@notmandatory] gave a [workshop](https://github.com/TABConf/2023.tabconf.com/issues/113) at [TABConf2023](https://2023.tabconf.com/) for how to use the new BDK 1.0 syncing mechanisms. * [@danielabrozzoni] was on the ["Il priorato del Bitcoin" podcast](https://open.spotify.com/episode/3ciY2ChgvgfiJCbWsF02yf?si=TWA6mPp8RWe1WMTAWTRa9g) for an episode on Bitcoin technical news (BIP324, covenants, drivechains, Ark, etc) [@LagginTimes]: https://github.com/LagginTimes [@vladimirfomene]: https://github.com/vladimirfomene [@evanlinjin]: https://github.com/evanlinjin [@danielabrozzoni]: https://github.com/danielabrozzoni [@reez]: https://github.com/reez [@notmandatory]: https://github.com/notmandatory [@thunderbiscuit]: https://github.com/thunderbiscuit [Swift iOS Demo Wallet]: https://github.com/reez/BDKSwiftExampleWallet