If your app is periodically establishing connection, but then instead of actually mining on them, just terminating them, then you get yourself periodically banned for doing this.
We have strict anti-DDOS rules and such behaviour qualifies as an attack.
well this is unfortunate, how to check the stratum availability without triggering those bans?
unfortunately most miner developers dont want to implement failover (except sgminer, but only conf files afaik)
What exactly do you mean by "check stratum availability"? Our stratums are always available
If you need to check profitability, use this:
https://www.nicehash.com/index.jsp?p=simplemultialgowell, sometimes they are not, i noticed this on my asics as they support failover pools and some hash is getting to the backup pool on a daily basis, probably just some minutes, but still
currently the stratum availability is verified by sending mining.subscribe and mining.authorize with the configured btc addr and pass to check if the stratum responds as intended
any failure before or during this test will mark the stratum as unavailable, this could be a simple invalid btc addr, a dns issue on the host, offline stratum servers or high latency network issues
sometimes when the frontend is down for maintenance the stratum is too (rare, but it happens), in such cases the miner should switch to backup pool and to nicehash back after its working again
yiimp and mph are both working great, they dont seem to implement such a banning solution
edit: it would be great if you could reduce the ddos "connections per second" definition to sane values, i approximate about 12-15 connection establishments per minute from two ips from my home, a ddos would likely be 15 connection attempts per second or more?
i could also increase the checking interval from 1 to 2 minutes, doubling the timespan and thus halving the connection attempts per timeframe
edit2: i dont know exactly how sgminer does it, but if i setup nicehash as a backup pool the addr will also be banned just by sgminer verifiying the backup pool from time to time i suppose
if sgminer does it by having a single connection open all the time (and thus not opening/closing new connections) i could implement that as well, but unfortunately i dont have that kind of a deep understanding of the stratum protocol (keepalive packets?)