Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why are these changes needed?
This PR makes EigenDA blob semantics compatible with 4844 spec. As the result, DA user (rollup) has a consistent upload format to EigenDA as to Ethereum.
There are 3 changes in this PR:
After the PR, all bytes are interpreted every 32 bytes.
See diagram delineates the changes.
Because 4844 requires taking IFFT on the data, every field element from the output of IFFT needs to use all 254 bits of information, and taking 32 bytes to store. Suppose it produces 1024 field elements. Because the old encoder interface of encoder treats every 31 bytes as a field element (Symbol). From EigenDA encoder's perspective, there are 1024*32/31 field elements, 1058. Some specific configuration of coding ratio and stake distribution leads to another 2x inefficiency, due to 31/32 bytes conversion. The 32/31 encoding also leads to a more confusing decoding process.
Most new codes are introduced at api server and decoder. There are many changes in the test code, most of them are converting the original data to the IFFT transformed data to test again the rs.Decode.
Checks