Commit Graph

1342 Commits

Author SHA1 Message Date
Etan Kissling
dc05a3f19e Rename test back 2022-12-12 13:13:25 +01:00
Etan Kissling
4df86632b6 Rename legacy --> altair in test name 2022-12-12 12:56:34 +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
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
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
Etan Kissling
f4dafcfebc Merge branch 'dev' into lc-blockfuncs 2022-12-05 18:38:40 +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
Alex Stokes
30bc3909d8 Merge pull request #3127 from ethereum/fix-eip4844-previous-version
Fix EIP4844 `previous_version` field in tests
2022-11-23 10:16:43 -07:00
kevaundray
f0ff15c14d EIP4844: Refactor Fiat-Shamir logic to handle empty sidecars (#3093)
Additionally, it makes the Fiat-Shamir hashing logic more robust by making the challenges independent of each other. It also makes it more efficient to implement by moving both challenge computations to a single function needing a single transcript hash.

Co-authored-by: George Kadianakis <desnacked@riseup.net>
Co-authored-by: Dankrad Feist <mail@dankradfeist.de>
2022-11-23 16:52:47 +02:00
Hsiao-Wei Wang
d202f620de Fix EIP4844 previous_version in tests 2022-11-23 05:10:46 +08:00
Etan Kissling
db796f70ad Add missing .config 2022-11-20 14:25:50 +01:00
Etan Kissling
f42da8d00b Apply with_config_overrides to all phases
When defining a fork transition test, additional spec forks are made
available through `@with_phases(..., other_phases=...)`.
The `with_config_overrides` decorator only applies to the primary phase
so far, which can be unexpected. `with_config_overrides` is adjusted to
override config in subsequent `other_phases` as well.
2022-11-19 12:58:20 +01:00
Etan Kissling
0fb2447a95 Merge branch 'dev' into lc-blockfuncs 2022-11-19 12:20:18 +01:00
Etan Kissling
c3000ed996 Merge branch 'dev' into sf-epochoverrides 2022-11-19 12:11:04 +01:00
Hsiao-Wei Wang
208da34ac4 Merge pull request #3119 from ethereum/eip4844-sync-testgen
Add EIP4844 sync tests
2022-11-19 02:08:38 +08:00
George Kadianakis
a45627164d Merge pull request #3097 from asn-d6/verify_kzg_proof_bytes_api
EIP4844: Refactor `verify_kzg_proof()` to receive bytes (used in precompile)
2022-11-18 20:01:18 +02:00
Hsiao-Wei Wang
b71ad2f8be Add EIP4844 sync tests 2022-11-19 01:55:01 +08:00
Hsiao-Wei Wang
c345f3063a Merge pull request #3112 from ethereum/double-bls-changes
Add more double/duplicate operations tests
2022-11-19 00:11:23 +08:00
Hsiao-Wei Wang
fbb13f0cf0 Apply naming suggestion from @djrtwo 2022-11-19 00:03:29 +08:00
Hsiao-Wei Wang
9f4adfde9d Add test_invalid_two_bls_changes_of_different_addresses_same_validator_same_block 2022-11-18 23:23:40 +08:00
Hsiao-Wei Wang
b78bd1fae0 Add other double-operations (attestations, deposits) tests 2022-11-18 23:14:57 +08:00
Danny Ryan
82007c33d5 bump VERSION.txt 2022-11-18 08:01:21 -07:00
Hsiao-Wei Wang
aac1af7db0 Add test_fail_double_bls_changes_in_same_block 2022-11-18 17:27:59 +08:00
Hsiao-Wei Wang
a1d259addf Merge pull request #3111 from ethereum/testgen-fix
Fix --preset-list argument and enhance error output
2022-11-18 17:18:39 +08:00
Hsiao-Wei Wang
8824259131 Fix --preset-list argument and enhance error output 2022-11-18 05:08:37 +08:00
Hsiao-Wei Wang
d12c2a3b73 Add EIP4844 random tests 2022-11-18 04:55:59 +08:00
Hsiao-Wei Wang
812618cdaf Fix fork test verifier 2022-11-18 03:37:24 +08:00
Hsiao-Wei Wang
5c5639f8f2 fix lint 2022-11-18 03:20:25 +08:00
Hsiao-Wei Wang
0c8885570e Add Capella and EIP4844 fork random tests 2022-11-18 03:20:25 +08:00
Hsiao-Wei Wang
2a40b513cb Add EIP4844 testgen 2022-11-18 03:20:22 +08:00
Hsiao-Wei Wang
ee0e2a03d2 Merge branch 'dev' into pr3052 2022-11-18 02:44:46 +08:00
Hsiao-Wei Wang
b6df4b5a9e Merge pull request #3066 from etan-status/lc-prooftest
Allow extending LC merkle proof tests
2022-11-18 02:34:07 +08:00
Hsiao-Wei Wang
f1d4c9047a Merge branch 'dev' into pr3052 2022-11-18 02:12:07 +08:00
Etan Kissling
b612ec5fd5 cleanup explicit fork enumerations in tests
Fork epoch override test decorators were still referring to `SHARDING`.
Replace the implementation with one that needs less maintenance.
2022-11-16 16:39:06 +01:00
terence tsao
bbc3ec02ff Fix typos 2022-11-12 23:36:34 -08:00
George Kadianakis
ff34006807 Refactor verify_kzg_proof() to receive bytes (used in precompile)
This way, client devs don't need to convert to field elements themselves, and the KZG library takes care fo it.
2022-11-12 01:47:39 +02:00
inphi
37144460be Fix merge conflict 2022-11-11 17:52:57 -05:00
inphi
3df1371897 Merge remote-tracking branch 'origin/dev' into inphi/eip4844-rebase 2022-11-11 17:32:06 -05:00
Hsiao-Wei Wang
a6c4b9ae9e Merge pull request #3072 from etan-status/sf-ispostfork
Move `is_post_xxx` functions to new module
2022-11-12 04:26:29 +08:00
inphi
67ba28c9d0 remove eip4844 epoch_processing package 2022-11-10 14:13:49 -05:00