Javascript Distributed Computing

The Vision

Distributed computing projects have huge potential, decoding disease, interpreting scientific data and more. We've seen a glimpse of what's possible with Folding@Home and similar projects. Javascript is a interpreted language that can be run on virtually every modern web browser, including IE, Firefox, Safari and Opera. Most of the time, when you're reading a web page, or surfing the internet, the processing power required on the client is little to none. Harnessing the idle computing time of the world's more than one BILLION interent users.

The Implementation

The application is now a cross-domain friendly, simple and easy to use, 570 byte snippet of javascript code. It currently does one of the most easily distributed tasks: reverse hashing. Each client is assigned a work unit where it searches from xxxxaa to xxxxzz and seees if any matches occur. The data is sent via SCRIPT tags to a remote server which logs it and assigns a new workunit. You can see the application running on this very web page. Amazingly, this elegantly compact package can detect extraneous load to the client and automatically decreases its interval to improve user experience.

The script is running on the current page, a logging system has been added for your curiosity. You can try it out by submitting a hash, or you can view the progress of the current hashes and control the code running on your computer with the following links. Feel free to experiment with the controls and variables and analyze the results.
Submit Job View Queue Stop Start Increase Default Interval Decrease Default Interval Increase Cap Interval Decrease Cap Interval



If this was more than a simple Proof of concept system, i'd ask you to embed this small snippet of code into your sites and blogs. But this is a proof of concept system. It certainly isn't very stable, and quite vulnerable to XSS exploitation at current stages. It doesn't work on computing the meaning of life, or anything important. I wouldn't recomend spreading the use of this script. But here it is for reference purposes and such.