Here are some of the main things to highlight this week:
- The second version of the Crust Test is now online! See this post for more information on how to join it.
- @jean-philippe is the newest member of the Routing team.
- @Vinitha_05 joins the team today as Assistant Manager in the Chennai office.
- The front-end team would like to encourage community members to participate in the discussions around how to store RDF data on the SAFE Network. The discussion is taking place in this Dev Forum topic.
This week in Marketing, we’ve been preparing for the release of the v2 Crust Test - from videos, to voiceovers, forum instructions, screenshots and social messaging and the inevitable GDPR discussions. We’re also about to start using the new CoinGecko Beam service to share Development Updates. It’s an interesting service as the information will then be delivered via API to other crypto apps and widgets and it’s an approach that we’d like to build on each week in order to expand the distribution of our updates way beyond the reach of this Forum. In amongst the other stats and content we’ve been juggling this week, we’ve also been working on a new email subscriber plan - but more of this to follow very shortly!
Yet again we would like to welcome new members to the team (check us out taking on new hires two weeks in a row )
@jean-philippe joined the company today as the newest member of our Routing team and he will be based here at HQ. JP has been following MaidSafe for a number of years and took the opportunity to approach us directly when he found out we were recruiting.
@Vinitha_05 also joins the team today as Assistant Manager in the Chennai office and will be working very closely with Krishna and Nadia.
Please give them both a warm forum welcome.
Marketing Strategist - after @dugcampbell, @victoria and @nicklambert conducted final interviews last week, the role has been offered and accepted. We will have more information for you next week on their start date.
Executive Assistant - @Victoria has conducted first stage interviews for this role and is looking to move to the second and final stage by the end of this week/start of next week.
Network Engineer - yup still looking
Ok, so we’re all hyped about the latest Crust test I know, but having done our tidying, tweaking and preparing, this week has been beautifully quiet. Not a put-your-feet-up kind of quiet, but a deep thinking, creating, sleeves rolled up kind of determined quiet.
Thinking isn’t the same as doing, we know, but there is reason for you to pay attention here and perhaps allow yourself just a little excitement. I know I am. For what we turn our attention to now is the ecosystem.
On the one hand, the SAFE Network is infrastructure: the autonomous mega server ready to be built upon in all manner of ways. On the other hand, it’s something akin to an OS—to be inhabited—accessed from a multitude of platforms and countless contexts. This is the ecosystem.
How do we design this ecosystem on a trajectory that takes us through to launch and beyond? And how do we make useful, understandable, trusted tools that are relevant and helpful now, and yet grow to maturity for public release?
This is the stuff of a quiet week. My kind of silence.
SAFE API & Apps
For those keeping an eye on our
safe_browser repository and project board, you probably know already we are working on fixing high priority bugs, but we have been especially looking at a bug related to an apparent corruption of the mock file in a certain scenario. We’ve been working closely with the SAFE Client Libs team on this issue and even though we have more ideas of how to reproduce it and some theories of what could be happening, we are still trying to find its exact root cause. We found a workaround which can be used by developers that are hitting this bug too often. We have added the details as a comment to the issue itself on GitHub (thanks a lot @nigel for helping us with validating this workaround).
We’ve been able to resume our research on RDF related topics, and for those who didn’t have the chance to read and/or participate in the discussions around how to store RDF data on the SAFE Network, we would like to invite and encourage you to do so. The discussion is taking place in this Dev Forum topic, where we are trying to explain the reasoning behind the decisions made for the PoC implementation (that we presented at the Decentralized Web Summit 2018) and the type of things we consider important.
There is also an ongoing effort to have an RFC ready for the proposal of migrating our DNS system data into an RDF representation format. We are aiming at triggering the discussion and public review of it hopefully in the next few days. This is an important aspect of the research being made by the frontend team since it will allow us to standardise not only the DNS system data, but also the format we use for our Files Containers/Maps (like the data stored by our NFS emulation layer).
The initial implementation of the getting started Android application to demonstrate the use of the safe_app_java API is complete and a pull request has been raised which is being tested and reviewed.
SAFE Client Libs
We have been working together with the front-end team to analyse the bugs that they discovered and reported. In parallel, we have kick-started the process of preparing the next SAFE Client Libs release which should combine a lot of changes and bug fixes that have gone into SAFE Client Libs since the latest release in July. The progress of the new release has been slowed down a bit as part of the team switched to help with the Crust Test and we didn’t have enough resources for code reviews and testing. However, with more requirements from the front-end team, we’ll be giving more attention to Client Libs in the coming days.
The thorough work on systematic detection of various forms of malice continues in Routing.
This week, we finished implementing and testing the detection of an invalid gossip creator (if a node relays gossip from a node they shouldn’t have accepted gossip from). We also implemented detection of a gossip event that’s invalid because it’s
other_parent has been created by its own creator (node faking communication to itself).
We progressed the implementation that detects an accomplice and wrote tests for it. An accomplice is a node which misses an opportunity to accuse a malicious node.
So far, we have been performing functional testing of each malice detection we have implemented. This consists of thinking of one or two scenarios for each kind of malice and verifying that the code behaves as expected in these cases. Starting this week, we will be complementing these tests with randomized tests as part of our integration test suites. This will allow various edge cases to be tested, especially when combining different types of malice; allowing us to cover many more situations than we could possibly come up with on our own. In the process of writing these tests, we already identified a few subtle issues that we are addressing in the same scope. For instance, we caught and fixed an interesting behaviour where nodes would accuse themselves of malice due to a bug. We also identified an issue in our recently introduced fork handling code. We are still addressing this issue. This development is extremely valuable as it allows us to catch our errors earlier, which means that fixing them costs less resources. Also, it allows us to build up a growing amount of confidence in our code as we are building it; which is a great place to be for any software project.
We wrote some tests for the API functions that were added recently to facilitate integration with the Routing library. We also started soak testing a specific commit for early integration with Routing while the malice handling work continues. This will allow us to progress the work on sharding in Routing in parallel with the continuing work in making PARSEC production ready.
After the structural changes to PARSEC of the last few weeks, we have been continuing to bring the graphs writing and parsing up-to-date. This is useful for tests and for manual analysis of the code’s behaviour.
On the community front, @pierrechevalier83 and @jonhaggblad attended Mozfest over the weekend with @povilasb. It was quite inspirational to see so many open source projects communicating about their ideals. In particular, the trend of protecting individual user’s data is becoming more and more important and many projects are tackling that beast from many angles. We particularly enjoyed our stop at the Solid booth where Ruben Verborgh laid out the vision for separation of data and applications within Solid in an inspirational speech. We also enjoyed Tim Berner Lee’s keynote talk on the same subject.
@pierrechevalier83 also attended the latest SAFE Network meetup in London on Tuesday. The attendance was low but the quality of discussions was there and it was a pleasure to participate. We discussed ways to build up the attendance in future meetings. Watch this space!
Last but not least, the Routing team is happy to welcome our latest addition today: Jean-Philippe is bringing with him 11 years of experience in software development, including 5 years developing networking applications. He has been interested in Rust since the early 1.0 days and has been interested in MaidSafe since 2014. Per tradition, he will tell you more about himself in his own words in the next few days.
This week was all about the second Crust test and the required preparation work: implementing, testing, and polishing the direct connections. We started with testing it internally and analysing the logs we got as a result, discovering a surprising network behaviour in some cases. One of such cases was shared and explained in the Forum topic “Crust Test: Why Encryption Matters”.
We have been also working together with the QA team to automate the builds and deployments as much as possible. Both @ChrisO and @StephenC provided their invaluable help and expertise in that and now we have got rid of the repetitive tasks.