I think that last week can be summed up by the word ‘optimisation’, with most of the Dev time spent working on testing and paying particular attention to the performance of the network / code. Before we jump straight into the update I would like to take the opportunity to remind everyone that what we have currently released to the community is a pre-MVP for community testing and is not feature complete. So full anonymity is not in place, nor is complete security and we are aware of these current limitations. As the rollout progresses these gaps and limitations will be removed until full security, privacy and freedom is in place.
##Crust - uTP / API : Vinicius / Andrew / David
This week has mainly consisted of testing and bug fixing. Additionally, the uTP bootstrap connection code has been improved to be more parallel. Also Crust has been changed to allow more things to be configurable such as the location of cache files.
TCP heartbeat code is still being implemented, allowing clients and / or Vaults to know if their connection has been lost. Potentially the connections module will be taken into a new crate to simplify this process; Andrew is currently investigating.
We are testing against uTP only, to allow hole punched connections and also manual port mapped connections in anticipation of being able to get the Vaults into people’s hands and expand the testnet to everyone. This is happening today (Tuesday) and will not make the cut tonight for any release, unfortunately. It was a pretty mad week with lots of small issues that appear to be resolving now, just not fast enough for an immediate release this week. We hope these tests prove fruitful enough for an expansion of the network very soon.
The front end team will have to again lead the charge to MVP with more features and bug fixes.
##Routing - Vault Integration : Andreas / Adam / David
This week we were mainly busy catching up with the latest changes in Crust, adapting Routing and testing and uncovering some issues with them. Once these are sorted out, nodes will finally be able to save the peers they were connected to in a cache file, so that the next time they start they will have a larger selection of seed nodes in addition to the ones in the original configuration file. Also, the network should be better prepared to quickly detect failing connections and to deal with pairs of nodes that are both behind NAT devices. These kinds of connections usually take longer to establish than direct ones.
##Vaults : Brian / Fraser / Qi
Work here has been almost entirely focused on improving unit tests in the Vault code. We’re now in the happy position of having almost all personas covered by fairly comprehensive unit tests.
We have also moved code that was shared between Core and Vaults (predominantly message and error types) into a new repository so that neither Core nor Vault needs to depend on the other - rather they can each use the minimal new safe_network_common
library.
In the coming week, we’re hoping to finalise the ImmutableData naming RFC and complete the implementation of this.
##Client - Launcher : Krishna / Spandan / Shankar
The safe_core library was updated to version 0.12.1. The mock routing feature has been updated to emulate the Vault errors. @krishna_kumar and @shankar have been fixing the issues that are being reported from the forum and Customer Support Desk. A few of the issues are still open and should be addressed soon.
A log visualiser tool is being developed to help with tracking the logs to improve the diagnostics of the Launcher and Vaults. This tool will provide the ability to monitor the logs remotely. Debug logging will also be improved from the Launcher UI as part of this update. Logs from the client applications will be printed in the console by default and also logged to separate files (launcher_ui.log & launcher.log) which will be placed near the binary. If the user passes the argument to connect to the log visualiser, only then will the logs be sent to the visualiser, which will provide basic features to filter the logs.
##UI Design : Scott
@scott has been continuing work with @shankar and @krishna_kumar on the roadmap implementation which is continuing to see progress made on it.
Work on the video for Launcher is also continuing with the narration and editing left to compete.
##Customer Support : Ross
We are continuing to process the open issues that have been raised, a lot of which have already been addressed by the dev team and should be resolved and closed off when the next release is rolled out. Thank you again for your input - it is much appreciated.
##Known Security Limitations : Everyone
As mentioned at the outset of this update, the communication that the binaries and test platform that we have released are not the MVP, but a pre-MVP release for testing, in some instances needs clarification. In particular, clearly defining the known limitations of what has currently been shared and what people should expect as the rollout continues requires to be expanded.
So when we roll out future releases we will endeavour to better explain which security and anonymity boxes we are ticking and which we are are not, and why not, with each iteration, as we move towards a fully secured network.
The best way to share this with you guys has not yet been finalised and will be one of the tasks we will be working on this week. Hopefully this will help differentiate our self-imposed limitations from bugs, etc, if we can create a clear set of limitations per release that folks can easily reference.
Thank you for the ongoing support, here is a link to the transcript.