RainbowMiner / RainbowMiner

GPU/CPU Mining script with intelligent profit-switching between miningpools, algorithms, miners, using all possible combinations of devices (NVIDIA, AMD, CPU). Features: actively maintained, uses the top actual miner programs (Bminer, Ccminer, Claymore, Dstm, EnemyZ, Sgminer, T-rex and more) easy setup wizard, webinterface, auto update.
GNU General Public License v3.0
602 stars 167 forks source link

[Feature] Centralised wallet info #306

Closed talentoscope closed 6 years ago

talentoscope commented 6 years ago

It's a little annoying having to go into every pool and manually add in a new wallet address for each coin. I get why you'd want to mine certain coins on certain pools, but would it also be possible to centralise the whole wallet address thing like with BTC?

That way, both options are catered for, main wallets that can be used by any (updated) pool with new coins with better ROI, and/or ones where they're kept per pool.

Loving the new release by the way!!!!!!! :)

RainbowMiner commented 6 years ago

Loving the new release by the way!!!!!!! :)

Thank you! ❤️

Of course, the central coin wallet setup is a superb idea. I will implement that.

RainbowMiner commented 6 years ago

Such a nice feature! Thank you for this idea. It is done :)

RainbowMiner commented 6 years ago

Add default wallets to coins.config.txt

e.g. enter in coins.config.txt

"RVN":  {
            "Penalty":  0,
            "MinHashrate":  "0",
            "MinWorkers":  "0",
            "MaxTimeToFind":  "0",
            "Wallet":  "yourRVNwalletaddress"
        },

.. then enter in pools.config.txt, section of the pool to add this wallet:

"RVN": "$RVN",

Done :)

Every occurence of $RVN will be automatically substituted with your coins.config.txt default.

RainbowMiner commented 6 years ago

Also, I added this feature to the build in configuration Co[i]ns and [P]ools

talentoscope commented 6 years ago

Already?! Wow. I'll add them all in as you say into those two files. Was hoping it would be a simple variable fix :) Thanks again again 😇

jch9678 commented 6 years ago

Can't wait to try this out, will you be releasing a new version with this implemented or do you have a zip to drop in?

RainbowMiner commented 6 years ago

Ok, I release this now.

jch9678 commented 6 years ago

Great! could you please give me an example of what a pools.config.txt would look like for a pool with multiple coins. For example cryptoknight.cc will need several wallets...

RainbowMiner commented 6 years ago

Sure, here you go:

"Icemining": {
  "RVN": "$RVN",
  "SUQA": "$SUQA",
  "Worker": "$WorkerName",
  "DataWindow": "estimate_current",
  "Penalty": 0,
  "Algorithm": "",
  "ExcludeAlgorithm": "",
  "ExcludeCoin": "",
  "CoinName": "",
  "CoinSymbol": "",
  "ExcludeCoinSymbol": "",
  "FocusWallet": "",
  "AllowZero": "0"
},

And in coins.config.txt

{
    "RVN":  {
                "Penalty":  0,
                "MinHashrate":  "0",
                "MinWorkers":  "0",
                "MaxTimeToFind":  "0",
                "Wallet":  "<YOUR_RAVENCOIN_WALLET>"
            },
    "SUQA":  {
                 "Penalty":  0,
                 "MinHashrate":  "0",
                 "MinWorkers":  "0",
                 "MaxTimeToFind":  "0",
                 "Wallet":  "<YOUR_SUQA_WALLET>"
             }
}
RainbowMiner commented 6 years ago

Rule-of-thumb:

Also:

jch9678 commented 6 years ago

Thank you very much.

talentoscope commented 6 years ago

This is great, but I'm thinking maybe it half-solves the problem since we can just put the wallet address in there anyway. My train of thought was something like

if $wallet.coin != "" config.pool = $wallet.coin

or something like that. Auto updating the pools.config if there is a set wallet for that coin already in the coins config.

The problem this solves in particular is when a new coin is released on one pool like Zpool and is already on another, say phiphi, then zpool will be updated automatically, and the profit checked without the user having to do anything at all. Keeps profit going in cases where this happens - and it happens a lot :)

RainbowMiner commented 6 years ago

Ah! I understand. Yes, that would be smart. I will implement that 🍺

talentoscope commented 6 years ago

Woohoo! :+1:

jch9678 commented 6 years ago

This would be better but in my case when I mine at zpool, I like to be paid in BTC, not in the currency being mined. Hopefully you can include an option to be continued to be paid in BTC at certain pools (e.g. zpool) but auto-filled at others who don't offer auto-exchange (e.g. cryptoknight).

