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.4.0-beta.0 #3437

Merged
merged 59 commits into from
Jun 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
1c35eb1
Lock voluntary_exit domain on capella
dapplion Mar 10, 2023
47f078f
Move change to deneb
dapplion Mar 11, 2023
df4ba47
Update beacon-chain.md
dapplion Mar 13, 2023
680b026
Add add_validator_to_registry fn
dapplion Mar 30, 2023
bce45c5
working through att slot range fix
djrtwo May 15, 2023
3e2d9a7
disable some attestation tests for attslotrange
djrtwo May 15, 2023
ad09a73
add attslotrange to circleci workflows
djrtwo May 15, 2023
5889668
lint
djrtwo May 15, 2023
78403cc
add p2p for attslotrange
djrtwo May 16, 2023
558be7a
add initialize beacon state from eth1 for AttSlotRAnge
djrtwo May 16, 2023
235582f
Update specs/_features/attslotrange/beacon-chain.md
djrtwo May 17, 2023
df1b105
change rewards flag tracking to allow for any inclusion delay for tar…
djrtwo May 17, 2023
a08cc48
toc
djrtwo May 17, 2023
ee32e2a
make tests generic across forks
djrtwo May 17, 2023
f967567
add a comment annotation for fork update
djrtwo May 17, 2023
6679b8a
attslotrange -> eip-7045
djrtwo May 18, 2023
aaa7fc6
Merge branch 'dev' into pr3288
hwwhww May 19, 2023
32036d8
Fix tests
hwwhww May 19, 2023
3550821
Merge remote-tracking branch 'origin' into att-slot-range
djrtwo May 22, 2023
fa4a103
Apply suggestions from code review
djrtwo May 22, 2023
be33c40
Merge branch 'dev' into pr3288
hwwhww May 30, 2023
653e03e
Fix ToC
hwwhww May 30, 2023
aeca477
Merge branch 'dev' into att-slot-range
hwwhww Jun 1, 2023
5f241bb
Merge branch 'deneb-4844-clean' into pr3288-comment
hwwhww Jun 7, 2023
bab93e8
specially mark EIP7044 changes
hwwhww Jun 7, 2023
4f839b7
Merge branch 'dev' into pr3288-comment
hwwhww Jun 12, 2023
99f294c
Add link to EIP PR7044. Need to change it to eips.ethereum.org path o…
hwwhww Jun 12, 2023
5309240
Lock doctoc version
dapplion Jun 14, 2023
241be46
Merge pull request #3429 from dapplion/lock-doctoc
hwwhww Jun 14, 2023
12fabf5
Update specs/deneb/beacon-chain.md
dapplion Jun 14, 2023
420f8ba
Rework tests. Move all `process_voluntary_exit` tests to Deneb
hwwhww Jun 14, 2023
11ab19c
Apply suggestions from code review
djrtwo Jun 14, 2023
1421295
Merge pull request #3288 from dapplion/voluntary_exit-domain
djrtwo Jun 14, 2023
559b89c
Merge branch 'dev' into att-slot-range
djrtwo Jun 14, 2023
7b132c2
Fix typos in get_shuffle_indices (#3426)
dapplion Jun 14, 2023
0ab160b
Add initialize_beacon_state_from_eth1 (#3428)
dapplion Jun 14, 2023
65a28b6
Whisk: Move validator whisk trackers and commitments to state (#3407)
dapplion Jun 14, 2023
9e50c74
Fix linter (#3430)
hwwhww Jun 14, 2023
ec4bdae
build EIP 7045 into Deneb fork
djrtwo Jun 14, 2023
834f6f7
Whisk: assert zeroed values during selection gap (#3425)
dapplion Jun 15, 2023
66eca39
Merge branch 'dev' into pr3311
hwwhww Jun 16, 2023
781cd83
fix typo
hwwhww Jun 16, 2023
12512ef
Merge pull request #3311 from dapplion/add_validator_to_registry
hwwhww Jun 16, 2023
cc4c810
Whisk: complete TODO items in fork logic (#3427)
dapplion Jun 19, 2023
c90d724
Whisk: add preset files (#3424)
dapplion Jun 19, 2023
9190520
toc
djrtwo Jun 19, 2023
fd9a72e
add 7045 fork boundary test
djrtwo Jun 19, 2023
668568e
spelling
djrtwo Jun 19, 2023
ecefe2d
pr review
djrtwo Jun 20, 2023
95f36d9
Merge pull request #3360 from ethereum/att-slot-range
djrtwo Jun 21, 2023
57a75d0
formatting
ralexstokes Jun 12, 2023
2660af0
move 4788 feature to deneb specs
ralexstokes Jun 12, 2023
67df566
removing manual workflow branch input
parithosh Jun 22, 2023
ad4f1de
Apply suggestions from code review
djrtwo Jun 22, 2023
fa649e5
Update specs/deneb/beacon-chain.md
djrtwo Jun 22, 2023
c475b13
Merge pull request #3421 from ralexstokes/4788-in-deneb
djrtwo Jun 22, 2023
865bb12
Merge pull request #3439 from parithosh/dev
hwwhww Jun 22, 2023
981611b
bump version to 1.4.0-beta.0
djrtwo Jun 22, 2023
75971a8
Merge pull request #3440 from ethereum/version-bump
djrtwo Jun 22, 2023
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
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ jobs:
- checkout
- run:
name: Check table of contents
command: sudo npm install -g doctoc@2 && make check_toc
command: sudo npm install -g doctoc@2.2.0 && make check_toc
codespell:
docker:
- image: circleci/python:3.9
Expand Down
18 changes: 2 additions & 16 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,8 @@ defaults:

env:
TEST_PRESET_TYPE: "minimal"
DEFAULT_BRANCH: "dev"

# Run tests on workflow_Dispatch
on:
on:
push:
branches:
- dev
Expand All @@ -22,10 +20,6 @@ on:
description: Type of test to run, either mainnet or minimal
type: string
required: true
commitRef:
description: The branch, tag or SHA to checkout and build from
default: dev
required: true
schedule:
- cron: '0 0 * * *'

Expand All @@ -47,19 +41,15 @@ jobs:
steps:
- name: Checkout this repo
uses: actions/checkout@v3.2.0
with:
ref: ${{ github.event.inputs.commitRef || env.DEFAULT_BRANCH }}
- name: Check table of contents
run: sudo npm install -g doctoc@2 && make check_toc
run: sudo npm install -g doctoc@2.2.0 && make check_toc

codespell:
runs-on: self-hosted
needs: preclear
steps:
- name: Checkout this repo
uses: actions/checkout@v3.2.0
with:
ref: ${{ github.event.inputs.commitRef || env.DEFAULT_BRANCH }}
- name: Check codespell
run: pip install 'codespell<3.0.0,>=2.0.0' --user && make codespell

Expand All @@ -69,8 +59,6 @@ jobs:
steps:
- name: Checkout this repo
uses: actions/checkout@v3.2.0
with:
ref: ${{ github.event.inputs.commitRef || env.DEFAULT_BRANCH }}
- name: Install pyspec requirements
run: make install_test
- name: Run linter for pyspec
Expand All @@ -87,8 +75,6 @@ jobs:
steps:
- name: Checkout this repo
uses: actions/checkout@v3.2.0
with:
ref: ${{ github.event.inputs.commitRef || env.DEFAULT_BRANCH }}
- name: set TEST_PRESET_TYPE
if: github.event.inputs.test_preset_type != ''
run: |
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ venv
.venvs
.venv
/.pytest_cache
*.swp

build/
output/
Expand Down
3 changes: 3 additions & 0 deletions configs/mainnet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ DENEB_FORK_EPOCH: 18446744073709551615
# EIP6110
EIP6110_FORK_VERSION: 0x05000000 # temporary stub
EIP6110_FORK_EPOCH: 18446744073709551615
# WHISK
WHISK_FORK_VERSION: 0x06000000 # temporary stub
WHISK_FORK_EPOCH: 18446744073709551615


# Time parameters
Expand Down
3 changes: 3 additions & 0 deletions configs/minimal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ DENEB_FORK_EPOCH: 18446744073709551615
# EIP6110
EIP6110_FORK_VERSION: 0x05000001
EIP6110_FORK_EPOCH: 18446744073709551615
# WHISK
WHISK_FORK_VERSION: 0x06000001
WHISK_FORK_EPOCH: 18446744073709551615


# Time parameters
Expand Down
20 changes: 20 additions & 0 deletions presets/mainnet/whisk.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Mainnet preset - Whisk

# Misc
# ---------------------------------------------------------------
# `uint64(4)`
CURDLEPROOFS_N_BLINDERS: 4
# `uint64(2**14)`
WHISK_CANDIDATE_TRACKERS_COUNT: 16384
# `uint64(2**13)` must be < WHISK_CANDIDATE_TRACKERS_COUNT
WHISK_PROPOSER_TRACKERS_COUNT: 8192
# `Epoch(2**8)`
WHISK_EPOCHS_PER_SHUFFLING_PHASE: 256
# `uint64(2**7 - CURDLEPROOFS_N_BLINDERS)`
WHISK_VALIDATORS_PER_SHUFFLE: 124
# `Epoch(2)`
WHISK_PROPOSER_SELECTION_GAP: 2
# `uint64(2**15)` TODO: will be replaced by a fix format once there's a serialized format
WHISK_MAX_SHUFFLE_PROOF_SIZE: 32768
# `uint64(2**10)` TODO: will be replaced by a fix format once there's a serialized format
WHISK_MAX_OPENING_PROOF_SIZE: 1024
20 changes: 20 additions & 0 deletions presets/minimal/whisk.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal preset - Whisk

# Misc
# ---------------------------------------------------------------
# [customized]
CURDLEPROOFS_N_BLINDERS: 4
# [customized]
WHISK_CANDIDATE_TRACKERS_COUNT: 32
# [customized]
WHISK_PROPOSER_TRACKERS_COUNT: 16
# [customized]
WHISK_EPOCHS_PER_SHUFFLING_PHASE: 4
# [customized]
WHISK_VALIDATORS_PER_SHUFFLE: 4
# [customized]
WHISK_PROPOSER_SELECTION_GAP: 1
# `uint64(2**15)` TODO: will be replaced by a fix format once there's a serialized format
WHISK_MAX_SHUFFLE_PROOF_SIZE: 32768
# `uint64(2**10)` TODO: will be replaced by a fix format once there's a serialized format
WHISK_MAX_OPENING_PROOF_SIZE: 1024
18 changes: 12 additions & 6 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -726,7 +726,9 @@ def execution_engine_cls(cls) -> str:
return "\n\n" + """
class NoopExecutionEngine(ExecutionEngine):

def notify_new_payload(self: ExecutionEngine, execution_payload: ExecutionPayload) -> bool:
def notify_new_payload(self: ExecutionEngine,
execution_payload: ExecutionPayload,
parent_beacon_block_root: Root) -> bool:
return True

def notify_forkchoice_updated(self: ExecutionEngine,
Expand All @@ -740,7 +742,9 @@ def get_payload(self: ExecutionEngine, payload_id: PayloadId) -> GetPayloadRespo
# pylint: disable=unused-argument
raise NotImplementedError("no default block production")

def is_valid_block_hash(self: ExecutionEngine, execution_payload: ExecutionPayload) -> bool:
def is_valid_block_hash(self: ExecutionEngine,
execution_payload: ExecutionPayload,
parent_beacon_block_root: Root) -> bool:
return True

def is_valid_versioned_hashes(self: ExecutionEngine, new_payload_request: NewPayloadRequest) -> bool:
Expand Down Expand Up @@ -776,7 +780,6 @@ def imports(cls, preset_name: str):
from eth2spec.deneb import {preset_name} as deneb
'''


#
# WhiskSpecBuilder
#
Expand All @@ -793,15 +796,18 @@ def imports(cls, preset_name: str):
def hardcoded_custom_type_dep_constants(cls, spec_object) -> str:
# Necessary for custom types `WhiskShuffleProof` and `WhiskTrackerProof`
constants = {
'WHISK_MAX_SHUFFLE_PROOF_SIZE': spec_object.constant_vars['WHISK_MAX_SHUFFLE_PROOF_SIZE'].value,
'WHISK_MAX_OPENING_PROOF_SIZE': spec_object.constant_vars['WHISK_MAX_OPENING_PROOF_SIZE'].value,
'WHISK_MAX_SHUFFLE_PROOF_SIZE': spec_object.preset_vars['WHISK_MAX_SHUFFLE_PROOF_SIZE'].value,
'WHISK_MAX_OPENING_PROOF_SIZE': spec_object.preset_vars['WHISK_MAX_OPENING_PROOF_SIZE'].value,
}
return {**super().hardcoded_custom_type_dep_constants(spec_object), **constants}


spec_builders = {
builder.fork: builder
for builder in (Phase0SpecBuilder, AltairSpecBuilder, BellatrixSpecBuilder, CapellaSpecBuilder, DenebSpecBuilder, EIP6110SpecBuilder, WhiskSpecBuilder)
for builder in (
Phase0SpecBuilder, AltairSpecBuilder, BellatrixSpecBuilder, CapellaSpecBuilder, DenebSpecBuilder,
EIP6110SpecBuilder, WhiskSpecBuilder,
)
}


Expand Down
72 changes: 0 additions & 72 deletions specs/_features/eip4788/beacon-chain.md

This file was deleted.

88 changes: 0 additions & 88 deletions specs/_features/eip4788/validator.md

This file was deleted.

8 changes: 6 additions & 2 deletions specs/_features/eip6110/beacon-chain.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ def process_deposit_receipt(state: BeaconState, deposit_receipt: DepositReceipt)
state.deposit_receipts_start_index = deposit_receipt.index

apply_deposit(
state=state,
state=state,
pubkey=deposit_receipt.pubkey,
withdrawal_credentials=deposit_receipt.withdrawal_credentials,
amount=deposit_receipt.amount,
Expand All @@ -251,7 +251,11 @@ def process_execution_payload(state: BeaconState, body: BeaconBlockBody, executi
# Verify the execution payload is valid
versioned_hashes = [kzg_commitment_to_versioned_hash(commitment) for commitment in body.blob_kzg_commitments]
assert execution_engine.verify_and_notify_new_payload(
NewPayloadRequest(execution_payload=payload, versioned_hashes=versioned_hashes)
NewPayloadRequest(
execution_payload=payload,
versioned_hashes=versioned_hashes,
parent_beacon_block_root=state.latest_block_header.parent_root,
)
)
# Cache execution payload header
state.latest_execution_payload_header = ExecutionPayloadHeader(
Expand Down
Loading