Skip to content

Commit da45c73

Browse files
committed
Merge remote-tracking branch 'origin/dev' into distributed-blob-publishing
# Conflicts: # specs/deneb/p2p-interface.md
2 parents 7a5dae9 + ff99bc0 commit da45c73

File tree

137 files changed

+2573
-883
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

137 files changed

+2573
-883
lines changed

.circleci/config.yml

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ commands:
3535
description: "Restore the cache with pyspec keys"
3636
steps:
3737
- restore_cached_venv:
38-
venv_name: v33-pyspec
39-
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "pyproject.toml" }}-{{ python3 --version }}
38+
venv_name: v34-pyspec
39+
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "pyproject.toml" }}
4040
save_pyspec_cached_venv:
41-
description: Save a venv into a cache with pyspec keys"
41+
description: "Save a venv into a cache with pyspec keys"
4242
steps:
4343
- save_cached_venv:
44-
venv_name: v33-pyspec
45-
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "pyproject.toml" }}-{{ python3 --version }}
44+
venv_name: v34-pyspec
45+
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "pyproject.toml" }}
4646
venv_path: ./venv
4747
jobs:
4848
checkout_specs:
@@ -168,7 +168,7 @@ jobs:
168168
command: make test fork=fulu
169169
- store_test_results:
170170
path: tests/core/pyspec/test-reports
171-
test-whisk:
171+
test-eip7441:
172172
docker:
173173
- image: cimg/python:3.12-node
174174
working_directory: ~/specs-repo
@@ -178,7 +178,20 @@ jobs:
178178
- restore_pyspec_cached_venv
179179
- run:
180180
name: Run py-tests
181-
command: make test fork=whisk
181+
command: make test fork=eip7441
182+
- store_test_results:
183+
path: tests/core/pyspec/test-reports
184+
test-eip7732:
185+
docker:
186+
- image: cimg/python:3.12-node
187+
working_directory: ~/specs-repo
188+
steps:
189+
- restore_cache:
190+
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
191+
- restore_pyspec_cached_venv
192+
- run:
193+
name: Run py-tests
194+
command: make test fork=eip7732
182195
- store_test_results:
183196
path: tests/core/pyspec/test-reports
184197
lint:
@@ -224,7 +237,10 @@ workflows:
224237
- test-fulu:
225238
requires:
226239
- install_pyspec_test
227-
- test-whisk:
240+
- test-eip7441:
241+
requires:
242+
- install_pyspec_test
243+
- test-eip7732:
228244
requires:
229245
- install_pyspec_test
230246
- lint:

.dockerignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

.github/workflows/run-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
needs: [lint]
6262
strategy:
6363
matrix:
64-
version: ["phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu", "whisk"]
64+
version: ["phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu", "eip7441", "eip7732"]
6565
steps:
6666
- name: Checkout repository
6767
uses: actions/checkout@v4

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ tests/core/pyspec/eth2spec/capella/
2424
tests/core/pyspec/eth2spec/deneb/
2525
tests/core/pyspec/eth2spec/electra/
2626
tests/core/pyspec/eth2spec/fulu/
27-
tests/core/pyspec/eth2spec/whisk/
2827
tests/core/pyspec/eth2spec/eip6800/
28+
tests/core/pyspec/eth2spec/eip7441/
2929
tests/core/pyspec/eth2spec/eip7732/
30+
tests/core/pyspec/eth2spec/eip7805/
3031

3132
# coverage reports
3233
.htmlcov

Makefile

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ ALL_EXECUTABLE_SPEC_NAMES = \
1010
deneb \
1111
electra \
1212
fulu \
13-
whisk \
1413
eip6800 \
15-
eip7732
14+
eip7441 \
15+
eip7732 \
16+
eip7805
1617

1718
# A list of fake targets.
1819
.PHONY: \
@@ -73,10 +74,12 @@ PYSPEC_DIR = $(TEST_LIBS_DIR)/pyspec
7374

