Development Networks
Last edit: @sumitvekariya(opens in a new tab), 29 Ọgọst 2024
When building an Ethereum application with smart contracts, you'll want to run it on a local network to see how it works before deploying it.
Similar to how you might run a local server on your computer for web development, you can use a development network to create a local blockchain instance to test your dapp. These Ethereum development networks provide features that allow for much faster iteration than a public testnet (for instance you don’t need to deal with acquiring ETH from a testnet faucet).
Prerequisites
You should understand the basics of the Ethereum stack and Ethereum networks before diving into development networks.
What is a development network?
Development networks are essentially Ethereum clients (implementations of Ethereum) designed specifically for local development.
Why not just run a standard Ethereum node locally?
You could run a node but since development networks are purpose-built for development, they often come packed with convenient features like:
- Deterministically seeding your local blockchain with data (e.g. accounts with ETH balances)
- Instantly producing blocks with each transaction it receives, in order and with no delay
- Enhanced debugging and logging functionality
Available tools
Note: Most development frameworks include a built-in development network. We recommend starting with a framework to set up your local development environment.
Hardhat Network
A local Ethereum network designed for development. It allows you to deploy your contracts, run your tests and debug your code.
Hardhat Network comes built-in with Hardhat, an Ethereum development environment for professionals.
Local Beacon Chains
Some consensus clients have built-in tools for spinning up local beacon chains for testing purposes. Instructions for Lighthouse, Nimbus and Lodestar are available:
- Local testnet using Lodestar(opens in a new tab)
- Local testnet using Lighthouse(opens in a new tab)
- Local testnet using Nimbus(opens in a new tab)
Public Ethereum Test-chains
There are also two maintained public test implementations of Ethereum: Goerli and Sepolia. The recommended testnet with long-term support is Goerli, which anyone is free to validate on. Sepolia is a newer, smaller chain also expected to be maintained for the foreseeable future, with a permissioned validator set (meaning there is no general access to new validators on this testnet). The Ropsten chain is expected to be deprecated in Q4 2022, and the Rinkeby chain is expected to be deprecated in Q2/Q3 2023.
- Goerli Staking Launchpad(opens in a new tab)
- Ropsten, Rinkeby & Kiln Deprecation Announcement(opens in a new tab)
Kurtosis Ethereum Package
Kurtosis is a build system for multi-container test environments which enables developers to locally spin up reproducible instances of blockchain networks.
The Ethereum Kurtosis package can be used to quickly instantiate a parameterizable, highly scalable, and private Ethereum testnet over Docker or Kubernetes. The package supports all major Execution Layer (EL) and Consensus Layer (CL) clients. Kurtosis gracefully handles all local port mappings and service connections for a representative network to be used in validation and testing workflows relating to Ethereum core infrastructure.
- Ethereum network package(opens in a new tab)
- Website(opens in a new tab)
- GitHub(opens in a new tab)
- Documentation(opens in a new tab)
Further reading
Know of a community resource that helped you? Edit this page and add it!