status-im / nimbus-eth2

Nim implementation of the Ethereum Beacon Chain
https://nimbus.guide
Other
523 stars 227 forks source link

introduce `ForkedBlobSidecar` for EIP-7688 Electra period before PeerDAS #6451

Open etan-status opened 2 months ago

etan-status commented 2 months ago

On ELECTRA_FORK_EPOCH, PeerDAS is not yet activated, hence the current mechanism based on BlobSidecar is still in use. With EIP-7688, the generalized indices of BeaconBlockBody get reindexed, changing the length of the inclusion proof within the BlobSidecar. Because network Req/Resp operations allow responses across fork boundaries, this creates the need for a ForkedBlobSidecar in that layer, same as already done for ForkedSignedBeaconBock for similar reasons.

Note: This PR is only needed if PeerDAS is adopted after EIP-7688. If PeerDAS is adopted before EIP-7688, a similar PR may be needed for forked columns. Coincidental Forked jank can only be fully avoided if both features activate at the same epoch, actual changes to blobs aside. Delaying EIP-7688 for sole purpose of epoch alignemnt is not worth it.

github-actions[bot] commented 2 months ago

Unit Test Results

         9 files  ±0    1 337 suites  ±0   43m 56s :stopwatch: + 13m 34s   5 066 tests +2    4 718 :heavy_check_mark: +2  348 :zzz: ±0  0 :x: ±0  20 997 runs  +6  20 593 :heavy_check_mark: +6  404 :zzz: ±0  0 :x: ±0 

Results for commit 18af8dcd. ± Comparison against base commit 44cc72c1.

:recycle: This comment has been updated with latest results.