1. Research & development
  2. > Blog >
  3. Athens on the testchain

Athens on the testchain

05 April 2019
Nomadic Labs

The quorum for the second voting phase has been reached, with a supermajority of Yays! This means that the voting procedure can proceed to its third stage: the test chain for Athens is going to be launched soon, approximately Friday April 12th. To accompany that, we just released a new version of the Tezos node and its baking daemons. This release includes many improvements, most notably a new --enable-testchain option. Users who want to participate in the test chain should upgrade to this release and run a node with that option. As this is the first time this procedure is run in Mainnet, we recommend that node administrators enable this option on a secondary deployment only.

Using the test chain

The main interest of running a testchain that forks from a mainchain, as opposed to running a separate test network such as Alphanet or Zeronet, is twofold.

First, we can see the effect of the context migration on a real context which is much more complex than any test network context.

Second, we can actually perform operations using real accounts, which allows testing remote signers, hardware wallets etc.

For this, the tezos-client can now take a global parameter --chain test. All operations made with this parameter will only be valid in the test chain. At the protocol level, each operation is signed with a unique identifier for each network so it is not possible to replay operations from the test chain on the main chain.

Similarly, developers can use the /chains/test API prefix, in lieu of the usual /chains/main.

Both the option and the API prefix are only valid when the test chain is active.

Running a lighter test chain infrastructure from a snapshot

We recently released a version of the Tezos node with snapshots and history modes, available for beta testing in the mainnet-snapshots Git branch/docker tag.

To help deploy a secondary infrastructure, this node release includes a new command snapshot export. This way, node administrators can extract a snapshot from an existing deployment, in order to spawn a secondary one for running the test chain with a much lower footprint. It is also a good opportunity to get familiar with snapshots, and help us beta-test that feature.

Observing Athens running in the test chain

The are several changes proposed in the variant of protocol athens_004 that is going to be tested, or more precisely Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd. The main changes concern 3 constants, namely the size of a roll, the gas limit per block and per operation. These changes can be found in the context once the test chain is started using the rpc

tezos-client rpc get /chains/test/blocks/head/context/constants

and checking that the value of tokens_per_roll is indeed 8000000000μꜩ (or 8000ꜩ), hard_gas_limit_per_operation and hard_gas_limit_per_block are 8000000.

During the context migration there will also be a first example of invoicing, a way for developers to fund their work on new protocols. For the first vote Nomadic is asking for 100ꜩ, enough for a round of drinks for the devs. This can easily be checked using tezos-client.

tezos-client --chain test get balance tz1iSQEcaGpUn6EW5uAy3XhPiNg7BHMnRSXi

Baking on the test chain

Bakers who want to bake on the test chain will also have to start the daemons for proto-004 with the option --chain test on this node.

Several precautions are in place to avoid double baking, they have been all updated to support the test chain, including the Ledger apps from Obsidian Systems. Yet, as always, bakers should be extra careful with double baking. The documentation includes specific instructions and setup recommendations.