Stratum solo pool #51

Closed
opened 3 years ago by duke · 23 comments
duke commented 3 years ago
Owner

We now have a stratum branch which needs testing! This code was originally written by Freicoin (with a compatible Mozilla Public License) and then ported to KMD by Decker: https://github.com/DeckerSU/komodo/tree/stratum-dev/src

It merged very easily with a bit of elbow grease.

New options in hushd:

Stratum server options:

  -stratum
       Enable stratum server (default: off)

  -stratumbind=<addr>
       Bind to given address to listen for Stratum work requests. Use
       [host]:port notation for IPv6. This option can be specified multiple
       times (default: bind to all interfaces)

  -stratumport=<port>
       Listen for Stratum work requests on <port> (default: 19031 or testnet:
       xxx)

  -stratumallowip=<ip>
       Allow Stratum work requests from specified source. Valid for <ip> are a
       single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0)
       or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified
       multiple times

For example. to launch HUSH with stratum pool on default (rpcPort + 1000) stratum port 28030, you'll need to execute:

# it's a good idea to keep all output for debugging
./src/hushd -stratum &> hush-stratum.log &
tail -f hush-stratum.log

This code is compatible with Hush Smart Chains and it may be easier to test it via HSCs so CPU or low difficulties can be used.

Then point your software miner or ASIC at stratum+tcp://stratum_ip:28031. Don't forget to specify username as valid HUSH address, such as RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn and any non-empty password, such as "x".

For example using ccminer:

./ccminer --algo=equihash --url=stratum+tcp://127.0.0.1:28031 --user=RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn --pass=x 

There should be logging to STDOUT and also debug.log about mining details.

  • Basic checklist
    • Does it listen on the correct port and accept connections?
    • Can clients connect and subscribe via JSON?
    • Can clients get new work?
    • Can clients submit valid jobs?
    • Can this code mine a valid block on a Hush Smart Chain?
    • Can this code mine a valid block on HUSH mainnet?
    • Why do miners not reach full speed?
We now have a `stratum` branch which needs testing! This code was originally written by Freicoin (with a compatible Mozilla Public License) and then ported to KMD by Decker: https://github.com/DeckerSU/komodo/tree/stratum-dev/src It merged very easily with a bit of elbow grease. New options in `hushd`: ``` Stratum server options: -stratum Enable stratum server (default: off) -stratumbind=<addr> Bind to given address to listen for Stratum work requests. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) -stratumport=<port> Listen for Stratum work requests on <port> (default: 19031 or testnet: xxx) -stratumallowip=<ip> Allow Stratum work requests from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times ``` For example. to launch HUSH with stratum pool on default (rpcPort + 1000) stratum port 28030, you'll need to execute: ``` # it's a good idea to keep all output for debugging ./src/hushd -stratum &> hush-stratum.log & tail -f hush-stratum.log ``` This code is compatible with Hush Smart Chains and it may be easier to test it via HSCs so CPU or low difficulties can be used. Then point your software miner or ASIC at `stratum+tcp://stratum_ip:28031`. Don't forget to specify username as valid HUSH address, such as RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn and any non-empty password, such as "x". For example using ccminer: ``` ./ccminer --algo=equihash --url=stratum+tcp://127.0.0.1:28031 --user=RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn --pass=x ``` There should be logging to STDOUT and also debug.log about mining details. * [x] Basic checklist * [x] Does it listen on the correct port and accept connections? * [x] Can clients connect and subscribe via JSON? * [x] Can clients get new work? * [x] Can clients submit valid jobs? * [x] Can this code mine a valid block on a Hush Smart Chain? * [x] Can this code mine a valid block on HUSH mainnet? * [x] Why do miners not reach full speed?

Running hushd with the following options didn't appear to run the stratum server (as seen by nmap scanning 127.0.0.1 and running "ss -lt" ):
./hushd -stratum

Then I tried specifying a port but it does not appear to be starting the stratum server, as seen by the same above nmap and ss checks.

Update: had wrong branch, it's spinning up something as I see the port being used now

Running hushd with the following options didn't appear to run the stratum server (as seen by nmap scanning 127.0.0.1 and running "ss -lt" ): ```./hushd -stratum``` Then I tried specifying a port but it does not appear to be starting the stratum server, as seen by the same above nmap and ss checks. **Update:** had wrong branch, it's spinning up something as I see the port being used now
Poster
Owner

@jahway603 does grep -i stratum in your debug.log show up anything?