7475
# Create the pyspec for all phases.
7576
pyspec: $(VENV) setup.py pyproject.toml
76-
@echo "Building eth2spec"
7777
@$(PYTHON_VENV) -m uv pip install --reinstall-package=eth2spec .[docs,lint,test,generator]
78-
@echo "Building all pyspecs"
79-
@$(PYTHON_VENV) setup.py pyspecdev
78+
@for dir in $(ALL_EXECUTABLE_SPEC_NAMES); do \
79+
mkdir -p "./tests/core/pyspec/eth2spec/$$dir"; \
80+
cp "./build/lib/eth2spec/$$dir/mainnet.py" "./tests/core/pyspec/eth2spec/$$dir/mainnet.py"; \
81+
cp "./build/lib/eth2spec/$$dir/minimal.py" "./tests/core/pyspec/eth2spec/$$dir/minimal.py"; \
82+
done
8083

8184
###############################################################################
8285
# Testing
@@ -240,12 +243,16 @@ gen_all: $(GENERATOR_TARGETS)
240243

241244
# Detect errors in generators.
242245
detect_errors: $(TEST_VECTOR_DIR)
243-
@find $(TEST_VECTOR_DIR) -name "INCOMPLETE"
246+
@incomplete_files=$$(find $(TEST_VECTOR_DIR) -name "INCOMPLETE"); \
247+
if [ -n "$$incomplete_files" ]; then \
248+
echo "[ERROR] incomplete detected"; \
249+
exit 1; \
250+
fi
244251
@if [ -f $(GENERATOR_ERROR_LOG_FILE) ]; then \
245252
echo "[ERROR] $(GENERATOR_ERROR_LOG_FILE) file exists"; \
246-
else \
247-
echo "[PASSED] error log file does not exist"; \
253+
exit 1; \
248254
fi
255+
@echo "[PASSED] no errors detected"
249256

250257
# Generate KZG trusted setups for testing.
251258
kzg_setups: pyspec
@@ -263,4 +270,4 @@ kzg_setups: pyspec
263270

264271
# Delete all untracked files.
265272
clean:
266-
@git clean -fdx
273+
@git clean -fdx

