5341 Commits

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