Changelog
Keep up-to-date with our progress on building the Ark protocol.
Follow us on X to hear about the changes first.
06 March 2025
💻 General
Ark in alpha
We have released version 0.0.0-alpha.1 of bark and aspd. Note, that this is an alpha version with known bugs and vulnerabilities that will result in loss of funds.
🏢 Ark server
Smoother Ark server configurations
Configuring an Ark server is now a breeze, with the option of using toml file or environment variables. This will help developers who want to quickly spin up an Ark server for testing purposes (and Ark server operators!). [380]
Ark server database got an upgrade
We migrated the Ark server database from RocksDB to Postgres. Postgres is proven to be a reliable database that powers many critical systems in various industries. [314] [358] [368] [372] [373] [383]
Sandboxed server secrets
Keeping the mnemonic secret is crucial to securing an Ark server. We split the mnemonic from the database to ensure operators have full control on how and where their mnemonic is stored. [366]
Network validation
Connecting a mainnet Ark Server to a signet network is a bit of a footgun. The Ark server will now validate the network before connecting. We reduced the binary size of aspd from 200Mb to 30 Mb. [325]
Improved error messages
As a developer you deserve proper error messages when things go wrong. We made various improvements to ensure that you will get error messages that help you out. [334] [345] [350]
🐶 Ark Wallet (bark)
Couple of exit improvements
We simplified the API and ensured that the exit works if esplora is used as a chain source. [362] [385]
Multi-threading support
The bark API now works in multi-threaded applications (it didn't previously). [378]
⬆️ Upstream
Reducing the cost of unilateral exits with Pay2Anchor
A new output type called Pay2Anchor was introduced in bitcoin 28.0. It is more efficient than a traditional fee anchor which helps to reduce the cost of a unilateral exit. We have implemented the PayToAnchor output in rust-bitcoin. [4111]
Preventing double spends
We have implemented a new feature in BDK that allows us to spend only confirmed UTXOs. This will help us to ensure we never double-spend a counterparty by accident. [1855]
09 February 2025
First major release of BDK
Bark's on-chain wallet got even more stable thanks to the release of BDK 1.0.0. We've been excited (and waiting!) for this for a long time—huge thanks to the BDK team for rolling it out, and to new contributor @jirijakes for adding it to bark! 👏 [252]
No Linux, no problem
Bitcoin works on any desktop device and now so does our Ark client, bark. A few adjustments have been made by our non-Linux colleagues to ensure that bark works across Linux, macOS, and Windows. [203],[275],[276]
Track your regret
Want to know where you spent all your sats? Bark will now maintain a history of all transactions in and out of your wallet. [212]
All the JSON, all the time
Bark will now always return outputs in JSON format. A consistent output format makes it much easier to develop scripts on bark. [305]
18 December 2024
All payments are now arkoor by default
We've made a big shift in Ark payment policy: all payments will now be arkoor, and in-round transactions are reserved for refreshing VTXOs only.
This took a massive refactor, but the payoff is huge: Ark rounds are now way more reliable thanks to reduced interactivity requirements, and Ark wallets consume fewer resources across devices (mobile users won't have to worry about killing their batteries anymore!).
Importantly, the change gives users far more control over their preferred fees and security model.
For a deep dive on the change, see our recent blog article.
Zero-fee transactions
Bitcoind 28.0 brought zero-fee VTXOs to Ark. By using child-pays-for-parent to confirm transactions instead, your Ark payments will now be even cheaper and even more reliable—especially for exits (but hopefully you'll never need those).
Structured logging
The ASP daemon now comes with structured logging. Parsing logs, building dashboards, testing, and setting alerts for ASP operations will now be way easier.
VTXOs and UTXOs stored together in the same database
In October, we replaced the VTXO database with SQLite. And now, thanks to BDK's native SQLite support, your on-chain UTXOs are stored in the same database.
Rustls encryption
We've switched out OpenSSL in favour of Rustls. In our opinion, Rustls is a higher quality implementation that will make Ark more secure and easier to build upon.
31 October 2024
Database now running on SQLite
Our biggest update this month was migrating bark to an SQLite database. We chose SQLite because it's ridiculously stable, works on a wide range of hardware, and is easy for any developer to pick up because it's been around for so long. SQLite is what you use when you don't want to lose important data, and there's little data more important than bitcoin data!
Updated to BDK beta 4
In October, we integrated two successive releases of BDK, going from beta2 to beta4. BDK is central to bark, our Ark client implementation. It enables us to quickly and easily build a fully-fledged bitcoin wallet, literally doing everything out-of-the-box. So we continue to look forward to the upcoming stable 1.0 release. You know what to do, Spiral!
On-demand syncing
Bark now only does an on-chain sync when it's actually required. This ensures bark loads faster and feels a lot more snappy.
Contributor shoutouts
We also want to give a shoutout to three first-time contributors:
- adbd7e7 added a very-necessary fallbackfee to our demo script. [110]
- Acidbunny21 made it easy to offboard specific VTXOs without leaving dust inside the ASP. [87]
- kevkevinpal added some very helpful aspd commands to the documentation. [103]
Thank you for your contributions!