owned this note
owned this note
Published
Linked with GitHub
# Phase0 workshop
Welcome!
---
## Day 1 Overview
- :wave: Introduction round
- :eyes: Cover basics
- :notebook: Phase 0 spec - walkthrough
- :apple: Lunch
- :1234: Workshop topics overview, you decide
- :fire: Hack & learn
---
### :wave: Introduction round
---
### Proto
 
IRL name: *Diederik Loerakker*
Online tag: `@protolambda`
https://github.com/protolambda/
Just call me **"Proto"**
---
What do I work on?
Research at EF + Hacking on Eth2 repos.
| Eth2 specs | ZRNT | Remerkleable |
|---|---|---|
|  |  |  |
And 40+ smaller repositories...
---
### Michael

IRL name: Michael Sproul
Online tag: `@michaelsproul` / `@sproulM_`
---
Working on:
**Lighthouse** - Rust Eth2 client

---
### Albert

IRL Name: Albert Ni
Ethereum Foundation - workshop co-lead.
---
### Eth2 friends

*Interop lock-in event in Canada last year*
---
Client teams:
- Sigma Prime -- Lighthouse (Rust)
- Chainsafe -- Lodestar (Typescript)
- Status -- Nimbus (Nim)
- Prysmatic -- Prysm (Go)
- Consensys -- Teku (Java/Kotlin)
---
Other:
- Quilt, Consensys, Pegasys
- Ewasm team, EF researchers
- Whiteblock, Protocol Labs, Runtime Verification
- And more!
---
### You?

---
## Day 1 Overview
- ~~:wave: Introduction round~~
- :eyes: Cover basics
- :notebook: Phase 0 spec - walkthrough
- :apple: Lunch
- :1234: Workshop topics overview, you decide
- :fire: Hack & learn
---
## :eyes: Basics
- Phase0 intentions
- Highlight components new in Phase 0
- Where Phase 1 and Phase 2 continue
- Where to find specs, how changes are made
- Question round
---
## :notebook: Phase 0 spec
- Phase0 for humans: https://notes.ethereum.org/@djrtwo/Bkn3zpwxB
- Eth2 edu diagrams: https://github.com/protolambda/eth2-docs
- Annotated spec: https://benjaminion.xyz/eth2-annotated-spec/
---
## Lunch time!
### :apple: :pear: :banana:
---
## Workshop plans
---
### :construction: Client architecture
- Who is on the network
- Separation from validator client
- Components
- Eth1-data tracking
- Operation pools, gossip
- Fork-choice
- Block production, duties, serve validator API
- Networking; peer store, RPC status/sync.
---
### :pineapple: Optimizations
- What does it mean to flatten the state-transition to O(n)?
- What does hash-tree-root entail for Eth2?
- Data-sharing to deduplicate and fork consensus state quick
- Fork choice batching and history
---
### :satellite: Networking
- Quick libp2p intro
- Networking spec quick walkthrough
- Try the networking REPL, learn (while playing with it) about different networking components
- Learn about DOS questions of audit
- Spin up a testnet, learn what is happening
---
### :coffee: Algorithmic challenges
- Slashing detection: memory/storage intensive matching
- Non-local attestation aggregation: maximum disjoint-set problem, heuristics, privacy concerns.
- State-sync; quick Eth1 beam-sync explainer. Then how SSZ, bounded state, and light-clients change things in Eth2.
---
### :wrench: Tooling fun:
- Quick walkthrough of libraries/client utilities to build hacks with
- Showcase: beaconcha.in, beacon etherscan, eth2stats, client-metrics.
- Ideas/hacking on something new.
---
## :fire: Hack & learn
Challenge ideas:

*https://notes.ethereum.org/@protolambda/ryNEqN0mL*