SoloLuck latency collector

What this is

SoloLuckLatency is SoloLuck's latency collector. It measures how long a solo mining pool's stratum server takes to accept a connection and to answer a subscription request.

It names itself in every mining.subscribe it sends, with this user agent:

SoloLuckLatency/1.0 (+https://sololuck.io/latency)

If you found that string in your pool's logs, this page describes that connection.

What it does

  • Before measuring, it reads robots.txt on the pool's website, at most twice a day, only to honour an opt-out.
  • It opens a TCP connection to the pool's stratum port.
  • On a TLS port, it completes a TLS handshake and checks the certificate.
  • It sends one mining.subscribe, reads the reply, and closes the connection.

It never logs in, never mines and never submits a share. It does not answer anything the pool sends, and it has no worker name or address to give.

How often, and from where

  • At most four runs a day.
  • Between those runs, a status check every 10 minutes: one connection to each endpoint on the pool status pages, and a second one if the first gets no answer.
  • One connection at a time: no pool ever has two open connections from it, and a run makes at most five connections to each endpoint.
  • It runs from one home internet connection, never from a data-centre server.

What the numbers mean

A shorter first hop is not better odds. Every solo pool gives a miner the same chance of finding a block: that miner's hashrate against the whole network. A nearer pool can mean slightly fewer stale shares when a new block arrives; it does not change the chance of a block.

Ties are reported as ties: two readings within 1.5 milliseconds or 5% of each other, whichever is larger, are shown as level. One home connection is not every miner's connection, and SoloLuck runs one of the pools it measures.

For the pools on the pool status pages, each check's result is shown there: whether the endpoint answered, and how long its reply took. The latency dataset itself is not published yet.

Opting out

If you run a pool and would rather not be measured, add these two lines to the robots.txt served over HTTPS on the pool's website:

User-agent: SoloLuckLatency
Disallow: /

The file can be on the stratum host name or on a parent domain: for stratum.example.com, either stratum.example.com/robots.txt or example.com/robots.txt. Once those lines are in robots.txt, the pool is skipped within 24 hours, with no request to us needed.

You can also tell us through the contact page.