talentoscope commented 6 years ago

Maybe a simple switch in the config between coinlist and a single coin would suit both and include other single coins per pool as well :)

jch9678 commented 6 years ago

Yes, or a switch in pools.config for each pool. Could be tedious on initial setup but is pretty easy to edit once the pools.config file has been produced

talentoscope commented 6 years ago

That's what I meant, the switch being in the pool config. Since there's less than 10 supported at the moment, I don't think a simple yes/no will take much effort :)

RainbowMiner commented 6 years ago

We will need two switches: one in coins.config.txt to enable the automatic distribution of a coin to possible pools and a second in pools.config.txt to enable pools to accept these coins. I will do it :)

RainbowMiner commented 6 years ago

Here you go: commit 3758ed98dd9817b993e6cfc75b2c1c18f8d41156 .. new release which contains this commit will be published soon.

Each pool with EnableAutoCoin=1 will inherit all coins with EnableAutoPool=1

talentoscope commented 6 years ago

Amazing, thanks RBM! I'll grab this commit now. AwesomeMiner is so far behind right now :rofl:

jch9678 commented 6 years ago

Yes, thank you for implementing this. It's great, wish I knew how to compile RainbowMiner :) But I'm perfectly happy waiting for the release.

talentoscope commented 6 years ago

@jch9678 Just grab the commit zip file from GitHub and overwrite the directory. No need to compile :)

jch9678 commented 6 years ago

Thanks @talentoscope that makes sense ha. Nothing is compiled, ugh gonna be a long week if I couldn't realize that. :)

talentoscope commented 6 years ago

Lol. It's been a long 30-something years for some of us mate, don't worry 😂

jch9678 commented 6 years ago

@talentoscope right there with you.

I'm sure this has been addressed but for addresses with a payment id, should we just do

address.paymentid

Is there something I can put within { } to denote where this address is located, e.g. an exchange or a local wallet? Does # comment out anything?

"RVN": { "Penalty": "0", "MinHashrate": "0", "MinWorkers": "0", "MaxTimeToFind": "0", "Wallet": "blahblahblah", "EnableAutoPool": "0" }

RainbowMiner commented 6 years ago

@jch9678 just create your own parameter. Use something like "Info": "my info here",

Edit: this sounds useful to me. So please, use "Info". I will add this parameter in the future. Let's see, what we can do with this :)

jch9678 commented 6 years ago

I will use "Info" thank you. I also had the question about paymentid's. Should we use 'address.paymentid' for "Wallet"?

I have another issue that popped up as a result of adding many wallets, I'm not sure if you want me to create another issue because this one is closed but I'll write it here first.

I added over 20 wallets, almost every coin from cryptoknight.cc pool. After RainbowMiner restarted it only benchmarked Haven, Graft, and Loki. One possible explanation I thought of was that a pool might expect the algo name instead of it's 'exchange' symbol. For instance, RTO (which is what I used in coins.config) did not benchmark but maybe the pool was looking for Arto?

By the way Graft mined with the wrong algo, maybe that's a clue??

I have a couple more issues that resulted from adding the coins but I think I will just create new issues. If I'm wrong about creating them just let me know and I will add them here.

RainbowMiner commented 6 years ago

Should we use 'address.paymentid' for "Wallet"?

Yes, exactly

I added over 20 wallets, almost every coin from cryptoknight.cc pool. After RainbowMiner restarted it only benchmarked Haven, Graft, and Loki. One possible explanation I thought of was that a pool might expect the algo name instead of it's 'exchange' symbol. For instance, RTO (which is what I used in coins.config) did not benchmark but maybe the pool was looking for Arto?

Wow! This sounds like a lot work. Rainbowminer will not benchmark each coin. It will benchmark each algorithm, so normally it should benchmark the following algorithms, at maximum:

  7 CnLiteV7 
  1 CnAlloy   
  1 CnArto
  7 CnV7 
  2 CnSaber
  2 CnHaven
  6 CnHeavy
  1 CnFast
  1 CnXTL
  1 CnV8   

The "Cn=Cryptonight", the number tells the number of coins, using this algorithm. This is perfect, because, for example, CnHeavy is the same speed for every of the 6 coins.

RainbowMiner commented 6 years ago

By the way Graft mined with the wrong algo, maybe that's a clue??

I will check the algorithm, which is currently assigend to Graft.

RainbowMiner commented 6 years ago

I have a couple more issues that resulted from adding the coins but I think I will just create new issues. If I'm wrong about creating them just let me know and I will add them here.

All fine :) I will find your questions so or so.

jch9678 commented 6 years ago

