Skip to content

Managed public-pool.io ignores low suggested difficulty and enforces difficulty 1 #152

Description

@lxzcl
## 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:

100000
1

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

  1. Has the minimum difficulty of the managed public-pool.io instance recently been changed to 1?
  2. Is the managed instance running a different version or configuration than the public GitHub source?
  3. Is there a new Stratum proxy, gateway, or anti-abuse layer enforcing difficulty 1?
  4. Is there still an endpoint intended for low-hashrate NerdMiner devices?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions