5

I understand that Stratum is a kind of protocol specifically designed for ASIC miners. I found this page from its creator, but it is very technical.

I want to know, in layman's terms, what are the differences between Stratum and HTTP. I also want to know if this means anything to me; do it give me more hash, or more shares in the pool, etc. Or is it mostly a concern for the pool operators; running my miners on Stratum is better for them.

1 Answer 1

9

Stratum is an over-the-wire protocol that solves the headaches created by HTTP when used for mining. To understand why Stratum is necessary, you have realize the fact that HTTP is designed for serving web applications and web pages, it's main job is to return files and not to coordinate peers. But miners need to do more than receive information, they also need to send. The following are issues with HTTP:

Miner's request information

If a miner wants a new mining job, they have to send a request through HTTP. Why bother with having the miners request this information when the mining pool knows more efficiently what each individual miner should be doing? What happens if a new block appears on the network and the miner doesn't know about this? So Stratum flips this and has the mining pool sending information as it becomes available, not miners asking for available information periodically.

Long-polling

Long-polling is a very hacky solution to fix the one-sided nature of HTTP. It's done by setting a very high timeout limit (say 10 seconds) where the server purposely delays sending information until it has something to send. Imagine a URL address taking minutes to load because the server is simply waiting for something to happen on it's network. This creates a lot of inefficiency as miners are requesting data that simply isn't there and servers have to maintain those connections as well for as long as mining happens.

Ntime rolling

This is a more technical problem, and its fix is considered the biggest innovation of stratum. Miners are given the ability to modify 2 fields, the nonce and the time. This becomes a problem for large miners as they can run through all possible values of the two fields in search of the solution. If a miner runs out of unique possibilities, they have to send a new request. Newer and faster miners make this more easier to do by the month and bandwidth usage for a pool increases dramatically. Stratum solves this by giving the miners a few more fields which seriously increase the total possible solutions to a block.

TL;DR

Stratum makes it so that the miner and pool are freed from the inefficiencies of HTTP, which is not meant to support mining at all. It makes communication more efficient meaning future exohash mining equipment will have enough jobs to complete while the pool operator isn't being gutted by massive bandwidth and server fees.

8
  • So, to clarify, it helps the pool and every individual miner by not wasting resources; it is significantly more efficient, therefore, if your device supports it then you should use it. Second, exohash? Are we even close to talking about that? The highest hash I see on the market today is 4 Thash/s.
    – user4276
    Commented Mar 16, 2014 at 5:19
  • Along the same lines as the first question, my miner reports 205 Gh/s but the pool reports between 196 and 200. Will this change if I switch to the stratum protocol?
    – user4276
    Commented Mar 16, 2014 at 5:49
  • In can, may just be inherently caused by network latency. And exohashes concern the future more than anything where stratum becomes a must.
    – John T
    Commented Mar 16, 2014 at 7:42
  • Excellent answer! Simple and concise
    – Joe Pineda
    Commented Mar 16, 2014 at 13:58
  • Do you happen to know why it is called Stratum?
    – user4276
    Commented May 20, 2014 at 21:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.