Trinity Update: Feb 1st
The full article was originally published by Charlie Varley on Medium. Read the full article here.
Last week we released Trinity Mobile 0.6.0 beta. This was a substantial step forward for the mobile version, including a number of considerable changes and improvements. The addition of node quorum vastly improves the wallet’s security when interfacing with the Tangle, by requiring a consensus between multiple nodes before a response is considered valid. The mobile UI has also undergone a complete UI overhaul with updated modals, fancy animations, and refinements throughout. Join the beta and try it out for yourself here.
In the last update we announced our plans to submit both Trinity Mobile and Desktop for a second audit. The apps will be audited by a leading security firm so as to ensure they are as secure as possible when released in full. Accordingly, work has been focussed primarily on preparing for the audit. That means reviewing our security features, core logic and storage methodologies. Of course, the more cosmetic changes can wait, but core functionalities must be ready to go.
One significant feature we have been working on for a while is porting storage to Realm database. This has some advantages over the previously-used AsyncStorage. Namely, Realm allows for improved performance, stability and scalability. With the introduction of Local Snapshots, users become increasingly reliant on their local state. If you query a node for past transactional information there is a reasonable chance it will no longer store that information. Realm will allow us to implement a convenient way to import and export state further down the line, so that users can retain their seed’s full transaction history when transitioning between devices. Realm also has benefits for privacy — by way of state encryption. The Tangle’s inherent structure makes it extremely difficult to piece together the addresses belonging to a single user. However if your wallet state is left anywhere unencrypted you become a potential target for attackers. By leveraging Realm, we can encrypt users’ transaction history — both on device, and later, in state backups, when state import/export is added.
In addition to security and performance considerations, we have also been working on increasing test coverage. We have mainly been adding unit tests for desktop UI components and Native library wrappers. We will also be adding integration tests surrounding core IOTA protocol functionality before we submit the builds for audit. These tests would not only ensure fewer bugs but will also improve the overall workflow of the Trinity project as we enter V2 development.
Here are some of the PRs that have recently been completed or are currently being worked on: