Skip to content
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

Consensus-layer Call 90 #555

Closed
djrtwo opened this issue Jun 16, 2022 · 7 comments
Closed

Consensus-layer Call 90 #555

djrtwo opened this issue Jun 16, 2022 · 7 comments

Comments

@djrtwo
Copy link
Collaborator

djrtwo commented Jun 16, 2022

Consensus-layer Call 90 Agenda

prev: call 89

Meeting Date/Time: Thursday 2022/6/30 at 14:00 UTC
Meeting Duration 1.5 hours
livestream

  1. Merge
  2. Other client updates (if any)
  3. mev boost
  4. Research, spec, etc
  5. Open Discussion/Closing Remarks
@metachris
Copy link

I'd like to (briefly) discuss the complexity of adding a signature to the builder-specs getHeader request.

Context: auction - should (header,bid) messages be publicly accessible during the message passing period? mev-boost#112

  • With signature, relays could reveal the builder bid only to the proposer, enabling a sealed-bid auction where builders are not aware of each other's bids, leading to bids on the high end. A sealed-bid auction seems strictly superior.
  • Without signature, it's an open auction where builders are incentivised to bid low initially, and outbid each other by small amounts. If we try to mitigate this on the relay by allowing only a single bid per builder per slot, then there's a strong first-mover disadvantage.

Questions:

  1. What's the amount of work needed?
  2. Should we consider adding this now rather than making this breaking change soon after the merge?

After the merge it will require a new API endpoint (version) in the builder-specs (one with and one without signature), and running both endpoints on the relays for some migration period.

@q9f
Copy link
Contributor

q9f commented Jun 30, 2022

I would like to discuss some of the "conveniences" that are baked into the clients (or planned) but should definitely be carefully reviewed now that we move towards merging:

  • pulling chain configurations from Github
    • the repositories should merely serve as a reference
    • security implications of pulling specs from a third-party service are hard to gauge
    • (this came up while moving specs to a different repository)
  • checkpoint sync from Infura
    • beacon chain should work towards a p2p state sync instead of checkpoint sync
    • instead of providing alternatives to Infura, we should come up with a feasible p2p protocol
    • checkpoint sync is fine as long as it is not the default and users can provide their own checkpoints
    • (this came up during last week's ACD)

I would even argue this should also apply to testnets because if we treat testnets differently from mainnet, we'll eventually face issues on mainnet we are not prepared for,

@djrtwo
Copy link
Collaborator Author

djrtwo commented Jun 30, 2022

It is requisite to get out of band info to perform sync -- either a checkpoint root or the full checkpoint state. The full checkpoint state is relatively small and bound (e.g. ~50MB) so if a user is already having to get a root out of band, they might as well just get the state and save the p2p complexity (IMO).

To download a state from p2p, a user would still need to provide a root out-of-band. So if state or root, the user needs to get it from some authority (or multiple), some node they trust, or some other source.

That said, just pointing to infura is not the proper end goal and we can and should do better. Some notes on how to do better -- https://notes.ethereum.org/@djrtwo/ws-sync-in-practice

checkpoint sync is fine as long as it is not the default and users can provide their own checkpoints

checkpoint sync (or proving an out of band root at a minimum) is requisite for bootstrapping in a PoS network.

@benjaminion
Copy link

Quick notes

@ajsutton
Copy link

It's rather frustrating that agenda items get added to these meetings so last minute, and it seems to happen pretty consistently. We need to decide ahead of time who is required on the call and can't because we never know what's going to be discussed.

Of course we can't stop last minute things popping up but could we put out a call for agenda items early and maybe have a cut-off point where if the item wasn't on the agenda then it may still be discussed but won't be decided on except in particularly urgent cases?

@q9f
Copy link
Contributor

q9f commented Jul 1, 2022

Sorry, for some reason I thought the call is today not yesterday. Therefore it was very last minute and I didn't even show up. But maybe something like this can be discussed async elsewhere first?

@timbeiko
Copy link
Collaborator

timbeiko commented Jul 6, 2022

Closed in favour of #566

@timbeiko timbeiko closed this as completed Jul 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants