What Are the Main Differences between the Original GetWork Protocol and the Stratum Protocol?

GetWork was the original Bitcoin mining protocol, which was inefficient because it required the pool to send a new, large block header to the miner for every single hash attempt. Stratum is a much more efficient, low-overhead protocol.

It sends a single block template and allows miners to iterate on the nonce and timestamp, only requiring a new template when a new block is found. Stratum also supports variable difficulty (vardiff).

What Is the ‘Nonce’ and Its Role in the PoW Component of the PoA Template?
What Is the Role of the Block Header in This Initial PoW Phase?
How Does a Pool Operator Ensure Miners Are Working on a Valid Block Template?
Is the Stratum Server Responsible for Verifying the Cryptographic Validity of the Submitted Shares?
How Does the Overhead of Proof Generation Impact Transaction Fees?
What Is the Role of the Merkle Root in a Block Header?
What Is the Difference between a “Block Header” and the Full “Block Data”?
How Does a Change in a Block’s Nonce Affect Its Header Hash?

Glossar