Stratum is a proposal for an open source client-server "overlay" protocol that enables thin clients. It is currently used by Electrum. While originally announced right before 2012, the protocol has not yet been completed and proposed as a BIP for standardisation.
The stratum protocol was extended to support pooled mining as a replacement for obsolete getwork protocol in late 2012. The mining service specification was initially announced via Slush's pool's website. Shortly thereafter, alternative "cheat sheet" style documentation was provided by BTCGuild. As the extension lacks a formal BIP describing an official standard, it has further developed only by discussion and implementation.
Tables showing miner/server support for Stratum mining protocol:
|Server||get transactions||dynamic difficulty||job frequency||resume|
|HHTT||No||No (User selected difficulty)||30s||No|
|50BTC||No||No (User selected difficulty)||5s||No|
|Ozcoin||No||Yes or user selected||30s||No|
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.
The mining extensions were announced after the community had spent months developing a mostly superior open standard protocol for mining (getblocktemplate). 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.
- Original stratum protocol announcement on BitcoinTalk
- Stratum mining protocol specification at slush's pool's website
- Stratum mining protocol cheat sheet at BTCGuild's website
- ckolivas' collection of most proposed stratum mining extensions
- BitcoinTalk: Criticism of stratum's closed creation
- BitcoinTalk: Criticism of stratum displacing GBT