This is a theoretical problem I am curious about.

Websites are hosted on servers. Servers can be taken offline.

Is it possible to host a website in the 'ether' of the Internet -- not on a server -- so that it cannot be taken down?

One example, is that the website is hosted on other websites, like a parasite. Another is that it is assembled through storing pieces on DNS machines, routers, etc., so that it get assembled on the fly.

The purpose is that this website could live forever because no one person can remove it. The answers I am looking for are plausible idea/approaches on technically how this could be built.

link|improve this question

2  
How would you address such a website? If it is always on the run, does it have a mobile phone number? ;) – Felix Jun 8 '10 at 17:27
1  
That is a part of the problem to solve. I do not know. – Christopher Altman Jun 8 '10 at 17:27
2  
Should probably be community wiki... – Thorarin Jun 8 '10 at 17:38
2  
I was thinking about something that calculates its content out of basic network/server responses. Maybe an idea for a different approach :-) – favo Jun 8 '10 at 17:44
2  
This question doesn't even make sense. Neal Stephenson and William Gibson make this stuff up. It's not reality. – sh-beta Jun 8 '10 at 18:48
show 3 more comments
feedback

migrated from stackoverflow.com Jun 8 '10 at 18:15

This question came from our site for professional and enthusiast programmers.

closed as off topic by Zoredache, Graeme Donaldson, joschi, Mark Henderson, Sam Jun 10 '10 at 10:18

Questions on Server Fault are expected to generally relate to servers, networking, or desktop infrastructure, within the scope defined in the faq.

8 Answers

up vote 0 down vote accepted

Given the current infrastructure of the Internet, I do not believe that this is possible.

If it's stored online, anywhere, there will be some physical asset behind it that someone has some level of control over. Wherever that data is stored, someone will be able to disrupt it to some degree. Even if you were able to distribute the data in some way (like RAID5 for hard drives, except throughout many locations online instead), there has to be a way to address that data to retrieve it. An addressing system either needs a place to start looking (the DNS root servers, for example), or be constantly looking for peers that it can share data with and keep track of (think P2P networks). With a central place to start looking, someone can remove the glue and the record is gone (such as a domain name expiring). With P2P networks, it's generally slow or unreliable, and currently still relies on seeds to get started rather than blind connection attempts.

The other issue is one of control. If such a publishing system existed today, you would push data in that would not be able to be changed (think magazine publishing) because you would not be able to recall it (because nobody can take it down, remember), so it wouldn't be like a website with a CMS.

It almost sounds like you're trying to create some sort of "god" data that everyone can see if they look hard enough, but nobody has any control over to take away from those who have found a way to access it. I'm afraid this can only exist in the spiritual world. Anything we create we have the power to destroy. Everything in the digital world runs on physical hardware at some point, and that hardware can go away or be controlled.

Now for some theories...

A P2P network where the peers all talk to one another is the closest we've come to anything like this that I am aware of. The problem is that they still require seeds to get started, and someone has to host the seeds. If everyone ran a custom P2P software client which used a decentralized network of content directory servers which were automatically elected and rotated regularly, then you might start to come close if each "chunk" of content were distributed widely enough that it were always available. This would require some serious software and cooperation among pretty much everyone to run it to be feasible.

On a smaller scale, if you just wanted to hide one small website on the Internet, find a way to exploit the operating systems of all of the major enterprise level routers, then write a firmware update which includes a DNS server and a web server. It would inspect all packets flowing through the router and sniff out DNS requests for your site name, and if found, respond with an IP that the router would pass traffic for. Then it would be looking for requests on that IP and serve up the web page. This would be extremely difficult or impossible to implement from a practical standpoint, not to mention illegal and could be taken down when discovered, though it might be somewhat difficult to track if embedded in enough places.

link|improve this answer
+1 on the ability to manage this omnipotent website after it's been published. – gravyface Jun 8 '10 at 19:32
feedback

This is one of the features of Freenet, if I understood correctly. Take a look at this FAQ entry.

link|improve this answer
Freenet is only a proxy service to access other websites. – favo Jun 8 '10 at 17:33
@favo: The site mentions you can publish pages as well. Wikipedia describes it as a “distributed datastore”. – Shtééf Jun 8 '10 at 17:37
1  
Shteef, It's still on a server (even if there are many). Isnt it? – favo Jun 8 '10 at 17:41
This is exactly the kind of thing Freenet does. Sadly, like everything else humans do it is immediately put to use for great good and great evil. – Mark Allen Jun 9 '10 at 1:26
feedback

