Summary
Here are some of the main things to highlight since the last dev update:
- We renamed the
safe-vault
crate tosn_node
. - In
sn_node
we’ve re-enabled the CI system for a subset of our tests, giving us all node tests across all platforms, and almost all e2e tests. - In Routing we have now resolved all remaining unit test failures from the removal of parsec, leaving only a few failing integration tests to tackle.
- The Routing PR to expose an async API has now been merged into the master branch.
CRDT
sn_fs (previously safe_fs)
This week some additional polishing of the pass-through filesystem support was done. Also, a decision was made to call the upcoming crate sn_fs
for consistency with other crates that share the “sn_” prefix.
Safe Client Libs, Nodes (previously Vaults) and qp2p
Safe Network Transfers Project Plan
Safe Client Libs Project Plan
Safe Network Node Project Plan
This week we concluded our discussions on whether safe-vault
was the best, most accurate name for the crate. These discussions on this crate had actually been ongoing for a few weeks now, with several suggestions being debated. We settled on sn_node
as we believe it breaks down exactly what that crate is, in the most simplistic term - it is a node
on the Safe Network. Anyone familiar with peer-to-peer networks will understand this technically accurate term and what it means.
So, Nodes this week has seen our client event handling refactored a wee bit and then merged into master. With this in, and after some other small test fixes, we’ve re-enabled the CI system for a subset of our tests, giving us all node tests across all platforms, and end-to-end (e2e) tests going on Ubuntu and Windows. This is great as it’s not only bringing us back up to proper test coverage for more solid PR reviews, but actually it is something we’ve never had running properly against the nodes themselves before as part of CI. Going forward, we’ll be stabilising this across all platforms (currently macOS is being problematic), and enabling client side tests against the nodes as we get those going once more.
Continuing on from the previous week, the last stretch in our pipeline to align all the modules is the integration of Nodes and Clients. As our newly async routing layer becomes more stable, which in turn improves the stability of the network sections, we are also strengthening the upper layers where data and transactions happen. We are off to a good start here with the client creation happening without much tinkering, which reflects that the nodes, together as a section, are communicating and responding as intended within themselves and with the client. As anticipated, bugs are beginning to show up at the data-transaction layer as we push forward increasing the complexity of the tests. We’ll be taking these on one by one until we see all the tests go green and get the network solid and working as it should be. So sit tight with us on this last stint, and we might just see a baby farming network waiting for us!
Routing
In Routing this week, the work to fix some bugs around DKG and relocation, mentioned in last week’s update, was merged, addressing the majority of failing tests. To complement this, there were two further PRs (fix parsec removal refactoring and simulate accumulate dkg_result) which were also merged, resolving all remaining unit test failures, leaving only a few failing integration tests to tackle.
We’ve also now merged the work we’ve been doing on exposing an async API . Several fixes and enhancements have been made to make this ready in recent days and weeks, and we now already have the async routing API in place and functional, forming a section when used with our node implementation.
The ongoing research in relation to converting routing data to CRDT continues at good pace. There are many ongoing discussions on how to properly make use of CRDT in this context. We have also started coding PoCs of a couple of different approaches to better understand how to properly architect and design it, as well as see the implications of this whole move. So far, in our heads, it is looking good and making sense, but only in working code do we trust
Safe Network App and UX
Feature Tracker / Screens & Flows
This week we continued the work of integrating the Action Menu feature into the Safe Network App design prototype. You’ll see it beginning to trickle through to the layouts in the Figma file over the coming weeks as the design is refined and iterated upon.
We were also pleased to collaborate with other designers on the Decentralization Off The Shelf design workshops this week.
With the help of teams such as ours, this project aims to build a library of design patterns that solve problems common to the decentralised networks.
While many of the problems discussed will be solved by default in the Safe Network () numerous other projects are tackling similar issues of language, mental models, and introducing unfamiliar paradigms to new users. So it was a great opportunity to pitch in, collaborate, hear of other innovative approaches, and generally tap into the design-hive-mind.
Useful Links
Feel free to reply below with links to translations of this dev update and moderators will add them here:
As an open source project, we’re always looking for feedback, comments and community contributions - so don’t be shy, join in and let’s create the Safe Network together!