BFGMiner

From Bitcoin Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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