You can replicate your site to a number of servers and make it spread like a botnet would do, by exploiting vulnerabilities in servers it finds. Accessing it would require accessing such a server that your site has found a home in. Of course, it's a cat and mouse game, your site should keep ahead by making as many copies of itself on as many servers it can, as fast as is can, because when discovered, it will be taken down from the said servers. Knowing a pattern of attack, like, only find residence on servers with ip addresses that match a specific pattern would help accessing it through a script testing such various addresses matching the pattern, until it finds one that hosts your site.

link|improve this answer
This idea and Thorarin's idea still have the site on a server. I wonder, can something replace the server? – Christopher Altman Jun 8 '10 at 17:38
3  
@Chris - nothing can "replace a server" without itself being a server. A server serves requests, right? If you replace it with something else, then by definition it's a server. You can build all kinds of high-availability and distribution schemes, but at the end of the day, the files getting to someone's browser come off of a piece of hardware. All you can do is maximize the chance that there is a reachable working server somewhere. – mfinni Jun 8 '10 at 18:29
feedback

I suppose you could create a worm that hosts the site on different web servers. However, domain registration and DNS will be an Achilles' heal in that case. Someone could just wipe the domain out of existence. The site would be around, but no one would be able to find it.

You could make the worm advertise new URLs for the site as well, on various media, with accounts that it creates.

In the end something is going to change that makes the worm ineffective though, so it would not be around forever without any maintenance.

link|improve this answer
feedback

One alternative would be some kind of peer to peer network like bit-torrent where the content is shared between the peers. This is similar in some ways to the what Thorian and luvieere suggest. The key difference is that the content isn't accessed by via some remote Web Server, which changes over time to improve avilability. Instead an application runs on the localhost of the person accessing the site which is capable of processing HTTP and responds to requests with content obtained through the P2P network.

There are some serious problems with this approach though. At a minumum there's:

  1. Security
    • All of the sites content is available to every user
    • Protection against content poisoning
  2. Availability
    • Still a bootstrapping problem of how to join the P2P network (how to discover it)
    • True resilliance would only come if a significant number of people sustained the P2P network

Might actually be an interesting way of allowing people to share a website that is otherwise invissible as well.

link|improve this answer
Sounds like Freenet... – Steven Schlansker Jun 8 '10 at 18:14
feedback

No.

Anything that serves requests is a server. You can't serve requests without a server. You might as well ask, "Could I connect to the Internet without a network connection?"

link|improve this answer
I thought the question did not make sense, but you answered it, so does that make your answer not make sense? – Christopher Altman Jun 8 '10 at 18:54
@Chris - no. My comment explains why I downvoted the question. My answer addresses the question as it is for the sake of sanity and posterity. – sh-beta Jun 8 '10 at 19:11
feedback

Isn't this what cloud computing was built for? You could have as many instances as you want, all load balanced, and distributed across different regions.

If the website's a "parasite" it's dependent on it's host(s), which could all theoretically go down. Same with your "pieces" approach: that router, DNS server, etc. are all susceptible to going down as well.

How do you solve this? Well, it's called redundancy: before cloud computing, there were load balancers and round robin DNS, and server farms, and replication, and so on. This probably isn't what you want, but it is what it is: you just can't get around the fact that websites require machines and devices that just don't stay up forever.

link|improve this answer
feedback

To draw a concise conlusion:

No, You can't because of technical reasons:

Internet currently relies on the Protocol "TCP/IP" for transfers. Web pages for example. The rest builds on top of that.

TCP/IP needs an identifiable endpoint under all circumstances. You will always have to have such an endpoint. This endpoint has to be traceable so that it can be asked for the website. The only thing that can be done is some kind of hardening or redundancy like rerouting traffic to hide the location of the server to some degree or having multiple servers so a lot of machines have to be shot down before tha data vanishes. But data can't live on itself in the net.

Data, by definition, is passive and needs devices to exist on, just as programs need hardware to run on. Kill the hardware and the data vanishes or the program execution stops.

Freenet or the like are ventures that use other protocols so they are not a part of the internet that i feel You mean in Your question. The run on different protocols on top of TCP/IP so You can't access them from a normal web browser, AFAIK. You need special clients so the data is restricted to the users of the software.

link|improve this answer
feedback

Not the answer you're looking for? Browse other questions tagged or ask your own question.