Windows BFGMiner 5.5.0: CPU/GPU/FPGA/ASIC mining software, GBT+Stratum, RPC, Linux/Win64

Welcome to the Verge Forums
Join our community and the rest of our members!
Sign up
Nov 23, 2019
95
0
6
#1
Announcing BFGMiner 5.5, the modular cryptocurrency miner written in C. BFGMiner features dynamic clocking, monitoring, and remote interface capabilities.

"St. Barbara's Faithfully Glorified Mining Initiative Naturally Exceeding Rivals", or just basically a freaking good miner.

This code is provided entirely free of charge by the programmer, so donations would be greatly appreciated.
Please consider donating: 1QATWksNFGeUJCWBrN4g6hGM178Lovm7Wh


Do NOT send me a private message directly, as I will ignore your message. I only provide support in public, so that others may benefit from the answer too. (An exception is if you want to pay me for direct support. In that case, please say so in your message.)
READ THE README FILES INCLUDED IN THE ARCHIVE BEFORE ASKING QUESTIONS.
Also, please note that this thread is for discussion of BFGMiner, its features and bugs - if you feel the need to troll or talk off-topic, start another forum thread (and PM me with it if you want my attention).

If you want to help develop BFGMiner, the best way to get in touch with us is on IRC.
We also have a development mailing list, mainly used to pre-announce upcoming releases for third-party packagers.


Latest release: 5.5.0
  • Arch: pacman -S bfgminer
  • Debian: aptitude install bfgminer
  • Gentoo: emerge bfgminer (consider accepting ~arch and/or adding the bitcoin overlay to get the latest version)
  • Ubuntu: apt-get install bfgminer (install the BFGMiner PPA for the latest version)
  • Win32: zip
  • Win64: zip


Features:
  • A large variety of device drivers for Bitcoin (SHA256d):
    • ASICMINER Block Erupter blades, cubes, USB miners (Emerald and Sapphire), and Tube
    • BFx2 Bitfury USB miner
    • Bi•Fury
    • Big Picture Mining Bitfury-based USB miners (BF1, RedFury, BlueFury)
    • BitCentury LittleFury USB miners
    • Bitmain AntMiner S1 - S4 and S5
    • Bitmain AntMiner U1 - U3
    • BlackArrow Prospero X-1.5
    • BTCFPGA's ModMiner Quad FPGA-based mining device
    • Butterfly Labs's FPGA and ASIC mining products (BitForce, MiniRig, Monarch)
    • Canaan Creative Avalon1/2/3 ASIC mining rigs
    • The Chili miner assembly
    • Cointamination
    • CoinTerra TerraMiner ASIC miner
    • Drillbit Thumb and Eight
    • DualMiner ASIC-based USB miner
    • Enterpoint's Cairnsmore1 FPGA mining board
    • FPGA Mining X6500
    • GekkoScience Compac BM1384 USB stick
    • HashBuster mining boards
    • HashFast Baby Jet
    • Intron/C-scape BitFury-based mining boards
    • JingTian miner
    • Klondike boards
    • KnCMiner Mercury, Saturn, Jupiter, and Neptune
    • Metabank gen 1 (old) BitFury-based mining device
    • NanoFury NF1 and NF2 units
    • One String Miner
    • Qi Hardware's Icarus and Lancelot FPGA mining boards
    • ROCKMINER 30 Gh/s R-BOX and T1
    • Spondoolies SP10 and SP30
    • Twinfury USB stick miner
    • Ztex's 1.15x and 1.15y FPGA boards
    • OpenCL GPUs, such as AMD Radeons (disabled by default, see README.GPU)
      • Kernels: Diablo, DiaKGCN, Phatk and poclbm
      • BFI_INT patching for Catalyst versions before 13.2
      • Vector support
      • Dynamic intensity that keeps desktop interactive under load and maximises throughput when desktop idle
      • Support for mining with free Mesa/LLVM OpenCL
    • CPU (not enabled by default nor included in Windows build)
    • Coming soon:
      • Halong Mining DragonMint 16T
      • any device provided for development (PM me)
  • A variety of device drivers for scrypt:
    • AlcheMiner Alchemist miner
    • DualMiner ASIC-based USB miner
    • GAW War Machine
    • Gridseed mining devices
    • KnCMiner Titan
    • ZeusMiner units
    • OpenCL GPUs, such as AMD Radeons (disabled by default, see README.GPU)
      • Kernels: ckolivas, lsoc, psw, zuikkis
    • CPU (not enabled by default nor included in Windows build)
    • Coming soon:
      • any device provided for development (PM nwoolls and/or jstefanop)
  • CPU and OpenCL/GPU mining for Keccak (SHA-3)
  • Automatically can configure itself to failover to solo mining and local block submission when Bitcoin Core is running
  • Support for getblocktemplate decentralized mining protocol (no proxy needed!)
  • Builtin stratum and getwork proxy server
  • Very low overhead free C code for Linux and Windows with very low CPU usage
  • Integrated overclocking and fan control (including automatic adjustment, if configured)
  • 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 generation of work prior to completion of current work
  • 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 interface for remote control
  • Ability to cope with slow routers
  • Lots of other stuff I can't remember. See options.

