Testnet

From BitcoinWiki
This is the approved revision of this page, as well as being the most recent.
Jump to: navigation, search
Bitcoin Testnet logo

Testnet is an alternative Bitcoin blockchain, to be used for testing. Testnet coins are separate and distinct from actual bitcoins, and are never supposed to have any value. 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).

Testnet Review[edit]

Blockchain tutorial 25: Testnet and faucets

Test net is a special test chain of transaction blocks. It is used by developers of cryptocurrencies to check the work of the future digital currency. All problems and errors are detected and corrected during the tests.

Testnet allows developers to test the operation of the created digital currency. Moreover, it is suitable for testing any information in the blockchain network system. But in the case of cryptocurrency, this is especially important. Creating any record when testing a currency in a real network can be very expensive, which would have a negative impact on the development and improvement of the blockchain cryptocurrency at the initial stages of development. The advantages of using test chains are as follows:

  • The low complexity that allows to use for these tests is relatively weak computers that can not cope with mining in real conditions even forgotten digital currencies;
  • No real value, which eliminates the huge financial cost of testing the process of creating chains of blocks of transactions and minimizes the risk of a hacker attack;
  • The ability to create any number of coins and records, which will have a positive impact on the speed and quality of testing;
  • Test digital currency using scripts, API, CLI, or RPC.

During the tests, the developer will have enough time to identify all possible problems and vulnerabilities. This is very important when creating any cryptocurrency. If the available coins are not enough, then there is always the opportunity to get them through mining through the Central processor of the computer.

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. On the December 21 of 2015 SegNet was deployed, to test the Wuille's Segregated Witness proposal[1].

Testnet vs Testnet2[edit]

  • Default Bitcoin network protocol listen port is 18333 (instead of 8333)
  • Default RPC connection port is 18332 (instead of 8332)
  • Bootstrapping uses different DNS seeds.
  • 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[2].
  • A new genesis block
  • The IsStandard() check is disabled so that non-standard transactions can be experimented with.

Genesis Block[edit]

Testnet uses a different genesis block to the main network. You can find it here or here. The testnet was reset with a new genesis block for the 0.7 bitcoin release.

Block Size[edit]

Testnet receives less transactions than the main block chain and is typically much smaller in size. As of June 2016 the size of the data on disk was 7GB, containing data for about 4 years worth of testnet activity. Downloading this data required about 6GB of network activity peaking at 2MB/s rate of transfer[3].

Testnet Mining[edit]

solo.ckpool has a testnet bitcoin solo mining implementation available, without the need to set up bitcoind locally.

Testnet Wallet[edit]

Online testnet wallets to help you test your application.

Faucets[edit]

Once you're done with your test coins, it is a nice gesture to send them back to the faucets, so they become available to other developers.

Offline (2016-08-07):

Testnet Block explorers[edit]

Attack on Testnet[edit]

There is no point in attacking the test network, as it does not contain coins that could be valuable in monetary terms. However, there are cases when such networks fell under spam attacks. This causes difficulties and temporarily deprives developers of the opportunity to test the cryptocurrency. To attack Testnet does not require large capacity, as the entire network is based on weak processors for simple coin mining. As the transaction costs increase, attacks weaken and eventually cease completely.

To arrange attacks on Testnet almost meaningless. The only benefit an attacker can derive is the complication of the tests. This may be relevant for direct competitors who want to gain an advantage and move their currency forward. However, the real benefit of such actions will be small, as it will affect the tested network slightly[4]. The reason for the attack on Testnet can be a banal desire to test their strength on such networks, learn something new or prepare for a more complex hacker attack.

External links[edit]

See Also on BitcoinWiki[edit]

References[edit]

  1. Testnet, Testing Network - Bitcoin Glossary - Bitcoin.org
  2. https://en.bitcoin.it/wiki/Testnet
  3. Faucet - Bitcoin TestNet sandbox
  4. BlockTrail Testnet Explorer, Testnet API and Testnet Faucet