Hi. I tried to find the answers to my questions on the various websites on solid, but am unable to find it.
- Storage. How is data stored? Files? DB? Object store? Maybe it’s up to a solid server implementor?
- Security. How is data encrypted at rest?
- Availability. How is a pod to be made high available?
- Is there a specification/implementation for distributed pods where data is mirrored between 2 or more pods that live behind a load balancer?
- Auditing. Is there a specification/implementation for logging reads and writes from and to a pod.
- Rate limiting. If there a specification/implementation for rate limiting on a pod?
- How to backup/restore a solid servers pod data?
Thanks for any pointers!
- depends on the implementation (NSS uses file storage)
- no encryption today (that I know of - but many people interested, I think it should be possible to set up a group that could work on a spec; that said, many of us are working on other problems right now, so it’s not a high priority - again, that I know of)
- depends on the implementation - NSS doesn’t have much optimization of this that I know of
- No specification, but NSS has implemented a quota system (uses
storageUsage as described in https://github.com/solid/vocab/blob/master/solid-terms.ttl)
- depends on the implementation - as NSS uses file storage, you would use some backup scheme that takes that into account
As you see, there are many things that needs to be fixed for Solid server implementations. Hopefully you’ll join us in fixing them
You might be discouraged by all of this missing features, but there are Solid server implementations coming up that are working on these problems. It’s just not what NSS (node-solid-server, if you don’t know btw) has been focusing on, as it is a reference server implementation focusing more on what you can do with a Solid server that is ground breaking - it is not meant to be used in production, and therefore not tackling these problems that you’re describing.
Alternative solutions using the Solid protocol but with different kinds of backend are also being worked on, and will address some of these areas.
My thing is helping to put Solid on SAFE Network which is a secure decentralised communications and storage network.
Looking at your list this solves or helps with several areas, particularly 2, 3 and 4 but arguably others too depending on your use cases (eg for some would also remove need for backup and synchronisation, but perhaps not in all use cases).
Good questions. @megoth gave very good answers as well. Just two cents for thought.
The only thing we can secure is the communication protocol. Technically, there’s no way to prevent POD providers customizing storage strategies in means of performance optimization or data manipulation.
Either you trust a high performance provider, or you cost more to maintain your own. Low cost, performance, privacy - Pick up a point inside this triangle.
Taking SPARQL and RDF as HTTP APIs, you can integrate it with existing CDN and distributed DB tech for load balance.
Depends on local persistent tech. DB usually has its own audit sub-system.