README.md

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Features are researched and developed in parallel, and then consolidated into se
1818
| Seq. | Code Name | Fork Epoch | Specs |
1919
| - | - | - | - |
2020
| 0 | **Phase0** |`0` | <ul><li>Core</li><ul><li>[The beacon chain](specs/phase0/beacon-chain.md)</li><li>[Deposit contract](specs/phase0/deposit-contract.md)</li><li>[Beacon chain fork choice](specs/phase0/fork-choice.md)</li></ul><li>Additions</li><ul><li>[Honest validator guide](specs/phase0/validator.md)</li><li>[P2P networking](specs/phase0/p2p-interface.md)</li><li>[Weak subjectivity](specs/phase0/weak-subjectivity.md)</li></ul></ul> |
21-
| 1 | **Altair** | `74240` | <ul><li>Core</li><ul><li>[Beacon chain changes](specs/altair/beacon-chain.md)</li><li>[Altair fork](specs/altair/fork.md)</li></ul><li>Additions</li><ul><li>[Light client sync protocol](specs/altair/light-client/sync-protocol.md) ([full node](specs/altair/light-client/full-node.md), [light client](specs/altair/light-client/light-client.md), [networking](specs/altair/light-client/p2p-interface.md))</li><li>[Honest validator guide changes](specs/altair/validator.md)</li><li>[P2P networking](specs/altair/p2p-interface.md)</li></ul></ul> |
21+
| 1 | **Altair** | `74240` | <ul><li>Core</li><ul><li>[Beacon chain changes](specs/altair/beacon-chain.md)</li><li>[Altair fork](specs/altair/fork.md)</li></ul><li>Additions</li><ul><li>[Light client sync protocol](specs/altair/light-client/sync-protocol.md) ([full node](specs/altair/light-client/full-node.md), [light client](specs/altair/light-client/light-client.md), [networking](specs/altair/light-client/p2p-interface.md))</li><li>[Honest validator guide changes](specs/altair/validator.md)</li><li>[P2P networking](specs/altair/p2p-interface.md)</li></ul></ul> |
2222
| 2 | **Bellatrix** <br/> (["The Merge"](https://ethereum.org/en/upgrades/merge/)) | `144896` | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/bellatrix/beacon-chain.md)</li><li>[Bellatrix fork](specs/bellatrix/fork.md)</li><li>[Fork choice changes](specs/bellatrix/fork-choice.md)</li></ul><li>Additions</li><ul><li>[Honest validator guide changes](specs/bellatrix/validator.md)</li><li>[P2P networking](specs/bellatrix/p2p-interface.md)</li></ul></ul> |
2323
| 3 | **Capella** | `194048` | <ul><li>Core</li><ul><li>[Beacon chain changes](specs/capella/beacon-chain.md)</li><li>[Capella fork](specs/capella/fork.md)</li></ul><li>Additions</li><ul><li>[Light client sync protocol changes](specs/capella/light-client/sync-protocol.md) ([fork](specs/capella/light-client/fork.md), [full node](specs/capella/light-client/full-node.md), [networking](specs/capella/light-client/p2p-interface.md))</li><li>[Validator additions](specs/capella/validator.md)</li><li>[P2P networking](specs/capella/p2p-interface.md)</li></ul></ul> |
2424
| 4 | **Deneb** | `269568` | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/deneb/beacon-chain.md)</li><li>[Deneb fork](specs/deneb/fork.md)</li><li>[Polynomial commitments](specs/deneb/polynomial-commitments.md)</li><li>[Fork choice changes](specs/deneb/fork-choice.md)</li></ul><li>Additions</li><ul><li>[Light client sync protocol changes](specs/deneb/light-client/sync-protocol.md) ([fork](specs/deneb/light-client/fork.md), [full node](specs/deneb/light-client/full-node.md), [networking](specs/deneb/light-client/p2p-interface.md))</li><li>[Honest validator guide changes](specs/deneb/validator.md)</li><li>[P2P networking](specs/deneb/p2p-interface.md)</li></ul></ul> |
@@ -28,7 +28,7 @@ Features are researched and developed in parallel, and then consolidated into se
2828
| Seq. | Code Name | Fork Epoch | Specs |
2929
| - | - | - | - |
3030
| 5 | **Electra** | TBD | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/electra/beacon-chain.md)</li><li>[Electra fork](specs/electra/fork.md)</li></ul><li>Additions</li><ul><li>[Light client sync protocol changes](specs/electra/light-client/sync-protocol.md) ([fork](specs/electra/light-client/fork.md), [networking](specs/electra/light-client/p2p-interface.md))</li><li>[Honest validator guide changes](specs/electra/validator.md)</li><li>[P2P networking](specs/electra/p2p-interface.md)</li></ul></ul> |
31-
| 6 | **Fulu** | TBD | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/fulu/beacon-chain.md)</li><li>[Fulu fork](specs/fulu/fork.md)</li><li>[Data availability sampling core](specs/fulu/das-core.md)</li><li>[Polynomial commitments sampling](specs/fulu/polynomial-commitments-sampling.md)</li><li>[Fork choice changes](specs/fulu/fork-choice.md)</li></ul><li>Additions</li><ul><li>[P2P networking](specs/fulu/p2p-interface.md)</li><li>[Peer sampling](specs/fulu/peer-sampling.md)</li></ul></ul> |
31+
| 6 | **Fulu** | TBD | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/fulu/beacon-chain.md)</li><li>[Fulu fork](specs/fulu/fork.md)</li><li>[Data availability sampling core](specs/fulu/das-core.md)</li><li>[Polynomial commitments sampling](specs/fulu/polynomial-commitments-sampling.md)</li><li>[Fork choice changes](specs/fulu/fork-choice.md)</li></ul><li>Additions</li><ul><li>[Honest validator guide changes](specs/fulu/validator.md)</li><li>[P2P networking](specs/fulu/p2p-interface.md)</li><li>[Peer sampling](specs/fulu/peer-sampling.md)</li></ul></ul> |
3232

3333
### Accompanying documents can be found in [specs](specs) and include:
3434

