Skip to content

Commit

Permalink
Merge branch 'main' into el-architecture
Browse files Browse the repository at this point in the history
  • Loading branch information
SiddharthV1 committed May 1, 2024
2 parents a2a7970 + bc9063e commit b31c39b
Show file tree
Hide file tree
Showing 21 changed files with 2,624 additions and 72 deletions.
1 change: 1 addition & 0 deletions docs/_navbar.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
* [Home](readme.md)
* [Study Group](/eps/intro.md)
* [Protocol Wiki](/wiki/wiki-intro.md)
* [Contribute](contributing.md)
10 changes: 5 additions & 5 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
- [Home](readme.md)
- **Study Group**
- [EPFsg overview](/eps/intro.md)
- Schedule
- Presentations
- [Week 0](/eps/week0.md)
- [Week 1](/eps/week1.md)
- [Week 2](/eps/week2.md)
Expand Down Expand Up @@ -70,10 +70,10 @@
- [Preconfirmations](/wiki/research/Preconfirmations/Preconfirmations.md)
- [Based Sequencing with Preconfs](/wiki/research/Preconfirmations/BasedSequencingPreconfs.md)
- [Cryptography](/wiki/Cryptography/intro.md)
- [ECDSA](/wiki/Cryptography/ecdsa.md)
- [ECDSA](/wiki/Cryptography/ecdsa.md)
- [BLS](/wiki/Cryptography/bls.md)
- [Keccak256](/wiki/Cryptography/keccak256.md)
- BLS
- [Commitments]
- Commitments
- [KZG](/docs/wiki/Cryptography/KZG.md)
- [Post-Quantum Cryptography](/wiki/Cryptography/post-quantum-cryptography.md)
- [Protocol Fellowship](/wiki/epf.md)
Expand All @@ -82,5 +82,5 @@
- [GitHub Repository](https://github.com/eth-protocol-fellows/protocol-studies)

<form action="https://epf.wiki/#/eps/intro" target="_blank">
<input type="submit" value="Join the protocol" style="cursor: pointer;margin-top:12px;padding:8px;background-color:#FFFFFF;border:1px solid #0374B5;border-radius:.25rem;color:#0374B5;display:inline-block;text-align:center;text-decoration:none;width:250px;-webkit-text-size-adjust:none;mso-hide:all;" />
<input type="submit" value="Join the protocol" class="btn-primary" />
</form>
214 changes: 213 additions & 1 deletion docs/assets/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -154,4 +154,216 @@ body .markdown-section {
line-height: 1.3;
font-size: 14px;
}
*/
*/

/*
################################
|| ||
|| 🎨 EPF.WIKI Theme ||
|| ||
################################
*/

:root {
--base-background-color: #1c153b;
--sidebar-name-color: #ba9afd;
--sidebar-background: #190c39;
--sidebar-toggle-background: #190c39;
--navbar-root-color--active: #ba9afd;
--search-input-background-color: #2d1763;
--table-row-odd-background: #2d1763;

/* blockquote*/
--blockquote-background: #2d1763;
--blockquote-color: #fff;
--blockquote-border-color: #ba9afd;

/* link */
--link-color: #ba9afd;
}

/* sidebar */
li.file,
li.folder {
transition: all 0.3s ease-in-out;
padding: 8px 15px;
margin-bottom: 4px;
}
li.file p,
li.folder p {
margin: 0;
}

li.folder.active,
li.folder:hover,
li.folder.open,
li.file.active,
li.file:hover,
li.file.open {
border-radius: 5px;
background: #2d1763;
}

.app-sub-sidebar li.file,
.app-sub-sidebar li.folder {
padding: 0;
margin: 0;
animation: tabFade 0.5s;
}

li.folder strong,
li.file strong {
padding: 10px 0;
display: block;
border-bottom: 1px dashed #a278ff;
}

li.folder > ul > li.file {
padding: 0;
}
.sidebar-nav ul.app-sub-sidebar a {
border: none;
border-left: 4px solid #fff;
padding-left: 8px;
}

.sidebar-nav ul.app-sub-sidebar li.active > a,
.sidebar-nav ul.app-sub-sidebar li a:hover {
border-color: #ba9afd;
text-decoration: none;
color: #ba9afd;
border-left: 4px solid #ba9afd;
}

.sidebar .search .input-wrap {
padding: 8px 15px;
margin: 0;
border-radius: 50px;
border: 2px solid #6660b9;
}
.sidebar .search input[type="search"],
.sidebar .search input[type="search"]:focus {
background-color: #2d1763;
outline: none;
box-shadow: none;
}
.sidebar-nav a:hover {
text-decoration: none;
}
@keyframes tabFade {
0% {
opacity: 0;
}

to {
opacity: 1;
}
}
/* content */
.markdown-section img {
border-radius: 8px;
}
.markdown-section h2 a::before,
.markdown-section h3 a::before,
.markdown-section h4 a::before,
.markdown-section h5 a::before,
.markdown-section h6 a::before {
color: #ba9afd;
margin-right: 5px;
}

.app-nav li a {
color: #fff;
font-weight: bold;
}

.sidebar-toggle .sidebar-toggle-button {
padding: 20px;
border-radius: 5px;
--sidebar-toggle-icon-height: 8px;
--sidebar-toggle-icon-stroke-width: 2px;
background: #6e52a9;
}

@media only screen and (min-width: 768px) {
.sidebar-toggle .sidebar-toggle-button {
padding: 20px;
border-radius: 5px;
--sidebar-toggle-icon-height: 8px;
--sidebar-toggle-icon-stroke-width: 5px;
background: #6e52a9;
}
.sidebar-toggle span:nth-child(1) {
transform: rotate(-45deg);
}

.sidebar-toggle span:nth-child(2) {
display: none;
}

.sidebar-toggle span:nth-child(3) {
transform: rotate(45deg);
}

.ready-fix.close .sidebar-toggle span:nth-child(1) {
transform: rotate(45deg);
}

.ready-fix.close .sidebar-toggle span:nth-child(3) {
transform: rotate(135deg);
}
}

.sidebar-toggle span {
transition: transform 0.5s ease-in-out;
}

.btn-primary,
.markdown-section a.btn-primary {
border: none;
outline: none;
cursor: pointer;
text-align: center;
border-radius: 3rem;
background: #ba9afd;
padding: 0.75rem 1.5rem 0.85rem;
font-size: 1.13rem;
font-weight: 500;
line-height: 1;
color: #190c39;
margin: 10px 0;
display: inline-block;
text-decoration: none;
}

.btn-primary::after {
display: inline-block;
margin-left: 4px;
font-size: 22px;
content: "➡";
}
body .pagination-item-title,
body .pagination-item-label {
font-weight: bold;
color: #fff;
opacity: 1;
}

.app-name-link {
display: flex;
align-items: center; /* Vertical align */
justify-content: center;
font-weight: bold;
font-size: 25px;
}

.logo {
display: inline;
width: 40px;
margin-right: 5px;
}

.markdown-section table {
display: table;
width: 100%;
}
71 changes: 36 additions & 35 deletions docs/eps/intro.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,64 @@
# EPF Protocol Studies

Ethereum Protocol Fellowship Study Group (EPFsg) is a learning community formed to gather knowledge and educate itself about the Ethereum protocol.
Ethereum Protocol Fellowship Study Group (EPFsg) is a community formed gathering knowledge, learning and educating about the Ethereum protocol.

The protocol evolves and grows quickly, it's an always-changing infinite garden. To sustain its credible neutrality, this pace should be reflected in the community as well. Various communities using, building or living on Ethereum need to be able to learn and become involved in the core protocol. The complexity of the architecture, codebases and dynamic development with scattered resources can discourage many talented people from participating on the core level. The protocol study group aims to bridge the gap by introducing a curriculum focused on all parts of the Ethereum stack & roadmap and gathering people interested in diving into it.
The protocol evolves and grows quickly, it's an always-changing infinite garden. To sustain its credible neutrality, this pace should be reflected in the community as well. Various communities using, building or living on Ethereum need to be able to learn and become involved in the core protocol. The complexity of the architecture, codebases and dynamic development with scattered resources can discourage many talented people from participating on the core level. The protocol study group aims to bridge the gap by introducing a curriculum focused on all parts of the Ethereum stack, building a wiki and gathering people interested in diving into it.

> Check also the announcement blog post https://blog.ethereum.org/2024/02/07/epf-study-group
> The study group was originally running from February to April 2024 as an open open, 10-week study program. Although these regular presentations are over, all of the content produced is available here and the community is still active.
## Program Structure

The program is an open, 10-week study program divided into 2 phases.
The study group content is structured in 2 stages of weekly presentations. To follow the study group, you can watch presentations and read related resources week by week.

The first half is dedicated to general understanding of the internal mechanisms of the protocol, its architecture and basic concepts. The second half offers 2 different tracks - development and research. Presentations in each track offer a deeper dive into specific topics within the R&D domains.

Each online session will be led by core developers and researchers, come with pre-meeting reading material to get you familiar with the topic and terminology as well as a post-meeting activity to strengthen and solidify your understanding.
Each session is led by core developer or researcher, comes wit reading materials to get you familiar with the topic context and some also include exercises to strengthen and practice your understanding.

Weekly topics, their presentations and materials can be all found in this folder. Checkout the study group content in this folder, start with [Week 0](eps/week0.md).
Weekly sessions, their presentations and materials can be all found in this section under Presentations.

### Schedule
### Presentations

The first part of the program consists of 5 weeks with introductions to high level domains of the protocol.
The first part of the program consists of 6 sessions with introductions to high level domains of the protocol.

| Date | Topic | Speaker |
| ----------- | ---------------------------------- | ------------------------------------------------------------------------------------------------ |
| February 19 | Intro to EPS and Ethereum protocol | [Josh Davis](https://github.com/JoshDavisLight), [Mario Havel](https://github.com/taxmeifyoucan) |
| February 26 | Execution Layer | [Lightclient](https://github.com/lightclient) |
| March 4 | Consensus layer | [Alex Stokes](https://github.com/ralexstokes) |
| March 11 | Testing and security | [Mario Vega](https://github.com/marioevz) |
| March 18 | Roadmap and research | [Domothy](https://github.com/domothyb) |

The second part of the program offers two distinct tracks focused on development and research with deeper dive into each domain.
> Because some speakers did more technical talks than others, the recommended order for newcomers to start is Week 1, Week 3, Week 2, Week 5 Node workshop and then Week 4 and 5.
| Week # | Topic | Speaker |
| ------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------ |
| [Week 1](/eps/week1.md) | Intro to EPS and Ethereum protocol | [Josh Davis](https://github.com/JoshDavisLight), [Mario Havel](https://github.com/taxmeifyoucan) |
| [Week 2](/eps/week2.md) | Execution Layer | [Lightclient](https://github.com/lightclient) |
| [Week 3](/eps/week3.md) | Consensus layer | [Alex Stokes](https://github.com/ralexstokes) |
| [Week 4](/eps/week4.md) | Testing and security | [Mario Vega](https://github.com/marioevz) |
| [Week 5](/eps/week5.md) | Roadmap and research | [Domothy](https://github.com/domothyb) |
| [Week 5](/eps/node_workshop.md) | Node workshop | [Mario](https://github.com/taxmeifyoucan) |

| Date | Topic | Speaker | Track |
| -------- | ----------------------------- | -------------------------------------------------------------------------------------- | ----------- |
| March 25 | Consensus and Execution specs | [Hsiao-Wei Wang](https://github.com/hwwhww), [Sam Wilson](https://github.com/SamWilsn) | Development |
| March 27 | Sharding and DAS | [Dankrad Feist](https://github.com/dankrad) | Research |
| April 1 | Execution client architecture | [Dragan Pilipovic](https://github.com/dragan2234) | Development |
| April 3 | Verkle trees | [Josh Rudolf](https://github.com/jrudolf) | Research |
| April 8 | Consensus client architecture | [Paul Harris](https://github.com/rolfyone) | Development |
| April 10 | MEV and censorship | [Barnabe Monnot](https://github.com/barnabemonnot) | Research |
| April 15 | Devops and testing | [Parithosh](https://github.com/parithosh) | Development |
| April 17 | Purge and Portal Network | [Piper Merriam](https://github.com/pipermerriam) | Research |
| April 22 | EL precompiles | Danno Ferrin | Development |
| April 24 | SSF and PoS Upgrades | [Francesco D’Amato](https://github.com/fradamt) | Research |
| April 29 | Wrap up | | |
The second part of the program offers two distinct tracks focused on development and research with deeper dive into each domain.

| Week #, track | Topic | Speaker |
| ------------------------------------------- | ----------------------------- | -------------------------------------------------------------------------------------- |
| [Week 6 Development](/eps/week6-dev.md) | Consensus and Execution specs | [Hsiao-Wei Wang](https://github.com/hwwhww), [Sam Wilson](https://github.com/SamWilsn) |
| [Week 6 Research](/eps/week6-research.md) | Sharding and DAS | [Dankrad Feist](https://github.com/dankrad) |
| [Week 7 Development](/eps/week7-dev.md) | Execution client architecture | [Dragan Pilipovic](https://github.com/dragan2234) |
| [Week 7 Research](/eps/week7-research.md) | Verkle trees | [Josh Rudolf](https://github.com/jrudolf) |
| [Week 8 Development](/eps/week8-dev.md) | Consensus client architecture | [Paul Harris](https://github.com/rolfyone) |
| [Week 8 Research](/eps/week8-research.md) | MEV and censorship | [Barnabe Monnot](https://github.com/barnabemonnot) |
| [Week 9 Development](/eps/week9-dev.md) | Devops and testing | [Parithosh](https://github.com/parithosh) |
| [Week 9 Research](/eps/week9-research.md) | Purge and Portal Network | [Piper Merriam](https://github.com/pipermerriam) |
| [Week 10 Development](/eps/week10-dev.md) | EL precompiles | [Danno Ferrin](https://github.com/shemnon) |
| [Week 10 Research](/eps/week10-research.md) | SSF and PoS Upgrades | [Francesco D’Amato](https://github.com/fradamt) |

### Streams and recordings

Talks and calls are announced week in advance based on the schedule above. Recordings of all talks can be found on [Youtube](https://www.youtube.com/@ethprotocolfellows) or [StreamEth](https://streameth.org/archive?organization=ethereum_protocol_fellowship) archive.

Apart from weekly lectures, there are less regular, ad-hoc hangout calls for informal chats and calls for wiki contributors working the content. Join the Discord group to get notified about all of these events.
Apart from weekly lectures, there are less regular, ad-hoc hangout calls for informal chats and calls for wiki contributors working the content. Join the Discord group to get notified about all of these events.

## Participate

The first instance of EPF study group is starting in February 2024. It's completely open and permissionless, and it is up to each participant as to how they want to approach it. Whether you want to learn as much as possible, focus only on certain topics or share your knowledge with others, you are welcomed. Although it's opened, [you can register](https://forms.gle/7TqmryC217EPwgqr9) to help us tailor the experience better.
The study group is an open and permissionless, and it is up to each participant as to how they want to approach it. Whether you want to learn as much as possible, focus only on certain topics or share your knowledge with others, you are welcomed.

> Join our community [Discord server](https://discord.gg/addwpQbhpq)
> Join our community in [Discord server](https://discord.gg/addwpQbhpq). We use it for the easiest community engagement but we are aware that Discord is proprietary and doesn't respect user privacy. Consider using alternative FOSS clients like [Dissent](https://github.com/diamondburned/dissent) or [Discordo](https://github.com/ayn2op/discordo).
Study group participants will collaboratively develop a comprehensive wiki, serving as an evolving knowledge base for current and future core developers. This will provide students with practical experience in contributing to open source resources, while gaining invaluable experience in documentation and community-driven development.
Study group participants collaboratively develop the [Protocol wiki](/wiki/wiki-intro.md), serving as an evolving knowledge base for current and future core developers. This can provide students with practical experience in contributing to open source resources, while gaining invaluable experience in documentation and community-driven development.

While this program is designed to act as a precursor to the Ethereum Protocol Fellowship, the study group is for anyone that is interested in learning more about the inner workings of the Ethereum Protocol. Those that have some general knowledge or use of Ethereum and/or blockchains as well as those that have some computer science, technical, or developer experience will get the most from this program.

Expand All @@ -69,6 +69,7 @@ While this program is designed to act as a precursor to the Ethereum Protocol Fe
- [Youtube](https://www.youtube.com/@ethprotocolfellows)
- [Sessions calendar](https://calendar.google.com/calendar/u/0?cid=ZXBmc3R1ZHlncm91cEBnbWFpbC5jb20)
- [EPF mailing list](https://groups.google.com/a/ethereum.org/g/protocol-fellowship-group)
- [EF Blog](https://blog.ethereum.org)

## Calls troubleshooting

Expand All @@ -85,7 +86,7 @@ For our weekly meetings, we are using a self-hosted FOSS platform Jitsi. Even th
- **Will I learn to develop applications on the Ethereum blockchain?**
- No. This program is not focused on Solidity or development of decentralized applications.
- **When does it start and is the duration?**
- Program will start in February 2024 and continue for 10 weeks, finishing by end of April.
- The program ran from February 2024 and continued for 10 weeks, concluding by the end of April.
- **Am I automatically accepted to EPF after attending EPFsg**
- No. The study group is a great way to prepare for EPF, but it doesn't guarantee anything. However, EPF is a permissionless program, so you can always participate.
- **Where is the study group located?**
Expand Down
Binary file added docs/images/elliptic-curves/bls-alice.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit b31c39b

Please sign in to comment.