forked from ethereum/consensus-specs
-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] master from ethereum:master #67
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Add distributed blob publishing section to Fulu p2p interface spec. # Conflicts: # specs/deneb/p2p-interface.md * Apply suggestions from code review Co-authored-by: Lion - dapplion <[email protected]> * Apply suggestions from code review Co-authored-by: Justin Traglia <[email protected]> Co-authored-by: fradamt <[email protected]> * Fix lint * Fix lint. * Add new line before list * Clarify columns that clients must publish to in Distributed Publishing. * add function to retrieve sidecars from both block and sidecar * fix lint * fix lint again * fix tests * Fix tests & nits * Fix more nits * Address review comment. * clarify language Co-authored-by: Alex Stokes <[email protected]> --------- Co-authored-by: Lion - dapplion <[email protected]> Co-authored-by: Justin Traglia <[email protected]> Co-authored-by: fradamt <[email protected]> Co-authored-by: fradamt <[email protected]> Co-authored-by: Justin Traglia <[email protected]> Co-authored-by: Alex Stokes <[email protected]>
In `get_validators_custody_requirement`, use the latest finalized state as `BeaconState` instead of the current beacon state.
Release v1.5.0-beta.4
…4242) Bumps the actions group with 1 update: [actions/setup-python](https://github.com/actions/setup-python). Updates `actions/setup-python` from 5.4.0 to 5.5.0 - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@4237552...8d9ed9a) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 5.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the actions group with 3 updates Bumps the actions group with 3 updates: [setuptools](https://github.com/pypa/setuptools), [flake8](https://github.com/pycqa/flake8) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material). Updates `setuptools` from 78.0.2 to 78.1.0 - [Release notes](https://github.com/pypa/setuptools/releases) - [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst) - [Commits](pypa/setuptools@v78.0.2...v78.1.0) Updates `flake8` from 7.1.2 to 7.2.0 - [Commits](PyCQA/flake8@7.1.2...7.2.0) Updates `mkdocs-material` from 9.6.9 to 9.6.10 - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](squidfunk/mkdocs-material@9.6.9...9.6.10) --- updated-dependencies: - dependency-name: setuptools dependency-version: 78.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: flake8 dependency-version: 7.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: mkdocs-material dependency-version: 9.6.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <[email protected]> * Fix lint --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Justin Traglia <[email protected]>
* Change in balance affects proposer selection * move test to phase0 * lint imports * improve comment * brute force proposer change * Remove helper function --------- Co-authored-by: Justin Traglia <[email protected]>
* Replace skip footnote with html block * Remove unnecessary duration columns * Add mdformat to pyproject * Start to use mdformat-toc * Remove table of contents headers * Fix empty header * Finally, run mdformat * Remove doctoc from CI * Fix issue with eip7732 * Error if linter changes something in CI
* Remove flake8 & run black on tests * Run make lint --------- Co-authored-by: Justin Traglia <[email protected]>
Bumps the actions group with 3 updates: [marko](https://github.com/frostming/marko), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material). Updates `marko` from 2.1.2 to 2.1.3 - [Release notes](https://github.com/frostming/marko/releases) - [Changelog](https://github.com/frostming/marko/blob/master/CHANGELOG.md) - [Commits](frostming/marko@v2.1.2...v2.1.3) Updates `pytest-cov` from 6.0.0 to 6.1.1 - [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst) - [Commits](pytest-dev/pytest-cov@v6.0.0...v6.1.1) Updates `mkdocs-material` from 9.6.10 to 9.6.11 - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](squidfunk/mkdocs-material@9.6.10...9.6.11) --- updated-dependencies: - dependency-name: marko dependency-version: 2.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: pytest-cov dependency-version: 6.1.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions - dependency-name: mkdocs-material dependency-version: 9.6.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fixes #4318 Now it takes seconds. Before merging we need to consider: + With this version the one gwei validator is not the only validator. + As one gwei makes it less likely to be chosen for the committee, with a different pseudo-random seed this test could fail. The previous version would never fail because the one gwei validator was the only one, so it was warrantied to be part of the committee. However, the previous version could take arbitrary time depending on the pseudo-random seed. So this approach has its pros and cons with respect to previous version.
This is just a placeholder EIP to have the right data structure. This change should entail changes in the following places but those can only be made after rebasing on top of Fulu and #3510 - The honest validator guide should include two separate deadlines for the PTC, on payload available and data available. - The honest validator guide should give instructions on how to set the new data available flag to true if the data was available at the last deadline and set the payload available flag if the payload was available at the first deadline - Forkchoice should update `get_proposer_head` with the payload and data timeliness flags.
EIP-7916 defines a new SSZ type for lists of unknown length. Historically, we used List[type, N] with very large N values for this: - This wastes hashes, as log(N) hashes are still required even if only a single item is present. This is especially bad when nesting lists. - Generalized indices break, as is what happened when the Attestation count got reduced in Electra, introducing maintenance burden to apps that possibly involves security countil for upgrading smart contracts. This PR adds specs and tests for EIP-7916 which fixes these issues, making the new list type available to EIP implementations in _features. - https://eips.ethereum.org/EIPS/eip-7916
* Simplify some statements. * Move `header.builder_index` check before withdrawal creds check. * Fix `header.value` check; clarify that it's excess balance & `MIN_ACTIVATION_BALANCE` not `MIN_BUILDER_BALANCE`. * Fix joined list item for `header.parent_block_root`.
This PR adds the following payload attestation tests - Valid basic attestations (payload present/not present) - Partial PTC participation - Invalid beacon block root/slot timing - Invalid signatures and edge cases
This PR fixes a typo `state.last_block_hash` to `state.latest_block_hash`.
It was like this before but somehow got removed. When there's a non-empty blob schedule, entries must be a frozendict so that it can be hashed.
Bumps the actions group with 2 updates: [mypy](https://github.com/python/mypy) and [ruff](https://github.com/astral-sh/ruff).
[As discussed on discord](https://discord.com/channels/595666850260713488/1401858592264552501), `NUMBER_OF_COLUMNS` should be a preset, not a configuration value. It's technically an alias of `CELLS_PER_EXT_BLOB` (preset) which is used in KZG libraries. I've also added the latter to the preset files as well so that it is more clear that it's an alias.
This PR removes unnecessary equivocation filter. The idea was to make sure we don't include any ILs from equivocators but `process_inclusion_list` already handles this requirement. (See L17 of `process_inclusion_list`.)
This follows up on #4445 to extend EIP-7916 support for bitlists, making the `ProgressiveBitlist` type available to implementations in _features. - https://eips.ethereum.org/EIPS/eip-7916
This PR fixes cutoff config typo.
1. The first commit changes the sampling logic in `get_ptc` to be balance weighted, for security reasons (see discord discussion starting [here](https://discord.com/channels/595666850260713488/874767108809031740/1400916536197251082)). Unlike for sync-committees and proposers, it doesn't use a new shuffle to select candidate indices to which a balance-weighted acceptance probability is applied. Instead, to minimize computational load, it just reuses the existing committee shuffle, starting from the committees of the PTC's `slot` and moving forward from there (wrapping around if necessary). 2. The second commit refactors all functions that do balance weighted sampling, through helpers `compute_balance_weighted_selection` and `compute_balance_weighted_acceptance`: - `compute_balance_weighted_acceptance` takes care of the balance-weighted acceptance (whether a candidate index is accepted or not, with probability proportional to its balance) - `compute_balance_weighted_selection` takes care of the whole selection process, going over the given `indices` and selecting them with balance-weighted probability until the required number has been selected. It has a parameter `shuffle_indices` which indicates whether `indices` should be shuffled or not. This is `False` for the PTC, since we are just reusing the existing shuffle 3. The other commits remove `state.latest_full_slot`, which is unused after the introduction of `state.execution_payload_availability`, and fixes a small mistake in `fork-choice.md` If people think the refactor is unnecessary, we could just go with the first commit. On the one end, the refactor might make it a bit more annoying to change the selection logic for just some of these in the future. On the other hand, there is currently a lot of code duplication and lack of readability, and `get_ptc` is in particular quite hard to understand because there's a lot going on in it. Another option could be a smaller refactor with just `compute_balance_weighted_acceptance`, which should be much less likely to be customized by different selection processes (whereas `compute_balance_weighted_selection` already has some customization with `shuffle_indices`, and there's other possibilities like fixed size or not)
These are currently broken. Will disable on mainnet for now, so I can make a release.
`attesting_indices` for a payload attestation should be able to contain duplicate indices if the PTC does (which it can, as of #4488), to verify an aggregate signature/pubkey that contains some signature/pubkey multiple times. This is also the behavior for sync committees, as opposed to including a single signature/pubkey even for duplicate indices, and having to deal with duplication more explicitly (e.g. `aggregation_bits` could be less than `PTC_SIZE`, counting would have to be with multiplicity). Tests are fixed by making `prepare_signed_payload_attestation` deal with duplicates in `attesting_indices` when setting `aggregation_bits`, by enforcing 1 index = 1 bit set (if a validator index appears `n` times in the PTC but only `m < n` in `attesting_indices`, only `m` bits are set)
This PR is an alternative to #3510. * Deprecate `SECONDS_PER_SLOT` in favor of `SLOT_DURATION_MS`. * Deprecate `INTERVALS_PER_SLOT` in favor of config vars in basis points. Instead of presets in millisecond units, this PR defines slot component durations (eg `ATTESTATION_DUE_BPS`) with config variables where the unit is basis points (a common way to describe percentages). This will make it easier to test different slot times and fine-tune slot component durations. To test a different slot time, change `SLOT_DURATION_MS` and the component times will automatically adjust since they are percentages of `SLOT_DURATION_MS`.
* `MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA` & `MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT` should have been in the validator cycle section. * There should have been a deneb section for `MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT`. * The comment for `ATTESTATION_SUBNET_COUNT` was wrong. * Add missing comments for newer upgrades (including Fulu).
Now that we're considering changing the slot duration (EIP7782), we should remove time conversion comments (eg 256 epochs is ~27 hours) so these aren't misleading. My other changes are little nits, mostly for consistency.
Bumps the actions group with 3 updates: [marko](https://github.com/frostming/marko), [deepdiff](https://github.com/seperman/deepdiff) and [ruff](https://github.com/astral-sh/ruff).
…4501) These three tests were failing under the mainnet preset. The issue is that we were using `ATTESTATION_DUE_BPS` instead of `ATTESTATION_DUE_BPS_EIP7732` in eip7732.
This PR sets EIP7805's previous fork to Fulu & makes other necessary changes. PS: It also makes the `is_data_available` comment consistent across all specs.
This PR rebases eip7732 specs from electra to fulu. It also fixes a few small inconsistencies I noticed while reviewing. Mainnet tests pass too: <img width="916" height="354" alt="image" src="https://github.com/user-attachments/assets/7479ae8f-a0a5-450b-9ce1-a65f6bcbe254" />
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.2)
Can you help keep this open source service alive? 💖 Please sponsor : )