6

The Bitcoin client protocol is well documented in the Bitcoin Wiki, but I can't find much on the protocol used by pools and miners. Is it described anywhere?

Murch
  • 71,155
  • 33
  • 180
  • 600
ThePiachu
  • 42,931
  • 25
  • 138
  • 347

1 Answers1

6

When there were no pools, all of the first mining clients interfaced directly with Bitcoin. They connected to Bitcoin's JSON-RPC interface and used the getwork RPC method to get the required work. Getting work from a pool is the same as getting work from Bitcoin. The client connects to the pool over HTTP, often using the same HTTP authentication that Bitcoin's JSON-RPC interface uses; the client sends a JSON-RPC getwork message; and the pool sends back a JSON-RPC getwork response.

Many pools nowadays support some extensions to the getwork protocol that Bitcoin does not.

See: https://en.bitcoin.it/wiki/Getwork

theymos
  • 8,904
  • 40
  • 37
  • 1
    Since this answer was written there are two new protocols; Stratum and gbt (getblocktemplate). Stratum seems the most popular, and getwork is being phased out by most clients and servers. – Dr.Haribo Sep 07 '13 at 09:23