Here are some of the main things to highlight this week:
- Dug, Pierre and Bart will be presenting a deep dive into PARSEC at the next Work on Blockchain event in London on Tuesday, September 11.
- We are delighted to welcome Nikita (@nbaksalyar) who took the decision to relocate to Scotland all the way from Russia.
- The Routing team have started working on the code for node add/remove in PARSEC. This is a critical path item in order for Milestone 3 to begin (in parallel with the remaining Milestone 2 work) and therefore deliver Alpha 3. It is a rather complex piece of code and the team are relieved to have it so well specified in design.
Today, we’ve finished production of a video which lets you use the generation of graphs to visualise consensus as it occurs using our PARSEC algorithm. We’re now tweaking it slightly to make a very minor change. This is in the process of being done and the video will be released tomorrow - we’ll update this post as soon as it’s live. The video provides more context for those wanting to poke around in the PARSEC code in a bit more depth - so please give it watch and feel free to share any suggestions or feedback on any other information that you feel might be useful.
@dugcampbell will be speaking at the ‘Mathematics for Industry: Blockchain and Cryptocurrencies’ conference at Manchester University, before joining @pierrechevalier83 and @bart in a deep dive of the PARSEC consensus mechanism at Kings College London next Tuesday (September 11).
We are delighted to welcome Nikita (@nbaksalyar) who took the decision to relocate to Scotland all the way from Russia. Nikita was here earlier in the year for DevCon and has said that it feels like he never left and is happy to be back. It’s wonderful to know that our devs want to come over to Scotland and having Nikita located in Ayr will enable even better collaboration with the rest of the team based at our HQ.
We are also recruiting for a number of roles at present: Rust Engineer (can be remote), Rust Engineer with Networking experience (can be remote), Software Test Engineer (based HQ), Dev Ops (based HQ) and a Marketing Strategist (based HQ).
SAFE API & Apps
We are moving the SafeAuthenticator mobile app to a new repository: safe-authenticator-mobile. A pull request is under review to move the code to this repo. Also, the safe_mobile repo has been renamed to safe-email-app-csharp and will contain an example email mobile app.
The documentation for
safe_app_java is slowly taking shape. The in-code comments being added will generate the documentation using javadoc. In parallel, with the help of the Client Libs team, we are also investigating the Android/JNI issues to get the Android tasks back on the road.
Peruse v0.7.0 is almost ready to be shared with all of you, we’ve been working on minor fixes in our CI and automated tests for Peruse and it’s now ready for some more internal testing before being published. This version will also include the PoC features we’ve been working on recently, like the WebID switcher, and APIs needed to allow Patter and the WebID Manager app to work. This is the very first time we are trying to expose things which are still not finalised but that we’d like to share with everyone to get very early feedback. We saw that having the Peruse PoC and the Peruse mainstream release separate was causing some confusion and that’s why we are looking at other ways of being able to evolve the apps with stable features while at the same time being able to get the community engaged in the early stage of the development of new features. We believe that if we get this right we will get more feedback, more people testing our new features early on, as well as encouraging everyone to participate in the process and hopefully contribute also with code
SAFE Client Libs
During this week we have been laying the groundwork for the integration of SAFE Crypto into SAFE Client Libs. While @povilasb takes care of having SAFE Crypto integrated into Crust and Routing, we are moving towards the integration into the SAFE Core and Self-Encryption libraries. This will not be a quick process because the Rust-Sodium and SAFE Crypto APIs do not translate 1-to-1, so in the process we might need to raise a few PRs for SAFE Crypto too.
While SAFE Crypto remains a priority, in parallel we have been working on improving the debuggability of Client Libs on mobile platforms, and on Android in particular. By default, the standard system error I/O stream (
stderr) is muted on Android, so we needed to provide a new API to redirect errors to Logcat, which is an Android tool to get system logs. This also helps us to pinpoint and fix the bugs discovered by the Mobile team.
We also made some improvements to our minor crates, such as
get_if_addrs. We reviewed and merged a small pull request improving the stability and safety of the library. We intend to do a wee bit more work there to get rid of unsafe Rust code where possible.
We’ve been continuing towards Milestone 2 of Parsec again this week. We’ve got all the refactoring done now, and the dot parser we mentioned last week has nearly landed too. Once we get that merged, we’ll be able to conveniently write functional tests which will help us maximise the efficiency of implementing planned features as well as build comprehensive coverage over time. While that’s ongoing, we’ll be adding the functionality which is more or less central to Milestone 2: namely supporting dynamic membership. In fact, we’ve just started on a couple of these tasks today!
We’ve also set up a framework (criterion) which will allow us to run benchmark tests. The point of these is to allow us to get a realistic idea of things like Transactions Per Second (TPS), but they’ll also be useful for checking that we don’t regress performance-wise as we make further changes to Parsec. This is still in the early stages - we don’t yet have a detailed plan of how we’ll achieve these, but it’ll be all the easier now that the framework is in place.
Things should progress a bit faster now in Routing, since not only did Bart restart after his holiday, but Adam has returned from paternity leave and has been drafted straight into the Routing team (from the frying pan into the fire?).
Finally, Pierre and Bart will be presenting a deep dive into PARSEC at the next Work on Blockchain event in London on Tuesday, September 11; following a snazzy introduction to the SAFE Network by Dug. This talk will be a longer format followed by an extensive Q&A. Join us if you feel like getting technical
This week we did some more changes in safe_crypto required to integrate it into Routing and eventually published new version. That allowed us to finish the safe_crypto integration. Also, we were very eager to integrate the Crust dev branch into Routing but unfortunately we faced some obstacles: Routing uses public signing keys to identify peers whereas Crust has no idea about them. That won’t be fixed immediately though as @povilasb is going on vacation for 2 weeks to fully recharge his motivational and creativity levels. So stay tuned and you’ll hear from us soon