MaidSafe Dev Update :safe: 25th May 2015

Feels good to carry interesting updates from the past week :slight_smile: . Hiya, Let me start off by introducing myself. I’m Krishna and I’ve been working for MaidSafe as a remote dev from India. I have been contributing to the front-end team for the last year and since we transitioned our codebase to Rust, I’ve been contributing to the Core team. It has been a really interesting process so far! Being app developers it seems fitting that Spandan and I are maintaining the Client libraries. I anticipate we will be exposing increasingly dev friendly APIs in the near future :slight_smile: .

Another planning week finished. These are critical and yet even though we are not supposed to (sorry @Viv) we all sneaked a wee bit of code and tests in place. So a few weeks ago we thought lets test self_encryption and as you now know it worked! Then we tried Crust, same result! OK we figured, let’s attach routing and yes you guessed it, it worked off the bat! So during the planning week we thought lets plug in the vaults, a component like any other that has been coded independently of the other components. So we switched Vaults to use the Routing interface as opposed to the test interface and you guessed it, they work! We won’t give these out this week though, we feel they need at least the next version of Routing (almost done and @BenMS currently working on this) to make them simpler to use. Of course a Client would be nice and Spandan and I are also working toward that during this sprint :slight_smile: .

In addition to the progress we are seeing bringing the libraries together, the stability we are experiencing is very reassuring. This represents a contrast to our C++ code as we now have efficiency, speed, safety and a vastly reduced codebase. This feels like a perfect storm of development; greater code safety combined with efficiency and a massively reduced debug time.

Things are not just going well internally, we have also experienced some community contributions in Self_Encrypt and Crust and now Routing is seeing contributions. These are not random, developers are looking at our next steps and just picking up the codebase and submitting pull requests with associated Jira tasks where applicable. It is worth noting that for this sprint, we have gone back to JIRA for task management with the todo’s in each repository linking to the corresponding Jira task. The following link will take you to the sprint dashboard.

In a similar vein, we also have @HappyBeing installing the browser plugin code (this does almost nothing at the moment, it will intercept calls to safe: URLs though). He has already started to imagine some possibilities we had not really thought of, again highlighting who needs to think of everything when you have a community :slight_smile: .

So last Thursday this current sprint (rust-2) got underway, what will we be tackling in this sprint? The plan is to get the client library bashed into shape with a REST API and the addition of the safecoin farming rate (auto supply/demand balance at vault level) to the network logic. We are also looking to ensure that Crust successfully beacons across OS’s on a LAN, while also implementing a reliable UDP library (UTP). There are a few tasks (80 ish) for us to crack through over the next couple of weeks, so busy times ahead, especially with @Viv snapping at our heels. David is all over reviews and questions as this finely tuned development approach of the last six weeks keeps going. The SAFE Network is enormous in terms of capabilities and recently it has shown that it not only works, but we have tamed the complexity beast with some very neat finds in the core logic. So yes we are later than we would like, but I feel like we are making up for that in spades and the iterative component release is enabling everyone to be much more aware of the system and the way in which the libs all fit together.

I should mention Ross is all over the installers so expect frequent updates to the binaries, he is also planning to bundle installers even for the examples that you can find in the libraries. I am sure @Ross will chime in with progress report here. The idea of getting installers for the examples is to enable the community to quickly install and play around with these console apps without needing to be hugely technical. You can expect the example installers once the actual vault binaries get rolled out :slight_smile:

That’s it for this update, our continued thanks for the amazing support you have shown!

Here is the weekly dev update trascript.

34 Likes

I notice you’ve moved on to making graphics. Is there anything I can do to help? I can’t really code but I can do art.

Can’t wait for the installers and I hope launch happens soon. God this waiting is killing me. I want my maidsafe!

5 Likes

I think we have the graphics covered for now @Blindsite2k, they are technical diagrams, but the offer is very much appreciated and I will bear your offer in mind with future work.

1 Like

sounds like the pieces are all coming together nicely, very exciting times! :slight_smile:

6 Likes

thanks Krishna, a clear and very encouraging read :wink: good luck all ! exciting times

8 Likes

Being a visual person I can’t wait to see the messenger mock ups from @Shona and @Scott :smiley: by the way I think it’s really neat that different members of the team have been giving the updates @Krishna_Kumar it’s nice to hear from everyone’s perspective! We’re all pulling for you

8 Likes

Krishna - you pretty much covered it :smiley:
All I would add is that the creation of the Examples installer will be an automated process using our CI system, bundling together the Examples with instructions as they are completed.

1 Like

