I've been building some proof-of-concepts using both hardhat with js and go-ethereum with golang. Here the link to this mini project: https://github.com/johnhckuo/contract-frameworks (still under-development)

I discovered lots of benefit of using hardhat like:

  1. the richness of different task plugins, allow me to streamline the development process
  2. powerful debugging tools for solidity, console.log directly in contract or showing stacktrace really blow my mind.
  3. generate contract interface for frontend developers (https://github.com/ethereum-ts/TypeChain)

But since I'm a native golang developer, and ethereum has a go-native api (https://github.com/ethereum/go-ethereum).
I was thinking why not give it a shot.

But after spending some time developing this mini project, I cannot think of any specific reasons why I have to use go-ethereum directly instead of hardhat.

Maybe I missed or overlooked some important functionalities of go-ethereum, but can someone point me out some benefits of using it?

Much appreciated! :)

1 Answer 1


Hardhat and ganache too are test tools and do not really show the real life scenarios that can happen when deploying to a real node.

the most apparent difference is latency when broadcasting transactions since in a test setup mining doesn't really exist. another thing is the kind of attacks that only appear when using the actual geth node, like frontRunning (although latency emulation can be added).

Another thing would be the support for some debugging calls like callTracer argument in debug_traceTransaction and other commands.

Although all of this can be bypassed it still makes the transition from the test environment to the main nodes harder than when working with a local gethndoe directly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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