Commit Graph

5373 Commits

Author SHA1 Message Date
Hsiao-Wei Wang 45f3432019
Update `MAX_BLOBS_PER_BLOCK` to `6` and add Deneb networking configs to yaml files (#3410) 2023-06-09 23:10:00 +08:00
Danny Ryan 05790d380b
Merge pull request #3406 from ethereum/deneb-4844-clean
specially mark EIP4844 changes
2023-06-09 08:46:48 -06:00
Lion - dapplion efd2429b3f
Move whisk_opening_proof to block body (#3408) 2023-06-09 11:28:06 +03:00
Hsiao-Wei Wang 76214c7cae
Merge pull request #3162 from dapplion/eip4844-dedup-range
De-duplicate range references in BlobSidecarsByRange
2023-06-09 00:54:27 +08: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 b7e21d6caf
PR feedback and make the marks italic 2023-06-08 15:05:46 +08:00
Hsiao-Wei Wang bab93e8d44
specially mark EIP7044 changes 2023-06-07 18:54:04 +08:00
Hsiao-Wei Wang 5f241bb7a4
Merge branch 'deneb-4844-clean' into pr3288-comment 2023-06-07 18:38:20 +08:00
Hsiao-Wei Wang a547d47264
specially mark the EIP4844 changes 2023-06-07 17:48:26 +08:00
Mikhail Kalinin f5e00848d0
Remove assert from is_data_available 2023-06-07 11:59:51 +06:00
Hsiao-Wei Wang 468b5be7b8
Merge pull request #3368 from ethereum/ralexstokes-patch-3
Remove extraneous length check from deneb forkchoice
2023-06-02 01:54:47 +08:00
Hsiao-Wei Wang c9b84ecc1a
Use `verify_blob_kzg_proof_batch` directly in `is_data_available` and remove `validate_blob` wrapper 2023-06-01 23:40:46 +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 aeca477398
Merge branch 'dev' into att-slot-range 2023-06-01 18:20:24 +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 653e03e702
Fix ToC 2023-05-30 21:12:47 +08:00
Hsiao-Wei Wang be33c4008a
Merge branch 'dev' into pr3288 2023-05-30 21:08:12 +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 a10affa245
Fix preset table 2023-05-24 21:15:01 +08:00
djrtwo 9bc27bad30 a couple of minor cleanups 2023-05-24 05:41:42 -06:00
Hsiao-Wei Wang e9cc8dcc05
PR feedback of Danny + verify `MAX_BLOBS_PER_BLOCK` size in unittest 2023-05-24 16:32:39 +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 a05b689b4c
Merge branch 'dev' into pr3338 2023-05-24 15:38:55 +08:00
Hsiao-Wei Wang 7a827638e6
Ensure `verify_and_notify_new_payload` returns bool 2023-05-24 12:56:10 +08:00
Hsiao-Wei Wang ec1ee74edb
Fix typo
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2023-05-24 12:17:07 +08:00
Hsiao-Wei Wang 53a9221d1a
Fix ToC 2023-05-24 11:55:22 +08:00
Hsiao-Wei Wang 212a314287
Fix ToC and remove `validate_blobs_and_kzg_commitments` 2023-05-24 11:27:26 +08:00
Hsiao-Wei Wang 6b5513b43a
Merge branch 'dev' into engine-versioned-hashes 2023-05-24 11:19:56 +08:00
Hsiao-Wei Wang 289d8147be
Move `verify_and_notify_new_payload` to Bellatrix 2023-05-24 11:12:03 +08:00
Hsiao-Wei Wang 0a90b58080
Merge branch 'engine-versioned-hashes-explicit' into engine-versioned-hashes 2023-05-24 10:40:36 +08:00
Hsiao-Wei Wang 738b9818b3
Merge pull request #3375 from ethereum/networking-configs
Add networking configs to config files
2023-05-24 10:38:35 +08:00
Hsiao-Wei Wang d018635c96
Merge pull request #3350 from ethereum/remove-is_execution_enabled
Remove `is_execution_enabled` condition since Capella
2023-05-24 10:36:34 +08:00
Hsiao-Wei Wang ee09c34261
Merge pull request #3232 from ethereum/capella-fc-cleanup
Remove `is_merge_transition_block` check since Capella
2023-05-24 10:36:14 +08:00
djrtwo 68ce45b305 move epoch subscription length to config 2023-05-23 13:56:09 -06:00
Hsiao-Wei Wang dd5e6f813f
Add `make_function_abstract` to make it more general 2023-05-24 01:59:02 +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 7ec5efb106
Add `### Block processing` back 2023-05-23 23:55:35 +08:00
Hsiao-Wei Wang 2192882faa
Merge pull request #3354 from g11tech/kzg-big-endian
Update the endianness of the polynomial commitments to be big endian
2023-05-23 23:43:19 +08:00
Hsiao-Wei Wang 73df1935b1
Use `verify_and_notify_new_payload` approach 2023-05-23 23:37:42 +08:00
Hsiao-Wei Wang 2eab6bfdaa
Merge branch 'dev' into engine-versioned-hashes 2023-05-23 15:21:00 +08:00
Hsiao-Wei Wang 3247bcf8f7
PR feedback from @ppopth 2023-05-23 15:16:12 +08:00
Danny Ryan fa4a103712
Apply suggestions from code review
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-05-22 08:07:43 -06:00
djrtwo 3550821577 Merge remote-tracking branch 'origin' into att-slot-range 2023-05-22 08:06:57 -06:00
gajinder feb1968e43 add comment 2023-05-22 18:44:12 +05:30
gajinder 4458645f0c add check 2023-05-22 18:41:40 +05:30
gajinder 8ccc2570d1 apply feedback 2023-05-20 19:35:22 +05:30
gajinder a75292beeb restore the 4844 max limit to 4 2023-05-20 19:08:21 +05:30
gajinder 9f530a7741 update max commitments per block limit to blobs per tx limit from eip4844 2023-05-20 19:06:52 +05:30
gajinder 1aad9b5fa0 adding a fixed theoretical limit for commitments in a block 2023-05-20 19:06:51 +05:30
gajinder 5e43f43df1 update limit to 4844 friendly 16 blobs 2023-05-20 19:05:44 +05:30
gajinder 17dac8cab9 Update MAX_BLOBS_PER_BLOCK to a higher bound 2023-05-20 19:05:44 +05:30
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 32036d84a3
Fix tests 2023-05-20 00:01:44 +08:00
Hsiao-Wei Wang aaa7fc622b
Merge branch 'dev' into pr3288 2023-05-19 23:32:09 +08:00
Hsiao-Wei Wang f87e1436bf
Add networking configs to config files 2023-05-19 22:39:18 +08:00
Alex Stokes 7097dcf27a
Clarify blob subnets 2023-05-18 15:27:47 -06:00
djrtwo 6679b8a1ae attslotrange -> eip-7045 2023-05-18 10:49:57 -06:00
Suphanat Chunhapanya 08a13261c2 Use SubnetID instead of uint64 2023-05-18 21:33:45 +07:00
Suphanat Chunhapanya 2f218f8336 Specify the number of sidecar subnets
Previously the number of subnets is equal to MAX_BLOBS_PER_BLOCK which
specifies the number of blobs per block. This commit now makes the
number of subnets equal to BLOB_SIDECAR_SUBNET_COUNT instead.

The advantage of doing this is that we can change MAX_BLOBS_PER_BLOCK
without worrying about the p2p network structure and the number of subnets.
2023-05-18 21:33:45 +07:00
djrtwo f967567ec7 add a comment annotation for fork update 2023-05-17 13:15:29 -06:00
terencechain db2e613aac
Nitpick: blob -> blob sidecar 2023-05-17 11:08:33 -07:00
Alex Stokes 1a4db24919
Update fork-choice.md
Remove duplicate check
2023-05-17 11:49:46 -06:00
djrtwo a08cc48e9e toc 2023-05-17 11:15:24 -06:00
djrtwo df1b105b05 change rewards flag tracking to allow for any inclusion delay for target reward flag 2023-05-17 11:08:15 -06:00
Justin Traglia 32358e8fad
Add comment about zero elements in batch verification (#3367) 2023-05-17 19:24:48 +03:00
Danny Ryan 235582f4f4
Update specs/_features/attslotrange/beacon-chain.md
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
2023-05-17 09:35:32 -06:00
djrtwo 558be7a9a3 add initialize beacon state from eth1 for AttSlotRAnge 2023-05-16 12:20:09 -06:00
Hsiao-Wei Wang 0b2f604f86
Fix tests 2023-05-17 00:24:49 +08:00
djrtwo 78403ccf8a add p2p for attslotrange 2023-05-16 09:48:23 -06:00
Alex Stokes 5a6052f46c
Update fork-choice.md
Stylistic change to be in line with validations in other specifications
2023-05-15 16:51:52 -06:00
djrtwo bce45c5671 working through att slot range fix 2023-05-15 11:35:29 -06: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
g11tech 928fd42517
fix typo
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-05-15 15:53:18 +05:30
Hsiao-Wei Wang 340f3cc1a3
Rebase the fc changes 2023-05-15 17:25:48 +08:00
Hsiao-Wei Wang f9c4076b87
Merge branch 'dev' into capella-fc-cleanup 2023-05-15 17:21:52 +08:00
gajinder 5b983f4097 Update the endianess of the polynomial commitments to be big endian 2023-05-12 21:44:43 +05:30
Michael Sproul 69d8c96de4
Apply proposer boost to first block in case of equivocation 2023-05-11 13:16:52 +10: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
Danny Ryan 363209d650
Merge pull request #3312 from AgeManning/attnets-revamp
Attnet revamp: Subnet backbone structure based on beacon nodes
2023-05-10 08:22:02 -06: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
dapplion 680b026d59 Add add_validator_to_registry fn 2023-05-09 19:18:42 +09:00
Hsiao-Wei Wang 5cb2733ed5
Add custom types `NodeID` and `SubnetID` and constant `NODE_ID_BITS` 2023-05-04 18:50:13 +08:00
Hsiao-Wei Wang 79b8a9abec
Apply suggestions from code review 2023-05-04 18:09:01 +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 a044c0c805
Merge branch 'dev' into pr3308 2023-05-01 16:31:45 +08:00
Hsiao-Wei Wang e31fcbd6a9
Add `GetPayloadResponse` for `get_payload` API 2023-04-28 23:25:13 +08:00
Hsiao-Wei Wang 22da92e597
Refactor the spec and add more test cases 2023-04-28 18:26:42 +08:00
Hsiao-Wei Wang 745d529598
Add `compute_subscribed_subnets` unittests and fix typing errors 2023-04-25 12:57:49 +08:00