Video demo showing some basic features on the SAFE network.
So first up, Authentication. How do we as dev’s deal with authentication with the SAFE network. Let’s start off with creating an account.
Of course a user needs to first get past any license agreement.
So in this app we referred to the public id as the “LifeStuff ID”. Essentially the public id is the only part of your credential that you will be sharing with anyone on the network.
So let’s go ahead and choose a name. We will see the usage for this id in a bit but just to give a hint, it’s used for thing’s like say messaging each other on the network, shares and so on.
So now we come to the private part of our credentials. We ask the user for 3 fields, the PIN, Keyword, and later on the Password. PIN being a 4 digit number and the other two just any phrases.
Now there have been countless internal arguments as to if we should ask for three private credential fields or just say two and derive the third from the other two.
I’d suggest jumping on the mailing list and voicing your preference on the same.
This mainly just ties into ease of use and if someone can actually remember 3 unique fields without writing it down in a piece of paper or something on their desk.
So lets give a PIN and Keyword. So what is this authentication? well this is what we refer to as Self Authentication.
Basically, there are no servers on the network. So you’re essentially authenticating yourself on the network.
Simple explanation for how this works is, given a PIN and keyword, the network will retrieve a credential object to your local machine.
Then your password will be used to try and decrypt this credential object on your machine. This way your password never leaves your machine.
If successfully decrypted, the decrypted info will lead you to finding your identity on the network.
So we now come to the password. As the warning explains, without any servers, your password isnt stored anywhere and no one but you have control over your account.
So if you loose your password, you got problems. However at this point, it’s worth mentioning there is a process of N+P key retrieval system that David has planned which isn’t part of this app but I’d guess it’ll be a feature available later on. What this does is if you have say N friends, you can nominate a bunch of them to be able to reset your password for you.
Now the network would reset your password if a majority of these user’s choose to reset your password.
This way you don’t have the problem of if you lose your password, you’ve lost it all and it still keeps the security benefit’s intact as you’re the person opting who can form the group to reset your password.
So let’s create this id now. … and that’s it
So next up we’re going to have a look at the VFS this app presents to access your network data.
Now that we’re logged in, if we go to our file system, we can see a new drive which in this app is called the “LifeStuff Drive”
Now while this drive appears just like another USB drive to a user it is quite different in actual behaviour.
In traditional cloud storage, once we log into a new machine, the system downloads all our files or selected files before we can see them on our local machine.
With the SAFE network and it’s VFS, Folders and files presented are merely just the metadata or in other words a contents list. Only when a file is actually opened are it’s corresponding chunks retrieved from the network.
This already gives us some advantages over traditional cloud storage as we use the user’s bandwidth more efficiently in not downloading files that the user might not even access this session.
Some studies show after the first 30minutes of saving a file 80% of files are never gone back to.
So let’s copy a file into this drive now.
Again while it appears like a regular copy to the user, in the background, the actual file is getting shredded and chunked out into tiny bit’s and sent out to the network to be stored across multiple vaults.
With this now when we log out of this app on this machine, we leave no local trace of any hanging files from our drive. No longer do we have to remember to clean-up after doing some work on a public computer.
Once we sign out, it’s as if we were never there to begin-with.
Next we’re going to have a look at messaging.
This is a place we use our public id on the SAFE network.
So firstly I’m going to add a contact. Accept it on the other side and now these users are connected.
We can send messages just like any normal messenger app however these messages are not routed via any servers and cannot be snooped into by anyone.
We can also send files via the messaging system. One really nice feature with sending files across the SAFE network is, just like your VFS showing you just the meta-data until the file is actually opened,
files sent via the messenger is also just a information packet telling the other user where to find the chunks that will put together the targeted file. This makes sending files of any size instantaneous.
So let’s try sending a file… And that’s it
Accepting a file also doesn’t download the file on the receiver’s side as it’s only assembled from it’s chunks when he chooses to open the file.
Now while we were working with the messenger the notification features seen are all provided by the network implicitly.
Last feature of this demo app is going to be shares. Shares work like messenger using the public id and can be either public or private.
Public shares could be used to host website’s that user’s might be able to access from other client’s while private shares might be used for traditional share services.
Let’s take a look at private shares.
So we’re going to create a new share.
Make it private
Choose our only contact and give them full access.
So we got a notification on the other side and we’re going to accept the invite.
Now if we go to the share on user 1, we can see the folder created inside our shared stuff. Let’s copy some data into it.
Let’s go to our other user and see if we can access this data… and that’s it.
Finally once we log out, we can see the VFS unmounted and we leave no personal data of ours on this machine.
Thank you for watching this demo and hope this clarifies some doubts that were raised relating to what features could an app provide and what would be available from the API project for the SAFE network.