benjamin-wilson / public-pool

GNU General Public License v3.0
175 stars 48 forks source link

High number of rejected shares after mining.set_difficulty / new difficulty is enforced immediately but no mining.notify with clearJobs:true sent #39

Closed MoellerDi closed 2 months ago

MoellerDi commented 4 months ago

I noticed that public-pool is rejecting shares shortly after mining.set_difficulty sent to clients. IMHO it should either accept shares until the current job completed or force clients to clear their queued jobs by sending a mining.notify with clearJobs:true.

It seems public-pool is sending a newMiningJob directly after mining.set_difficult in StratumV1Client.ts but not setting clearJobs always to true?

I (57564) asic_result: Job ID: 08, Nonce: ba25292e, Rolled_version: 038f4000, difficulty: 1008.37 of 1000.
I (57564) stratum_api: tx: {"id": 12, "method": "mining.submit", "params": ["bc1<cut>.Bitaxe", "f5906c", "00000000", "663c8e8a", "ba25292e", "038f4000"]}
I (57784) stratum_task: rx: {"id":12,"error":null,"result":true}
I (57784) stratum_task: message result accepted

I (64484) stratum_task: rx: {"id":null,"method":"mining.set_difficulty","params":[4096]}
I (64494) stratum_task: Set stratum difficulty: 4096

I (64904) stratum_task: rx: {"id":null,"method":"mining.notify","params":["f59542","d8b0073210a83420ef9fa7c03d83f9156570b1eb0002e9350000000000000000","02000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1703b2db0c5075626c69632d506f6f6c","ffffffff0274596b1300000000160014979f36b9a92622b82767820f6477bdefc03e86b70000000000000000266a24aa21a9edd9c23bfadacb01ec4f486c637528e6cc443086dbe0050cc081e025140a0e278900000000",["f416380f36320c042e91c9586b548217f3aef77c55100954392148b45bffb5de","7d4f8f9cfba175de654d4e221049e9d9edcdac95ed18cf13bb6c6976273f2975","59432687b61e8a546586b1169e67ad5e717cc9931f9da9a8ccaf5d6fd58dcc6f","920bf1ac9595747fbacfa28648246a85994e9dd933deca79d03b9a40078b0271","bb3a9ea59771da758d84d02cf1c877c550ac0c43409c2146993f319c43260d9f","5ee1787d34a81100f2d96bbc53ba23a8812cd4ee434d2eeecb9bc0a0b5dea719","1a4d7e346cab3076e97d4f87a7dc44593a1b760c8ff332c477bb55ddfba46770","a804510374eb8de396f6b1d0603791b66bd0712d71befa09b99cf59382206b2f","28e37a258dd9a8084a85c86b9ef1bb5a1cb49ebeb62777299f5cb6f2c0d76609","ad7acb86bfefcbe09c0affd2004d78cabf6fba3bb74f1d102a30ea4f875c8547","b5f708bd7dec0e6ea880e2b696fa0aa7fa220f6c69165a9a1cc9a9d58ca3a50a","d656c366adacf3bc43783f760aee2f9cc3c7d8b702b3c8c80ec87baa46925159","707a84dbd2080530afa87583813a615c90b502cab10380478d88895272293902"],"20000000","170331db","663c8ec6",false]}
I (65014) stratum_task: New Work Enqueued f59542 (queue 2/2)

I (71414) asic_result: Job ID: 08, Nonce: cc4f5864, Rolled_version: 047fa000, difficulty: 6774.92 of 1000.
I (71414) stratum_api: tx: {"id": 13, "method": "mining.submit", "params": ["bc1<cut>.Bitaxe", "f5906c", "00000000", "663c8e8a", "cc4f5864", "047fa000"]}
I (71654) stratum_task: rx: {"id":13,"error":null,"result":true}
I (71654) stratum_task: message result accepted

I (83654) asic_result: Job ID: 08, Nonce: a4f52d15, Rolled_version: 05536000, difficulty: 3529.02 of 1000.
I (83664) stratum_api: tx: {"id": 14, "method": "mining.submit", "params": ["bc1<cut>.Bitaxe", "f5906c", "00000000", "663c8e8a", "a4f52d15", "05536000"]}
I (83944) stratum_task: rx: {"id":14,"result":null,"error":[23,"Difficulty too low",""]}
E (83944) stratum_task: message result rejected

I (102244) asic_result: Job ID: 08, Nonce: 944bdabd, Rolled_version: 06956000, difficulty: 5469.68 of 1000.
I (102244) stratum_api: tx: {"id": 15, "method": "mining.submit", "params": ["bc1<cut>.Bitaxe", "f5906c", "00000000", "663c8e8a", "944bdabd", "06956000"]}
I (102474) stratum_task: rx: {"id":15,"error":null,"result":true}
I (102484) stratum_task: message result accepted

I (105524) asic_result: Job ID: 08, Nonce: 6f5f83d7, Rolled_version: 06ce4000, difficulty: 1774.95 of 1000.
I (105524) stratum_api: tx: {"id": 16, "method": "mining.submit", "params": ["bc1<cut>.Bitaxe", "f5906c", "00000000", "663c8e8a", "6f5f83d7", "06ce4000"]}
I (105754) stratum_task: rx: {"id":16,"result":null,"error":[23,"Difficulty too low",""]}
E (105754) stratum_task: message result rejected
benjamin-wilson commented 2 months ago

Fixed https://github.com/benjamin-wilson/public-pool/commit/811e7972f9c87cceee567fc383a3dbb5eb25030f