Skip to content

Commit

Permalink
Merge pull request #34 from eth-protocol-fellows/main
Browse files Browse the repository at this point in the history
Update wiki Feb 21
  • Loading branch information
taxmeifyoucan authored Feb 21, 2024
2 parents bc6f9ed + 36ceee4 commit c333788
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 6 deletions.
1 change: 1 addition & 0 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
- Schedule
- [Week 0](/eps/week0.md)
- [Week 1](/eps/week1.md)
- [Week 2](/eps/week2.md)
- [Contributing](contributing.md)
- **Protocol Wiki**
- The Protocol
Expand Down
2 changes: 1 addition & 1 deletion docs/eps/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ While this program is designed to act as a precursor to the Ethereum Protocol Fe
## Important links

- Discord server: https://discord.gg/epfsg
- Weekly calls: https://meet.ethquokkaops.io/EPFsg
- Weekly talks stream: https://streameth.org/65cf97e702e803dbd57d823f/epf_study_group
- Sessions calendar: https://calendar.google.com/calendar/u/0?cid=ZXBmc3R1ZHlncm91cEBnbWFpbC5jb20 ([ics format](https://calendar.google.com/calendar/ical/epfstudygroup%40gmail.com/public/basic.ics))

- EPF mailing list: https://groups.google.com/a/ethereum.org/g/protocol-fellowship-group
Expand Down
3 changes: 1 addition & 2 deletions docs/eps/week0.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Week 0
# Study Group Week 0

Week 0 marks all the time before the program begins. Use this time to prepare yourself and get head start.

Expand All @@ -10,7 +10,6 @@ The call discussed the program details, schedule and answer your questions. Reco

[recording](https://streameth.org/embed/?playbackId=2cb7oln7ky57em6a&streamId=&playerName=EPF+Study+Group ':include :type=iframe width=100% height=520 frameborder="0" allow="fullscreen" allowfullscreen')


## Pre-reading

Before the program, you should be familiar with some general concepts from Ethereum and computer science. If you are not familiar with basics of using Ethereum or have non experience with software development, we recommend gaining at least some understanding of following:
Expand Down
11 changes: 8 additions & 3 deletions docs/eps/week1.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
# Week 1
# Study Group Week 1 | Protocol Intro

The first week of the study group is dedicated to a general introduction to the protocol and R&D ecosystem.

Come to see the presentation by Mário Havel on [Thursday, February 22, 7AM UTC](https://savvytime.com/converter/utc-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/feb-22-2024/7am). *This talk will be conducted again in the same format as before*. We encourage you to join the talk if you haven't seen it already on Monday or if you are in easter time zones. The link to stream will be provided here and in [Discord group](https://discord.gg/epfsg).
Come to see the presentation by Mário Havel on [Thursday, February 22, 7AM UTC](https://savvytime.com/converter/utc-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/feb-22-2024/7am).
*This talk will be conducted again in the same format as before*. We encourage you to join the talk if you haven't seen it already on Monday or if you are in easter time zones.

__The talk will be streamed at: https://streameth.org/65cf97e702e803dbd57d823f/epf_study_group__

For discussion and questions during the talk, use corresponding thread in `#study-group` channel of [Discord server](https://discord.gg/epfsg).

## Pre-reading

This is an introductory talk which doesn't assume a lot of prior knowledge. Check some general requirements in [week 0](week0.md). Here are few more introductory materials to get you started:
This is an introductory talk which doesn't assume a lot of prior knowledge. Check some general requirements in [week 0](/eps/week0.md). Here are few more introductory materials to get you started:
- [Inevitable Ethereum - World Computer](https://inevitableeth.com/home/ethereum/world-computer)
- [Ethereum in 30 minutes](https://www.youtube.com/watch?v=UihMqcj-cqc)
- [Ethereum.org docs](https://ethereum.org/what-is-ethereum)
Expand Down
60 changes: 60 additions & 0 deletions docs/eps/week2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Study Group Week 2 | Execution Layer

During the second week, we will dive into the Execution layer of Ethereum.

Come to see the presentation by [lightclient](https://twitter.com/lightclients/) on [Monday, February 26, 4PM UTC](https://savvytime.com/converter/utc-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/feb-26-2024/4pm).

The link to stream will be provided here and announced in [Discord group](https://discord.gg/epfsg).

## Pre-reading

Before starting with week 2 content, make yourself familiar with resources in [week 1](/eps/week1.md).

Additionally, you should read through the following documents to prepare for the presentation:
* [Nodes and clients](https://ethereum.org/developers/docs/nodes-and-clients)
* [Ethereum: mechanics](https://cs251.stanford.edu/lectures/lecture7.pdf)

## Outline

### Overview of the execution layer node
* Block validation
* in overly simplistic terms, ELs process the state transition
* each transaction is validate by the client, executed, and it's result accumulated into the state trie
* there are additional mechanism which also must be updated each block, such as the EIP-1559 base fee, the EIP-4844 excess blob gas, the EIP-4844 beacon root ring buffer, beacon chain withdrawals, etc.
* new nodes must also be able to join the network without too much friction, so ELs provide efficient syncing mechanism to bootstrap others
* Block building
* ELs also build blocks based on transactions they see around the network
* this requires a tx pool system over p2p

### State transition function
* header validation
* verify merkle roots
* verify gas limit
* verify timestamp
* block validation
* walkthrough [`Process(..)`](https://github.com/ethereum/go-ethereum/blob/master/core/state_processor.go#L60) in `state_processor.go`

### EVM high-level
* stack machine intro
* look at simple programs
* review different classes of opcodes: stack/mem manipulators, env getters, ethereum system operations, etc.

### p2p high-level
* p2p serves three main things
* historical data
* pending txs
* state
* discuss snap sync
* phase 1: downloading snap tiles
* phase 2: healing

### JSON-RPC
* the "interface" to ethereum
* the vision is that all clients provide the exact same API and users can run any client the choose and have perfect integration with all tooling
* not quite there, but we are fairly close
* review main RPC methods

## Additional reading and exercises

- https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming
- https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer

0 comments on commit c333788

Please sign in to comment.