Commit Graph

135 Commits

Author SHA1 Message Date
Justin Traglia ac1ce3b3f0 Rename verify_cell_proof to verify_cell_kzg_proof 2024-04-25 17:31:22 -05:00
Hsiao-Wei Wang e1d71216bb
Merge pull request #3715 from ethereum/das-test-vectors
Make `get_custody_columns` return sorted values and add `get_custody_columns` tests
2024-04-25 03:01:51 +08:00
Hsiao-Wei Wang 24899b7fba
Apply suggestions from @jtraglia 2024-04-24 19:04:40 +08:00
Alex Stokes b13e03e671
Merge pull request #3714 from kevaundray/kw/use-optimized-bls-msm
chore: use py-arkworks's multi-exp method inside of `g1_lincomb` and `g2_lincomb`
2024-04-23 11:57:13 -06:00
Kevaundray Wedderburn f3302a3836 - return serialized identity points
- result = None initially
2024-04-23 15:11:46 +01:00
Kevaundray Wedderburn d28a0164d2 add is_zero check 2024-04-23 14:55:37 +01:00
Kevaundray Wedderburn 5eb19b3cef modify g1_lincomb and g2_lincomb 2024-04-23 14:21:54 +01:00
Kevaundray Wedderburn 5a74f40442 g2_lincomb uses g2_multi_exp 2024-04-23 13:38:27 +01:00
Hsiao-Wei Wang 57c14e5400
Add `get_custody_columns` tests 2024-04-23 20:21:33 +08:00
Justin Traglia 73637c84b2
EIP-7594: Add asserts for public functions (#3684)
* Add length asserts for public PeerDAS functions

* Fix cell asserts

* Rename field variable to satisfy linter

* Add asserts for row/column indices

* Use CELLS_PER_EXT_BLOB

* Update to work with new spec changes

* Fix indentation

* Add explict check for cell_id
2024-04-23 12:12:26 +03:00
kevaundray e51f7df77d
chore: make list copy explicit in `divide_polynomialcoeff` (#3706) 2024-04-22 10:43:04 -05:00
George Kadianakis 4fceca2b75
Merge pull request #3710 from kevaundray/kw/rm-field-elements-from-das-core
chore: use CELLS_PER_EXT_BLOB to compute the number of columns
2024-04-22 17:59:31 +03:00
Justin Traglia bcd0a09e68
Integrate new Coset/CosetEvals types (#3701)
* 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>
2024-04-22 17:03:57 +03:00
Kevaundray Wedderburn 79d255b15a use CELLS_PER_EXT_BLOB in das-core 2024-04-22 14:08:44 +01:00
kevaundray 5c561722b8
add BLS_MODULUS to places where we subtract two integers (#3709) 2024-04-22 15:57:52 +03:00
George Kadianakis 858f51617d
Merge pull request #3708 from kevaundray/kw/hww-max-extended-matrix-size
chore: add a new config `MAX_EXTENDED_MATRIX_SIZE`
2024-04-22 15:56:51 +03:00
Kevaundray Wedderburn 3f2d498cee rename 2024-04-22 13:02:42 +01:00
George Kadianakis 0ffd0ca432
Merge pull request #3703 from kevaundray/kw/add-comment-for-verify-kzg
chore: Add more docs for the kzg verify algorithm
2024-04-22 12:46:12 +03:00
Hsiao-Wei Wang e46c4c39fb workaround: add a new config `MAX_EXTENDED_MATRIX_SIZE` to avoid `class Container(List[c, a*b])` 2024-04-22 10:31:58 +01:00
Kevaundray Wedderburn dca048d8df push @asn-d6 suggestions 2024-04-22 09:57:58 +01:00
kevaundray 0e4fc984ef
Remove unused return value (#3704) 2024-04-19 20:16:19 -05:00
Kevaundray Wedderburn 4684c5748c add comment for verify algorithm 2024-04-19 19:19:17 +01:00
Justin Traglia bc69c357b4
Merge pull request #3702 from kevaundray/kw/fix_recover_polynomial
Change `recover_polynomial` to `recover_all_cells`
2024-04-19 12:54:21 -05:00
Kevaundray Wedderburn 3ddd00e741 use recover_all_cells 2024-04-19 12:50:32 +01:00
Kevaundray Wedderburn 32cbda9de2 rename to recover_all_cells 2024-04-19 12:50:22 +01:00
Kevaundray Wedderburn 33dfa88160 fix bad merge 2024-04-19 12:07:58 +01:00
Kevaundray Wedderburn c2b7c0b414 Merge branch 'dev' into kw/optimize-compute-kzg-proof-multi 2024-04-19 12:04:15 +01:00
Hsiao-Wei Wang 9c04cf13c9
Merge pull request #3695 from kevaundray/kw/fix-kzg-multi-comment
chore: Fixes and elaborates on comments for `compute_kzg_proof_multi`
2024-04-19 15:32:09 +09:00
Hsiao-Wei Wang 0b312cae8b
Merge pull request #3692 from kevaundray/patch-11
chore: Change g2_lincomb to take in G2Points
2024-04-19 15:30:22 +09:00
kevaundray 8e3500b2b5
Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-04-18 20:26:52 +01:00
kevaundray 1669723adf
Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-04-18 20:26:46 +01:00
Kevaundray Wedderburn 6c8955d4bc chore: fix comment 2024-04-18 18:12:15 +01:00
Kevaundray Wedderburn 912038bb08 modify cell proofs comment 2024-04-18 18:11:41 +01:00
Kevaundray Wedderburn 4d073f10a2 remove remainder polynomial when in monomial form 2024-04-18 18:00:01 +01:00
Kevaundray Wedderburn d913140164 fix comments for kzg_proof_multi 2024-04-18 17:52:33 +01:00
Kevaundray Wedderburn 7e85c962f2 change CELLS_PER_BLOB in das-core.md 2024-04-18 17:40:51 +01:00
Kevaundray Wedderburn 3b889645ff number of cells in an extended blob 2024-04-18 17:38:04 +01:00
kevaundray 45e70747bb
Update polynomial-commitments-sampling.md 2024-04-18 15:02:30 +01:00
Justin Traglia 3dcf9ebe54 Use FIELD_ELEMENTS_PER_EXT_BLOB in NUMBER_OF_COLUMNS 2024-04-09 08:44:30 -05:00
Hsiao-Wei Wang 8728561da3
Merge branch 'dev' into peer-das 2024-04-04 22:23:02 +09:00
George Kadianakis 4b6b07b73e PeerDAS: Use FIELD_ELEMENTS_PER_EXT_BLOB in def of PolynomialCoeff 2024-03-12 15:07:42 +02:00
George Kadianakis c71fb00c8e PeerDAS: Check for degree overflow in multiply_polynomialcoeff() 2024-03-08 18:04:55 +02:00
Hsiao-Wei Wang cebf78a83e
Apply PR feedback 2024-02-27 22:42:32 +09:00
Hsiao-Wei Wang 1acb1ff24f
minor arrange 2024-02-20 22:23:23 +08:00
Hsiao-Wei Wang bb33f9082c
Change List length of `DataColumn` from `MAX_BLOBS_PER_BLOCK` to `MAX_BLOB_COMMITMENTS_PER_BLOCK` 2024-02-20 22:06:09 +08:00
Hsiao-Wei Wang 8150f76e1c
Apply @cskiraly's suggestion 2024-02-20 22:02:10 +08:00
Hsiao-Wei Wang 90afb238ed
Update specs/_features/eip7594/polynomial-commitments-sampling.md 2024-02-14 20:51:50 +08:00
George Kadianakis 385b0f35ac
Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-02-06 13:10:31 +02:00
George Kadianakis f1dd735784
Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-02-06 13:10:24 +02:00
George Kadianakis 4b1106b39c
Update specs/_features/eip7594/polynomial-commitments-sampling.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2024-02-05 16:59:08 +02:00
George Kadianakis 1e41a6bc69 New FIELD_ELEMENTS_PER_EXT_BLOB: number of cells in an extended blob 2024-02-05 16:57:29 +02:00
George Kadianakis e3b83d5450 Add defensive asserts in recover_polynomial() 2024-02-05 16:56:27 +02:00
Hsiao-Wei Wang e7c0d5ff3c
Update specs/_features/eip7594/das-core.md
Co-authored-by: Jimmy Chen <jchen.tc@gmail.com>
2024-02-02 16:27:56 +08:00
Hsiao-Wei Wang 91dbbb365c
Implement `compute_extended_matrix` 2024-02-02 02:26:28 +08:00
Hsiao-Wei Wang c47d5f3578
Add `recover_matrix` and remove unused `FlatExtendedMatrix` type 2024-02-02 01:45:02 +08:00
Hsiao-Wei Wang 428c166283
Apply suggestions from code review
Co-authored-by: g11tech <develop@g11tech.io>
Co-authored-by: Pop Chunhapanya <haxx.pop@gmail.com>
2024-02-01 21:17:42 +08:00
Hsiao-Wei Wang d60580bb52
Apply suggestions from code review
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-02-01 18:09:37 +08:00
Hsiao-Wei Wang 87e9702ab0
Fix `DataColumnSidecarsByRoot` 2024-01-31 22:30:52 +08:00
Hsiao-Wei Wang d23452d02b
Deprecate `blob_sidecar_{subnet_id}` 2024-01-31 22:30:46 +08:00
Hsiao-Wei Wang 547460cd84
Apply PR feedback 2024-01-31 22:30:35 +08:00
George Kadianakis 212c1fe624 Small improvements on construct_vanishing_polynomial() 2024-01-31 14:04:23 +02:00
George Kadianakis 4d01d50437 Initial docs added to recover_shifted_data() and recover_original_data() 2024-01-31 14:04:23 +02:00
George Kadianakis be5e5c5a75 Add helpers: recover_shifted_data() and recover_original_data() 2024-01-31 14:04:23 +02:00
George Kadianakis 8b3ac46a2d Add helper method: construct_vanishing_polynomial() 2024-01-31 13:48:20 +02:00
Hsiao-Wei Wang 170dae5609
Apply suggestions from code review
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
Co-authored-by: Pop Chunhapanya <haxx.pop@gmail.com>
2024-01-29 17:34:47 +08:00
Hsiao-Wei Wang 7aab57703e
Merge branch 'dev' into peer-das 2024-01-29 17:29:20 +08:00
Hsiao-Wei Wang b2a4657da5
Merge branch 'peer-das-req-subnet-count' into peer-das 2024-01-29 17:23:33 +08:00
Hsiao-Wei Wang edeef070d8
toc 2024-01-28 22:47:49 +08:00
George Kadianakis ae3ef6f330
Merge pull request #3579 from asn-d6/peerdas_public_method_bytes
peerDAS: Public methods must accept raw bytes
2024-01-26 17:36:54 +02:00
Hsiao-Wei Wang 56e6a98b9c
`verify_data_column_sidecar_kzg_proof` -> `verify_data_column_sidecar_kzg_proofs` 2024-01-20 17:24:57 +08:00
Hsiao-Wei Wang 4477cc6952
Fix column computation 2024-01-20 14:43:35 +08:00
Hsiao-Wei Wang 55db86127d
Apply suggestions from code review
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2024-01-20 14:20:27 +08:00
Hsiao-Wei Wang 65be5b0556
Make `CUSTODY_REQUIREMENT` unit be subnets; move some depended helpers to `das-core.md` 2024-01-20 00:51:28 +08:00
Hsiao-Wei Wang a72ece8348
Apply suggestions from code review
Co-authored-by: g11tech <develop@g11tech.io>
2024-01-19 22:37:02 +08:00
Hsiao-Wei Wang 9553d5490a
fix typo 2024-01-19 22:30:53 +08:00
Hsiao-Wei Wang 665e6faff7
Add `RowIndex`, `ColumnIndex` custom types in crypto doc 2024-01-19 19:14:03 +08:00
George Kadianakis 2000a4f307 Improve test_verify_cell_proof_batch() 2024-01-17 17:20:36 +02:00
George Kadianakis 66798602dd Minor fixes based on review 2024-01-17 14:18:03 +02:00
George Kadianakis 87f2ad2681 Public methods: int -> uint64 2024-01-16 16:58:14 +02:00
Hsiao-Wei Wang 96e41bca30
Optimization: reduce `len()` call 2024-01-16 16:51:05 +08:00
George Kadianakis a4331e7c63 Public methods must accept raw bytes 2024-01-15 18:38:18 +02:00
George Kadianakis b4d418d8ce Remove some trailing whitespace 2024-01-15 17:34:28 +02:00
Hsiao-Wei Wang 504b4f9036
Migrating to latest crypto APIs 2024-01-15 17:12:47 +08:00
Hsiao-Wei Wang 93dddd15f2
wip
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
2024-01-15 17:12:43 +08:00
Hsiao-Wei Wang b7d9ea9a75
Rename `peerdas` to `eip7594` 2024-01-14 00:13:08 +08:00