Here are some of the main things to highlight this week:
- We released the updated SAFE Network Roadmap / Project plan.
- @jonhaggblad wrote a new post on our Road to Fleming series describing Disjoint Section.
- We released the first version of QUIC P2P (v0.1.1)
- There was also a very successful SAFE Network: Glasgow Meetup earlier this week - thanks to @DavidMc0 for helping organize it.
- @pierrechevalier83 is heading out to the Ukraine to talk all things PARSEC at the IT NonStop Blockchain and Machine Learning Conference on 18th May.
Project Plan / Roadmap
Today, we’re releasing a number of documents in order to give further visibility to the Community around the road ahead for the SAFE Network. You’ll find this information contained across three GitHub project boards (Backend Road to Beta, Frontend Road to Beta, Task Level Board). In the coming weeks, we’ll also be releasing a new Roadmap page on the safenetwork.tech website which will contain a higher level view of the milestones towards the release of the SAFE Network. In order to pull all of the conversations together about this topic, you’ll find further explanations on this new forum post.
This week, @dirvine was interviewed about the Network by BBC Scotland for the new national news programme, The Nine. This is going out at 9pm this evening (and will be available on the BBC iPlayer for 24 hours afterwards). There was also a very successful SAFE Network: Glasgow Meetup earlier this week - thanks to @DavidMc0 for pulling things together on the day and to everyone else who turned up for a blether over a beer.
Still on the theme of meetups, we have both @ustulation and @nbaksalyar speaking at the SAFE Network: Brighton Meetup whilst Nikita is also speaking at the inaugural SOLID London Meetup the night before. It’s worth noting that Inrupt (TBL’s company) should also be sending a speaker to present at the meetup as well so it’ll be a good night. @pierrechevalier83 is then heading out to the Ukraine to talk all things PARSEC at the IT NonStop Blockchain and Machine Learning Conference on 18th May in case anyone’s around the Ukraine.
We’ve been working through different content ideas this week - including around the PARSEC v2 campaign, an A to Z of the SAFE Network, a reboot of the maidsafe.net website and brand imagery guidelines, amongst a range of other ideas that will be coming to fruition over the coming weeks.
SAFE API & Apps
As a minor thing, but probably good to keep you updated as some of you are actively using these tools, we just updated the published safe://api.playground and safe://toolbox.dapp on the Alpha 2 network. The playground received some fixes, and the toolbox now has a new tool which allows the user to generate the XOR-URL of ImmutableData (even with a provided MIME type) in a similar fashion to how it already allowed to generate them for MutableData.
It’s worth briefly mentioning that we’ve been investing quite a lot of time in reviewing some of the RFCs, and other ideas brought up recently like the safe CLI, to make sure they are up to date with discussions that were happening around them in the last few months. As an example, there were some discussions about the XOR-URL RFC, internally and also externally on our dedicated forum thread, which already highlighted the need of adding more details about the actual implementation of the XOR-URL “resolver” functionality in SAFE Client Libs. Also, some really good news resulting from a lot of effort put by @riddim as he was able to implement the XOR-URLs in the Python language binding he is actively working on. Our kudos to you @riddim for this, and thanks for your help in reviewing all this!
For the browser, now that we’ve got @manav back in action after his exam season, we’re working on merging the updated browser tab data structures into the dev branch and adding more tests there. We’ve also been testing out our auto-update functionality and further whittling away at the outstanding issues regarding the codebase quality.
SAFE Client Libs
The work on RDF support continues as @lionel.faber and @yogesh look into the Redland libraries to see how the API can fit in with the existing Mutable and Immutable data types to store RDF data and perform SPARQL queries. There have been some interesting findings so far. We will be sharing them along with the initial set of experimental APIs that the team has started to put together. We are also keeping in mind the changes that are being planned for the data types and how they will affect the RFC and our implementation. Following the front-end team, we’re also investing some time to update our RFCs and address comments left by the community and some of our team members.
This week, we continued implementing the steps toward Fleming in parallel with effort to complete the design work in progress.
The bulk of the Routing’s state machine refactoring is now complete with PR 1616 just now merged. This leaves our code in better shape to work on different parts simultaneously. Keeping things tidy is an ongoing process. No single work will fix everything, and changes continue to occur requiring more effort to keep things in shape. So with this big item now out of the way, smaller issues will be fixed on an ongoing basis.
The very first item on the road to implementing Node Ageing is now complete with PR 1622. This replaces our RPC mechanism to decide which candidate to accept with PARSEC consensus and so provides a consistent result. We will need all the steps in the relocation process to be consistent to support Node Ageing. We need to avoid dropping old nodes accidentally as they are relocated.
In parallel, finalizing design work is on-going: Partly writing RFCs for Safecoin and various aspects of Message Relay, partly filling out the gaps in the Routing model that is guiding the Node Ageing implementation and its tests.
Today, we’re releasing the first version of the quic-p2p crate, v0.1.1. It includes all components we’ve been developing for the last month: the basic P2P connection logic, the bootstrap cache, and Client/Node differentiation among other things.
It also includes some bug fixes and improvements we’ve made this week: we added more test cases for the bootstrap logic which helped us to find and fix some minor bugs. We’ll be continuing to expand the test suite and stress-test the library in different scenarios in the future, but so far we are pleased with the result and we are confident it works as intended.