mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
Add RecoverCells, which returns all CellsPerBlob cells per blob from a sufficient subset. RecoverBlobs only exposes recovered blobs; serving or persisting the extension cells of a sparse-blobpool transaction needs the full 128-cell set. Add RecoverCells, which returns all CellsPerBlob cells per blob from a sufficient subset. When the full data domain (cell indices 0..DataPerBlob-1) is present (the common case for pooled transactions) the blobs are a free concatenation of the data cells and every cell follows from a systematic extension via ComputeCells (~2-6ms/blob), skipping the KZG erasure solve. Otherwise it falls back to the erasure recovery path (~15-20ms/blob), which now surfaces the library's full extended cell set instead of discarding it down to blobs as RecoverBlobs does. Both paths return byte-identical cells in canonical order. Cells only; cell proofs are never recomputed (callers retain the proofs shipped with the transaction). Tested on both the gokzg and ckzg backends, fast and slow paths, against the original cells. Note: the same fast-path optimization could also be pushed down to gokzg and ckzg. There are both arguments for (the primitive becomes faster in some cases, same for the rest of cases) and against (it is not the role of the crypto lib to be intelligent here), so I went with the wrapper for now. |
||
|---|---|---|
| .. | ||
| blake2b | ||
| bn256 | ||
| ecies | ||
| keccak | ||
| kzg4844 | ||
| secp256k1 | ||
| secp256r1 | ||
| signify | ||
| crypto.go | ||
| crypto_test.go | ||
| keccak.go | ||
| keccak_ziren.go | ||
| signature_cgo.go | ||
| signature_nocgo.go | ||
| signature_test.go | ||