Skip to content

Commit

Permalink
resolve merge conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
shyam-patel-kira committed Apr 28, 2024
2 parents 56a8148 + 331f42b commit e152041
Show file tree
Hide file tree
Showing 21 changed files with 106 additions and 51 deletions.
41 changes: 13 additions & 28 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,43 +22,41 @@
- [Contributing](contributing.md)
- **Protocol Wiki**
- The Protocol
- [Overview](/wiki/protocol/overview.md)
- [History](/wiki/protocol/history.md)
- [Architecture](/wiki/protocol/architecture.md)
- [Design rationale](/wiki/protocol/design-rationale.md)
- [Evolution](/wiki/protocol/history.md)
- Execution Layer
- [EL Specs](/wiki/EL/el-specs.md)
- [Client architecture](/wiki/EL/el-architecture.md)
- [EL Clients](/wiki/EL/el-clients.md)
- [Besu](/wiki/EL/clients/besu.md)
- [Reth](/wiki/EL/clients/reth.md)
- [EVM](/wiki/EL/evm.md)
- [Precompiled Contracts](/wiki/EL/precompiled-contracts.md)
- [Data Structures](/wiki/EL/data-structures.md)
- [Transaction anatomy](/wiki/EL/transaction.md)
- [JSON-RPC](/wiki/EL/JSON-RPC.md)
- [Data Structures](/wiki/EL/data-structures.md)
- [DevP2P]
- [Precompiled Contracts](/wiki/EL/precompiled-contracts.md)
- [Consensus Layer](/wiki/CL/overview.md)
- [DevP2P](/wiki/EL/devp2p.md)
- Consensus Layer
- [Overview](/wiki/CL/overview.md)
- [CL Specs](/wiki/CL/cl-specs.md)
- Client architecture
- [Client architecture](/wiki/CL/client-architecture.md)
- [CL Clients](/wiki/CL/cl-clients.md)
- [Proof-of-Stake]
- [Beacon API]
- [Networking](/wiki/CL/cl-networking.md)
- [Beacon API](/wiki/CL/beacon-api.md)
- [CL Networking](/wiki/CL/cl-networking.md)
- Development
- [Core development](/wiki/dev/core-development.md)
- [Coordination](/wiki/protocol/pm.md)
- [CS Resources](/wiki/dev/cs-resources.md)
- [Coordination](/wiki/dev/pm.md)
- [Dev Resources](/wiki/dev/cs-resources.md)
- Testing and security
- [Testing overview](/wiki/testing/overview.md)
- [Incidents](/wiki/testing/incidents.md)
- [hive](/wiki/testing/hive.md)
- Formal Verification
- Research
- [Roadmap overview](/wiki/research/roadmap.md)
- [Scaling](/wiki/research/scaling/scaling.md)
- [Core Changes](/wiki/research/scaling/core-changes/core-changes.md)
- [EIP-4844](/wiki/research/scaling/core-changes/eip-4844.md)
- Statelessness
- Purge
- [MEV](/wiki/research/PBS/mev.md)
- [MEV-boost](/wiki/research/PBS/mev-boost.md)
- [PBS](/wiki/research/PBS/pbs.md)
Expand All @@ -67,16 +65,6 @@
- [PTC](/wiki/research/PBS/PTC.md)
- [PEPC](/wiki/research/PBS/PEPC.md)
- [TBHL](/wiki/research/PBS/TBHL.md)
- Proof of Stake
- [Upgrades](/docs/wiki/research/cl-upgrades.md)
- SSF
- SSLE
- [Light Clients](/wiki/research/light-clients.md)
- Privacy
- AA
- ASE
- EOF
- Portal Network
- Preconfirmations
- [Preconfirmations](/wiki/research/Preconfirmations/Preconfirmations.md)
- [Based Sequencing with Preconfs](/wiki/research/Preconfirmations/BasedSequencingPreconfs.md)
Expand All @@ -85,10 +73,7 @@
- [BLS](/wiki/Cryptography/bls.md)
- [Keccak256](/wiki/Cryptography/keccak256.md)
- [Commitments]
- Polynomials
- Commitment schemes
- [KZG](/docs/wiki/Cryptography/KZG.md)
- ZK
- [Post-Quantum Cryptography](/wiki/Cryptography/post-quantum-cryptography.md)
- [Protocol Fellowship](/wiki/epf.md)

Expand Down
7 changes: 7 additions & 0 deletions docs/wiki/CL/beacon-api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Beacon API

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
Beacon API is the endpoint provided by consensus layer clients. It's the interface for interacting with consensus for users and validators.

