Today we are proud to announce and release Cwtch Alpha 0.2.0 and kick off the 0.2 alpha release cycle! Some big improvements have landed since 0.1.5 both on the frontend and the backend side of things and we’ve very excited about this release! We’ll go over the changes and then talk about some of what is planned for the 0.2 cycle.
Major Changes Since 0.1.5
Tapir is our new pre-release library that defines a lightweight communication layer that can be used by Cwtch and other metadata resistant applications. Cwtch has been, and will continue to be, inspired by Ricochet, and previous versions have been build on libricochet-go. As Cwtch has developed we have increasingly made modifications to the ricochet protocol to improve security and performance. While planning our roadmap for the next year it became obvious that to achieve many of our goals, we would be better served by redefining this layer entirely, moving away from ricochet’s channel architecture, and instead focusing on defining a mechanism for applications to securely build upon anonymous communication networks. We will dive further into Tapir in the upcoming weeks.
Android with QAndroidService
For the entire 0.1 release cycle we’ve been working hard to get Cwtch onto Android. We have been releasing builds, which alone is a big first step, but they’ve been unusably unstable. A large part of the work has been in a large redesign and refactor of the Cwtch library which was not built with mobile in mind. For mobile you need to have persistent logic (networking for example) in a stand along service that can keep running, and your UI in a sleepable or killable and restartable app. Our initial prototype Cwtch library was not built with this architecture in mind, so the last several 0.1.x releases have included refactors to move towards a more stable Android experience. One of the last steps has been moving the new refactored service code into an Android/QT QAndroidService. The overall Android experience isn’t quite where we want it yet and will continue to be a big focus of the 0.2 release cycle.
- Contact Retry: A new Cwtch app plugin system and a new contact retry system (a system that occasionally tries to reconnect to people who were initially offline)
- Blocking: We have surfaced blocking and unblocking particular peers in the Cwtch UI
- Delete: The storage engine now supports removal of deleted contacts
- Fixed crash on launch in Windows: We identified and fixed a bug which caused windows to be unable to find the tor binary resulting in a crash for some Windows users. It currently still does leave open a command console window which is the Tor process running. We are working to get that hidden for future releases.
- Windows log files: The Windows build of Cwtch now logs to a file (‘cwtch_log.txt’) by default when run instead of the console, which is a much more user friendly way for Windows users to get access to the logs. It also now comes bundled with a ‘debug.bat’ which launches the app in debug mode, writing extra (potentially sensitive, but useful) information to the logfile.
- Infinite queue: We found a problem in our eventbus where some components of Cwtch could flood it causing some messages to other components to be lost. This was observed by some users noticing new messages when restarting the app for the second or third time from groups. This is now fixed.
- Tor / libricochet-go bottleneck: We fixed a bottleneck in Tor outbound connection code which previously significantly delayed peer connection establishment.
0.2 And Beyond
Our next priorities are Android stabalization and profile management support (including allowing managing of multiple distinct Cwtch profiles).
All of this comprises a lot more work for our small team, and we also have other work going on, some of which you’ll get to hear about soon. But that’s our rough outline for the next while for our work on Cwtch. We hope you’re as excited as we are for how far we’ve come and where we’re going next! And as always, if you like our work and are able to, please donate, we are a small team with a shoestring budget but big goals and plans so every little bit is highly appreciated!
We encourage those interested to join our Cwtch Alpha discussion group using the following invite:
For those who are more adventurous, please check out our continuous Windows, Android and Linux builds. These get updated after every approved pull request, and are likely to be much less stable than versioned builds. https://build.openprivacy.ca/files/.
The Open Privacy Staff