Sorry folk, I've been trying to track down a bug and have been distracted the last couple of days.
Unfortunately the bug is with flypool -- rather, I hope it is a bug. There are conditions where flypool will acknowledge receipt of a valid share and never associate it with your wallet. I have no idea what wallet it goes to, but it isn't the one configured and accepted.
That is bad, very very bad.
I posted this on a zcash/flypool thread:
--snip--
Why does flypool not follow the stratum protocol when it comes to mining.authorize? Per the protocol, a single connection should allow multiple mining.authorize calls. Flypool does not follow this, and worse, with some finagling, it will provide a valid authorization for more than one wallet, but never pay out, all the while returning true to the submitted shares. Which leads to my next question
Why does flypool accept shares for wallets and then never associate the shares with the wallet? The simplest case is one where you mining.authorize walletA but perform all of the mining.submits with walletB.
In that scenario, flypool acknowledges the share acceptance for walletB, but never pays walletB. Where do those shares go? Who is keeping them? Why does flypool respond with an acceptance of the shares?
Ive been using flypool a while and recommending it strongly, but until I can understand this behavior, I can no longer make that recommendation.
This is how flypool responds to a mining.submit with an address it did not accept as authorized:
{id:2001,result:true,error:null}
This is how a proper pool should respond to a mining.submit with an address not authorized:
{id:6,version:2.0,result:false,error:[24,Unauthorized User,null],Notification:{method:"",params:null}}
The difference is in the first case, flypool seems to take the share. Are there other conditions where flypool silently takes shares?
While trying to investigate this, I was banned from the flypool API.
--snip--
I've tried to reach out to them, but for the time being I am personally going to remove work from flypool until I can get an explanation.
Thank you,
Jason