mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 15:37:56 -05:00
* PeerDAS: Implement sync * Fix Potuz's comment. * Fix Potuz's comment. * Fix Potuz's comment. * Fix Satyajit's comment. * Partially fix Potuz's comment. * Fix Potuz's comment. * Fix Potuz's comment. * Fix Potuz's comment. * Fix Potuz's comment. * Fix Potuz's comment. * Fix Potuz's comment. * Fix Potuz's comment. * Add tests for `sendDataColumnSidecarsRequest`. * Fix Satyajit's comment. * Implement `TestSendDataColumnSidecarsRequest`. * Implement `TestFetchDataColumnSidecarsFromPeers`. * Implement `TestUpdateResults`. * Implement `TestSelectPeers`. * Implement `TestCategorizeIndices`. * Fix James' comment. * Fix James's comment. * Fix James' commit. * Fix James' comment. * Fix James' comment. * Fix flakiness in `TestSelectPeers`. * Update cmd/beacon-chain/flags/config.go Co-authored-by: Preston Van Loon <pvanloon@offchainlabs.com> * Fix Preston's comment. * Fix James's comment. * Implement `TestFetchDataColumnSidecars`. * Revert "Fix Potuz's comment." This reverts commitc45230b455. * Fix Potuz's comment. * Revert "Fix James' comment." This reverts commita3f919205a. * Fix James' comment. * Fix Preston's comment. * Fix James' comment. * `selectPeers`: Avoid map with key but empty value. * Fix typo. * Fix Potuz's comment. * Fix Potuz's comment. * Fix James' comment. * Add DataColumnStorage and SubscribeAllDataSubnets flag. * Add extra flags * Fix Potuz's and Preston's comment. * Add rate limiter check. --------- Co-authored-by: Preston Van Loon <pvanloon@offchainlabs.com> Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package kzg
|
|
|
|
import (
|
|
"github.com/OffchainLabs/prysm/v6/consensus-types/blocks"
|
|
GoKZG "github.com/crate-crypto/go-kzg-4844"
|
|
)
|
|
|
|
// Verify performs single or batch verification of commitments depending on the number of given BlobSidecars.
|
|
func Verify(blobSidecars ...blocks.ROBlob) error {
|
|
if len(blobSidecars) == 0 {
|
|
return nil
|
|
}
|
|
if len(blobSidecars) == 1 {
|
|
return kzgContext.VerifyBlobKZGProof(
|
|
bytesToBlob(blobSidecars[0].Blob),
|
|
bytesToCommitment(blobSidecars[0].KzgCommitment),
|
|
bytesToKZGProof(blobSidecars[0].KzgProof))
|
|
}
|
|
blobs := make([]GoKZG.Blob, len(blobSidecars))
|
|
cmts := make([]GoKZG.KZGCommitment, len(blobSidecars))
|
|
proofs := make([]GoKZG.KZGProof, len(blobSidecars))
|
|
for i, sidecar := range blobSidecars {
|
|
blobs[i] = *bytesToBlob(sidecar.Blob)
|
|
cmts[i] = bytesToCommitment(sidecar.KzgCommitment)
|
|
proofs[i] = bytesToKZGProof(sidecar.KzgProof)
|
|
}
|
|
return kzgContext.VerifyBlobKZGProofBatch(blobs, cmts, proofs)
|
|
}
|
|
|
|
func bytesToBlob(blob []byte) *GoKZG.Blob {
|
|
var ret GoKZG.Blob
|
|
copy(ret[:], blob)
|
|
return &ret
|
|
}
|
|
|
|
func bytesToCommitment(commitment []byte) (ret GoKZG.KZGCommitment) {
|
|
copy(ret[:], commitment)
|
|
return
|
|
}
|
|
|
|
func bytesToKZGProof(proof []byte) (ret GoKZG.KZGProof) {
|
|
copy(ret[:], proof)
|
|
return
|
|
}
|