@jahway603 does `grep -i stratum` in your debug.log show up anything?
Poster
Owner

@jahway603 I just merged dev into stratum, can you please test and show me what happens in your debug.log ? I am also testing

@jahway603 I just merged `dev` into `stratum`, can you please test and show me what happens in your debug.log ? I am also testing

My stratum-debug.log from docker without creating new user.

root@e8a38fcaeef2:/hush3# tail -f /hush3/hush-stratum.log
finished loading blocks HUSH3                                      
processing /root/.hush/HUSH3/hushstate 7938KB, validated.-1        
inds.0x564d8240d130 validate /root/.hush/HUSH3/hushstate.ind 
2516720 datalen.8129271 n.629180 lastfpos.0                        
took 0 seconds to process /root/.hush/HUSH3/hushstate 7938KB       
zindex=disabled in block index                                     
nLocalServices 40000005 0, 0                                       
HUSH blocktime changing to 75 seconds                              
the_commission: didinit ishush3=1                                  
ConnectBlock: Going full z2z at height 622691!                     
RelayTransaction: Relaying to 2 peers 

I need to setup my miner now.

My stratum-debug.log from docker without creating new user. ``` root@e8a38fcaeef2:/hush3# tail -f /hush3/hush-stratum.log finished loading blocks HUSH3 processing /root/.hush/HUSH3/hushstate 7938KB, validated.-1 inds.0x564d8240d130 validate /root/.hush/HUSH3/hushstate.ind 2516720 datalen.8129271 n.629180 lastfpos.0 took 0 seconds to process /root/.hush/HUSH3/hushstate 7938KB zindex=disabled in block index nLocalServices 40000005 0, 0 HUSH blocktime changing to 75 seconds the_commission: didinit ishush3=1 ConnectBlock: Going full z2z at height 622691! RelayTransaction: Relaying to 2 peers ``` I need to setup my miner now.
Poster
Owner

@odinzu something like CCminer can be used to CPU/GPU mine an HSC with equihash 200,9: https://github.com/tpruvot/ccminer

Also, it's a bit weird seeing hushd running as root, it's definitely more risk, even inside a docker container. I suggest running things as the hush user inside docker.

@odinzu something like CCminer can be used to CPU/GPU mine an HSC with equihash 200,9: https://github.com/tpruvot/ccminer Also, it's a bit weird seeing hushd running as root, it's definitely more risk, even inside a docker container. I suggest running things as the `hush` user inside docker.
Poster
Owner

@odinzu after a client connects to the stratum port, there should be some stratum-related logging in stdout/stderr and debug.log

@odinzu after a client connects to the stratum port, there should be some stratum-related logging in stdout/stderr and debug.log
Poster
Owner

I recommend using -debug=stratum or you will not see any stratum-related stuff in debug.log:

./src/hushd -ac_name=STRATUM -stratum -debug=stratum

So far I am able to see it listen on the correct port and give error responses to invalid stratum requests.

I recommend using `-debug=stratum` or you will not see any stratum-related stuff in debug.log: `./src/hushd -ac_name=STRATUM -stratum -debug=stratum` So far I am able to see it listen on the correct port and give error responses to invalid stratum requests.
Poster
Owner

FYI, currently Stratum Protocol support is only compatible with Equihash (200,9), so if you choose a different algorithm for a HSC, that HSC won't be compatible with the current stratum.

FYI, currently Stratum Protocol support is only compatible with Equihash (200,9), so if you choose a different algorithm for a HSC, that HSC won't be compatible with the current stratum.
Poster
Owner

I think the easiest way to test this may be by using the old Hush CPU webminer: https://git.hush.is/hush/hushwebminer

I will post instructions about how I use that to test.

I think the easiest way to test this may be by using the old Hush CPU webminer: https://git.hush.is/hush/hushwebminer I will post instructions about how I use that to test.
Poster
Owner

@onryo @odinzu this is how you use the the CLI hushwebminer to test stratum:

git clone https://git.hush.is/hush/hushwebminer
cd hushwebminer
cd c/
 make
./hushminer -P 19031 -l localhost -u RUKIDDING.test -d 2

which creates this in debug.log:

