Apologies for the rookie question, I'm very new to Ethereum. I wanted to make sure I understand correctly the distinction between an Ethereum mining client (i.e. ethminer) versus a just a client, such as geth, eth or parity, particularly with regard to performance and so forth. The rough model I have in my head is, the Ethereum client exposes a JSON-RPC-based service that ethminer then talks to in order to fetch, complete, and return solutions to PoW problems. Ethminer, then, is a "dumb client" talking to the client (e.g. geth) and just banging out hashes on different hardware configs presumably?

My simple question, then, is: a.) why is there only one major mining client, if theoretically the PoW is trivially implemented on a CPU or in CUDA/OpenCL; b.) how is the slowdown of JSON-RPC acceptable in the "race" to get rewarded for a solution, and would a fully binary-level-integrated PoW implementation change things substantially; and c.) what are the relative merits of the different clients? (Is it better to be faster for any practical reason related to obtaining rewards?)

1 Answer 1


Parity uses Ethminer but has significantly better performance for processing blocks. Check out Gavin Wood's blogpost on performance: https://blog.ethcore.io/performance-analysis/

A) Other than Ethminer, there are two other mining clients: QtMiner, Cudaminer.

B) Not sure what you mean- could you elaborate?

C) As for the relative merits of the different clients, it depends on what operating system and GPU you are using. I searched the other clients but it seems that Ethminer is the most well established for most purposes, and is also the best documented and supported of all the mining clients. Check out the documentation: http://ethdocs.org/en/latest/mining.html.

  • eth-proxy is a proxy that speeds up the communication between a node (running at the pool's server) and the miner's miner (ethminer, qtminer, genoil, ...). It's not a mining client. Apr 30, 2016 at 8:18
  • No worries. Here is the link to the Genoil fork of ethminer with CUDA and stratum support. Apr 30, 2016 at 8:40
  • @Physes thank you so much. I've read that Parity doc a lot as I plan to develop in Rust, and it indeed seems Parity has excellent performance. The biggest question in my head is why the mining component is separate, and how the mining client interfaces with the client (i.e. Parity). In terms of b.) I'm wondering if this interface between ethminer and parity causes a slowdown; and in terms of c.) I mainly meant, why would one choose parity over say geth (i.e. what is the advantage of the client's throughput)? I've been reading parity source but can't seem to find the right section. TIA!
    – William
    May 1, 2016 at 21:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.