Creating an ethereum testing network

19 July 2019 | By Dan Bate

Developing for Ethereum requires a robust testing environment. While mainnet deployment is the end goal, the local development cycle relies heavily on testing networks (testnets) or local blockchain simulations.

Why use a testing network?

Testing on the actual Ethereum network costs real Ether, making it impractical for daily development. A private testing network allows for:

Getting Started with Geth

Go-Ethereum (Geth) is the most popular way to run a node. To set up a local private testnet, you can define a custom genesis block. This allows you to configure your pre-allocated accounts and initial network state.

Setting up your genesis file

{
  "config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0 },
  "alloc": { ... }
}

Once the network is initialized, you can use frameworks like Truffle or Hardhat to deploy your smart contracts and begin writing your unit tests in JavaScript or TypeScript.