For years, Wasabi Wallet has been considered the most private Bitcoin wallet. Achieving such privacy often seemed to require trade-offs in performance and speed. However, recent developments have changed this perspective.The release “Faster than Fast” (Version 2.0.4) demonstrated Wasabi’s potential as a highly performant wallet, and the latest Juggernaut release (Version 2.0.6) is taking it a step further.

You might wonder: What are the main performance improvements made in this release?

First of all, the application launch was significantly improved such that users can now benefit from a tighter delay when starting the wallet on their computer. This performance improvement reduces CPU usage and memory consumption by half. Then, the initial transaction processing was reduced considerably because of a complete rewrite of the CoinsRegistry component, which is in charge of tracking your wallet’s balance. 

Want to see how performant the new Wasabi Wallet feels? Download and verify the new version now.

This article will outline the changes that contribute to quicker launch times in the latest Juggernaut release (Version 2.0.6), including the migration of transaction data to a database and optimizations for handling multiple wallets. Then, we delve into the rewrite of the CoinsRegistry component and how it improves initial transaction processing. Finally, we’ll explore additional updates that enhance general usage and overall performance.

Reducing the Software’s Launch Time

Whenever you launch Wasabi Wallet by clicking on the application’s icon, there’s a slight delay between that and the moment the GUI (graphical user interface) appears. During that brief instant, many essential background operations take place. 

Here are a few of the adjustments made in the latest Juggernaut release Version 2.0.6 that minimizes the execution time of these operations.

Transaction Data Migrated to a Database

Previously, transactions were stored in a single plaintext file, which was inefficient for data modifications, requiring complete file rewrites for new transactions. This approach was particularly cumbersome for wallets with thousands of transactions.

In 2.0.6, transaction data (TransactionStore) has been migrated to an SQLite database, considerably reducing disk IO (input/output operations), thereby enhancing the software’s launch time. 

This migration also lowers disk and CPU usage during general use and decreases the memory (ROM) used by Wasabi, especially for larger wallets. Users with HDDs (hard disk drives) will notably benefit from these speed improvements.

Multi Wallet Usage Improvements

Wasabi’s ability to support multiple wallets is very convenient. With the latest release, we’ve optimized the loading of multiple wallets to boost performance. Now, when only using Wallet A, the software refrains from loading irrelevant information from other wallets.

Implementing lazy initialization for scripts in HdPubKey significantly benefits multi-wallet usage by deferring important calculations to reduce launch delays. In some tests, this adjustment cut software launch time from 30 seconds to just 10 seconds.

Improving the Initial Transaction Processing

Wasabi monitors the state of your UTXOs and thus of your wallet’s balance with a key component called the CoinsRegistry. In 2.0.6, this component underwent a full rewrite to enhance initial transaction processing. Whenever your wallet is loading but after it’s done downloading blocks, the update of this component is what takes the most time.

In short, this rewrite mainly transforms data structures into a Dictionary format, enabling faster lookups, of which there can be millions.

Additional Performance Improvements

Another notable performance enhancement in this release is the optimization of the Logger, which now requires slightly less time to log an entry. Finally, some algorithmic complexity reduction improvements were implemented such as improving most used labels, to enhance software’s performance during general use.

Conclusion

By re-engineering key components and optimizing data handling, the development team was able to significantly reduce load times and improve overall performance, resulting in a smoother and faster experience for Wasabi users.

Keep in mind that these are only the performance features of this release. You can find all the changes in the announcement article.