timbeiko.eth Profile picture
Dec 7 48 tweets 77 min read
Last @ethereum #AllCoreDevs of the year tomorrow ‼

It's going to be a big one, where teams hopefully agree about the scope of the next network upgrade.

You can view the agenda here: github.com/ethereum/pm/is…
And follow along live on the stream: 📺 Image
@ethereum And we wrapped up the call earlier today! The vast majority of the conversation was around Shanghai planning. Recommend watching the livestream to anyone interested in that side of things 📺 github.com/ethereum/pm/is…
@ethereum Before we got into that, though, there were a few important topics we wanted to be sure to cover. First, @trent_vanepps gave an update on the KZG Ceremony, which is a requirement for EIP-4844 to go live.
@ethereum @trent_vanepps There was a recent Twitter Spaces going into the details () and an FAQ is also available on Github: github.com/ethereum/kzg-c…
@ethereum @trent_vanepps TL;DR: the KZG Ceremony is used to generate a randomness source to enable us to verify the validity of data stored in blobs with (proto)danksharding. For it to be secure, only a single participant is required to be honest.
@ethereum @trent_vanepps The Ceremony will go live 🔜 for the everyone, and we expect to have ~10k participants (>2x the largest previous ceremony). If you want to help scale Ethereum, participating is a very easy thing you can do :-) Follow @trent_vanepps for updates 🕯️
@ethereum @trent_vanepps Second, @mkalinin2 shared a proposal about adapting the Engine API specs to a post-merge world: github.com/ethereum/execu…

In short, it proposes ways to deal with the overall layout of the spec (by feature vs. by fork), as well as a lifecycle strategy for API updates across forks.
@ethereum @trent_vanepps @mkalinin2 Third, we discussed the state of the current withdrawal implementations. Barnabas from the EF devops team shared the status of devnets. They are currently running two: one starting pre-merge, and one starting post-merge, based on what configurations client support.
@ethereum @trent_vanepps @mkalinin2 On the pre-merge genesis one, Geth, Prysm, Nethermind, Teku, EthereumJS and Lighthouse were all interoperating. Similarly, on the post-merge genesis one, we have Lodestar running with Geth/Nethermind/Besu.
@ethereum @trent_vanepps @mkalinin2 Withdrawals were working smoothly on both those cases, and there were still some issues to fix with the withdrawal credential upgrades from BLS to ETH addresses.
@ethereum @trent_vanepps @mkalinin2 A quick note on that last point! Today, validators can deposit and use either a BLS (0x00) or ETH address (0x01) withdrawal credential. To enable withdrawals, validators will need to have a 0x01 credential (to indicate where the ETH should be sent).
@ethereum @trent_vanepps @mkalinin2 For validators with a 0x00 credential, this means a message will need to be signed to update the credential to a 0x01-type one, i.e. an ETH address. github.com/wealdtech/ethdo currently supports signing these messages, but other tooling should as well 🔜
@ethereum @trent_vanepps @mkalinin2 In terms of next steps, Prysm and Lighthouse are working on enabling support for post-merge genesis networks. Besu is working on its time-based forking implementation (more on that later) and Erigon + Nimbus haven't joined the devnets yet. They are expecting to soon!
@ethereum @trent_vanepps @mkalinin2 On the testing side, @elbuenmayini shared his WIP list with the various test cases: notes.ethereum.org/@marioevz/With…

