Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v1.5.0-alpha.9 #3982

Merged
merged 192 commits into from
Nov 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
192 commits
Select commit Hold shift + click to select a range
f5fb78d
Encode empty hex-string with quotes
jtraglia May 7, 2024
f975387
p2p: Deprecate TTFB, RESP_TIMEOUT, introduce rate limiting recommenda…
arnetheduck May 14, 2024
f349bfc
lint
arnetheduck May 21, 2024
e4919d7
Update specs/phase0/p2p-interface.md
arnetheduck May 22, 2024
e872fdb
engine_getBlobV1_clarifications
tbenr Aug 2, 2024
09966cd
fix method name
tbenr Aug 2, 2024
6f21915
typo
tbenr Aug 2, 2024
99bf3c1
Avoid generating empty transactions in tests
etan-status Aug 14, 2024
e1eaa7f
Synchronously check all `transactions` to have non-zero length
etan-status Aug 14, 2024
647a45d
Rebase eip7594 onto Electra
jtraglia Aug 21, 2024
b24d53f
Fix comment
jtraglia Aug 22, 2024
bf6f0ce
Merge remote-tracking branch 'origin/dev' into rebase-eip7594-onto-el…
jtraglia Aug 22, 2024
08e020e
remove timeout constants
arnetheduck Aug 23, 2024
0b95012
Separate type for unaggregated network attestations
arnetheduck Aug 26, 2024
5761fb4
update list of checks
arnetheduck Aug 28, 2024
0833551
spelling
arnetheduck Aug 28, 2024
d61f95e
Fix blob transaction serialization to use RLP
etan-status Aug 28, 2024
9d53bb9
Merge branch 'dev' into bf-emptytx
etan-status Sep 19, 2024
c746890
Merge branch 'dev' into bf-emptytxspec
etan-status Sep 19, 2024
0c5549e
Merge branch 'dev' into df-rlptx
etan-status Sep 19, 2024
1c529a8
use SingleAttestation in honest validator spec
arnetheduck Sep 20, 2024
9bef69c
Merge remote-tracking branch 'origin/dev' into single-attestation
arnetheduck Sep 20, 2024
768fb45
merge cleanup
arnetheduck Sep 20, 2024
223d734
Move deposit contract rules to its own Makefile
jtraglia Sep 23, 2024
01793e5
Update README and CI workflow
jtraglia Sep 23, 2024
f1d23eb
update
tbenr Oct 2, 2024
37d6d37
fix typos
tbenr Oct 2, 2024
2acf362
fix toc
tbenr Oct 2, 2024
918a394
remove usage in RPC serving sentence
tbenr Oct 2, 2024
63ad07b
typos
tbenr Oct 2, 2024
4531fe6
remove explicit reference to engine method
tbenr Oct 2, 2024
97db65e
remove another reference
tbenr Oct 2, 2024
911019c
constant for concurrent requests
arnetheduck Oct 2, 2024
456372e
two streams again
arnetheduck Oct 3, 2024
edd7377
apply suggestions
tbenr Oct 3, 2024
2612f7f
rephrasing
tbenr Oct 3, 2024
a96065c
clarification
tbenr Oct 3, 2024
5b93d6a
improvement
tbenr Oct 3, 2024
7c31b3e
Update specs/deneb/p2p-interface.md
tbenr Oct 4, 2024
96fbfcb
Update specs/electra/p2p-interface.md
arnetheduck Oct 7, 2024
8f044ab
EIP-7594: Specify inclusion proof function to run.
nalepae Oct 7, 2024
34510e3
Merge branch 'dev' into bf-emptytx
etan-status Oct 9, 2024
1e96d23
Merge branch 'dev' into bf-emptytxspec
etan-status Oct 9, 2024
1ecf334
Merge branch 'dev' into df-rlptx
etan-status Oct 9, 2024
a5d4577
In README, move outdated specs to new section
jtraglia Oct 9, 2024
afdf563
Remove "(outdated)" from names
jtraglia Oct 9, 2024
d966188
Use same table format for stable & in-development specs
jtraglia Oct 9, 2024
d1bca1e
Change "EIP-6110 fork" to "Electra fork"
jtraglia Oct 9, 2024
bf49f53
Add electra p2p networking changes to additions
jtraglia Oct 9, 2024
8630a44
Delete extra unordered list in capella/deneb/electra
jtraglia Oct 9, 2024
03655ae
Make Electra bold
jtraglia Oct 9, 2024
6e18e70
Add missing space
jtraglia Oct 9, 2024
72f5190
Fix lint
jtraglia Oct 9, 2024
81a0f43
Fix invalid file references in markdown files
jtraglia Oct 9, 2024
8cfe8fb
Re-order kzg tests
jtraglia Oct 9, 2024
9752a1c
Merge pull request #3904 from etan-status/df-rlptx
jtraglia Oct 9, 2024
3011727
Updated validator spec with rules for including execution requests in…
lucassaldanha Oct 9, 2024
1a2ff47
Fix indexes
lucassaldanha Oct 9, 2024
a3153a5
Add deserialize fn
lucassaldanha Oct 10, 2024
5eb77c2
fix deserialize typing
lucassaldanha Oct 10, 2024
cd51168
fix toc
lucassaldanha Oct 10, 2024
16e6085
Change list -> List
lucassaldanha Oct 10, 2024
bc3ee13
Yet another change list -> List
lucassaldanha Oct 10, 2024
2a163ad
Fix lint errors
lucassaldanha Oct 10, 2024
04a40d2
Use Sequence for serialized execution requests
jtraglia Oct 10, 2024
5e9d27d
Use Sequence in NoopExecutionEngine too
jtraglia Oct 10, 2024
0ecc871
Update deserialize() definition
jtraglia Oct 10, 2024
6bbe3ae
Merge pull request #3973 from jtraglia/outdated-specs
jtraglia Oct 10, 2024
f9ae4c5
Clarify execution requests return
jtraglia Oct 10, 2024
83c04b8
Capitalize SSZ
jtraglia Oct 10, 2024
6416a56
Add ssz_{de,}serialize aliases
jtraglia Oct 10, 2024
a2e16c8
Merge pull request #3976 from lucassaldanha/update-validator-electra
jtraglia Oct 11, 2024
c051f4f
Fix validator fields in get_validator_from_deposit
jtraglia Oct 11, 2024
5fa7791
Merge pull request #3975 from jtraglia/fix-invalid-file-references
jtraglia Oct 14, 2024
179cde6
Add new `check_mods` function for generators (#3970)
jtraglia Oct 14, 2024
8a22776
Also install preinstallation requirements
jtraglia Oct 14, 2024
7922b62
Merge pull request #3940 from jtraglia/move-depcon-make-rules
jtraglia Oct 14, 2024
da3b23a
Merge pull request #3978 from jtraglia/fix-new-validator-order
jtraglia Oct 14, 2024
dcdf30e
Bugfix and more withdrawal tests
mkalinin Oct 16, 2024
5b55e95
Update specs/deneb/p2p-interface.md
tbenr Oct 16, 2024
71b995c
Update specs/deneb/p2p-interface.md
tbenr Oct 16, 2024
cb837f2
Update specs/deneb/p2p-interface.md
tbenr Oct 16, 2024
6c99b0b
Update p2p-interface.md
tbenr Oct 16, 2024
1767c34
Update specs/deneb/p2p-interface.md
tbenr Oct 16, 2024
9787a61
Update specs/deneb/p2p-interface.md
tbenr Oct 16, 2024
62a3d1e
Apply suggestions by @jtraglia
mkalinin Oct 17, 2024
778a32a
Add missing withdrawal requests tests
mkalinin Oct 17, 2024
792cb18
Add more process_attestation tests
mkalinin Oct 17, 2024
f4a7f02
Apply suggestions by @jtraglia
mkalinin Oct 17, 2024
93496e3
Add remark about verify_data_column_sidecar
jtraglia Oct 17, 2024
96b1d31
Merge pull request #3963 from nalepae/patch-3
jtraglia Oct 17, 2024
8ce4418
Bump version to 1.5.0-alpha.9
jtraglia Oct 17, 2024
d64e537
Fix presets for process_attestation test
mkalinin Oct 18, 2024
17f6454
Add tests for process_registry_updates
mkalinin Oct 18, 2024
2a06d91
Add more process_pending_consolidations tests
mkalinin Oct 18, 2024
84d7ba2
Fix linter
mkalinin Oct 18, 2024
a2f9b88
Add more pending deposit tests
mkalinin Oct 18, 2024
ba8c092
Add more checks to electra fork transition tests
mkalinin Oct 18, 2024
991ccd2
Add gen-collect-only CI check
jtraglia Oct 18, 2024
57bd0ae
Remove --collect-only & rebrand to modcheck
jtraglia Oct 18, 2024
c280e56
Remove print statement
jtraglia Oct 18, 2024
d2a9506
Clean up electra LC
ensi321 Oct 18, 2024
3748ac1
Remove full-node.md
ensi321 Oct 19, 2024
f588733
Fix all pytest warnings
jtraglia Oct 19, 2024
60cd223
Merge pull request #3987 from ensi321/clean-up-lc
jtraglia Oct 20, 2024
cdfe808
Add tests for operations on transition to electra
mkalinin Oct 20, 2024
aa5ebb3
Apply suggestions by @jtraglia
mkalinin Oct 20, 2024
44c1c31
Add consolidation tests for comp creds
mkalinin Oct 21, 2024
a232b25
language
arnetheduck Oct 21, 2024
8e8930c
Merge branch 'dev' into upgrade-to-electra-tests
mkalinin Oct 21, 2024
a6095bf
Update specs/deneb/beacon-chain.md
etan-status Oct 21, 2024
f58b5ba
Merge branch 'dev' into bf-emptytxspec
etan-status Oct 21, 2024
44d5a1b
Sync changes to Electra
etan-status Oct 21, 2024
5270d79
Use generalized op types for Electra transition tests
mkalinin Oct 21, 2024
0f964b0
Change "modified" to "new"
jtraglia Oct 21, 2024
eff1f6d
Merge pull request #3989 from jtraglia/fix-pytest-warnings
jtraglia Oct 21, 2024
526625d
Merge pull request #3893 from jtraglia/rebase-eip7594-onto-electra
jtraglia Oct 21, 2024
dba1179
Merge pull request #3981 from ethereum/bump-version-1
jtraglia Oct 21, 2024
82093dd
Revert some changes
jtraglia Oct 21, 2024
6de2e29
Upgrade pylint & split config files
jtraglia Oct 21, 2024
41882a7
Merge pull request #3991 from jtraglia/upgrade-pylint-split-ini-files
jtraglia Oct 21, 2024
f2e45fb
Simplify test helpers
mkalinin Oct 22, 2024
d53419b
Simplify test helpers, take 2
mkalinin Oct 22, 2024
d022a7f
Merge pull request #3884 from etan-status/bf-emptytx
jtraglia Oct 22, 2024
f5e976b
Merge branch 'ethereum:dev' into add-0x-quotes
jtraglia Oct 22, 2024
dc772a6
Add test_fork_pending_deposits_are_sorted test
jtraglia Oct 22, 2024
ff49b7f
Merge branch 'dev' into single-attestation
arnetheduck Oct 23, 2024
60343ae
Merge pull request #3754 from jtraglia/add-0x-quotes
jtraglia Oct 23, 2024
9507b86
Add one more validator
jtraglia Oct 23, 2024
3a4101b
Rename index vars in get_attesting_indices()
jtraglia Oct 23, 2024
087e737
Merge pull request #3995 from jtraglia/pending-deposits-are-sorted-test
jtraglia Oct 23, 2024
90ae0a4
Group pending types & request types
jtraglia Oct 24, 2024
734938c
Merge pull request #3996 from jtraglia/shadowed-index-var
jtraglia Oct 27, 2024
9849fb3
Merge pull request #3997 from jtraglia/group-types
jtraglia Oct 27, 2024
d763a6e
Merge branch 'dev' into single-attestation
arnetheduck Oct 29, 2024
f392a22
Merge pull request #3986 from jtraglia/gen-collect-only
jtraglia Oct 29, 2024
0c5a136
Exclude empty requests in requests list
jtraglia Oct 29, 2024
369b7e5
Fix table of contents
jtraglia Oct 29, 2024
2bd570c
Use assert instead of raise
jtraglia Oct 29, 2024
8a8a321
Fix indentation
jtraglia Oct 29, 2024
3ce2929
Simplify get_execution_requests
jtraglia Oct 29, 2024
4438166
Check for ascending order
jtraglia Oct 30, 2024
0ad0f4e
Append to pending deposits once in apply_deposit
jtraglia Oct 30, 2024
a5a6939
Delete useless comment
jtraglia Oct 30, 2024
076a0f1
Return without adding deposit if signature fails
jtraglia Oct 30, 2024
5a6121b
Fix indentation
jtraglia Oct 30, 2024
e90c792
Fix typo
jtraglia Oct 30, 2024
b3e77d2
Apply other stokes suggestion
jtraglia Oct 30, 2024
c7f7064
Merge pull request #3864 from tbenr/engine_getBlobV1-clarifications
jtraglia Oct 30, 2024
c060147
Merge pull request #3979 from mkalinin/more-withdrawal-tests
jtraglia Oct 30, 2024
dfb3ca6
Add new test
jtraglia Oct 30, 2024
276c562
Use less python sugar
jtraglia Oct 30, 2024
2c59da7
Delete new test & update run_deposit_processing
jtraglia Oct 30, 2024
31d4974
Add more exit checks to consolidation processing
mkalinin Oct 31, 2024
f169475
Merge pull request #3900 from status-im/single-attestation
jtraglia Oct 31, 2024
eb60227
Merge pull request #3767 from status-im/remove-ttfb
jtraglia Oct 31, 2024
09754f5
Apply suggestion from pop
jtraglia Oct 31, 2024
08cb828
Fix and add more attestation tests
mkalinin Nov 1, 2024
1b408e9
Merge pull request #4000 from mkalinin/consolidation-request-fix
jtraglia Nov 1, 2024
13bff62
Update initial earliest_exit_epoch calculation & add tests
jtraglia Nov 1, 2024
93d9ee6
Fix lint issue
jtraglia Nov 1, 2024
410b14f
Revert "Apply suggestion from pop"
jtraglia Nov 1, 2024
a3d4dba
Ensure non-zero bits for each aggregate committee
mkalinin Nov 4, 2024
2222c24
Run multiple committee tests with MINIMAL presets
mkalinin Nov 4, 2024
17feed7
Merge pull request #3999 from jtraglia/simplify-apply-deposit
jtraglia Nov 4, 2024
50f8fa6
Merge pull request #4001 from jtraglia/improve-initial-earliest-exit-…
jtraglia Nov 4, 2024
b4311fe
Merge pull request #3984 from mkalinin/epoch-processing-tests
jtraglia Nov 4, 2024
49b6840
Merge pull request #3980 from mkalinin/more-op-tests
jtraglia Nov 4, 2024
5653d73
Merge branch 'dev' into upgrade-to-electra-tests
jtraglia Nov 4, 2024
01d6ab1
Merge branch 'dev' into fix-committee-validation
mkalinin Nov 5, 2024
1afabf7
Rename index to committee_index in process_attestation
mkalinin Nov 5, 2024
a09d0c3
Merge pull request #3990 from mkalinin/upgrade-to-electra-tests
jtraglia Nov 5, 2024
ebbce03
Replace assert messages with comments
jtraglia Nov 6, 2024
62e6a30
Add `BLOB_SIDECAR_SUBNET_COUNT_EIP7594`, `MAX_BLOBS_PER_BLOCK_EIP7594…
hwwhww Nov 13, 2024
f67e6cc
update tests
hwwhww Nov 13, 2024
34918e9
Remove unnecessary modification
mkalinin Nov 18, 2024
ac53675
Fix some minor nits
jtraglia Nov 19, 2024
7b0b7df
Fix bug
jtraglia Nov 19, 2024
5753be7
Fix blobs cast
jtraglia Nov 19, 2024
af72bae
Merge pull request #4002 from mkalinin/fix-committee-validation
jtraglia Nov 20, 2024
ec9460d
Merge pull request #4008 from ethereum/eip7594-param
jtraglia Nov 20, 2024
abbfef5
Merge pull request #3885 from etan-status/bf-emptytxspec
jtraglia Nov 20, 2024
e472afd
Include requests_root in block_hash computation
jtraglia Nov 20, 2024
b1c9d27
Add comment to compute_requests_hash
jtraglia Nov 20, 2024
de52c76
Fix block hash computation for deposit transition tests
etan-status Nov 21, 2024
36b4979
Merge pull request #1 from etan-status/exclude-empty-requests
jtraglia Nov 22, 2024
15e3f15
Fix block hash computation for withdrawal sanity tests
etan-status Nov 22, 2024
bfe166c
Merge pull request #2 from etan-status/exclude-empty-requests
jtraglia Nov 22, 2024
6e95263
Clean up dead link and typo in LC docs for Electra
etan-status Nov 22, 2024
4aad8eb
Rename requests_root to requests_hash
jtraglia Nov 22, 2024
e5aba7b
Merge pull request #4019 from etan-status/lc-rmfull
jtraglia Nov 22, 2024
148ccca
Merge pull request #3998 from jtraglia/exclude-empty-requests
jtraglia Nov 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 0 additions & 92 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,6 @@ commands:
venv_name: v25-pyspec
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "requirements_preinstallation.txt" }}
venv_path: ./venv
restore_deposit_contract_tester_cached_venv:
description: "Restore the venv from cache for the deposit contract tester"
steps:
- restore_cached_venv:
venv_name: v23-deposit-contract-tester
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "requirements_preinstallation.txt" }}-{{ checksum "solidity_deposit_contract/web3_tester/requirements.txt" }}
save_deposit_contract_tester_cached_venv:
description: "Save the venv to cache for later use of the deposit contract tester"
steps:
- save_cached_venv:
venv_name: v23-deposit-contract-tester
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "requirements_preinstallation.txt" }}-{{ checksum "solidity_deposit_contract/web3_tester/requirements.txt" }}
venv_path: ./solidity_deposit_contract/web3_tester/venv
jobs:
checkout_specs:
docker:
Expand Down Expand Up @@ -226,71 +213,6 @@ jobs:
- run:
name: Run linter for test generators
command: make lint_generators
build_deposit_contract:
docker:
- image: ethereum/solc:0.6.11-alpine
steps:
- checkout
- run:
name: Install build essentials
command: |
apk update
apk add git make
- run:
name: Compile the contract
command: |
make compile_deposit_contract
git diff --color --exit-code
- persist_to_workspace:
root: .
paths:
- ./solidity_deposit_contract/deposit_contract.json
- ./build/combined.json
- ./solidity_deposit_contract/lib
test_deposit_contract:
docker:
- image: nixorg/nix:circleci
steps:
- checkout
- restore_cache:
key: nix-store-test-v2
- attach_workspace:
at: /tmp/
- run:
name: Test the contract
command: |
mkdir build
cp -r /tmp/build/* build
cp -r /tmp/solidity_deposit_contract/lib/* ./solidity_deposit_contract/lib
cp -r /tmp/solidity_deposit_contract/deposit_contract.json ./solidity_deposit_contract/deposit_contract.json
nix-shell --command 'make test_deposit_contract' ./solidity_deposit_contract/shell.nix
- save_cache:
key: nix-store-test-v2
paths:
- /nix
install_deposit_contract_web3_tester:
docker:
- image: cimg/python:3.12.4
working_directory: ~/specs-repo
steps:
- restore_cache:
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
- restore_deposit_contract_tester_cached_venv
- run:
name: Install deposit contract tester requirements
command: make install_deposit_contract_web3_tester
- save_deposit_contract_tester_cached_venv
test_deposit_contract_web3_tests:
docker:
- image: cimg/python:3.12.4
working_directory: ~/specs-repo
steps:
- restore_cache:
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
- restore_deposit_contract_tester_cached_venv
- run:
name: Run deposit contract test with web3.py
command: make test_deposit_contract_web3_tests
workflows:
version: 2.1
test_spec:
Expand Down Expand Up @@ -328,17 +250,3 @@ workflows:
- lint:
requires:
- install_pyspec_test
# NOTE: Since phase 0 has been launched, we disabled the deposit contract tests.
# - install_deposit_contract_web3_tester:
# requires:
# - checkout_specs
# - test_deposit_contract_web3_tests:
# requires:
# - install_deposit_contract_web3_tester
build_and_test_deposit_contract:
jobs:
- build_deposit_contract
# NOTE: Since phase 0 has been launched, we disabled the deposit contract tests.
# - test_deposit_contract:
# requires:
# - build_deposit_contract
15 changes: 15 additions & 0 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,18 @@ jobs:
with:
name: test-reports-${{ matrix.version }}
path: tests/core/pyspec/test-reports

gen-modcheck:
runs-on: [self-hosted-ghr-custom, size-s-x64, profile-consensusSpecs]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12.4'
cache: ''
- name: Install pyspec requirements
run: make install_test
- name: Run generators with --modcheck
run: make generate_tests modcheck=true
45 changes: 8 additions & 37 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@ ETH2SPEC_MODULE_DIR = $(PY_SPEC_DIR)/eth2spec
TEST_REPORT_DIR = $(PY_SPEC_DIR)/test-reports
TEST_VECTOR_DIR = ../consensus-spec-tests/tests
GENERATOR_DIR = ./tests/generators
SOLIDITY_DEPOSIT_CONTRACT_DIR = ./solidity_deposit_contract
SOLIDITY_DEPOSIT_CONTRACT_SOURCE = ${SOLIDITY_DEPOSIT_CONTRACT_DIR}/deposit_contract.sol
SOLIDITY_FILE_NAME = deposit_contract.json
DEPOSIT_CONTRACT_TESTER_DIR = ${SOLIDITY_DEPOSIT_CONTRACT_DIR}/web3_tester
CONFIGS_DIR = ./configs
TEST_PRESET_TYPE ?= minimal
# Collect a list of generator names
Expand Down Expand Up @@ -45,20 +41,12 @@ COV_HTML_OUT_DIR=$(PY_SPEC_DIR)/$(COV_HTML_OUT)
COV_INDEX_FILE=$(COV_HTML_OUT_DIR)/index.html

CURRENT_DIR = ${CURDIR}
LINTER_CONFIG_FILE = $(CURRENT_DIR)/linter.ini
GENERATOR_ERROR_LOG_FILE = $(CURRENT_DIR)/$(TEST_VECTOR_DIR)/testgen_error_log.txt

SCRIPTS_DIR = ${CURRENT_DIR}/scripts

export DAPP_SKIP_BUILD:=1
export DAPP_SRC:=$(SOLIDITY_DEPOSIT_CONTRACT_DIR)
export DAPP_LIB:=$(SOLIDITY_DEPOSIT_CONTRACT_DIR)/lib
export DAPP_JSON:=build/combined.json

.PHONY: clean partial_clean all test citest lint generate_tests pyspec install_test open_cov \
install_deposit_contract_tester test_deposit_contract install_deposit_contract_compiler \
compile_deposit_contract test_compile_deposit_contract check_toc \
detect_generator_incomplete detect_generator_error_log
check_toc detect_generator_incomplete detect_generator_error_log

all: $(PY_SPEC_ALL_TARGETS)

Expand Down Expand Up @@ -162,33 +150,16 @@ codespell:

lint: pyspec
. venv/bin/activate; cd $(PY_SPEC_DIR); \
flake8 --config $(LINTER_CONFIG_FILE) ./eth2spec \
&& python -m pylint --rcfile $(LINTER_CONFIG_FILE) $(PYLINT_SCOPE) \
&& python -m mypy --config-file $(LINTER_CONFIG_FILE) $(MYPY_SCOPE)
flake8 --config $(CURRENT_DIR)/flake8.ini ./eth2spec \
&& python -m pylint --rcfile $(CURRENT_DIR)/pylint.ini $(PYLINT_SCOPE) \
&& python -m mypy --config-file $(CURRENT_DIR)/mypy.ini $(MYPY_SCOPE)

lint_generators: pyspec
. venv/bin/activate; cd $(TEST_GENERATORS_DIR); \
flake8 --config $(LINTER_CONFIG_FILE)

compile_deposit_contract:
@cd $(SOLIDITY_DEPOSIT_CONTRACT_DIR)
@git submodule update --recursive --init
@solc --metadata-literal --optimize --optimize-runs 5000000 --bin --abi --combined-json=abi,bin,bin-runtime,srcmap,srcmap-runtime,ast,metadata,storage-layout --overwrite -o build $(SOLIDITY_DEPOSIT_CONTRACT_SOURCE) $(SOLIDITY_DEPOSIT_CONTRACT_DIR)/tests/deposit_contract.t.sol
@/bin/echo -n '{"abi": ' > $(SOLIDITY_FILE_NAME)
@cat build/DepositContract.abi >> $(SOLIDITY_FILE_NAME)
@/bin/echo -n ', "bytecode": "0x' >> $(SOLIDITY_FILE_NAME)
@cat build/DepositContract.bin >> $(SOLIDITY_FILE_NAME)
@/bin/echo -n '"}' >> $(SOLIDITY_FILE_NAME)

test_deposit_contract:
dapp test -v --fuzz-runs 5

install_deposit_contract_web3_tester:
cd $(DEPOSIT_CONTRACT_TESTER_DIR); python3 -m venv venv; . venv/bin/activate; python3 -m pip install -r requirements.txt
flake8 --config $(CURRENT_DIR)/flake8.ini

test_deposit_contract_web3_tests:
cd $(DEPOSIT_CONTRACT_TESTER_DIR); . venv/bin/activate; \
python3 -m pytest .
# If set to true, it will not run generator tests.
modcheck ?= false

# Runs a generator, identified by param 1
define run_generator
Expand All @@ -208,7 +179,7 @@ define run_generator
. venv/bin/activate; \
pip3 install ../../../dist/eth2spec-*.whl; \
pip3 install 'eth2spec[generator]'; \
python3 main.py -o $(CURRENT_DIR)/$(TEST_VECTOR_DIR); \
python3 main.py -o $(CURRENT_DIR)/$(TEST_VECTOR_DIR) $(if $(filter true,$(modcheck)),--modcheck); \
echo "generator $(1) finished"
endef

Expand Down
20 changes: 13 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ This repository hosts the current Ethereum proof-of-stake specifications. Discus

[![GitHub release](https://img.shields.io/github/v/release/ethereum/consensus-specs)](https://github.com/ethereum/consensus-specs/releases/) [![PyPI version](https://badge.fury.io/py/eth2spec.svg)](https://badge.fury.io/py/eth2spec) [![testgen](https://github.com/ethereum/consensus-specs/actions/workflows/generate_vectors.yml/badge.svg?branch=dev&event=schedule)](https://github.com/ethereum/consensus-specs/actions/workflows/generate_vectors.yml)

Core specifications for Ethereum proof-of-stake clients can be found in [specs](specs/). These are divided into features.
Core specifications for Ethereum proof-of-stake clients can be found in [specs](./specs). These are divided into features.
Features are researched and developed in parallel, and then consolidated into sequential upgrades when ready.

### Stable Specifications
Expand All @@ -20,16 +20,22 @@ Features are researched and developed in parallel, and then consolidated into se
| 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> |
| 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> |
| 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> |
| 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></ul><ul><li>[Validator additions](specs/capella/validator.md)</li><li>[P2P networking](specs/capella/p2p-interface.md)</li></ul></ul> |
| 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></ul><ul><li>[Honest validator guide changes](specs/deneb/validator.md)</li><li>[P2P networking](specs/deneb/p2p-interface.md)</li></ul></ul> |
| 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> |
| 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> |

### In-development Specifications

| Seq. | Code Name | Fork Epoch | Specs |
| - | - | - | - |
| 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> |

### Outdated Specifications

| Code Name or Topic | Specs | Notes |
| - | - | - |
| Electra | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/electra/beacon-chain.md)</li><li>[EIP-6110 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), [full node](specs/electra/light-client/full-node.md), [networking](specs/electra/light-client/p2p-interface.md))</li></ul><ul><li>[Honest validator guide changes](specs/electra/validator.md)</li></ul></ul> |
| Sharding (outdated) | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/_features/sharding/beacon-chain.md)</li></ul><li>Additions</li><ul><li>[P2P networking](specs/_features/sharding/p2p-interface.md)</li></ul></ul> |
| Custody Game (outdated) | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/_features/custody_game/beacon-chain.md)</li></ul><li>Additions</li><ul><li>[Honest validator guide changes](specs/_features/custody_game/validator.md)</li></ul></ul> | Dependent on sharding |
| Data Availability Sampling (outdated) | <ul><li>Core</li><ul><li>[Core types and functions](specs/_features/das/das-core.md)</li><li>[Fork choice changes](specs/_features/das/fork-choice.md)</li></ul><li>Additions</li><ul><li>[P2P Networking](specs/_features/das/p2p-interface.md)</li><li>[Sampling process](specs/_features/das/sampling.md)</li></ul></ul> | <ul><li> Dependent on sharding</li><li>[Technical explainer](https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/B1YJPGkpD)</li></ul> |
| Sharding | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/_features/sharding/beacon-chain.md)</li></ul><li>Additions</li><ul><li>[P2P networking](specs/_features/sharding/p2p-interface.md)</li></ul></ul> |
| Custody Game | <ul><li>Core</li><ul><li>[Beacon Chain changes](specs/_features/custody_game/beacon-chain.md)</li></ul><li>Additions</li><ul><li>[Honest validator guide changes](specs/_features/custody_game/validator.md)</li></ul></ul> | Dependent on sharding |
| Data Availability Sampling | <ul><li>Core</li><ul><li>[Core types and functions](specs/_features/das/das-core.md)</li><li>[Fork choice changes](specs/_features/das/fork-choice.md)</li></ul><li>Additions</li><ul><li>[P2P Networking](specs/_features/das/p2p-interface.md)</li><li>[Sampling process](specs/_features/das/sampling.md)</li></ul></ul> | <ul><li> Dependent on sharding</li><li>[Technical explainer](https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/B1YJPGkpD)</li></ul> |

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

Expand Down
4 changes: 4 additions & 0 deletions configs/mainnet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,10 @@ DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
SAMPLES_PER_SLOT: 8
CUSTODY_REQUIREMENT: 4
BLOB_SIDECAR_SUBNET_COUNT_EIP7594: 8
MAX_BLOBS_PER_BLOCK_EIP7594: 8
# `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_EIP7594`
MAX_REQUEST_BLOB_SIDECARS_EIP7594: 1024

# [New in Electra:EIP7251]
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 128000000000 # 2**7 * 10**9 (= 128,000,000,000)
Expand Down
4 changes: 4 additions & 0 deletions configs/minimal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,10 @@ DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
SAMPLES_PER_SLOT: 8
CUSTODY_REQUIREMENT: 4
BLOB_SIDECAR_SUBNET_COUNT_EIP7594: 8
MAX_BLOBS_PER_BLOCK_EIP7594: 8
# `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_EIP7594`
MAX_REQUEST_BLOB_SIDECARS_EIP7594: 1024

# [New in Electra:EIP7251]
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 64000000000 # 2**6 * 10**9 (= 64,000,000,000)
Expand Down
3 changes: 3 additions & 0 deletions flake8.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[flake8]
ignore = E252,W504,W503
max-line-length = 120
18 changes: 0 additions & 18 deletions linter.ini

This file was deleted.

7 changes: 7 additions & 0 deletions mypy.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[mypy]
disallow_incomplete_defs = True
disallow_untyped_defs = True
warn_unused_ignores = True
warn_unused_configs = True
warn_redundant_casts = True
ignore_missing_imports = True
3 changes: 3 additions & 0 deletions pylint.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[MESSAGES CONTROL]
disable = all
enable = unused-argument
2 changes: 1 addition & 1 deletion pysetup/md_doc_paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
DENEB: CAPELLA,
ELECTRA: DENEB,
WHISK: CAPELLA,
EIP7594: DENEB,
EIP7594: ELECTRA,
EIP6800: DENEB,
EIP7732: ELECTRA,
}
Expand Down
2 changes: 1 addition & 1 deletion pysetup/spec_builders/eip7594.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class EIP7594SpecBuilder(BaseSpecBuilder):
@classmethod
def imports(cls, preset_name: str):
return f'''
from eth2spec.deneb import {preset_name} as deneb
from eth2spec.electra import {preset_name} as electra
'''


Expand Down
4 changes: 2 additions & 2 deletions pysetup/spec_builders/electra.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class ElectraSpecBuilder(BaseSpecBuilder):
def imports(cls, preset_name: str):
return f'''
from eth2spec.deneb import {preset_name} as deneb
from eth2spec.utils.ssz.ssz_impl import serialize
from eth2spec.utils.ssz.ssz_impl import ssz_serialize, ssz_deserialize
'''

@classmethod
Expand All @@ -30,7 +30,7 @@ class NoopExecutionEngine(ExecutionEngine):
def notify_new_payload(self: ExecutionEngine,
execution_payload: ExecutionPayload,
parent_beacon_block_root: Root,
execution_requests_list: list[bytes]) -> bool:
execution_requests_list: Sequence[bytes]) -> bool:
return True

def notify_forkchoice_updated(self: ExecutionEngine,
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -561,7 +561,7 @@ def run(self):
python_requires=">=3.9, <4",
extras_require={
"test": ["pytest>=4.4", "pytest-cov", "pytest-xdist"],
"lint": ["flake8==5.0.4", "mypy==0.981", "pylint==2.15.3"],
"lint": ["flake8==5.0.4", "mypy==0.981", "pylint==3.3.1"],
"generator": ["setuptools>=72.0.0", "pytest>4.4", "python-snappy==0.7.3", "filelock", "pathos==0.3.0"],
"docs": ["mkdocs==1.4.2", "mkdocs-material==9.1.5", "mdx-truly-sane-lists==1.3", "mkdocs-awesome-pages-plugin==2.8.0"]
},
Expand All @@ -572,7 +572,7 @@ def run(self):
"py_ecc==6.0.0",
"milagro_bls_binding==1.9.0",
"remerkleable==0.1.28",
"trie==2.0.2",
"trie>=3,<4",
RUAMEL_YAML_VERSION,
"lru-dict==1.2.0",
MARKO_VERSION,
Expand Down
Loading