Commit Graph

122 Commits

Author SHA1 Message Date
Hsiao-Wei Wang 4fe36dec58
Add transition test case of non-empty pre-state `historical_roots` 2024-01-18 00:10:45 +08:00
danny c6f7adf319
Merge pull request #3531 from dapplion/blob-p2p-proof
Add blob sidecar inclusion proof
2023-11-02 09:56:08 -06:00
Hsiao-Wei Wang 1bac25a623
Add Merkle proof test 2023-10-31 01:29:30 +08:00
Hsiao-Wei Wang b9285b8fe7
Add `validator_is_connected` 2023-10-26 23:51:05 +08:00
Michael Sproul 9ce8e3d6e9
Update test format. Add `get_proposer_head` 2023-10-26 23:50:46 +08:00
Hsiao-Wei Wang 35d444b9d2
Update test format and output `should_override_forkchoice_update` result 2023-10-25 02:10:55 +08:00
Hsiao-Wei Wang 56d6d1a51e
Merge pull request #3463 from ethereum/deneb-fc-tests-take-2
Deneb fork choice tests - take 2
2023-08-03 21:40:24 +08:00
Potuz b30990330f Danny's fix 2023-08-02 14:16:31 -03:00
Potuz 7ba238a1e8 fix test format descrition 2023-08-02 10:40:10 -03:00
Hsiao-Wei Wang 39134d594a
Change it back to allow empty `blobs` list file 2023-07-31 19:47:53 +08:00
Hsiao-Wei Wang 85b0ae854f
handle `len(blobs) == 0` case 2023-07-27 23:13:49 +08:00
Hsiao-Wei Wang 2210cea734
Add deneb fc tests and update test format 2023-07-25 22:29:12 +08:00
Hsiao-Wei Wang 6b5513b43a
Merge branch 'dev' into engine-versioned-hashes 2023-05-24 11:19:56 +08:00
George Kadianakis a7f8659725 KZG test vector format also uses big endian now 2023-05-19 17:17:24 +03:00
Hsiao-Wei Wang 0b2f604f86
Fix tests 2023-05-17 00:24:49 +08:00
Hsiao-Wei Wang f7352d18cf
Merge pull request #3341 from ethereum/add-GetPayloadResponse
Add `GetPayloadResponse` dataclass for `get_payload` API
2023-05-10 23:33:57 +08:00
Hsiao-Wei Wang e31fcbd6a9
Add `GetPayloadResponse` for `get_payload` API 2023-04-28 23:25:13 +08:00
Mikhail Kalinin 389b79408b Add EIP6110 operations gen, and to fork upgrades list 2023-04-06 17:39:19 +06:00
Aditya Asgaonkar e9551715d5 large fork choice upgrade 2023-03-13 11:52:43 -07:00
dankrad 15033d28b9
Modify compute_[blob_]kzg_proof to remove superfluous computations (#3280)
Add parameter `commitment` to `compute_blob_kzg_proof` and output `y` to `compute_kzg_proof`
2023-03-07 17:50:56 +00:00
dankrad 86fb82b221
Test generators for kzg-4844 libraries (#3274)
Arkworks integration and test generators for kzg-4844 libraries
2023-03-02 20:49:10 +00:00
Etan Kissling ffd047c6fa
Consistent test step naming 2023-01-14 14:51:59 +01:00
Etan Kissling b7205813fd
Update sync test documentation 2023-01-12 19:01:57 +01:00
Etan Kissling 82d6267951
Merge branch 'dev' into lc-eph 2023-01-12 18:44:54 +01:00
Etan Kissling 375436094c
Merge branch 'dev' into lc-eph 2023-01-05 13:53:29 +01:00
Etan Kissling 5c64a2047a
Add `LightClientHeader` wrapper
In Altair, light client sync protocol exchanges `BeaconBlockHeader`
structures for tracking current progress. Wrapping `BeaconBlockHeader`
inside a `LightClientHeader` allows future extensions of this header,
e.g., to also track `ExecutionPayloadHeader`.

Note: This changes the JSON REST format by adding a `beacon` nesting.
For SSZ, the serialization format stays same (but overall root changes).
2023-01-05 13:36:04 +01:00
protolambda 5998836449
tests/formats: update epoch and operations formats to reflect push-withdrawals (#3184)
* tests/formats: update epoch and operations formats to reflect push-withdrawals of PR 3068

* fix typo

* Update epoch processing readme

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-01-04 18:20:09 +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
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
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
terence tsao bbc3ec02ff Fix typos 2022-11-12 23:36:34 -08:00
Etan Kissling cfad029f45
Merge branch 'dev' into lc-prooftest 2022-11-07 14:41:27 +01:00
Etan Kissling 5c66300171
Use `suite_name` instead of `meta.yaml` for SSZ type 2022-10-28 20:32:33 +02:00
Etan Kissling 990866dd9f
Rename LC test check from `root` to `beacon_root`
Future light client tests will also incorporate execution payload data.
To avoid confusion, rename the current `root` check to `beacon_root`.
Doing this now, as #3066 already requires LC test runners to update.
2022-10-27 22:06:11 +02:00
Etan Kissling cdaf7e84dd
Allow extending LC merkle proof tests
Currently, `test_single_merkle_proof` only supports `BeaconState` tests.
For future tests, different object classes are desirable. Update format
to allow testing other objects as well.
2022-10-27 21:59:48 +02:00
Hsiao-Wei Wang f48d6b324d
Update test formats 2022-10-20 22:27:49 -05:00
Hsiao-Wei Wang 73c96b238a
Merge pull request #3001 from ethereum/bls-output-null
Update BLS test format: output `null` for invalid case
2022-09-22 14:36:31 +08:00
Hsiao-Wei Wang 93b7ae299d
Update BLS test format: output `null` for invalid case 2022-09-21 01:24:22 +08:00
Hsiao-Wei Wang 0f8e12e929
Add a redirection README.md for the sync tests 2022-09-20 18:13:15 +08:00
Mikhail Kalinin b67fb5b049
Update tests/formats/fork_choice/README.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-08-24 23:29:59 +06:00
Mikhail Kalinin 14d4f44c11 Extend fork_choice test format with on_payload_info 2022-08-03 18:19:39 +06:00
Danny Ryan 981b05afb0
Merge pull request #2950 from ethereum/mv-merkle-tests
Move `merkle/single_proof` tests to `light_client/single_merkle_proof`
2022-07-26 12:46:51 -04:00
Alex Stokes 7e54cd09b0
Update README.md 2022-07-22 13:15:46 -06: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 8643e28f12
`try_...` --> `process_...` 2022-07-22 11:49:07 +02:00
Etan Kissling f9d866eb28
Manually trigger `LightClientStore` force updates
Replaces `process_slot_for_light_client_store` which force updates the
`LightClientStore` automatically based on `finalized_header` age with
`try_light_client_store_force_update` which may be manually called based
on use case dependent heuristics if light client sync appears stuck.
Not all use cases share the same risk profile.
2022-07-21 16:06:46 +02:00
Etan Kissling 30d635259b
Move test files to `light_client` subdir 2022-07-15 21:36:26 +02:00
Etan Kissling de15971ae8
Cleanups 2022-07-15 13:45:34 +02:00
Etan Kissling 3c5d347cdc
Emit checks after each individual test step
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-15 13:13:33 +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