-
-
Notifications
You must be signed in to change notification settings - Fork 410
feat: refactor block input #8200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
wemeetagain
merged 195 commits into
unstable
from
mkeil/refactor-block-input-on-unstable
Sep 18, 2025
Merged
feat: refactor block input #8200
wemeetagain
merged 195 commits into
unstable
from
mkeil/refactor-block-input-on-unstable
Sep 18, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Performance Report✔️ no performance regression detected Full benchmark results
|
This reverts commit 0be6543.
…hainSafe/lodestar into mkeil/refactor-block-input-on-unstable
Tracked in #8411 |
**Motivation** - Implement getBlobV1 - Update `GetBlobsTracker` to handle multiple blocks in a slot at a time (forky network) --------- Co-authored-by: Nico Flaig <[email protected]>
**Motivation** Audit usage of kzgCommitmentToVersionedHash to make sure we are not recomputing anywhere unnecessarily. Is a heavy operation and in most cases has already been computed and cached on the BlockInput Updated `verifyBlocksExecutionPayload`, `verifyBlockExecutionPayload` and `getSegmentErrorResponse` to use `IBlockInput` so that the cached versionedHashes could be consumed instead of recalculating them
This reverts commit 1b389d4.
This was referenced Sep 17, 2025
**Motivation**
- we want to know how UnknownBlock helps us
**Description**
- track fetch time into slot
- track total fetch time
- track fetch result and fetched peers with different labels following
this enum:
```typescript
enum FetchResult {
SuccessResolved = "success_resolved",
SuccessMissingParent = "success_missing_parent",
SuccessLate = "success_late",
FailureTriedAllPeers = "failure_tried_all_peers",
FailureMaxAttempts = "failure_max_attempts",
}
```
Closes #8403
Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** Use consistent log messages with useful information. **Description** - Add slot to all log messages - Use `blockSlot` in log where other slot data is available. Closes #8385 **Steps to test or reproduce** - Run all tests --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
**Motivation** - merging #8200 within sight **Description** - replace `custodyGroups` with `custodyColumns` where we're tracking per-peer - code was wrongly comparing groups and columns, but this wasn't causing bugged behavior given the current configuration - in BlockInputSync (unknown sync), don't unilaterally exclude a peer after fetching data from it. Instead only exclude the peer upon (most) errors - in unknown block sync e2e test, create the proper type of block input (BlockInputColumns). Using the wrong class causes the block input to fail to process --------- Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** - elapsed time till processed of devnet-5 is not great after it gets to `MAX_BLOBS_PER_BLOCK` as 72 - when I look into some late processed blocks, it turned out that data columns were received very late, for example the 64th seen columns: ``` Sep-18 08:08:20.167[network] debug: Received gossip dataColumn slot=55841, blockRoot=0x2a9f…209d, timeCreatedSec=1758182899.816, expectedColumns=128, receivedColumns=64, currentSlot=55841, peerId=16Uiu2HAmSnADzjUiLA41g1J8jKTHqq3tKCP4PVfAa8bHGSrQwKGq, delaySec=8.138000011444092, gossipSubnet=107, columnIndex=107, recvToValLatency=0.003000020980834961, recvToValidation=0.029000043869018555, validationTime=0.026000022888183594 ``` - the current `elapsedTimeTillReceived` does not help much because it track all columns **Description** - refine `elapsedTimeTillReceived` metric to only track columns at specific orders: 1st, 32th, 64th, 128th - this will help us investigate late block processed easier postfulu --------- Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** - the data columns `recoverTime` could be more than 2s, we should reflect that in our metrics **Description** - this shows that we should only consider it as a back up way to make sure all data available, not a way to speed up the import process <img width="1507" height="700" alt="Screenshot 2025-09-18 at 14 47 40" src="https://github.com/user-attachments/assets/52696e3d-a379-4b57-af2c-323b9db08f33" /> Co-authored-by: Tuyen Nguyen <[email protected]>
wemeetagain
approved these changes
Sep 18, 2025
matthewkeil
commented
Sep 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!! 🎸
This was referenced Sep 23, 2025
|
🎉 This PR is included in v1.35.0 🎉 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Motivation
Implement new IBlockInput on
unstableversion of peer das code.