@@ -75,15 +75,20 @@ Conformance tests built from the executable python spec are available in the [Et
7575

7676
## Installation and usage
7777

78-
The consensus-specs repo can be used by running the tests locally or inside a docker container.
78+
Clone the repository with:
7979

80-
To run the tests locally:
81-
- Clone the repository with `git clone https://github.com/ethereum/consensus-specs.git`
82-
- Switch to the directory `cd consensus-specs`
83-
- Run the tests with `make test`
80+
```bash
81+
git clone https://github.com/ethereum/consensus-specs.git
82+
```
8483

85-
To run the tests inside a docker container:
86-
- Switch to the directory with `cd scripts`
87-
- Run the script `./build_run_docker_tests.sh`
88-
- Find the results in a folder called `./testResults`
89-
- Find more ways to customize the script with `./build_run_docker_tests.sh --h`
84+
Switch to the directory:
85+
86+
```bash
87+
cd consensus-specs
88+
```
89+
90+
Run the tests:
91+
92+
```bash
93+
make test
94+
```

configs/mainnet.yaml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ PRESET_BASE: 'mainnet'
66
# Free-form short name of the network that this configuration applies to - known
77
# canonical network names include:
88
# * 'mainnet' - there can be only one
9-
# * 'prater' - testnet
9+
# * 'sepolia' - testnet
10+
# * 'holesky' - testnet
11+
# * 'hoodi' - testnet
1012
# Must match the regex: [a-z0-9\-]
1113
CONFIG_NAME: 'mainnet'
1214

@@ -56,9 +58,9 @@ ELECTRA_FORK_EPOCH: 18446744073709551615 # temporary stub
5658
# Fulu
5759
FULU_FORK_VERSION: 0x06000000
5860
FULU_FORK_EPOCH: 18446744073709551615 # temporary stub
59-
# WHISK
60-
WHISK_FORK_VERSION: 0x08000000 # temporary stub
61-
WHISK_FORK_EPOCH: 18446744073709551615
61+
# EIP7441
62+
EIP7441_FORK_VERSION: 0x08000000 # temporary stub
63+
EIP7441_FORK_EPOCH: 18446744073709551615
6264
# EIP7732
6365
EIP7732_FORK_VERSION: 0x09000000 # temporary stub
6466
EIP7732_FORK_EPOCH: 18446744073709551615
@@ -175,11 +177,14 @@ BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000
175177
MAX_BLOBS_PER_BLOCK_FULU: 12
176178
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096
177179

178-
# Whisk
179-
# `Epoch(2**8)`
180-
WHISK_EPOCHS_PER_SHUFFLING_PHASE: 256
181-
# `Epoch(2)`
182-
WHISK_PROPOSER_SELECTION_GAP: 2
180+
# EIP7441
181+
EPOCHS_PER_SHUFFLING_PHASE: 256
182+
PROPOSER_SELECTION_GAP: 2
183183

184184
# EIP7732
185185
MAX_REQUEST_PAYLOADS: 128
186+
187+
# EIP7805
188+
ATTESTATION_DEADLINE: 4
189+
PROPOSER_INCLUSION_LIST_CUT_OFF: 11
190+
VIEW_FREEZE_DEADLINE: 9

configs/minimal.yaml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ PRESET_BASE: 'minimal'
55

66
# Free-form short name of the network that this configuration applies to - known
77
# canonical network names include:
8-
# * 'mainnet' - there can be only one
9-
# * 'prater' - testnet
8+
# * 'minimal' - spec-testing
109
# Must match the regex: [a-z0-9\-]
1110
CONFIG_NAME: 'minimal'
1211

@@ -55,9 +54,9 @@ ELECTRA_FORK_EPOCH: 18446744073709551615
5554
# Fulu
5655
FULU_FORK_VERSION: 0x06000001
5756
FULU_FORK_EPOCH: 18446744073709551615
58-
# WHISK
59-
WHISK_FORK_VERSION: 0x08000001
60-
WHISK_FORK_EPOCH: 18446744073709551615
57+
# EIP7441
58+
EIP7441_FORK_VERSION: 0x08000001
59+
EIP7441_FORK_EPOCH: 18446744073709551615
6160
# EIP7732
6261
EIP7732_FORK_VERSION: 0x09000001
6362
EIP7732_FORK_EPOCH: 18446744073709551615
@@ -176,9 +175,14 @@ BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000
176175
MAX_BLOBS_PER_BLOCK_FULU: 12
177176
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096
178177

179-
# Whisk
180-
WHISK_EPOCHS_PER_SHUFFLING_PHASE: 4
181-
WHISK_PROPOSER_SELECTION_GAP: 1
178+
# EIP7441
179+
EPOCHS_PER_SHUFFLING_PHASE: 4
180+
PROPOSER_SELECTION_GAP: 1
182181

183182
# EIP7732
184183
MAX_REQUEST_PAYLOADS: 128
184+
185+
# EIP7805
186+
ATTESTATION_DEADLINE: 2
187+
PROPOSER_INCLUSION_LIST_CUT_OFF: 5
188+
VIEW_FREEZE_DEADLINE: 3

docker/Dockerfile

Lines changed: 0 additions & 19 deletions
This file was deleted.

docker/README.md

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)