SAFE Network Dev Update - July 12, 2018

Here are some of the main things to highlight this week:

  • The key output from the Marketing Team this week was the release of the PARSEC Code yesterday. If you haven’t done so yet, please support the announcement by sharing and giving the Medium article as many claps as you see fit.
  • This week we finished working on the Client API changes in SAFE Client Libs. The new SAFE Client Libs version, including all the changes that this PR brings, will significantly simplify developing apps for the SAFE Network in Rust.
  • We have also released a new minor version of SAFE Crypto, 0.2.0. This brings some new features and breaking changes to improve the API and the quality of the code.
  • As some of you noticed ahead of the official announcement, we completed the final task for PARSEC Milestone 1 this week. After the final bug was squashed, we were able to run tens of thousands of tests with random inputs all successfully reaching consensus in the same order in a small network.
  • For those of you who like experiencing things with your own bare hands, we wrote up a little tutorial to get started with the PARSEC code, going from cloning the repository to generating graphs and visualising them with your web browser. Feel free to try it out and report any observation you have.

Marketing

The key output from the Marketing Team this week was the release of the PARSEC Code yesterday. If you haven’t done so yet, please support the announcement by sharing and giving the Medium article as many claps as you see fit.

As a few people have commented on so far, this is the first time that we’ve gone down the route of having a ‘talking head’ style video explanation in conjunction with the written text and running the usual social campaigns. To make sure this is as effective as possible, we’d love to hear your feedback - was it helpful, could it be better, would you like to see more of this sort of content in the future? All feedback, good or bad (@dugcampbell assures us his ego can handle it!) is gratefully received on this.

The rest of the team’s focus this week has remained on the other two key projects - preparation for the launch of the new website and heading along to the Decentralized Web Summit. Next week, we’ll be re-recording the Getting Started Video again to deal with the sound issues we faced first time around. Finally, one last reminder about the Chicago SAFE Meetup (if you’re looking for a free SAFE T-shirt at the event, get in touch with @Sotros25).

User Experience & Website Design

The UX Team is continuously working hard to get the SAFE Network website released next week, without compromising on its quality. With the active support of the QA team, the website quality continues to get improved. On the other hand, the marketing team keeps improving the content of the website and @JimCollinson works closely with them to get those changes implemented.

SAFE API & Apps

This week has seen a plethora of PR reviews being worked on for Peruse, sorting out edge cases and upping the code quality therein. Page loading indicators, unending processes and auth-app bugs are all looking to be squashed very pleasingly (and @hunterlester improved the auth-app build process vastly, which should help debugging and testing going forwards), so we’ve started merging in these various branches.

In the land of Solid/RDF we’ve had a good week of solidifying (ahem) our POC applications and they are now looking like they’re somewhat usable by non-devs! We’re doing some final tests and tweaks before we start the internal testing of these applications.

We are continuously working on the .NET SAFE APIs and trying to provide better libraries which can be used by other developers for app development. This week we integrated StyleCopAnalyzers in safe_app_csharp. This will help us and the community to follow .NET coding standards when contributing to safe_app_csharp. Also, we have started working on the documentation which will include a getting started guide for .NET developers, API documentation and some demo app articles.

The safe_app_java project has seen some promising improvements over the past week. We were able to resolve a major bug that has been freezing our tests at random places during execution. All tests now pass consistently, except the boxEncryption test which freezes only when all tests are run together. We’re diving deeper into this, exploring, developing and bug-busting our way to a release.

SAFE Client Libs

This week we finished working on the Client API changes in SAFE Client Libs. The next SAFE Client Libs release, which will include all the changes that this PR brings, will significantly simplify developing apps for the SAFE Network in Rust. On top of feeling more “native” to the SAFE Client Libs, the language will provide more safety guarantees to the developers. We think that this would be especially important for the SAFE Network and we’re putting an emphasis on providing a first-tier support for the Rust API. Now, we’re continuing to update the examples as a test of the changes and we can report that we are happy with the new API. The next important step is providing more extensive tutorials and documentation, so expect more exciting news soon!

We have also released a new minor version of SAFE Crypto, 0.2.0. This brings some new features and breaking changes to improve the API and the quality of the code. We have added a new function to encapsulate the hashing algorithm, improved the naming of the structures and functions, and added the fast mock pseudo-random number generator intended to be used for testing purposes (moving it from the maidsafe_utilities crate). These changes should also simplify the further work on integrating SAFE Crypto into Routing and Client Libs.

Routing

As some of you noticed ahead of the official announcement, we completed the final task for PARSEC Milestone 1 this week. After the final bug was squashed, we were able to run tens of thousands of tests with random inputs all successfully reaching consensus in the same order in a small network.

The code is available on GitHub at https://github.com/maidsafe/parsec. Please read the README file for an up-to-date description of what features are currently implemented and what features are still upcoming.

For those of you who like experiencing things with your own bare hands, we wrote up a little tutorial to get started with the PARSEC code, going from cloning the repository to generating graphs and visualising them with your web browser. Feel free to try it out and report any observation you have.

We were optimistic last week about an improvement to the whitepaper that we thought was imminent. On further investigation, we found that the approach led to calculations that are too costly for use as an effective mean of proving the point we were trying to prove. We will keep an eye out and still look for better ways of expressing our liveness proof in terms of a precisely defined synchrony assumption.

