Bitcoin miners have a variety of options for software designed for the process of retrieving blocks and generating hashes as well as mining ASIC management software.
Protocols designed for bitcoin nodes to serve as mining have evolved from early getwork protocol transferring data via HTTP to more efficient data transfer protocols like Stratum V2.
|getwork||An RPC method for relaying block data and hashing work to a miner via HTTP|
|getblocktemplate||An improvement on getwork developed in 2012 built to enhance the decentralization and scalability of mining work|
|Bitcoin Binary Data Protocol||A proposed improvement on some inefficiencies of getwork|
|Stratum||A minimalist mining protocol designed to relay to miners only the information they need from the Bitcoin network to build blocks and do work|
|Stratum V2||A second generation of Stratum designed for improvements in data transfer efficiency and security|
ASIC Management Software
Managing a mining farm requires using an of a variety of commercial ASIC management software products that monitor machine status and performance. A long list of many types of mining software are listed on the Bitcoin Wiki page, but the list is not exhaustive. Some miners also opt to develop their own proprietary ASIC management software.