* Add metrics for pruned proofs & pending deposits
* Add PruneAllProofs & PruneAllPendingDeposits
* Add simple unit tests
* Add DepositPruner interface
* Add pruning logic at post finalization task
* Move pruner logic into new file(deposit_pruner.go)
Rationale:
As deposit_fetcher.go contains all pruning logics, it would be better to separate its interest into fetcher/inserter/pruner.
* Gofmt
* Add reference link for deprecating eth1 polling
* Add changelog
* Apply reviews from nisdas and james
* add pre and post deposit request tests
* nishant's comment
---------
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
Co-authored-by: james-prysm <james@prysmaticlabs.com>
* organize blob directories by period and epoch
* changelog
* remove Indices and replace with Summary
* old PR feedback
* log to advise about the speed of blob migration
* rename level->layer (hoping term is more clear)
* assert path in tests for increased legibility
* lint
* lint
* remove test covering a newly impossible error
* improve feedback from flag validation failure
* Try to clean dangling dirs epoch->flat migration
* lint
* Preston feedback
* try all layouts and short-circuit if base not found
---------
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
* Update Beacon API events to Electra
* changelog <3
* fix issues
* send notifications from pending att queue
* Revert "send notifications from pending att queue"
This reverts commit 545408f6cf.
* change field IDs in `AggregateAttestationAndProofElectra`
* fix typo in `validator.proto`
* correct slashing indices length and shashings length
* check length in indexed attestation's `ToConsensus` method
* use `fieldparams.BLSSignatureLength`
* Add length checks for execution request
* fix typo in `beacon_state.proto`
* fix typo in `ssz_proto_library.bzl`
* fix error messages about incorrect types in block factory
* add Electra case to `BeaconBlockContainerToSignedBeaconBlock`
* move PeerDAS config items to PeerDAS section
* remove redundant params
* rename `PendingDepositLimit` to `PendingDepositsLimit`
* improve requests unmarshaling errors
* rename `get_validator_max_effective_balance` to `get_max_effective_balance`
* fix typo in `consolidations.go`
* rename `index` to `validator_index` in `PendingPartialWithdrawal`
* rename `randomByte` to `randomBytes` in `validators.go`
* fix for version in a comment in `validator.go`
* changelog <3
* Revert "rename `index` to `validator_index` in `PendingPartialWithdrawal`"
This reverts commit 87e4da0ea2.
* wip skip eth1data voting after electra
* updating technique
* adding fix for electra eth1 voting
* fixing linting on test
* seeing if reversing genesis state fixes problem
* increasing safety of legacy check
* review feedback
* forgot to fix tests
* nishant's feedback
* nishant's feedback
* rename function a little
* Update beacon-chain/core/helpers/legacy.go
Co-authored-by: Jun Song <87601811+syjn99@users.noreply.github.com>
* fixing naming
---------
Co-authored-by: Jun Song <87601811+syjn99@users.noreply.github.com>
* EIP-7549: slasher
* update chunks and detection
* update tests
* encode+decode
* timer
* test fixes
* testing the timer
* Decouple pool from service
* update mock
* cleanup
* make review easier
* comments and changelog
* Don't mark blocks as invalid on context deadlines
When processing state transition, if the error is because of a context
deadline, do not mark it as invalid.
* review
* fix changelog
* fix: early return for gathering local deposits when EIP-6110 is applied
* Add an entry on CHANGELOG.md
* Fix weird indent at CHANGELOG.md
* Add changelog
* Fix CHANGELOG.md
---------
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
Before this commit, this kind of logs were possible:
```
[2025-01-22 17:18:48] DEBUG sync: Could not search for peers error=node filter: no subnet exists for provided topic: /eth2/d1f05cae/blob_sidecar_0/ssz_snappy
[2025-01-22 17:18:48] DEBUG sync: Could not search for peers error=node filter: no subnet exists for provided topic: /eth2/d1f05cae/blob_sidecar_1/ssz_snappy
[2025-01-22 17:18:48] DEBUG sync: Could not search for peers error=node filter: no subnet exists for provided topic: /eth2/d1f05cae/blob_sidecar_2/ssz_snappy
[2025-01-22 17:18:48] DEBUG sync: Could not search for peers error=node filter: no subnet exists for provided topic: /eth2/d1f05cae/blob_sidecar_3/ssz_snappy
[2025-01-22 17:18:48] DEBUG sync: Could not search for peers error=node filter: no subnet exists for provided topic: /eth2/d1f05cae/blob_sidecar_4/ssz_snappy
[2025-01-22 17:18:48] DEBUG sync: Could not search for peers error=node filter: no subnet exists for provided topic: /eth2/d1f05cae/blob_sidecar_5/ssz_snappy
[2025-01-22 17:18:48] DEBUG sync: Could not search for peers error=node filter: no subnet exists for provided topic: /eth2/d1f05cae/blob_sidecar_6/ssz_snappy
[2025-01-22 17:18:48] DEBUG sync: Could not search for peers error=node filter: no subnet exists for provided topic: /eth2/d1f05cae/blob_sidecar_7/ssz_snappy
[2025-01-22 17:18:48] DEBUG sync: Could not search for peers error=node filter: no subnet exists for provided topic: /eth2/d1f05cae/blob_sidecar_8/ssz_snappy
```
Note this bug has no real other impact than logging these errors: Since all nodes are subscribed to these subnets, as soon as some peers are found, there is no more issue.
Why not using `s.subscribe` instead of `s.subscribeWithParameters`?
Blobs subnets were before considered as static subnets. But since Electra, the number of subnets is a function of the epoch.
So it's better to use `s.subscribeWithParameters` than 2 specific but almost identic functions in `s.subscribe`.
Why `filterPeerForBlobSubnet` is the only one returning always `true`?
Because blobs subnets are actually the only subnets which are both dynamic AND which have to be subscribed by all the nodes.
So, `filterPeerForBlobSubnet` does not filter out any node.
188a2ff818/specs/fulu/fork.md (upgrading-the-state)
Before this commit, the `UpgradeToFulu` did not really respect the specification. This commit fixes that.
How can we be sure now the specification is really respected?
As long as the equivalent of https://github.com/ethereum/consensus-spec-tests/tree/master/tests/mainnet/electra/fork/fork/pyspec_tests are not released, we cannot be sure.
However, with this commit, Prysm and Lighthouse do agree with the post state after the Fulu fork (which is not the case without this commit).
So either both Prysm and Lighthouse are both right,
either the are both wrong (but in the exact same way, which has a pretty low likelyhood).
* Use `SingleAttestation` for Fulu in p2p attestation map.
* Fix `TestExtractDataType`.
---------
Co-authored-by: Manu NALEPA <enalepa@offchainlabs.com>
* updating blockv2 to handle electra blocks
* adding aggregate attesation and proof electra
* gaz
* changelogs
* updating web3signer dependency
* test mock was flipped
* fixing hex value
* accidently checked in dependency changes
* preston feedback
* readding old metrics to not break linting
* review feedback and changelog
* gaz