2021-08-11 00:11:44 Accepted stratum connection from 127.0.0.1:43290
2021-08-11 00:11:44 Received stratum request from 127.0.0.1:43290 : {"id":1,"method":"mining.subscribe","params":["t1NUf6fMr7WzRueaNDyrimaxxU1EM2axC2b",null,"localhost",19031]}
2021-08-11 00:11:44 Received subscription from client t1NUf6fMr7WzRueaNDyrimaxxU1EM2axC2b
2021-08-11 00:11:44 Sending stratum response to 127.0.0.1:43290 : {"result":[null,"e008566c741537f8"],"error":null,"id":1}
2021-08-11 00:11:44 Received stratum request from 127.0.0.1:43290 : {"id":2,"method":"mining.authorize","params":["RUKIDDING.test","x"]}
2021-08-11 00:11:44 Sending stratum response to 127.0.0.1:43290 : {"result":null,"error":{"code":-8,"message":"Invalid Hush address: RUKIDDING.test"},"id":2}
2021-08-11 00:11:44 Remote disconnect received on stratum connection from 127.0.0.1:43290
2021-08-11 00:11:44 Closing stratum connection from 127.0.0.1:43290

This shows that the pool is correctly noticing that a garbage HUSH address was given, it subscribes and authorizes as well. Promising

@onryo @odinzu this is how you use the the CLI hushwebminer to test stratum: ``` git clone https://git.hush.is/hush/hushwebminer cd hushwebminer cd c/ make ./hushminer -P 19031 -l localhost -u RUKIDDING.test -d 2 ``` which creates this in debug.log: ``` 2021-08-11 00:11:44 Accepted stratum connection from 127.0.0.1:43290 2021-08-11 00:11:44 Received stratum request from 127.0.0.1:43290 : {"id":1,"method":"mining.subscribe","params":["t1NUf6fMr7WzRueaNDyrimaxxU1EM2axC2b",null,"localhost",19031]} 2021-08-11 00:11:44 Received subscription from client t1NUf6fMr7WzRueaNDyrimaxxU1EM2axC2b 2021-08-11 00:11:44 Sending stratum response to 127.0.0.1:43290 : {"result":[null,"e008566c741537f8"],"error":null,"id":1} 2021-08-11 00:11:44 Received stratum request from 127.0.0.1:43290 : {"id":2,"method":"mining.authorize","params":["RUKIDDING.test","x"]} 2021-08-11 00:11:44 Sending stratum response to 127.0.0.1:43290 : {"result":null,"error":{"code":-8,"message":"Invalid Hush address: RUKIDDING.test"},"id":2} 2021-08-11 00:11:44 Remote disconnect received on stratum connection from 127.0.0.1:43290 2021-08-11 00:11:44 Closing stratum connection from 127.0.0.1:43290 ``` This shows that the pool is correctly noticing that a garbage HUSH address was given, it subscribes and authorizes as well. Promising
Poster
Owner

When you give it a valid address and wait for enough blocks on a new HSC (I had to wait about 25 blocks), it seems to fully connect:

2021-08-11 00:37:56 Accepted stratum connection from 127.0.0.1:43588
2021-08-11 00:37:56 Received stratum request from 127.0.0.1:43588 : {"id":1,"method":"mining.subscribe","params":["t1NUf6fMr7WzRueaNDyrimaxxU1EM2axC2b",null,"localhost",19031]}
2021-08-11 00:37:56 Received subscription from client t1NUf6fMr7WzRueaNDyrimaxxU1EM2axC2b
2021-08-11 00:37:56 Sending stratum response to 127.0.0.1:43588 : {"result":[null,"f731239d16c45091"],"error":null,"id":1}
2021-08-11 00:37:56 Received stratum request from 127.0.0.1:43588 : {"id":2,"method":"mining.authorize","params":["RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn.testing4lulz","x"]}
2021-08-11 00:37:56 Authorized stratum miner RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn from 127.0.0.1:43588, mindiff=0.000000
2021-08-11 00:37:56 Sending stratum response to 127.0.0.1:43588 : {"result":true,"error":null,"id":2}
2021-08-11 00:37:56 CreateNewBlock(): total size 1000 blocktime.1628642277 nBits.200f0f0f stake.0
2021-08-11 00:37:56 New stratum block template (1 total): 830c7599e7042d0afbf75c59d307f4627821030bb248702e3fa6912960a67b32
2021-08-11 00:37:56 Sending requested stratum work unit to 127.0.0.1:43588 : {"id":0,"method":"mining.set_target","params":["00ffff0000000000000000000000000000000000000000000000000000000000"]}
{"id":1,"method":"mining.notify","params":["830c7599e7042d0afbf75c59d307f4627821030bb248702e3fa6912960a67b32","04000000","870abc51a20c5e2bd24a9cb3c722c05a88586c35e7ba53fc871646518a87ec05","b3c6dbebe5691c2c4cb74d98dbe230ba72bd91e3ad5e3348af42fe58236fd1cb","fbc2f4300c01f0b7820d00e3347c8da4ee614674376cbc45359daa54f9b5493e","e41b1361","0f0f0f20",true]}
2021-08-11 00:41:08 Remote disconnect received on stratum connection from 127.0.0.1:43618

