This README contains details about the cgminer RPC API
It also includes some detailed information at the end,
about using miner.php
If you start cgminer with the "--api-listen" option, it will listen on a
simple TCP/IP socket for single string API requests from the same machine
@ -119,7 +122,9 @@ The list of requests - a (*) means it requires privileged access - and replies a
@@ -119,7 +122,9 @@ The list of requests - a (*) means it requires privileged access - and replies a
ADL in use=X, <- Y or N if any GPU has ADL
Strategy=Name, <- the current pool strategy
Log Interval=N, <- log interval (--log N)
Device Code=GPU ICA | <- spaced list of compiled devices
Device Code=GPU ICA , <- spaced list of compiled devices
@ -272,6 +277,10 @@ The list of requests - a (*) means it requires privileged access - and replies a
@@ -272,6 +277,10 @@ The list of requests - a (*) means it requires privileged access - and replies a
check|cmd COMMAND Exists=Y/N, <- 'cmd' exists in this version
Access=Y/N| <- you have access to use 'cmd'
failover-only|true/false (*)
none There is no reply section just the STATUS section
stating what failover-only was set to
When you enable, disable or restart a GPU or PGA, you will also get Thread messages
in the cgminer status window
@ -316,7 +325,7 @@ api-example.c - a 'C' program to access the API (with source code)
@@ -316,7 +325,7 @@ api-example.c - a 'C' program to access the API (with source code)
miner.php - an example web page to access the API
This includes buttons and inputs to attempt access to the privileged commands
Read the top of the file (miner.php) for details of how to tune the display
See the end of this API-README for details of how to tune the display
and also to use the option to display a multi-rig summary
----------
@ -324,7 +333,25 @@ miner.php - an example web page to access the API
@@ -324,7 +333,25 @@ miner.php - an example web page to access the API
Feature Changelog for external applications using the API:
@ -396,6 +397,7 @@ NB is New Blocks detected on the network
@@ -396,6 +397,7 @@ NB is New Blocks detected on the network
LW is Locally generated Work items
GF is Getwork Fail Occasions (server slow to provide work)
RF is Remote Fail occasions (server slow to accept work)
WU is Work Utility (Rate of difficulty 1 shares solved per minute)
NOTE: Running intensities above 9 with current hardware is likely to only
diminish return performance even if the hash rate might appear better. A good
@ -425,8 +427,14 @@ This strategy moves at user-defined intervals from one active pool to the next,
@@ -425,8 +427,14 @@ This strategy moves at user-defined intervals from one active pool to the next,
skipping pools that are idle.
LOAD BALANCE:
This strategy sends work in equal amounts to all the pools specified. If any
pool falls idle, the rest will take up the slack keeping the miner busy.
This strategy sends work to all the pools to maintain optimum load. The most
efficient pools will tend to get a lot more shares. If any pool falls idle, the
rest will tend to take up the slack keeping the miner busy.
BALANCE:
This strategy monitors the amount of difficulty 1 shares solved for each pool
and uses it to try to end up doing the same amount of work for all pools.
---
LOGGING
@ -838,9 +846,8 @@ mining. Since the acronym needs to be only 3 characters, the "Field-" part has
@@ -838,9 +846,8 @@ mining. Since the acronym needs to be only 3 characters, the "Field-" part has
been skipped.
Q: How do I get my BFL device to auto-recognise?
A: They are only automatically recognised on linux, and no option needs to be
passed to them. The only thing that needs to be done is to load the driver for
them, which on linux would require:
A: The only thing that needs to be done is to load the driver for them, which
@ -208,19 +376,24 @@ serial_open(const char*devpath, unsigned long baud, signed short timeout, bool p
@@ -208,19 +376,24 @@ serial_open(const char*devpath, unsigned long baud, signed short timeout, bool p
tcgetattr(fdDev,&my_termios);
#ifdef TERMIOS_DEBUG
termios_debug(devpath,&my_termios,"before");
#endif
switch(baud){
case0:
break;
case57600:
cfsetispeed(&my_termios,B57600);
cfsetospeed(&my_termios,B57600);
cfsetispeed(&my_termios,B57600);
cfsetospeed(&my_termios,B57600);
break;
case115200:
cfsetispeed(&my_termios,B115200);
cfsetospeed(&my_termios,B115200);
cfsetispeed(&my_termios,B115200);
cfsetospeed(&my_termios,B115200);
break;
// TODO: try some higher speeds with the Icarus and BFL to see
// if they support them and if setting them makes any difference
@ -239,7 +412,17 @@ serial_open(const char*devpath, unsigned long baud, signed short timeout, bool p
@@ -239,7 +412,17 @@ serial_open(const char*devpath, unsigned long baud, signed short timeout, bool p