SAFE Network Dev Update - July 30, 2020

I don’t spot mention in the previous update but no matter. Is the tree CRDT data type mainly for the local safe file system or does it have to do with policies and the different branch mutations as well? Just trying to follow along.

The progress with AT2, farming algo, vaults, PARSEC removal, CRDT, etc is an absolute whirlwind!

As much as I’d like to see more public testnets I understand the redundancy until parsec is fully removed and we have more features to test in the wild. I do hope that the IGD trick to allow for the picky UPnP routers gets added to the new kids on the block :wink:

In JAMS news, Nick and I have found a way to simplify app user flow and UI. Of course not much has been shared in quite some time but we’ve got some updates to do regarding these changes and some other small fixes. We’re planning on making a landing page with a simple ‘login’ or ‘authenticate’ button to handle the auth flow leading to a discover page, probably with some hard coded music so that when a new user shows up to a brand new site with no uploaded music or easy way to search off the bat, there will be music to add to playlists and so on. Once all of this is done we’ll just waiting to pounce on safe-nodejs as soon as we can!
When all is ready I look forward to sharing a big dedicated update and hopefully everyone being pleasantly surprised.
Just going with the flow and happy seeing the pace of the team.

Great work @maidsafe!

20 Likes

It was mentioned in the last 2 updates, in safe-api section.

It is a generic tree data type that satisfies CRDT requirements. As such, if it works out well for filesystem usage as we hope, then we should be able to make the raw tree data type available for apps to use directly, just as with sequence. Policies would surely apply, as for other types. That said, one step at a time. We’re not there yet.

So far I’ve just been coding up the algo as described in the (pre-print) paper and testing it out. As far as I know, this is the first hand-coded implementation in the world. The algo in the paper is defined in formal isabelle/HOL logic and then machine translated into (unreadable) Scala code for compilation and execution. So definitely cutting edge and exciting!

15 Likes

That’s one of the things I love about you folks!
Also thanks, I was looking for it under CRDT not safe-api section of the updates.

6 Likes

Will be so good once Parsec is out.
I did really well in English as a lad but am learning some new stuff with each update like " supporting concurrent Policy mutations with sequence items mutations …". Can someone interpret that into English for me.

I am going to throw that phrase into a random conversation I have next week and check the reaction I get

https://photos.app.goo.gl/nR4rJTMs9oCrXwKC8

6 Likes

A data item has a policy attached. So who can update etc. The data here is a sequence (list). So the policy can update and also the list. i.e. you were allowed to write, but now have been removed, however you were allowed at one point. So the CRDT has to know how to handle an update from you, it cannot apply it to the current policy as you are not allowed, but it can apply your op to the seq you were allowed to write to.

So we branch every policy update to contain it’s own sequence data. That way the latest you are not writing to but you are writing to another point in history and that’s cool as you were allowed to write there, even years and years in the future :wink: So if you went on a trip to mars and were updating stuff and came home to earth then your updates would still work, but maybe not on latest seq data.

18 Likes

Thanks for trying David but I am a lost cause. Really appreciate your effort

4 Likes

I’ll give it a try…
Say there is a piece of data on the network that acts like a Google doc. Different people are given permissions to modify the document. The network is designed (through CRDTs) such that when multiple edits are made to the document by different people, even when working offline, the changes will always merge successfully back into this one document. But what if your permission to modify the document was revoked while you were making an edit? The network doesn’t have a sense of time, so which came first, your edit, or the revoking of your permissions? Should the edit be merged or not? No way to tell. So they’ll make a new copy of the document every time the permissions change. Your edit would be applied to the old copy of the document where you did have permission to edit it, while presumably others will continue work on the new copy.

18 Likes

Gogogo team! Its getting close!

8 Likes

Thanks. That makes sense. Much appreciated

:cryptoskeptic:

7 Likes

So, when will be the next testnet?

2 Likes

When the devs think its ready for us to test - not one second before and probably no more than a few hours after.

6 Likes

I guess a bit after PARSEC is fully removed. We are almost there.

5 Likes

If that is the cause of the crashes, then yes.
If not, then also memory leak should be found and eliminated.

1 Like

:man_farmer: kill all the bugs! :fire:

2 Likes

Thank you for the heavy work team MaidSafe! We are stronger and alive together! :dragon:

I add the translation into Bulgarian in the first post :dragon:

3 Likes