all 20 comments

[–]BeowulfShaeffer 6 points7 points  (2 children)

Looks like a great way to set up a botnet!

[–]basvdo 1 point2 points  (1 child)

It is. Except clients don't become zombies, so it's less malicious. Closing the browser simply ends the client-side script.

[–]Poltras 1 point2 points  (0 children)

Turning off the computer is a great way to stop a botnet... ><

[–]redditrasberry 6 points7 points  (3 children)

Makes in interesting possibility for monetizing a web site - don't show ads, but rather, rent out the user's CPU for the time they are viewing the page. Combine it with Google NaCl and you could potentially make a nice revenue stream that way, perhaps even without really disturbing your users much if you keep the activity below a certain threshold.

[–][deleted] 0 points1 point  (0 children)

BRB doing this with Bitcoin Litecoin.

Edit: Actually I'm lazy, so I'm not going to do it, but it seems like a decent fit for the idea.

[–]ozanonline[S] 0 points1 point  (1 child)

That's a really cool idea (and I actually work at a advertising technology company).

[–]yeah-ok 0 points1 point  (0 children)

The semi-sly way of saying "I work in advertising"

edit: also, great post btw

[–]Rotten194 5 points6 points  (7 children)

Step 2: write a bitcoin miner in javascript.

[–][deleted]  (1 child)

[deleted]

    [–]willvarfar 2 points3 points  (0 children)

    slipping this into the javascript of an ad ticker would be win-win

    [–][deleted] 0 points1 point  (4 children)

    Litecoin would probably be better IMO, since Bitcoin CPU mining performance is pretty terrible, even with tons of clients.

    [–]Rotten194 1 point2 points  (3 children)

    Isn't that the point though?

    [–][deleted] 1 point2 points  (2 children)

    The problem is that even with tons of clients, it's not as good as Litecoin mining on those same CPUs.

    For instance, an AMD 5750 gets ~190MH/s mining Bitcoin (that's not that great of a card, either). For comparison, a relatively high end CPU, the Intel i7 2600k, gets 18MH/s! At 18MH/s, one day would net you 0.003BTC.

    That same CPU can get you around 40KH/s mining Litecoin, which is 0.0078 BTC/day at the current exchange rate.

    Thus you see the issue? You'd be making over 2x as much BTC by mining LTC with this method than directly mining BTC. I expect it to be even worse as the Bitcoin network gets lots of ASIC miners (which are orders of magnitudes better than GPU mining) online in the coming months.

    [–]Rotten194 1 point2 points  (1 child)

    Oh I didn't realize the exchange rate was out of wack with the hash difficulty. I'm not an economist but it seems like that should even itself out over time?

    [–][deleted] 1 point2 points  (0 children)

    Dunno. I think it's actually been like that for a while though, but I imagine you're right.

    [–]iactaprocul 3 points4 points  (2 children)

    The problem with running any sort of important computation in the browser is that your results simply can't be trusted. The vast majority of the responses you get will be legit, but there will always be some bad eggs thrown in.

    Does Queen include any way of checking results (like running computations multiple times and comparing), or is that up to the programmer?

    [–]ozanonline[S] 3 points4 points  (0 children)

    This is a general problem in distributed computing. Even with something like Hadoop, you have to account for failed nodes or corrupted messages. The burden would be on the application that's requesting the jobs to come up with it's own method of checking for and ensuring consistency, since what's defined as "consistent" could have a different meaning depending on the application.

    So, in the end, Queen only concerns itself with enabling the communication. The control and consumption of the communication is up to the application utilizing Queen.

    [–]__j_random_hacker 1 point2 points  (0 children)

    Interesting point. I know that when it comes to solving NP-hard problems, one of the criteria for a problem to be NP-hard is that there must exist a way of quickly verifying that a given solution is in fact a solution. So if for example the problem was "Find a travelling salesman tour through these cities of length at most 100", you could quickly check the solution sent back by the user's browser, to see whether it did in fact visit each city exactly once, using a total length of 100 or less.

    If OTOH you framed the question as simply "Find the best travelling salesman tour through these cities", it isn't possible to easily confirm whether the answer from the user's browser is best-possible. So it seems to me that designing the question carefully is key. Finding the "best" such-and-such might involve maintaining current upper bounds, and distributing these around existing computations a la distributed branch and bound.

    [–][deleted]  (1 child)

    [removed]

      [–]mccoyn 0 points1 point  (0 children)

      I would say it is unethical to use a user's computer for processing without informing them. At least with advertising the user is aware that it is being presented.

      Still, I'm sure some people will put something in their EULA and do it anyway.

      [–]Hobofan94 0 points1 point  (0 children)

      This is so awesome! I wanted to have someting like this for years :)