SockThing

(Art by z1xwitch)

Software for a bitcoin mining pool backend

What is all this then?

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.

Source

You can build from most recent source from GitHub using ant:

Features

Supports Stratum protocol. Mostly tested with cgminer.

User selectable difficulty

Easy High Availability with Multiple Nodes - see HHTT High Availability

Limitations

Stratum only - no getwork - no getblocktemplate - no http

Backend only: build your own web interface

Setup

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.cfg

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.

Customization

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.

Downloads

Pools Using SockThing

If you know of any others, please let me know

Author