* restructure verify_cell_kzg_proof_batch a bit
* first draft of universal verification equation
* add one more empty line to make linter happy
* make linter happy
* more testcases for verify_cell_kzg_proof_batch
* verify_cell_kzg_proof_batch: derive coefficient via hash
* rename verify_cell_kzg_proof_batch_challenge -> compute_verify_cell_kzg_proof_batch_challenge
* verify_cell_kzg_proof_batch: editorial + some refactoring
* Improve documentation and variable naming.
* remove k_i from code and doc
---------
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
* multi:
- Remove shift_polynomial_coeff
- Remove recover_shifted_data
- Remove recover_original_data
- Move `zero_poly_eval_brp ` under sanity check comment as its only used for sanity checking
* chore: remove sanity check -- this was doing a wasteful `compute_root_of_unity` operation
* chore: add previous sanity check as a unit test
* chore: copy values python was taking a reference, so it passes in our regular codepaths but not in isolated test
* chore: add coset_fft test
* Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
* Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
* chore: linter
* chore: asn (switch to bls_modular_inverse)
* chore: (ben) rename func to test_construct_vanishing_polynomial
* chore: (ben) rename `extended_evaluations_coeffs` to `extended_evaluation_times_zero_coeffs`
* chore: compute `roots_of_unity_extended` in recover_data method
* chore: add more comments explaining whats happening in recover_data
* chore: compute_zero_poly_coeff in recover_data
* chore: make lint
* chore: add doc comment to coset_fft_field
* chore: (ben) add code to generate the vanishing polynomial when all cells are missing
* chore: remove handling of edge case when constructing a vanishing polynomial
* chore: rename H(x) to Q_3(x)
* chore: remove trailing whitespace
* chore: add whitespace between comments
* chore: (asn) add assert that num missing cells is not 0
* chore: (justin) address comments
* chore: merge resolution
* chore: fixup remaining IDs -> indices
* chore: use indice nomenclature in tests
---------
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
* Recover cells and proofs & matrix clean up
* Fix table of contents
* Update reference tests generator
* Update test format
* Remove unused imports
* Fix some minor nits
* Rename MatrixEntry's proof to kzg_proof
* Move RowIndex & ColumnIndex to das-core
* Add CellBytes type
* Use ByteVector, not Vector
* Fix tests
* Replace b"" with []
* Apply suggestions for bytes_to_cell
* Add/integrate new CosetEvals type
* Remove accidental new line
* Fix recover_all_cells
* Fix recover_matrix
* fix CosetEvals abstraction leak
* Introduce internal Coset type for `coset_for_cell()`
* Use CosetEvals in compute_kzg_proof_multi_impl()
* update test
* satisfy linter
* Fix two nits I noticed
---------
Co-authored-by: Kevaundray Wedderburn <kevtheappdev@gmail.com>
Co-authored-by: George Kadianakis <desnacked@riseup.net>
wip
Add `TARGET_NUMBER_OF_PEERS`
Add networking spec draft
fix
simplification
Rename `DoYouHave` to `GetCustodyStatus`
Add DataLineSidecar design
Apply suggestions from code review
Co-authored-by: dankrad <mail@dankradfeist.de>
Co-authored-by: danny <dannyjryan@gmail.com>
Revamp after reviews and discussion
Remove `CustodyStatus`
minor fix
Change`DataColumn` to `List[DataCell, MAX_BLOBS_PER_BLOCK]`
Move folder
Replace `DataColumnByRootAndIndex` with `DataColumnSidecarByRoot` message. Add extended data description
Remove `DataRow`
Apply suggestions from @jacobkaufmann code review
Co-authored-by: Jacob Kaufmann <jacobkaufmann18@gmail.com>
Represent matrix in `BLSFieldElement` form
Add `assert time >= store.time` to `on_tick`
Revert the spec. Only handle it in tests
Remove extra tick
cleanup leftover
Add randomized block cases
Specify RPC byRoot blocks-sidecars elegibility
fix typo
Update specs/phase0/p2p-interface.md
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
Update specs/deneb/p2p-interface.md
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
add failed on_block condition
rephrase
Update specs/phase0/p2p-interface.md
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
apply suggestion
Update specs/deneb/p2p-interface.md
Co-authored-by: danny <dannyjryan@gmail.com>
Update specs/deneb/p2p-interface.md
Co-authored-by: danny <dannyjryan@gmail.com>
remove the last consider
from on_block to state_transition
simplify and add a new rule
Update specs/phase0/p2p-interface.md
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
Update specs/deneb/p2p-interface.md
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
Update specs/deneb/p2p-interface.md
Co-authored-by: danny <dannyjryan@gmail.com>
remove gossip failure rules
Apply suggestions from code review
bump version to v1.4.0-beta.5
Move `blob_sidecar_{subnet_id}` to `Blob subnets` section
Misc minor fix
Add linter support
Add column subnet validation. Split `verify_column_sidecar` into two functions
Fix `get_data_column_sidecars` by using `compute_samples_and_proofs`
Apply suggestions from code review
Co-authored-by: danny <dannyjryan@gmail.com>
Do not assign row custody
Apply suggestions from code review
Co-authored-by: danny <dannyjryan@gmail.com>
Revamp reconstruction section
Use depth as the primary preset for inclusion proof. Fix `get_data_column_sidecars` and add tests for merkle proof
Change `SAMPLES_PER_SLOT` to 8 and add tests (requirement TBD)
Apply PR feedback from @ppopth and @jtraglia
Fix `get_data_column_sidecars`
Co-authored-by: Pop Chunhapanya <haxx.pop@gmail.com>
Apply suggestions from code review
Co-authored-by: Pop Chunhapanya <haxx.pop@gmail.com>
Apply suggestions from code review
Co-authored-by: fradamt <104826920+fradamt@users.noreply.github.com>
Co-authored-by: Jacob Kaufmann <jacobkaufmann18@gmail.com>
Fix `get_data_column_sidecars` and `get_custody_lines`
Apply suggestions from code review
Co-authored-by: Jacob Kaufmann <jacobkaufmann18@gmail.com>
Enhance tests
fix typo
Co-authored-by: fradamt <104826920+fradamt@users.noreply.github.com>
Remove `epoch` from `get_custody_lines`
fix
fix