Bitcoin Forum
November 12, 2024, 11:04:33 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Crypto Miners In Tray - a lightweight front-end for unattended mining  (Read 25823 times)
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
March 05, 2013, 08:40:04 PM
Last edit: August 24, 2013, 08:24:15 PM by Nemo1024
 #1

Presenting a miner GUI front-end, that would meet some of the requirements, that I missed in GuiMiner.

I wanted an application with the following capabilities:

  • Allow for unattended 100% utilisation of mining resources
  • Allow mining selection between Bitcoin and various altcoins, depending on current profitability
  • Specify priority level for the individual miners
  • Specify processor affinity (even on Vista, where GuiMiner fails to do so)
  • Specify the backup pools
  • Can stop the miners nicely, by issuing Crl-C event, so that the miners have a chance to clean up. (GuiMiner simply terminated the miners, which resulted in NVidia display driver crash.)
  • Minimalistic GUI design
  • Be fully-configurable through a single XML file
  • Can run any miner, independent of its parameter signature, including rpcminer-4way.exe
  • Can run a set of programs prior to launching the miners – ideal for applying overclocking, using ClockTweak, or starting mining-proxy when when using getwork miner against Stratum pools.
  • Can keep the miners alive by checking they output and run state and re-starting them if they become unresponsive
  • Can auto-launch all the miners and hide itself in a tray with minimum fuss
  • Can be completely managed from the tray
  • Can watch the system for a set of conditions and modify miner state accordingly

The latest version is 7.30

You can read more and download the binary and the source from my blog post:
http://stanislavs.org/bitcoin-miners-in-tray-miner-gui-manager/

NB! If you get a crash "Could not load file or assembly 'System.Web.Extensions, Version=4.0.0.0" when launching Crypto Miners in Tray, it means that you do not have Microsoft .NET Framework 4 installed. Download and install it from Microsoft site: http://www.microsoft.com/en-us/download/details.aspx?id=17718

If you find this program useful and use it on the daily basis, please support a good cause and donate to my Durrell Wildlife Conservation Trust bitcoin fund-raising drive:
1DodoExzsNPvVRXFrgkKw6E259VjfUW8Kh

Here is what the GUI portion of the application looks like:





Below is the complete changelog

Version 7.30:
– Implement backup argument set rotation for KeepAlive function. This is handy for those miners that do not support specification of backup pools, such as cpuminer, poclbm and cudaminer.
– Fix an issue, where log file would be rotated twice when configuration file is reloaded.
– Fix a bug, where a miner in a profitability group would not get stopped if profitability changes while the miner is in a suspended by watcher state.

Version 7.21:
– Fixed a bug, introduced in 7.20, where “Start with Windows” would write incorrect application executable name to registry.
– Fixed logging to file so that the text is auto-flushed, allowing to view the log file while it is being written to.
– Refactored registry accessing methods to facilitate testing.
– Keep using old/stale data from CoinChoose if the site’s API temporarily stops supplying data for a coin.
– Improved error handling in log to file code.

Version 7.20:
– Added Execute action to watchers. External command can be launched once watcher condition either becomes positive, negative or in both cases.
– Added possibility to continuously append the output log to file. Log files are rotated with a timestamp on log window clearing. Logging to file is disable by default.

Version 7.10:
– Made it possible to define global variables in the configuration file. These variables can then be referenced in any node or attribute, making it easier to update multiple places at once.
– Fixed a bug, where the initial state of “Run with Windows” was always checked contrary to the actual state of affairs.

Version 7.00:
– Implemented “miner profitability grouping”, where the program would choose one of the miners in a group, targeting the same card/hardware for the most profitable coin, using the information from CoinChoose.com. At most one miner in a group can run at any given time. A group is treated as one miner: Hitting “Start” on any miner in a group would start the most profitable miner. Hitting “Stop” on any miner in a group would stop the running miner in that group.
– GUI changes, moving all buttons to the toolbar.
– GUI change, allowing resize of the program window and of the relative proportion between miner list and output text box.
– GUI window size and splitter position between miner list and the log window are saved in the registry and restored upon next program launch.
– Fixed a bug, where custom-selected config file would not be loaded when the program is launched with Windows.
– The program’s name has been changed to “Crypto Miners in Tray” to denote that miners targeting different cryptocoins can be managed from the application. The executable’s name remains the same for backward compatibility.