Once these are finalized, more EL/CL mocking will be added to Hive as well.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini So, with a good view on where things are at for withdrawals, we spent the rest of the call discussing how to approach Shanghai and the various CFI'd EIPs: github.com/ethereum/execu…
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini I started by stating what I thought was the main thing everyone agreed on: that withdrawals should be prioritized and be delivered relatively quickly. That seemed to be the emergent consensus over the past ACD and CL call last week.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi disagreed 😄 his view was that we should try and get 4844 out alongside withdrawals, even if it meant a delay. His fear is that not doing this would lead to 4844 not happening before the fall.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi While there was pretty broad support for seeing 4844 come sooner than that, the consensus landed on a decoupled withdrawal & 4844 spec, like was discussed on last week's CL call (brief notes from @benjaminion_xyz: hackmd.io/@benjaminion/S…).
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz On the CL side, EIP-4844 is specified right "after" the withdrawals/Capella fork (see: github.com/ethereum/conse…). This isn't really a concept we have (yet!) on the CL side, but there was agreement to follow the same approach.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz So, we agreed that while EIP-4844 wouldn't be in Shanghai, it would be the main thing around which we centre the next EL upgrade as well, matching what is specified on the CL, and that we should get this upgrade out relatively quickly after Shanghai.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz At this point, the two main things agreed on were (1) seeing Shanghai happen quickly, ideally around March and (2) following this with a fork centered around EIP-4844. The big question to answer was where everything else on the Considered for Inclusion list should land.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz The Geth and Besu teams felt that EOF - the set of EIPs introducing a new EVM contract format, code/data separations, new opcodes, etc. - should be the main thing included alongside withdrawals. Nethermind and Erigon felt like "one other feature" could work, with less preference.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz One concern about EOF on the call was whether the spec was stable enough and whether, given its size, it could actually be implemented in time. To help others understand this, @alexberegszaszi and @lightclients have put together a unified spec for all EOF: notes.ethereum.org/@ipsilon/eof1-…
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients EOF was originally split into 5 EIPs to help client teams reason about each specific change more clearly, but when considering it as a whole, it helps to have it all in one place.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients With regards to whether the EIP could be implemented without delaying withdrawals, Geth, Besu and Nethermind felt confident it could, with Erigon saying the delay would be at most a few weeks.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients There was some pushback on the call about this, with attendees wanting to be sure that delays would not compound from here. Similarly, there was concern about whether once we start implementing EOF, we can easily remove it if it's not done in time.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients All client teams agreed that this was a fairly easy EIP to remove from Shanghai if needed. On the timeline front, we discussed this for a bit and eventually landed on the following milestones we'd want to hit for EOF to remain in Shanghai:
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients 1. By the next AllCoreDevs (Jan 5, 2023), we want to have all clients with a complete EOF implementation and passing test suites.
2. By the ACD after that (Jan 19, 2023), we want to have seen EL clients interop on a devnet.

If these bars aren't met, then EOF will be removed.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients These deadlines mean that we'd be moving to mainnet shadow forks late Jan, and then likely moving to testnets in February for both EOF and Withdrawals, assuming no unexpected issues are found.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients Another thing I wanted to make explicit was whether having EOF in Shanghai meant other proposals, such as EIP-1153, 2573, etc. would have to wait. There was some back and forth here, but client teams landed on making a push for EOF as the exclusive addition to Shanghai.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients Champions for other EIPs were understandably disappointed by this, especially in cases where implementations were quite advanced the the EIP was not very large.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients Both @vdWijden and @yperbasis made the point that even if an EIP is relatively small/well tested/etc., there are only a limited number of them client teams can work with within a single update, and every incremental one does have overhead with reviews, testing, etc.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis So, that's where we landed for Shanghai: Withdrawals, EOF & a few already implemented EIPs (PUSH0, Warm COINBASE, Limit/Meter initcode) are what we will go for. If by January, we don't meet the EOF milestones mentioned above, we'll remove it from Shanghai so withdrawals ship ASAP
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis In addition, we agreed to have EIP-4844 as the cornerstone of the next upgrade. I've opened a PR against the EL specs to update this: github.com/ethereum/execu…
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis We were already out of time, but there were two other small things to discuss about Shanghai: the timestamp forking and Engine API changes.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis For context, in order to have EL & CL upgrades happen at the same time (literally!), we need to move the EL to upgrade based on timestamps rather than block numbers. The reason for this is that offline proposers can create slot:block gaps!
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis For example, if we fork at slot N & block X, but there are missed slots between setting N & X and actually hitting X, you could end up in a spot where a feature is activated on the EL but not the CL, or vice-versa.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis In practice, this could look like a withdrawal being sent by the CL and the EL not ready to process, or a blob being sent in an EL transaction and the CL not ready to store it. To fix this, we can use timestamps ⏰
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis Because the CL's epoch/slots are time-based, we can simply use a timestamp on the EL instead of a block number to activate the upgrade, and ensure they happen at the same time on both layers. While this is conceptually simple, it does require some changes in clients.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis Teams have already started to work on this, and with the geth implementation basically done, @vdWijden will write an EIP describing the change to serve as a reference.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis And, lastly, we briefly discussed two Engine API changes we'd like to include as part of Shanghai: the introduction of getPayloadBodiesByRangeV1 (github.com/ethereum/execu…) and engine_getPayloadV2 (github.com/ethereum/execu…), which adds the locally built block value to the payload.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis Client teams agreed that both those changes should be included as part of Shanghai, but, again, that if they turned out to have unexpected issues that could delay withdrawals going live, we should consider removing them!
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis And that was it! Last ACD of 2022 🫡 There will be a CL call next week, then two weeks off, and we'll be back on Jan 5, 2023, to kick off the new year!
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis If you want to learn more about the KZG Ceremony, there's a discord session about it scheduled next Monday 🕯️
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis Good question re: withdrawal credentials! There is no date by which you need to make the 0x00 -> 0x01 switch, but until you do, neither partial nor full withdrawals will be processed for your validator.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis If you have 0x01 credentials, withdrawals happen automatically on a periodic basis. Excess balances will be withdrawn if you are still active, and the full balance will be withdrawn if the validator is out of the exit queue.
@ethereum @trent_vanepps @mkalinin2 @elbuenmayini @peter_szilagyi @benjaminion_xyz @alexberegszaszi @lightclients @vdWijden @yperbasis @BarnabasBusa One more addition: @christine_dkim's excellent summary of yesterday's call. Strongly recommended if you want a better structured recap instead of my braindump tweets 😄

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with timbeiko.eth

