Prysm Phase1 Design Summary

Author: Terence Tsao (terence@prysmaticlabs.com)

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Background

In the current Ethereum road map, Ethereum2.0 (ETH2.0)'s phase 1 implements sharding of data. As the phase 1 spec continues to mature, evolve and improved by the researchers and the community members. There's great value and synergy to begin implement a phase 1 proof of concept client that aims to serve many great purposes.
Prysm from Prysmatic Labs is the phase 0 beacon chain implementation in Golang. The project consists of implemenations of beacon node and validator client. Both implementations are aiming to be production ready as beacon chain goes mainnet starting day 0. As we are heading towards the mainnet production readiness phase for phase 0, it naturally makes sense to begin and explore experimental phase 1 functionality using Prysm.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Outlined Goals

  • Implement shard chains that get built along side beacon chain in run time, shard chains should be crosslinking with the beacon chain
  • Implement benchmarks on what is feasible and what is not feasible with design decisions outlined in the spec
  • Implement useful test suite to follow along side phase 1 releases
  • Implement a spec feedback doc
  • Explore ideas of phase 1 toolings
  • Advertise more eyes to look into the new specs. Onboard more developers to work on new specs
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Current Work

The work is currently done in my personal repo. It will be moved to under Prysmatic Labs Prysm one day:
https://github.com/terencechain/prysm-phase1

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Current Progress

This targets eth2 repo commit 7a77018 and is subject to change.

This mainly focuses on shard transition, will focus on light client and fraud proof next.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Beacon Chain

  • Update existing beacon chain containers
  • Update existing beacon chain configs
  • Add beacon chain misc shard helpers
  • Add beacon node to process crosslinks
  • Add beacon node to verify shard state transtiion
  • Add beacon node to process light client signature and committee update
  • Add beacon node to process shard receipt proofs

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Shard Chains

  • Add shard containers
  • Add shard configs
  • Add shard misc helpers
  • Add shard state transition
  • Add shard fork choice rule
  • Add fraud proof verification
  • Add getters and setters for shard chain objects in DB
  • Add caches to optimize shard state transition

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Validators

  • Update proposer to compute and package shard transition object in beacon block
  • Update attester to sign off shard transiton and submit full attestaton object as part of beacon committee duty
  • Update attester to sign off custody bits blocks and signature as part of beacon committee duty
  • Add validator to participate as persistent committee, this is part of shard block creation
  • Add validator to participate as light client committee

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Runtime

  • Set up runtime framework

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Current Notable Problems

  • ssz.HashTreeRoot(beaconBlock) != stateutil.BlockRoot(beaconBlock). This is due to additionShardTransition field in beacon block. I added HTR of ShardTrasntions to stateutil.BlockBodyRoot but that wasn't enough
Select a repo