Finally, all hands are now on deck for specifying PARSEC Milestone 2. On the first milestone, we found that our initial timescales weren’t as reliable as we would have wished. To try and address this with the next milestone, we plan to spend as much time as needed writing the specifications in greater detail than we did for Milestone 1. Hopefully, this should give us a better feel for how far along we are during the next sprint.

Also, the coding velocity should increase in the coming weeks as @bart will be joining the coding effort. Previously, he had been mostly working on preparing Milestone 2 on the algorithm level and trying to improve our proofs. We are also expecting a new joiner by the end of the month, which should help us deliver future milestones with that extra wee bit of oomph :smiley:

Crust

Last week, we finished the integration of safe_crypto into Crust but at the same time some tests were failing on Windows. This week we found the issue and we have to say it had nothing to do with the crypto changes :slight_smile: It turns out the crypto changes also slightly changed how we use tokio-utp: now during the initial Crust handshake we flush the uTP stream. The problem was that in some cases the uTP stream flush would never finish and hang indefinitely thus preventing from proceeding with the Crust connection handshake process. The fix landed in the tokio-utp crate and now all Crust tests pass :+1:

Crust integration into Routing was paused until some crypto changes would be made. In the meantime, we wrote more Crust tests and discovered a bug in the compatibility layer: when a remote peer stops sending connection heartbeats, after some time we expect a LostPeer event, which currently is not emitted. This is work in progress and it’s just a matter of days until it will be fixed :slight_smile:

87 Likes

1st uuuui!!! :tada::sunglasses:
Finally!!!
Now reading…
EDIT:

That’s amazing imo. The video is well explained and the presence of one of the team members explaining the PARSEC concept is imho really important. It shows professionalism and that the team cares about users.
Just one idea: in order to make the video easier for the people all over the world, i think it would be great to add subtitles in other languages. What do you think about it?

As a whole, congrats guys you’re making both huge and excellent moves

24 Likes

2nd … Buta purely random event

6 Likes

Solid update guys and gals—thanks as always!

Is there any ETA on when the PARSEC peer-review will be completed?

12 Likes

You are my heroes! Thank you very much for the great job!

12 Likes

Nice. Just had a quick glance at this and the instructions seem pretty clear so even a donkey like me might be able to get it working (famous last words). Will have a little play over the next few days. Cheers all!

15 Likes

Great work from the marketing team @dugcampbell and @SarahPentland. The audio was much better but I would suggest some acoustic foam in whichever room you use to record. These would go up in the upper corners of the room to stop boomy bass noises and these around head level. You can put them up with T-pins and not damage the office space.

But overall audio was much better. Fantastic explanation.

Congrats on the release of PARSEC code! Can’t wait to see the benchmark tests and see how many TPS we can get! Exciting times.

Any updates on SOLID integration??

19 Likes

@Nigel did you miss this?

They’re busy! :slight_smile:

16 Likes

Ah! I did, thanks Mark. I have Siri read me the updates at work and I miss the short bits sometimes :grin:

I’m wondering if that would be not-Twitter!?? Or all example applications?? Even better. Great stuff @joshuef and @bochaco

13 Likes

Nice tips, thanks @Nigel, will investigate further :smile:

9 Likes

There’s so much good stuff in this update I can’t decide what to quote for joy! Great work, and keep on truckin’

11 Likes

The video is great but needs better lighting

2 Likes

I also think the video is great. Do you have access to an autocue? It can help to keep the eyes focused on the camera rather than wandering to the side as you think of the next sentence. You can use an iPad or other tablet to scroll through the script - but you’d have to fork out on a widget to project the text unfortunately.

3 Likes

Amazing work to the Maidsafe team with getting the parsec code out so quickly.

Please think about making announcements on blockfolio’s signal, as my phone is constantly telling me of other project developments I have on my blockfolio list, but nothing comes through for Maidsafe. Seems we are missing some exposure there. Also other similar apps like Delta may do something similar.

9 Likes

Thanks for another great update Maidsafe devs,

Really love the “talking head” video, Sarah and Dug are the best. It would also be nice to see more explanation video’s about the SAFE Network from other sources as well, the community could help by asking people who do this regularly. For example ‘what is Parsec?’ from https://www.youtube.com/user/jacksonpalmerbc or https://www.youtube.com/user/LiljeqvistIvan/videos

Ideally I would like to see a video from https://www.youtube.com/user/coldfustion/videos or
https://www.youtube.com/watch?v=jGfvkjzLrNw

If possible a platform comparision video SAFE Network vs Amazon aws, Google cloud (this would give devs are real world example)

But maybe that’s asking too much
:stuck_out_tongue:

6 Likes

The Medium article Is really great!!

It’s a great one to share with most anyone.

Clap it up to the max.

13 Likes

Don’t currently have an autocue @JPL because I never use notes for talks etc - I’ll take a look into it and see what I can do to fix the shifty eyes with a bit of practice :wink:

7 Likes

Hey @Sonder I actually contacted the Blockfolio team a couple of days ago (Blockfolio Signal - #2 by dugcampbell). Apparently there’s a long waiting list to so will keep you updated when we hear anything further.

9 Likes

Yes it’s not for everyone. I find it helpful if ever I have to do presentations to camera but I always use notes.

1 Like

Just want to second what Nigel said about the echo. You can also hang curtains and use bookcases (with books) to absorb the room echo. Of course I’m a hypocrite having made heaps of video’s now - many with terrible scratchy sound :frowning: still hacking on my problem.

7 Likes