Ethereum Proof-of-Stake Consensus Specifications
CC0-1.0 License
To learn more about proof-of-stake and sharding, see the PoS documentation, sharding documentation and the research compendium.
This repository hosts the current Ethereum proof-of-stake specifications. Discussions about design rationale and proposed changes can be brought up and discussed as issues. Solidified, agreed-upon changes to the spec can be made through pull requests.
Core specifications for Ethereum proof-of-stake clients can be found in specs. These are divided into features. Features are researched and developed in parallel, and then consolidated into sequential upgrades when ready.
Seq. | Code Name | Fork Epoch | Specs |
---|---|---|---|
0 | Phase0 | 0 |
CoreThe beacon chainDeposit contractBeacon chain fork choiceAdditionsHonest validator guideP2P networkingWeak subjectivity |
1 | Altair | 74240 |
CoreBeacon chain changesAltair forkAdditionsLight client sync protocol (full node, light client, networking)Honest validator guide changesP2P networking |
2 | Bellatrix ("The Merge") | 144896 |
CoreBeacon Chain changesBellatrix forkFork choice changesAdditionsHonest validator guide changesP2P networking |
3 | Capella | 194048 |
CoreBeacon chain changesCapella forkAdditionsLight client sync protocol changes (fork, full node, networking)Validator additionsP2P networking |
4 | Deneb | 269568 |
CoreBeacon Chain changesDeneb forkPolynomial commitmentsFork choice changesAdditionsLight client sync protocol changes (fork, full node, networking)Honest validator guide changesP2P networking |
Code Name or Topic | Specs | Notes |
---|---|---|
Electra | CoreBeacon Chain changesEIP-6110 forkAdditionsLight client sync protocol changes (fork, full node, networking)Honest validator guide changes | |
Sharding (outdated) | CoreBeacon Chain changesAdditionsP2P networking | |
Custody Game (outdated) | CoreBeacon Chain changesAdditionsHonest validator guide changes | Dependent on sharding |
Data Availability Sampling (outdated) | CoreCore types and functionsFork choice changesAdditionsP2P NetworkingSampling process | Dependent on shardingTechnical explainer |
Additional specifications and standards outside of requisite client functionality can be found in the following repos:
The following are the broad design goals for the Ethereum proof-of-stake consensus specifications:
O(C)
resources to process/validate O(1)
shards (including any system level validation such as the beacon chain)Documentation on the different components used during spec writing can be found here:
master
branch)Conformance tests built from the executable python spec are available in the Ethereum Proof-of-Stake Consensus Spec Tests repo. Compressed tarballs are available in releases.
The consensus-specs repo can be used by running the tests locally or inside a docker container.
To run the tests locally:
git clone https://github.com/ethereum/consensus-specs.git
cd consensus-specs
make install_test && make preinstallation && make pyspec
make citest
To run the tests inside a docker container:
cd scripts
./build_run_docker_tests.sh
./testResults
./build_run_docker_tests.sh --h