Hi Everyone I am Peter Jankuliak and I work for MaidSafe as a remote developer. I am based in Slovakia and have been primarily involved in rUDP/Crux and Crust.
As was covered by the previous weekly updates, everyone in the team is now assigned
a library or two for which they are primary/secondary maintainers. For me, it is the
Sentinel and Routing libraries respectively.
If I was to sum up what the Sentinel is all about, I would say it is to remove the standard single point of failure with cryptography, that is, the centralised Certificate Authority. The idea is nice and simple, instead of asking an authority for the public key of an entity, we ask the nodes which surround that entity, then, once enough nodes reply, we determine the public key by cross referencing the results.
One can imagine that this requires some work with multiple arrays of arrays, maps of sets
…etc… and this is where I must say I’m really glad we get to work with Rust. Due to it’s Iterator API, the code reads like a SQL command on many occasions written in the language itself. The code is also a lot shorter due to this and a lot less complex than we had in C++ before, not to mention more correct.
But let’s step away from the Sentinel. One thing I wanted to mention that started
with this sprint is the shake in responsibilities of each programmer. Up until this sprint
most of us had their own playground they worked on. This was great in terms of focusing
on getting the job done as one could get into the zone when the day started and left the
zone at the end of the day. But the one major flaw with this approach is that the knowledge of the project as a whole was concentrated around David leading to him being flooded with questions from each side and a dangerous centralisation of knowledge.
This has changed with this sprint and each one of us now has to do reviews of their
secondary libraries on a daily basis. I think this may slow progress in the short term
a little as we become used to the context switching, although the sprint
is still scheduled to finish on time. That said, I’m quite excited about this change, because in the long run this will increase the team’s knowledge and progress will accelerate beyond what we had prior to this sprint.
Back to the updates though, Sentinel is about 50% done, and we expect to integrate it with Routing soon. Prakash and Ben are working hard on address relocation in routing, this is another security feature that should prevent attackers from generating their own network IDs and thus claiming they’re someone else. Niall is deep in Crust improving node discovery on LANs while Mahmoud is helping in Sentinel too with writing tests and a lot of other guys are solidifying types/structures in the maidsafe_types library.
Spandan and Krishna have created a mock of routing to allow the client to be fully implemented and tested independent of routing, no small feat. This is the same process we took with vaults and works very well. Today Spandan demo’ed the client self_authentication on this and it was very cool to see this working so fast. The progress in Client to get an API for app devs is amazing and this sprint will see the start of this API. App devs will be able to start developing against these API’s straight away. With Qi and others building vaults to include safecoin farming rate analysis and storage changes (also in this sprint) you can see that we have something pretty special happening. Brian and Shona has created some nice graphics and this will see the maidsafe_types library’s readme becoming easier to understand. He also created the first test safecoin last week, so we are watching him
Mostly thanks to Ross, QA are moving forward and have cleared the backlog there, so much more effort will be put into the installer part of the project again. All in all another hard week ahead and a great few initial days behind us. The speed now is amazing and seeing what’s been achieved on a daily basis is very comforting and head spinning all at once.
EDIT: Oh, and here is the weekly update from Justine.