From 6d8a370ee7143be42974b2a79a0eca20e3945cf9 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Quiros Date: Wed, 6 Mar 2024 16:56:47 +0100 Subject: [PATCH] Added compute column kzg commitments --- da/encoder.py | 8 ++++---- da/test_encoder.py | 8 ++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/da/encoder.py b/da/encoder.py index c0628a7..70a10db 100644 --- a/da/encoder.py +++ b/da/encoder.py @@ -38,8 +38,8 @@ class DAEncoder: ) @staticmethod - def _compute_row_kzg_commitments(rows: Sequence[Row]) -> List[Tuple[Polynomial, Commitment]]: - return [kzg.bytes_to_commitment(row.as_bytes(), GLOBAL_PARAMETERS) for row in rows] + def _compute_row_kzg_commitments(matrix: ChunksMatrix) -> List[Tuple[Polynomial, Commitment]]: + return [kzg.bytes_to_commitment(row.as_bytes(), GLOBAL_PARAMETERS) for row in matrix] def _rs_encode_rows(self, chunks_matrix: ChunksMatrix) -> ChunksMatrix: def __rs_encode_row(row: Row) -> Row: @@ -67,8 +67,8 @@ class DAEncoder: ) return proofs - def _compute_column_kzg_commitments(self, chunks_matrix: ChunksMatrix) -> List[Commitment]: - ... + def _compute_column_kzg_commitments(self, chunks_matrix: ChunksMatrix) -> List[Tuple[Polynomial, Commitment]]: + return self._compute_row_kzg_commitments(chunks_matrix.transposed()) def _compute_aggregated_column_commitments( self, chunks_matrix: ChunksMatrix, column_commitments: List[Commitment] diff --git a/da/test_encoder.py b/da/test_encoder.py index a4e9eb8..5227ba3 100644 --- a/da/test_encoder.py +++ b/da/test_encoder.py @@ -43,8 +43,9 @@ class TestEncoder(TestCase): def test_compute_row_kzg_commitments(self): chunks_matrix = self.encoder._chunkify_data(self.data) - commitments = self.encoder._compute_row_kzg_commitments(chunks_matrix) + polynomials, commitments = zip(*self.encoder._compute_row_kzg_commitments(chunks_matrix)) self.assertEqual(len(commitments), len(chunks_matrix)) + self.assertEqual(len(polynomials), len(chunks_matrix)) def test_rs_encode_rows(self): chunks_matrix = self.encoder._chunkify_data(self.data) @@ -74,7 +75,10 @@ class TestEncoder(TestCase): self.assertTrue(kzg.verify_element_proof(BLSFieldElement.from_bytes(chunk), commitment, proofs[i], i, ROOTS_OF_UNITY)) def test_compute_column_kzg_commitments(self): - pass + chunks_matrix = self.encoder._chunkify_data(self.data) + polynomials, commitments = zip(*self.encoder._compute_row_kzg_commitments(chunks_matrix.transposed())) + self.assertEqual(len(commitments), len(chunks_matrix)) + self.assertEqual(len(polynomials), len(chunks_matrix)) def test_generate_aggregated_column_commitments(self): pass