Commit Graph

7503 Commits

Author SHA1 Message Date
Hsiao-Wei Wang d2a1f57e09
Merge pull request #2928 from ralexstokes/test-gen-patch-up
remove data logging from BLS test gen
2022-06-30 17:10:08 +08:00
Hsiao-Wei Wang abcaccaea4
Merge pull request #2927 from etan-status/lc-redundantnext
Allow passing redundant `next_sync_committee`
2022-06-30 17:07:39 +08:00
Alex Stokes 2dd9a52fe4
remove data logging from BLS test gen 2022-06-29 10:24:53 -06:00
Etan Kissling f5f3031c5e
Allow passing redundant `next_sync_committee`
The producer of `LightClientUpdate` structures usually does not know how
far the `LightClientStore` on the client side has advanced. Updates are
currently rejected when including a redundant `next_sync_committee` not
advancing the `LightClientStore`. Behaviour is changed to allow this.
2022-06-29 13:16:03 +02:00
Hsiao-Wei Wang f810b6714b
Merge pull request #2924 from etan-status/lc-genesis
Allow `LightClientUpdate` with genesis finality
2022-06-29 13:12:58 +02:00
Etan Kissling 65cfedef22
Update finality update documentation 2022-06-27 22:36:55 +02:00
Etan Kissling 99e30328a8
Switch condition order for readability
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-06-27 22:26:35 +02:00
Hsiao-Wei Wang 0ba5b3b5c5
Merge pull request #2925 from fradamt/patch-3
fix typo and specify something
2022-06-27 16:18:34 +02:00
fradamt 67d62025d9
fix typo and specify something
- committee_index is used as an input to compute_subnet_for_attestation but it's not previously defined
- attestation.data.committee_index is incorrect, the field is "index"
2022-06-27 14:20:25 +02:00
Etan Kissling c10daf1709
Allow `LightClientUpdate` with genesis finality
When `state.finalized_checkpoint` references the genesis slot, it points
to an empty `root`, instead of the actual genesis block hash. This patch
updates the `LightClientUpdate` logic to allow including finality proofs
for genesis `finalized_checkpoint.root`, better supporting non-mainnet.
When including such a finality proof, the proof is for the empty `root`,
but `finalized_header` is kept zeroed out to signify this edge case.
2022-06-27 12:10:40 +02:00
Hsiao-Wei Wang a40a64440c
Merge pull request #2916 from etan-status/lc-forkversion 2022-06-27 06:38:11 +02:00
Hsiao-Wei Wang d4a2bdcea0
Merge pull request #2915 from asn-d6/consensus-4844-proofs-optimization
Optimizing EIP-4844 block validation (using KZG proofs)
2022-06-26 13:55:17 +02:00
Hsiao-Wei Wang a3339c7b7f
PR suggestion from @Inphi 2022-06-25 00:13:20 +08:00
Etan Kissling 9a253e437d
create decorator for tests with matching config 2022-06-24 01:05:11 +02:00
Alex Stokes 245ac6cf9b
Merge pull request #2921 from marioevz/field-rename
Fix Name Discrepancy (WITHDRAWAL_QUEUE_LIMIT)
2022-06-23 16:38:36 -06:00
marioevz 86e2f8fd7d Fix name discrepancy 2022-06-23 22:02:39 +00:00
Etan Kissling 840733ffd2
Move `compute_fork_version` to `fork.md` 2022-06-23 21:03:24 +02:00
Hsiao-Wei Wang 94da861d9c
Fix ToC 2022-06-23 18:44:37 +08:00
Hsiao-Wei Wang 0ab280d396
minor suggestions 2022-06-23 18:40:09 +08:00
George Kadianakis e7e520791d Use Python's pow() in bls_modular_inverse(). 2022-06-22 15:42:03 +03:00
George Kadianakis 534a9d1d95 Move EIP-4844 cryptography code to its own file 2022-06-22 15:42:03 +03:00
Hsiao-Wei Wang 8a70295a84
Fix ToC 2022-06-20 21:26:41 +08:00
Etan Kissling 0b8ab23bd4
Remove `fork_version` from `LightClientUpdate`
The `fork_version` field in `LightClientUpdate` can be derived from the
`update.signature_slot` value by consulting the locally configured fork
schedule. The light client already needs access to the fork schedule to
determine the `GeneralizedIndex` values used for merkle proofs, and the
memory layouts of the structures (including `LightClientUpdate`). The
`fork_version` itself is network dependent and doesn't reveal that info.
2022-06-16 17:17:24 +02:00
Hsiao-Wei Wang 8cc008d11c
Merge pull request #2805 from etan-status/lc-period
Allow light client to verify signatures at period boundary
2022-06-16 16:53:12 +02:00
George Kadianakis 4be0b9d6bc Add needed math/crypto functions to validate KZG aggregated proofs
All code pretty much straight up copied from https://github.com/ethereum/EIPs/pull/5088
2022-06-14 16:37:08 +03:00
George Kadianakis e4c75d67ce Introduce high-level logic of new efficient block validation 2022-06-14 16:37:08 +03:00
Diederik Loerakker 3dbbeb9e85
Merge pull request #2914 from Inphi/inphi/eip4844 2022-06-14 11:11:19 +02:00
inphi dbac7b1582
EIP-4844: Remove shard field from BlobsSidecar 2022-06-13 16:32:18 -04:00
Danny Ryan 74489d5523
Partial withdrawals (#2862)
* t push base design for partial withdrawals

* moor tests

* clean up withdrawals naming

* make partial withdrawal randomized tests better

* Apply suggestions from code review

Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* fix mainnet brokn test

* name swap

* lint

Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-06-08 13:16:12 -06:00
Danny Ryan 1113aa608f
Merge pull request #2903 from ethereum/readme-table
Tidy up README.md specs list
2022-06-06 08:55:14 -06:00
Danny Ryan a1b4f1d3d6
Merge pull request #2907 from ethereum/de-disable_process_reveal_deadlines
Remove `@disable_process_reveal_deadlines` from `sanity/test_blocks.py`
2022-06-06 08:53:32 -06:00
Hsiao-Wei Wang c165d31ccb
Remove `@disable_process_reveal_deadlines` 2022-06-06 16:24:44 +08:00
Hsiao-Wei Wang dde1313a9d
Add Fork Epoch column 2022-06-06 16:03:46 +08:00
Danny Ryan 2e980222f4
Merge pull request #2904 from ethereum/ralexstokes-patch-1
Update README.md for test formats
2022-06-03 07:01:40 -06:00
Hsiao-Wei Wang df1464728b
Remove fork version and previous fork. Add seq. 2022-06-02 22:14:39 +08:00
Alex Stokes 0d305f0ae3
Update README.md
Some edits to remove stale information
2022-06-01 22:00:11 -06:00
Hsiao-Wei Wang 986f7ee34c
Use table to list the specs. Add `Capella` and `EIP4844` to README 2022-06-01 02:41:18 +08:00
Murphy Law a3128b8c57
EIP-4844: fix a typo (#2898) 2022-05-31 08:40:06 -06:00
Danny Ryan f74f3c37ad
Merge pull request #2899 from ethereum/djrtwo-patch-1
bump version.txt
2022-05-23 05:24:01 -06:00
Danny Ryan 895cce5aeb
bump version.txt 2022-05-23 05:23:16 -06:00
Jacek Sieka 0e6a7cd39a
deprecate `BeaconBlocksByRange.step` (#2856)
* deprecate `BeaconBlocksByRange.step`

The `step` parameter has not seen much implementation in real life
clients which instead opt to request variations on a few epochs at a
time (instead of interleaving single blocks, entire epochs are
interleaved).

At the same time, supporting `step` on the server side brings several
complications: more complex bounds checking logic, more complex loading
of blocks from linear storage (which presumably stores all blocks and
not just certain increments).

This PR suggests that we deprecate the whole idea. Backwards
compatibility is kept by simply responding with a single block when
`step > 0` - this is allowed by the spec and should thus be handled
gracefully by requesting clients already, should there exist any that
use larger step counts.

Removing `step` now allows simplifying the EL-CL protocol for serving
execution data from the EL to avoid double storage.

* Update specs/phase0/p2p-interface.md

Co-authored-by: Danny Ryan <dannyjryan@gmail.com>

Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-05-20 13:18:24 -06:00
Caspar Schwarz-Schilling 72f7b88f2a
Update PROPOSER_SCORE_BOOST to 40 percent (#2895) 2022-05-20 13:15:40 -06:00
Paul Hauner b23cdef6ea
Remove API restrictions for optimistic sync (#2869)
* Remove API restrictions

* Update optimistic.md
2022-05-19 09:27:51 -06:00
Mikhail Kalinin d62ebaeaca
Run on_tick before picking the head for proposal (#2897) 2022-05-19 07:56:49 -06:00
Alex Stokes 5337da5dff
use python syntax for bitwise AND operation (#2894) 2022-05-17 07:14:19 -06:00
Jacek Sieka bab5e402df
Ignore subset aggregates (#2847)
* Ignore subset aggregates

When aggregates are propagated through the network, it is often the case
that a better aggregate has already been seen - in particular, this
happens when an aggregator has not been able to include itself in the
mesh and therefore publishes an aggregate with only its own
attestations.

This new ignore rule allows dropping all aggregates that are
(non-strict) subsets of aggregates that have already been seen on the
network. In particular, it does not mandate dropping aggregates where a
union of previous aggregates would cause it to become a subset).

The logic for allowing this is based on the premise that any aggregate
that has already been seen by a peer will also have been seen by its
neighbours - a subset aggregate (strict or not) brings no new value to
the aggregation algorithm, except in the extreme edge case where you
could combine several such sparse aggregates into a single, more dense
"combined" aggregate and thus use less block space.

Further, as a small benefit, computing the `hash_tree_root` of the full
aggregate is generally not done -however, `hash_tree_root(data)` is
already done for other purposes as this is used as index in the beacon
API.

* add subset ignore rule to sync contributions as well

* typo
2022-05-17 07:05:22 -06:00
Alex Stokes 20a90f1df7
Add new `DomainType` for application usage (#2884) 2022-05-16 08:08:15 -06:00
Danny Ryan 1d82d33774
Merge pull request #2887 from jtraglia/add-invalid-withdrawable-epoch-test
Add invalid large withdrawable epoch test
2022-05-16 08:07:21 -06:00
Danny Ryan af1fbab181
Merge pull request #2888 from casparschwa/update-proposer-score-boost
Update proposer score boost
2022-05-16 08:06:59 -06:00
Alex Stokes 30a332690c
Merge pull request #2893 from ChihChengLiang/bump-milagro-version
bump milagro bls binding version
2022-05-14 16:35:49 -06:00