Commit Graph

182 Commits

Author SHA1 Message Date
Parithosh Jayanthi e52594634c
WIP: Update dockerisation (#3477)
* 🐳 add Dockerfile and dockerfile based script for consensus-spec tests
2024-01-04 17:09:06 +01:00
Hsiao-Wei Wang d399cdedfa
Fix linter config 2023-12-15 00:56:41 +08:00
Hsiao-Wei Wang 01fa0fe64a
Replace `ROOTS_OF_UNITY` with runtime-computed `compute_roots_of_unity(FIELD_ELEMENTS_PER_BLOB)` 2023-10-16 17:38:09 +08:00
Hsiao-Wei Wang c5785899f7
Use official KZG ceremony output `trusted_setup_4096.json` trusted setups 2023-10-12 19:54:18 +08:00
Hsiao-Wei Wang f958c5fc61
Merge branch 'dev' into pr3255 2023-10-10 10:40:59 +09:00
Hsiao-Wei Wang a39abe388b
Upgrade `wheel`, `pip`, and `setuptools` with `make install_test` (#3443)
* Upgrade wheel pip setuptools with `make install_test`

* Set minimum requirements
2023-07-14 21:37:51 +08:00
dapplion 68bb5ee507 Ensure make lint resolves to the right pylint and mypy versions 2023-06-08 15:00:49 +03:00
Lion - dapplion 241e52a202
Whisk (SSLE) with Curdleproofs - rebased (#3342)
* Introduce consensus code for Whisk

* polish, simplify, clean up (~100 fewer lines)

@asn-d6: As discussed, I fixed a few bugs along the way but likely also introduced some bugs :)

* minor cleanups and fixes

* simplify is_k_commitment_unique

* Update beacon-chain.md

* Update beacon-chain.md

* Initialize `k` in `get_validator_from_deposit()`

* minor cleanups

* Update beacon-chain.md

* Create beacon-chain.md

This PR changes the Whisk tracker format to be of the form `(r * pubkey, r * BLS_GT_GENERATOR)` instead of `(r * k * BLS_G1_GENERATOR, r * BLS_G1_GENERATOR)`. This allows for non-interactive tracker registrations from validator pubkeys, removing ~50 lines the code. It also significantly reduces the amount of state overhead. This PR also removes permutation commitments, though those can be easily readded if deemed necessary.

* A couple of fixes to the no-registration simplification

@asn-d6: Readded a consistency check for `IsValidWhiskOpeningProof` (involving `pubkey` instead of `k_commitment`).

* remove unused helpers

* use Mary's suggested tracker

* Update beacon-chain.md

* Revert G_t element optimization

This needs its own ethresearch post, and some additional analysis to see if we can do the shuffle ZKP in the allowed
timeframe.

This reverts commit 8517acabfc1dbb1a35789e6170b5db0bb2c19c9a.

* Implement new shuffling strategy

Ditch the Feistel logic and instead have each shuffler pick the row they shuffle using their RANDAO reveal.

* Curdleproofs edits

* working whisk eth2spec

* working whisk dummy test

* add more boilerplate set up code

* rebase constants

* Implement even newer and simplified shuffling strategy

This commit further simplifies 0faef30fc131d1b471b63a7f16772eeeef548ef8 by removing the entire squareshuffle.

The latest version of https://eprint.iacr.org/2022/560 proposes that each shuffler picks random indices from the entire
candidate set instead of organizing validators into a square.

* Move to _features

* remove dummy test

* Run doctoc

* Change Whisk's previous fork to Capella instead of Bellatrix. Make linter happier.

* Fix lint

* Fix pylint

* Fix mypy issues

* Clean-up get_beacon_proposer_index

* Fix doc headers

* Fix capella link

* Update apply_deposit

* Rename process_shuffled_trackers

---------

Co-authored-by: George Kadianakis <desnacked@riseup.net>
Co-authored-by: Justin <drakefjustin@gmail.com>
Co-authored-by: Nalin Bhardwaj <nalinbhardwaj@nibnalin.me>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-06-08 15:35:03 +08:00
Hsiao-Wei Wang 21d4370fd5
Add docs about how to add a new feature proposal in consensus-specs and online viewer support (#3239)
* Add docs

* update link to template

* Add more info

* Try mkdocs

* Create docs.yml

* Update docs.yml

* update

* update

* update

* Try mkdocs

* Add "B: Make it executable for pytest and test generator" section

* Use mkdocs-material

* Use `mkdocs-awesome-pages-plugin` to create custom specs order

* Add toc permalink

* Update site_url

* Add .pages files for navigations. Update highlight style

* Dark theme

* Fix list indent
2023-04-18 18:31:34 +08:00
Danny Ryan b53392b463
Merge pull request #3177 from mkalinin/deposits
In-protocol deposits flow (no queue approach)
2023-03-14 11:33:36 -06:00
Hsiao-Wei Wang baaab93e6b
Merge branch 'dev' into pr3255 2023-03-10 14:58:32 +08: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
Hsiao-Wei Wang 4a59bcfaa9
Merge branch 'dev' into deposits 2023-03-01 00:10:30 +08:00
Hsiao-Wei Wang 1f3249407a
Full wildcard search `MARKDOWN_FILES` 2023-02-28 23:51:31 +08:00
Hsiao-Wei Wang 195babdf3d
Refactoring the specs list. Avoid listing specs again and again. 2023-02-28 22:09:12 +08:00
Hsiao-Wei Wang fda0eae70a
Add EIP6110 to pylint and mypy scope 2023-02-23 23:41:57 +08:00
Hsiao-Wei Wang 4fa396d2cf
Update testing_trusted_setups.json 2023-02-16 23:47:28 +08:00
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