MaidSafe Dev Update - 13th September 2016

First of all we would like to welcome Nikita Baksalyar to the team, he has started and is up and running very quickly. The expansion continues with two more developers starting in October and of course @lightyear is working one day a week in September and full time in October. Ben is already working on a very interesting example app that will showcase some of the capabilities of SAFE.

Since the first alpha release, there has been a massive amount of work in the Client libraries, especially in safe_launcher.

  • The Launcher UI has been updated to use React & Redux instead of Angular. This makes the UI code much easier to manage. With the previous Angular code, when there was heavy UI updates occurring such as the logs on the UI getting updated…etc… The Angular code was becoming an issue to manage and lacked performance. React which uses virtual DOM is proving to be a significant improvement in speed and simplicity.

  • Launcher’s FFI code has been updated to match with the new safe_core API, which is now a standard C-style interface instead of a JSON interface.

  • Launcher’s FFI code now uses a single process instead of multiple child processes.

  • Introduction of the Appendable Data type.

  • Implementation of the Low Level API

  • Launcher API v0.6. The main focus right now is on the API endpoints that are needed for the first example. The implementation will be completed as we add additional examples in the Dev Tutorials series.

These changes needed to happen because we want to enable developers to build dynamic applications that work entirely on the SAFE Network.

With all these changes in place, the next testnet certainly should be interesting to try and we’re also excited to see the apps that devs will be creating with these new APIs. As always, this is a testnet and especially with the scope of current changes, some bugs might occur and hopefully they can get addressed quickly and removed from future tests.

Also, we are planning to freeze (stabilize and hopefully get as close to v1.0 asap) the network’s data APIs once we are finished implementing RFC 38 – Appendable Data and RFC 41 – Low Level API. Freezing the APIs will allow us to focus on getting the network stable. As discussed on the Dev Forum, there are a few limitations with the current implementation of Appendable Data, but these should not be blockers to trying out the API itself. For now we want devs to use these new APIs and to give us feedback. The Client team will be focussing on integration, documentation and testing of the client libraries.

Dev Tutorials

It is our pleasure to announce the first of several upcoming client tutorials. To help demonstrate to the wider world that we are not only a storage network, the first tutorial we are going to release is an email app that works entirely on the SAFE Network.

This tutorial will showcase how to:

  • Create an email ID
  • Send emails to other users
  • Check for new emails
  • Read your emails

This is intended for developers who want to learn more about the following APIs:

The user interface is built using the following front-end libraries:

Since it’s built using Electron, it can be distributed as a desktop app (Windows, OS X and Linux). For the non-devs out there, we will release binaries for this tutorial because we know you guys love testing new features, but we want to make it clear this is not a standard app. It’s an example app for devs and it’s meant to be built from source.

The code examples have been added to the first tutorial and we are currently reviewing/improving the tutorial. As per last weeks update these tutorials will be available in GitBook. We also need to test the example app with the new Launcher internally. Due to the scope of changes, this is going to take some time and then when the initial tests are good, we will release a new testnet. We are hopeful for this to happen during this week.

We have pushed the client APIs very quickly and we do expect bugs, but are very keen that developers and users alike start to see the capabilities of SAFE well beyond storage. To aid this we will get through example applications (not release applications, but examples for developers to copy/extend/learn from etc.) as quickly as possible over the next few weeks.

SAFE as a secure signaling mechanism, communications platform and eventually compute is a huge proposition. We will take this a bit at a time though and these current APIs will take us well beyond storage and static websites and basic applications into the realm of NoSQL and dynamic web-based and native applications and data management (wallets/exchanges and much more).

However we do wish to stay in this level of API for a while and let our team assist and push forward third-party developers with time, better documentation, API tweaks and of course security implications. This will settle in the coming weeks as we clean up the very fast work this week and of course increase the client teams at the same time.

Busy days at MaidSafe, but we do have a few quiet ones :slight_smile:

Upcoming testnets

There will be a few client-only testnets before the next alpha release. For example, TEST 9 will only allow safe_launcher to connect, not safe_vault. The reason for this is that we are not getting any new feedback from letting users run vaults from home (TEST 8). The issues highlighted so far need to be resolved first with the ongoing RFCs before we integrate them into a future testnet.

Until vaults are at a stage where we can learn from testnets again, we will be releasing client-only testnets. This will allow Launcher API v0.6 to progress and for the additional functionality to be utilised by app devs.

Crust & Safe Core

We are adding a whitelist feature in Crust. Nikita is currently working on implementing it.

The whitelist feature ensures that a vault running in a droplet allows only other vaults running on the droplets to connect (and form a network), while not allowing the ones running otherwise (in various user machines) to bootstrap. Clients will not be filtered however, so people running Clients can still bootstrap to vaults on the droplets. We will use this whitelist feature until Vaults are stable as we want to test Vaults from various configurations (bandwidth / machine type). Also, developers will be able to build safe_core from source if needed and connect to client-only testnets.

A big amount of work has gone into safe_core. We have finished coding both the low-level APIs and the appendable data. All test cases pass and Launcher and apps can freely take advantage of the flexibility and power of these.

Routing & Vault

