As I hope I have established by now, I am a big fan of decentralisation. This
anarchist philosophy extends to computing as well. It keeps striking me
how much cool stuff we can do with the internet, and yet we are
squandering that potential by introducing chains of middlemen in between
individual users. To me, a peer to peer system in which users
communicate directly instead of going through a third party seems ideal.
Retroshare is a program which allows this type of communication in
limited ways, and torrenting seems to be an even bigger step forward, as
far as content sharing techniques go.
Furthermore, it's worth
considering that some very bright kids out there have limited access to
computing power, as computers cost money. Companies like Google and
Pixar are able to do amazing things with server farms, but they aren't
sharing their computing power, and a creative individual can hardly be
expected to purchase a building full of servers in order to pursue
his/her programming visions.
So, what if there was a way to draw
computing power from all the computers connected to the internet? Most
people don't use their computers for anything CPU-intensive anyway, so
they could certainly spare a small fraction of that power. If all this
combined power was available to anyone with a good idea, we could have
real progress in computing and software.
What I'm proposing is
this: A voluntary computational power sharing network. Let's call it
PowNet. PowNet, like torrenting, would be accessible through a PN client
downloaded from the web. Also like torrenting, there would be many
sites users could visit to download (or torrent, for that matter) a
"driver" for whatever program they wish to donate power to. In this way,
only ideas supported by users would get power.
That's the basic
idea. It could be combined with torrenting, effectively a
storage-sharing system, to spread out a large lump of program data over
many users. It could also feature some sort of interface-sharing system
in which the main user would have the normal program interface and the
power contributors would have a secondary interface, through which a
contributor could submit content, or other forms of input.
The
goal of this kind of system would be to utilise the vast amount of
computing power which is currently connected through the internet and is
mostly sitting idle while its users browse Facebook. Secondarily, it
would allow someone using a low-power device such as a tablet or a phone
to run programs which would normally only be able to be run using a
server farm. This could have social justice implications, since
low-power devices are cheap and through a network like this could run
software which could educate the user dynamically or perform any number
of other high-impact processes.
This concept has been implemented
to a limited degree, with p2p, grid computing and volunteer computing,
but in order to have something that works like magic, which is how it
should be, I think we'd need to work on the physical infrastructure of
the internet. High-speed would be the name of the game, since a PowNet
program's speed would be limited only by the speed of the user's
internet connection. This calls up the recent net neutrality issue and
also our government's role in public infrastructure (it's mostly
neglecting it, basically).
We have passive media, we have
interactive media, and now we have dynamic media: that which is
influenced by an ecosystem of users across the world. Most of our
current dynamic media is trifling (Twitter comes to mind) compared to
what we could achieve with a sturdier soft and hard infrastructure,
especially given the kind of data-gathering sensors we put into mobile devices these days.
What
it comes down to is this: using PowNet, I could run a program on my
tablet computer which could understand me and my environment and use
that understanding to deliver content accordingly. Sounds like talking
to a person, yeah? To a poor kid living in the inner city, without access to quality educational systems, that kind of program could be life-changing.
Is the internet ready to start raising children?
This has been done to some extent by a few groups, the primary one that comes to mind is SETI@Home. There are others I'm sure but I don't know any names.
ReplyDeleteBasically the ultimate goal for most endeavors like this is to construct a low cost
supercomputing network. Only problem is that the ones that have done it didn't really make it a publicly available thing afaik.
The slow internet isn't really a problem to the overall capability because if you have
10k computers transferring data at 25kB/s then you have about 250MB/s effective data flow internal to the system and 10,000 computers contributing processing power is a pretty small number considering the number of capable computers in the state of NY alone is likely in the millions.
The only issue with slow internet is that the users' access time to the system will be limited but that is unavoidable for a system like this.
Also, the more people that use the system the slower the system will be. There would need to be a queuing system like what was used on mainframe systems of the 70's and 80's. (and probably current supercomputers too, idk) This would keep the computer network from getting jammed up but it would limit the availability depending on the size of each task that is being performed.
Then comes to the part of how you organize a network of computers like this without taxing the computers that you are borrowing power from too much.
For example, if you have a network of say 100 computers for a school you generally need a server to manage all of them. With a system this large(country wide) you would probably need to have a certain percentage of the computers on the network devoted to routing data to the correct places and determining the overall load of the system that way it can let people use the system without causing issues from too many people on it at a time or wasting time with too few people if others are waiting.
Regardless of all of that, yes it can work, no it isn't easy, yes it will take a
pretty long time to do.
Also, the usefulness of the system may be limited by it's method of operating. i.e.
the user uploads something to the system, waits for it to be processed and then
downloads the result. This could potentially create dead areas in the network of
internet hardware for parts of large cities due to the limit of current technology.
This can be avoided but is another concern to worry about.
As far as getting processing power to the needy goes I think just having city-wide
free high-speed wifi would be much more beneficial.
The need for this kind of processing power is limited in the general public to maybe a couple people out of several hundred.
Tablets and phones are reaching levels of processing power that rival desktop computers from as late at 2005 and they are getting better with each generation(apple not included). With this sort of power on a mobile device people need nothing more than a configurable, widely excepted operating system that will run on anything. Linux comes close but is a pain in the butt to get working on ARM processors currently.
Intel is beginning to enter the mobile CPU market though and once we have x86 compatible phones and tablets we will have a huge resource opened up to almost everyone because x86 architecture is compatible with almost every operating system and program that is worth using.
So, anyway, from all of that. The goal should be to make free internet a thing and build some communal servers that people can upload/download stuff from to share and host their own websites from at no charge and make it donation based before resorting to ads.(the servers, not the internet, internet should just be free)
Yes... really useful stuff.
DeleteI didn't think of how the system would be managed, but like you say, it would need some sort of queing system at the very least. I really like the idea of distributing that duty amongst the computer on the network in the same way that the rest of the functionality is distributed, as it grooves nicely with the whole theme of decentralisation. Like every other facet of the network, management could be an opt-in duty for people with extra bandwidth to spare. The same could even be true of administration, rendering the entire thing independent from individual control.
I'm not sure what you mean when you say that the network's mode of operating could create "dead zones" in cities. Could you explain that?
I concur that having a strong infrastructure for the internet is the most direct and efficient way to bring computing power and information to the most people. However, as with most highly beneficial public infrastructures, our government is not doing its job and maintaining/upgrading the internet. It then falls into the hands of the corporations, who will only do anything if there is a massive monetary incentive to. The internet, luckily in this case and unluckily in every other case, has proven to be a quite profitable mode of pushing products, so for now, it is being well-serviced by the corps. However, with the rise of permaculture and cryptocurrencies I do not expect this to always be the case, and so, along with community efforts to expand and maintain the internet, I would advocate for this kind of a project precisely because it does not depend on large bandwidth or geographic coverage, much as those things are valuable and should be pushed for.
Perhaps ridiculously powerful mobile devices will soon be quite cheap... That certainly seems to be the current trend; however, anything Intel-based is going to remain expensive for at least a while. I suppose we'll see how that goes. The Ubuntu Edge looks interesting, as far as hi-power mobiles go.
Really, the overall goal with this project would be to put the internet in an encryption blender. Dice up all the information and distribute it across not just dedicated servers but any computer connected to the internet at any time. That way, the whole thing would be much more reliable, fast and secure, plus things like targeted advertising and personal data collection would cease to be necessary for everyday things like email, chat and file transfers.
As an added bonus (and a big one at that), anyone who wanted to start a website could host it on PowNet for free, and the more people who supported it (based on the site's merit, presumably), the faster it would load, and therefore the fancier it could be.
We'd have to figure out the domain name shortage issue... haha.