timbeiko.eth Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @TimBeiko

Nov 24
We wrapped up an eventful @ethereum #AllCoreDevs earlier today! Covered testnets, and everything being considered for Shanghai.. along with what "considered" even means 😅

Agenda: github.com/ethereum/pm/is…
Stream:

Recap below!
@ethereum First on the call, after pushing it back a few times, we had Afri (@q9f on gh/ethmag) give us an update on the latest discussions around testnet sustainability.
@ethereum @Q9F At a high level, it's hard to offer guarantees around long-term testnet maintenance. State grows, supply gets hard to obtain, etc. Afri therefore has a proposal for more explicit commitments around testnet lifeschedules: ethereum-magicians.org/t/proposal-pre…
Read 49 tweets
Oct 26
And @ethereum #AllCoreDevs is back in full swing tomorrow, 14:00 UTC 😄

Lots to cover, see the (packed) agenda here: github.com/ethereum/pm/is…

As always, the call will be livestreamed (), and I'll post a recap here shortly after. See you there 👋
@ethereum And we just wrapped up! Covered a lot, so let's get into it 😄
@ethereum First on the call, I asked all the client teams what they had been working on and what their view of priorities was for Shanghai.
Read 69 tweets
Sep 15
And I'm back for @ethereum #AllCoreDevs!

Our first post-merge call starts in ~40 minutes. See the agenda here: github.com/ethereum/pm/is… 📜

You can watch along on YouTube: 📺
Will recap on Twitter later, but recommend watching this one live if you care about how The Merge went in detail 🐼!
Ok, we just wrapped up the call! Here we go for the recap 👇
Read 50 tweets
Aug 18
We wrapped up another @Etherum #AllCoreDevs earlier, covering all things Merge as well as mev-boost and censorship resistance at the protocol level. This was a much less "procedural" call than usual, and touched on a lot of the "softer" governance questions around Ethereum.
@Etherum If you have the time (we even ended early!) I strongly recommend watching the whole recording. The Merge stuff was just ~20 mins, and then it was much more of a free flowing discussion.
@Etherum It's very hard to summarise and keep the nuance, and to not put words in people's mouth, I'll err on the side of brevity.

Agenda is here: github.com/ethereum/pm/is…
Full recording:
Read 55 tweets
Aug 17
I try really hard to avoid being negative on here (lots of that already!) but I think this warrants an exception: @TwitterSupport seems to auto-ban accounts from certain African regions which genuinely work on crypto. Short thread 👇🏻
@TwitterSupport The @LidoFinance grants team, @LidoGrants, gave grants to @AbrahamMugisha2 and @DavisRau4 to organize meetups about Lido/Liquid staking in Uganda. The pair, and other organizers did a great job, drawing 50+ people each time.
@TwitterSupport @LidoFinance @LidoGrants @AbrahamMugisha2 @DavisRau4 Here's a neat video they put together after the first event 🎥
Read 9 tweets
Aug 12
This thread touches on an interesting topic: what should be the "thing" that the Ethereum network provides, long term?
One one hand, you can provide full history on every node forever. If you want to do that, you can choose to either limit the throughput of the network (like Ethereum does), or raise the computational+bandwidth requirements of running a node.
Assuming that you want to maintain a large set of node operators, then the question is "what is the most valuable data they should *all* store", and what are things we can easily verify are correct even if they aren't stored by everyone.
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(