diff --git a/docs/_sidebar.md b/docs/_sidebar.md index e2622b49..5bdf06a2 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -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 diff --git a/docs/eps/intro.md b/docs/eps/intro.md index 54e1ae24..57621703 100644 --- a/docs/eps/intro.md +++ b/docs/eps/intro.md @@ -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 diff --git a/docs/eps/week0.md b/docs/eps/week0.md index 49d27141..1e2358f3 100644 --- a/docs/eps/week0.md +++ b/docs/eps/week0.md @@ -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. @@ -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: diff --git a/docs/eps/week1.md b/docs/eps/week1.md index 698fec8a..a6ed6205 100644 --- a/docs/eps/week1.md +++ b/docs/eps/week1.md @@ -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) diff --git a/docs/eps/week2.md b/docs/eps/week2.md new file mode 100644 index 00000000..ecf0b76b --- /dev/null +++ b/docs/eps/week2.md @@ -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