Post
Topic
Board Mining (Altcoins)
Re: [ANN] Miner Control 1.5.3 - Auto profit switching miner controller
by
StuffOfInterest
on 16/11/2014, 11:53:47 UTC
....
It will be even worse if there is no rented rig (all MRR are dead) - there will be at least 2min pause every switchtime...
Am I missing something? Maybe there is another way to do it?
I think it would be the ideal way if MC could check for pools viability before switching to them?
And then switches to the first alive pool going from the most profitable down...
Since you're using it to manually switch between renters, which will only do so when one goes down, you don't really need any "switch time" at all.  I'd say set it to something extremely low, or even 0, so there is little-to-no wait time when switching.
Travis, I might not be getting exactly what your idea is, but here is some more detailed explanation:
First 4 pools (MRR in name) are rentals. They will be all dead, OR only one will be alive.
MC should switch when one of them gets alive AND switch back to profit based when all the rentals are dead.
Here is a simple block diagram:


I achieved that, but the main problem is in order to do the "IF" statement MC has to go through (start mining at) all the pools based on their profitability,
which means there will be a lot of down time (retries before a pool is declared dead). That is because a check for an alive renting pool should be done once
every 1 or 2 mins. So even if there is no change in which pools are alive or dead there will be an interruption of mining for pool status check. So that was my initial idea -
Could Miner Control check pool viability without actually interrupting current mining?

Like is it possible to start new instance of ccminer that only checks if pools are dead or alive?
And only initiate a switch if there is a change in the profitability/availability of pools?
I am pretty sure that is the way c/sgminer works (without the profitability part).
You are correct.  SGminer/CGminer already have this function built-in, since AMD cards were all the rage for cryptomining at first.  NVIDIA mining only just recently began to have some advantage over AMD, so the mining tools for NVIDIA are still being developed.  I think you may be one of the first people I've heard of who is seriously wanting to use NVIDIA cards for mining rental, so that's why you're finding some difficulty in finding a tool for this purpose, specifically for NVIDIA GPUs.  The need simply wasn't there before, so you're basically breaking new ground.
Fortunately, what you need should be a reasonably simple feature that could be added to MinerControl (I can't see it being as easy to directly build it in to ccMiner), since it would basically only have to ping the "dead" servers (at least in your case, and if I'm understanding the nature of these rental servers correctly).  There could be a "switch" value in the config file, that would flag certain pools as rentals.  When starting to mine, or whenever the "dead" timer expires, any dead pools which are flagged would be pinged first to check on alive status, before trying to mine them.  This rental mining feature would be an entirely new mode in MinerControl, so there would be some work in coding that, but the technical aspects are fairly simple.
Unfortunately I've become rather busy lately and so I don't have the time to tinker with the idea myself, but I'm sure StuffOfInterest would be happy to add it to the wishlist of features, if you ask him nicely.  Wink

Alright, I'll be the most nicest people out here... Smiley
As for renting - we are all mining to get some BTC, am I correct?
And if you can provide mining to somebody else for higher profit, then why not?

So StuffOfInterest - I must say again I admire thee for what you are doing here and how this is helpful to all of us.
I also have some ideas about the logic behind pool switching. This will switch to the first "priority" pool (it has to be defined as such) that is alive
which makes it kind of a "failover" strategy for "priority" pools and if they are all dead/missing it will be profit based for the rest of them as
it is now. It might not be any particular language, but it's way easier for me to show logic in code, rather than describe it in plain text.

Code:
{
foreach (all_priority_pools as current_pool) {
     if (current_pool[status]==alive) {
         return current_pool; exit ;
         }
foreach (all_pools_except_priority as current_pool) {
     /*... profit based switching as it is now ... */
     }
}

OK, here is the problem for adding this to Miner Control.  How does Miner Control go about testing of the pool is alive?  It currently has no logic for communicating with the stratum server.  One thing I've considered is building a stratum proxy into Miner Control but unless I see a straight forward example in something that translates easily to C# it probably won't happen as I'm too time pressed to add major features like this currently. I suppose we wouldn't have to implement the entire logic but we would need to at least have a good model for the connection setup and teardown piece as this is how you would determine if the port is open.  I've honestly never dug into stratum so I don't know what all is going on there.

You've put an impressive amount of effort into getting this working already.  I never imagined someone pushing Miner Control that far.