BFGMiner

From Bitcoin Wiki
Revision as of 17:34, 29 January 2014 by BitBacco (talk | contribs)
Jump to navigation Jump to search

A modular ASIC, FPGA, GPU and CPU miner written in C, cross platform for Linux, Mac, and Windows including support for OpenWrt-capable routers.

Features

  • A variety of device drivers for Bitcoin (SHA256d):
  • Support for new getblocktemplate decentralized mining protocol
  • Scrypt mining support for both CPU and OpenCL (GPU)
  • Very low overhead free C code for Linux and Windows with very low CPU usage
  • Long poll support - will use longpoll from any pool if primary pool does not support it
  • epoll support for interrupting FPGA waiting when new work is available without timeout-looping
  • Self detection of new blocks with a mini-database for slow/failing longpoll scenarios, maximum work efficiency and minimum rejects
  • Heavily threaded code hands out work retrieval and work submission to separate threads to not hinder devices working
  • Caching of submissions during transient network outages
  • Preemptive fetching of work prior to completion of current work
  • Local generation of more valid work (rollntime) whenever possible, as supported on a per-work item basis
  • Prevention of stale work submission on new block (submitold also supported)
  • Automatically detects failing pools and disables them
  • Multi-device support (all or discrete selection)
  • Summarised and discrete device data statistics of requests, accepts, rejects, hw errors, efficiency and utility
  • Watchdog thread to restart idle threads but not crash machine if they don't respond
  • Summary displayed when quitting
  • Supports multiple pools with multiple intelligent failover mechanisms
  • On the fly menu based management of most settings
  • Trickling of extra work to backup pools if primary pool is responding but slow
  • On the fly enabling/disable/restarting of devices
  • Device temperature monitoring (for devices that support it)
  • Reuses persistent connections when possible
  • RPC +/- JSON interface for remote control
  • Ability to cope with slow routers
  • X-Reject-Reason support
  • Lots of other stuff I can't remember. See options.

See Also

External Links

References