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
dapplion
211376e35c
Update curdleproofs usage
2023-07-24 20:15:46 +02: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
Hsiao-Wei Wang
71c25f8664
Merge branch 'dev' into pr3442
2023-07-14 22:25:39 +08: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
dapplion
7f9a0264ce
Update specs with state.whisk_trackers
2023-07-05 17:18:54 +02:00
dapplion
91ff707887
Fix test lint issues
2023-07-05 17:18:52 +02:00
dapplion
4ce2b02b44
Add whisk tests
2023-07-05 17:18:34 +02:00
Hsiao-Wei Wang
7b771ccb13
Merge branch 'dev' into eip7002
2023-06-26 18:07:48 +08:00
Danny Ryan
fa649e5430
Update specs/deneb/beacon-chain.md
2023-06-22 10:02:23 -06:00
Danny Ryan
ad4f1def32
Apply suggestions from code review
2023-06-22 10:01:49 -06:00
Alex Stokes
2660af0539
move 4788 feature to deneb specs
2023-06-22 09:00:50 -06:00
Alex Stokes
57a75d033f
formatting
2023-06-21 11:40:54 -06:00
Danny Ryan
95f36d99cf
Merge pull request #3360 from ethereum/att-slot-range
...
EIP-7045: Increase max attestation inclusion slot
2023-06-21 08:30:26 -06:00
djrtwo
ecefe2d147
pr review
2023-06-20 15:50:20 -06:00
djrtwo
668568ea22
spelling
2023-06-19 12:05:49 -06:00
djrtwo
919052081b
toc
2023-06-19 08:33:05 -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
Roberto Saltini
5e3c0107ef
Review change
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-06-18 19:07:35 +10:00
Hsiao-Wei Wang
59fd2a6400
Merge branch 'dev' into eip7002
2023-06-18 16:40:17 +08:00
Roberto Saltini
911968413f
Merge branch 'ethereum:dev' into fork-choice-changes-for-confirmaton-rule
2023-06-17 15:14:06 +10:00
Hsiao-Wei Wang
781cd83f09
fix typo
2023-06-16 17:21:34 +08:00
Hsiao-Wei Wang
66eca39533
Merge branch 'dev' into pr3311
2023-06-16 16:24:55 +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
Roberto Saltini
7c023cc3cf
Fork choice changes to enable confirmation rule execution via beacon APIs
2023-06-15 11:07:30 +10:00
djrtwo
ec4bdae2d4
build EIP 7045 into Deneb fork
2023-06-14 15:03:28 -06: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
djrtwo
559b89c447
Merge branch 'dev' into att-slot-range
2023-06-14 09:35:30 -06:00
Danny Ryan
14212958d3
Merge pull request #3288 from dapplion/voluntary_exit-domain
...
EIP-7044: Lock voluntary exit domain on capella
2023-06-14 09:26:33 -06:00
Hsiao-Wei Wang
420f8baf67
Rework tests. Move all `process_voluntary_exit` tests to Deneb
2023-06-14 23:04:46 +08:00
Lion - dapplion
12fabf5854
Update specs/deneb/beacon-chain.md
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2023-06-14 16:47:17 +03:00
Hsiao-Wei Wang
19edc2d1ec
Merge branch 'dev' into eip7002
2023-06-13 19:35:02 +08:00
Hsiao-Wei Wang
210c4827bc
Move `BLOB_SIDECAR_SUBNET_COUNT` to networking config
2023-06-12 23:57:21 +08:00
gajinder
512d2ca516
Update blob side car subnet count to 6 in line with max blobs limit update
2023-06-12 20:24:22 +05:30
Hsiao-Wei Wang
99f294cdd8
Add link to EIP PR7044. Need to change it to eips.ethereum.org path once the EIP is merged
2023-06-12 16:02:28 +08:00
Hsiao-Wei Wang
4f839b7b79
Merge branch 'dev' into pr3288-comment
2023-06-12 15:51:52 +08:00
Paul Harris
5576d0e685
Moved configuration into network preset instead of constants. ( #3394 )
...
* Moved configuration into network preset instead of constants.
Now that `MAX_CHUNK_SIZE` and `GOSSIP_MAX_SIZE` are in configuration, we no longer need separate constants to represent them in the spec when they change in Bellatrix.
I've changed the usage, and put the values into the presets, but I'm not sure if I've updated the descriptions in the best way...
This is following on from the work in #3375 where a number of constants got moved into configuration, so we no longer need these constants to be separately represented, they can simply be updated in presets.
* Update presets/minimal/bellatrix.yaml
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update presets/mainnet/bellatrix.yaml
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Moved preset items into the correct section and updated TOC.
It looked like the items listed in configuration about the max size and chunk size were no longer needed since we're updating preset values now and the preset changes seem to only be listed in the changes at the top.
* review feedback
* hopefully correct this time! Moved the 2 fields from configs into presets completely as suggested.
* WIP - changing back to being in config and updating the phase 0 value... I think this should be close but want to see what's outstanding.
* fix intellij's formatting of table.
* more fixes
---------
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-06-09 23:12:38 +08:00
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
Ben Edgington
b7f3d37a52
Move is_previous_epoch_justified
2023-04-21 09:16:51 +01: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
Danny Ryan
5e1153311b
Merge pull request #3307 from dapplion/reuse-indexes
...
EIP6914 - Reuse indexes with full sweep
2023-04-19 17:57:12 -06:00
dapplion
498fbd04a2
rename SAFE_EPOCHS_TO_REUSE_INDEX
2023-04-20 08:52:25 +09:00
dapplion
accf99fba3
rename to eip6914
2023-04-20 08:47:49 +09:00
Hsiao-Wei Wang
03a3e4082a
Fix p2p-interface.md ToC
2023-04-19 19:10:46 +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
Roberto Saltini
ffb84598cf
Fixed doc in get_checkpoint_block
2023-04-18 16:03:10 +10:00
Roberto Saltini
c985605973
Fix copy and past error
2023-04-18 13:49:08 +10:00
Roberto Saltini
36fcb81b88
Break long statement into two statements
2023-04-18 13:26:16 +10:00
Roberto Saltini
334114d9d3
Rename get_ancestor_at_epoch_boundary to get_checkpoint_block
2023-04-18 13:14:53 +10:00
Roberto Saltini
fdf2dc7f10
Merge remote-tracking branch 'upstream/dev' into add_get_boundary_block
2023-04-18 13:11:08 +10:00
Age Manning
6e423f6c42
Stagger node rotations
2023-04-12 11:29:48 +10:00
Alex Stokes
1c5b9fddaf
add `EIP-4788` feature
2023-04-11 13:34:42 +09:00
Roberto Saltini
41386092b7
Apply changes to p2p-interface.md
2023-04-08 14:00:01 +10:00
Mikhail Kalinin
3e7e780b77
Apply suggestions from code review
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-04-06 17:04:49 +06:00
Mikhail Kalinin
108f1eed86
Rebase EIP6110 to Deneb
2023-04-06 16:53:31 +06:00
Marius van der Wijden
8fafc6c695
deneb: switch blob tx type to 0x03
2023-04-06 11:20:07 +02:00
Age Manning
a0d03378fa
Correct subnet subscription duration variable
2023-04-06 12:40:55 +10:00
Hsiao-Wei Wang
4cac761818
make linter happy
2023-04-05 11:38:20 +08:00
Hsiao-Wei Wang
cdcf45855a
Merge branch 'dev' into pr3308
2023-04-05 11:19:09 +08:00
Suphanat Chunhapanya
912c9b37a1
Fix typos
2023-04-04 13:33:42 +07:00
dapplion
622c9b97ba
Fix CI
2023-04-04 12:00:09 +09:00
dapplion
25ea243859
PR comments
2023-04-04 11:45:08 +09:00
Roberto Saltini
e255d09840
Apply changes to Bellatrix and Daneb
2023-03-31 10:52:52 +11:00
Hsiao-Wei Wang
0dd8db76cd
Make linter happy. Add `SUBNET_DURATION_IN_EPOCHS` definition.
2023-03-30 14:51:41 +08:00
Age Manning
7cb1630902
Attnet revamp draft
2023-03-30 15:32:35 +11:00
dapplion
3d9c87b27c
Move to misc helpers
2023-03-30 09:44:34 +09:00
dapplion
f696b30608
Address PR review
2023-03-30 09:11:36 +09:00
Roberto Saltini
c7029ce19e
Rename get_epoch_boundary_block to get_ancestor_at_epoch_boundary
2023-03-29 12:40:58 +11:00
dapplion
314b040fff
Reduce line len
2023-03-28 17:45:52 +09:00
Hsiao-Wei Wang
cd7783e59d
EIP-6110: Fix `compute_fork_version` and add light client specs
2023-03-28 15:08:03 +08:00
dapplion
c1273bbfa4
Add epoch > REUSE_VALIDATOR_INDEX_DELAY condition
2023-03-28 15:46:01 +09:00
dapplion
ee3e1ac63e
Apply review comments
2023-03-28 15:34:07 +09:00
Hsiao-Wei Wang
8acc31adce
Fix the default testing genesis by setting `deposit_receipts_start_index` and fork versions
2023-03-28 14:23:23 +08:00
Roberto Saltini
ddbd82e1be
Add toc
2023-03-28 15:51:34 +11:00
Roberto Saltini
201f113b50
Introduce get_epoch_boundary_block
2023-03-28 15:43:48 +11:00
dapplion
f9b359be09
Reuse indexes with full sweep
2023-03-28 12:44:21 +09:00
omahs
3115d1140b
Fix: typos
2023-03-25 13:14:57 +01:00
terence tsao
a9abfeb217
Denbeb -> Deneb
2023-03-23 17:21:41 -07:00
Hsiao-Wei Wang
334601c032
Merge pull request #3299 from asn-d6/inv_no_inputs
...
Reject zero inputs in bls_modular_inverse()
2023-03-20 14:18:58 +08:00
Hsiao-Wei Wang
18eb1fa334
Set `CAPELLA_FORK_EPOCH` to `194048`
2023-03-20 13:48:49 +08:00
George Kadianakis
0e0403d0e2
Reject zero inputs in bls_modular_inverse()
2023-03-17 11:50:53 +02:00
Hsiao-Wei Wang
de57f2ac91
Merge pull request #3284 from etan-status/lc-forkversion
...
Check correct fork version in LC sync protocol
2023-03-16 09:08:01 +08:00
Danny Ryan
985fcc2525
Merge pull request #3283 from ethereum/deneb-crypto-coverage
...
Deneb crypto helpers test coverage
2023-03-15 11:28:43 -06:00
Danny Ryan
5977f36fef
minor nits from code review
2023-03-15 10:54:49 -06:00
Danny Ryan
41f4472ad5
Merge pull request #3291 from kevaundray/patch-10
...
Deneb : Change description for blob
2023-03-15 10:51:39 -06:00
Danny Ryan
a0eb23f108
Merge pull request #3290 from ethereum/fork-choice-upgrade
...
Fork choice upgrade
2023-03-15 10:51:09 -06:00
kevaundray
8fd22ab504
code review
2023-03-15 15:25:09 +00:00
dankrad
3141806100
Merge branch 'dev' into deneb-crypto-coverage
2023-03-14 22:45:06 +00:00
Dankrad Feist
3e281e7457
Alternative for linter
2023-03-14 22:22:23 +00:00
Dankrad Feist
2d4bfabceb
Correct signature of get_blobs_and_kzg_commitments
2023-03-14 22:16:41 +00:00
Dankrad Feist
ff7a6c5d0e
Add description when to use verify_sidecar_signature
2023-03-14 22:14:31 +00:00
Aditya Asgaonkar
1a2967a542
Apply suggestions from @djrtwo
2023-03-14 14:49:41 -07:00
kevaundray
637ef34133
fix : change description for blob
2023-03-14 21:00:20 +00:00
Aditya Asgaonkar
3de96f7a19
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2023-03-14 13:54:57 -07:00
Danny Ryan
f7837e84e5
Merge pull request #3275 from tbenr/patch-1
...
Add `blob_sidecar` gossip rule for parent slot
2023-03-14 12:15:38 -06: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
Danny Ryan
0ae18d86e3
Update specs/_features/eip6110/validator.md
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-03-14 11:22:12 -06:00
Aditya Asgaonkar
23c5b7c66e
fix typo
2023-03-13 13:48:34 -07:00
Aditya Asgaonkar
e9551715d5
large fork choice upgrade
2023-03-13 11:52:43 -07:00
Lion - dapplion
df4ba47e63
Update beacon-chain.md
2023-03-13 08:51:02 +08:00
Dankrad Feist
cc284b2b60
Toc
2023-03-12 23:11:40 +00:00
Dankrad Feist
96ad61bcec
Add tests for blob sidecar signature
2023-03-12 23:05:01 +00:00
Dankrad Feist
29b5309f7d
Add proofs to validate_blobs_and_kzg_commitments
2023-03-11 23:02:35 +00:00
Dankrad Feist
5e74c51411
Tests for validate_blobs_and_kzg_commitments and fix
2023-03-11 22:34:41 +00:00
kevaundray
6b69450992
fix typo in type of KZG_SETUP_LAGRANGE
2023-03-11 15:44:42 +00:00
dapplion
47f078fc1f
Move change to deneb
2023-03-11 20:28:49 +08:00
Guillaume Ballet
509fbb2c5c
style: remove confusing underscore
2023-03-10 09:34:44 +01:00
dapplion
1c35eb1c33
Lock voluntary_exit domain on capella
2023-03-10 14:37:18 +08:00
dapplion
21cf61ea8f
De-duplicate range references in BlobSidecarsByRange
2023-03-10 11:10:33 +08:00
Mikhail Kalinin
0da79bdbfd
Provide validator guide for EIP6110
2023-03-09 21:05:07 +06:00
Guillaume Ballet
a5c955fb63
feedback from ACDC
2023-03-09 15:33:15 +01:00
Ben Edgington
7f74a08a6c
Fix trailing whitespace
2023-03-09 11:07:01 +00:00
Guillaume Ballet
567e62fbe9
Style feedback
...
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2023-03-09 11:48:00 +01:00
Etan Kissling
54c7df5bbf
Fix lint
2023-03-08 15:42:56 +01:00
Etan Kissling
43e714e60f
Check correct fork version in LC sync protocol
...
- Sync committee is determined by signature_slot
- Signature fork version is determined by max(signature_slot, 1) - 1
- Attested block fork version can be anything < signature_slot
Old logic incorrectly derived signature fork version from signature_slot
and did not subtract a slot. Extended tests to check this edge case.
2023-03-08 15:34:56 +01:00
Justin Traglia
ccfe576dcc
Add KZG tests for input length inputs ( #3282 )
2023-03-07 21:56:55 +00:00
dankrad
15033d28b9
Modify compute_[blob_]kzg_proof to remove superfluous computations ( #3280 )
...
Add parameter `commitment` to `compute_blob_kzg_proof` and output `y` to `compute_kzg_proof`
2023-03-07 17:50:56 +00:00
kevaundray
1b4840c967
Fix comment for `evaluate_polynomial_in_evaluation_form` to reflect that it can now also be used in the domain
2023-03-04 19:20:01 +00: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
Mikhail Kalinin
00557c5649
Remove unnecessary eth1_deposit_index bump
2023-03-02 17:31:12 +06:00
Mikhail Kalinin
13f3654296
Apply suggestions from @djrtwo
2023-03-02 17:29:22 +06:00
Mikhail Kalinin
c445fa9b37
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2023-03-02 15:50:08 +06:00
Stefan Bratanov
3259922a9e
change usage of MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS
2023-03-01 17:10:58 +00:00
Danny Ryan
7538e9a4f3
Merge branch 'dev' into 4844-remove-empty-container
2023-03-01 08:58:42 -07:00
terencechain
a236770b07
EIP4844: Use `MAX_REQUEST_BLOB_SIDECARS`
2023-02-28 15:17:40 -08:00
Hsiao-Wei Wang
4a59bcfaa9
Merge branch 'dev' into deposits
2023-03-01 00:10:30 +08:00
Hsiao-Wei Wang
6baa9531a4
Merge pull request #3250 from benjaminion/get-weight
...
Change get_latest_attesting_balance() to get_weight()
2023-02-28 21:29:22 +08:00
Mikhail Kalinin
7bb65f88d9
Cosmetic fix
2023-02-28 17:18:07 +06:00
Mikhail Kalinin
fae77eb53d
Apply @hwwhww suggestions
2023-02-28 16:36:46 +06:00
Mikhail Kalinin
de5be63399
Apply suggestions from code review
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-02-28 16:14:47 +06:00
Enrico Del Fante
0879c46a34
Add `blob_sidecar` gossip rule for parent slot
...
Similarly to the check we do on Block gossip, we should check slot consistency with the parent block, so we can independently reject wrong block and blobb_sidecar when the rule is violated.
2023-02-27 20:12:31 +01:00
Danny Ryan
429dc5daba
Merge pull request #3271 from henridf/patch-2
...
Update fork-choice.md
2023-02-27 09:20:25 -07:00
djrtwo
5474b34466
Merge branch 'henridf-max-request-blobs' into dev
2023-02-27 09:19:23 -07:00
Danny Ryan
d3d7ad6e97
Merge pull request #3270 from ethereum/deneb-fork
...
Remove the outdated description in Deneb fork
2023-02-27 09:15:24 -07:00
Danny Ryan
a26556147c
Merge pull request #3268 from henridf/block-blobc
...
Minor typo/pasta fixes in blob_sidecar_{index} validation
2023-02-27 09:12:40 -07:00
henridf
136c78ddc7
Update fork-choice.md
...
Fix outdated (likely a Bellatrix cut-paste) description of change.
2023-02-24 14:07:16 +01:00
Hsiao-Wei Wang
9d690a4cb2
Fix typo
2023-02-24 17:58:10 +08:00
Mikhail Kalinin
703fdfc7c7
Fix linter
2023-02-23 21:31:19 +06:00
Mikhail Kalinin
7d6831ec86
Fix initialize_beacon_state_from_eth1 definition
2023-02-23 21:23:52 +06:00
Hsiao-Wei Wang
e7035dacf5
Remove the outdated statement
2023-02-23 22:46:55 +08:00
Hsiao-Wei Wang
a1daac098c
Make EIP-6110 executable and fix linter errors
2023-02-23 22:34:32 +08:00
Mikhail Kalinin
b22c89244a
Cosmetic renaming
2023-02-23 14:09:01 +06:00
Mikhail Kalinin
23c10cfd7f
Remove state.deposit_receipt_next_index variable
2023-02-23 13:53:15 +06:00
Henri DF
970da9efd2
Clean up max request blobs constants
...
The spec currently defines `MAX_REQUEST_BLOB_SIDECARS` as the "maximum
number of blob sidecars in a single request", but then later in the
RPC description defines the max is `MAX_REQUEST_BLOB_SIDECARS *
MAX_BLOBS_PER_BLOCK`.
Clean this up by defining `MAX_REQUEST_BLOB_SIDECARS` to be the actual max.
2023-02-22 17:20:44 +01:00
Henri DF
d8111d7d3b
Refer to "sidecar" consistently
2023-02-22 16:51:56 +01:00
Henri DF
837233a1be
Fix reference to block->sidecar
...
(This was probably a cut-n-paste from block validation)
2023-02-22 16:50:56 +01:00
Mikhail Kalinin
08c7287387
Get rid of pending_deposits queue
2023-02-22 18:33:05 +06:00
kasey
9391f3ccfc
fix MAX_REQUEST_BLOBS_SIDECARS typo
2023-02-21 21:48:21 -06:00
Mikhail Kalinin
d5c7474d4d
Move EIP6110 to features
2023-02-21 17:31:27 +06:00
Mikhail Kalinin
e64607f7db
Merge branch 'dev' into deposits
2023-02-21 17:26:30 +06:00
Age Manning
95401cf6e4
Clarify context bytes in the RPC methods in 4844
2023-02-21 01:10:40 +08:00
Danny Ryan
ad58bfc304
Merge pull request #3244 from arnetheduck/back-to-the-decoupled-future
...
EIP-4844: Free the blobs
2023-02-20 09:40:56 -07:00
Jacek Sieka
ac0ec660d3
add parent validation requirement
...
sama as block
2023-02-20 16:35:52 +01:00
Hsiao-Wei Wang
7fd36f7ce0
Merge pull request #3262 from kevaundray/patch-7
...
EIP4844: Remove repeated computation in polynomial-commitments.md
2023-02-20 22:45:31 +08:00
Jacek Sieka
4e2a9920f1
Update specs/deneb/p2p-interface.md
...
Co-authored-by: g11tech <develop@g11tech.io>
2023-02-20 12:15:53 +01:00
kevaundray
83cf02f668
Remove repeated computation
2023-02-20 10:57:39 +00:00
kevaundray
0632a5a32c
Update specs/deneb/polynomial-commitments.md
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-02-20 10:54:16 +00:00
Guillaume Ballet
d0c7bbc802
rebase and move to _features
2023-02-19 20:16:48 +01:00
Guillaume Ballet
3b362c6115
Use Optional[Bytes32] instead of Union[Null, Bytes32] for value diffs
...
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
2023-02-19 20:15:55 +01:00
Guillaume Ballet
698650cd19
add a comment to pinpoint the new, verge-related fields
...
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
2023-02-19 20:15:55 +01:00
Guillaume Ballet
8fc37ca64c
fix some typos
2023-02-19 20:15:55 +01:00
Guillaume Ballet
832a799907
Update specs/verge/beacon-chain.md
...
Co-authored-by: terencechain <terence@prysmaticlabs.com>
2023-02-19 20:15:55 +01:00
Guillaume Ballet
3cebedbc5c
Spec draft for the verge
...
Co-Authored-By: Dankrad Feist <mail@dankradfeist.de>
2023-02-19 20:15:55 +01:00
Jacek Sieka
54d2559eb5
remove producer reorg on multi-blob
...
* also, use root/index for uniqueness
2023-02-18 17:45:16 +01:00
kevaundray
c1a2962b31
Update polynomial-commitments.md
2023-02-18 15:09:43 +00:00
Danny Ryan
9dd7d2ba2f
fix Blob pluralization in a few places
2023-02-17 11:59:56 -07:00
Hsiao-Wei Wang
a562710fe6
Fix `compute_quotient_eval_within_domain` overflow
2023-02-17 01:22:11 +08:00
Hsiao-Wei Wang
a7e45db9ac
Fix `verify_kzg_proof_batch` and the tests
2023-02-16 22:14:14 +08:00
Hsiao-Wei Wang
f23ed0cdbc
Make linter happy
2023-02-16 21:11:18 +08:00
Hsiao-Wei Wang
c2315c90a3
Merge branch 'dev' into pr3244
2023-02-16 21:07:36 +08:00
Hsiao-Wei Wang
ab11a014ee
Merge pull request #3248 from ethereum/mv-features
...
Move experimental features to `specs/_features` folder
2023-02-16 17:03:19 +08:00
Jacek Sieka
5fe857b209
fixes
2023-02-16 09:20:40 +01:00
Jacek Sieka
24a19bb886
fixes
...
* fight the test suite
* clarify who orphans the block
* must supply all blobs of a block in range request
2023-02-16 09:12:34 +01:00
Jacek Sieka
639ff9b2b0
Update specs/deneb/p2p-interface.md
...
Co-authored-by: Jimmy Chen <jchen.tc@gmail.com>
2023-02-16 08:30:40 +01:00
Jacek Sieka
c39fda19c6
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
Co-authored-by: Jimmy Chen <jchen.tc@gmail.com>
2023-02-16 08:18:52 +01:00
Dankrad Feist
078d62e6ff
Simplify compute_challenge
2023-02-15 19:48:58 +00:00
Dankrad Feist
48e7be7dd0
Fix doctoc
2023-02-15 18:23:04 +00:00
dankrad
adb5134266
Merge branch 'dev' into kzg_multi_verify
2023-02-15 18:10:39 +00:00
Ben Edgington
7637158a2f
Change get_latest_attesting_balances() to get_weight()
2023-02-15 11:39:33 +00:00
Jacek Sieka
f0dc126602
doctoc
2023-02-15 09:10:31 +01:00
Jacek Sieka
a5f61fc173
correct function
2023-02-15 08:57:23 +01:00
Jacek Sieka
da34af97d4
simplify blob verification, range request
...
* validate blobs using raw types
* remove `BlobSidecars` and send flattened list of `BlobSidecar`
instances instead
2023-02-15 08:51:57 +01:00
Jacek Sieka
3a37c3c497
Allow clients to orphan blocks from spammy proposers
...
Proposers that spam the blob topic with multiple blob versions, some of
which are invalid, MAY see their block orphaned.
2023-02-15 08:00:39 +01:00
Dankrad Feist
4086a09d0f
multi -> batch
2023-02-14 21:21:46 +00:00
Dankrad Feist
c3cb7fa773
Comment on compute_challenge, assert on verify_blob_kzg_proof_multi
2023-02-14 21:12:02 +00:00
dankrad
d8509e42c6
Update specs/deneb/polynomial-commitments.md
...
Co-authored-by: George Kadianakis <desnacked@riseup.net>
2023-02-14 20:59:41 +00:00
dankrad
aafbd45a19
Update specs/deneb/polynomial-commitments.md
...
Co-authored-by: George Kadianakis <desnacked@riseup.net>
2023-02-14 20:59:24 +00:00
Dankrad Feist
3a6fccd389
Remove double hashing
2023-02-14 20:17:25 +00:00
Dankrad Feist
855cf062f0
Remove additional function
2023-02-14 20:07:34 +00:00
dankrad
c49a2c2855
Update specs/deneb/polynomial-commitments.md
...
Co-authored-by: George Kadianakis <desnacked@riseup.net>
2023-02-14 20:00:58 +00:00
Hsiao-Wei Wang
db5a168f3b
Move experimental features to `specs/_features` folder
2023-02-14 23:41:40 +08:00
Danny Ryan
89f2eae318
Merge pull request #3218 from protolambda/excess-data-gas-field-position
...
eip4844: move excess data gas field to end of execution payload for merkle proof path compat
2023-02-14 07:50:25 -07:00
Jacek Sieka
58207c1c05
Upper limit on indices
2023-02-14 14:18:29 +01:00
George Kadianakis
fc4e1a9acf
EIP4844: compute_kzg_proof() can now create proofs within the domain ( #3243 )
...
This will be used by optimistic rollups to create proofs about past data
2023-02-14 14:50:44 +02:00
Jacek Sieka
e6b8324e25
sidecar domain
2023-02-14 13:39:59 +01:00
Jacek Sieka
c8719f8524
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2023-02-14 13:32:18 +01:00
Dankrad Feist
86d955ab7f
Call compute_challenge with polynomial as argument
2023-02-13 17:17:41 +00:00
Dankrad Feist
7f1748b3c8
Change blob verification fiat-shamir to single blob
2023-02-13 17:16:15 +00:00
Dankrad Feist
b76ea49fec
Add KZG multi verify function
2023-02-13 17:12:51 +00:00
Potuz
f91b9863ce
Simplify commitee weight computation
2023-02-13 17:08:52 +00:00
Paul Harris
470c1b14b3
fix references to eip4844
2023-02-13 17:08:51 +00:00
Paul Harris
901303f14f
Replaced EIP4844 references with Deneb
...
Fixes #3207
2023-02-13 17:08:51 +00:00
Dankrad Feist
7b642a2884
compute_challenge takes blobs + linter
2023-02-13 14:57:04 +00:00
Dankrad Feist
f36925ea96
Merge branch 'dev' into kzg_multi_verify
2023-02-13 14:38:19 +00:00
Dankrad Feist
fc10714f42
Call compute_challenge with polynomial as argument
2023-02-13 14:32:50 +00:00
Potuz
86962b9437
Simplify commitee weight computation
2023-02-10 11:43:38 -03:00
Jacek Sieka
8bc19d99ae
fixes
...
* expand sidecar gossip conditions
* editing
* add spec text for `BlobSidecar` signatures
2023-02-10 11:16:51 +01:00
Jacek Sieka
20278d4841
Merge remote-tracking branch 'origin/dev' into back-to-the-decoupled-future
...
Deneb merge
2023-02-10 10:44:31 +01:00
Jacek Sieka
ffc78e9928
fixes
...
* separate constant for blob requests
* pedantry
2023-02-10 10:40:43 +01:00
Age Manning
368e70d9be
Remove sending empty blobs sidecar responses
2023-02-10 10:45:07 +08:00
Hsiao-Wei Wang
7b5acbfd21
Fix Capella fork test assertions
2023-02-10 00:30:00 +08:00
protolambda
f6b8827eca
eip4844: move excess data gas field to end of execution payload for merkle proof path compat
2023-02-10 00:29:58 +08:00
Hsiao-Wei Wang
6cc5b0fc8b
Merge branch 'dev' into capella-fc-cleanup
2023-02-10 00:24:10 +08:00
Paul Harris
078e1cc871
fix references to eip4844
2023-02-08 09:22:28 +10:00
Jacek Sieka
deb82e2f26
fix member
2023-02-07 11:23:18 +01:00
Jacek Sieka
1e07685f74
doctoc
2023-02-07 11:14:59 +01:00
Jacek Sieka
65d3c6aeb6
Free the blobs
...
This PR reintroduces and further decouples blocks and blobs in EIP-4844,
so as to improve network and processing performance.
Block and blob processing, for the purpose of gossip validation, are
independent: they can both be propagated and gossip-validated
in parallel - the decoupled design allows 4 important optimizations
(or, if you are so inclined, removes 4 unnecessary pessimizations):
* Blocks and blobs travel on independent meshes allowing for better
parallelization and utilization of high-bandwidth peers
* Re-broadcasting after validation can start earlier allowing more
efficient use of upload bandwidth - blocks for example can be
rebroadcast to peers while blobs are still being downloaded
* bandwidth-reduction techniques such as per-peer deduplication are more
efficient because of the smaller message size
* gossip verification happens independently for blocks and blobs,
allowing better sharing / use of CPU and I/O resources in clients
With growing block sizes and additional blob data to stream, the network
streaming time becomes a dominant factor in propagation times - on a
100mbit line, streaming 1mb to 8 peers takes ~1s - this process is
repeated for each hop in both incoming and outgoing directions.
This design in particular sends each blob on a separate subnet, thus
maximising the potential for parallelisation and providing a natural
path for growing the number of blobs per block should the network be
judged to be able to handle it.
Changes compared to the current design include:
* `BlobsSidecar` is split into individual `BlobSidecar` containers -
each container is signed individually by the proposer
* the signature is used during gossip validation but later dropped.
* KZG commitment verification is moved out of the gossip pipeline and
instead done before fork choice addition, when both block and sidecars
have arrived
* clients may verify individual blob commitments earlier
* more generally and similar to block verification, gossip propagation
is performed solely based on trivial consistency checks and proposer
signature verification
* by-root blob requests are done per-blob, so as to retain the ability
to fill in blobs one-by-one assuming clients generally receive blobs
from gossip
* by-range blob requests are done per-block, so as to simplify
historical sync
* range and root requests are limited to `128` entries for both blocks
and blobs - practically, the current higher limit of `1024` for blocks
does not get used and keeping the limits consistent simplifies
implementation - with the merge, block sizes have grown significantly
and clients generally fetch smaller chunks.
2023-02-07 11:05:51 +01:00
Paul Harris
0bf006cc06
Merge remote-tracking branch 'upstream/dev' into 3207
2023-02-02 16:34:34 +10:00
Dankrad Feist
659c7f513f
Change blob verification fiat-shamir to single blob
2023-01-29 13:05:02 +00:00
Dankrad Feist
d89e579089
Updater toc
2023-01-27 14:33:43 +00:00
Dankrad Feist
03f4b8fa4d
Add KZG multi verify function
2023-01-27 14:23:38 +00:00
Hsiao-Wei Wang
127edf3af1
Merge pull request #3221 from benjaminion/fc-on-attester-slashing
...
Add on_attester_slashing() to handlers list
2023-01-27 21:49:34 +08:00
Hsiao-Wei Wang
ce987c4a64
Delete `is_merge_transition_block` check from Capella
2023-01-27 09:12:39 +01:00
George Kadianakis
6e397b195b
EIP4844: Public methods take bytes as input (explicit validation) ( #3224 )
2023-01-25 16:15:19 +01:00
Hsiao-Wei Wang
aede132f49
Merge pull request #3220 from benjaminion/fc-genesis-block
...
Add genesis_block to get_forkchoice_store() params
2023-01-24 22:22:25 +08:00
kevaundray
5eca56901e
Update polynomial-commitments.md ( #3223 )
2023-01-24 15:14:25 +01:00
Ben Edgington
8a0de1c595
Add on_attester_slashing() to handlers list
2023-01-24 13:25:40 +00:00
Ben Edgington
d54c87a5c0
Add genesis_block to get_forkchoice_store() params
2023-01-24 13:08:41 +00:00
George Kadianakis
2626126935
EIP4844: compute_kzg_proof() now takes bytes as input ( #3219 )
2023-01-24 14:02:22 +01:00
Danny Ryan
dd5c5af117
Merge pull request #3217 from pawanjay176/remove-point-validation
...
Remove kzg point and blob validations in gossip
2023-01-24 10:38:03 +01:00
Paul Harris
317facbd64
Replaced EIP4844 references with Deneb
...
Fixes #3207
2023-01-23 15:08:34 +01:00
Pawan Dhananjay
a0791712cd
Remove kzg point validations in gossip
2023-01-20 21:32:03 +05:30
Emilia Hane
f1435d456d
Update p2p-interface.md
2023-01-19 21:26:21 +01:00
Hsiao-Wei Wang
04d8f28cf6
Merge pull request #3214 from asn-d6/barycentric_no_assert
...
EIP4844: Handle barycentric evaluation at roots of unity
2023-01-17 23:00:17 +08:00
Hsiao-Wei Wang
521de12d9b
Merge pull request #3151 from etan-status/lc-eph
...
Add `ExecutionPayloadHeader` to LC data
2023-01-17 21:33:35 +08:00
George Kadianakis
296ba921c9
EIP4844: Handle barycentric evaluations at roots of unity
2023-01-16 17:51:50 +02:00
Etan Kissling
514d4431ca
Use `bellatrix` in `upgrade_x_to_capella` helpers
2023-01-13 20:11:05 +01:00
Hsiao-Wei Wang
427a6e809f
Merge pull request #3206 from ethereum/btec-fork-version
...
MUST use `GENESIS_FORK_VERSION` to sign `BLSToExecutionChange` message
2023-01-13 23:29:21 +08:00
Etan Kissling
a580f82c7d
Use `beacon` wrapper in `upgrade_lc_header_to_capella`
2023-01-13 14:59:40 +01:00
Etan Kissling
ca32fe8347
Add docstrings to explain empty header
2023-01-13 11:19:53 +01:00
Hsiao-Wei Wang
6a19cf568a
PR feedback from @terencechain: re-use `current_epoch` definition
2023-01-13 16:49:24 +08:00
Etan Kissling
82d6267951
Merge branch 'dev' into lc-eph
2023-01-12 18:44:54 +01:00
Hsiao-Wei Wang
2b2ffb5229
Merge pull request #3190 from etan-status/lc-headerwrapper
...
Add `LightClientHeader` wrapper
2023-01-13 00:40:44 +08:00
Hsiao-Wei Wang
4af46e7e78
Ignore `bls_to_execution_change` messages before `CAPELLA_FORK_EPOCH`
2023-01-12 23:47:36 +08:00
Hsiao-Wei Wang
730a7afe49
Always use `GENESIS_FORK_VERSION` to sign `BLSToExecutionChange` message
2023-01-12 23:28:41 +08:00
Danny Ryan
fc6bdade50
Merge pull request #3174 from terencechain/clarify-empty-blob-sidecar
...
EIP4844: Clarify ratelimit behavior for sidecar with zero blobs
2023-01-11 19:45:03 -07:00
Danny Ryan
8d841c864b
minor copy edit
2023-01-11 19:44:39 -07:00
Danny Ryan
71d66afc0a
Merge pull request #3201 from ethereum/fix-fork-historical-summaries
...
Add `historical_summaries` setup to `fork.md`
2023-01-11 13:24:55 -07:00
terence tsao
96a553615a
Add rate limit suggestion
2023-01-10 10:28:19 -08:00
Etan Kissling
53a95f0007
Merge branch 'dev' into lc-eph
2023-01-10 13:43:15 +01:00
Hsiao-Wei Wang
f057f530fe
Add `historical_summaries` setup to fork.md
2023-01-10 16:45:58 +08:00
GeemoCandama
d23d0147c8
Update p2p-interface.md
...
fixed typo
2023-01-07 14:28:12 -06:00
Etan Kissling
b951ce077a
Move helper
2023-01-06 20:01:02 +01:00
Etan Kissling
5230c1ba87
Add `is_valid_light_client_header` and comments
2023-01-06 19:58:23 +01:00
Etan Kissling
79a717c8f6
Merge branch 'dev' into lc-headerwrapper
2023-01-06 19:45:18 +01:00
Danny Ryan
ed1c6be132
Merge pull request #3185 from ethereum/fc-is_data_available
...
Move `is_data_available` check to fork-choice `on_block`
2023-01-06 10:55:29 -05:00
Danny Ryan
4ba2266fd5
Update specs/eip4844/fork-choice.md
2023-01-06 08:45:20 -07:00
Hsiao-Wei Wang
c9f8e4fef8
Move `BlobsSidecar`
2023-01-06 23:39:04 +08:00
Hsiao-Wei Wang
e154b3414c
Move `validate_blobs_sidecar` to fork-choice and add spec into execution spec scope
2023-01-06 23:19:44 +08:00
Danny Ryan
d5c24dc731
Merge pull request #3186 from ethereum/capella-note
...
Add notes for new state historical accumulators
2023-01-06 10:13:32 -05:00
Danny Ryan
75937e5b55
Merge pull request #3181 from terencechain/4844-enable-withdrawal
...
EIP4844: Enable withdrawal
2023-01-06 10:12:57 -05:00
Danny Ryan
d679b2e80d
Update specs/capella/beacon-chain.md
2023-01-06 08:06:39 -07:00
Hsiao-Wei Wang
e937e2abbc
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2023-01-06 13:08:32 +08:00
Etan Kissling
375436094c
Merge branch 'dev' into lc-eph
2023-01-05 13:53:29 +01:00
Etan Kissling
5c64a2047a
Add `LightClientHeader` wrapper
...
In Altair, light client sync protocol exchanges `BeaconBlockHeader`
structures for tracking current progress. Wrapping `BeaconBlockHeader`
inside a `LightClientHeader` allows future extensions of this header,
e.g., to also track `ExecutionPayloadHeader`.
Note: This changes the JSON REST format by adding a `beacon` nesting.
For SSZ, the serialization format stays same (but overall root changes).
2023-01-05 13:36:04 +01:00
Hsiao-Wei Wang
19cf15b838
Merge pull request #3188 from henridf/patch-2
...
Fix typo in eip4844/BeaconBlocksByRoot docs
2023-01-05 12:52:14 +08:00
Hsiao-Wei Wang
0777a52f55
Merge pull request #3149 from etan-status/lc-toheader
...
Add `block_to_light_client_header` helper
2023-01-05 12:12:36 +08:00
henridf
7d2482a025
Fix typo in eip4844/BeaconBlocksByRoot docs
2023-01-04 16:29:15 +01:00
Hsiao-Wei Wang
118daae6d9
Add notes for new state historical accumulators
2023-01-04 17:55:51 +08:00
Hsiao-Wei Wang
bb3601dcfa
Merge branch 'dev' into pr3181
2023-01-04 01:07:30 +08:00
Hsiao-Wei Wang
0f07cdcf72
Merge pull request #3165 from arnetheduck/block-root-accumulator-4
...
Historical batches
2023-01-04 00:23:21 +08:00
Hsiao-Wei Wang
6b94aab3af
Move `is_data_available` check to fork-choice `on_block`
2023-01-04 00:15:15 +08:00
Etan Kissling
b0471511e5
Merge branch 'dev' into lc-eph
2023-01-03 15:36:37 +01:00
Hsiao-Wei Wang
dcacb7164f
Rename `block_batch_root` to `block_summary_root` and `state_batch_root` to `state_summary_root`
2023-01-03 21:50:06 +08:00
Hsiao-Wei Wang
1cfabcbe54
Rename `HistoricalBatchSummary` -> `HistoricalSummary` and `historical_batches` -> `historical_summaries`
2023-01-02 23:07:00 +08:00
Danny Ryan
280f6e0568
Merge pull request #3167 from ethereum/akzg-tp
...
Add `compute_kzg_proof` as a public method
2023-01-01 14:14:53 -06:00
Dankrad Feist
4c573ff6b9
Add compute_kzg_proof to public methods
2023-01-01 14:04:56 -06:00
terence tsao
2afb02ba30
Fix Toc
2022-12-28 18:49:02 -08:00
terence tsao
45b1eb7979
EIP4844: Enable withdrawal
2022-12-28 18:42:24 -08:00
Mikhail Kalinin
6eb118d34a
Fix finality check in deposit processing
2022-12-24 09:40:15 +06:00
Mikhail Kalinin
48f120c90e
Set a higher limit to deposit receipts list
2022-12-24 09:40:15 +06:00
Mikhail Kalinin
9d2a8f7d63
Give deposits EIP a name
2022-12-24 09:40:15 +06:00
Mikhail Kalinin
8cc293c869
Fix wording
2022-12-24 09:40:15 +06:00
Mikhail Kalinin
5ea983ac33
Fix toc, add more comments
2022-12-24 09:40:15 +06:00
Mikhail Kalinin
b3c771c46d
Preserve deposits per epoch boundary
2022-12-24 09:40:15 +06:00
Mikhail Kalinin
c53ab45e19
Add in-protocol deposit processing
2022-12-24 09:40:15 +06:00
terence tsao
7204b5c3aa
Merge branch 'clarify-empty-blob-sidecar' of github.com:terencechain/eth2.0-specs into clarify-empty-blob-sidecar
2022-12-23 22:24:40 +08:00
terence tsao
491bb1d207
Clean ups
2022-12-23 22:21:51 +08:00
terencechain
518c49bbba
Update specs/eip4844/p2p-interface.md
...
Co-authored-by: g11tech <develop@g11tech.io>
2022-12-23 20:47:14 +08:00
terence tsao
42121adeb0
Clarify what empty means
2022-12-23 14:30:30 +08:00
terence tsao
5a75704e37
Clarify behavior for empty blobs sidecar
2022-12-23 14:02:33 +08:00
Danny Ryan
4f77493b0f
Merge pull request #3169 from ethereum/false-after-prune
...
Handle unavailable data outside of prune window
2022-12-20 17:15:17 -07:00
Danny Ryan
e6f5ab9a16
Merge pull request #3154 from dapplion/blobs-byroot-errorcode
...
Clarify BeaconBlockAndBlobsSidecarByRoot no blob available
2022-12-20 17:14:39 -07:00
Jacek Sieka
b6ac1fa099
Update specs/capella/beacon-chain.md
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-12-20 07:46:18 +01:00
djrtwo
4be8f7d669
clarify how to handle unavailable data outside of the prune window
2022-12-19 10:15:18 -07:00
Hsiao-Wei Wang
84592f101b
Add tests for `process_historical_batches_update`
2022-12-16 01:01:00 +08:00
Hsiao-Wei Wang
c185f91e00
Merge branch 'dev' into pr2649-tests
2022-12-15 22:56:04 +08:00
dapplion
fac4b49a9b
Change range lower bound to EIP4844_FORK_EPOCH
2022-12-15 11:27:33 +07:00
dapplion
eaa1268dc4
Place dominant factor first
2022-12-15 11:12:37 +07:00
dapplion
29d36d8a78
Merge two sentences + drop range
2022-12-15 11:11:15 +07:00
George Kadianakis
05c2eb8ace
Merge pull request #3159 from kevaundray/patch-3
...
EIP4844: Clarify that z should not be in the domain
2022-12-14 17:47:48 +02: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
kevaundray
e467ab9556
clarify that z should not be in the domain
2022-12-14 11:01:40 +00:00
Justin Traglia
224b0f20cf
Add missing qoute
2022-12-13 11:53:18 -06:00
Justin Traglia
26605ac724
Fix some nits in eip4844 specs
2022-12-13 10:07:37 -06:00
Etan Kissling
02abdc311f
Merge branch 'dev' into lc-eph
2022-12-13 15:33:28 +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
Hsiao-Wei Wang
2ac06c10d3
Update G2 trusted setup length to 65
2022-12-13 18:14:50 +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
dapplion
d4b8ab1173
Clarify BeaconBlockAndBlobsSidecarByRoot no blob available
2022-12-13 09:29:28 +07:00
Danny Ryan
1f943f0d64
Update specs/capella/beacon-chain.md
2022-12-12 14:22:58 -07:00
Stefan Bratanov
a8449fa4aa
Fix typo in BlobsSidecarsByRange v1
2022-12-12 15:36:51 +02:00
Etan Kissling
700bef7a45
Fix `is_valid_light_client_header`
2022-12-12 13:39:14 +01:00
Etan Kissling
8ad6810a44
EIP4844 support (`excess_data_gas`), fork tests nyi
2022-12-12 13:11:49 +01:00
Etan Kissling
e67ca3d309
Compute epoch only once for better readability
2022-12-12 13:09:18 +01:00
Etan Kissling
5028a806ad
Implicit init during fork transition
2022-12-12 12:45:43 +01:00
Etan Kissling
11d2a59948
Flip `is_valid_light_client_header` logic for extensibility
2022-12-12 12:33:58 +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
Alex Stokes
37e504e784
bound the maximum number of validators considered for withdrawals per sweep
2022-12-09 10:51:25 -07:00
Etan Kissling
14fd937046
Fix
2022-12-06 23:21:06 +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
Danny Ryan
5498519945
Merge pull request #3125 from terencechain/rm-is-data-available
...
EIP4844: remove optimistic sync mentions
2022-12-06 09:29:34 -07:00
Etan Kissling
f4dafcfebc
Merge branch 'dev' into lc-blockfuncs
2022-12-05 18:38:40 +01:00
George Kadianakis
23d3aeebba
EIP4844 precompile: Be strict when parsing field elements from network ( #3138 )
...
* EIP4844: bytes_to_bls_field() must not accept values >= BLS_MODULUS
bytes_to_bls_field() will be used in the precompile and hence it should error out when provided with malicious inputs.
* EIP4844: Add hash_to_bls_field() for use in compute_challenges()
The previous commit made bytes_to_bls_field() be strict about its inputs. However in compute_challenges() we are
dealing with Fiat-Shamir and hash outputs that could be innocuously higher than the modulus. For this reason we add the
hash_to_bls_field() helper for use in compute_challenges().
* EIP4844: Further use of bytes_to_bls_field() // Fix executable spec
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-12-01 14:59:00 +02:00
Hsiao-Wei Wang
602f846dc7
Merge pull request #3134 from ethereum/eip4844-lint
...
Add EIP4844 pylint and Mypy checks
2022-12-01 20:01:48 +08:00
Tim Beiko
aae00a0bf6
Clarify that full withdrawals only apply to exited validators
2022-11-30 16:21:06 -08:00
terence tsao
5b0bfe7eb6
EIP4844: Update `MAX_BLOBS_PER_BLOCK` to 4
2022-11-30 14:34:09 -08:00
Hsiao-Wei Wang
b62c9e8779
Merge pull request #3014 from tersec/deprecate-phase0-beacon-blocks-req-resp
...
deprecate phase 0-only versions of beacon_blocks_by_{range,root}
2022-11-29 22:09:13 +08:00
terence tsao
339b788839
Revert previous changes. Remove optimistic wording
2022-11-28 19:52:11 -08:00
Hsiao-Wei Wang
b3a176689d
WIP. Fixing mypy errors
2022-11-28 21:01:41 +08:00
Hsiao-Wei Wang
4f32fd95d6
Enable EIP4844 lint and fix Pylint
2022-11-28 20:01:50 +08:00
Roberto Bayardo
a1e46d1ae4
EIP4844: Fix return value of compute_challenges ( #3129 )
...
Co-authored-by: George Kadianakis <desnacked@riseup.net>
2022-11-24 15:26:02 +02:00
kevaundray
3ec25a8755
Fix docstring for compute_powers and compute_challenges methods ( #3130 )
2022-11-24 15:11:46 +02: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
terence tsao
3624742ff5
Remove is_data_available
2022-11-22 09:15:17 -08:00
Dmitrii Shmatko
4e3b700b86
Fix initialization of VERSIONED_HASH_VERSION_KZG
2022-11-22 11:51:10 +04:00
Etan Kissling
0fb2447a95
Merge branch 'dev' into lc-blockfuncs
2022-11-19 12:20:18 +01:00
Ramana Kumar
19c8f21b63
Fix type annotation in verify_aggregate_kzg_proof
2022-11-19 09:17:11 +00:00
George Kadianakis
a45627164d
Merge pull request #3097 from asn-d6/verify_kzg_proof_bytes_api
...
EIP4844: Refactor `verify_kzg_proof()` to receive bytes (used in precompile)
2022-11-18 20:01:18 +02:00
Hsiao-Wei Wang
46c0447662
Merge pull request #3110 from ethereum/eip4844-test-vectors
...
Add EIP4844 to testgen and add more Capella+EIP4844 random fork tests
2022-11-18 17:18:02 +08:00
Danny Ryan
30e975806f
Merge pull request #3108 from realbigsean/validate-blobs-sidecar-in-gossip
...
Make `validate_blobs_sidecar` a gossip condition
2022-11-17 16:31:14 -07:00
Hsiao-Wei Wang
dd8b67075e
Add note comment
2022-11-18 04:51:19 +08:00
Hsiao-Wei Wang
438a7e55ea
Conver `roots_of_unity_brp` to integers
2022-11-18 03:20:25 +08:00
Hsiao-Wei Wang
78f0e0301e
Merge pull request #3052 from Inphi/inphi/eip4844-rebase
...
Rebase EIP-4844 on Capella
2022-11-18 03:16:58 +08:00
Danny Ryan
de789e2d5b
Merge pull request #3090 from ethereum/4844-topic-dep
...
clarify deprecation of `beacon_block` gossip topic in 4844
2022-11-17 12:16:24 -07:00
Hsiao-Wei Wang
ee0e2a03d2
Merge branch 'dev' into pr3052
2022-11-18 02:44:46 +08:00
Hsiao-Wei Wang
30dce7f232
Apply suggestions from code review
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-11-18 02:25:56 +08:00
Hsiao-Wei Wang
f1d4c9047a
Merge branch 'dev' into pr3052
2022-11-18 02:12:07 +08:00
Enrico Del Fante
620943b275
Update specs/eip4844/fork.md
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-11-16 19:19:39 +01:00
realbigsean
e8e860e1f3
make a gossip condition
2022-11-16 10:46:04 -05:00
Enrico Del Fante
b737e5370f
fix state upgrade
2022-11-16 12:12:18 +01:00
Alex Stokes
a5f8a15819
Clarify how to transition gossip
2022-11-15 10:29:03 -07:00
Hsiao-Wei Wang
11a037fd92
Merge pull request #3089 from terencechain/beacon-block-and-blobs-sidecar-by-root
...
EIP4844: Add block and sidecar retrival by root
2022-11-16 00:41:58 +08:00
terence tsao
bbc3ec02ff
Fix typos
2022-11-12 23:36:34 -08:00
George Kadianakis
fcac0b5c69
Clarify which functions are public and provided by the KZG library
2022-11-12 01:47:39 +02:00
George Kadianakis
ff34006807
Refactor `verify_kzg_proof()` to receive bytes (used in precompile)
...
This way, client devs don't need to convert to field elements themselves, and the KZG library takes care fo it.
2022-11-12 01:47:39 +02:00
inphi
3df1371897
Merge remote-tracking branch 'origin/dev' into inphi/eip4844-rebase
2022-11-11 17:32:06 -05:00
inphi
cd1e1133a5
excess_data_gas uint256
2022-11-11 17:25:06 -05:00
inphi
6327ffa687
rename excess_blobs
2022-11-11 17:24:05 -05:00
Alex Stokes
38669d4b7a
Update specs/eip4844/p2p-interface.md
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-11-11 11:26:48 -07:00
Alex Stokes
078bba2e3c
clarify deprecation of `beacon_block` gossip topic in 4844
2022-11-11 11:26:45 -07:00
Alex Stokes
faf308349e
Merge pull request #3086 from michaelsproul/light-client-p2p-fix
...
Fix slot checks in light client p2p spec
2022-11-11 11:03:33 -07:00
terence tsao
e2a2d68cae
Added a comment to support pre-fork-epoch
2022-11-11 09:50:06 -08:00
Michael Sproul
897b97990f
Further clarify light client slot checks
2022-11-11 22:09:33 +11:00
inphi
104cba06a6
replace get_blobs_and_kzg_commitments
2022-11-11 00:21:56 -05:00
inphi
bed1df00a2
Remove withdrawal_queue from BeaconState upgrade
2022-11-10 13:57:30 -05:00
Danny Ryan
d4a9b97cd0
Merge pull request #3084 from ethereum/validator-note-for-bls-change
...
Add note to Capella validator guide about BLS to execution change
2022-11-10 11:32:04 -07:00
inphi
a59dd37933
Merge remote-tracking branch 'origin/dev' into inphi/eip4844-rebase
2022-11-10 13:17:57 -05:00
Danny Ryan
4b573f82f6
Merge pull request #3091 from terencechain/patch-138
...
EIP4844: Explicitly mention old gossip validations for block
2022-11-10 11:16:18 -07:00
Danny Ryan
0e7d3555ea
minor copy edits
2022-11-10 11:12:33 -07:00
Danny Ryan
37996fc36c
Merge pull request #3068 from potuz/withdrawals_without_queues
...
Withdrawals without queues
2022-11-10 10:49:25 -07:00
Alex Stokes
be85e9356a
Update specs/capella/validator.md
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-11-10 09:12:35 -05:00
Alex Stokes
0f93e9aad8
Update specs/capella/validator.md
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-11-10 09:12:10 -05:00
Alex Stokes
be098b60c0
Update specs/eip4844/p2p-interface.md
2022-11-10 09:10:01 -05:00
Potuz
7f266bcb0f
Use next_validator_withdrawal_index
2022-11-10 08:33:11 -03:00
terencechain
579f8fd1d2
EIP4844: Explicitly mention old gossip validations for block
2022-11-09 15:06:58 -08:00
Potuz
710b124cdc
fix last commit
2022-11-08 21:51:54 -03:00
Potuz
8f42e485c7
Add extra %
2022-11-08 19:53:58 -03:00
Michael Sproul
dae1011194
Fix typos
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-11-09 09:41:21 +11:00
terence tsao
c447662ba0
Fix `BeaconBlocksByRootV2` for pre-4844 support
2022-11-08 12:55:43 -08:00
terence tsao
cb9159fe58
EIP4844: Add block and sidecar retrival by root
2022-11-08 10:41:48 -08:00
inphi
e3e73a8f54
Add Capella fork version
2022-11-08 09:06:38 -05:00
Michael Sproul
91de8a09f3
Fix slot checks in light client p2p spec
2022-11-08 17:06:07 +11:00
Alex Stokes
8bb1751f46
Add note to Capella validator guide about BLS to execution change
2022-11-07 15:22:26 -07:00
Potuz
99e2704c2c
make tests pass
2022-11-07 17:56:01 -03:00
Potuz
ac670e2c47
add phase0 sentence regarding process slots
2022-11-07 17:34:19 -03:00
Potuz
2f89f5096d
Danny's review 1st pass
2022-11-07 17:29:56 -03:00
terence tsao
f010de0871
Remove domain blobs sidecar
2022-11-07 07:16:42 -08:00
Hsiao-Wei Wang
95ee291f58
Merge branch 'dev' into pr3052
2022-11-07 10:10:16 -05:00
Hsiao-Wei Wang
544ae28721
Merge pull request #3016 from ethereum/gen_kzg_trusted_setups
...
Rework the testing KZG trusted setups presets
2022-11-07 22:29:54 +08:00
Hsiao-Wei Wang
b7dfd5a37e
Merge pull request #3027 from ethereum/eip-4844-fee-ssz-fix
...
eip4844: update tx_peek_blob_versioned_hashes to match tx type from fee market update
2022-11-07 22:22:12 +08:00
Hsiao-Wei Wang
dac756efee
Minor clean up
2022-11-07 09:09:09 -05:00
Etan Kissling
08ff71688f
Merge branch 'dev' into lc-blockfuncs
2022-11-07 15:03:20 +01:00
Hsiao-Wei Wang
72544d5307
Merge pull request #3081 from ethereum/add-capella-bls-to-exec-change-block-packing
...
add note about packing BLS to execution changes into a block
2022-11-07 06:22:04 +08:00
Hsiao-Wei Wang
6f0a7ef046
Merge pull request #3080 from ethereum/ralexstokes-patch-1
...
Fix typo in `bellatrix` p2p docs
2022-11-07 05:18:03 +08:00
Alex Stokes
b5ecf44c91
add note about packing BLS to execution changes into a block
2022-11-04 16:41:07 -06:00
Alex Stokes
e1e37deb56
Merge pull request #3075 from ethDreamer/gossip_bls_to_execution_change
...
Capella: Add Gossip Topic bls_to_execution_change
2022-11-04 16:22:43 -06:00
Alex Stokes
c8d1614e7e
Apply suggestions from code review
2022-11-04 16:19:26 -06:00
ethDreamer
355ca296b8
Update specs/capella/p2p-interface.md
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-11-04 17:13:23 -05:00
ethDreamer
6c1fa0a485
Update specs/capella/p2p-interface.md
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-11-04 17:13:15 -05:00
ethDreamer
1f68c57a7b
Update specs/capella/p2p-interface.md
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-11-04 17:13:07 -05:00
Alex Stokes
cd5567b735
Update p2p-interface.md
2022-11-04 15:54:30 -06:00
Potuz
8488fb79d9
Alex Stokes' review
2022-11-04 18:47:56 -03:00
Potuz
e15b02d16f
lint
2022-11-04 09:13:21 -03:00
Potuz
22f803a038
name change and increment operator
2022-11-04 07:20:26 -03:00
Potuz
6e913ecbd2
rename to latest_withdrawal_validator_index
2022-11-03 20:23:35 -03:00
Hsiao-Wei Wang
0b1f32ec25
Fix capella/block_processing tests
2022-11-03 16:08:05 -05:00
Potuz
a09d617737
right ret
2022-11-03 15:07:03 -03:00
Potuz
329bafa6e2
dapplion's suggestions
2022-11-03 14:58:55 -03:00
Potuz
12404d0250
fix for loop
2022-11-03 14:56:38 -03:00
Hsiao-Wei Wang
ad36548480
Fix auto-rebase errors
2022-11-03 11:46:07 -05:00
Potuz
39e6ec5d14
lint
2022-11-03 11:43:56 -05:00
Potuz
a14479a70f
g11tech review
2022-11-03 11:43:56 -05:00
Potuz
ff1dd90012
fix toc
2022-11-03 11:43:24 -05:00
Potuz
5b92eae08f
type annotation
2022-11-03 11:43:24 -05:00
Potuz
0f74ab5686
type annotation
2022-11-03 11:43:24 -05:00
Potuz
c156ea6adc
linting and typo
2022-11-03 11:43:24 -05:00
Potuz
49a2519da2
lint
2022-11-03 11:43:24 -05:00
Potuz
7dbd50e958
Reviewers' comments
...
- Implemented many of Alex's comments including reinsertion of the
withdrawal index in the BeaconState
- Implemented Sean's suggestion of separating the logic for block
production so that one matches the list in the payload with what
`get_expected_withdrawals` returns
- Changed `get_expected_wihdrawals` to match the current behavior and
moved it to `beacon-chain.md`
2022-11-03 11:42:31 -05:00
Potuz
f506087af5
rebase on top of develop
2022-11-03 11:42:30 -05:00
Potuz
d958ed70b4
Implement withdrawals without queues
2022-11-03 11:40:54 -05:00
George Kadianakis
b2d72a18f0
Fix type error in the inputs to hash_to_bls_field()
2022-11-03 18:13:36 +02:00
Hsiao-Wei Wang
5a0d84ed01
int casting to avoid underflow
2022-11-03 10:21:09 -05:00
George Kadianakis
86e15764ad
EIP4844: Update cryptography API ( #3038 )
...
This commit changes the public API of the KZG library to the following high-level API:
```
- verify_kzg_proof()
- compute_aggregate_kzg_proof()
- verify_aggregate_kzg_proof()
- blob_to_kzg_commitment()
```
compared to the previous much more low-level API:
```
- compute_powers()
- matrix_lincomb()
- lincomb()
- bytes_to_bls_field()
- evaluate_polynomial_in_evaluation_form()
- verify_kzg_proof()
- compute_kzg_proof()
```
This means that all the cryptographic logic (including Fiat-Shamir) is now isolated and hidden in the KZG library and the `validator.md` file ends up being significantly simplified, only calling high-level KZG functions.
Some additional things that this commit does:
- Moves all EIP4844 cryptography into polynomial-commitments.md
- Improves the Fiat-Shamir stack by removing the need for SSZ and by introducing simple domain separators
Co-authored-by: Kevaundray Wedderburn <kevtheappdev@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
Co-authored-by: Dankrad Feist <mail@dankradfeist.de>
2022-11-03 17:01:32 +02:00
Hsiao-Wei Wang
87dcb83827
Merge pull request #3063 from etan-status/lc-gossipdigests
...
Document how to derive fork context for LC gossip
2022-11-02 13:12:23 +08:00
Mark Mackey
826c20ffc2
Capella: Add Gossip Topic bls_to_execution_change
2022-11-01 12:54:33 -05:00
Hsiao-Wei Wang
498a5b0722
Merge pull request #3062 from terencechain/rm-signed-blobs
...
EIP4844: Remove signed blobs
2022-11-01 22:32:45 +08:00
Etan Kissling
ff0e525ecc
Pass blocks to LC data creation functions
...
Future light client protocol extensions may include data from the block
in addition to data from the state, e.g., `ExecutionPayloadHeader`.
To prepare for this, also pass the block to the corresponding functions.
In practice, blocks access is easier than historic state access, meaning
there are no practical limitations due to this change.
2022-10-28 22:14:25 +02:00
Alex Stokes
be3c774069
Merge pull request #3065 from etan-status/lc-branchrootdocs
...
Clarify where LC proofs are rooted
2022-10-28 08:51:26 -06:00
Etan Kissling
5b6eb8007a
Clarify where LC proofs are rooted
...
Add more detailed LC object documentation to explain that the various
merkle proofs are relative to the beacon block's state root.
Likewise, clarify that sync committees relate to the finalized header
(not to the optimistic header, which can be a period ahead).
2022-10-27 21:44:38 +02:00
Etan Kissling
af54c97a6c
Consistently use `compute_sync_committee_period_at_slot`
...
A few LC functions were not yet updated to use a more concise function
for computing sync committee period for a slot. Updating to that func.
2022-10-27 21:36:55 +02:00
Etan Kissling
c399e11aa7
Document how to derive fork context for LC gossip
...
For LC gossip, the documentation did not specify what slot number to use
for deriving the gossip objects. This missing documentation is now added
to document using `attested_header.slot`.
2022-10-27 21:23:09 +02:00
terence tsao
71775c6e87
EIP4844: Remove signed blobs
2022-10-27 08:10:32 -07:00
Jacek Sieka
4d1b487b21
move field last
...
avoids changing "header" fields in state
2022-10-27 10:38:09 +02:00
Jacek Sieka
1c8d57eeb7
Historical batches
...
This PR, a continuation of
replaces `historical_roots` with
`historical_block_roots`.
By keeping an accumulator of historical block roots in the state, it
becomes possible to validate the entire block history that led up to
that particular state without executing the transitions, and without
checking them one by one in backwards order using a parent chain.
This is interesting for archival purposes as well as when implementing
sync protocols that can verify chunks of blocks quickly, meaning they
can be downloaded in any order.
It's also useful as it provides a canonical hash by which such chunks of
blocks can be named, with a direct reference in the state.
In this PR, `historical_roots` is frozen at its current value and
`historical_batches` are computed from the merge epoch onwards.
After this PR, `block_batch_root` in the state can be used to verify an
era of blocks against the state with a simple root check.
The `historical_roots` values on the other hand can be used to verify
that a constant distributed with clients is valid for a particular
state, and therefore extends the block validation all the way back to
genesis without backfilling `block_batch_root` and without introducing
any new security assumptions in the client.
As far as naming goes, it's convenient to talk about an "era" being 8192
slots ~= 1.14 days. The 8192 number comes from the
SLOTS_PER_HISTORICAL_ROOT constant.
With multiple easily verifable blocks in a file, it becomes trivial to
offload block history to out-of-protocol transfer methods (bittorrent /
ftp / whatever) - including execution payloads, paving the way for a
future in which clients purge block history in p2p.
This PR can be applied along with the merge which simplifies payload
distribution from the get-go. Both execution and consensus clients
benefit because from the merge onwards, they both need to be able to
supply ranges of blocks in the sync protocol from what effectively is
"cold storage".
Another possibility is to include it in a future cleanup PR - this
complicates the "cold storage" mode above by not covering exection
payloads from start.
2022-10-27 10:33:38 +02:00
Hsiao-Wei Wang
af8c5bf532
Merge pull request #3046 from terencechain/couple-block-sidecar
...
EIP4844: couple beacon block and blob sidecar for p2p
2022-10-26 23:51:23 +08:00
Hsiao-Wei Wang
b7c72c3b42
Merge pull request #3047 from terencechain/reduce-min-epochs-blobs-reqs
...
EIP4844: modify `MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS` to 18 days
2022-10-26 23:26:45 +08:00
Inphi
ca538f52a0
Update specs/eip4844/beacon-chain.md
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-10-25 12:06:07 -04:00
inphi
459310f744
Fix test_process_execution_payload
2022-10-24 16:25:50 -04:00
inphi
0488c0c26e
remove unchanged epoch processing section
2022-10-24 12:51:54 -04:00
inphi
2ac57c7e7b
Fix py setup
...
And remove the ENABLE_WITHDRAWALS feature-flag. The Testing section in
the spec has been updated to specify how withdrawals is to be disabled
2022-10-24 12:44:11 -04:00
Hsiao-Wei Wang
9844ea1f30
Merge pull request #3040 from ethereum/capella-test-vectors
...
Capella test vectors
2022-10-23 06:44:03 +08:00
terence tsao
e2d0a4fa9a
Fix ToC and test
2022-10-22 08:36:46 -07:00
terence tsao
9f4ae4c6ee
Update validator spec with `SignedBeaconBlockAndBlobsSidecar`
2022-10-21 17:33:55 -07:00
Inphi
f6f2474c87
Update specs/eip4844/beacon-chain.md
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-10-20 14:39:18 -04:00
inphi
242e1b73bb
Rebase Capella on EIP-4844
...
This also introduces an `ENABLE_WITHDRAWALS` feature-flag to allow
implementers test EIP-4844 without including Capella-specific state
changes.
2022-10-20 10:36:08 -04:00
Hsiao-Wei Wang
53b63cedc5
Merge branch 'dev' into pr3050
2022-10-19 10:21:32 -05:00
terence tsao
dfa5ac8008
@protolambda's feedback, `SignedBlobsSidecar` -> `BlobsSidecar`
2022-10-18 11:34:14 -07:00
terencechain
cab2e3ef9a
Describe sidecar and block are recieved together
...
Co-authored-by: protolambda <proto@protolambda.com>
2022-10-18 11:23:19 -07:00
terencechain
779d9be66a
Compare sidecar slot with block slot
...
Co-authored-by: protolambda <proto@protolambda.com>
2022-10-18 11:22:43 -07:00
Jim McDonald
0345b2284a
Add validator_index to Withdrawal.
2022-10-18 15:35:06 +01:00
terence tsao
b128148a17
Modify `MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS` to 18 days
2022-10-17 16:24:19 -07:00
terence tsao
96b90200b7
Fix ToC
2022-10-17 16:08:59 -07:00
terence tsao
eb5a2c2741
Couple beacon block and blob sidecar for p2p
2022-10-17 15:16:38 -07:00
Hsiao-Wei Wang
b90436c988
Fix capella random & fork
2022-10-14 23:42:42 -05:00
ethosdev
24f8ec170b
Remove work-in-progress notes in Bellatrix specs ( #3033 )
...
* Remove the work-in-progress note in Bellatrix spec
Bellatrix is done and released.
* Remove work-in-progress notes in Bellatrix specs
* Remove work-in-progress notes in Bellatrix specs
* Remove work-in-progress notes in Bellatrix specs
2022-10-15 05:05:45 +08:00
Alex Stokes
092617ec1e
Remove duplicated definition of `Validator`
2022-10-09 17:02:50 -05:00
Hsiao-Wei Wang
3552e2f6e8
Merge pull request #3018 from ethereum/bump-dep
...
Bump dep packages version and fix lint issues
2022-10-07 00:21:51 +08:00
protolambda
63ab5996f4
eip4844: update tx_peek_blob_versioned_hashes to match tx type as defined in EIP PR 5707 (fee market update)
2022-10-06 18:13:24 +02:00
Alex Stokes
4e26813c81
Merge pull request #3023 from dapplion/patch-1
...
Typo in sync committee duties description
2022-10-05 20:10:12 -06:00
Lion - dapplion
fda2a69ff7
Typo in sync committee duties description
...
I assume it refers to producing a signature for the last slot of phase0 fork
2022-10-02 12:19:55 +02:00
Ramana Kumar
807650e8a1
Fix some type annotations for blobs
...
blobs should not be Sequence[BLSFieldElement], it should be
Sequence[Sequence[BLSFieldElement]]. But we can be more specific and use
Sequence[Blob].
2022-10-01 15:25:47 +01:00
Danny Ryan
6b9e65fab6
Merge pull request #3019 from terencechain/fix-eip4844
...
EIP4844: various fixes
2022-09-30 10:51:42 -06:00
Danny Ryan
9dfb1897a4
Merge pull request #3004 from Inphi/inphi/eip4844-fee-mkt
...
EIP-4844: Update ExecutionPayloadHeader
2022-09-30 08:16:53 -06:00
terencechain
779e6e7b7e
Update specs/eip4844/p2p-interface.md
...
Co-authored-by: Lion - dapplion <35266934+dapplion@users.noreply.github.com>
2022-09-29 13:43:28 -07:00
terence tsao
06c91e4843
Try a different format for epoch
2022-09-29 07:55:50 -07:00
terence tsao
93cb17dc7f
Eip4844: various fixes
2022-09-29 07:36:39 -07:00
Hsiao-Wei Wang
44424c4080
Bump dep packages version and fix lint issues
2022-09-28 12:38:21 +08:00
Ramana Kumar
9ac605cc5e
Fix incorrect comment
...
bit-reversal permutation is not idempotent
2022-09-27 12:13:56 +01:00
George Kadianakis
6c2b46ae32
Merge pull request #3015 from asn-d6/bytes_to_bls_field
...
EIP4844: Introduce bytes_to_bls_field() helper
2022-09-26 23:55:16 +03:00
Danny Ryan
eeebd42a95
Merge pull request #2998 from ethereum/remove-withdrawn-epoch
...
remove withdrawn_epoch
2022-09-26 14:30:25 -06:00
George Kadianakis
d197ed1451
EIP4844: Introduce bytes_to_bls_field() helper
...
Improves separation between BLS cryptography and Ethereum SSZ logic.
Now the BLS library just implements bytes_to_bls_field(). Then hash_to_bls_field() does the Ethereum SSZ magic and
calls bytes_to_bls_field().
2022-09-26 19:01:01 +03:00
Dustin Brody
b5bcec8d34
deprecate phase 0-only versions of beacon_blocks_by_{range,root}
2022-09-26 15:01:45 +00:00
George Kadianakis
f4ba8b55ee
EIP4844: Implement reverse bit ordering in KZG commitments
...
Co-authored-by: Dankrad Feist <mail@dankradfeist.de>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-09-26 16:39:16 +03:00
Alex Stokes
189d61e386
Merge pull request #3008 from terencechain/patch-137
...
eip4844: signed_blobs_header -> signed_blobs_sidecar
2022-09-22 15:13:14 +02:00
George Kadianakis
e4fdb8a0ad
Merge pull request #3005 from ethereum/eip4844-patch-dr
...
Fixing EIP-4844 function names
2022-09-22 12:59:42 +03:00
terencechain
1bb863b2a6
eip4844: signed_blobs_header -> signed_blobs_sidecar
2022-09-21 14:49:18 -07:00
Justin Traglia
5517729859
Fix TOC with check_toc
2022-09-21 16:41:33 -05:00
Justin Traglia
7066307a0f
Fix section name for withdraw_balance
2022-09-21 16:36:27 -05:00
inphi
ceee7bfbf1
EIP-4844: Fee market updates to execution
2022-09-21 09:14:46 -04:00
Justin Traglia
603e27f459
Fix state list lengths table
2022-09-20 15:24:14 -05:00
Justin Traglia
3bc7ff9f80
Fix a few things in Capella specs
2022-09-20 14:43:38 -05:00
Dankrad Feist
b35155005b
Rename matrix_lincomb to vector_lincomb and lincomb to g1_lincomb
2022-09-19 20:16:19 +01:00
Dankrad Feist
b63ed22588
Fix signature of compute_aggregated_poly_and_commitment
2022-09-19 20:10:48 +01:00
Danny Ryan
70f90c5296
rmove withdrawn_epoch
2022-09-19 11:39:46 -06:00
Ben Guidarelli
d70dcd9926
Fix link to beacon-chain doc
2022-09-15 10:21:06 -04:00
Hsiao-Wei Wang
109250b963
Replace `hash_tree_root(x)` with `hash(ssz_serialize(x))`
2022-08-22 16:00:40 +08:00
Hsiao-Wei Wang
d133dae471
Fix codespell errors ( #2975 )
2022-08-18 22:08:44 +08:00
terencechain
cc9a5fe61e
EIP4844: fix format
2022-08-17 06:48:05 -07:00
Danny Ryan
5d0f4af063
Merge mainnet ttd and bellatrix values ( #2969 )
...
* merge mainnet ttd and bellatrix values
* Update configs/minimal.yaml
Co-authored-by: Paul Harris <paul.harris@consensys.net>
Co-authored-by: Paul Harris <paul.harris@consensys.net>
2022-08-15 08:00:14 -06:00
Danny Ryan
18dc61f4c5
Merge pull request #2961 from ethereum/execution_payload_tests
...
more execution payload tests and cleanup old ones
2022-08-04 07:44:53 -06:00
Danny Ryan
7e360240f9
more execution payload tests and cleanup old ones
2022-08-01 11:42:38 -06:00
Danny Ryan
fb71509052
Merge pull request #2953 from potuz/overloaded-index
...
Do not overload index with WithdrawalIndex and ValidatorIndex
2022-08-01 11:15:37 -04:00
David Theodore
c51e67a059
fixed typo in on_block() definition
2022-07-29 00:13:32 -07:00
Potuz
2c32fa6473
Do not overload index with WithdrawalIndex and ValidatorIndex
2022-07-26 17:34:02 -03:00
Etan Kissling
52a741f7c6
Improve grammar
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-25 15:46:29 +02:00
Etan Kissling
56363cd94a
Define libp2p protocol for light client sync
...
While the current Altair specs define structures to aid light client
development, one missing key aspect is the network protocol definition.
Certain implementations have started defining their own REST based APIs,
e.g., Lodestar at https://github.com/ChainSafe/lodestar/blob/master/packages/api/src/routes/lightclient.ts
While such APIs are useful, REST does not seem to be the ideomatic
choice as the sole API available at such a low level for Ethereum.
This patch introduces a libp2p based protocol to allow light clients to
sync to the latest `BeaconBlockHeader` in a trustless and decentralized
manner, building on top of prior work from:
- @hwwhww at https://github.com/ethereum/consensus-specs/pull/2267
- @jinfwhuang at https://github.com/ethereum/consensus-specs/pull/2786
- Lodestar's REST API (also has an endpoint to fetch merkle proofs!)
2022-07-22 17:56:41 +02:00
Etan Kissling
8ced2c3ae1
Remove newlines between items for visual consistency
2022-07-22 17:46:07 +02:00
Etan Kissling
78d336e28d
Describe light client sync process
...
Provides documentation about the process that a light client may use to
sync a local `LightClientStore`.
2022-07-22 17:12:57 +02:00
Hsiao-Wei Wang
0e82acfd61
Merge pull request #2945 from Inphi/eip4844-nit
...
Fix Polynomial container size
2022-07-22 19:48:02 +08:00
Hsiao-Wei Wang
d717f7e4d1
Merge pull request #2947 from etan-status/lc-forceupdate
...
Manually trigger `LightClientStore` force updates
2022-07-22 19:42:55 +08:00
Etan Kissling
8643e28f12
`try_...` --> `process_...`
2022-07-22 11:49:07 +02:00
Michael de Hoog
b2c647f2b2
Remove triple m
2022-07-21 11:11:30 -05:00
Etan Kissling
f9d866eb28
Manually trigger `LightClientStore` force updates
...
Replaces `process_slot_for_light_client_store` which force updates the
`LightClientStore` automatically based on `finalized_header` age with
`try_light_client_store_force_update` which may be manually called based
on use case dependent heuristics if light client sync appears stuck.
Not all use cases share the same risk profile.
2022-07-21 16:06:46 +02:00
inphi
9016b92691
Fix Polynomial container size
2022-07-21 01:58:22 -04:00
Etan Kissling
95019bb9a9
Improve readability of intro text
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-20 17:50:18 +02:00
Etan Kissling
06d9fd8cd3
Add `LightClient(Finality|Optimistic)Update`
...
Introduces reduced `LightClientUpdate` structures to allow keeping track
of the latest `finalized_header` and `optimistic_header`. This may also
help in scheduling the next query for a full `LightClientUpdate` once
sync committee finality has been reached.
2022-07-20 13:14:58 +02:00
Hsiao-Wei Wang
1d2ef9f8cb
Merge pull request #2938 from etan-status/lc-testsuite
...
Add functions for deriving light client data
2022-07-20 14:47:05 +08:00
dankrad
02a2b71d64
WIP implementation of Danksharding ( #2792 )
...
* Rough structure
* Most of the KZG checks in
* Fixes suggested by Vitalik
* Add low degree check for commitments
* Remove -1 check from degree proof (not needed)
* Require block builders to be validators to simplify things
* remove verify_intermediate_block_bid_commitment
* Rename back to process_block
* Degree check formula corrections
* Updated TOC, bid processing corrections
* Link to latest sharding doc
* Add shard samples + P2P
* Add validator guide for attestations and reconstruction
* Update specs/sharding/beacon-chain.md
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* Update specs/sharding/beacon-chain.md
Co-authored-by: vbuterin <v@buterin.com>
* Update specs/sharding/beacon-chain.md
Co-authored-by: vbuterin <v@buterin.com>
* Refactor polynomial operations into separate file
* Add missing polynomial functions
* Fix polynomial commitment file toc levels
* Refactor the payload to make better use of unions
* Add reverse bit order convention
* Correct inequality in verify_degree_proof
* Small fix
* Fix polynomial evaluation
* Update specs/sharding/beacon-chain.md
Co-authored-by: George Kadianakis <desnacked@riseup.net>
* MAX_BEACON_BLOCKS_BETWEEN_INTERMEDIATE_BLOCKS definition added
* Sample reconstruction estimate
* Update specs/sharding/beacon-chain.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Fix return value of roots_of_unity()
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/beacon-chain.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/beacon-chain.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/beacon-chain.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Intermediate block -> Builder block
* Some small omissions in intermediate -> builder
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: George Kadianakis <desnacked@riseup.net>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: George Kadianakis <desnacked@riseup.net>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Z1 -> inf_G1
* Fix degree proof bound
* SignedShardSample -> ShardSample
* Typo
* Don't allow 0 for `next_power_of_two`
* Remove unused `ROOT_OF_UNITY` constant
* Throwaway variable name
* Fix function documentation of `bls_modular_inverse`
* Builder block bid increase by at least 1%, no RANDAO processing in builder blocks
* Fix tocs
* Fix tocs
* Fix typo
* Update specs/sharding/polynomial-commitments.md
Co-authored-by: George Kadianakis <desnacked@riseup.net>
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: vbuterin <v@buterin.com>
Co-authored-by: George Kadianakis <desnacked@riseup.net>
2022-07-18 11:20:25 -06:00
Etan Kissling
0941114acf
Merge branch 'dev' into lc-testsuite
2022-07-18 18:19:07 +02:00
Hsiao-Wei Wang
a1546fdf4f
Merge branch 'dev' into fix-capella-genesis
2022-07-18 14:48:02 +08:00
Hsiao-Wei Wang
647e9d0ec0
PR feedback from @ralexstokes
2022-07-18 14:45:00 +08:00
Etan Kissling
c9f0927d8b
Merge branch 'dev' into lc-testsuite
2022-07-17 06:34:52 +02:00
Etan Kissling
63816debcc
Merge commit '9c798806355f67a32704a8cd5a98d90deccb8f69' into lc-testsuite
2022-07-15 21:38:18 +02:00
Hsiao-Wei Wang
185f51ec0e
Merge branch 'dev' into pr2937
2022-07-16 01:40:39 +08:00
Hsiao-Wei Wang
ec980dae4c
Rework `blobs_sidecar` propagation guide
2022-07-16 01:13:31 +08:00
Hsiao-Wei Wang
400e1e54c1
Fix EIP4844 `create_genesis_state`, `EIP4844_FORK_VERSION`, and `config_fork_epoch_overrides`
...
`config_fork_epoch_overrides`: since Capella and EIP4844 are in parallel, need to check if the field exists
Update `compute_fork_version`
2022-07-16 01:13:25 +08:00
Hsiao-Wei Wang
808f9c7f7f
Use `validate_*` for the valdiation functions that return `None`
2022-07-16 00:54:01 +08:00
Hsiao-Wei Wang
4176781123
PR feedback from @djrtwo
2022-07-15 23:37:32 +08:00
Hsiao-Wei Wang
a205e9314d
Make block proposal direction more clear
2022-07-15 23:33:31 +08:00
Hsiao-Wei Wang
9c79880635
Fix genesis testing tool and add Capella version `initialize_beacon_state_from_eth1` helper
2022-07-15 22:22:19 +08:00
Etan Kissling
a126f22cd9
Sync tocs
2022-07-15 13:49:19 +02:00
Etan Kissling
de15971ae8
Cleanups
2022-07-15 13:45:34 +02:00
Etan Kissling
88206117c6
Extract full node specifics to separate doc
2022-07-15 13:37:27 +02:00
Etan Kissling
d06f44ef55
Move `sync-protocol.md` into `light-client` subdir
2022-07-15 13:22:14 +02:00
Etan Kissling
6146f01400
Flip order of `assert` and assignment
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-15 12:03:44 +02:00
Etan Kissling
dbefbcf326
Explicitly mention optional `finalized_block`
2022-07-15 12:01:49 +02:00
Etan Kissling
95c07575b1
Hide `build_proof` and `get_backing` from spec
2022-07-15 11:54:47 +02:00
Etan Kissling
86fe93ca96
Add functions for deriving light client data
...
Adds `create_light_client_bootstrap` and `create_light_client_update`
functions as a reference implementation for serving light client data.
This also enables a new test harness to verify that light client data
gets applied to a `LightClientStore` as expected.
2022-07-14 09:36:09 +02:00
Etan Kissling
66325d0e9b
Use helper variables to make ifs more readable
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 14:08:51 +02:00
George Kadianakis
5b9bf41de6
EIP-4844: Further improvements on the spec
...
- Move constants around
- Implement missing functions to make the spec executable
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:13:30 +03:00
George Kadianakis
221f3687bd
EIP-4844: Improve the cryptographic parts of the spec
...
- Move more code into polynomial-commitments.md
- Implement aggregated sidecar verification logic from PR #2915
- Rename `kzgs` to `kzg_commitments`
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:12:31 +03:00
Etan Kissling
6048f1abf6
More concise finality ranking
2022-07-12 07:37:12 +02:00
Etan Kissling
654970c605
Add `LightClientBootstrap`
...
Introduces a new `LightClientBootstrap` structure to allow setting up a
`LightClientStore` with the initial sync committee and block header from
a user-configured trusted block root.
This leads to new cases where the `LightClientStore` is only aware of
the current but not the next sync committee. As a side effect of these
new cases, the store's `finalized_header` may now advance into the next
sync committee period before a corresponding `LightClientUpdate` with
the new sync committee is obtained, improving responsiveness.
Note that so far, `LightClientUpdate.attested_header.slot` needed to be
newer than `LightClientStore.finalized_header.slot`. However, it is now
necessary to also consider certain older updates to try and backfill the
`next_sync_committee`. The `is_better_update` helper is also updated to
improve `best_valid_update` tracking.
2022-07-12 07:27:00 +02:00
Etan Kissling
b7a0e532e4
Prefix update `period` variables
2022-07-10 22:05:18 -07:00
Etan Kissling
2ddb3833ff
Extend documentation for forced updates
2022-07-08 22:25:33 -07:00
Etan Kissling
33f572c98d
More concise sync committee finality ranking
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-08 22:05:48 -07:00
Etan Kissling
fa85648385
`==` on new line
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-08 22:04:05 -07:00
Etan Kissling
35f5010de7
More concise finality ranking
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-08 22:01:56 -07:00
Etan Kissling
aa8caee2e3
Add `compute_sync_committee_period_at_slot`
2022-07-08 21:59:09 -07:00
Etan Kissling
c67ad597f0
Reorder helpers to group ones operating on updates
2022-07-08 21:46:34 -07:00
Etan Kissling
c4dbd241ac
Root `next_sync_committee` in `attested_header`
...
`LightClientUpdate` structures currently use different merkle proof root
depending on the presence of `finalized_header`. By always rooting it in
the same state (the `attested_header.state_root`), logic gets simpler.
Caveats:
- In periods of extended non-finality, `update.finalized_header` may now
be outdated by several sync committee periods. The old implementation
rejected such updates as the `next_sync_committee` in them was stale,
but the new implementation can properly handle this case.
- The `next_sync_committee` can no longer be considered finalized based
on `is_finality_update`. Instead, waiting until `finalized_header` is
in the `attested_header`'s sync committee period is now necessary.
- Because `update.finalized_header > store.finalized_header` no longer
holds (for updates with finality), an `is_better_update` helper is
added to improve `best_valid_update` tracking (in the past, finalized
updates with supermajority participation would always directly apply)
This PR builds on prior work from:
- @hwwhww at https://github.com/ethereum/consensus-specs/pull/2829
2022-07-01 14:49:24 -07:00
Etan Kissling
f5f3031c5e
Allow passing redundant `next_sync_committee`
...
The producer of `LightClientUpdate` structures usually does not know how
far the `LightClientStore` on the client side has advanced. Updates are
currently rejected when including a redundant `next_sync_committee` not
advancing the `LightClientStore`. Behaviour is changed to allow this.
2022-06-29 13:16:03 +02:00
Hsiao-Wei Wang
f810b6714b
Merge pull request #2924 from etan-status/lc-genesis
...
Allow `LightClientUpdate` with genesis finality
2022-06-29 13:12:58 +02:00
Etan Kissling
65cfedef22
Update finality update documentation
2022-06-27 22:36:55 +02:00
Etan Kissling
99e30328a8
Switch condition order for readability
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-06-27 22:26:35 +02:00
fradamt
67d62025d9
fix typo and specify something
...
- committee_index is used as an input to compute_subnet_for_attestation but it's not previously defined
- attestation.data.committee_index is incorrect, the field is "index"
2022-06-27 14:20:25 +02:00
Etan Kissling
c10daf1709
Allow `LightClientUpdate` with genesis finality
...
When `state.finalized_checkpoint` references the genesis slot, it points
to an empty `root`, instead of the actual genesis block hash. This patch
updates the `LightClientUpdate` logic to allow including finality proofs
for genesis `finalized_checkpoint.root`, better supporting non-mainnet.
When including such a finality proof, the proof is for the empty `root`,
but `finalized_header` is kept zeroed out to signify this edge case.
2022-06-27 12:10:40 +02:00
Hsiao-Wei Wang
a40a64440c
Merge pull request #2916 from etan-status/lc-forkversion
2022-06-27 06:38:11 +02:00
Hsiao-Wei Wang
d4a2bdcea0
Merge pull request #2915 from asn-d6/consensus-4844-proofs-optimization
...
Optimizing EIP-4844 block validation (using KZG proofs)
2022-06-26 13:55:17 +02:00
Hsiao-Wei Wang
a3339c7b7f
PR suggestion from @Inphi
2022-06-25 00:13:20 +08:00
Etan Kissling
840733ffd2
Move `compute_fork_version` to `fork.md`
2022-06-23 21:03:24 +02:00
Hsiao-Wei Wang
94da861d9c
Fix ToC
2022-06-23 18:44:37 +08:00
Hsiao-Wei Wang
0ab280d396
minor suggestions
2022-06-23 18:40:09 +08:00
George Kadianakis
e7e520791d
Use Python's pow() in bls_modular_inverse().
2022-06-22 15:42:03 +03:00
George Kadianakis
534a9d1d95
Move EIP-4844 cryptography code to its own file
2022-06-22 15:42:03 +03:00
Hsiao-Wei Wang
8a70295a84
Fix ToC
2022-06-20 21:26:41 +08:00
Etan Kissling
0b8ab23bd4
Remove `fork_version` from `LightClientUpdate`
...
The `fork_version` field in `LightClientUpdate` can be derived from the
`update.signature_slot` value by consulting the locally configured fork
schedule. The light client already needs access to the fork schedule to
determine the `GeneralizedIndex` values used for merkle proofs, and the
memory layouts of the structures (including `LightClientUpdate`). The
`fork_version` itself is network dependent and doesn't reveal that info.
2022-06-16 17:17:24 +02:00
Hsiao-Wei Wang
8cc008d11c
Merge pull request #2805 from etan-status/lc-period
...
Allow light client to verify signatures at period boundary
2022-06-16 16:53:12 +02:00
George Kadianakis
4be0b9d6bc
Add needed math/crypto functions to validate KZG aggregated proofs
...
All code pretty much straight up copied from https://github.com/ethereum/EIPs/pull/5088
2022-06-14 16:37:08 +03:00
George Kadianakis
e4c75d67ce
Introduce high-level logic of new efficient block validation
2022-06-14 16:37:08 +03:00
inphi
dbac7b1582
EIP-4844: Remove shard field from BlobsSidecar
2022-06-13 16:32:18 -04:00
Danny Ryan
74489d5523
Partial withdrawals ( #2862 )
...
* t push base design for partial withdrawals
* moor tests
* clean up withdrawals naming
* make partial withdrawal randomized tests better
* Apply suggestions from code review
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* fix mainnet brokn test
* name swap
* lint
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-06-08 13:16:12 -06:00
Murphy Law
a3128b8c57
EIP-4844: fix a typo ( #2898 )
2022-05-31 08:40:06 -06:00
Jacek Sieka
0e6a7cd39a
deprecate `BeaconBlocksByRange.step` ( #2856 )
...
* deprecate `BeaconBlocksByRange.step`
The `step` parameter has not seen much implementation in real life
clients which instead opt to request variations on a few epochs at a
time (instead of interleaving single blocks, entire epochs are
interleaved).
At the same time, supporting `step` on the server side brings several
complications: more complex bounds checking logic, more complex loading
of blocks from linear storage (which presumably stores all blocks and
not just certain increments).
This PR suggests that we deprecate the whole idea. Backwards
compatibility is kept by simply responding with a single block when
`step > 0` - this is allowed by the spec and should thus be handled
gracefully by requesting clients already, should there exist any that
use larger step counts.
Removing `step` now allows simplifying the EL-CL protocol for serving
execution data from the EL to avoid double storage.
* Update specs/phase0/p2p-interface.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-05-20 13:18:24 -06:00
Caspar Schwarz-Schilling
72f7b88f2a
Update PROPOSER_SCORE_BOOST to 40 percent ( #2895 )
2022-05-20 13:15:40 -06:00
Mikhail Kalinin
d62ebaeaca
Run on_tick before picking the head for proposal ( #2897 )
2022-05-19 07:56:49 -06:00
Alex Stokes
5337da5dff
use python syntax for bitwise AND operation ( #2894 )
2022-05-17 07:14:19 -06:00
Jacek Sieka
bab5e402df
Ignore subset aggregates ( #2847 )
...
* Ignore subset aggregates
When aggregates are propagated through the network, it is often the case
that a better aggregate has already been seen - in particular, this
happens when an aggregator has not been able to include itself in the
mesh and therefore publishes an aggregate with only its own
attestations.
This new ignore rule allows dropping all aggregates that are
(non-strict) subsets of aggregates that have already been seen on the
network. In particular, it does not mandate dropping aggregates where a
union of previous aggregates would cause it to become a subset).
The logic for allowing this is based on the premise that any aggregate
that has already been seen by a peer will also have been seen by its
neighbours - a subset aggregate (strict or not) brings no new value to
the aggregation algorithm, except in the extreme edge case where you
could combine several such sparse aggregates into a single, more dense
"combined" aggregate and thus use less block space.
Further, as a small benefit, computing the `hash_tree_root` of the full
aggregate is generally not done -however, `hash_tree_root(data)` is
already done for other purposes as this is used as index in the beacon
API.
* add subset ignore rule to sync contributions as well
* typo
2022-05-17 07:05:22 -06:00
Alex Stokes
20a90f1df7
Add new `DomainType` for application usage ( #2884 )
2022-05-16 08:08:15 -06:00
Danny Ryan
af1fbab181
Merge pull request #2888 from casparschwa/update-proposer-score-boost
...
Update proposer score boost
2022-05-16 08:06:59 -06:00
terencechain
ec7bb23697
bellatrix-p2p: fix a typo
2022-05-14 10:30:20 -07:00
Danny Ryan
c0a8178fff
minor patch to bytes formatting in capella
2022-05-10 09:37:01 -06:00
Danny Ryan
242f286f6e
Merge pull request #2878 from michaelsproul/forkchoice-b4-propose
...
Require fork choice to run before proposal
2022-05-10 09:23:16 -06:00
Caspar Schwarz-Schilling
712a4f9cf1
Fix linting
2022-05-09 15:05:05 +02:00
Caspar Schwarz-Schilling
f5303ca58e
Update PROPOSER_SCORE_BOOST to 33 percent
2022-05-09 10:17:24 +02:00
Danny Ryan
c1d0836936
Merge pull request #2855 from ethereum/00-to-01
...
00 to 01 cred change
2022-05-05 07:31:49 -06:00
Michael Sproul
3f76792ee3
Require fork choice to run before proposal
2022-05-05 11:21:55 +10:00
Etan Kissling
5653649ca8
Allow light client to verify signatures at period boundary
...
As the sync committee signs the previous block, the situation arises at
every sync committee period boundary, that the new sync committee signs
a block in the previous sync committee period. The light client cannot
reliably detect this condition (e.g., assume that this is the case when
it is currently on the last slot of a sync committee period), because
the last couple slots of a sync committee period may not have a block.
For example, when receiving a `LightClientUpdate` that is constructed
as in the following illustration, it is unknown whether `sync_aggregate`
was signed by the current or next sync committee at `attested_header`.
```
slot N N + 1 | N + 2 (slot not sent!)
|
+-----------------+ \ / | +----------------+
| attested_header | <--- X ----|---- | sync_aggregate |
+-----------------+ / \ | +----------------+
missed |
|
sync committee
period boundary
```
This patch addresses this edge case by including the slot at which the
`sync_aggregate` was created into the `LightClientUpdate` object.
Note that the `signature_slot` cannot be trusted beyond the purpose of
signature verification, as it could be manipulated to any other slot
within the same sync committee period and fork version, without making
the `sync_aggregate` invalid.
2022-05-02 13:08:20 +02:00
Etan Kissling
f125538122
Fix param order in `prepare_execution_payload`
...
Documentation on how to call `prepare_execution_payload` had the params
for `safe_block_hash` and `finalized_block` hash flipped compared to the
function definition. Also updated tests for consistency.
2022-04-25 16:49:00 +02:00
Hsiao-Wei Wang
83ac38c183
Merge pull request #2872 from benjaminion/patch-1
2022-04-17 08:00:33 -07:00
Ben Edgington
eca7237b27
Correct typo: BLSCommitment -> KZGCommitment
...
The consensus chain counterpart to https://github.com/ethereum/EIPs/pull/4992 . The same comment from there applies here as well.
2022-04-13 15:04:55 +01:00
Hsiao-Wei Wang
dcf41ef5e2
Merge branch 'dev' into eip4844-typo
2022-04-12 22:14:37 +08:00
Hsiao-Wei Wang
5978c86f3a
Typo fix: `ksg_to_version_hash` -> `kzg_to_versioned_hash`
2022-04-10 18:41:49 +08:00
Hsiao-Wei Wang
6576cab612
Fix Capella `prepare_execution_payload`
2022-04-06 18:13:39 +08:00
Danny Ryan
1bfefe301d
Merge pull request #2858 from mkalinin/justified-to-safe-block
...
Bellatrix: pass justified as a safe block
2022-03-30 12:19:21 -06:00
Danny Ryan
c87fc48053
minor typo
2022-03-30 12:04:23 -06:00
Mikhail Kalinin
b13a9f0f8a
Apply suggestions as per review
2022-03-30 15:36:01 +06:00