Version 6.01:
- Fixed a bug where keepAlive with threshold would stop working if a miner’s hashing speed would drop to 0 right after a successful keepAlive check.

Version 6.00:
– Complete rewrite of the Process launching code, encapsulating the .Net Process class, so as to be able to peek on the stdout/stderr output pipe from the miners, solving the problem with some miners (pooler’s cpuminer) not showing any output until they exit. (Thanks to WebMaka for a lead.)
– All speeds in the balloon tooltip are now shown in the “dot” decimal notation, culture independent
– Added Speed column to the GUI list of miners.
– Added milliseconds to the log timestamp.
– Made config file path in the status bar into a clickable link, which would open Explorer at that path.
– Added restartEvery attribute to the miner node, allowing miners to be force restarted at certain hour intervals.
– Added readSpeedFrom attribute, allowing the user where the hashing speed is parsed from: stdout or stderr.
– Possibility to specify how the miner reports its speed in the list and the tooltip – K, M or G – through the new displaySpeedIn attribute. The total in the tooltip and GUI is always in M.
– Fixed a bug in hashrate-based keepAlive threshold calculation, which resulted in frequent false positives.
– Fixed a problem with disabled auto-scroll. Windows interop EM_GETSCROLLPOS returns scaled down 16-bit values even though it has a 32-bit Point structure at its disposal, resulting in erronous behaviour when the size of the RichTextBox content height exceeds 65535 pixels. A work-around has been applied, which alliviated the problem, though the text would not stay completely still.
– Fixed an off-by-one error in average speed calculation.
– The donation hint now points to Durrell Wildlife Conservation Trust fund-raising: 1DodoExzsNPvVRXFrgkKw6E259VjfUW8Kh

Version 5.10:
– Added “Run with Windows” checkbox to the GUI and tray context menu.
– Improved positional handling of the output text box when autoScroll feature is disabled.
– KeepAlive Hits column now shows counters for each category.
– Reset KeepAlive Hits counters when a miner is manually restarted.
– Added threshold attribute to the checkHashRate keepAlive option. An average hashing speed during the keepAlive check interval, which is below this threshold will trigger miner restart.
– Added a small and unobtrusive donation hint to the main GUI screen. Wink

Version 5.00:
– Long-running prerequisites are now stopped when the program exits or the config file is reloaded.
– Prerequisites can now have keepAlive setting, watching for Process and Output conditions.
– Replaced custom-drawn checkbox-containing ListBox with ListView control. It is now multi-selectable, and without checkboxes.
– ListView box now contains detailed information about each miner’s configuration, including current priority and keepAlive hit count. Ideally it should stay on 0. If the value is growing, it means that you either have a misconfigured keepAlive condition, so that the function kicks in more than it should, or that you have overclocked your GPU too much and it keeps crashing the driver.
– KeepAlive now reports reasons for restarting the miner (in the log window).
– The application now targets .Net Framework ver. 4.0 and is built with explicit platform target set to x86.

Version 4.10:
– Fixed a bug, where setting keepAlive to 0 would cause a crash
– keepAlive is back to being a child node of a miner, and can now be configured with interval and restart conditions: Process, Output, and HashRate.
– Fixed a rare occasion, when both the user and a watcher starting a miner at exactly the same time would result in two instances of the miner to be launched.
– Fixed handling of start/stop/restart watcher events to make it more resilient.
– Added killDelay miner attribute, so it is possible to tweak the time between Ctrl-C event is sent to the miner and the miner is deemed unresponsive to it and is forcefully killed.
– waitForExit attribute of a prerequisite execute statement is renamed to delay and can now specify a delay in seconds, in addition to special values of ‘no’ and ‘forever’.

