Changelog
Keep up-to-date with our progress on building the Ark protocol.
Follow us on X to hear about the changes first.
Changelog categories: General, Ark server, Bark, Upstream
06 May 2025
Enhanced Lightning payment reliability
We've significantly improved our Lightning send implementation with more robust logic and implemented revocation of failed Lightning payments, making the entire Lightning payment process more reliable and secure. [533], [434]
Lightning command for invoice payments
Bark now includes a dedicated Lightning sub-command that can be used to pay Lightning invoices directly, making it easier than ever to use Ark for Lightning payments. [540]
Improved on-chain wallet management
We've completely restructured the Ark server's on-chain wallet management to address unexpected challenges with conflicting transactions. By splitting the wallet into different parts, we've eliminated these issues for good. [523]
Runtime task management system
A new runtime manager was introduced to coordinate all background tasks such as VTXO sweeping and round creation, bringing more stability and reliability to Ark server operations. [521]
Docker images for multiple architectures
We've released Docker images for various architectures, making it significantly easier to spin up an Ark server locally for development and testing. [525]
Fixed round participation issue
We resolved a bug where the server would incorrectly refuse to serve a VTXO because it falsely believed the VTXO was already participating in another round, improving overall reliability. [527]
Enhanced transaction confirmation checks
The Ark server now performs more thorough checks on chain confirmations and will not accept board VTXOs for which the funding transaction hasn't been confirmed on-chain, improving security. [519], [534]
Graceful shutdown handling
Ark server now captures and handles SIGTERM correctly, ensuring a graceful shutdown when the server is stopped or restarted using systemctl. [524]
Improved boarding reliability
Bark can now recover from partially registered boards and re-attempt on failure, making the boarding process more resilient. [518]
Improved VTXO registration resilience
When a user boards the Ark it will register the newly created VTXO with the server. The registration command has been made idempotent. [518]
Enhanced wallet balance telemetry
We've added improved telemetry for node operators about wallet balance, making it easier to monitor and manage Ark server operations. [531]
08 April 2025
Launch on signet
We're excited to announce that Ark is now available on signet! You can use bark to send signet coins to friends and family, making it easier than ever to test and experiment with the protocol.
Enhanced server-client communication
We've implemented a connection handshake between bark and Ark Server that ensures version compatibility and enables public service announcements. [384], [514]
Forfeit transaction management
The Ark server now automatically handles forfeit transactions when clients refresh sats in a round. We've implemented chain monitoring and automated publishing of forfeit transactions through an updated TxIndex system. [416], [417], [423], [415], [449], [450], [512]
Improved observability
We've enhanced visibility into Ark's internal operations with structured logging and comprehensive telemetry. Track wallet balances, client versions, and other key metrics in a dedicated log file. [442], [441], [433]
Stability improvements
Several critical fixes have been implemented to improve system stability:
- Graceful handling of insufficient offboard amounts [471]
- Eliminated panics during rounds [495]
- Support for repeated client onboarding [516]
Bark usability enhancements
We've made bark more intuitive and user-friendly:
- Simplified wallet creation by removing explicit HTTPS requirement [382]
- Added
ark-info
command to query server settings [412] - Improved amount and unit specification hints [487]
- New utilities for draining on-chain wallets [472]
Lightning payment improvements
We've resolved several Lightning-related issues, including prevention of duplicate invoice payments and implementation of intermediate state exits. [389], [409], [459], [470], [490]
06 March 2025
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.
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]
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]
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!