-
Notifications
You must be signed in to change notification settings - Fork 169
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
Bellatrix and blinded blocks #194
Bellatrix and blinded blocks #194
Conversation
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.
Thanks for taking this on. A couple of comments.
Considering the flow here for a validator client and two block-related endpoints. Given that the validator client does not know the configuration of the beacon node, and the beacon node could be able to return blocks, blocks or blinded blocks, or only blinded blocks, it seems that all validator client calls will be for blinded blocks as these are guaranteed to be returned regardless of the beacon node configuration. As a practical upshot of the above, does it make sense to:
i.e. change communications between the VC and BN such that only blinded blocks are passed between them, and as a result make these the official block-related endpoints rather than having the separate (Note that full blocks can still be obtained from the beacon node so this wouldn't cause problems for explorers and the like, this is just for the communications between VC and BN for block proposals.) |
I generally like this idea, but perhaps we'd be prudent to add some other method to allow "revealing" of blinded payloads? Otherwise the BN API would be slightly odd in the way that it can't actually produce complete blocks. |
(Sorry realized that the original proposal wasn't clear; the first endpoint I was talking about is a |
Co-authored-by: Radosław Kapka <[email protected]>
Co-authored-by: Radosław Kapka <[email protected]>
Given that kiln is nearly upon us and there could be implications for deprecating the As such, I'm happy with the PR as it stands. |
Should we release this under v2.2.0? |
I noticed that several references lead to Altair types. Should we move these types to a separate |
Shared structs may still be change over time, though, so we'd need some sort of versioned |
… bellatrix-and-blinded-blocks
Concur with deprecating the full block endpoint for blinded-block all around. |
@djrtwo do you mean deprecating the full block endpoints in this PR or in a future release as suggested by @mcdee here: #194 (comment) ? |
Ah, I see @realbigsean. I think given time constraints that deprecating it in a subsequent release is the best path |
Co-authored-by: Marin Petrunić <[email protected]>
…lbigsean/beacon-APIs into bellatrix-and-blinded-blocks # Conflicts: # apis/beacon/blocks/blinded_blocks.yaml
I made an update here to handle pre-Belltrix blocks on blinded endpoints. It makes the merge transition logic easier for the VC because it doesn't have to worry about which endpoints to hit. And if we deprecate full blocks endpoints we will need to serve pre-Bellatrix blocks from blinded endpoints regardless. |
Is there a reason why we need a new blinded blocks endpoint ( Couldn't we just add another BlindedBlock request type to |
I guess the same could be said about The reason why I like this distinction as a client implementer is because currently I can easily discern posted block types by slot. If there are two possible types for the same fork, |
… bellatrix-and-blinded-blocks
## Issue Addressed MEV boost compatibility ## Proposed Changes See #2987 ## Additional Info This is blocked on the stabilization of a couple specs, [here](ethereum/beacon-APIs#194) and [here](flashbots/mev-boost#20). Additional TODO's and outstanding questions - [ ] MEV boost JWT Auth - [ ] Will `builder_proposeBlindedBlock` return the revealed payload for the BN to propogate - [ ] Should we remove `private-tx-proposals` flag and communicate BN <> VC with blinded blocks by default once these endpoints enter the beacon-API's repo? This simplifies merge transition logic. Co-authored-by: realbigsean <[email protected]> Co-authored-by: realbigsean <[email protected]>
## Issue Addressed MEV boost compatibility ## Proposed Changes See sigp#2987 ## Additional Info This is blocked on the stabilization of a couple specs, [here](ethereum/beacon-APIs#194) and [here](flashbots/mev-boost#20). Additional TODO's and outstanding questions - [ ] MEV boost JWT Auth - [ ] Will `builder_proposeBlindedBlock` return the revealed payload for the BN to propogate - [ ] Should we remove `private-tx-proposals` flag and communicate BN <> VC with blinded blocks by default once these endpoints enter the beacon-API's repo? This simplifies merge transition logic. Co-authored-by: realbigsean <[email protected]> Co-authored-by: realbigsean <[email protected]>
## Issue Addressed MEV boost compatibility ## Proposed Changes See sigp#2987 ## Additional Info This is blocked on the stabilization of a couple specs, [here](ethereum/beacon-APIs#194) and [here](flashbots/mev-boost#20). Additional TODO's and outstanding questions - [ ] MEV boost JWT Auth - [ ] Will `builder_proposeBlindedBlock` return the revealed payload for the BN to propogate - [ ] Should we remove `private-tx-proposals` flag and communicate BN <> VC with blinded blocks by default once these endpoints enter the beacon-API's repo? This simplifies merge transition logic. Co-authored-by: realbigsean <[email protected]> Co-authored-by: realbigsean <[email protected]>
Resolves #179
I wanted to progress #179 because I think multiple CL teams are now working on MEV-boost compatibility implementations so it would be good to have a clear definition. I noticed this repo doesn't yet define API changes for Bellatrix, so I added those in this PR let me know if we want them in a separate PR though.