Skip to content

esp-miner is unable to handle difficulty change following with "mining.notify" when cleanJob set to false #1587

@blackmennewstyle

Description

@blackmennewstyle

Hello beautiful dev(s),

Why is esp-miner unable to handle properly the following scenario:

  • The stratum sends a mining.set_difficulty following with mining.notify with thecleanJob indicator set to false.

esp-miner then starts to send duplicate shares, the same solution with the same nonce, over and over again until the stratum sends another mining.notify with the cleanJob indicator set to true.

The behavior is clearly visible in my attachment file.

It is way more easy to reproduce that behavior on BTC testnet4 by the way.

2026-03-02 16:52:49.4134] [I] [btc1] [0HNJOFCT4H9CS] VarDiff update to 9427.961
[2026-03-02 16:52:49.4134] [D] [btc1] [0HNJOFCT4H9CS] Sending: {"jsonrpc":"2.0","method":"mining.set_difficulty","params":[9427.960695338843],"id":null} 
[2026-03-02 16:52:49.4134] [D] [btc1] [0HNJOFCT4H9CS] Sending: {"jsonrpc":"2.0","method":"mining.notify","params":["00000006","61579a01acc1daa4da7e43b1a67de71112b9133d44fc8e2d0784e99700000000","01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff32033ee60104febfa56900","1f4d696e696e67636f72652f436564726963204352495350494e2f61735f544800000000020000000000000000266a24aa21a9ede4c58cf54dd9bf607f7c904968305679ab9226e3e338418e24a7245d3e8554a89a33312a010000001976a914b39a791bdaa16ec039fbabe4e46efb7cab150c5388ac00000000",["2aeff42e83cf2fa7a271c9e600923458e5b44d3cc086b68fd5e1bd2f8fb2c2f4","8d88f91b9c3d3748e2e5c3b324db6825c4e9fd5051c5617de6a271da2b4b8b87","7ab6d88c0da99231f817a1a588ccf941ded398e24ec1510745dd23459444770c","bd52c7bdc423945a8a9bafaa0738c7a0edd32792506743acd39c9593cf964d43","c076078e0fc41fbc4ef1e8ed3368516bde09b8d98cf13246a1f63bd25c902099","0467ec38d4df01dc161f2aec3ef865832d8d1689067bb155d5aa359b0433de55"],"20000000","190336be","69a5c579",false],"id":null}
[2026-03-02 16:53:19.4715] [D] [btc1] [0HNJOFCT4H9CS] [NET] Received data: {"id":21,"method":"mining.submit","params":["tb1qtl9daftpqser8lt7uqdrg82ztn7kxw2t4rsgaj.janus","00000006","3b000000","69a5c579","ad910248","02cc2000"]}
[2026-03-02 16:53:19.4715] [D] [btc1] [0HNJOFCT4H9CS] [PIPE] Received data: {"id":21,"method":"mining.submit","params":["tb1qtl9daftpqser8lt7uqdrg82ztn7kxw2t4rsgaj.janus","00000006","3b000000","69a5c579","ad910248","02cc2000"]}
[2026-03-02 16:53:19.4715] [D] [btc1] [0HNJOFCT4H9CS] Dispatching request 'mining.submit' [21] 
[2026-03-02 16:53:19.4715] [I] [btc1] [0HNJOFCT4H9CS] Share rejected: duplicate share [bitaxe/BM1370/v2.13.0] 
[2026-03-02 16:53:19.4725] [D] [btc1] [0HNJOFCT4H9CS] Sending: {"result":false,"error":{"code":22,"message":"duplicate share","data":null},"id":21} 
[2026-03-02 16:53:58.8370] [D] [btc1] [0HNJOFCT4H9CS] [NET] Received data: {"id":22,"method":"mining.submit","params":["tb1qtl9daftpqser8lt7uqdrg82ztn7kxw2t4rsgaj.janus","00000006","89000000","69a5c579","debe0186","0555e000"]}
[2026-03-02 16:53:58.8370] [D] [btc1] [0HNJOFCT4H9CS] [PIPE] Received data: {"id":22,"method":"mining.submit","params":["tb1qtl9daftpqser8lt7uqdrg82ztn7kxw2t4rsgaj.janus","00000006","89000000","69a5c579","debe0186","0555e000"]}
[2026-03-02 16:53:58.8370] [D] [btc1] [0HNJOFCT4H9CS] Dispatching request 'mining.submit' [22] 
[2026-03-02 16:53:58.8370] [I] [btc1] [0HNJOFCT4H9CS] Share rejected: duplicate share [bitaxe/BM1370/v2.13.0] 
[2026-03-02 16:53:58.8370] [D] [btc1] [0HNJOFCT4H9CS] Sending: {"result":false,"error":{"code":22,"message":"duplicate share","data":null},"id":22} 
[2026-03-02 16:54:04.4307] [D] [btc1] [0HNJOFCT4H9CS] [NET] Received data: {"id":23,"method":"mining.submit","params":["tb1qtl9daftpqser8lt7uqdrg82ztn7kxw2t4rsgaj.janus","00000006","95000000","69a5c579","5d110336","00218000"]}
[2026-03-02 16:54:04.4307] [D] [btc1] [0HNJOFCT4H9CS] [PIPE] Received data: {"id":23,"method":"mining.submit","params":["tb1qtl9daftpqser8lt7uqdrg82ztn7kxw2t4rsgaj.janus","00000006","95000000","69a5c579","5d110336","00218000"]}
[2026-03-02 16:54:04.4307] [D] [btc1] [0HNJOFCT4H9CS] Dispatching request 'mining.submit' [23] 
[2026-03-02 16:54:04.4307] [I] [btc1] [0HNJOFCT4H9CS] Share rejected: duplicate share [bitaxe/BM1370/v2.13.0]
[2026-03-02 16:54:04.4307] [D] [btc1] [0HNJOFCT4H9CS] Sending: {"result":false,"error":{"code":22,"message":"duplicate share","data":null},"id":23}
[2026-03-02 16:54:28.8262] [D] [btc1] [0HNJOFCT4H9CS] [PIPE] Received data: {"id":24,"method":"mining.submit","params":["tb1qtl9daftpqser8lt7uqdrg82ztn7kxw2t4rsgaj.janus","00000006","c5000000","69a5c579","0f870304","03c8e000"]}
[2026-03-02 16:54:28.8262] [D] [btc1] [0HNJOFCT4H9CS] Dispatching request 'mining.submit' [24] 
[2026-03-02 16:54:28.8262] [I] [btc1] [0HNJOFCT4H9CS] Share rejected: duplicate share [bitaxe/BM1370/v2.13.0] 
[2026-03-02 16:54:28.8262] [D] [btc1] [0HNJOFCT4H9CS] Sending: {"result":false,"error":{"code":22,"message":"duplicate share","data":null},"id":24} 
[2026-03-02 16:54:37.1131] [I] [btc1] Detected new transaction(s) for block 124479 [ZMQ] 
[2026-03-02 16:54:37.1131] [I] [btc1] Broadcasting job 00000007 
[2026-03-02 16:54:37.1131] [D] [btc1] [0HNJOFCT4H9CS] Sending: {"jsonrpc":"2.0","method":"mining.notify","params":["00000007","e1341f7cd8871844a42e8081a93a9ca2ee4207f8278e6e850b69744100000000","01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff32033fe60104cdc0a56900","1f4d696e696e67636f72652f436564726963204352495350494e2f61735f544800000000020000000000000000266a24aa21a9ed826036f770667aea70eb70f91f50d1ac60245c20725d93dbec42a41711e4ba6762023a2a010000001976a914b39a791bdaa16ec039fbabe4e46efb7cab150c5388ac00000000",["2aeff42e83cf2fa7a271c9e600923458e5b44d3cc086b68fd5e1bd2f8fb2c2f4","5913bd4a1332e085c975e851375027ce57c2b66a865eb11085ab1b26fa59ea55","7ab6d88c0da99231f817a1a588ccf941ded398e24ec1510745dd23459444770c","bd52c7bdc423945a8a9bafaa0738c7a0edd32792506743acd39c9593cf964d43","c076078e0fc41fbc4ef1e8ed3368516bde09b8d98cf13246a1f63bd25c902099","0467ec38d4df01dc161f2aec3ef865832d8d1689067bb155d5aa359b0433de55"],"20000000","190336be","69a5ca29",true],"id":null} 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions