Skip to content

References

Usage

Bminer supports the following options in the command line. You can also run bminer -help to get the full list of options.

Option
Default Description
-api string null The endpoint that Bminer serves its REST API. For example, 127.0.0.1:1880. The REST API is disabled if it is unspecified.
-devices value null List of comma-separated IDs of the CUDA devices that Bminer should run on. If it is unspecified bminer runs on all CUDA devices available on the system.
-failover value immediateNext Fail-over strategy between multiple pools. Bminer can retry the connection, failover to the next pool or a pool that is randomly chosen in the lists of available pools. Supported strategies are sameHost, immediateNext and random.
-gpucheck uint 90 The interval in seconds that Bminer polls whether the CUDA devices have hung. Set to 0 to disable the checks.
-logfile string null Append the logs to the file.
-max-network-failures -1 Number of consecutive attempts that Bminer tries to recover from network failures. Set to -1 to keep on recovering.
-max-temperature int 85 Hard limits of the temperature of the GPUs. BMiner slows down itself when the temperautres of the devices exceed the limits.
-no-runtime-info Disable runtime information collection for Bminer.
-no-timestamps Remove timestamp in your logging messages.
-nofee Disable the devfee but it also disables some optimizations.
-share-check 900 The interval of seconds that Bminer polls to ensure there are accepted shares. Set to 0 to disable the checks.
-strict-secure Verify the certificates of servers when connecting to a SSL-enabled Stratum server. The default is off.
-uri value List of comma-separated URIs that bminer should mine towards. URI has a format of <scheme>://<username>[:<password>]@<host>:<port>. Note that the <scheme> for all the URIs have to be the same.
-uri2 value List of comma-separated URIs that bminer should mine towards secondarily. It has the format of <scheme>://<username>[:<password>]@<host>:<port>. Currently Bminer supports scheme blake14r:// or blake2s:// as secondary for Ethash mining as primary.
-dual-subsolver int -1 The sub-solver for dual mining. Valid values are 0, 1, 2, 3. Default is -1, which is to tune automatically.
-dual-intensity int 0 The intensity of the secondary mining. Valid values are 0 to 300. Default is 0, which is to tune automatically.
-watchdog true Automatic restart to recover from hung GPUs. Bminer exits itself in case of errors if watchdog is disabled.

Specfying URIs

Bminer uses URIs to identify the mining pool and the account of the pool. The URIs has the format of <scheme>://<username>[:<password>]@<host>:<port>. Following RFC 3986, the scheme specifies both the proof-of-work (PoW) algorithm and the networking protocol. Bminer supports mining coins using the following PoW algorithm and protocols:

PoW algorithm Networking protocol Scheme
* Equihash Stratum stratum://
* Equihash Stratum over SSL stratum+ssl://
* Zhash Stratum zhash://
* Zhash Stratum over SSL zhash+ssl://
* Ethash Stratum ethash://
* Ethash Stratum over SSL ethash+ssl://
* Ethash Ethereum Proxy ethproxy://
* Ethash Ethereum Stratum ethstratum://
* Blake14r (secondary) Stratum blake14r://
* Blake2s (secondary) Stratum blake2s://
* Tensority Stratum tensority://
* Tensority Stratum over SSL tensority+ssl://

Bminer also supports failing over between multiple pools in case of network failures. To enable the feature, you can pass a lists of URIs that are separate by commas. For example, the following command

./bminer -uri stratum://[email protected]:3333,
stratum://[email protected]:6666

will instruct Bminer to mine Zcash over both Flypool and Nanopool.

Dashboards and REST APIs

Bminer provides a Web-based dashboard to monitor the health of the miner. The dashboard resides at the same address of the management API. For example, you can access the dashboard at http://127.0.0.1:1880 if you have enabled the API at 127.0.0.1:1880.

Below is a screenshot of the dashboard:

Screenshot


Bminer also provides REST APIs to automate large-scale deployments.

GET /api/status (only works for single mine mode)

Provide an overview of the current status of Bminer.

Example value:

