(Art by z1xwitch)
Software for a bitcoin mining pool backend
So there is a fancy new protocol for communication from bitcoin mining programs and bitcoin mining pools. The short story is that previous protocols use 32-bits that miners can change. FPGA miners can blast through 32-bits in seconds, ASIC miners can do it way faster than that. Stratum allows for 64-bits (or more) of data to be changed at the worker side without talking to the server allowing for way less client/server communication.
That was all well and good but we seemed to be lacking stratum implimentations to use. Maybe they existed but I couldn't find them so I made my own and opened it up.
You can build from most recent source from GitHub using ant:GitHub SockThing
The ANT build results in a single self contained jar containing all the required libraries. It expects one command line parameter, a configuration file to use.
java -jar SockThing-0.5.0.jar prod.cfgSample config
It expects an address to pay with the blocks found, a bitcoind to use to get information from to build blocks and to submit found blocks to. An SQL database is expected to save share information to credit workers for work done. Other config is added as features are added.
SockThing is designed to be easily customized. The authentication handler can be implemented to do anything pool specific you like AuthHandler.
To do something other than simple save shares to a database, ShareSaver can be implemented.
If you know of any others, please let me know