What I see is that hushwebminer does not like the the returned "work unit" and closes the connection. It seems that one of the responses does not have a result key and hushwebminer wants there to be one. It's pretty strict about things. I will try to make it work.

I think it's time to test real ASICs against this code.

When you give it a valid address and wait for enough blocks on a new HSC (I had to wait about 25 blocks), it seems to fully connect: ``` 2021-08-11 00:37:56 Accepted stratum connection from 127.0.0.1:43588 2021-08-11 00:37:56 Received stratum request from 127.0.0.1:43588 : {"id":1,"method":"mining.subscribe","params":["t1NUf6fMr7WzRueaNDyrimaxxU1EM2axC2b",null,"localhost",19031]} 2021-08-11 00:37:56 Received subscription from client t1NUf6fMr7WzRueaNDyrimaxxU1EM2axC2b 2021-08-11 00:37:56 Sending stratum response to 127.0.0.1:43588 : {"result":[null,"f731239d16c45091"],"error":null,"id":1} 2021-08-11 00:37:56 Received stratum request from 127.0.0.1:43588 : {"id":2,"method":"mining.authorize","params":["RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn.testing4lulz","x"]} 2021-08-11 00:37:56 Authorized stratum miner RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn from 127.0.0.1:43588, mindiff=0.000000 2021-08-11 00:37:56 Sending stratum response to 127.0.0.1:43588 : {"result":true,"error":null,"id":2} 2021-08-11 00:37:56 CreateNewBlock(): total size 1000 blocktime.1628642277 nBits.200f0f0f stake.0 2021-08-11 00:37:56 New stratum block template (1 total): 830c7599e7042d0afbf75c59d307f4627821030bb248702e3fa6912960a67b32 2021-08-11 00:37:56 Sending requested stratum work unit to 127.0.0.1:43588 : {"id":0,"method":"mining.set_target","params":["00ffff0000000000000000000000000000000000000000000000000000000000"]} {"id":1,"method":"mining.notify","params":["830c7599e7042d0afbf75c59d307f4627821030bb248702e3fa6912960a67b32","04000000","870abc51a20c5e2bd24a9cb3c722c05a88586c35e7ba53fc871646518a87ec05","b3c6dbebe5691c2c4cb74d98dbe230ba72bd91e3ad5e3348af42fe58236fd1cb","fbc2f4300c01f0b7820d00e3347c8da4ee614674376cbc45359daa54f9b5493e","e41b1361","0f0f0f20",true]} 2021-08-11 00:41:08 Remote disconnect received on stratum connection from 127.0.0.1:43618 ``` What I see is that hushwebminer does not like the the returned "work unit" and closes the connection. It seems that one of the responses does not have a `result` key and hushwebminer wants there to be one. It's pretty strict about things. I will try to make it work. I think it's time to test real ASICs against this code.
Poster
Owner

FYI the stratum branch has been merged into the dev branch and all further stratum testing should happen on the dev branch

FYI the `stratum` branch has been merged into the `dev` branch and all further stratum testing should happen on the `dev` branch

Also, it's a bit weird seeing hushd running as root, it's definitely more risk, even inside a docker container. I suggest running things as the hush user inside docker.

Yeah, that was mainly for demonstration purposes. Normally, we build a Dockerfile to fresh build this image, rather than commit one image. For testing, it is useful to have.

Soo much back log. I am going to launch Stratum + HSC today with a cpu or webminer.

> Also, it's a bit weird seeing hushd running as root, it's definitely more risk, even inside a docker container. I suggest running things as the `hush` user inside docker. Yeah, that was mainly for demonstration purposes. Normally, we build a Dockerfile to fresh build this image, rather than commit one image. For testing, it is useful to have. Soo much back log. I am going to launch Stratum + HSC today with a cpu or webminer.
Poster
Owner

@odinzu at this point, you can learn a lot from using the webminer to test our stratum, but we really need to test with actually ASICs. The flavor of stratum protocol that our webminer uses is not the same as our stratum code. It starts talking, "subscribes" and gets a work unit, but then the webminer does not know how to understand the responses of our stratum server.