Version 4.00:
– Added locks around critical sections in miner start and stop routines. Addition of asynchronous watchers introduced a possibility of race conditions.
– Changed the colour of miner entries in the list and context menu: Green – running, Orange – suspended by watcher, Red – stopped. Misconfigured/invalid miners are no longer shown in the lists.
– Changed the way watchers are defined: condition and action parameters are now specified in the body of the watcher element. See example config file.
– Watcher check interval can now be configured on a per-miner level.
– Added two new watcher actions: RestartWithArguments and ChangeAffinity.
– Priority action is renamed into ChangePriority.
– Added three new watcher conditions: BatteryPower, TimeInterval and DaysOfWeek.
– Renamed Enabled miner setting to autoStart to better reflect what that setting actually does.
– Made averageWindow setting miner-specific.
– Application watcher can now specify multiple processes to watch.
– Tray icon is now visible while GUI is maximized (unless Stealth Mode TrayIcon is specified).
– Seconds are now displayed in the log timestamp.
– Breaking change to the config format: id, autoStart, keepAlive, averageWindow, and watcherCheckInterval are now attributes of the <watch> node, instead of being child nodes. This is done so as to make the config file less cluttered
– Breaking change to the config format: waitForExit is now an attributes of the <execute> node, instead of being a child node.

Version 3.00:
– Introduced watchers that can observe such conditions as human activity or a running application and start/stop/change priority of the miners accordingly.
– Stealth config option which can either disable on-hover balloon tooltip or hide the tray icon altogether, in which case showing GUI is done by running the program again.
– Keep-alive setting is moved to individual miners (because of pooler’s cpumine’s faulty output mechanism). The default is now ‘off’.
– Total hashing speed info moved to status bar.
– Added possibility to specify any config file through the command line argument.
– Added possibility to open any config file through the GUI.
– Information about currently loaded config file is in the status bar.
– AutoScroll can be togged from GUI.
– Stealth mode and average window info is in the status bar.
– Fixed a bug, where user-stopped miner would sometimes be treated as dead and restarted.
– Fixed a bug, where the program would crash if no averageWindow was specified in the config (missing default).
– Improved stdout parsing heuristics to read correct speed info from CGMiner output and to avoid false positives.
– Brought most of the business logic under test, reordered some code, latest additions programmed using TDD.
– Various bug fixes as the result of unit testing.

Version 2.20:
– Individual and total hashing speed is now shown in on-hover balloon tooltip in tray icon.
– Tray icon now has a context menu with the commands to open the GUI, stop all miners, reload config, start/stop individual miners, and exit.
– Average window for hashing speed calculation is now configurable.
– Checkboxes of the misconfigured miners are now disabled.

Version 2.10:
– Fixed a rare bug, where an exception would be thrown if checkbox list redraw occurred at the same time as config file reload.
– Simplified routine that stops the miners, eliminating the need for briefly-flashing command line windows when starting miners.
– Added colour tagging of the output window: Green – program output; Blue – miner stdout, Red – miner stderr.
– Made output textbox read-only.
– Average hashing speed across all miners is now displayed in the GUI.

Version 2.01:
– Fixed hiding of the icon in task switcher, when the application is minimised to tray.

Version 2.00:
– Initial stable release

The first version was published at BitcoinTalk newbie forum, but was still very much a work in progress.

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
skeeterskeeter
Full Member
***
Offline Offline

Activity: 160
Merit: 100


View Profile
March 06, 2013, 12:34:24 PM
 #2

Linux (ubuntu) support?
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
March 06, 2013, 01:26:30 PM
 #3

No, this is a Windows application, addressing some Windows-specific problems, like a far more troublesome way of sending a signal to a command-line process, or minimising an application to a system tray area.
You have the source, though, so you can see what I've done and re-write it to one of the *nix GUI environments. Maybe it will also run on Mono.

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
March 08, 2013, 03:28:41 PM
 #4

Minor update to ver 2.01:
 - Fixed hiding of the icon in task switcher, when the application is minimised to tray.

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
March 11, 2013, 04:54:28 PM
 #5

