FYI, this one is a bit less "recap-able" because most of the call was going over merge docs ⛓. Recording strongly recommended if you care about the Merge!
@ethereum@mkalinin2 We had already covered part of it in a Merge call last week () and continued going over the details. Mikhail went over some of the comments on the doc and explained the most recent changes.
@ethereum@mkalinin2 Specifically, the engine_assemblePayload was "split" into engine_preparePayload and engine_getPayload.
@ethereum@mkalinin2 Then, there was a discussion about the API call which would return the latest HEAD from the beacon chain, and what states that block can have, see:
@ethereum@mkalinin2 And we stopped the discussion at the start of the transition process. One thing that was noted is most of the transition code could likely be removed from clients post-merge. We'll have another call to keep discussing at 13:00 UTC next Thursday (before the Eth2 call)!
@ethereum@mkalinin2 Next up, we had Felix from the Geth team present a spec for post-merge syncing. Again, he walked through the doc in great detail on the call, so worth watching if this will affect you: github.com/fjl/p2p-drafts…
@ethereum@mkalinin2 The doc does a great job of explaining how sync would work, so I won't summarize it here. It's very well written, and even has custom graphics!
@ethereum@mkalinin2 After Felix's presentation, there were discussions about how clients could store intermediate states for non-finalized blocks, both looking forward (until next finalization) and backwards (to handle re-orgs).
@ethereum@mkalinin2 One big concern is that while finalization happens relatively quickly on average in Eth2, in the worst case, it could take days/weeks. A lot of implementations for storing intermediate states don't scale to that extent, so the biggest open question is now how to handle this.
@ethereum@mkalinin2 The Geth team has a proposal in the doc, but it would require a lot of engineering work and more discussion will be had across client teams to see if this is the ideal approach.
@ethereum@mkalinin2 It's also worth noting that different clients use different state storage models, specifically @ErigonEth. We'll keep looking at the feasibility of this approach across all models and discuss again on the next ACD.
@ethereum@mkalinin2@ErigonEth@lightclients explained that, when planning London, we considered having a fixed gas limit (EIP-1559, then 3382 eips.ethereum.org/EIPS/eip-3382), but decided against it, partially to leave miners with the ability to lower the gas limit during attacks on the network.
@ethereum@mkalinin2@ErigonEth@lightclients Another reason against the fixed gas limit that was brought up when planning London was that, historically, miners had acted in accordance with what would be best for the network. So, not capping it was a "backwards looking" argument.
@ethereum@mkalinin2@ErigonEth@lightclients Looking forward, though, there are and will be increasing economic incentives for miners to raise the gas limit, and that's something we should consider.
@ethereum@mkalinin2@ErigonEth@lightclients First, @Shamatar was concerned that the EIP didn't have a ton of data backing it. For example, what is the current state growth rate? How does it vary by clients? What is acceptable? Is the main blocker DoS risks on the network or something else?
@ethereum@mkalinin2@ErigonEth@lightclients@Shamatar@adietrichs@dannyryan For (2) @vdWijden from Geth disagreed. He said all client teams are already working on better managing state and more pressure won't make things quicker. He also added that state growth isn't the main factor right now, but rather some DoS vectors on the network.
@ethereum@mkalinin2@ErigonEth@lightclients@Shamatar@adietrichs@dannyryan@vdWijden First, two EIPs which are already live (and one deprecated) are still in Draft but should be updated. They are: EIP-2364: eth/64: forkid-extended protocol handshake &
EIP-2464: eth/65: transaction announcements and retrievals. Will coordinate offline to do so.
First on the call we discussed the London upgrade going live on Goerli and Ropsten. For Goerli, @vdWijden and Karim from @ConsenSysQuorum spammed the network before the fork block and after it to make sure things went smoothly, which they did 🎉
On Rinkeby, the @go_ethereum team found a small issue in their validator configs: the minimum gas price that miners/validators accept in Geth is 1 gwei, and post-London this is calculated with the priority fee instead.
First, we had status updates from the Calaveras devnet. It was spammed with transactions this week, and uncovered some minor issues in Besu and Nethermind, which either have already been fixed or are being done so today/early next week 💪🏻
Then, we went through a bunch of open issues related to JSON RPC support for EIP-1559. The first was where the "effective gas price" of a transaction (the amount actually paid by the txn) should be stored. We agree to have that in the txn receipt, and updated the JSON RPC spec.
We started with a lot of action as @mhswende identified an issue in EIP-1559 yesterday where the new fields introduced in transactions (maxFee & maxPriorityFee) did not have an explicit cap. This meant that an attacker could create arbitrarily large transactions.
Prior to 1559, this is not possible because if you want to create a transaction with a huge gas price, you actually _need_ to have that amount of ETH, and if your txn is included, you will _pay_ that amount.
First up, I gave a summary of my conversation with the various client teams over the past week. I had pasted a text version in the agenda as well:
TL;DR: client teams prefer a tighter-scoped London upgrade, London in July would be best, and if we keep London small + the Merge work goes according to plan, we should be able to do another feature fork this fall without delaying the merge.
First up on the call was Berlin updates 🇩🇪 The Rinkeby fork went well, nothing to report. The mainnet fork block is going to happen on April 14/15, see a countdown here: goto.etherscan.com/block/countdow…