Check the [Beacon API reference](https://ethereum.github.io/beacon-APIs/#/).
11 changes: 11 additions & 0 deletions docs/wiki/CL/cl-specs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Consensus layer specification

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
Ethereum network started as a proof-of-work blockchain with the intention of switching to proof-of-stake after its bootstrap. The research produced a consensus mechanism combining Casper and GHOST, released in [Gasper paper](https://arxiv.org/abs/2003.03052).

Based on its design, a specification was written in python. [Pyspec](https://github.com/ethereum/consensus-specs) is an executable specification that serves as a reference for consensus layer developers. It is also used as reference for client implementations and for creating the test case vectors for clients.

## Resource

[How to use Executable Consensus Pyspec by Hsiao-Wei Wang | Devcon Bogotá](https://www.youtube.com/watch?v=ZDUfYJkTeYw)
10 changes: 10 additions & 0 deletions docs/wiki/CL/client-architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# CL Client architecture

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
Beacon Chain clients are implementing various fundamental features:

- Forkchoice mechanism
- Engine API for communication with the execution client
- Beacon APIs for validators and users
- libp2p protocol for communication with other CL clients
2 changes: 2 additions & 0 deletions docs/wiki/Cryptography/intro.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Cryptography

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
Cryptography researchers craft the weapons or implements of change that developers use. They use advanced algebra to exploit the hard limits set by the universe on reality and craft cryptographic schemas that obey certain properties. They are in a sense reality-hackers. They hack reality to create systems that obey objective properties due to the underlying mathematics.

https://summerofprotocols.com/wp-content/uploads/2023/12/53-BEIKO-001-2023-12-13.pdf
7 changes: 7 additions & 0 deletions docs/wiki/EL/devp2p.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Execution p2p

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
The execution layer implements [devp2p](https://github.com/ethereum/devp2p) as its communication protocol with nodes in the network. It includes various subprotocols and features: eth, snap, les, pip, wit.

Because libp2p (used by CL) was not ready when Ethereum was created, devp2p was created as Ethereum's own p2p protocol stack.
2 changes: 2 additions & 0 deletions docs/wiki/EL/el-clients.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Execution Layer Implementations

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
Resources covering all current and historical execution clients. Overview of client unique features of each client, architecture, guides and resources.

## Clients in production
Expand Down
7 changes: 7 additions & 0 deletions docs/wiki/EL/el-specs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Execution layer specification

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
Apart from the yellow paper and changes tracking in EIPs, the main specification of the execution layer is in [EL pyspec](https://github.com/ethereum/execution-specs).

This is executable specification used for client implementers as a reference and test generation tool. Learn more about it in [week 6](/eps/week6-dev.md) presentation.
5 changes: 4 additions & 1 deletion docs/wiki/dev/core-development.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Core development
The core Ethereum protocol (Layer 1) is continuously developed by the community through EIPs, which open up the possibility of introducing changes to the base protocol.

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
The core Ethereum protocol is continuously developed by the community through EIPs, which open up the possibility of introducing changes to the base protocol.

Resources for aspiring core developers.
What is it like to work on the core protocol?
Expand Down
6 changes: 5 additions & 1 deletion docs/wiki/dev/cs-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,14 @@
- 🎥 [Berkeley CS 61A: Structure and Interpretation of Computer Programs](https://cs61a.org/)
- 🎥 [Parallel Programming](https://www.coursera.org/learn/scala-parallel-programming)
- 🎥 [Compilers](https://www.edx.org/course/compilers)
- [Mastering programming](https://tidyfirst.substack.com/p/mastering-programming)
- 📄 [Awesome c++ (or C)](https://github.com/fffaraz/awesome-cpp)
- 📄 [Awesome go](https://github.com/avelino/awesome-go)
- 📄 [Awesome rust](https://github.com/rust-unofficial/awesome-rust)
- 📄 [Awesome javascript](https://github.com/sorrycc/awesome-javascript)
- 📄 [Awesome python](https://github.com/vinta/awesome-python)
- 🎥 [George Hotz | Programming | rewriting linearizer (tinygrad) | Day In The Life Of A Software Engineer](https://www.youtube.com/watch?v=R-Xr1JRF6bY)


## Networking

Expand Down Expand Up @@ -76,7 +79,8 @@

- 🎥 [The Missing Semester of Your CS Education | MIT](https://missing.csail.mit.edu/)
- 🎥 [The Unix Workbench | Johns Hopkins](https://www.coursera.org/learn/unix)

- 📄 [Git tips and tricks](https://blog.gitbutler.com/git-tips-and-tricks/)
- 📄 [Popular Git config options](https://jvns.ca/blog/2024/02/16/popular-git-config-options/)
## Misc

- 📄 [Things Every Programmer Should Know](https://github.com/mtdvio/every-programmer-should-know)
Expand Down
11 changes: 0 additions & 11 deletions docs/wiki/dev/developer-resources.md

This file was deleted.

2 changes: 2 additions & 0 deletions docs/wiki/dev/pm.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Core development coordination

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
Because of the approach of client diversity and decentralization, Ethereum core development is spread across many teams from various organizations. Roughly estimated, there is around 200+ client developers, researchers, testers and other contributors split across ~20 teams.

To effectively maintain and implement various initiatives affecting the Ethereum protocol, all of these people need be able to reach consensus and collaborate in a productive manner. Generally, this is possible thanks to free and open source nature of Ethereum and it's design and development based unix philosophy but still requires lot of coordination work.
Expand Down
Empty file removed docs/wiki/dev/upgrades.md
Empty file.
13 changes: 13 additions & 0 deletions docs/wiki/protocol/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Protocol Architecture Overview

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
The current protocol architecture is a result of years of evolution. The protocol consists of 2 main parts - execution and consensus layer. The execution layer (EL) handles the actual transactions and user interactions, it's where the global computer executes its programs. The consensus layer (CL) provides the proof-of-stake consensus mechanism - a cryptoeconomic security making sure all nodes follow the same tip and drives the canonical chain of execution layer.

In practice, these layers are implemented in its own clients connected via API. Each have their own p2p network handling different kind of data.

![](./img/clients-overview.png)

Looking under the hood of each client, they consists of many fundamental functions:

![](./img/protocol-overview.png)
9 changes: 6 additions & 3 deletions docs/wiki/protocol/design-rationale.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Protocol Design Philosophy

Page covering development philosophy and design rationale of the protocol.
> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
https://vitalik.eth.limo/general/2022/02/28/complexity.html
https://web.archive.org/web/20211121044757/https://ethereumbuilders.gitbooks.io/guide/content/en/design_rationale.html
The Ethereum protocol evolves and changes over time but it always follow certain principles. These principles reflect values of the whole community and are reflected in some of the main design decisions of Ethereum.

- https://web.archive.org/web/20211121044757/https://ethereumbuilders.gitbooks.io/guide/content/en/design_rationale.html

- https://vitalik.eth.limo/general/2022/02/28/complexity.html
6 changes: 4 additions & 2 deletions docs/wiki/protocol/history.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# History
# Protocol history and evolution

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
This page highlights important technical changes in the history of Ethereum protocol.

Expand All @@ -8,7 +10,7 @@ Useful links: [Overview from Ethereum.org](https://ethereum.org/en/history) and

TODO

## The Merge.
## The Merge

On September 15, 2022, Ethereum activated [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) and upgraded the consensus mechanism to proof-of-stake through an event known as The Merge. The Merge has resulted in the deprecation of the proof-of-work consensus, which was previously implemented in the same logic layer as execution. Instead, it has been replaced by a more complex and sophisticated proof-of-stake consensus that eliminates the need for energy-intensive mining. New proof-of-stake consensus has been implemented in its own layer with a separate p2p network and logic, also know as Beacon Chain. The Beacon Chain has been running and achieving consensus since December 1st, 2020. After a prolonged period of consistent performance without any failures, it was deemed ready to become Ethereum's consensus provider. The Merge gets its name from the union of the two networks.

Expand Down
Binary file added docs/wiki/protocol/img/clients-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/wiki/protocol/img/protocol-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/wiki/testing/hive.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Hive testing

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
Hive is and end-to-end testing harness enabling to spin up various clients in a single network with different testing scenarios (simulations).

https://github.com/ethereum/hive
2 changes: 2 additions & 0 deletions docs/wiki/testing/incidents.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Notable mainnet incidents

> :warning: This article is a [stub](https://en.wikipedia.org/wiki/Wikipedia:Stub), help the wiki by [contributing](/contributing.md) and expanding it.
- [Post-Mortem Report: Ethereum Mainnet Finality (05/11/2023)](https://medium.com/offchainlabs/post-mortem-report-ethereum-mainnet-finality-05-11-2023-95e271dfd8b2)
- [Minority split 2021-08-27 post mortem](https://github.com/ethereum/go-ethereum/blob/master/docs/postmortems/2021-08-22-split-postmortem.md)
12 changes: 7 additions & 5 deletions wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ blocksize
bloXroute
bloXroute's
BLS
Bogotá
Boneh
bool
bootup
Expand Down Expand Up @@ -238,9 +239,9 @@ Goomy
Goron
Gorondan
gpg
Grafana
gradle
gradlew
Grafana
Grandine
Guillaume
hackmd
Expand Down Expand Up @@ -317,9 +318,9 @@ mainnet
Mana
Mário
mathbb
MDS
mdbx
MDBX
MDS
meldsun
mem
Mempool
Expand Down Expand Up @@ -392,6 +393,7 @@ permissionless
permissionlessness
PGA
Pilipovic
PKCS
Playdate
pmod
POC
Expand All @@ -400,7 +402,6 @@ Potuz's
POV
PQ
PQC
PKCS
PQCA
pre
precompile
Expand Down Expand Up @@ -499,8 +500,8 @@ SNARKify
socio
solvm
SPHINCS
src
Sproul
src
SSF
SSLE
SSTORE
Expand All @@ -515,6 +516,7 @@ stf
StreamEth
subnets
suboptimal
subprotocols
Summa
systemd
Takenobu
Expand All @@ -527,8 +529,8 @@ Tetris
textnormal
timeframe
tldr
TODO
TLS
TODO
TPS
tracoor
Tracoor
Expand Down

0 comments on commit e152041

Please sign in to comment.