{
  "stratum": {
    "accepted_shares": 1,
    "rejected_shares": 0,
    "accepted_share_rate": 0.01,
    "rejected_share_rate": 0
  },
  "miners": {
    "0": {
      "solver": {
        "solution_rate": 535.6,
        "nonce_rate": 287.07
      },
      "device": {
        "temperature": 45,
        "power": 255,
        "global_memory_used": 828,
        "utilization": {
          "gpu": 100,
          "memory": 84
        },
        "clocks": {
          "core": 1885,
          "memory": 5005
        },
        "pci": {
          "bar1_used": 2,
          "rx_throughput": 22,
          "tx_throughput": 6
        }
      }
    }
  },
  "version": "v5.1.0-6b8803e",
  "start_time": 1516502494
}

Since version 8.0.0, we provide detailed information about solvers, devices, and stratums separately.

GET /api/v1/status/solver (available after v8.0.0)

Example value for equihash:

{
  "devices": {
    "0": {
      "solvers": [
        {
          "algorithm": "equihash",
          "speed_info": {
            "nonce_rate": 359.27,
            "solution_rate": 677.53
          }
        }
      ]
    }
  }
}

Example value for dual mining mode:

{
  "devices": {
    "0": {
      "solvers": [
        {
          "algorithm": "ethash",
          "speed_info": {
            "hash_rate": 30828134.4
          }
        },
        {
          "algorithm": "blake2s",
          "speed_info": {
            "hash_rate": 1778500208.17
          }
        }
      ]
    }
  }
}

GET /api/v1/status/device (available after v8.0.0)

Example value:

{
  "devices": {
    "0": {
      "temperature": 83,
      "power": 199,
      "fan_speed": 74,
      "global_memory_used": 4385,
      "utilization": {
        "gpu": 100,
        "memory": 73
      },
      "clocks": {
        "core": 1809,
        "memory": 5005
      }
    }
  }
}

GET /api/v1/status/stratum (available after v8.0.0)

Example value for dual mining mode:

{
  "stratums": {
    "blake2s": {
      "failover_uris": [
        {
          "name": "blake2s://DDXKDhq73GRM3hjh6uee57fJ3LS2ctNtyi.my:c=XVG,[email protected]:5766",
          "active": true
        }
      ],
      "accepted_shares": 1,
      "rejected_shares": 0,
      "accepted_share_rate": 0.02,
      "rejected_share_rate": 0
    },
    "ethash": {
      "failover_uris": [
        {
          "name": "ethproxy://[email protected]ans.org:3333/",
          "active": true
        }
      ],
      "accepted_shares": 2,
      "rejected_shares": 0,
      "accepted_share_rate": 0.01,
      "rejected_share_rate": 0
    }
  }
}

The semantics of the fields are the following:

Name
Type Description
stratum object The information of the Stratum client.
failover_uris object An array of uris that are intended for mining
name string Name of uri
active boolean If this uri is an active uri being used for mining
accepted_shares integer Total number of shares that are accepted by the Stratum server.
rejected_shares integer Total number of shares that are rejected by the Stratum server.
accepted_shares_rate number The number of accepted shares per second.
rejected_shares_rate number The number of rejected shares per second.
miners object The map that maps the ID of the CUDA device to the status of the miner running on the device.
devices object The map that maps the ID of the CUDA device to the status of the miner running on the device.
solver object Statistics of the Equihash solver.
solvers object An array of solvers running on a device.
algorithm string The name of the algorithm of a solver.
speed_info object Primary speed metrics of a solver.
hash_rate number Number of hash rate of the algorithm. (H/s)
solution_rate number Number of Equihash solutions found. (Sols/s)
nonce_rate number Number of nonces that are evaluated for equihash. (I/s)
device object Statistics of the CUDA device.
temperature integer The temperature of the CUDA device. (Celsius)
power integer The amount of power used by the CUDA device. (Watts)
fan_speed integer The utilization of the fan speed, from 0-100.
global_memory_used integer The amount of memory that are used on the CUDA device.
utilization object Statistics of utilization of the CUDA device.
gpu integer The utilization of the GPU from 0-100.
memory integer The utilization of the memory bandwidth, from 0-100.
clocks object The frequency of the clocks of the CUDA device.
core integer The frequency of the GPU core. (MHz)
memory integer The frequency of the GPU memory. (MHz)
pci object The utilization of the PCI-e bus.
bar1_used integer The amount BAR1 memory used.
rx_throughput integer The throughput of the data received from the PCI-e bus. (MB/s)
tx_throughput integer The throughput of the data sent from the PCI-e bus. (MB/s)
version string The version of Bminer.
start_time integer The time that Bminer starts, in UNIX time.