-
-
Notifications
You must be signed in to change notification settings - Fork 411
feat: implement BPO EIP-7892 #7729
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
Conversation
nflaig
left a comment
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.
this kinda conflicts with #7774 but I think can simplify changes in this PR a lot
|
changes seems pretty isolated, I think it's better to target unstable branch instead and rebase/merge changes into |
Performance Report✔️ no performance regression detected Full benchmark results
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## unstable #7729 +/- ##
============================================
+ Coverage 55.78% 55.82% +0.04%
============================================
Files 823 823
Lines 58093 58157 +64
Branches 4470 4498 +28
============================================
+ Hits 32406 32466 +60
- Misses 25620 25624 +4
Partials 67 67 🚀 New features to boost your workflow:
|
| getMaxBlobsPerBlock(fork: ForkName): number; | ||
| getMaxBlobsPerBlock(epoch: Epoch): number; | ||
| /** Get max request blob sidecars by hard-fork */ | ||
| getMaxRequestBlobSidecars(fork: ForkName): number; |
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.
might also wanna update getMaxRequestBlobSidecars but it might be removed soon and we might be fine just calculating it where we need it
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.
maybe we get rid of this function altogether and always calculate the value as proposed in ethereum/consensus-specs#4322
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.
maybe we get rid of this function altogether and always calculate the value as proposed in ethereum/consensus-specs#4322
This change will likely be in devnet 1. Will follow up in another PR
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.
This change will likely be in devnet 1. Will follow up in another PR
In devnet-0 the req/resp limits will be wrong then, we should consider doing this already for that devnet, can do it in a separate PR though to keep diff minimal here and focus on blob schedule changes
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.
might also wanna update
getMaxRequestBlobSidecarsbut it might be removed soon and we might be fine just calculating it where we need it
As pointed out here #7729 (comment) , devnet-0 is still using MAX_BLOBS_PER_BLOCK_ELECTRA and MAX_BLOBS_PER_BLOCK for electra and deneb.
Can hold off making this change until devnet-1
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.
But still, we need to update those values for fulu and later, otherwise we keep using the electra values, I don't think it's a big deal though
| MAX_BLOB_COMMITMENTS_PER_BLOCK: denebForkRelevant, | ||
| KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: denebForkRelevant, | ||
| MAX_BLOBS_PER_BLOCK: denebForkRelevant, | ||
| BLOB_SCHEDULE: denebForkRelevant, |
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.
this will be problematic, if a beacon node does not yet have BLOB_SCHEDULE or didn't backport deneb/electra values then it won't be able to interop with lodestar vc which is really bad since Obol uses it as primary vc
I think we need to add this as fuluForkRelevant for now, we lose some checks on deneb/electra values but that should be fine, might make it stricter once we know majority/all bns implemented this, or earliest in the backport PR when we remove previous constants
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.
updated in f3a0367, I don't see any other solution
nflaig
left a comment
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
|
Just realized back port blob schedule to Deneb and Electra is not part of fusaka devnet-0 but devnet-1. Updated to reflect this. |
matthewkeil
left a comment
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!! 🚀
**Motivation** Follow up to #7729, we need to configure blob schedule for each network. This will become relevant once we fully backport blob schedule to deneb and electra. **Description** Add blob schedule to each network config
…ms (#7859) **Motivation** Follow up to #7729, we need to handle blob schedule separately from generic string comparison of values, otherwise what we compare are shallow stringified arrays. It does not validate the object properties and on length mismatch we just get the following error ``` ✖ Error: Local and remote configs are different BLOB_SCHEDULE different value: [object object] != [object object],[object object] ``` **Description** Add special handling for blob schedule when asserting equal params - deserialize and sort blob schedules - compare length of local and remote blob schedule - then check each entry by comparing `EPOCH` and `MAX_BLOBS_PER_BLOCK`
|
🎉 This PR is included in v1.31.0 🎉 |
Relevant spec ethereum/consensus-specs#4277 and ethereum/beacon-APIs#529
Implement EIP-7892 as laid out in v1.6.0-alpha.0 for fusaka devnet-0. Any open spec PR which is not within the scope of devnet-0 will be implemented in a follow up PR