For all the eth2 folks out there, we have become accustomed to occasional testnet restarts as they bring positive progress. Testnet restarts enable us to bring in new features, improvements and bug fixes that improve the overall user experience. We’ve come a long way from having a short-lived set of testnets back in May of 2019, now having a running chain for 2 full months since November! Now, it is time again for evolution and to bring in a massive set of changes that will get us a lot closer to the mainnet release. We are restarting our testnet updating it to a mainnet parameter configuration with over 24,000 validators. This is still a testnet with fake ETH, but is now capable of handling the load of eth2 mainnet.

In the previous iteration, our testnet used a minimal config which requires 64 validators to kick off chain, 12 seconds per slot and 8 slots per epoch. In mainnet config, it’s 16384 validators to kick off chain, 12 seconds per slot and 32 slots per epoch. As one can see, mainnet config puts a lot more stress on the overall system due to the increase of validator count and the number of slots in an epoch. With the new testnet on the horizon, it’s important to briefly cover all these new features, the optimizations to solve performance problems, and critical bug fixes that will go into it. We’ll cover each of them in section below

💡 Features

One of the biggest features that got introduced in Q4/2019 is the new role of aggregator. Instead of every attester broadcasting attestations every slot in the same subnet, a better attestation aggregator strategy was introduced. The motivation behind this strategy is to provide better stability for gossipsub networking channel Given such change, we had to redesign a bunch of stuff, from attestation pool storing attestations in cache to network sync service logic for proper handling both unaggregated and aggregated attestations from the network. See work: 4223, 4286, 4347, 4376, 4408, 4159, 4240

A new hardening logic was introduced to prevent attestations having duplicated validator indices. See work: 4339

To activate a validator, there must be a new finalized epoch: 4359

At last, the custody bit field was removed from the attestation structure for a clean phase 0 rebase. See work: 3986

With all the new features in place, we refactored RPC and our connection to the eth1 proof-of-work chain for code health improvements and to support v0.9.3. See work: 4243, 4390, 4306