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