SAFE Network Dev Update - June 25, 2020

Yeah but don’t you love downing a few pints in the pub and having the same argument night after night? (I grew up in the country). What are your thoughts on Version vs Versioned by the way @oetyng?

Fair enough. I still prefer the old way but am happy to adapt if things have moved on.


Totally :smiley: , just linking it for reference of those who were not aware.


I am loving the UI represented in the figma files! Perfect, simple, and understandable interface for anyone to intuitively learn quickly. This is so important for the mass adoption of the network. Again, congratulations. It’s really coning together now!


100% UX is absolutely the most critical component to making this network a resounding success.


I second that. I don’t think I’ve seen this much of a push for ease of use and design in most any “crypto” project. It’s truly impressive and I hope it feels as good as it looks when these tendrils twine to the core of the network. I like that @maidsafe stands out from the pack, a truly authentic bunch. Great work @JimCollinson

Great seeing @dugcampbell @nbaksalyar and other former Maidsafe crew still checking in or contributing. I’m sure many would agree it’s great seeing you stick around for the cause that we all believe in.

Sequenced data is finally here! Great to see.
It would be neat to hear more about Mutable data becoming a Map data type? What is the specific purpose since there is NRS Map? What makes Mutable data a candidate for reworking to this Map type? Just curious since not much info was given.

Thanks Maidsafe team for your dedication :pray:


Good job again!

This wallet image caught my eye though:


I find it very difficult to estimate how meaningful the cost of the upload is in comparison to my funds. I think that balance and cost should be expressed as much similar to each other as possible.


$ 1.5567 -0.018


1.5567 - 0.0180

(Sigh… I wrote those values with dollar signs in front of the numbers, but it gets lost when posting. The dollar sign was also randomly omitted from other place of my reply. What is this?)

And I would also like the app to calculate the balance after operation for me, or maybe even show how many uploads like this I could do with my funds. But I don’t know if there is room for all this.

It might also help to show the balance and cost under each other:


I can’t format it here to look neat, but you get the idea.

Values and decimals are such a painful thing in cryptoverse…


It’s a limitation of the forum software. I have the same frustration while trying to display the backtick character.

These are not dollar qtys but SafeCoin qtys however


Oh yeah, was just using any symbol for mock-up purposes.

About presenting values: Let’s say a user has 5634.080663 Safecoins and he is going to upload with the worth of 20.180072 Safecoins, would it be good idea to present it like this:


Or even in this case rounded as:


Maybe not the two zeros, but double space is obviusly not possible to show here. I guess we can’t avoid crazy decimals, but somehow it should be made as clear as possible.

(Even now when trading MAID / BTC it is always a hassle to check how many zeros there are between decimal point and number, if you set the price by typing.)


There is a paragraph sign - can’t recall if that was considered previously but would be simple to adopt in interim for something not ambiguous.


§1 = $1000


If you write any text inside backtick characters (except backticks obvs) it will show up as typed: $


Which is an utter pain when trying to express something like

cp target/release/safe which safe
ALL in monospaced “terminal” font


its even worse when you screenshot a spellig mistake and preserve it perpetually :slight_smile:


Fix that one quickly before anyone notices :joy:


You mean like:

cp target/release/safe `which safe`

:clap: :clap: :clap: :clap:

I thank you, thank you.


or even image


The MutableData data type is a key-value store data type but it’s not CRDT yet, so it needs to be migrated to become CRDT and the name proposed (again as per the discussion in [RFC] Data Types Refinement) is Map.

The NRS Map is not a data type, it is just content that has the mapping from NRS names to links which is stored on a Public Sequence data type now. We could consider later on to use the Public Map as the storage data type for NRS Maps if it makes more sense than keep using the Public Sequence for it.


Hi @JPL! :slight_smile:

I’m sorry I couldn’t find the exact context of that question. I saw that you were talking about Sequence vs Sequenced, and I do understand that question so let me answer that one and hope it was the same. If not just shoot again :slight_smile:

Up until now, the data types have been called [x]Data. I agree that just as we say Mutable or AppendOnly, Sequenced is what you’d expect, an adjective for the noun Data. With [RFC] Data Types Refinement the aim for language simplification proposed removing Data. It is one of those words that very easily become inflationary in use, and in the end just constitutes noise. That also implicated a move away from adjective + noun to just a noun: heading straight on target and describing the data type structure; such as Map, or Sequence, or Blob.

More reasons to do this are found in [RFC] Data Hierarchy Refinement, where all the data types are in fact just structures with metadata and pointers to chunks (the regular SAFE Network chunks). So, we describe the structure. Under the hood, all of them point to the same type of chunks (or actually, recursively to other structures).

Now, back again to what we have right now. Sequence was just recently implemented, and as [RFC] Data Types Refinement (and CRDTs, which were actually not an explicit goal at the time of that RFC) is implemented in increments, minimal discrepancy is sought. So, it is now called SequenceData in code, even though it should suffice with Sequence, once Map and Blob (the latter is still somewhat under discussion) have been implemented. I guess there you inevitably fall into a grey area when it comes to stringency while in transition, seems it ended up with SequenceData instead of SequencedData, which is less stringent currently but more stringent with final result.

What Bochaco said here. And also, wanted to nuance with some technical aspects of using a Map data type (what MutableData over CRDT is becoming) instead of Sequence for an NRS Map:

Today, the full map content is serialised and stored as an entry in the Sequence. If using a Map, we could instead store only the specific change to an NRS Map.
The simplicity of a Sequence is that you have a snapshot of the entire state as it was, so the version of that NRS Map as of that state change, is very simple to see.
The drawback of that is a wasteful resource usage, both in comms and in persistence (massive duplication of data).

A Map data type can be designed to support version tracking for each individual key in relation to the overall version of the NRS Map. There are some more steps to do it, but it’s not complicated really. And the benefit is that you can update/access individual keys (so more light weight comms), without duplicating data.


Thanks for the long and clear answer @oetyng. Indeed, with versioned vs version I was making a comparison with sequenced and sequence - I’d kinda forgotten the reasoning behind the changes. What you say above makes total sense - why use the word data if it’s implied anyway?


to get $ to appear every time then use \ in front of the $

In this forum software the $ is a formatting character and disappear when there are 2 in the same piece of text. So using the backslash \ escapes the formatting and just places the character

also works for ` and *


These comments are all really fantastic. The community is doing a good job of providing useful feedback.

As always, thanks so much to the entire Maidsafe team for all of your hard work!


cp target/release/safe \which safe``
is what I get when I type


cp target/release/safe `which safe`

works OK but I can’t make it look like “formatted text” but thats not the end of the world.