Skip to content

Commit 3c028dc

Browse files
authored
Merge pull request #4163 from ethereum/dev
Release v1.5.0-beta.3
2 parents b3e83f6 + 95c3fba commit 3c028dc

File tree

98 files changed

+1414
-359
lines changed

Some content is hidden

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

98 files changed

+1414
-359
lines changed

.circleci/config.yml

Lines changed: 8 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,7 @@ 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
182182
- store_test_results:
183183
path: tests/core/pyspec/test-reports
184184
lint:
@@ -224,7 +224,7 @@ workflows:
224224
- test-fulu:
225225
requires:
226226
- install_pyspec_test
227-
- test-whisk:
227+
- test-eip7441:
228228
requires:
229229
- install_pyspec_test
230230
- lint:

.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"]
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: 1 addition & 1 deletion
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> |

configs/mainnet.yaml

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ ELECTRA_FORK_EPOCH: 18446744073709551615 # temporary stub
5656
# Fulu
5757
FULU_FORK_VERSION: 0x06000000
5858
FULU_FORK_EPOCH: 18446744073709551615 # temporary stub
59-
# WHISK
60-
WHISK_FORK_VERSION: 0x08000000 # temporary stub
61-
WHISK_FORK_EPOCH: 18446744073709551615
59+
# EIP7441
60+
EIP7441_FORK_VERSION: 0x08000000 # temporary stub
61+
EIP7441_FORK_EPOCH: 18446744073709551615
6262
# EIP7732
6363
EIP7732_FORK_VERSION: 0x09000000 # temporary stub
6464
EIP7732_FORK_EPOCH: 18446744073709551615
@@ -175,11 +175,14 @@ BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000
175175
MAX_BLOBS_PER_BLOCK_FULU: 12
176176
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096
177177

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

184182
# EIP7732
185183
MAX_REQUEST_PAYLOADS: 128
184+
185+
# EIP7805
186+
ATTESTATION_DEADLINE: 4
187+
PROPOSER_INCLUSION_LIST_CUT_OFF: 11
188+
VIEW_FREEZE_DEADLINE: 9

configs/minimal.yaml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ ELECTRA_FORK_EPOCH: 18446744073709551615
5555
# Fulu
5656
FULU_FORK_VERSION: 0x06000001
5757
FULU_FORK_EPOCH: 18446744073709551615
58-
# WHISK
59-
WHISK_FORK_VERSION: 0x08000001
60-
WHISK_FORK_EPOCH: 18446744073709551615
58+
# EIP7441
59+
EIP7441_FORK_VERSION: 0x08000001
60+
EIP7441_FORK_EPOCH: 18446744073709551615
6161
# EIP7732
6262
EIP7732_FORK_VERSION: 0x09000001
6363
EIP7732_FORK_EPOCH: 18446744073709551615
@@ -176,9 +176,14 @@ BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000
176176
MAX_BLOBS_PER_BLOCK_FULU: 12
177177
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096
178178

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

183183
# EIP7732
184184
MAX_REQUEST_PAYLOADS: 128
185+
186+
# EIP7805
187+
ATTESTATION_DEADLINE: 2
188+
PROPOSER_INCLUSION_LIST_CUT_OFF: 5
189+
VIEW_FREEZE_DEADLINE: 3
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
# Mainnet preset - Whisk
1+
# Mainnet preset - EIP7441
22

33
# Misc
44
# ---------------------------------------------------------------
55
# `uint64(4)`
66
CURDLEPROOFS_N_BLINDERS: 4
77
# `uint64(2**14)`
8-
WHISK_CANDIDATE_TRACKERS_COUNT: 16384
9-
# `uint64(2**13)` must be < WHISK_CANDIDATE_TRACKERS_COUNT
10-
WHISK_PROPOSER_TRACKERS_COUNT: 8192
8+
CANDIDATE_TRACKERS_COUNT: 16384
9+
# `uint64(2**13)` must be < CANDIDATE_TRACKERS_COUNT
10+
PROPOSER_TRACKERS_COUNT: 8192
1111
# `uint64(2**7 - CURDLEPROOFS_N_BLINDERS)`
12-
WHISK_VALIDATORS_PER_SHUFFLE: 124
12+
VALIDATORS_PER_SHUFFLE: 124
1313
# `uint64(2**15)` TODO: will be replaced by a fix format once there's a serialized format
14-
WHISK_MAX_SHUFFLE_PROOF_SIZE: 32768
14+
MAX_SHUFFLE_PROOF_SIZE: 32768
1515
# `uint64(2**10)` TODO: will be replaced by a fix format once there's a serialized format
16-
WHISK_MAX_OPENING_PROOF_SIZE: 1024
16+
MAX_OPENING_PROOF_SIZE: 1024
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
# Minimal preset - Whisk
1+
# Minimal preset - EIP7441
22

33
# Misc
44
# ---------------------------------------------------------------
55
# [customized]
66
CURDLEPROOFS_N_BLINDERS: 4
77
# [customized]
8-
WHISK_CANDIDATE_TRACKERS_COUNT: 32
8+
CANDIDATE_TRACKERS_COUNT: 32
99
# [customized]
10-
WHISK_PROPOSER_TRACKERS_COUNT: 16
10+
PROPOSER_TRACKERS_COUNT: 16
1111
# [customized]
12-
WHISK_VALIDATORS_PER_SHUFFLE: 4
12+
VALIDATORS_PER_SHUFFLE: 4
1313
# `uint64(2**15)` TODO: will be replaced by a fix format once there's a serialized format
14-
WHISK_MAX_SHUFFLE_PROOF_SIZE: 32768
14+
MAX_SHUFFLE_PROOF_SIZE: 32768
1515
# `uint64(2**10)` TODO: will be replaced by a fix format once there's a serialized format
16-
WHISK_MAX_OPENING_PROOF_SIZE: 1024
16+
MAX_OPENING_PROOF_SIZE: 1024

pysetup/constants.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
ELECTRA = 'electra'
88
FULU = 'fulu'
99
EIP6800 = 'eip6800'
10-
WHISK = 'whisk'
10+
EIP7441 = 'eip7441'
1111
EIP7732 = 'eip7732'
12+
EIP7805 = 'eip7805'
1213

1314

1415
# The helper functions that are used when defining constants

0 commit comments

Comments
 (0)