Version 2.10 released:
– Fixed a rare bug, where an exception would be thrown if checkbox list redraw occurred at the same time as config file reload.
– Simplified routine that stops the miners, eliminating the need for briefly-flashing command line windows when starting miners.
– Added colour tagging of the output window: Green – program output; Blue – miner stdout, Red – miner stderr.
– Made output textbox read-only.
– Average hashing speed across all miners is now displayed in the GUI.

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
March 13, 2013, 01:17:11 PM
 #6

Version 2.20 has been released:
 - Individual and total hashing speed is now shown in on-hover balloon tooltip in tray icon.
 - Tray icon now has a context menu with the commands to open the GUI, stop all miners, reload config, start/stop individual miners, and exit.
 - Average window for hashing speed calculation is now configurable.
 - Checkboxes of the misconfigured miners are now disabled.

The program has now taken the shape that I envisioned, so I don't expect to do many more modifications, save for possible bug fixes.
If you have any feature requests or bug reports, post them here or in my blog.

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
CapnGimp
Newbie
*
Offline Offline

Activity: 17
Merit: 0



View Profile
March 15, 2013, 08:58:07 PM
 #7

Saw this a few days ago and didn't bookmark it, found it and am about to try it. Seems to be the only solution for guiminer ceasing to work at random times-caused by video kernel/driver failure etc etc...
 As GUIMiner is the ONLY one I have used(newbie) I am going to attempt to use this with poclbm...not so good with command line tho lol
I'll get back with you, thanks for putting this out here.
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
March 18, 2013, 02:53:00 PM
 #8

Here is an example command line for poclbm:
username:pass@pool.50btc.com:8332 username:pass@pool-ru.50btc.com:8332 -t 5 -b 10 -r 2 --device=0 --platform=0 -v -w 128 -f 60

If you use the card exclusively for mining and not for desktop, replace -f 60 with -f 0
Make sure you use correct values for platform and device. Start poclbm without any options to see what is available.
--verbose is not required for Bitcoin Miners in Tray to operate.
This command line will configure a back-up pool, to which poclbm will fall to if the primary pool becomes unavailable.

Otherwise, here is a list of options:

poclbm.exe --help
Usage: poclbm.exe [OPTION]... SERVER[#tag]...
SERVER is one or more [http[ s ]://]user:pass@host:port          (required)
[#tag] is a per SERVER user friendly name displayed in stats   (optional)

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  --verbose             verbose output, suitable for redirection to log file
  -q, --quiet           suppress all output except hash rate display
  --no-server-failbacks
                        disable using failback hosts provided by server

  Miner Options:
    -r RATE, --rate=RATE
                        hash rate display interval in seconds, default=1
    -e ESTIMATE, --estimate=ESTIMATE
                        estimated rate time window in seconds, default 900 (15 minutes)
    -a ASKRATE, --askrate=ASKRATE
                        how many seconds between getwork requests, default 5, max 10
    -t TOLERANCE, --tolerance=TOLERANCE
                        use fallback pool only after N consecutive connection errors, default 2
    -b FAILBACK, --failback=FAILBACK
                        attempt to fail back to the primary pool every N getworks, default 2

  Kernel Options:
    -p PLATFORM, --platform=PLATFORM
                        use platform by id
    -d DEVICE, --device=DEVICE
                        use device by id, by default asks for device
    -w WORKSIZE, --worksize=WORKSIZE
                        work group size, default is maximum returned by opencl
    -f FRAMES, --frames=FRAMES
                        will try to bring single kernel execution to 1/frames seconds, default=30, increase this for less desktop lag
    -s FRAMESLEEP, --sleep=FRAMESLEEP
                        sleep per frame in seconds, default 0
    -v, --vectors       use vectors

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
CapnGimp
Newbie
*
Offline Offline

Activity: 17
Merit: 0



View Profile
March 19, 2013, 02:37:42 AM
Last edit: March 19, 2013, 02:51:02 AM by CapnGimp
 #9

Thank you very much for this, I realize it takes time to type. I have it installed and since I couldn't ensure I would not f it up, I haven't loaded it with my pwd's and tried it out. After I digest all this, I will try it tomorrow. I am pretty much all experimental right now as I am trying to acquire a mb and memory to put my i5 on line with my good video card and use it as a miner exclusively (well, when I'm not gaming lol) all the while choosing the best linux distro to use...which I STILL have to research.  
      
   "Can keep the miners alive by checking they output and run state and re-starting them if they become unresponsive"
     "Can stop the miners nicely, by issuing Crl-C event, so that the miners have a chance to clean up. (GuiMiner simply terminated the miners, which resulted in NVidia display driver crash.)"
   this is what has occurred on mine, which is why I found you lol

 I would assume this will auto-restart the poclbm ?... when and if the graphics crashes, which if I stay away, it won't. I have an umbilical to this rig til then  Grin  Thanks again for your help!
CapnGimp
Newbie
*
Offline Offline

Activity: 17
Merit: 0



View Profile
March 19, 2013, 02:44:05 AM
 #10

btw somewhere i read the GETWORK protocol/? was being phased out in Slush's pool, and isn't used as stratum appears to have replaced it... do I have to insert this  -a x    the askrate value or not?
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
March 19, 2013, 02:20:58 PM
Last edit: March 20, 2013, 10:53:30 AM by Nemo1024
 #11

Special note about Pooler’s cpuminer for Litecoins (https://bitcointalk.org/index.php?topic=55038.0) – Bitcoin Miners in Tray can run and control it, but due to two quirks, no output from cpuminer is displayed until it is stopped. Cpuminer directs all of its output to stderr, which BMT handles well. However, it does not finish output of a line when a line is written to stderr, thus all lines are dumped on the pipe at the same time when cpuminer stops and closes its streams. There is nothing I can do about it, as this needs to be fixed by Pooler.

CGMiner (https://bitcointalk.org/index.php?topic=28402.0) must be started with --text-only or -T parameter to disable ncurses and with --log 1 or -l 1 to log output every second. CGMiner suffers from the same problem as pooler’s cpuminer, which is not strange as it was forked from it. The problem is however only with the redirected stdout stream, while stderr works fine, outputting the lines as they are pushed into the pipe. Once CGMiner is stopped, all text on stdout will be dumped in one go. -l 1 seems to fix this.

@CapnGimp: Experiment with the command line settings in a cmd.exe window. Once you are satisfied with the settings, copy them to the config file. You can also play with the settings in directly in the config file and hit reload config, which will reinitialise both the program and restart all the enabled miners.
Yes, keep-alive will auto-restart the miner, if the miners terminates by itself or if there is no output coming from the miner on stdout and/or stderr. I haven't had any issues with poclbm dying either, but I implemented keep-alive as a safety net, because I want a 100% unattended system.
I am still not on Stratum, so cannot advise on -a parameter.

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
March 26, 2013, 03:45:21 PM
 #12

Version 3.00 has been released:

– Introduced watchers that can observe such conditions as human activity or a running application and start/stop/change priority of the miners accordingly.
– Stealth config option which can either disable on-hover balloon tooltip or hide the tray icon altogether, in which case showing GUI is done by running the program again.
– Keep-alive setting is moved to individual miners (because of pooler’s cpumine’s faulty output mechanism). The default is now ‘off’.
– Total hashing speed info moved to status bar.
– Added possibility to specify any config file through the command line argument.
– Added possibility to open any config file through the GUI.
– Information about currently loaded config file is in the status bar.
– AutoScroll can be togged from GUI.
– Stealth mode and average window info is in the status bar.
– Fixed a bug, where user-stopped miner would sometimes be treated as dead and restarted.
– Fixed a bug, where the program would crash if no averageWindow was specified in the config (missing default).
– Improved stdout parsing heuristics to read correct speed info from CGMiner output and to avoid false positives.
– Brought most of the business logic under test, reordered some code, latest additions programmed using TDD.
– Various bug fixes as the result of unit testing.

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
April 05, 2013, 11:53:46 AM
 #13

Version 4.00 has been released.

IMPORTANT! I have changed the XML configuration format somewhat. Refer to the list below and to the included example configuration file.

– Added locks around critical sections in miner start and stop routines. Addition of asynchronous watchers introduced a possibility of race conditions.
– Changed the colour of miner entries in the list and context menu: Green – running, Orange – suspended by watcher, Red – stopped. Misconfigured/invalid miners are no longer shown in the lists.
– Changed the way watchers are defined: condition and action parameters are now specified in the body of the watcher element. See example config file.
– Watcher check interval can now be configured on a per-miner level.
– Added two new watcher actions: RestartWithArguments and ChangeAffinity.
Priority action is renamed into ChangePriority.
– Added three new watcher conditions: BatteryPower, TimeInterval and DaysOfWeek.
– Renamed Enabled miner setting to autoStart to better reflect what that setting actually does.
– Made averageWindow setting miner-specific.
– Application watcher can now specify multiple processes to watch.
– Tray icon is now visible while GUI is maximized (unless Stealth Mode TrayIcon is specified).
– Seconds are now displayed in the log timestamp.
– Breaking change to the config format: id, autoStart, keepAlive, averageWindow, and watcherCheckInterval are now attributes of the <watch> node, instead of being child nodes. This is done so as to make the config file less cluttered
– Breaking change to the config format: waitForExit is now an attributes of the <execute> node, instead of being a child node.

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
April 10, 2013, 12:27:48 PM
 #14

Version 4.10 has been released:

– Fixed a bug, where setting keepAlive to 0 would cause a crash
keepAlive is back to being a child node of a miner, and can now be configured with interval and restart conditions: Process, Output, and HashRate.
– Fixed a rare occasion, when both the user and a watcher starting a miner at exactly the same time would result in two instances of the miner to be launched.
– Fixed handling of start/stop/restart watcher events to make it more resilient.
– Added killDelay miner attribute, so it is possible to tweak the time between Ctrl-C event is sent to the miner and the miner is deemed unresponsive to it and is forcefully killed.
waitForExit attribute of a prerequisite execute statement is renamed to delay and can now specify a delay in seconds, in addition to special values of ‘no’ and ‘forever’.

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
Fallon
Newbie
*
Offline Offline

Activity: 13
Merit: 0



View Profile WWW
April 14, 2013, 10:16:04 PM
 #15

It took me a while to get the config tweaked the way I want (and more to update to the current revisions), but this app is so kick ass it's worth it. I can easily game & use my PC while letting BMIT wrangle the miners in the background without any effort. Handy for me, really important if I want to mine on my wife's PC.  Wink
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
April 16, 2013, 07:07:57 AM
Last edit: April 16, 2013, 10:25:19 AM by Nemo1024
 #16

Glad you find the program useful. If it is any consolation, I too had to change the config files on my 4 mining rigs.
The config format will not be changed any more - only eventual additions will appear henceforth.
Do you use stealthMode on your wife's PC?  Tongue

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
Fallon
Newbie
*
Offline Offline

Activity: 13
Merit: 0



View Profile WWW
April 19, 2013, 03:56:48 AM
 #17

Nope, she's fully aware of it & what it's doing.

Although at the moment CGminer is throwing hardware errors on her system (With or without BMIT), so it's been offline for a little bit.
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
April 22, 2013, 07:09:58 PM
 #18

Version 5.00 has been released:

– Long-running prerequisites are now stopped when the program exits or the config file is reloaded.
– Prerequisites can now have keepAlive setting, watching for Process and Output conditions.
– Replaced custom-drawn checkbox-containing ListBox with ListView control. It is now multi-selectable, and without checkboxes.
– ListView box now contains detailed information about each miner’s configuration, including current priority and keepAlive hit count. Ideally it should stay on 0. If the value is growing, it means that you either have a misconfigured keepAlive condition, so that the function kicks in more than it should, or that you have overclocked your GPU too much and it keeps crashing the driver.
– KeepAlive now reports reasons for restarting the miner (in the log window).
– The application now targets .Net Frameverk ver. 4.0 and is built with explicit platform target set to x86 (this should hopefully help anyone having trouble running it on Windows XP).

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
Nemo1024 (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1014



View Profile WWW
April 26, 2013, 09:37:00 AM
 #19

Version 5.10 has been released:

– Added “Run with Windows” checkbox to the GUI and tray context menu.
– Improved positional handling of the output text box when autoScroll feature is disabled.
– KeepAlive Hits column now shows counters for each category.
– Reset KeepAlive Hits counters when a miner is manually restarted.
– Added threshold attribute to the checkHashRate keepAlive option. An average hashing speed during the keepAlive check interval, which is below this threshold will trigger miner restart.
– Added a small and unobtrusive donation hint to the main GUI screen. Wink

“Dark times lie ahead of us and there will be a time when we must choose between what is easy and what is right.”
“We are only as strong as we are united, as weak as we are divided.”
“It is important to fight and fight again, and keep fighting, for only then can evil be kept at bay, though never quite eradicated.”
WebMaka
Newbie
*
Offline Offline

Activity: 16
Merit: 0


View Profile
April 28, 2013, 10:53:00 PM
 #20

Since I'm about to release a total-newbie-friendly GUI for Litecoin mining, lemme weigh in on something here that'll help you make your front-end a bit better...

Special note about Pooler’s cpuminer for Litecoins (https://bitcointalk.org/index.php?topic=55038.0) – Bitcoin Miners in Tray can run and control it, but due to two quirks, no output from cpuminer is displayed until it is stopped. Cpuminer directs all of its output to stderr, which BMT handles well. However, it does not finish output of a line when a line is written to stderr, thus all lines are dumped on the pipe at the same time when cpuminer stops and closes its streams. There is nothing I can do about it, as this needs to be fixed by Pooler.

I don't know what coding language you're using, but the way to work around this is to peek at the pipe with the PeekNamedPipe API call to see if there's anything in the pipe before trying to read it. Otherwise, your pipe read will deadlock trying to read an empty pipe. (For some reason, pipe reads on Windows like to hang when the pipe's empty, and trying to read an empty pipe will cause a wait state until the pipe has data to read.) Peeking at the pipe will allow testing it without reading from it, and that stops the wait state issue and allows you to continuously monitor the miner's output without having to wait for it to close.

I spent a lot of time trying to solve the "no data until the app closes" problem. I mean a lot of time. PeekNamedPipe turned out to be the solution.

Assuming you're peeking at the pipe, the only other issue you'll have is the fact that cpuminer - and, by extension, all of its forks - will not emit data across a pipe until it fills a send buffer that looks to be about 64KB. So, you'll end up with no reports at all for 5-15 minutes followed by a burst of text followed by more silence, rinse and repeat. This part will require resolution by the app coders themselves.

Here's how I'm handling this in my app - this code is Delphi 7 but should convert readily to whatever language...

Code:
            // This is an important bit of code: we take a peek at the output pipe
            // to see if there's any data in it. This allows us to avoid trying to
            // read from an empty pipe, which will just sit there and wait until
            // data comes in! This is the key to monitoring a console application
            // without having to wait for it to terminate before working with its
            // output.
            PeekNamedPipe(StdOutPipeRead, nil, 0, nil, @DataAvailable, nil);
            if (DataAvailable > 0) then
            begin
              // Since there's actually something to read, read it. Note that
              // we are reading blocks of 16 kilobytes of characters at a time.
              if ReadFile(StdOutPipeRead, Buffer, 16384, BytesRead, nil) then
              begin
                if (BytesRead > 0) then
                begin
                  // Make sure the boffer ends in a null character.
                  Buffer[BytesRead] := #0;

                  // Concatenate with any previous data.
                  Text := Text + Buffer;
                end;
              end;
            end;


Quote
CGMiner (https://bitcointalk.org/index.php?topic=28402.0) must be started with --text-only or -T parameter to disable ncurses and with --log 1 or -l 1 to log output every second. CGMiner suffers from the same problem as pooler’s cpuminer, which is not strange as it was forked from it. The problem is however only with the redirected stdout stream, while stderr works fine, outputting the lines as they are pushed into the pipe. Once CGMiner is stopped, all text on stdout will be dumped in one go. -l 1 seems to fix this.

I haven't had to add "-l 1" but "-T" was definitely a necessity.
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!