@odinzu at this point, you can learn a lot from using the webminer to test our stratum, but we really need to test with actually ASICs. The flavor of stratum protocol that our webminer uses is not the same as our stratum code. It starts talking, "subscribes" and gets a work unit, but then the webminer does not know how to understand the responses of our stratum server.

Testing this with an ASIC.

I get a bunch of "zero out of X shares" in the log file (snippit below), but the hash rate is super low as you can see in the screenshot. If I was using a pool, I would see 50K and not 1.7K, so this is not expected behaviour.

[2021-08-18 07:51:28.209334] accepted: 0/21499 local 15.0591 (diff 64.6876, target 1.4271e+07)  43.848785 ms yes! 
[2021-08-18 07:51:28.256640] accepted: 0/21500 local 15.0591 (diff 17.2053, target 1.4271e+07)  47.306537 ms yes! 
[2021-08-18 07:51:28.308716] accepted: 0/21501 local 15.0591 (diff 61.163, target 1.4271e+07)  52.066126 ms yes! 
[2021-08-18 07:51:28.354125] accepted: 0/21502 local 15.0591 (diff 37.601, target 1.4271e+07)  45.409057 ms yes! 
[2021-08-18 07:51:28.403685] accepted: 0/21503 local 15.0591 (diff 35.6911, target 1.4271e+07)  49.560692 ms yes! 

Command used was following as it did not spit out the above "accepted" lines until I specified my ASIC miner's IP address on the CLI

./hushd -stratum -debug=stratum -stratumallowip=IP-OF-MY-MINER
Testing this with an ASIC. I get a bunch of "zero out of X shares" in the log file (snippit below), but the hash rate is super low as you can see in the screenshot. If I was using a pool, I would see 50K and not 1.7K, so this is not expected behaviour. ``` [2021-08-18 07:51:28.209334] accepted: 0/21499 local 15.0591 (diff 64.6876, target 1.4271e+07) 43.848785 ms yes! [2021-08-18 07:51:28.256640] accepted: 0/21500 local 15.0591 (diff 17.2053, target 1.4271e+07) 47.306537 ms yes! [2021-08-18 07:51:28.308716] accepted: 0/21501 local 15.0591 (diff 61.163, target 1.4271e+07) 52.066126 ms yes! [2021-08-18 07:51:28.354125] accepted: 0/21502 local 15.0591 (diff 37.601, target 1.4271e+07) 45.409057 ms yes! [2021-08-18 07:51:28.403685] accepted: 0/21503 local 15.0591 (diff 35.6911, target 1.4271e+07) 49.560692 ms yes! ``` Command used was following as it did not spit out the above "accepted" lines until I specified my ASIC miner's IP address on the CLI ``` ./hushd -stratum -debug=stratum -stratumallowip=IP-OF-MY-MINER ```
Poster
Owner

@jahway603 thank you, this is valuable feedback.

My guess is that your A9 was "Warming up" just after being turned on, where it starts slow and then ramps up it's hashrate. If you look at the screenshot, all 3 "chains" are about the same hashrate. Each chain corresponds to one "hash board". If you let it run a while, it would probably show a higher hashrate.

Bitmain asics don't do the above, as far as I know, only Innosilicon devices.

The fact that your ASIC can get work from stratum and submit valid shares is really positive.

As for stratumallowip, it's good for security to only allow some IP's, but it's also annoying since most people use dynamic IP's that will constantly change, and require restarting hushd with different allowed IP's. To use this code to run a public pool, we will need a way to allow any IP.

@jahway603 thank you, this is valuable feedback. My guess is that your A9 was "Warming up" just after being turned on, where it starts slow and then ramps up it's hashrate. If you look at the screenshot, all 3 "chains" are about the same hashrate. Each chain corresponds to one "hash board". If you let it run a while, it would probably show a higher hashrate. Bitmain asics don't do the above, as far as I know, only Innosilicon devices. The fact that your ASIC can get work from stratum and submit valid shares is really positive. As for `stratumallowip`, it's good for security to only allow some IP's, but it's also annoying since most people use dynamic IP's that will constantly change, and require restarting hushd with different allowed IP's. To use this code to run a public pool, we will need a way to allow any IP.
Poster
Owner

@jahway603 one way to make life easier is you can do stratumallowip=192.168.0.0/16 and it will allow that entire LAN class B to access your stratum. This fixes the issue for individual miners with ASICs on a LAN, but we still need a way to say "allow any IP to access stratum", which is currently not possible. Looks like I need to modify the code.