Human readable changelog:
  • Multi-blockchain support: BFGMiner can now be told which pools use the same "mining goals", and will track the blockchain independently for ones that don't. This allows you to mine multiple cryptocurrencies concurrently using any pool strategy (including balance and load-balance).
  • Multi-algorithm support: BFGMiner is now capable of hashing on both scrypt and SHA256d work at the same time, and you can assign the mining algorithm to use on a per-goal basis. As with multi-blockchain support, this works even in balancing strategies. Note that at this time, only CPU, OpenCL, and Proxy drivers actually support multiple algorithms at the same time (DualMiner must be preconfigured for only one, and GridSeed remains scrypt-only).
  • Stratum extensions for mining goals: New experimental methods mining.capabilities and mining.set_goal for Stratum allow you to expose control of the mining algorithm to the pool. These extensions are considered draft and may be changed based on the needs of multiblockchain pool operators.
  • RPC: Also extended for multiple mining goals/algorithms. Interface is subject to change.
  • kncasic: New driver for KnCMiner Neptune (and 2nd-gen Jupiter modules).
  • minion: New driver for BlackArrow Prospero X1.5.
  • titan: Work flushing optimisations from KnCMiner, and reduce processor view from per-core to per-die.
  • Keccak: Support for the SHA-3 winner hash as a proof-of-work algorithm.
  • opencl: Workaround broken global work offset support in buggy drivers.
  • opencl: GPU mining is now disabled by default for scrypt. Use -S opencl:auto to enable it.

Full changelog:
  • opencl: Fail gracefully if clGetProgramInfo/CL_PROGRAM_NUM_DEVICES returns zero
  • opencl: Remember results of global offset testing
  • opencl: Only save kernel binary when we built from source
  • opencl: Only try to patch BFI_INT when compiling a kernel from source
  • opencl: Major refactor, splitting up opencl_load_kernel into many new functions
  • titan: Initialise variables to satisfy compilers
  • Bugfix: opencl: Correctly handle non-goffset kernels
  • Fixing column spacing of non-curses device output
  • Bugfix: opencl: free memory if clState creation fails
  • Titan: Do not do actual configuration job in API thread context. Instead, send commands to the worker thread to do the actual job.
  • Titan: bugfix: dies are not configured if die#0 is OFF
  • Titan: unused function argument
  • Titan: unused variables
  • Update knc-asic: Titan FPGA image with spi->i2c commands removed and fixed some lock-up scenarios
  • Titan code rework: Use one bfgminer processor per die (instead of core)
  • minion: Reinitialise chips if they don't seem to be progressing
  • minion: Read temperature sensor
  • minion: TUI clock speed control
  • minion: Include "Frequency" in RPC status
  • minion: Add "clock" setting
  • minion: Set configuration parameters we care about
  • minion: Reset chip at initialization
  • minion: Configure PLL to 900 MHz at startup
  • minion: Report hashes done as accurately as we can
  • minion: Core enable/disable control
  • minion: Implement queue flushing
  • minion: Implement basic mining