SAFE Network Dev Update - July 12, 2018


#22

I’ve got a couple bookcases as well but in a makeshift studio in a garage with concrete floors, that acoustic material worked wonders. A good mic and some compression and a small gate is always useful too but that’s getting into the weeds a bit, though that rack that @chrisfostertv had shared a couple updates ago is prolly a quick setup. Sound deadening will take out most, if not all the echo and make for more pleasing audio to a youtube veiwer. Dug and Sarah have the presentation skills, they just need the tools to match it.

But like I said before still a big improvement so far.


#23

Small error in the instructions: git https://github.com/maidsafe/parsec.git should be git-clone https://github.com/maidsafe/parsec.git

Also it might be worth mentioning that Rust is a prerequisite?


#24

Great to hear you are already on it. Hopefully it gets sorted soon.


#25

I’ve been playing around with this while also watching the World Cup, so my focus is probably not the best! Couple of questions for @pierrechevalier83 and @fraser:

Gossip Round 003
================
Votes:
  Alice: []
  Bob:   [QQEnf, 0Etea]
  Carol: [0Etea, QQEnf]
  Dave:  []
Stable Blocks:
  Alice: []
  Bob:   []
  Carol: []
  Dave:  []


Gossip Round 004
================
Votes:
  Alice: []
  Bob:   [QQEnf, 0Etea]
  Carol: [0Etea, QQEnf]
  Dave:  [QQEnf]
Stable Blocks:
  Alice: []
  Bob:   []
  Carol: []
  Dave:  []

In Gossip Round 004, why does Dave only receive information about QQEnf? I thought nodes received information about all events they did not already know about? So shouldn’t Dave also learn about 0Etea at the same time since he must have received the information from Bob or Carol (assuming he didn’t observe that event himself independently)?

Secondly, some gossip rounds seem to cause no changes in the output. Why would that be? What’s the definition of a gossip round? (This output generated by running cargo run --release --example basic --features=dump-graphs -- -p4 -e2)

EDIT: Just noticed the word “Votes” - I guess that’s the reason.


#26

I’m just now noticing that this is the first week the update topic name starts with ‘SAFE Network Dev Update’ instead of ‘MaidSafe Dev Update’ :+1:
The people who asked for that should be happy about that, but I’m not sure they’ve (all) noticed it already :face_with_monocle:


#28

I’ve been playing around with this
Awesome! So great to have eyeballs around our code :grinning:

The output you’re seeing in the console is a very small part of what’s going on in parsec. Basically, it shows you what events got voted on and which blocks were made stable. To see a much more complete picture, you would need to check the graphs (hopefully, the tutorial.md file makes it clear how to do that. Feel free to ask for more details).

So these “rounds” are not really a PARSEC thing. They’re specific to the way we designed this example: every “round”, each node sends a request to a random node and handles the corresponding response. Each node also starts with a number of network events to send. Each round, they have a chance to randomly remove one of these events from the list and gossip it to other nodes.

This particular scenario is totally arbitrary and does not reflect a realistic situation, but it is simple and allows to showcase the protocol.

So the “Votes” section does not imply any communication between nodes: it simply shows when each node randomly picks each event and starts gossiping them. The “Stable Blocks” section gets populated when, after gossip has been going for a while, blocks start becoming stable. (I.e: nodes know for sure that if they pick it as the next stable block, all other honest nodes will pick stable blocks in the same order)

Checking out the .svg files generated when running the example should give you a much better visual impression of what’s going on.

Here, I tried to answer your question by explaining how our example works in general. In the future, if you have any specific question about a particular scenario, please make sure to copy the random seed in your message so we can reproduce the same scenario and comment on the specific :wink: << This makes me think we should mention this in the tutorial :wink:


#29

Thanks @pierrechevalier83. Yes I thought it might be something like that. I can create and view the svg graphs fine, but I was struggling to equate the two representations of what’s going on. The console view is easier to understand (the svg graphs get pretty large and complex once you step away from the basic scenario) and it confirms that all the nodes come to an eventual agreement and what the final order is, which the graphs don’t seem to do.

EDIT: Oh and congratulations! - I guess you supported France?


#30

I take your point: the svgs contain much more information which can make them harder to parse. If it helps understand them, each one shows you all the gossip that occurred until a given node decides of a given network event as the next stable block. It explains why that node picked that block by showing all the intermediary data from the PARSEC protocol.
Looking at a single graph, you can read it from bottom to top, starting by the votes on cyan blue. When enough votes for the same network event have happened, you get “valid blocks” in red. Going up, you reach the first rectangular gossip events which are observer and contain estimates for each meta vote. Each event from that point on shows the values for estimates, bin values, auxiliary values and binary decisions. Once a gossip event created by the node who’s deciding contains only non empty binary decisions, the next block is made stable.
I hope this is not too overwhelming. If you have suggestions for visual improvements that would help convey all that information more intuitively, please share :smile:
Edit: Thanks :smiley: I didn’t want to sound cocky by bringing it up, but so proud of the French team :smiley: They gave us some amazing football and brought it home :smile:


#31

Thanks for your comments, JPL.
We addressed them in this pull request (already merged to master):


#32

Is OK to celebrate - at least I hope so because I would have :slight_smile:

Congratulations to you, France and all her supporters.