mining swimming pools – Why does the Stratum protocol use a Share Issue of two^32?


bitcoin block headers have a area known as Bits the place the problem goal is encoded as a 32 bits integer

the decrease the goal, the tougher it’s to generate a block.

mining shares are common bitcoin blocks with increased targets (or in different phrases, they’re “weaker” blocks)

the pool wants to ascertain some sort of “tuning” between what constitutes a minimally accepted quantity of labor to cross over a payout threshold

that’s inherent to the engineering tradeoffs to the pool’s architectural design and the finite infrastructure it is operating on

in an effort to outline what constitutes minimally acceptable work threshold, there’s two basic variables at play:

  • charge of share submissions
  • share problem (how a lot work every share represents)

if a miner submits shares at a excessive charge (relative to connection bandwidth with the pool), however the share problem is just too small (targets are too excessive, blocks are too weak), the pool may rightfully label these submissions as spam

hopefully, decentralization will decrease this bar, and we can have smaller thresholds permitting for smaller miners to take part in PoW with out having to resort to “lottery video games” to meet their ideological motivations

in abstract, a mining protocol reminiscent of Stratum must have some sort of “unit” that represents some minimal quantity of labor (let’s name it minTarget). This unit is represented as a problem goal, which must be comparatively excessive quantity between 0x00000000 and 0xFFFFFFFF.

since we’re encoding problem targets with 32 bits, we’ve got a couple of choices:

  • 0b11111111111111111111111111111111: human pleasant, however inefficient as a result of ends in excessive site visitors for share submission, whereas previous (and present) centralized pool architectures should not have bandwidth nor computational assets to account for the quantity of shares that will be submitted by every miner.
  • 0b10000000000000000000000000000000: a trade-off for a human-friendly quantity that also ends in a fairly environment friendly bandwidth consumption for share submission

so whereas utilizing Stratum, the miner can configure their machines in a means that it’ll solely submit a share whether it is above N * minTarget.


one other related element (though not precisely a solution to your query):

SV2 Translator Proxies have a configuration parameter the place the miner can throttle the full quantity of shares (coming from their SV1 machines) which might be going to be submitted upstream in direction of the pool.

that means, even when the farm has many small machines (e.g.: Bitaxe), however its combination hashrate is above the pool’s accepted minimal, their shares can be extra simply accepted and pretty accounted for

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top