mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-08 04:54:05 -05:00
**What type of PR is this?** Optimisation **What does this PR do? Why is it needed?** While constructing data column sidecars from the execution layer is very cheap compared to reconstructing data column sidecars from data column sidecars, it is still efficient to run this construction in parallel. (**Reminder:** Using `getBlobsV2`, all the cell proofs are present, but only 64 (out of 128) cells are present. Recomputing the missing cells is cheap, while reconstruction the missing proofs is expensive.) This PR: - adds some metrics - ensure the construction is done in parallel **Other notes for review** Please read commit by commit The red vertical lines represent the limit between before and after this pull request <img width="1575" height="603" alt="image" src="https://github.com/user-attachments/assets/24811b1b-8e3c-4bf5-ac82-f920d385573a" /> The last commit transforms the bottom right histogram to summary, since it makes no sense any more to have an histogram for values. Please check "hide whitespace" so this PR is easier to review: <img width="229" height="196" alt="image" src="https://github.com/user-attachments/assets/548cb2f4-b6f4-41d1-b3b3-4d4c8554f390" /> Updated metrics: Now, for every **non missed slot**, for a block **with at least one commitment**, we have either: ``` [2025-12-10 10:02:12.93] DEBUG sync: Constructed data column sidecars from the execution client count=118 indices=0-5,7-16,18-27,29-35,37-46,48-49,51-82,84-100,102-106,108-125,127 iteration=0 proposerIndex=855082 root=0xf8f44e7d4cbc209b2ff2796c07fcf91e85ab45eebe145c4372017a18b25bf290 slot=1928961 type=BeaconBlock ``` either ``` [2025-12-10 10:02:25.69] DEBUG sync: No data column sidecars constructed from the execution client iteration=2 proposerIndex=1093657 root=0x64c2f6c31e369cd45f2edaf5524b64f4869e8148cd29fb84b5b8866be529eea3 slot=1928962 type=DataColumnSidecar ``` <img width="1581" height="957" alt="image" src="https://github.com/user-attachments/assets/514dbdae-ef14-47e2-9127-502ac6d26bc0" /> <img width="1596" height="916" alt="image" src="https://github.com/user-attachments/assets/343d4710-4191-49e8-98be-afe70d5ffe1c" /> **Acknowledgements** - [x] I have read [CONTRIBUTING.md](https://github.com/prysmaticlabs/prysm/blob/develop/CONTRIBUTING.md). - [x] I have included a uniquely named [changelog fragment file](https://github.com/prysmaticlabs/prysm/blob/develop/CONTRIBUTING.md#maintaining-changelogmd). - [x] I have added a description to this PR with sufficient context for reviewers to understand this PR.
Prysmatic Labs Beacon Chain Implementation
This is the main project folder for the beacon chain implementation of Ethereum written in Go by Prysmatic Labs.
You can also read our main README and join our active chat room on Discord.
Also, read the official beacon chain specification, this design spec serves as a source of truth for the beacon chain implementation we follow at Prysmatic Labs.
