Preston Van Loon
May 7 · 6 min read

It’s here it’s here! Over the past months we’ve been preparing extensively, working every single day to deliver a public testnet for Ethereum 2.0’s proof of stake beacon chain to the community. We have it, it’s live, and you can stake! This is a non-trivial, critical step to take this technology to the next level, and we need you to be a part of it.

Our testnet site with instructions on how to join is officially live at https://prylabs.net .

We understand you might have a lot of questions — let’s get started.

Quick Background on Ethereum 2.0

Ethereum 2.0 is a multi-year effort to create a fully decentralized, permissionless platform for programmable cryptocurrency. It aims to be a full upgrade to the current Ethereum Proof of Work blockchain and provide a significant increase in security, scalability, and decentralization. Eth2. It is a new blockchain, meaning it will not be upgraded as a hard fork on the existing chain. Instead, value will be transferred to it from the proof of work chain via a one-way deposit smart contract.

Users can deposit 3.2 ETH from the Goerli test network to become validators in the new system, which participate in proof of stake consensus to earn returns on their deposit.

credits Hsiao-Wei Wang for the awesome diagram!

Throughout the lifecycle of each validator, rewards will be accrued and penalties applied based their behavior. The protocol favors liveness, that is, the chain can continue even if a large amount of validators are offline, although being offline will cause deposits to eventually become penalized and for those affected individuals to lose capital.

A core concept of Ethereum 2.0 is the idea of shards, which are individual chains that manage smart contracts, transactions, and state. These shards are coordinated by one root chain, known as the beacon chain, which is what phase 0 of Ethereum 2.0 implements. Having shards allows for horizontal scalability of the system, as transactions can be processed in parallel compared to the current Ethereum proof of work chain.

As part of our testnet release, we want to establish transparency around what features we are and are not including in our running network:

What’s Included in the Testnet

  • The testnet is a single client, Prysm network. Unlike Ethereum 1.0, which has geth and parity, this network is Prysm-only.
  • Staking of Goerli test ETH is included in the network. Users can deposit into the deposit contract, run a validator client, and actively participate in consensus via Casper Proof of Stake and earn rewards or penalties based on their activity.
  • The testnet implements the v0.4 version of the official beacon chain specification created by the Ethereum Research team (the latest version is on v0.6)
  • The testnet is publicly accessible and NOT a simulation. We provide a cloud cluster of nodes that participate in consensus but anyone can participate in maintaining the network alive.
  • LibP2P from protocol labs for decentralized, peer-to-peer networking of nodes globally.

What is NOT Included in the Testnet

  • The network does not include smart contract or EVM-related functionality. This is part of phase 2 of Ethereum 2.0. The current testnet is only tasked with managing a registry of validators, allowing for Casper proof of stake, and advancing a blockchain.
  • This is NOT a multi-client network, although this is the next critical step every Eth2 team has in mind.
  • The testnet uses different configuration parameters than what we’d see on mainnet, that is, we support fewer shards, a smaller validator count, and in general different constants for the sake of simplicity.
  • The testnet does not contain beacon chain transfers or withdrawals, as those will come in later iterations and are not critical for showcasing the core functions of the beacon chain.
  • The testnet is not optimized for a very large amount of validators to join. That is, we do not yet have a super-optimal LMD GHOST fork-choice rule, attestation aggregation, among other features that will make the code robust enough for hundreds of thousands of validators to join.

Joining the Testnet

I Want to Become a Validator and Stake Some ETH!

Great! The best way to get started immediately is to visit https://prylabs.net/participate. You’ll need to acquire some test ETH from the Goerli testnet, and the previous link guides you through the steps and sends you some of this ETH through our faucet. Alternatively, you can use another public faucet provided by official Goerli website here.

I Want to Run a Node to Support the Network

If you do not want to stake but just want to run a node to support our network, great! You can follow our instructions on running a beacon node in our official documentation portal here. Running nodes helps keep our network alive and increases the decentralization of our testnet.

I Want to Contribute to the Code

We’d love to help you — join our Discord channel and introduce yourself! We also have some contribution guidelines in our official repository here and more information on how Prysm works in our official docs portal here. Check out our currently open issues to see if anything catches your attention, and then you’ll be an official Prysm contributor.

Frequently Asked Questions

I Ran Into a Bug, How Can I Report It?

For any sort of bugs or weird behavior, the easier way to file a ticket is to open an issue in the official Prysm repository here. We’re always looking to improve and make the experience of this first iteration of the testnet smoother, and we appreciate you bringing any bugs or problems to our attention.

When Will the Testnet Restart?

Until it dies! We are adding major improvements every day that prevent critical conditions from ruining our system. We will announce any breaking changes or major resets via social media both on Medium, Twitter, and in our Discord channel which would force you to update your nodes.

What’s Next

V0.6 Coming to the Testnet

Our next step is to launch v0.6 of the official Ethereum 2.0 specification into our testnet. This is a massive improvement, as the research team aims to freeze the spec by June and have something that will represent a more polished version for mainnet release. Our short term goal is to continue improving our testnet while picking up the pace on v0.6 faster in parallel within our team.

Interested in Contributing?

We are always looking for devs interested in helping us out. If you know Go or Solidity and want to contribute to the forefront of research on Ethereum, please drop us a line and we’d be more than happy to help onboard you :).

Check out our contributing guidelines and our open projects on Github. Each task and issue is grouped into the Phase 0 milestone along with a specific project it belongs to.

As always, follow us on Twitter or join our Discord server and let us know what you want to help with.

Official, Prysmatic Labs Ether Donation Address

0x9B984D5a03980D8dc0a24506c968465424c81DbE

Official, Prysmatic Labs ENS Name

prysmatic.eth

Prysmatic Labs

Implementing Ethereum 2.0 - Full Proof of Stake + Sharding

Preston Van Loon

Written by

Software Engineer at Google with interest in Ethereum, scalability, and distributed systems. Co-founder at Prysmatic Labs.

Prysmatic Labs

Implementing Ethereum 2.0 - Full Proof of Stake + Sharding

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade