Bitcoin stratum specs
Note that for security purposes, clients may ignore such requests if the destination is not the same or similar. The server can adjust the difficulty required for miner shares with the "mining. The miner should begin enforcing the new difficulty on the next job received. These values, when provided, replace the initial subscription values beginning with the next mining.
Informs the client that future jobs will be working on a specific named goal, with various parameters currently only "malgo" is defined as the mining algorithm. Miners may assume goals with the same name are equivalent, but should recognise parameter changes in case a goal varies its parameters.
The mining extensions have been criticised as having been developed behind closed doors without input from the wider development and mining community, resulting in various obvious problems that could have been addressed had it followed the standard BIP drafting process [4].
The mining extensions were announced after the community had spent months developing a mostly superior open standard protocol for mining getblocktemplate [5].
Because stratum's mining extensions launched backed by a major mining pool, GBT adoption suffered, and decentralised mining is often neglected while stratum is deployed. Criticism of stratum displacing GBT. Retrieved from " https: Navigation menu Personal tools Create account Log in. Views Read View source View history. Sister projects Essays Source. This page was last edited on 10 October , at Content is available under Creative Commons Attribution 3.
Privacy policy About Bitcoin Wiki Disclaimers. No endianness conversion is performed. Due to the differences between the Bitcoin block format and the Sia block format, the coinbase transaction is replaced here by a so-called arbitrary transaction. This transaction is built in the same way the coinbase transaction is: What is different is how this transaction must be hashed: The arbitrary transaction hash is the rightmost leaf of the Merkle tree rather than the leftmost.
Apply blake2b to this byte buffer. The byte header is built by concatenating prevhash 32 bytes , a nonce 8 bytes , ntime 8 bytes , and the Merkle root 32 bytes. The only difference is that the 4th and 5th parameters ntime and nonce are bit values, and must be 16 characters long. Note that Sia uses a different and more intuitive definition of difficulty, and the two differ by a factor of about 4,,,, which is slightly over 2 Please note that Stratum difficulties do not have to be integer numbers.
For instance, it is common for pools to use targets like. We made a fork of sgminer that implements the Stratum protocol for Sia described in this document.
It can be used as follows:. KlausT's ccminer supports the Stratum protocol for Sia described in this document. For all miners supporting the Sia HTTP protocol you can use our Stratum mining proxy running locally on one of your computers.
One mining proxy can handle an almost unlimited number of connected miners. By default the proxy connects to SiaMining's Stratum server and listens locally on ports HTTP and Stratum , so you don't usually need to specify any options when running it.
You then connect your miners in the usual way but specifying the address of the proxy instead of that of the pool. This will override any username or payout address specified by the miners connecting to it. Note how the Stratum proxy allows you to handle many miners while keeping only one network connection to the pool. Such an approach retains of course the advantage of removing the overhead of HTTP, but has also clear downsides when compared to the original Stratum protocol: It is not scalable.
The original Stratum design enables pools and large mining operations to easily handle large numbers of miners, as there is no need for servers to remember about each and every work unit they hand out. Less load on servers also means that servers can be faster and more responsive. It is not future-proof, as it does not extend the nonce space. Even if Sia has a larger header nonce than Bitcoin, providing additional variable-length nonce space is the only way for a mining protocol to be truly future-proof.