Developer Mode vs Testnet – What’s the Difference?

clientscontract-developmentgo-ethereummordentestnets

I just tried running geth in developer mode on testnet.

 ~ $ geth --dev --testnet
F0127 21:07:16.947591    6407 flags.go:467] dev and testnet are mutually exclusive

I wasn't aware of the actual meaning behind the dev flag, from the help:

--testnet   Morden network: pre-configured test network with modified starting nonces (replay protection)
--dev       Developer mode: pre-configured private network with several debugging flags

What's the deal with the developer mode? What debugging flags are available? And what's the difference with the morden testnet?

I want to start developing smart contracts. Which is the best one to choose?

Best Answer

The Morden testnet is the public Frontier testnet, meaning there are other miners, and other people will be able to see your contracts. It is important to note that you should not use the same accounts on the testnet as you do on the live network, or you will be at risk of replay attacks.

The --dev flag creates a private testnet, accessible only to you. It automatically sets flags like --maxpeers 0 and a temporary datadir. Since only you are mining, you are guaranteed to find ether, whereas on the Morden testnet you may need to wait a bit for test Ether. --dev also increases the verbosity, turns on VM debug logging, and starts Whisper (--shh).

Related Topic