Commit Graph

1374 Commits

Author SHA1 Message Date
Etan Kissling ce7fd412cc
Add test for LC data spanning 3 forks 2023-01-04 19:44:10 +01:00
Etan Kissling e5cda1745f
Run fork test for EIP4844 2023-01-04 19:15:34 +01:00
Etan Kissling b0471511e5
Merge branch 'dev' into lc-eph 2023-01-03 15:36:37 +01:00
Danny Ryan 302f54bfca
bump version.txt 2022-12-14 09:26:04 -07:00
Danny Ryan f7187a6657
Merge pull request #3156 from ethereum/kzg-trusted-setup
Update G2 trusted setup length to 65
2022-12-14 08:15:53 -07:00
Danny Ryan 991f81770b
Merge pull request #3157 from ethereum/balance-op
Add tests to test sync aggregate's order of balance operation
2022-12-14 08:15:09 -07:00
Hsiao-Wei Wang c7e102a5e5
PR feedback from @djrtwo and change the duplicate sync committee preconditions 2022-12-14 16:55:03 +08:00
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 2ac06c10d3
Update G2 trusted setup length to 65 2022-12-13 18:14:50 +08:00
Hsiao-Wei Wang 19c38dbac6
Add tests to test sync aggregate's order of operation 2022-12-13 17:35:34 +08: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
Etan Kissling a8dabc05a8
Add `test_eip4844_store_with_legacy_data` (fork test still nyi) 2022-12-12 19:08:45 +01:00
Danny Ryan 478b437b05
lint 2022-12-12 08:25:31 -07:00
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
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 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
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
Etan Kissling f8041091e4
Convert to Wei before multiply 2022-11-24 15:16:59 +01:00
Etan Kissling 0bb3470352
Formatting 2022-11-24 15:11:25 +01:00
Etan Kissling bfc634dc8c
Amount is Wei in EL world / Gwei in CL 2022-11-24 15:10:25 +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
Etan Kissling e9111a5168
Cleanup unnecessary init 2022-11-23 12:34:02 +01:00