I’m having a problem with the big picture here with regards to permissions and access. I at first assumed Solid allowed sharing via some P2P type protocol, like IPFS, but the instructions at https://solid.inrupt.com/docs/installing-running-nss suggest a domain name is needed.
I’m not a coder. I built and ran servers a long time ago, but only understand Apache, and Linux servers for DNS, proxy, FTP, I write HTML and CSS, some PHP, etc., but that’s it.
I’d like to set up a Solid server, but will it require a domain to actually allow access to files? I’m thinking not, but could use some clarification.
This is a big conceptual question for me too. Assuming no domain name is needed to share one’s stuff via Solid, then I can see mass adoption happening very quickly via WYSIWYG clients for locally running ‘servers’.
And please be kind. I’m a card carrying member of the AARP.
To access the server you will need to know its address. If it is on your local machine, that’s just what you set it up to be.
But if you or somebody else needs to access it from another machine, they need to know the address of the server (so this is different to IPFS or SAFE).
The address of the server is actually a numeric IP address (IPv4 or IPv6) but numeric addresses are hard to remember, and in some cases they change regularly, so generally people use a domain and let the DNS handle the numeric addresses.
Ah, OK, thank you. So one would need a static IP as a minimum to run a stable server, much like Apache and unlike IPFS. This also means that most people will not be able to run a server as most people connect via dynamic IP.
This is problematic because it means mass adoption will take place in the context of most users paying for or otherwise relying on service providers, those who can provide a static IP or URL.
I know there used to be services, and probably still are, that could take your dynamic IP and serve it up via a static IP, but that’s no different, really, than just buying a static IP either from your ISP or a provider, and most people aren’t going to do that.
So this seems to be a problem. It means people don’t really have control if they must depend on another service, a server with a static IP or URL, to share their stuff. But, but, it is a step closer to independence than the current model.
Dynamic IP is not a problem! You do need a static domain name, but you can have dynamic IP address and use one of the many places who will keep track of your server as your IP address changes. There are lots of these. dyndns.com was an early one and now. is dyn.com and bought by oracle it seems but certainly still doing dynamic DNS as a service. There are many others, some free.
You can get a domain form the ones they offer there, and then set up your server or your router (best) to report back to them whenever your IP changes. Then you are up and running. You need to install the server, and get a certificate for TLS.
You can buy and rent your own domain from anywhere, and then get dyn.com to start provide dynamic DNS support for that too. Then you have your own domain, which you can hang on to however the people you depend on to run services change. That is a good idea.
Of course when you get an account on solid.community you do get a domain name in fact … but ties to that community. One of the things inrupt has been thinking of doing is allowing you get us to provide virtual host service so that as well as your data being in that subdomain like timbl.solid.community, we also serve the same data as your own private domain. So lots of ways to go. And you can change which you use.
Of course you can move between these things, as solid allows you to copy all your stuff, including all the access control information, from one server to another.
Many thanks for the information and encouragement. I used dyndns many years ago but haven’t tried any such services in a long time. I’m glad to hear they’re still around and that there are other options as well. It looks like I have my next weekend project lined up!
EDIT: So I’ve come up to speed on DDNS and will be pointing a domain to my local computer soon. But this has gotten me thinking about the bigger picture, again. Mass adoption, end user too busy to deal with anything more than updating their profile picture… where does the data live? Are we looking at multiple pods living on the user’s device, in the cloud, shared, mirrored, all at once? If so, there will be a need for apps to collate all that for the user.
I’m also interested in bigger picture server requirements / considerations / limitations before fully undertaking architecture of our new, Solid-inclusive systems. I wonder if distributed storage will greatly aid this and if the two can be tied together - this is what we’re looking into.
One question I know users will have is if everything is stored on a Solid server, it’s still a centralised server, whatever the platform. Sure they can pull content back, but CDN, cache, etc, will preserve user submissions. Server admins will still have access to, and control over, data. Distributed hosting would remedy this.
Mass adoption is going to want some catchy, short domain names that become a brand in itself, open source, free, or not. These could even be, eventually, decentralised domains, of literally anything.anything.
Which is what we’re exploring at the moment with our Solid and Holochain research, on top of the distributed hosting question.
@Sea myself and Maidsafe have created proof of concept demos asking these lines. Mine was a blogging app, and Maidsafe created a SAFE decentralised WebID and social network, which integrate Solid with SAFE Network because of the issues you mention.
Yesterday I wrote a short summary of the reasons for integrating SAFE Network with Solid, and the issues that would address. See (SAFE forum):
I just learned something really important in this area. It is feasible for SAFE Network to limit and monitor where on SAFE Network that a Web app can send/store data, so we can technically prevent any leakage to places not authorised by the user.
I think that by placing controls on what and where data can be shared we can have a much better data security model than if we put controls on what an app is able to access.
This is not implemented yet, but it is technically possible, so the next stage is to think through the data security model and UX.
The following post summarises the issue, and my first thoughts on why it would be a good idea, and it links at the bottom to confirmation of the technical feasibility. See the part headed “Data Sharing Controls v Data Access Controls”:
I’m also interested in bigger picture server requirements … if everything is stored on a Solid server, it’s still a centralised server,
@Sea There is no centralised server. I am currently running a Solid POD server at home on a Raspberry Pi that cost less than £50.00, doesn’t make a noise, doesn’t get hot, has a 64GB disk and uses less electricity than most lightbulbs.
Most developers have experience of large servers that are expensive and have to be kept cool because the servers are hosting thousands of pages. A free Google Drive contains 15GB of data, which is large enough for most people to back up their data. Most individual websites are far smaller than 15GB. So a Raspberry Pi with a 64GB card, only about 5GB of which is used for the operating system, is larger than most people will need for their own individual POD.
At less than £50.00 for a Raspberry Pi, everyone can have their own Solid POD server at home, and their own individual Solid ID.
Thanks for the info! That’s a useful setup for people who have the privilege of their own home. For myself, I have been traveling non-stop for two years. I encounter many other writers, digital nomads, and students in similar situations. So, a home Raspberry Pi setup is not ideal for those of us on the move. I think at this point I’d invest in a Holoport as well.
This reminds of the early days of Internet, when anybody could host their own websites, even back then on my 14.4 modem. But, most people were unable or unwilling, hence monthly hosting services sprouted up. And, as it will, with Solid. Hosting on IOT devices will also be most useful, and I think we can all do better than a Google/Azure/Mac/Amazon S3 backup. Why support the monopolies on data? We can align ourselves with other underdogs, even in P2P hosting space, while the social revolution continues.
As people’s data gets larger, pulling and processing data is likely to require stronger servers. Especially for pods that host a large amount of people.
And that is bound to happen - majority of internet cant be expected to host their own pod. To attain the reach of existing major technologies and platforms Solid will need to have easy to use, user-oriented star apps like twitter, Facebook and similar.
Reaching end users and liberating them is critical to democratization of the web.
Server concept is indeed important. One of the important concepts of Solid that is frequently not grasped is that a single solid pod server, used for example by a single household, can access the public contents of every other similar server.
There would, therefore, be no need for
but only for play-as-you-go pods that could be contained on, for example, a 256GB zip-drive plugged into your home router.
A Solid app may of course be used by a large number of users. Lots of the apps being created will be used by a lot of the users. But the Solid app itself (I believe) will still be on the ‘users’ server, not on the ‘app creators’ server.
So in the above instance. Twitter may indeed want to create an app for Solid Users, but the app will not be hosted on their server but on the server of each individual Solid Pod.
More importantly, there will be no need for Twitter (or Facebook). Users will retain the Twitter experience, and on a computer screen it may indeed look almost identical to the current Twitter page, with a series of tweets on a certain subject. The difference will be, despite looking the same, each individual tweet will not be on a central server, but on the individual servers of each individual who is posting. Every user retains complete control of their own content, and holds that content on their own server, even though everything ultimately appears together on a screen.
Think in terms of a dynamic website where spaces are created on a screen, and the content of those spaces is filled from a database. Different tables in that database provide different pieces of information that are placed into their appropriate places on the screen. When you view the screen you see a complete picture, or complete page, with no indication that the various parts of the page have been drawn from different tables.
In Solid, think PODS instead of tables. What you see on the screen will appear to be a single page, but each element on that page will be drawn from different Pods. Your tweets or comments will be on your Pods, and everyone else’s tweets of comments are on each individuals Pods.
Lets say i follow 1000 people in my twitter-app. How is my router going to handle the incoming I/O load from the network for pulling in updates from an assorted subset of 10,000 people?
Given the average word length is between 5 and 6 characters a 280 character Twitter limit implies 46 to 56 words. To follow 1,000 people on Twitter, if they only tweeted once a day and if you only logged on to read their tweets once a day, you would be reading 4,600 to 5,600 words each time you logged on. That is larger than a chapter in most books.
You would be most unlikely to want thousands of followers unless you were a public figure, in which case you would host your ‘business’ Pod on a commercial server. That would not prevent you having your own ‘personal’ Pod at home to which you would only link to family and friends. Like having a Google Drive, but without using Google. A place where you can store all your own stuff, but on which you can also ‘chat’ in a social media way with those who are near and dear to you.
[quote=“richard, post:17, topic:256, full:true”]You would be most unlikely to want thousands of followers unless you were a public figure, in which case you would host your ‘business’ Pod on a commercial server.
[/quote]
That’s where i was getting at.
…
So in the end we will need such commercial pods that centralize high traffic/demand sources.
Something that would interest me is, if it would make sense to run federated applications like mastodon, peertube, or matrix on solid pods.
They all tackle the problem of needing big centralized servers by splitting the data up into different server instances who communicate with each other. So none of the server needs to handle immense amounts of data, but still they provide a (hopefully) good and reliable service to their users.
From my point of view, solid doesn’t aim at this kind of apps, but rather at splitting the centralized service in completely independent and individual pods. So for an app similar to twitter, every pod would have to handle syncing with others, instead of only the “community” servers, which seems like a big overhead to me. But that’s just my very limited view of solid, so I would be glad to hear if someone has more thoughts on this
Yes. There will still be a need for some people to have a commercially hosted Solid Pod.
No. If it was a commercially hosted Solid Pod, it would not be centralized in the way that the Twitter or Facebook servers are centralized.
Those who need the power of a commercially hosted Solid Pod do not have to have all of their Pods on the same server. In the way that there are many companies hosting website servers, there will be many companies hosting Solid Pod Servers. Individuals using a Solid social network app do not all have to be on the same central server. Your 1,000 social network users could be on 1,000 different commercial Pod servers hosted by 1,000 different companies. On screen, it would look the same, but there would be no central server, only lots of different commercial servers.