SAFE Network Dev Update - July 16, 2020

Yes Zoki did well there… it’s easy to forget the level at which what is pitched… nice and clear and relatable. Just transfer of money to me instantly, is so important :grin:

9 Likes

If ordering of parts of the tree is time stamp dependent, how do the devs propose to resolve this on a decentralised system?

2 Likes

Time in crdt talk is not a timestamp it’s confusing as you see clocks being used, but they mean causally ordered. I wish they never used the term clock. We don’t do timestamps and I am really delighted to see this in the crdt world as it’s been a big fight I always have when folk use wall/clock time or try to, it does not exist and has infinite bugs :wink:

13 Likes

They use a pseudo time such as a Lamport timestamp. It’s not the actual time that’s important, but the ability for different participants to arrive at the same eventual ordering whatever the order they receive and apply the edits in.

If you want a great intro to this watch the video linked in the OP. it’s really well explained.

5 Likes

@danda I’ve watched Martin Kleppmann’s video on CRDTs (excellent - not just the tree move stuff, the whole thing is very good) and scanned the paper (Isabelle/HOL looks hard!) and the corresponding repo.

I’ll get back to you on the specifics in you post, but for now have made a dev forum topic (below) which includes my notes from the video. I’ve started wondering how this can work with SAFE so if you have stuff to share on options please do. I’d also like to understand how SAFE is using CRDTs currently, as I think this will help - are there any design docs around this I wonder?! Reading the code is a hard way to learn as the libs create many layers of indirection which I’ve found quite difficult to follow, so any SAFE CRDT implementation docs would be useful to see.

EDIT: do you use Riot (now Element) chat? If so we could set up a dev room for this. Is your id @danda there?

9 Likes

Thank you for the heavy work team MaidSafe! Together we are going to the future of humanity!
:thankyou:

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

6 Likes

I miss a summary in this update. As always, great work, thank you guys!

2 Likes

Hi! Are new vaults able to be started locally like 0.23 did? I made an update:
vault 0.23 → 0.25.1
authd 0.7 → 0.11
safe 0.11 → 0.15

And when trying to run vault with safe_vault -vv --first --root-dir ~/.safe/vault/baby-fleming-vaults/safe-vault-genesis --log-dir ~/.safe/vault/baby-fleming-vaults/safe-vault-genesis I get this:

INFO 2020-10-23T13:08:32.085705718+02:00 [src/bin/safe_vault.rs:114] 

Running safe-vault v0.25.1
==========================
ERROR 2020-10-23T13:08:45.223986858+02:00 [/usr/local/cargo/git/checkouts/routing-616e72cf40f12bc0/97cc0cd/src/node/mod.rs:118] ee9d8e.. Failed to start the first node: Network(NoEndpointEchoServerFound)
ERROR 2020-10-23T13:08:45.224157414+02:00 [src/bin/safe_vault.rs:135] Automatic Port forwarding Failed. Check if UPnP is enabled in your router's settings and try again. Note that not all routers are supported in this testnet. Visit https://forum.autonomi.community for more information.

Edit:
I’ve dealt with this. The solution is to add --local option. List of options is available with safe_vault --help.

4 Likes

Nice on, lots still happening in qp2p/routing and sn_node but good to see progress in the community as well. Cheers

1 Like