Commit Graph

4939 Commits

Author SHA1 Message Date
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
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
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
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
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