Ah ok, If I understand correctly, this is a change your are going to make? And I should just wait for it or did I do something wrong. Sorry for making a lot of work for you, I am mentioning RainbowMiner on twitter and bct so hopefully you will get more users. It does seem to be picking up, more issues = more users, I think

btw you already found the other 'issues' and answered them.

RainbowMiner commented 6 years ago

And I should just wait for it or did I do something wrong.

You did everything right. I am currently checking all the coins / algos. There are some new coins.

I am mentioning RainbowMiner on twitter and bct

😊 thank you.

RainbowMiner commented 6 years ago

Done. I just uploaded a new Cryptoknight.ps1 pool file with all coins checked. Now everything should be fine.

RainbowMiner commented 6 years ago

Sorry for making a lot of work for you

Thank you very much for pointing at things and adding valuable ideas.

jch9678 commented 6 years ago

And thank you for being so communicative and making a great product. I will be able to test this later tonight (for me)

jch9678 commented 6 years ago

A few things happened when I loaded the ps1 file: The cryptoknight.ps1 file is throwing some errors so that pool never loads.
Graft is still trying to use cnv7.
I added the coins to miner.rocks but that pool also didn't benchmark any of the newer algos, just v8, v7, and heavy. Here's my debug file. debug-2018-11-13.zip

RainbowMiner commented 6 years ago

Ok, I will doublecheck the Cryptoknight. Regarding the new algos, too.

RainbowMiner commented 6 years ago

One thing I noticed, looking into your config.txt:

"CryptoNightLite",
"CryptoNightHeavyXhv",
"CryptoNightHeavy",
"CryptoNightV7",
"CryptoNightV8",

These are the currently enabled cryptonight algos. You should add the missing algorithm.

Give this a try: replace all cn/crypto algorithm strings in config.txt, param "Algorithm", with the following string: cnfast,cnfest,cryptonotehaven,cnheavy,cryptonightitalo,cnheavytube,cnhaven,cnlite0,cndark,cryptonightipbc,cnlitered,cnlite1,cnlite2,cnb2n,cryptonightmox,cnarto,cn1,cn2,cnalloy,cnxtl

Then you should get em all.

RainbowMiner commented 6 years ago

the cryptoknight.ps1 file is throwing some errors so that pool never loads.

It seems that your download is corrupt. Try this to extract into your Pools folder. CryptoKnight.zip

RainbowMiner commented 6 years ago

.. or update to the new release :)

jch9678 commented 6 years ago

Thank you, and whoops, I guess I thought the config.txt would update with algos. It makes sense it doesn't however.

I now have 24 miners benchmarking, ha

jch9678 commented 6 years ago

If possible can we get rid of 1 thread for srbminer? I don't think there's any configuration that's optimized for that.

jch9678 commented 6 years ago

Graft is still using v7 for some reason, strange

RainbowMiner commented 6 years ago

If possible can we get rid of 1 thread for srbminer?

Yes, we can :) Is it really of any use?

Graft is still using v7 for some reason, strange

?! Strange. I will check

RainbowMiner commented 6 years ago

Try this SrbMiner.ps1 (extract into your Miners folder) and there will be no more 1-threads: SrbMiner.zip

jch9678 commented 6 years ago

I really don't think 1 thread is of any use. I have not put in the new ps1 file but I noticed a couple other issues BBS was not using the right algo with jceminer and srbminer did not produce configs with Heavy and HeavyXHV for 2 threads. It only produced HeavyTube. However it did produce all 3 correctly with 1 thread.

I'm not sure what mechanism RainbowMiner uses to choose algos for a coin but if it only has one list then each miner may use a different list. For example variation 2 for jceminer might be xtl but variation 2 for srbminer may be v8. Could this be a reason the wrong algos are chosen?

RainbowMiner commented 5 years ago

Graft mining cryptonightv7

I checked the full path, from pool to miner everything is ok. But I got an idea: please check your Srbminer config file for "CryptonightV8" - check field "cryptonight_type". Eventually there is "normalv7". For CryptonightV8, there must be "normalv8"

RainbowMiner commented 5 years ago

I'm not sure what mechanism RainbowMiner uses to choose algos for a coin but if it only has one list then each miner may use a different list.

Each RainbowMiner miner module is programmed, so that it matches the indiviual miner requirement, so every miner has it's own list.

RainbowMiner commented 5 years ago

and srbminer did not produce configs with Heavy and HeavyXHV for 2 threads. It only produced HeavyTube. However it did produce all 3 correctly with 1 thread.

This may be related to the minimum GPU memory requirements I have put in place: