Etan Kissling
02abdc311f
Merge branch 'dev' into lc-eph
2022-12-13 15:33:28 +01:00
Hsiao-Wei Wang
2ac06c10d3
Update G2 trusted setup length to 65
2022-12-13 18:14:50 +08:00
dapplion
d4b8ab1173
Clarify BeaconBlockAndBlobsSidecarByRoot no blob available
2022-12-13 09:29:28 +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
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
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
terence tsao
5b0bfe7eb6
EIP4844: Update `MAX_BLOBS_PER_BLOCK` to 4
2022-11-30 14:34:09 -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
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
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
terence tsao
e2a2d68cae
Added a comment to support pre-fork-epoch
2022-11-11 09:50:06 -08: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
inphi
a59dd37933
Merge remote-tracking branch 'origin/dev' into inphi/eip4844-rebase
2022-11-10 13:17:57 -05:00
Alex Stokes
be098b60c0
Update specs/eip4844/p2p-interface.md
2022-11-10 09:10:01 -05:00
terencechain
579f8fd1d2
EIP4844: Explicitly mention old gossip validations for block
2022-11-09 15:06:58 -08: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
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
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
terence tsao
71775c6e87
EIP4844: Remove signed blobs
2022-10-27 08:10:32 -07: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
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
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
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
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
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
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
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
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
terencechain
1bb863b2a6
eip4844: signed_blobs_header -> signed_blobs_sidecar
2022-09-21 14:49:18 -07:00
inphi
ceee7bfbf1
EIP-4844: Fee market updates to execution
2022-09-21 09:14:46 -04: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
Hsiao-Wei Wang
109250b963
Replace `hash_tree_root(x)` with `hash(ssz_serialize(x))`
2022-08-22 16:00:40 +08:00
terencechain
cc9a5fe61e
EIP4844: fix format
2022-08-17 06:48:05 -07: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
Michael de Hoog
b2c647f2b2
Remove triple m
2022-07-21 11:11:30 -05:00
inphi
9016b92691
Fix Polynomial container size
2022-07-21 01:58:22 -04: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