I agree, its really nice to hear from different members of the team through these updates. Apart from hearing from and learning about different individuals, which I like very much, it also gives me a new appreciation of the quality and strength of the team. This was already apparent from the scale of this project and the quality of the work, but all that is indirect. These voices really open up “the box” so we can all see more directly what MaidSafe is like as a group of people, and also helps me feel ever more connected to the team which I enjoy and feel is very helpful all round.

I’m also very excited to see non-MaidSafe devs submitting changes and them being integrated. I saw this last week (having watches set on self encryption, which received updates to add support for multi-core processors) and want to high five these new heroes.

So any independent devs helping out, if you are on the forum and want to take a bow, that would be great. If you’d like to post something mentioning what you’re working on here and point to your latest MaidSafe PR’s, of course an intro would be great too :).

I can’t take a bow myself, because although I did submit a PR, which David kindly accepted, it was just a bit of graffiti which he made me promise I’d remove. Ooops! :slight_smile: I will, I will. Not forgotten (but possibly cleaned up by some tidy dev anyway, I need to check).

I do hope to be sharing some code for the thing @Krishna_Kumar mentioned I’m working on before long. I’m still in research mode but will publish if I think it can be turned into something useful. If anyone has experience with NoSQL databases, CouchDB/CouchApps or is interested in building web apps on SAFE (HTML + JavaScript that loads directly via the SAFE APIs), get in touch. I could do with some feedback on my ideas and any relevant experience will almost certainly exceed mine. Hopefully I’ll have something to share “soon” :slight_smile: but I don’t have much time to work on this over the next few days so it’s proceeding slowly.

13 Likes

@Ross which architectures will be supported initially and over time? Any chance of including Odroid U3 (and C1)? Early or later?

Problem is I don’t think we can build on Odroids due to lack of compiler support for ARM (last I checked), so will this rule out installers too until the Rust guys add support?

Windows, OS X and Linux (deb and rpm - rpm still needs further testing)
I am afraid no ARM devices straight away, but the RUST devs have this listed this as a top priority post 1.0

Hi @happybeing!! I did the PR’s to self_encryption and crust to allow asynchronous process in parallel, using a crate I created.
I’ve been following this forum for five months. I wrote some posts here, but my english level is not very good, although I try to do my best. That’s why I don’t contribute more in this forum.
I’m a software engineer with sixteen years of experience. This year I have taken a sabatic to learn some English, and do other things for myself.
Now I’m thinking a new module that implements JSON-RPC in Rust (http://www.jsonrpc.org/specification). Maybe it can be used in the future on the MaidSafe API. :slight_smile:

12 Likes

Well if it means doing things you love and some of this is code we do, then drop us a line. We will help you with English for sure, we are a diverse team and if you can pick up the Scottish accent then anything is simple :slight_smile: Also knowing Scottish is important for some reason, I am sure it is :smiley:

5 Likes

Hi Five @bcndanos! Thanks for stepping forward :smile:

Your English seems more than adequate, actually I can’t see any indication its not your first language in that post. Certainly as good as any Mancunions here :wink: and I won’t even mention Scotsmen… [runs and hides]. I hope you won’t hold back from posting because of your English any more!

And thanks for your maidsafe contributions. I was really excited to see your PR go through. Great work! The JSON RPC work could be useful - its probably something I’ll need to code in JavaScript for my web app support, but to have it in the API might be useful. I’m not sure how much it makes sense to do in the API versus the browser, but obviously not all apps are browser so definitely useful. Not an area I understand much about :slight_smile:

4 Likes

Yes, definitely. It must be. Otherwise why? Why why why? :wink:

Ooops, there goes my Odroid support :frowning:

2 Likes

@happybeing I’d be stoked to see what you’re working on. I’m a frontend dev (mostly, I’ve got some full stack node projects on the go also), so if there’s anything I can contribute to here, this sounds like it!

(Would also be great as I plan on making some novel novels and other safe-based sites once this all gets going)

1 Like

Oh dear, they say ARM64 which rules out all current Odroids. I’m guessing this would leave a lot of mobile platforms out? I’m not expert but am assuming ARM64 is pretty new and powerful?

However, @joshuef is working on this over here

I doubt it Mark, they seem committed to mobile (Android and ios as well). Rust was also part sponsored by Samsung for that purpose AFAIK. So wont be long. Worst case we get an ocaml compiler and build it ourselves for them.

4 Likes

Issue then is whether ready for the testnet I guess. Fingers crossed.

2 Likes

This looks promising: https://github.com/japaric/ruststrap/blob/master/1-how-to-cross-compile.md (via @joshuef who was trying to compile for C1 although he has given up for now).

I’d take a look but don’t want to drop the CouchApp thing.

@Krishna_Kumar Thanx for the update. Seems Maidsafe is already very global, getting code from all over the planet.

@bcndanos Great work! I have no problems understanding your post.

2 Likes