Commit Graph

165 Commits

Author SHA1 Message Date
Hsiao-Wei Wang 95720872e6
Update README.md 2023-02-14 23:53:23 +08:00
Paul Harris 317facbd64 Replaced EIP4844 references with Deneb
Fixes #3207
2023-01-23 15:08:34 +01:00
Etan Kissling 375436094c
Merge branch 'dev' into lc-eph 2023-01-05 13:53:29 +01:00
Parithosh Jayanthi bd26c96a8c
Adds Github Actions CI (#3028)
* Squash commits

* Rename TEST_TYPE to TEST_PRESET_TYPE

* Try python3 -m pytest -n 16

* updating actions versions

* adding cleanup

* reorder

* Add eip4844

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-01-03 23:23:09 +08:00
Etan Kissling b0471511e5
Merge branch 'dev' into lc-eph 2023-01-03 15:36:37 +01:00
Hsiao-Wei Wang 2ac06c10d3
Update G2 trusted setup length to 65 2022-12-13 18:14:50 +08:00
Etan Kissling 8ad6810a44
EIP4844 support (`excess_data_gas`), fork tests nyi 2022-12-12 13:11:49 +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
Hsiao-Wei Wang 4f32fd95d6
Enable EIP4844 lint and fix Pylint 2022-11-28 20:01:50 +08:00
Hsiao-Wei Wang 7c016f3236
Add testing KZG trusted setups generator tool and load the file during building pyspec 2022-11-03 10:17:42 -05:00
Hsiao-Wei Wang b90436c988
Fix capella random & fork 2022-10-14 23:42:42 -05:00
Hsiao-Wei Wang 44424c4080
Bump dep packages version and fix lint issues 2022-09-28 12:38:21 +08:00
Etan Kissling c9f0927d8b
Merge branch 'dev' into lc-testsuite 2022-07-17 06:34:52 +02:00
Etan Kissling c6cd35aea4
Tabs --> Spaces 2022-07-15 14:05:45 +02:00
Etan Kissling e75e35fad1
Update `make check_toc` list 2022-07-15 14:03:18 +02:00
George Kadianakis 567a25f883 EIP-4844: Make the spec executable
- Implement all the required glue code to make things executable
- Implement a dummy KZG trusted setup

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:14:05 +03:00
Hsiao-Wei Wang 55202a4f00
Use the correct `TEST_REPORT_DIR` 2022-07-04 23:06:42 +08:00
Danny Ryan 656e6aef21
Merge pull request #2836 from ethereum/withdrawals-push
Withdrawals push
2022-03-24 10:08:29 -06:00
Justin Traglia 4c89fdb9b9 Fix indententation for one line in the Makefile
Real minor fix. Rule lines should start with a single tab, not spaces. Vim
clearly pointed this out by marking the entire line as red.
2022-03-22 15:05:56 -05:00
Danny Ryan b469593219
toc 2022-03-22 08:22:35 -06:00
Danny Ryan c10d219664
Merge branch 'dev' into withdrawals-push 2022-03-22 08:11:09 -06:00
protolambda 8ec4773339
EIP-4844: consensus layer changes 2022-03-10 06:52:27 +01:00
Danny Ryan 2026103bb9
Merge branch 'dev' into withdrawals-push 2022-02-23 15:08:29 -07:00
Alex Stokes fd27d93898
add `pylint` to catch unused args 2022-01-13 11:27:11 -08:00
Hsiao-Wei Wang 3b474eb2fe
Add capella to test coverage report target 2021-12-27 18:32:19 +08:00
Hsiao-Wei Wang 171a9ccc81
Resolve conflicts 2021-12-27 18:30:12 +08:00
Hsiao-Wei Wang 8facc0a095
Merge -> Bellatrix 2021-12-23 14:25:43 +08:00
Danny Ryan 4f24fe455b
basic capella withdrawal in place 2021-12-01 11:37:30 -07:00
Hsiao-Wei Wang 257173fc9e
Add The Merge spec to coverage report targets 2021-11-16 12:35:57 +08:00
Hsiao-Wei Wang 2f6e817f3d
Set CI job for each fork 2021-10-18 18:30:33 +08:00
Etan Kissling 559ca86e2a
"is build" -> "is built" typo
Corrects a typo in a Makefile comment.
2021-09-10 16:56:27 +02:00
Hsiao-Wei Wang 3be3643bcb
Rename `eth2.0-spec-tests` to `consensus-spec-tests` 2021-08-19 20:09:15 +08:00
Hsiao-Wei Wang 715e450e0b
Generate coverage report on `minimal` config spec by default 2021-05-26 00:18:59 +08:00
protolambda fb82472b46
update test generators 2021-05-18 18:48:58 +02:00
protolambda 0894125bf7
update test util 2021-05-18 13:59:26 +02:00
Diederik Loerakker 1c8f56c84b
Fix indentation of comment
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2021-04-22 02:35:54 +02:00
protolambda c99d72d541
update pyspec dev usage docs, improve makefile 2021-04-21 03:28:22 +02:00
Hsiao-Wei Wang 6e8b4b3ea9
Add eth2spec.merge.spec 2021-04-08 05:57:16 +08:00
protolambda 07b7774241
misc. phase1 modules refactor updates 2021-03-30 01:46:02 +02:00
protolambda 0c94be4204
clean up more phase1 test references 2021-03-27 00:14:32 +01:00
protolambda a6c01f8212
no phase1 in tests, per-feature testing now, executable specs will be re-enabled per feature 2021-03-26 23:21:36 +01:00
protolambda 6d2d8cb982
toc updates 2021-03-26 22:37:32 +01:00
Hsiao-Wei Wang f360a9823f
Add Makefile commands `detect_generator_error_log` and `detect_generator_incomplete` 2021-03-17 02:45:52 +08:00
Hsiao-Wei Wang a2268a432c
Fix missing --cov-report 2021-03-15 19:20:36 +08:00
Hsiao-Wei Wang b44e576e95
LIGHTCLIENT_PATCH/HF1 -> ALTAIR 2021-03-11 21:32:00 +08:00
Hsiao-Wei Wang 844c879f1c
Bump `py_ecc` and `milagro_bls_binding` (#2169)
* Bump py_ecc to v5.1.0 and milagro_bls_binding to v1.6.2

* python3.8 -> python3 for py39 compatibility

* fix

* Try python:3.9

* Revert: using Python3.8 in CI now
2021-01-05 21:00:52 +08:00
Hsiao-Wei Wang acfe49e3f3
executable light client patch: beacon-chain.md (#2141)
* Bump remerkleable to 0.1.18

* Disable `sync-protocol.md` for now. Make linter pass

* Enable lightclient tests

* Use *new* `optional_fast_aggregate_verify`

* Fix ToC and codespell

* Do not run phase1 tests with Lightclient patch

* Fix the Eth1Data casting bug. Add a workaround.

* Fix `run_on_attestation` testing helper

* Revert

* Rename `optional_fast_aggregate_verify` to `eth2_fast_aggregate_verify`

* Apply Proto's suggestion

* Apply Danny's suggestion

* Fixing tests

* Fix after rebasing

* Rename `LIGHTCLIENT` -> `LIGHTCLIENT_PATCH`

* New doctoc

* Add lightclient patch configs

* fix gitignore light client patch generator output

* Upgrade state for light client patch

* Add `lightclient-fork.md` to deal the fork boundary and fix
`process_block_header`

* Misc cleanups

1) Add a summary note for every function that is changed.
2) Avoid changing `process_block` (instead only change `process_block_header`).
3) Rename `G2_INFINITY_POINT_SIG` to `G2_POINT_AT_INFINITY` to avoid `SIG` contraction.
4) Misc cleanups

* Update block.py

* Update beacon-chain.md

* Fix typo "minimal" -> "mainnet"

Co-authored-by: Marin Petrunić <mpetrunic@users.noreply.github.com>

* Use the new `BeaconBlockHeader` instead of phase 0 version

* Update config files

* Move `sync_committee_bits` and `sync_committee_signature` back to `BeaconBlockBody`

Co-authored-by: protolambda <proto@protolambda.com>
Co-authored-by: Justin <drakefjustin@gmail.com>
Co-authored-by: Marin Petrunić <mpetrunic@users.noreply.github.com>
2020-12-15 13:18:20 +08:00
Hsiao-Wei Wang 4df3547edf
Make `lightclient` patch pass the linter (#2133)
* Make `lightclient` an executable patch fork

* fix conflicts

* Fix ToC

* Lightclient -> Light client

* Try protolambda/remerkleable#8

* Fix sync-protocol.md ToC

* Build lightclient/sync-protocol

* Fix typo

Co-authored-by: vbuterin <v@buterin.com>

Co-authored-by: vbuterin <v@buterin.com>
2020-11-17 10:41:26 +08:00
Hsiao-Wei Wang 20bd00cef0
Add `make lint_generators` linter check for test generators 2020-09-15 11:19:50 +08:00
Hsiao-Wei Wang adf8698778
Update the docs and remove unused code 2020-08-18 00:58:08 +08:00