@jahway603 one way to make life easier is you can do `stratumallowip=192.168.0.0/16` and it will allow that entire LAN class B to access your stratum. This fixes the issue for individual miners with ASICs on a LAN, but we still need a way to say "allow any IP to access stratum", which is currently not possible. Looks like I need to modify the code.

@jahway603 thank you, this is valuable feedback.

My guess is that your A9 was "Warming up" just after being turned on, where it starts slow and then ramps up it's hashrate. If you look at the screenshot, all 3 "chains" are about the same hashrate. Each chain corresponds to one "hash board". If you let it run a while, it would probably show a higher hashrate.

I thought that too but look at the same miner (with enough time in-between testing for it to be from a dead start) in the same amount of time

1.7K with hushd stratum VS. 21.46K on coolmine.top's stratum [attached to show the difference]

> @jahway603 thank you, this is valuable feedback. > > My guess is that your A9 was "Warming up" just after being turned on, where it starts slow and then ramps up it's hashrate. If you look at the screenshot, all 3 "chains" are about the same hashrate. Each chain corresponds to one "hash board". If you let it run a while, it would probably show a higher hashrate. I thought that too but look at the same miner (with enough time in-between testing for it to be from a dead start) in the same amount of time 1.7K with hushd stratum VS. 21.46K on coolmine.top's stratum [attached to show the difference]
Poster
Owner

@jahway603 this may be related to the initial "difficulty" or "diff" that stratum uses. It may be setup to have the "diff" for a GPU instead of an ASIC. Many pools have different ports which start at different difficulties (such as an ASIC port, etc) and also sometimes you can give a parameter to tell it what diff you want.

When a stratum server has too high a diff for a miner, they won't get shares for a while until it comes down, and when a diff is too low, the miner wastes resources by not getting new work jobs fast enough.

Also, you might want to try -stratumallowip=0.0.0.0/0 which maybe will allow any IP.

@jahway603 this may be related to the initial "difficulty" or "diff" that stratum uses. It may be setup to have the "diff" for a GPU instead of an ASIC. Many pools have different ports which start at different difficulties (such as an ASIC port, etc) and also sometimes you can give a parameter to tell it what diff you want. When a stratum server has too high a diff for a miner, they won't get shares for a while until it comes down, and when a diff is too low, the miner wastes resources by not getting new work jobs fast enough. Also, you might want to try `-stratumallowip=0.0.0.0/0` which maybe will allow any IP.

Yeah, coolmine has different ports for different diffs. I'm familiar with them.

I see there is a function to set this, but not sure how it can be interfaced with at the CLI: https://git.hush.is/hush/hush3/src/branch/dev/src/stratum.cpp#L2039

Any ideas on how to make this user configurable?

Yeah, coolmine has different ports for different diffs. I'm familiar with them. I see there is a function to set this, but not sure how it can be interfaced with at the CLI: https://git.hush.is/hush/hush3/src/branch/dev/src/stratum.cpp#L2039 Any ideas on how to make this user configurable?
Poster
Owner

@jahway603 it looks like the code looks for a + symbol after the address, and uses that number as initial difficulty: https://git.hush.is/hush/hush3/src/branch/dev/src/stratum.cpp#L1241

So you would set your username as address+diff like RFoo...+12345

@jahway603 it looks like the code looks for a `+` symbol after the address, and uses that number as initial difficulty: https://git.hush.is/hush/hush3/src/branch/dev/src/stratum.cpp#L1241 So you would set your username as `address+diff` like `RFoo...+12345`

Tested on current dev branch. I have tried adding the + and different values on the ASIC miner username, but the diffs shown at the hushd terminal never change.

Tested on current dev branch. I have tried adding the + and different values on the ASIC miner username, but the diffs shown at the hushd terminal never change.
Poster
Owner

@jahway603 our first version of Stratum support was released in 3.9.0, so I will close this issue and we should make specific issues for stratum bugs, like your low hashrate issue. Some people use it just fine, so we know it works correctly for some. Now we can get more bug reports from solo miners using 3.9.0

@jahway603 our first version of Stratum support was released in 3.9.0, so I will close this issue and we should make specific issues for stratum bugs, like your low hashrate issue. Some people use it just fine, so we know it works correctly for some. Now we can get more bug reports from solo miners using 3.9.0
duke closed this issue 3 years ago
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.