Hi ThePiachu,
I really like what you've done with vanity pool! This has a lot of potential.
You might want to overhaul this a little bit before it becomes more popular. It ought to behave more like a standard web service, with one URL to do everything, rather than two. And if you're going to use POST, the example code shouldn't put the parameters in a query string, it should use x-www-form-urlencoded. But you already know all of this, and are just trying to look like an upstart, and I respect that.
Anyway, there is currently source code to a vanitygen derivative that implements a polling loop and other mining client features, and it is
available on github. Here's what it looks like:
# ./oclvanityminer -p 0 -d 0 -u https://vanitypooltest.appspot.com/ -a 1samr7UZxtC6MEAFHqr1h3Kq453xJJbe4
Searching for pattern: "1Testo2" Reward: 5.000000 Value: 0.020260 BTC/MkeyHr
Difficulty: 888446610538
Compiling kernel, can take minutes...done!
Pattern: 1Testo2
Address: 1Testo2cH7JbqERjEkTz4MfmP2mQh6Aoi
PrivkeyPart: 5KHjU9V8tR6HNfoL5ZFmkgLzPPGt1u2BjQFMmL31ZtNWovptxDj
Like other mining software, oclvanityminer must be given a URL to the bounty server, with the
-u parameter. This URL is a base URL to which the
/getWork and
/solve paths are appended. It also requires an address to receive bounties, specified with the
-a parameter, which is checked against typos and cut-and-paste errors. The other parameters specify which OpenCL device to use, and are the same as oclvanitygen.
The miner follows the basic logic of mskwik's perl script -- it polls the server on regular intervals, and selects the best bounty based on difficulty and reward. If the best bounty has changed since the last poll, it will reconfigure the OpenCL engine. If no bounties are available, it will halt the OpenCL engine.
Indeed it found a match for "1Testo2" on vanitypooltest.appspot.com, which took a few hours on a cluster of AMD 5830s. Unfortunately, while the address to receive the bounty passed validation, it wasn't valid in this case -- the bounty is in testnet coins, and the address is a regular net address. The pool server replied with an error about the address not appearing to be valid, which is good, but it's unclear what the pool server did with the bounty.
The address miner has a few wrinkles left to be worked out and isn't formally released yet. For anyone who wants to try it out, there is a win32 binary of the miner program posted
here.