## Description
The managed `public-pool.io` instance appears to no longer accept low difficulty suggestions from NerdMiner-compatible clients.
Previously, ESP32 NerdMiner devices connected to `public-pool.io:21496` received difficulties around:
```text
0.00015
Now the pool always sends:
This makes it extremely unlikely that low-hashrate devices such as ESP32 NerdMiner devices will submit any shares.
Reproduction
Connect to public-pool.io:21496 and send:
{"id":1,"method":"mining.subscribe","params":["NerdMinerV2/1.8.3"]}
{"id":2,"method":"mining.authorize","params":["bc1q...redacted.test","x"]}
{"id":3,"method":"mining.suggest_difficulty","params":[0.00015]}
The server responds with:
{"id":1,"error":null,"result":[[["mining.notify","..."]],"...",8]}
{"id":2,"error":null,"result":true}
{"id":null,"method":"mining.set_difficulty","params":[100000]}
{"id":null,"method":"mining.set_difficulty","params":[1]}
The 0.00015 difficulty suggestion is never applied.
I also tested repeatedly sending:
{"method":"mining.suggest_difficulty","params":[0.00015]}
every 30 seconds, matching the current NerdMiner_v2 keepalive behavior. The difficulty remains 1.
Tests performed
The same result was observed using:
- Official NerdMinerV2-compatible subscribe user agent
- An ESP32-S3 NerdMiner
- A custom Stratum V1 client
- Multiple unrelated public IPv4 addresses
- Different worker names
- TCP port
21496
- TLS endpoint
4333
All connections successfully subscribe, authorize, and receive mining jobs. Therefore, this does not appear to be an IP ban or connection problem.
Expected behavior
Based on the current source code:
mining.suggest_difficulty should set sessionDifficulty to the requested value.
StratumV1ClientStatistics defines MIN_DIFF as 0.00001.
- Low-hashrate NerdMiner devices should be able to use difficulty values such as
0.00015.
Relevant source locations:
src/models/StratumV1Client.ts
src/models/StratumV1ClientStatistics.ts
src/models/stratum-messages/SuggestDifficultyMessage.ts
Questions
- Has the minimum difficulty of the managed
public-pool.io instance recently been changed to 1?
- Is the managed instance running a different version or configuration than the public GitHub source?
- Is there a new Stratum proxy, gateway, or anti-abuse layer enforcing difficulty
1?
- Is there still an endpoint intended for low-hashrate NerdMiner devices?
Now the pool always sends:
This makes it extremely unlikely that low-hashrate devices such as ESP32 NerdMiner devices will submit any shares.
Reproduction
Connect to
public-pool.io:21496and send:{"id":1,"method":"mining.subscribe","params":["NerdMinerV2/1.8.3"]} {"id":2,"method":"mining.authorize","params":["bc1q...redacted.test","x"]} {"id":3,"method":"mining.suggest_difficulty","params":[0.00015]}The server responds with:
{"id":1,"error":null,"result":[[["mining.notify","..."]],"...",8]} {"id":2,"error":null,"result":true} {"id":null,"method":"mining.set_difficulty","params":[100000]} {"id":null,"method":"mining.set_difficulty","params":[1]}The
0.00015difficulty suggestion is never applied.I also tested repeatedly sending:
{"method":"mining.suggest_difficulty","params":[0.00015]}every 30 seconds, matching the current NerdMiner_v2 keepalive behavior. The difficulty remains
1.Tests performed
The same result was observed using:
214964333All connections successfully subscribe, authorize, and receive mining jobs. Therefore, this does not appear to be an IP ban or connection problem.
Expected behavior
Based on the current source code:
mining.suggest_difficultyshould setsessionDifficultyto the requested value.StratumV1ClientStatisticsdefinesMIN_DIFFas0.00001.0.00015.Relevant source locations:
src/models/StratumV1Client.tssrc/models/StratumV1ClientStatistics.tssrc/models/stratum-messages/SuggestDifficultyMessage.tsQuestions
public-pool.ioinstance recently been changed to1?1?