Although currently solo-mining is feasible since the block propagation for ethereum is only ~12 seconds, as GPUs become more common and after frontier is launched it will likely become much harder to consistently mine Ether for small scale mining operations. Vitalik, the whitepaper, and others mentioned the possibility of a mining pool for ether at some point in the future, and furthermore since all miners store full nodes there is no incentive to mine on a centralized pool (unlike bitcoin where you can run a light node on a centralized pool but not on p2pool). For this reason, and also due to ethereum being a platform designed to build decentralized apps on, the obvious solution is to pursue a decentralized, peer to peer mining pool built with a contract on the ethereum blockchain.
The idea has been discussed before a bit by Vitalik in his blogs, and Heiko even wrote up a proposal for a dApp, but many of these posts were before the final mining algorithm was decided on. https://forum.ethereum.org/discussion/comment/6441/#Comment_6441https://blog.ethereum.org/2014/03/20/the-question-of-mining/https://blog.ethereum.org/2014/02/18/ethereum-scalability-and-decentralization-updates/
So with the launch of frontier coming and the rise of GPU's on ethereum, does anyone have further intuition on whether this dApp is viable and worth developing? The contract would have to be very light as any on blockchain computation or storage would be very expensive, the partial proof of work and proof one is mining to the coinbase address of the contract would likely have to be verified somehow off-chain, while the contract does some simple computation of dividing the rewards up by shares of the pool. The DAG is obviously too large to store within the contract so I imagine you would need a some third party or a network of nodes to provide verification of POW. Does this seem possible or am I on the wrong track?
I've also looked into using some of the btc-relay software to create a mining pool for altcoins (bitcoin would likely be the first attempt) with a contract on ethereum, with the ethereum blockchain acting as the "sharechain" does for the p2pool. But this would be an entire different project, so I'm not sure if I can really pursue this idea. I'd love to hear some feedback and opinions though!