polanskiman
|
|
September 29, 2014, 05:07:25 PM |
|
What exactly is the purpose of the maxtime option? Why would one want to restart the miner every x amount of time?
It was requested by some users in the past. There are situations where a miner may get messed up internally but not actually exit out. It will start claiming impossible hash rates or be unable to find good blocks. In these situations a restart of the miner would clear up the problem. There are situations where only a restart of the entire machine can correct the issue but there isn't anything I can do for that. If you don't want to have your miner restart, just set the value to "0". Thanks for the explanation
|
|
|
|
StuffOfInterest (OP)
|
|
September 30, 2014, 03:18:41 PM |
|
StuffOfInterest, how's the code cleanup coming along? Still not ready for open-source?
Getting close. Before I put the code out there I want to get the donation mining integrated in. This is going to require tweaking quite a bit of code, more than I had originally expected, so there will have to be some more cleanup after that. I'm starting to get myself familiar with git and GitHub now as that is how I plan to release the source code. I've worked with TFS and SVN for version control previously but git has become more or less the standard for open source projects, so this seems like a good time to start using it. I've already manged to integrate local code in Visual Studio with the online repository a couple of different ways so now I need to spin up on how git handles branching and merging so that the main code line will be release quality while work in progress can still be out there. That's also how I'll hopefully be able to open up for other people to contribute code.
|
|
|
|
DemosMirak
|
|
September 30, 2014, 03:30:23 PM |
|
StuffOfInterest, how's the code cleanup coming along? Still not ready for open-source?
Getting close. Before I put the code out there I want to get the donation mining integrated in. This is going to require tweaking quite a bit of code, more than I had originally expected, so there will have to be some more cleanup after that. I'm starting to get myself familiar with git and GitHub now as that is how I plan to release the source code. I've worked with TFS and SVN for version control previously but git has become more or less the standard for open source projects, so this seems like a good time to start using it. I've already manged to integrate local code in Visual Studio with the online repository a couple of different ways so now I need to spin up on how git handles branching and merging so that the main code line will be release quality while work in progress can still be out there. That's also how I'll hopefully be able to open up for other people to contribute code. How will you go about the donation mining? Mine most profitable to your address X time each day? And because it will be opensource, some people will just yank out the donation mining, especially if it is too much. Also, and this seems obvious, but I am going to say it anyway: Let it only donation mine when it is in auto-mode, or if a service is manually started, only on that algo (perhaps a more profitable pool, but still), because I sometimes stop the mining, or switch to a specific algo, for when I want that added stability or lessened load when I do something else on the rig, like watching youtube or editing text, etc. Still, many thanks for the awesome work you're doing!
|
BTC: 13enECLM3M3gjQDoBKouXuYFG4zXaDdDPx LTC: LRTbQNQcRjZV51PivQdhK7zpMtJYPouqR9
|
|
|
StuffOfInterest (OP)
|
|
September 30, 2014, 04:08:41 PM |
|
StuffOfInterest, how's the code cleanup coming along? Still not ready for open-source?
Getting close. Before I put the code out there I want to get the donation mining integrated in. This is going to require tweaking quite a bit of code, more than I had originally expected, so there will have to be some more cleanup after that. I'm starting to get myself familiar with git and GitHub now as that is how I plan to release the source code. I've worked with TFS and SVN for version control previously but git has become more or less the standard for open source projects, so this seems like a good time to start using it. I've already manged to integrate local code in Visual Studio with the online repository a couple of different ways so now I need to spin up on how git handles branching and merging so that the main code line will be release quality while work in progress can still be out there. That's also how I'll hopefully be able to open up for other people to contribute code. How will you go about the donation mining? Mine most profitable to your address X time each day? And because it will be opensource, some people will just yank out the donation mining, especially if it is too much. Also, and this seems obvious, but I am going to say it anyway: Let it only donation mine when it is in auto-mode, or if a service is manually started, only on that algo (perhaps a more profitable pool, but still), because I sometimes stop the mining, or switch to a specific algo, for when I want that added stability or lessened load when I do something else on the rig, like watching youtube or editing text, etc. Still, many thanks for the awesome work you're doing! A user wouldn't have to change the code to remove donation mining, just set the donation percentage to "0". The process will be transparent and configurable by the user. Here is how I plan to implement it. There will be two configuration parameters, "donationpercentage" and "donationfrequency". The percentage will default to "2" and the frequency will default to "240". While in auto mode, at the end of each frequency of minutes, the miner will stop and restart mining against the donation address and continue for the percentage of that frequency of time. With the defaults, it means that after 3 hours, 55.2 minutes of auto mining it will mine against the donation address on whatever is paying best for 4.8 minutes and then switch back to the user's address. The code messiness will come from the time accounting side to make sure I only mine in donation mode at the set intervals for the set amount of time.
|
|
|
|
DemosMirak
|
|
September 30, 2014, 06:26:37 PM |
|
A user wouldn't have to change the code to remove donation mining, just set the donation percentage to "0".
The process will be transparent and configurable by the user. Here is how I plan to implement it.
There will be two configuration parameters, "donationpercentage" and "donationfrequency". The percentage will default to "2" and the frequency will default to "240". While in auto mode, at the end of each frequency of minutes, the miner will stop and restart mining against the donation address and continue for the percentage of that frequency of time. With the defaults, it means that after 3 hours, 55.2 minutes of auto mining it will mine against the donation address on whatever is paying best for 4.8 minutes and then switch back to the user's address.
The code messiness will come from the time accounting side to make sure I only mine in donation mode at the set intervals for the set amount of time.
Does the program remember the total time, or does it reset whenever you hit the stop button. I, when I use the rig, often have to stop and start the program again due to fluctuations in need. If the counter resets, it would cause the donation time to be postponed again and again.
|
BTC: 13enECLM3M3gjQDoBKouXuYFG4zXaDdDPx LTC: LRTbQNQcRjZV51PivQdhK7zpMtJYPouqR9
|
|
|
StuffOfInterest (OP)
|
|
September 30, 2014, 06:35:16 PM |
|
A user wouldn't have to change the code to remove donation mining, just set the donation percentage to "0".
The process will be transparent and configurable by the user. Here is how I plan to implement it.
There will be two configuration parameters, "donationpercentage" and "donationfrequency". The percentage will default to "2" and the frequency will default to "240". While in auto mode, at the end of each frequency of minutes, the miner will stop and restart mining against the donation address and continue for the percentage of that frequency of time. With the defaults, it means that after 3 hours, 55.2 minutes of auto mining it will mine against the donation address on whatever is paying best for 4.8 minutes and then switch back to the user's address.
The code messiness will come from the time accounting side to make sure I only mine in donation mode at the set intervals for the set amount of time.
Does the program remember the total time, or does it reset whenever you hit the stop button. I, when I use the rig, often have to stop and start the program again due to fluctuations in need. If the counter resets, it would cause the donation time to be postponed again and again. Nothing has been coded yet but my intention is to use a separate time tracker for mining time in auto mode since last donation round. If you hit the stop button and later the auto button again the value will be preserved. If you exit, you loose the value. If someone was in a scenario where they need to exit or reboot more often and they still want to do donation mining then they could set a lower frequency time. This would just cause shorter donation mining sessions. There is another feature I've thought about adding in which sounds like something your usage model would benefit from. If I can come up with a good way to detect when the screen saver is active, it would be possible to have MinerControl only start the miner when the screen saver is on and kill the miner as soon as the screen saver goes off. I need to research that one some more.
|
|
|
|
LastRoby
Legendary
Offline
Activity: 882
Merit: 1000
|
|
September 30, 2014, 06:54:29 PM |
|
tnks! good job! work in progress
|
|
|
|
Travis9x
|
|
September 30, 2014, 06:59:00 PM |
|
A user wouldn't have to change the code to remove donation mining, just set the donation percentage to "0".
The process will be transparent and configurable by the user. Here is how I plan to implement it.
There will be two configuration parameters, "donationpercentage" and "donationfrequency". The percentage will default to "2" and the frequency will default to "240". While in auto mode, at the end of each frequency of minutes, the miner will stop and restart mining against the donation address and continue for the percentage of that frequency of time. With the defaults, it means that after 3 hours, 55.2 minutes of auto mining it will mine against the donation address on whatever is paying best for 4.8 minutes and then switch back to the user's address.
The code messiness will come from the time accounting side to make sure I only mine in donation mode at the set intervals for the set amount of time.
Does the program remember the total time, or does it reset whenever you hit the stop button. I, when I use the rig, often have to stop and start the program again due to fluctuations in need. If the counter resets, it would cause the donation time to be postponed again and again. Nothing has been coded yet but my intention is to use a separate time tracker for mining time in auto mode since last donation round. If you hit the stop button and later the auto button again the value will be preserved. If you exit, you loose the value. If someone was in a scenario where they need to exit or reboot more often and they still want to do donation mining then they could set a lower frequency time. This would just cause shorter donation mining sessions. There is another feature I've thought about adding in which sounds like something your usage model would benefit from. If I can come up with a good way to detect when the screen saver is active, it would be possible to have MinerControl only start the miner when the screen saver is on and kill the miner as soon as the screen saver goes off. I need to research that one some more. I'm not sure if this will work, but it could be a way of getting Miner Control to "remember" how much time has passed since the last round of donation mining. Perhaps allow it to save a small text file, containing the amount of time auto-mining elapsed, since the last round of donation mining completed. It could read this file upon startup, to continue the timer where it left off, and rewrite it upon stop/exit. If it was in the middle of donation mining upon stop/exit, then it could store a separate "clock" for that as well, so it would know to just start with donation mining, and finish out the last round. Of course it wouldn't write or use this file at all, if donation mining is set to 0. EDIT: May also want to include some kind of "catch" for this feature, in case the application did not stop/exit gracefully last time. IE, just ignore the text file, and restart the timer.
|
|
|
|
somaton
Jr. Member
Offline
Activity: 212
Merit: 6
|
|
September 30, 2014, 08:28:30 PM |
|
1.1.2 closed again without any error messages, here is what was in error.log:
30.09.2014 12:31:07 ---------------------------------------------- Type: TargetInvocationException Message: An exception occurred during the operation, making the result invalid. Check InnerException for exception details. Stack trace: at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary() at System.Net.DownloadStringCompletedEventArgs.get_Result() at MinerControl.Services.TradeMyBitService.DownloadStringBalanceCompleted(Object sender, DownloadStringCompletedEventArgs e)
30.09.2014 12:31:07 ---------------------------------------------- Type: WebException Message: The remote server returned an error: (524) Origin Time-out. Stack trace: at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result) at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
all versions i tried starting from 1.0.0 had same problem with autoclosing (different errors in error.log) without error messages and i have to check everyday few times that it is still running.
feature request:
do mine only when "Net" is on + side and not -, or even better to make possible to specify to mine only when "Net" is for example 0,000500 and not less, if less then wait when it is 0,000500 or more. I hope you understand what i mean, otherwise very good program, thanks!
|
|
|
|
StuffOfInterest (OP)
|
|
September 30, 2014, 08:50:20 PM Last edit: September 30, 2014, 09:20:03 PM by StuffOfInterest |
|
1.1.2 closed again without any error messages, here is what was in error.log:
30.09.2014 12:31:07 ---------------------------------------------- Type: TargetInvocationException Message: An exception occurred during the operation, making the result invalid. Check InnerException for exception details. Stack trace: at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary() at System.Net.DownloadStringCompletedEventArgs.get_Result() at MinerControl.Services.TradeMyBitService.DownloadStringBalanceCompleted(Object sender, DownloadStringCompletedEventArgs e)
30.09.2014 12:31:07 ---------------------------------------------- Type: WebException Message: The remote server returned an error: (524) Origin Time-out. Stack trace: at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result) at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
all versions i tried starting from 1.0.0 had same problem with autoclosing (different errors in error.log) without error messages and i have to check everyday few times that it is still running.
feature request:
do mine only when "Net" is on + side and not -, or even better to make possible to specify to mine only when "Net" is for example 0,000500 and not less, if less then wait when it is 0,000500 or more. I hope you understand what i mean, otherwise very good program, thanks!
Unfortunately, the error log file won't catch the exceptions which take the program down. I've made several attempts to wire the error logger in low enough with no success. The last error you see in the log has nothing to do with what caused the crash. In your example above this was just the TradeMyBit balance API call timing out, which happens from time to time. You may have something in your windows event log relating to the crash. If you see something there and can put it here that would be a big help. Regarding the minimum net to mine, I think this is a good idea. I used to have it set to only mine for positive net values but I removed that a while back since there was usually some algo with a positive net (at least for me). I think what may work better is to have a configurable parameter for the minimum net so that if nothing is above that threshold then the miner will pause until something rises up high enough again. I'll add that to the wish list.
|
|
|
|
somaton
Jr. Member
Offline
Activity: 212
Merit: 6
|
|
September 30, 2014, 09:04:01 PM |
|
there is nothing else in error.log, only those two errors/lines. With 1.1.1 version i had same problem, error.log is 66kb big (was in use for ~4 days) and again with same errors like 1.1.2 + two lines with this:
27.09.2014 16:40:06 ---------------------------------------------- Type: InvalidOperationException Message: Process has exited, so the requested information is not available. Stack trace: at System.Diagnostics.Process.EnsureState(State state) at System.Diagnostics.Process.get_MainWindowHandle() at MinerControl.MiningEngine.StartMiner(PriceEntryBase entry, Boolean isMinimizedToTray)
|
|
|
|
polanskiman
|
|
October 01, 2014, 01:31:36 AM |
|
How's the work coming along for WafflePool??
|
|
|
|
lextad
Newbie
Offline
Activity: 29
Merit: 0
|
|
October 01, 2014, 01:36:17 AM |
|
Please try to open this in a web browser: https://pool.trademybit.com/api/balance?key=XYZ
Replace XYZ with your api key. If your key is in correctly then the only thing it could be is a missing piece of information in the return so I need to see a sample of that returned data. Thanks. thanks for the input in all this but i have a update to the new 1.1.2 and same problem. I have tested the api and pulls all the data
|
|
|
|
StuffOfInterest (OP)
|
|
October 01, 2014, 01:37:06 AM |
|
How's the work coming along for WafflePool??
Waiting for them to produce a realtime API.
|
|
|
|
StuffOfInterest (OP)
|
|
October 01, 2014, 01:37:56 AM |
|
Please try to open this in a web browser: https://pool.trademybit.com/api/balance?key=XYZ
Replace XYZ with your api key. If your key is in correctly then the only thing it could be is a missing piece of information in the return so I need to see a sample of that returned data. Thanks. thanks for the input in all this but i have a update to the new 1.1.2 and same problem. I have tested the api and pulls all the data As I asked before, please send me a sample of the output from the API call above. I need to see how the data is structured to understand how it is different from what I'm expecting.
|
|
|
|
Travis9x
|
|
October 01, 2014, 02:17:39 AM |
|
there is nothing else in error.log, only those two errors/lines. With 1.1.1 version i had same problem, error.log is 66kb big (was in use for ~4 days) and again with same errors like 1.1.2 + two lines with this:
27.09.2014 16:40:06 ---------------------------------------------- Type: InvalidOperationException Message: Process has exited, so the requested information is not available. Stack trace: at System.Diagnostics.Process.EnsureState(State state) at System.Diagnostics.Process.get_MainWindowHandle() at MinerControl.MiningEngine.StartMiner(PriceEntryBase entry, Boolean isMinimizedToTray)
He means your Windows Event logs, not the MinerControl error log. As he explained, if the program crashes then it won't be able to write anything to the error log before it dies, but Windows may have logged something from the crash. To check your Windows Event logs, find My Computer, or just "Computer" (either on the Desktop, or in your Start Menu) and right-click it. Select "Manage" (you must be an Administrator to do this). In the left-hand tree, click on Event Viewer. Give it a moment to read the logs (can take anywhere from a couple seconds to a full minute depending on your drive speed and how long the logfile is). The logs are sorted by type, and marked by how long ago they occurred, so depending on how long ago MinerControl crashed, I would suggest looking through the logs in "Error" and "Warning" (most likely Error), for the last hour if it crashed recently, and 24 hours if you're not sure (but you are sure it happened within the last day). Look for anything having to do with MinerControl.exe Hope this helps
|
|
|
|
polanskiman
|
|
October 01, 2014, 04:49:01 AM Last edit: October 01, 2014, 05:03:18 AM by polanskiman |
|
How's the work coming along for WafflePool??
Waiting for them to produce a realtime API. Ok. Hopefully they will soon By the way, I see you use 0.90 as weight in your .conf file. Why would one not trust the reported price of the pool? If I don't want to put any weight, I simply use 1 as value, right? Also. I have noticed that since I have been using MinerControl, Nicehash seems to be reporting less hash power than when I used ccminer alone. Any ideas why? Here are the stats. https://nicehash.com/?p=miners&a=4&d=7&addr=1F1DChiJvjyZymecjFY4JwTjrbkaeVZNKjNotice the right side of the graph. Average hash is lower than all the left part where all the hash is more compact and miner was not constantly switching from one algo to the other. Here is my .conf file as well: { "general": { "power": 0.17, "exchange": 404, "mintime": 4, "maxtime": 0, "switchtime": 3, "deadtime": 10, "logerrors": true, "gridsortmode": 1, "minerkillmode": 1 }, "algorithms": [ { "name": "x11", "hashrate": 15951, "power": 60 }, { "name": "x13", "hashrate": 12600, "power": 60 }, { "name": "x15", "hashrate": 9400, "power": 60 }, { "name": "nist5", "hashrate": 48338, "power": 60 } ], "nicehash": { "account": "1F1DChiJvjyZymecjFY4JwTjrbkaeVZNKj", "worker": "1", "weight": 0.90, "param1": "-R 15 -a", "param2": "stratum+tcp://stratum.nicehash.com", "algos": [ { "algo": "x11", "folder": "C:\\Users\\pl\\Desktop\\ccminer-1.2-x15-windows\\x86", "command": "ccminer.exe", "arguments": "_PARAM1_ x11 -o _PARAM2_:3336 -u _ACCOUNT_._WORKER_ -p d=0.16" }, { "algo": "x13", "folder": "C:\\Users\\pl\\Desktop\\ccminer-1.2-x15-windows\\x86", "command": "ccminer.exe", "arguments": "_PARAM1_ x13 -o _PARAM2_:3337 -u _ACCOUNT_._WORKER_ -p d=0.16" }, { "algo": "x15", "folder": "C:\\Users\\pl\\Desktop\\ccminer-1.2-x15-windows\\x86", "command": "ccminer.exe", "arguments": "_PARAM1_ x15 -o _PARAM2_:3339 -u _ACCOUNT_._WORKER_ -p d=0.16" }, { "algo": "nist5", "folder": "C:\\Users\\pl\\Desktop\\ccminer-1.2-x15-windows\\x86", "command": "ccminer.exe", "arguments": "_PARAM1_ nist5 -o _PARAM2_:3340 -u _ACCOUNT_._WORKER_ -p d=0.16" } ] } } Any recommendation would be appreciated. Finally, what is the purpose of providing the hashrate, power and exchange values? Are they only used as visual reference in the GUI or are they used to calculate something? Sorry if all these questions sound dumb but I'd rather ask than remain ignorant!
|
|
|
|
Travis9x
|
|
October 01, 2014, 06:42:35 AM |
|
How's the work coming along for WafflePool??
Waiting for them to produce a realtime API. Ok. Hopefully they will soon By the way, I see you use 0.90 as weight in your .conf file. Why would one not trust the reported price of the pool? If I don't want to put any weight, I simply use 1 as value, right? He weights NiceHash slightly lower, since both NiceHash and WestHash provide exactly the same payout, and he is geographically closer to WestHash (thus the tiny weight difference will usually only make NiceHash reported profitability slightly less than WestHash, but not affect the value of WestHash against any other mining pools). I use a weight of 0.99 on NiceHash for the same reason. And yes, you can just put 1 for no weight, or remove that line entirely. Also. I have noticed that since I have been using MinerControl, Nicehash seems to be reporting less hash power than when I used ccminer alone. Any ideas why? Here are the stats. https://nicehash.com/?p=miners&a=4&d=7&addr=1F1DChiJvjyZymecjFY4JwTjrbkaeVZNKjNotice the right side of the graph. Average hash is lower than all the left part where all the hash is more compact and miner was not constantly switching from one algo to the other. It's probably because your miners are switching to other pools some of the time, so your total hashrate for NiceHash per hour is lower. Just my guess. Finally, what is the purpose of providing the hashrate, power and exchange values? Are they only used as visual reference in the GUI or are they used to calculate something?
Sorry if all these questions sound dumb but I'd rather ask than remain ignorant! They are used to calculate the profitability of each algorithm/pool, yes. The "Net" column indicates this. (ie, hashrate x price = earn, and earn - fees - power = net…not precisely how the calculations work, but it should help you get the general idea) This is how the tool knows which algorithm/pool to mine, by judging which is most profitable from these numbers (the one with the highest Net).
|
|
|
|
canigetanipa
Member
Offline
Activity: 77
Merit: 10
|
|
October 02, 2014, 03:21:19 AM |
|
Do any of these factor into the payout?
Legend: general - General configuration parameters power - Rate per KW/hour in your currency units [My power is free, so do I put .00?] exchange - Bitcoin price in your currency units for calculating power cost in Bitcoin [Can't this be parsed somehow from the latest exchange prices and not hard coded to a config file?]
algorithms - List of supported algorithms power - Watts your GPU pulls when mining an algorithm [I run 8 GPUs, do I put the watts for 1 GPU? The combined estimated watts for all 8 of the GPUs? OR the combined watts for the entire PC from the wall?]
|
|
|
|
Travis9x
|
|
October 02, 2014, 03:53:41 AM |
|
Do any of these factor into the payout?
Legend: general - General configuration parameters power - Rate per KW/hour in your currency units [My power is free, so do I put .00?] exchange - Bitcoin price in your currency units for calculating power cost in Bitcoin [Can't this be parsed somehow from the latest exchange prices and not hard coded to a config file?]
algorithms - List of supported algorithms power - Watts your GPU pulls when mining an algorithm [I run 8 GPUs, do I put the watts for 1 GPU? The combined estimated watts for all 8 of the GPUs? OR the combined watts for the entire PC from the wall?] First off, only the pools you mine in do any factoring of your payouts. Miner Control only uses the APIs from the pools, plus some info from you regarding your mining hardware, to calculate an estimated profitability for each algorithm/pool. None of the parameters in the config file have any direct effect on the payouts received from any pools, they only help the tool to accurately pick which pool/algo to mine. "General" is a title, a heading. It's only used for organizing the config file to make it easier for humans to read (and presumably, any aliens capable of reading English ). If your electricity is free, then yes you can put 0 for power cost. (where are you, that you get free electricity??) I've often wondered about the exchange data, as well. I suppose it could be pulled from a few different exchanges (almost all of them offer APIs for this kind of thing), and the values averaged together to come up with a general BTC value. We would probably only need to put in what fiat currency we use, so it knows what data to read. I'm sure StuffOfInterest could look into this when he's finished with more important things (or I could, once he opens the code to the public, and if he lets me help with coding ) Algorithms - not sure what help you need here? Power - this is the power usage of all GPUs you're going to be using for mining. You enter the total wattage, so yes you could enter the total amount being pulled by your entire rig, or just the total of all the GPUs added up. Doesn't really make a difference either way, but if you want to know your true profit compared to power costs, then I would enter the amount your rig pulls from the wall. …of course, in your case, you could be burning through 1.21 jigawatts and it wouldn't matter since your electricity is free! lol
|
|
|
|
|