Bitcoin what is stratum




















Block header that string what is in getwork response and what miners are hashing is composed from following parts:. To produce more unique block headers and thus be able to generate more unique hashes , we have to modify something. Every bitcoin block contains so-called coinbase transaction which specify the bitcoin address for sending block reward.

Fortunately there's a chance to modify this transaction without breaking anything. By changing coinbase transaction, merkle root will change and we will have unique block header to hash.

Currently this creating unique coinbase happens on pool servers. So let's move it to miners! I considered many solutions for serializing and deserializing message payloads. I wrote some reasons for JSON above, but let's sumarize them again:. Getblocktemplate introduced in bitcoind 0. Stratum mining server uses getblocktemplate mechanism under the hood. There are still some reasons why Stratum is, in my opinion, a better solution for pooled mining:. There's really only one reason why Stratum is worse than getblocktemplate solution at this time: miners cannot choose Bitcoin transactions on their own.

For now I decided to focus on such a solution, which will fit to majority of miners and do some extensions later. In this chapter I expect that you're familiar with this protocol and you understand terms like "request", "response" and "notification". For high level image of the Stratum protocol concept, please read Stratum protocol specification on Google docs.

This document needs some care, but give you the basic examples how to connect to Stratum server. Traceback may contain additional information for debugging errors. Now let authorize some workers. You can authorize as many workers as you wish and at any time during the session. In this way, you can handle big basement of independent mining rigs just by one Stratum connection. Small engineering note: There's a good reason why first job is not included directly in subscription response - miner will need to handle one response type in two different way; firstly as a subscription response and then as a standalone notification.

Now we finally have some interesting stuff here! I'll descibe every field of the notification in the particular order:. Just be absolutely sure that your extranonce2 generator always produces extranonce2 with correct length! Volume : Issue 3 July Ruben Recabarren and Ruben Recabarren. Bogdan Carbunar Bogdan Carbunar.

PDF Preview. Keywords Bitcoin and Stratum mining protocols passive and active attacks traffic analysis mining cookies. Search in Google Scholar [10] allinvain. Search in Google Scholar [11] dree Search in Google Scholar [12] Ed Williams. Search in Google Scholar [13] Wikipedia.

Search in Google Scholar [14] Cryptocoins News. Search in Google Scholar [15] Cryptocoins News. Search in Google Scholar [16] Bitcoin Magazine. Search in Google Scholar [17] Jim Epstein. Search in Google Scholar [18] Stratum mining protocol specification. Search in Google Scholar [20] Litecoin pool mining. Search in Google Scholar [21] Ethereum pool mining. Search in Google Scholar [22] Monero pool mining.

GrayMiner G7. Avalon A Whatsminer M30S. Antminer T Hornbill Miner H8Pro. Avalon APro. Antminer DR5. Hornbill Miner H8. Whatsminer M31S. StrongU U6. Whatsminer M20S 70T. Whatsminer M20S 68T. Hummer Miner H9. Antminer S17e 64T.

Whatsminer M20S 65T. SMiner S1Pro. Loveminer E8. Hippo Miner H1. Whatsminer M20S 62T. Avalon A 63T. Antminer S17e 60T. Taurus miner C Antminer S17Pro 56T. Antminer S17 56T. Boar Miner FC. Antminer S17Pro 53T. Antminer S17 53T. Whatsminer M21S 58T. Avalon A 56T. Whatsminer M21S 56T.

Antminer E3. Avalon Pro. TCP to an upstream stratum node. These channels are independent and have unique channel IDs, meaning that many devices can simultaneously receive different job assignments using the same connection, saving on infrastructure costs. At the same time, the channels may all share some information for greater efficiency, such as when a new prevhash is broadcasted. Every physical connection adds complexity and extra infrastructure overhead to mining operations.

Enabling multiplexing makes it possible to communicate a lot of different information to multiple different parties within a single connection, which is more efficient and simpler to manage.

Stratum V2 eliminates some unnecessary messages from V1 by implicitly assuming that opening a mining channel is an indication that the miner is ready to be assigned jobs. Once the authorization request is successful, the miner then sends a mining. In other words, miners must explicitly request job assignments.

In Stratum V2, it is implicitly assumed that a miner wants to receive job assignments if they open a channel with a pool. Mining subscriptions i. Currently, explicit mining subscriptions simply create unnecessary data transfers in Stratum V1. Making work subscription implicit improves the relative efficiency of the protocol.

This has become an essential part of mining, and V2 directly supports version rolling by the miners without requiring any extensions. Each Bitcoin block header contains a version field whose bits can be freely used to extend the search space for a miner. This process is called version rolling. Given the current hashing power of modern ASIC machines, the bit nonce field can be exhausted in under ms.

Every time this occurs, the controller on the machine must distribute new jobs to each mining chip. This consumes a lot of bandwidth and CPU load. Version rolling is already extremely common and widely adopted. The end result from the outside perspective is not much different. Zero-time backend switching means that a proxy can provide jobs from different pools without causing a loss of mining efficiency.

V1 has a non-standard extension that allows miners to change their pool, but the end device needs to explicitly support it. Enabling miners to do zero-time backend switching i. Enabling backend switching with zero delays enables more elaborate mining setups to be implemented more efficiently in terms of the physical infrastructure required.

Allows miners to mine on different jobs and potentially even different coins on a single connection. For example, some mining machines could mine Bitcoin while others are mining Bitcoin Cash and they can share the same connection. One of the specific advantages of multiplexing when it comes to Stratum V2 is that a single physical connection can be used to transmit data about various different jobs.

This reduces infrastructure complexity and cost. For example, setting up a TCP connection requires a 3-way handshake in which 3 data packets are transmitted, consuming some resources in the process. When there are hundreds or even thousands of these connections opening and closing each day, the cost can add up. Being able to send different jobs on a single connection reduces the frequency with which connections need to be opened and closed, as well as the total number of connections needed.

As stated above in the Multiplexing section, the primary motivation for enabling data about different jobs to be transmitted on a single connection is to reduce physical infrastructure complexity and overhead costs. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Dolor aliquam eget sit urna. Morbi at at amet sed lorem nisl. Viverra integer id purus sed facilisis eu condimentum nulla. Ornare quisque maecenas cursus magna tempus diam. Lorem ipsum dolor sit amet, onsectetur adipiscing elit.

Diam mi sit sed molestie ligula volutpat ipsum risus. Erat ut quam massa velit. The Bitcoin mining industry evolves quickly and it is expected that participants in the industry will wish to add functionality to this protocol over time as extensions.

These can be found in the Protocol Extensions section. Faucibus morbi morbi amet sed. Id elit aliquam aliquam. One of our design goals with Stratum V2 is to enable simple support for vendor-specific extensions without polluting the mining protocol or complicating pool implementation.

If you have any questions or discover any issues, please contact us.



0コメント

  • 1000 / 1000