Commit Graph

7965 Commits

Author SHA1 Message Date
Etan Kissling
02abdc311f Merge branch 'dev' into lc-eph 2022-12-13 15:33:28 +01:00
Hsiao-Wei Wang
dc17b1e2b6 Merge pull request #3107 from etan-status/sf-epochoverrides
cleanup explicit fork enumerations in tests
2022-12-13 22:29:30 +08:00
Hsiao-Wei Wang
e9a7a6d40e Merge pull request #3126 from etan-status/el-rlp
proper EL block hash implementation in tests
2022-12-13 22:28:53 +08:00
Etan Kissling
f24365fa36 Merge branch 'ci-phasesconfig' into lc-eph 2022-12-13 12:34:32 +01:00
Etan Kissling
c84862bfae Avoid line continuation syntax 2022-12-13 12:34:14 +01:00
Etan Kissling
3bfac0e16e Merge branch 'lc-toheader' into lc-eph 2022-12-13 12:31:12 +01:00
Etan Kissling
ef2a8b319d Avoid line continuation syntax 2022-12-13 12:30:14 +01:00
Etan Kissling
af785068d8 Merge branch 'el-rlp' into lc-eph 2022-12-13 12:27:59 +01:00
Etan Kissling
666a90245e Add EIP4844 support
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-12-13 11:54:44 +01:00
Hsiao-Wei Wang
c59b06cccd Merge branch 'dev' into sf-epochoverrides 2022-12-13 16:13:21 +08:00
Hsiao-Wei Wang
da3f5af919 Test case naming clean up (#3143)
* Add @description decorator

* Unify test case naming style

* more clean ups

* Altair tests cleanup

* Clean up Altair and Bellatrix `process_deposit` tests

* Clean up Bellatrix tests

* Clean up Capella tests

* PR feedback from @ralexstokes

* Add comments on the deposit fork version tests

* Remove `test_incorrect_sig_other_version` since it is duplicate to `test_ineffective_deposit_with_bad_fork_version`

* Add `test_ineffective_deposit_with_current_fork_version`
2022-12-13 15:13:44 +08:00
Danny Ryan
06d6d3888f Merge pull request #3095 from ralexstokes/bound-withdrawals-sweep
bound the maximum number of validators considered for withdrawals per sweep
2022-12-12 19:53:29 -07:00
Danny Ryan
1f943f0d64 Update specs/capella/beacon-chain.md 2022-12-12 14:22:58 -07:00
Etan Kissling
a8dabc05a8 Add test_eip4844_store_with_legacy_data (fork test still nyi) 2022-12-12 19:08:45 +01:00
Alex Stokes
a062757656 update mainnet preset value for sweep size 2022-12-12 09:25:40 -07:00
Danny Ryan
478b437b05 lint 2022-12-12 08:25:31 -07:00
Danny Ryan
3b3490348e Merge pull request #3152 from StefanBratanov/fix_typo
Fix typo in BlobsSidecarsByRange v1
2022-12-12 08:20:46 -07:00
Stefan Bratanov
a8449fa4aa Fix typo in BlobsSidecarsByRange v1 2022-12-12 15:36:51 +02:00
Etan Kissling
700bef7a45 Fix is_valid_light_client_header 2022-12-12 13:39:14 +01:00
Etan Kissling
dc05a3f19e Rename test back 2022-12-12 13:13:25 +01:00
Etan Kissling
8ad6810a44 EIP4844 support (excess_data_gas), fork tests nyi 2022-12-12 13:11:49 +01:00
Etan Kissling
e67ca3d309 Compute epoch only once for better readability 2022-12-12 13:09:18 +01:00
Etan Kissling
4df86632b6 Rename legacy --> altair in test name 2022-12-12 12:56:34 +01:00
Etan Kissling
5028a806ad Implicit init during fork transition 2022-12-12 12:45:43 +01:00
Etan Kissling
d6da56cc19 Remove double mention of validator changes in readme 2022-12-12 12:37:57 +01:00
Etan Kissling
11d2a59948 Flip is_valid_light_client_header logic for extensibility 2022-12-12 12:33:58 +01:00
Etan Kissling
2df8a559b8 Fix LC references in main readme 2022-12-12 12:19:46 +01:00
Etan Kissling
7e6a990790 Merge branch 'ci-phasesconfig' into lc-eph 2022-12-12 12:15:44 +01:00
Etan Kissling
82ff974090 Emit config before calling test to ignore changes 2022-12-12 12:15:27 +01:00
Etan Kissling
2e97af2627 Add ExecutionPayloadHeader to LC data
While the light client sync protocol currently provides access to the
latest `BeaconBlockHeader`, obtaining the matching execution data needs
workarounds such as downloading the full block.

Having ready access to the EL state root simplifies use cases that need
a way to cross-check `eth_getProof` responses against LC data.

Access to `block_hash` unlocks scenarios where a CL light client drives
an EL without `engine_newPayload`. As of Altair, only the CL beacon
block root is available, but the EL block hash is needed for engine API.

Other fields in the `ExecutionPayloadHeader` such as `logs_bloom` may
allow light client applications to monitor blocks for local interest,
e.g. for transfers affecting a certain wallet. This enables to download
only the few relevant blocks instead of every single one.

A new `LightClientStore` is proposed into the Capella spec that may be
used to sync LC data that includes execution data. Existing pre-Capella
LC data will remain as is, but can be locally upgraded before feeding it
into the new `LightClientStore` so that light clients do not need to run
a potentially expensive fork transition at a specific time. This enables
the `LightClientStore` to be upgraded at a use case dependent timing at
any time before Capella hits. Smart contract and embedded deployments
benefit from reduced code size and do not need synchronization with the
beacon chain clock to perform the Capella fork.
2022-12-12 00:48:40 +01:00
Etan Kissling
9ab22b3ef3 Merge branch 'lc-accessors' into lc-eph 2022-12-12 00:41:31 +01:00
Etan Kissling
c1a6b127f1 Merge branch 'lc-toheader' into lc-eph 2022-12-12 00:38:34 +01:00
Etan Kissling
08a2080937 Merge branch 'ci-phasesconfig' into lc-eph 2022-12-12 00:36:13 +01:00
Etan Kissling
364d106ac3 Merge branch 'sf-epochoverrides' into lc-eph 2022-12-12 00:35:30 +01:00
Etan Kissling
0c3853e959 Avoid modifying caller phases (kw is shallow copy) 2022-12-11 23:41:08 +01:00
Alex Stokes
37e504e784 bound the maximum number of validators considered for withdrawals per sweep 2022-12-09 10:51:25 -07:00
Etan Kissling
0649e0662c Allow selecting phase to emit, and fix combi with overrides 2022-12-07 22:37:40 +01:00
Etan Kissling
ae64c515f4 Merge branch 'dev' into ci-phasesconfig 2022-12-07 20:56:59 +01:00
Etan Kissling
14fd937046 Fix 2022-12-06 23:21:06 +01:00
Etan Kissling
0fb0b26742 Add accessors for LC header
Introduce `get_lc_beacon_slot` and `get_lc_beacon_root` accessors
similar to `get_current_slot(state)` to account for future extensions
to the light client header structure that may override how those fields
are accessed. Idea is to extend with execution accessors in the future.
2022-12-06 22:05:19 +01:00
Etan Kissling
8bf801ecc6 Add block_to_light_client_header helper
Introduce `block_to_light_client_header` helper function to enable
future forks to override it with additional info (e.g., execution),
without having to change the general light client logic.

Likewise, update existing light client data creation flow to use
`block_to_light_client_header` and default-initialize empty fields.

Furthermore, generalize `create_update` helper to streamline test code
using `block_to_light_client_header`.

Note: In Altair spec, LC header is the same as `BeaconBlockHeader`.
however; future forks will extend it with more information.
2022-12-06 17:44:41 +01:00
Danny Ryan
9839ed4934 Merge pull request #3145 from terencechain/update-max-blobs
EIP4844: Update `MAX_BLOBS_PER_BLOCK` to 4
2022-12-06 09:37:05 -07:00
Danny Ryan
5498519945 Merge pull request #3125 from terencechain/rm-is-data-available
EIP4844: remove optimistic sync mentions
2022-12-06 09:29:34 -07:00
Hsiao-Wei Wang
2a7083d3cd Merge pull request #3070 from etan-status/lc-blockfuncs
Pass blocks to LC data creation functions
2022-12-06 23:07:53 +08:00
Etan Kissling
f4dafcfebc Merge branch 'dev' into lc-blockfuncs 2022-12-05 18:38:40 +01:00
Etan Kissling
79c2099c9c Merge branch 'dev' into el-rlp 2022-12-05 17:47:20 +01:00
Etan Kissling
6cf8df086f Merge branch 'dev' into ci-phasesconfig 2022-12-05 16:46:37 +01:00
Etan Kissling
8524f54433 Merge branch 'dev' into sf-epochoverrides 2022-12-05 16:22:31 +01:00
Hsiao-Wei Wang
0dda0b2633 Fix tests 2022-12-01 23:37:16 +08:00
George Kadianakis
23d3aeebba EIP4844 precompile: Be strict when parsing field elements from network (#3138)
* EIP4844: bytes_to_bls_field() must not accept values >= BLS_MODULUS

bytes_to_bls_field() will be used in the precompile and hence it should error out when provided with malicious inputs.

* EIP4844: Add hash_to_bls_field() for use in compute_challenges()

The previous commit made bytes_to_bls_field() be strict about its inputs. However in compute_challenges() we are
dealing with Fiat-Shamir and hash outputs that could be innocuously higher than the modulus. For this reason we add the
hash_to_bls_field() helper for use in compute_challenges().

* EIP4844: Further use of bytes_to_bls_field() // Fix executable spec

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-12-01 14:59:00 +02:00