Description
@dapplion 's idea:
We could implement batch verification for columns over gossip like we do for attestations
Ifgossip_data_column_queue.len > 1
often that could help amortize the kzg verification costs. I thought we had metrics for it
Currently, gossip data columns are verified individually. On supernodes, this becomes expensive at high blob counts (especially the KZG proof verification), and we could benefit from batch verifying them.
Below are some test results on 48 blobs
- 1 column batch: 5.76ms
- 8 columns batch: 34.3ms
- 64 columns batch : 257ms
- 128 columns batch: 508ms
If columns are KZG verified individually, it would cost ~737ms, whereas it only cost 508ms if they're batched. Furthermore, batching would also allow us to save time on block header verification.
We're already doing something very similar using the reprocessing queue to batch attestation verifications.