The testnet is an alternative Bitcoin block chain, to be used for testing. This allows application developers or bitcoin testers to experiment, without having to use real bitcoins or worrying about breaking the main bitcoin chain.
Run bitcoin or bitcoind with the -testnet flag to use the testnet (or put testnet=1 in the bitcoin.conf file).
There have been three generations of testnet. Testnet2 was just the first testnet reset with a different genesis block, because people were starting to trade testnet coins for real money. Testnet3 is the current test network. It was introduced with the 0.7 release, introduced a third genesis block, a new rule to avoid the "difficulty was too high, is now too low, and transactions take too long to verify" problem, and contains blocks with edge-case transactions designed to test implementation compatibility.
- Default Bitcoin network protocol listen port is 18333 (instead of 8333)
- Default RPC connection port is 18332 (instead of 8332)
- Bootstrapping IRC channel is #bitcoinTEST instead of #bitcoin (both on irc.lfnet.org). The built-in node list is disabled.
- A different value of ADDRESSVERSION field ensures no testnet Bitcoin addresses will work on the production network. (0x6F rather than 0x00)
- The protocol message header bytes are 0x0B110907 (instead of 0xF9BEB4D9)
- Minimum difficulty of 1.0 on testnet is equal to difficulty of 0.5 on mainnet. This means that the mainnet-equivalent of any testnet difficulty is half the testnet difficulty. In addition, if no block has been found in 20 minutes, the difficulty automatically resets back to the minimum for a single block, after which it returns to its previous value.
- A new genesis block
- The IsStandard() check is disabled so that non-standard transactions can be experimented with.
Testnet uses a different genesis block to the main network. You can find it at http://blockexplorer.com/testnet/b/0 The testnet was reset with a new genesis block for the 0.7 bitcoin release.