I made a simple wee Konbini compass* app for whenever I'm ambling around Tokyo so I no longer have to go through the (_so heavy_) process of opening a map app, changing to jp keyboard and typing `konbini` to reliably find something.
Instead it's just a compass face, with brand and distance.
It's free for basic konbini hunting (has probably most of the stored in Japan), and is offline first. So maybe it's useful to other folk?? (I hope so!)
There's some stamp-book style collection things in there too, but that's more fun, and a few `PRO` gated things (more stats, filtering... soon some other store types). But none of it required for finding the next Biru or coffee.
It solves ownership of data, and removes the need for large data centers by securely, anonymously letting users share storage space.
I'd caveat that we're still in alpha, but things are coming together very nicely.
The Safe Network (will) incentive user storage and uptime through cryptocurrency, though non-blockchain based, so avoiding a lot of throughput pitfalls there. So it can also act as a storage backed currency in some fashion.
It allows users to truly own and manage the permissions of their data without relying on any third party. And it provides enough flexibility for this to let folk make applications as well as store files.
I hope that helps some? I'm trying to avoid buzzwords :) I know that site has any. It's also worth noting that the dev hub is a bit out of date (things are still moving pretty fast.) But the community (https://safenetforum.org/) is very friendly!
Let me know if I can get more specific, I'll be about for a little longer.
(Oh, also there's some other links in another top level post I made that may be helpful)
From what you say it would then appear to be a cryptographically secure distributed storage system.
So I develop an app, and while my app is running I'm providing some storage space. I get rewarded for this via some mechanism I don't understand, but involves some sort of cryptocurrency. I can then store things "out there", and the cryptography means that it's secure. Similarly, parts of other people's data gets stored in my app.
Is that right?
If so, what happens to other people's data when I turn off my machine? What happens to my data when other people turn off their machines, or are otherwise unavailable?
I don't understand what problem this is solving, or how it can work.
Sort of. You don't _have_ to enable storage etc in your app. Being a 'node' can be independent of running an app. And your app can just store things on the network without having to worry about making a user share their space (and do onboarding to the network etc).
> If so, what happens to other people's data when I turn off my machine? What happens to my data when other people turn off their machines, or are otherwise unavailable?
If you turn off your storage, you stop earning money. The network ensures there are X (currently 8, I believe) copies of each piece of data available at any one time, so data on the network would be replicated to make up for whatever went missing as you (or anyone) turn off a node.
> I don't understand what problem this is solving
The problem of centralisation and data hoarding. Facebook. Google. Being de-facto forced into giving up your data as a user.
It aims to decentralise this, and (hopefully) will make it easier for users to remain in control of their data, without the need for massive server farms etc. By using spare space on user's devices.
The crypto currency is an incentivisation layer. (you are rewarded for participation in storage / serving data etc).
One thing as a long time follower and in the MaidSafe forum would be an active thread where community members can ask technical questions and get technical answers when the team has time to dive in and give feedback. Re-reading this bit I think my question would be: How does SAFE Network, which is decentralized and anonymous for its users, know how many nodes are currently running with its replicated data without a crazy amount of polling and network congestion for every chunk of data. Is the X nodes have this data checked at the time of request and confirmed on all nodes? If so that would be really slow but reliable to ensure if a 1-7 nodes have lost the data that that data gets replicated elsewhere. Also risking that old data that hasn't been fetched in awhile could have already lost their potential 8 node replication. Now get even more chatty where all storage nodes constantly poll each other for their known chucks they posses, that polling at scale sounds like it would become a real chatty bottleneck to have to basically crontab that seeking functionality to ensure availability of data at all times. Would be good to have a thread in the SAFE Network forum where programmers talk with the team and grill on the nitty gritty to see if these aspects have been solved and can be linked to in the source code for study.
Each section has Elders, these are 7 oldest (most trusted nodes). The have a DB of which Adults (up to 120 of these per section) hold the data. On any Fetch, the Eder can confirm the relevant Adults passed the data. Also on churn (node leave/join) the relevent data is copied to new locations. So churn in the section helps us maintain the data.
An important role is continualy checking nodes for malice, evan those we trust more as they may be in zombie mode bad guys.
Any code that can be linked to that already accomplishes all this or still to be implemented? And to be picky in language I see you say the "Elder can confirm" does this mean the "Elder will confirm", just a change in wording from a possibility to a certainty.
"An important role is continually checking nodes for malice, evan those we trust more as they may be in zombie mode bad guys." -> This is still to be implemented as well correct? And prior to implementation we need some sort of RFC that defines types of malice that can occur from a given node as well as appropriate and secure means to detect the various cases. Ones that come to my mind are forced sluggishness in an attempt to slow down the network, intentional loss of data to cause extra lookups elsewhere for a given chunk, forced intermittent connectivity, so maybe at L4 level it decides to throw connection reset/connection refused in an attempt to bottleneck traffic across the network.
This is pretty cool and would be interesting to use for personal projects and smaller apps. What is the vision for the future and enterprise though? There will still be a big performance hit right?
Suppose most of my site is cached on a CDN with hundreds of DCs across earth. That is going to serve my site content quite a bit faster than ~8 replicas?
There will be pros and cons in access speed. I expect some latency compared to a CDN that is caching close to the client, but not necessarily significant.
And some things may even be faster because chunks are served from random locations meaning a server is not a bottleneck. So it's a bit like having a CDN for free.
This should work particularly well for large files because chunks will be delivered in parallel by lots of different vaults in different locations, along different routes.
Also, there will be opportunistic caching of popular chunks along the route to the client. So data that is suddenly in demand will be cached rather than overloading the vaults holding the chunks - so u have automatic DDoS protection.
Because of that any site will scale automatically to meet demand without cost or extra server side infrastructure. Some really attractive bonuses there for anyone from a lone developer to a large scale commercial operation.
The actual performance will I think be better for some use cases, worse for others but we won't know the details for a bit yet.
I'm a developer interested in putting decentralised apps on the SAFE Network so have done some testing of the early APIs and tried deploying simple websites on the test networks, porting apps from the Solid project, RemoteStorage etc.
I tried different frameworks to see how easily they could be used, how they would perform, and help others get started.
For example I had excellent results with my first use of ReactStatic (see https://dweb.happybeing.com) but I was very impressed when I tried Svelte for the first time because it's a really nice framework and very fast.
But any web framework should work well for many kinds of app, but I'm smitten by Svelte so will build using that for the time being.
You will be able to use pretty much any language or platform though because language bindings are being made available for the SAFE API and are I understand fairly easy to create yourself if the one you want hasn't been created yet.
I think higher latency will be expected as the nodes you are connected will be randomly assigned geographically, which is necessary for anonymity and security goals of the network.
But the download speed itself should be faster than what typical CDNs might offer, as all chunks could be downloaded in parallel, and in some cases the experience could be felt as instantaneous.
The effect would be a network where all content within the SAFE network would be like torrenting with guaranteed number of seeds with 100% uptime.
The only limitation would be your local bandwidth.
It's a tough one to categorize. (I say that as a dev on the project)
It's similar to IPFS in terms of the goal of distributed file storage. But it incentivizes users to store in non-blockchain way, sidestepping a lot of the size and throughput issues there.
Connections are indeed anonymized. But as you can work with and update data in a distributed fashion, there's a lot of scope for applications. (We've previously built a simple twitter clone, using RDF data on an older testnet: https://github.com/maidsafe/safe-patter-js)
Things are still very much in development. Still Alpha stage. But There are things available for users to try!
The Safe Primer (maintained by community members) may be a good place to start:
The dev hub is sadly out of date with current things. The forum is very friendly and open to new folk and answering any questions: https://safenetforum.org
Instead it's just a compass face, with brand and distance.
It's free for basic konbini hunting (has probably most of the stored in Japan), and is offline first. So maybe it's useful to other folk?? (I hope so!)
There's some stamp-book style collection things in there too, but that's more fun, and a few `PRO` gated things (more stats, filtering... soon some other store types). But none of it required for finding the next Biru or coffee.
*https://apps.apple.com/us/app/achira-japan-offline-guide/id6...