Commit Graph

194 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
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
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
Hsiao-Wei Wang
b71ad2f8be Add EIP4844 sync tests 2022-11-19 01:55:01 +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
5c5639f8f2 fix lint 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
3fc1ebce06 Move some Capella operation tests to sanity/blocks tests 2022-11-07 08:39:10 -05:00
Hsiao-Wei Wang
6c7922df67 Fix bls test case file name 2022-10-26 11:03:16 -05:00
Hsiao-Wei Wang
940fc20758 Apply suggestions from code review
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-10-17 23:21:15 +08:00
Hsiao-Wei Wang
b90436c988 Fix capella random & fork 2022-10-14 23:42:42 -05:00
Hsiao-Wei Wang
03ced9c263 Add Capella tests 2022-10-14 23:40:45 -05:00
Hsiao-Wei Wang
44424c4080 Bump dep packages version and fix lint issues 2022-09-28 12:38:21 +08:00
Hsiao-Wei Wang
f8d92c3bd8 Add basic test case 2022-08-24 23:20:31 +08:00
Hsiao-Wei Wang
5db5b87e5e Add bellatrix deposit and voluntary_exit tests 2022-08-19 01:52:34 +08:00
Hsiao-Wei Wang
d133dae471 Fix codespell errors (#2975) 2022-08-18 22:08:44 +08:00
Hsiao-Wei Wang
d95c45523f Fix path: the bellatrix-new tests have been moved to altair file 2022-08-16 14:29:56 +08:00
Hsiao-Wei Wang
176a5d227a Move merkle/single_proof tests to light_client/single_merkle_proof 2022-07-22 21:34:09 +08:00
Etan Kissling
30d635259b Move test files to light_client subdir 2022-07-15 21:36:26 +02:00
Etan Kissling
86fe93ca96 Add functions for deriving light client data
Adds `create_light_client_bootstrap` and `create_light_client_update`
functions as a reference implementation for serving light client data.
This also enables a new test harness to verify that light client data
gets applied to a `LightClientStore` as expected.
2022-07-14 09:36:09 +02:00
Etan Kissling
c4dbd241ac Root next_sync_committee in attested_header
`LightClientUpdate` structures currently use different merkle proof root
depending on the presence of `finalized_header`. By always rooting it in
the same state (the `attested_header.state_root`), logic gets simpler.

Caveats:
- In periods of extended non-finality, `update.finalized_header` may now
  be outdated by several sync committee periods. The old implementation
  rejected such updates as the `next_sync_committee` in them was stale,
  but the new implementation can properly handle this case.
- The `next_sync_committee` can no longer be considered finalized based
  on `is_finality_update`. Instead, waiting until `finalized_header` is
  in the `attested_header`'s sync committee period is now necessary.
- Because `update.finalized_header > store.finalized_header` no longer
  holds (for updates with finality), an `is_better_update` helper is
  added to improve `best_valid_update` tracking (in the past, finalized
  updates with supermajority participation would always directly apply)

This PR builds on prior work from:
- @hwwhww at https://github.com/ethereum/consensus-specs/pull/2829
2022-07-01 14:49:24 -07:00
Alex Stokes
2dd9a52fe4 remove data logging from BLS test gen 2022-06-29 10:24:53 -06:00
Alex Stokes
129d9e28b4 add randomized tests for bellatrix 2022-01-27 19:41:09 -08:00
Antonio Sanso
7255faf41b Update ssz_container.py 2022-01-13 13:40:48 +01:00
Alex Stokes
c4a60225cb Merge branch 'dev' into patch-5 2022-01-11 16:09:40 -06:00
Alex Stokes
d74cb5c9ec remove unnecessary conditional 2022-01-06 15:34:59 -08:00
Antonio Sanso
e56dddd6ec Update tests/generators/ssz_generic/ssz_container.py
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:07:48 +01:00
Antonio Sanso
69a2fb4af0 Update tests/generators/ssz_generic/ssz_container.py
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:07:31 +01:00
Antonio Sanso
7df0d4d70e Update tests/generators/ssz_generic/ssz_container.py
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:07:23 +01:00
Antonio Sanso
22719f2748 Update tests/generators/ssz_generic/ssz_container.py
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:06:50 +01:00
Antonio Sanso
6f64d46bc4 Update tests/generators/ssz_generic/ssz_container.py
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:06:42 +01:00
Antonio Sanso
db16f590cb fixing lint 2022-01-06 13:29:57 +01:00
Antonio Sanso
b5908cf294 fixing lint 2022-01-06 13:28:19 +01:00
Antonio Sanso
7ccd528cd1 fixing lint 2022-01-06 13:26:00 +01:00
Antonio Sanso
b220655d24 Add 3 new invalid test cases 2022-01-06 13:08:47 +01:00
Hsiao-Wei Wang
5910b90c43 Enable Bellatrix fork tests in test generator 2021-12-24 00:56:55 +08:00
Hsiao-Wei Wang
8facc0a095 Merge -> Bellatrix 2021-12-23 14:25:43 +08:00
Hsiao-Wei Wang
addc03cb7c Enable ex-ante tests in testgen and minor fixes 2021-12-09 17:47:20 +08:00
Antonio Sanso
dfb3ef8f2c Update ssz_container.py 2021-11-24 08:42:27 +01:00
Hsiao-Wei Wang
49d96f92ef Add a sample altair-to-merge-only transition 2021-11-12 17:06:10 +08:00
Hsiao-Wei Wang
0641d1c184 ALL_FORKS sounds like a list of fork names. Rename it to ALL_FORK_UPGRADES 2021-11-02 19:01:32 +08:00
Hsiao-Wei Wang
0b0fe15c75 Make altair transition tests support merge forks 2021-11-02 14:47:24 +08:00
Hsiao-Wei Wang
3a242a1e0b Refactor and add test cases of having operation right before the fork 2021-10-15 00:02:33 +08:00
Hsiao-Wei Wang
49bf78d431 PR feedback 2021-10-14 22:40:29 +08:00
Hsiao-Wei Wang
f0980a4ab9 Refactoring. Sort tests to specific files. 2021-10-13 00:26:23 +08:00
Hsiao-Wei Wang
e821ddade2 Remove the trailing comma 2021-10-07 21:44:51 +08:00
Hsiao-Wei Wang
7a7ab81306 Also update other generators so that we won't write the bad pattern again 2021-10-07 03:14:29 +08:00
Hsiao-Wei Wang
dcdbff0728 Combine the conflicting handler names 2021-10-07 02:11:50 +08:00