If you have a thing for tinkering and are looking for a customizable Bitcoin mining software, look no further than BFGMiner. Written in C, it’s a modular FPGA/ASIC miner that has dynamic clocking, monitoring, and remote interface capabilities.
BFGMiner features built-in stratum and getwork proxy server, and its heavily threaded code hands out work retrieval and work submission to separate threads, so that working services are not hindered. The program supports “getblocktemplate” decentralized mining protocol (without proxy), and can preemptively generate work prior to the completion of existing work.
BFGMiner comes with a watchog thread that can restart idle threads but doesn’t crash the machine if they fail to respond. It displays summarized and discrete data statistics of requests, accepts, rejects, hw errors, and efficiency and utility. If there is hardware support, the program can monitor device temperature.
BFGMiner has numerous device drivers for Bitcoin, including Drillbit Thumb and Eight, Twinfury USB stick miner, and Ztex’s FPGA boards. There are also device drivers for scrypt, such as GAW War Machine and ZeusMiner units.