We are continuing to make progress on the SAFE Authenticator plugin, the new paradigm of Authenticator-based interaction as well as our main goal of getting users running vaults from home. Nothing specific to highlight but lots of tasks are getting wrapped and prepared while the winter break is getting closer and more and more people are going to be on holiday soon.
SAFE Authenticator
Team leader: @Krishna_Kumar
We have implemented the tasks planned for the UI integration of the example app and the authenticator plugin. We will be starting to work on the Node.js API library and also on the authenticator FFI integration.
The SAFE Browser is ready to be merged, we are hoping to transfer the repo over to MaidSafe by next week.
SAFE Core
Team leader: @ustulation
The App
side of things is mostly done – NFS file creation is not yet exposed for FFI but ImmutableData and Self-Encryption are, so apps can use that to create files – the NFS File FFI API will just be there for a sort of “standard” way to do things. We’ve started implementing it in MAID-1879.
MutableData
support is complete in mock-vault, mock-routing and in safe_core::app::ffi
. Authenticator
progress is a little slow unfortunately from last 4 days or so because of Nikita going to conferences and not being available for most of yesterday and today. But with one PR from him for MAID-1852, Authenticator will have progressed somewhat too and with MAID-1873 it will be fully functional (at least minimally).
Test cases this time are a separate task, so that with the functionality in place, frontend integration and test cases can be done in parallel. Usually we have code submitted with thorough testing, but this time we decided to just do very basic tests, with more thorough ones being a separate task. We had to do this because the test cases for auth/app, etc. are a little complicated and as time consuming as the task itself in many cases, and Spandan wanted to get the functional code in place before he leaves on holiday next week – because in the worst case, even if the test cases require us to make some code changes, it will be minor fixes (plus the test cases are very detailed – e.g. MAID-1835 and MAID-1863 – so if they reveal a bug, it should give an idea of what to fix and how to fix it).
The system_uri
crate is meant to be used independently. It is currently being coded by Ben – it had lot of reviews so took time but he should complete it this week. After that, system_uri
will be completed and can be tested by the frontend code too.
Routing & Vault
Team leader: @AndreasF
As expected, our ongoing effort to extend the test suite for routing
keeps uncovering minor issues, as do the first tests on droplets. The former simulate more combinations of simultaneous joining and leaving, and splitting and merging. The latter create a network by instantly starting all the nodes at the same time: everyone then contacts node #1 and tries to join its network, retrying if it fails. All of those are pretty extreme situations that we need to prepare the network for, first by addressing them one by one to get to a basic working network as soon as possible, later perhaps by using more elaborate consensus algorithms inside each section of nodes, and maybe even by coming up with a new consensus algorithm for synchronising different sections with each other: any two sections need to eventually agree on the structure of the parts of the network that both of them are connected to.
Regarding the hacks we put in to test our “groups and sections” approach, the first cleanup steps have been made. Routing is now aware of the two types of node sets and allows the user to pick whichever is needed: In safe_vault
, we use groups for managing data and user accounts, and routing uses sections for maintaining its structure, and soon for securely relaying messages.
The resource proof implementation is making progress as well: The new message flow for joining nodes with a dummy challenge is in review, and the implementation of the actual computational and bandwidth challenge itself is underway.
And Michael has started diving head first into all the most complex parts of our code at once and is refactoring the code to remove one of our major pain points by merging the routing
and safe_vault
event handling threads. These need to share a lot of data, and if all of that is sent through a channel where it may be outdated as soon as it is received, it is hard to reason about the code. Changing that will allow us to get rid of some inefficiencies and make the code simpler, avoiding bugs in the future.
Dev Outreach
We had a bunch of successful events in Amsterdam last week!
Thanks to everyone who attended, including @Seneca, @Krekc, @John and @draw
The slides for Ben’s presentations can be accessed here.
Here’s a photo of Ben at the Front-End Amsterdam meetup:
Here’s a photo of Nick at the Bitcoin Wednesday Amsterdam meetup: