82 Commits

Author SHA1 Message Date
Lion - dapplion
eef61448a9
Whisk: don't mutate candidates during cooldown (#3483) 2023-08-20 14:46:22 +03:00
Lion - dapplion
0b751fc259
Whisk move non-preset values to config (#3482) 2023-08-20 14:42:12 +03:00
Hsiao-Wei Wang
01c358c873
Rename "data gas" to "blob gas" 2023-07-25 13:28:34 +08:00
Danny Ryan
726b453332
Merge pull request #3446 from ppopth/on-reused-index
EIP-6914: Update the equivocating indices in the fork-choice store
2023-07-24 13:40:45 -06:00
Suphanat Chunhapanya
d8b023c5d8 Explain more on on_reused_index 2023-07-18 19:55:18 +07:00
Justin Traglia
16b1afb1ef Add punctuation to docstring 2023-07-15 17:53:10 +02:00
Justin Traglia
fafd48f06a Fix comment 2023-07-15 17:30:08 +02:00
Justin Traglia
3f3d4123f6 Unmark validators field as modified 2023-07-15 17:09:06 +02:00
Justin Traglia
86a147a740
Link to dev branch instead of master 2023-07-15 14:13:07 +02:00
Justin Traglia
4ddaff5a77
Fix links to curdleproofs.pie repo 2023-07-15 13:58:04 +02:00
Suphanat Chunhapanya
3ed0619951 Update the equivocating indices in the store
Since we sometimes reuse the slashed validator index, we need to remove
it from the list of equivocating indices in the fork-choice store.
2023-07-11 21:49:24 +07:00
Hsiao-Wei Wang
7b771ccb13
Merge branch 'dev' into eip7002 2023-06-26 18:07:48 +08:00
Alex Stokes
2660af0539
move 4788 feature to deneb specs 2023-06-22 09:00:50 -06:00
Lion - dapplion
c90d724392
Whisk: add preset files (#3424)
* Add Whisk preset files

* Use N=8 for minimal preset

* Update spec_object var location
2023-06-19 17:10:15 +03:00
Lion - dapplion
cc4c810b8f
Whisk: complete TODO items in fork logic (#3427)
* Complete TODO items in fork logic

* Simpler underflow protection

* Add saturating_sub
2023-06-19 17:08:51 +03:00
Hsiao-Wei Wang
59fd2a6400
Merge branch 'dev' into eip7002 2023-06-18 16:40:17 +08:00
Lion - dapplion
834f6f70e7
Whisk: assert zeroed values during selection gap (#3425)
* Assert zeroed values during selection gap

* Update comment
2023-06-15 14:33:28 +03:00
Lion - dapplion
65a28b6d69
Whisk: Move validator whisk trackers and commitments to state (#3407)
* Move validator whisk trackers and commitments to state

* Move comment
2023-06-14 18:58:57 +03:00
Lion - dapplion
0ab160bc28
Add initialize_beacon_state_from_eth1 (#3428) 2023-06-14 18:55:07 +03:00
Lion - dapplion
7b132c20d1
Fix typos in get_shuffle_indices (#3426) 2023-06-14 18:52:22 +03:00
Hsiao-Wei Wang
19edc2d1ec
Merge branch 'dev' into eip7002 2023-06-13 19:35:02 +08:00
Lion - dapplion
efd2429b3f
Move whisk_opening_proof to block body (#3408) 2023-06-09 11:28:06 +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
69ce4bb531
Merge branch 'dev' into excess_data_gas-type 2023-06-01 23:15:02 +08:00
Hsiao-Wei Wang
a965ca7ac4
Merge pull request #3391 from ethereum/data_gas_used
Add `data_gas_used` field to `ExecutionPayload`
2023-06-01 23:09:46 +08:00
Hsiao-Wei Wang
60721b9d8a
switch order 2023-06-01 22:39:01 +08:00
Hsiao-Wei Wang
2a53d484b8
Remove EIP7002 light client specs 2023-06-01 18:41:09 +08:00
Hsiao-Wei Wang
b8949677fd
Merge branch 'dev' into eip7002 2023-06-01 18:37:31 +08:00
Hsiao-Wei Wang
0d4b07f63c
Merge pull request #3389 from ethereum/fork-settings
Turn off light client tests for feature specs
2023-06-01 14:59:27 +08:00
Hsiao-Wei Wang
f6fe8e2729
Change ExecutionPayload.excess_data_gas type from uint256 to uint64 2023-05-30 20:36:58 +08:00
Hsiao-Wei Wang
296efec256
Add data_gas_used field to ExecutionPayload 2023-05-30 00:39:13 +08:00
Hsiao-Wei Wang
30da14e9b4
Create LIGHT_CLIENT_TESTING_FORKS to limit the light client tests 2023-05-25 13:49:41 +08:00
Hsiao-Wei Wang
f0a4281afd
Add tests. Add validation in the p2p beacon block gossiping 2023-05-24 16:11:32 +08:00
Hsiao-Wei Wang
6b5513b43a
Merge branch 'dev' into engine-versioned-hashes 2023-05-24 11:19:56 +08:00
Hsiao-Wei Wang
0754b94948
Merge branch 'dev' into remove-is_execution_enabled 2023-05-24 00:01:23 +08:00
Hsiao-Wei Wang
73df1935b1
Use verify_and_notify_new_payload approach 2023-05-23 23:37:42 +08:00
Hsiao-Wei Wang
d4483e4ca7
Merge branch 'dev' into eip7002 2023-05-20 01:38:08 +08:00
Hsiao-Wei Wang
8ecf89a2eb
Apply PR feedback from @djrtwo and add more tests 2023-05-20 01:37:50 +08:00
Hsiao-Wei Wang
92324ca845
Remove is_merge_transition_complete check from Capella 2023-05-20 01:14:10 +08:00
Hsiao-Wei Wang
0b2f604f86
Fix tests 2023-05-17 00:24:49 +08:00
Hsiao-Wei Wang
058137327a
Use new engine_newPayloadV3 2023-05-16 00:28:49 +08:00
Hsiao-Wei Wang
a11cc094ee
Update ExecutionLayerExit fields: replace validator_index with validator_pubkey 2023-05-15 20:07:11 +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
6e08327d1f
Fix light client tests 2023-05-10 22:59:39 +08:00
Hsiao-Wei Wang
0f5ac1186e
Remove is_execution_enabled condition since Capella 2023-05-10 03:01:20 +08:00
Hsiao-Wei Wang
b8e77c5486
Add EIP-7002 feature spec 2023-05-10 02:46:51 +08:00
Hsiao-Wei Wang
f1765dfef3
Merge branch 'dev' into deneb-tests 2023-05-04 18:04:20 +08:00
Hsiao-Wei Wang
e117ff4d71
Merge branch 'dev' into eip6110-tests 2023-05-02 21:24:02 +08:00
Hsiao-Wei Wang
e31fcbd6a9
Add GetPayloadResponse for get_payload API 2023-04-28 23:25:13 +08:00
Danny Ryan
3c8114cf4c
Merge pull request #3319 from ralexstokes/feat/eip-4788
add `EIP-4788` feature
2023-04-20 08:01:34 -06:00