The core functionality for Appendable Data has been implemented in both routing and safe_vault and is now being tested. Regarding the Disjoint Groups RFC, we are planning to finish the new routing table implementation this week. We will integrate it with the core routing code next week, and finally add handling for the new group merge and split events to safe_vault the week after that.

With the work for appendable data RFC coming to an end (for now), Data Chains integration meetings are also expected to continue again while the current ongoing RFCs are completed.

BnkToTheFuture

MaidSafe’s funding round on BnkToTheFuture went live yesterday. £153,987 has been raised so far.

View our pitch on BnkToTheFuture.com

There are a few additions and announcements being planned to increase awareness as this funding round progresses.

SAFE Browser RFP

@joshuef posted a pre-release version of the SAFE Beaker Browser on the SAFE Dev Forum earlier today.

Here’s a developers preview of the Safe Beaker Browser candidate with safe-js api inclusion!

Right now, within the window var, you can access safeAuth, safeNFS and safeDNS objects, with their respective functions coming from safe-js https://github.com/joshuef/safe-js/tree/master/src

See this topic for more info: SAFEBBrowser Pre-release: 0.2.4 Test the API!

RFC process

We’re aware that there are very good RFCs that have been submitted by community members (e.g. Vault RPC), but we don’t have the bandwidth right now to focus on them. We’re sorry we can’t take them forward. After the next alpha and once we have a bigger team, that will change :slight_smile:

47 Likes

Awesome stuff as always. Great to see that there the tutorials are getting more input.

Welcome Nikita too.

7 Likes

Great update. You should’ve called it: “You’ve got mail!” :upside_down:

Welcome again @nbaksalyar. I saw you did your first PR to the Maidsafe repo today (yes we have spies on this forum!) which is great news.

@joshuef Already downloaded it. Will test in the coming days :thumbsup:.

9 Likes

Awesome update! Looking forward to using safebrowser on the next alpha.:blush:

Thanks for all your hard work Maidsafe team! Hoping you can get Alpha 2 out before B2F funding closes.

5 Likes

Thanks Francis, lots of exciting stuff. :slight_smile:

It is our pleasure to announce the first of several tutorial topics which will use these new APIs.

This sounds like there’s a tutorial available now, but I don’t see it. Ditto with the email app. Maybe clarify that as it looks like people can get at these now and if not, will confuse and disappoint.

4 Likes

This week we hope, all internal test right now. I agree it may be confusing though to not state it more clearly.

6 Likes

I really hope there is a public testnet release again sometime before the end of the equity sale.

Demoing a smoothly running p2p network should increase potential investor confidence.

3 Likes

Thanks Maidsafe team,

For another great update and all your hard work.

I’m curious anyway, can you also send emails to the legacy internet email addresses? Can you create whatever email address you want? Could you send a SAFEcoin to an email inbox and whoever receive that can send it to another email address or wallet? (could you send it as attachment?)

For devs who want to work on email this might inspire you to do email & IM on the SAFE Network.

Exciting stuff. Outstanding effort. Looking forward to this but the presentation here is way too confusing. Announcing something that is upcoming is the old Maidsafe way. The new way is to Announce it and Deliver it Boom! . No more, “in a few days”, “soon”, “maybe next week”. That is credibility lost.

Thanks @frabrunelle this is a great update and your presentation style is first class but dont start this maybe soon stuff. Just deliver it when its ready.

EDIT: PS. And ya dont have to wait till Tuesday’s to surprise us!

11 Likes

This is the most exciting update ever. I can’t wait for the dev tutorials. I really feel the momentum coming along. And I love the bigger picture and long term vision Maidsafe has. It will be exciting to watch the dev community grow and create awesome apps for this really innovative platform, the SAFE Network.

11 Likes

Great update and looking foreward to what announcements you got this week :smiley: Goodluck

One question you need to make a mail id so this will be seperate from your public id right ?

Wil we need to registrate them already or will they just like the “normal network” be reset a couple times ?

1 Like

You can make any Id public and have several, one for public mail, a secret one for close friends etc. All id’s are private until you tell folk or publish open content etc.

2 Likes

Oke i though the mail id would be seperate compared to your network id, thanks for the clarification

2 Likes

Wooot finally email! Can’t waiting to get my hands on that. Does this mean that messenging is in the works? What about safecoin? Can that be expected to be coming soon? Still woot! Email!

2 Likes

Great update. I can’t wait to see the details of the mail app, great stuff.

What does that means in practice? What kind of changes do we need to make?

I saw the mail app in @ustulation github over the last week but decided not to spoil it :yum: excited to mess with the binaries when they’re released!!! These tools, new data types, examples, are all very exciting and really lays the ground work for new devs coming onboard to make awesome new apps for all the future users of the network! Another great update as always :wink:

11 Likes

Thank you for this very nice and consistant report ! This is a LOT of excellent news, and quite some stuff to chew on .
I’ll have a slice of safe-js for starters, then a good hot Structured Data pot :stew:

6 Likes

This is all very exciting. Thanks so much for all of the hard work.

4 Likes

From what I was told, no. I don’t see why it shouldn’t be possible, though it might need a bridging server.

1 Like

Mail, immutable data and appendable data. Exactly the kind of situation Pippin should work well in.

I am one of the developers starting in October, by the way (though not on mail I think).

11 Likes