We wrapped up another @ethereum #AllCoreDevs this AM πŸ› 

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

Recap below πŸ‘‡πŸ»
@ethereum First up, @nethermindeth had an announcement urging people to upgrade to v1.11.2 to mitigate a potential PoW vulnerability. More details here:

Upgrade your nodes 🚨
@ethereum @nethermindeth Then, we discussed several things related to The Merge β›“
@ethereum @nethermindeth 1. @mkalinin2 is working on specs for the first interop devnet between execution and consensus clients. You can expect them early next week πŸ‘€
@ethereum @nethermindeth @mkalinin2 2. To simplify the initial implementations of the merge, we agreed to have synchronous message ordering on the consensus layer. This means that the beacon chain will wait until it hears back from the execution layer before sending more messages.
@ethereum @nethermindeth @mkalinin2 As we implement devnets and get a better feel for the bottlenecks and possible optimizations, we'll move some of the messages to be asynchronous.
@ethereum @nethermindeth @mkalinin2 3. After some back and forth, it seems like we'll be hardcoding the terminal total difficulty (the point at which execution clients start listening to the beacon chain instead of PoW) rather than computing it dynamically.
@ethereum @nethermindeth @mkalinin2 We discussed the tradeoffs of this on the call, so I encourage you to watch the livestream for nuance. The Github PR has a good description of the rationale: github.com/ethereum/conse…
@ethereum @nethermindeth @mkalinin2 TL;DR: there are two issues, one subtle one where clients may reach different TTDs (see: github.com/ethereum/conse…), and another where, if the TTD isn't hardcoded, users who do nothing or incorrectly set up their node for the merge may not realize they haven't moved to PoS.
@ethereum @nethermindeth @mkalinin2 The way the merge is set to work is that first, the beacon chain will upgrade to support sending/receiving messages to/from the execution layer, then, once the execution layer hits the TTD, it will stop broadcasting blocks + listening to PoW, and instead listen to the PoS layer.
@ethereum @nethermindeth @mkalinin2 What we want to avoid with a hardcoded TTD is a case where we hit the TTD _before_ the beacon chain upgrades. Another potential issue, though less severe, is if hashrate drops a lot pre-merge and we set the TTD to early, we might be waiting for the merge for longer than we'd like
@ethereum @nethermindeth @mkalinin2 We discussed a few options, but didn't come to a decision for exactly how to handle the rollout. There was general consensus for using a fixed TTD, and it's likely more conversations happen on the PRs/issues linked.
@ethereum @nethermindeth @mkalinin2 4. @protolambda brought up an issue about transaction type representations differing between the execution and consensus layer, details here: github.com/ethereum/conse…. We didn't discuss on the call much, but folks are starting to chime in on the issue with their preferred approach
@ethereum @nethermindeth @mkalinin2 @protolambda Lastly, we asked the various client teams for their progress on implementing the APIs and sync protocols for the merge. Still a WIP for everyone, and a new version of the sync spec should be shared next week.
@ethereum @nethermindeth @mkalinin2 @protolambda FYI: on the sync note, post-merge sync will require large refactors in clients, which will result in Geth dropping support for fast sync.
@ethereum @nethermindeth @mkalinin2 @protolambda Then, we went on to discuss EIP-3756, which proposes to cap the gas limit (but let miners lower it as needed).
@ethereum @nethermindeth @mkalinin2 @protolambda While it seems like most teams are generally in favor (w/ the exception of Erigon being against, but OK with whatever the majority decides), the EIP opens several thorny questions: what gas limit _should_ we set? when should it be increased?
@ethereum @nethermindeth @mkalinin2 @protolambda One major reason for the EIP is the misaligned incentives between miners/validators (who want to optimize for their revenue and can get bribed to increase the gas limit) and the short + long term health of the network with DoS risks and state growth.
@ethereum @nethermindeth @mkalinin2 @protolambda Everyone seemed to agree that if miners/validators were to raise the gas limit to dangerous levels, it would make sense to deploy this. Again, defining a "dangerous level" is hard to do in advance and more a case of "you know it when you see it" πŸ˜…
@ethereum @nethermindeth @mkalinin2 @protolambda Relatedly, we discussed whether *if* we accepted this, we should do it before, alongside, or after the Merge.
@ethereum @nethermindeth @mkalinin2 @protolambda On one hand, there is never a good time for these changes, and if we want to do it, sooner is best. OTOH, we currently did not plan to introduce any changes which needed to be deployed to testnets prior to the merge, and doing this would add some overhead.
@ethereum @nethermindeth @mkalinin2 @protolambda Similarly, two other EIPs were introduced on the call: EIP-3855, by @alexberegszaszi, which adds a PUSH0 opcode. This would, as it states, PUSH0 onto the stack, and save on gas costs by developers.
@ethereum @nethermindeth @mkalinin2 @protolambda @alexberegszaszi The other was EIP-3860 (eips.ethereum.org/EIPS/eip-3860), which limits the size of initcode.
@ethereum @nethermindeth @mkalinin2 @protolambda @alexberegszaszi EIP-3855 was weakly supported by everyone, but it wasn't clear that it was an important enough change to get done before the merge.
@ethereum @nethermindeth @mkalinin2 @protolambda @alexberegszaszi EIP-3860 fixes a potential DoS vector and would also provide better guarantees to the consensus layer about the payload size from the execution layer post-merge. We discussed whether we should consider this one for before the merge.
@ethereum @nethermindeth @mkalinin2 @protolambda @alexberegszaszi We were already close to the time limit, so couldn't discuss in depth, but _if_ we were to do 3860 before the merge, then it would also be trivial to add 3855 and 3756.
@ethereum @nethermindeth @mkalinin2 @protolambda @alexberegszaszi Because of the difficulty bomb, though, we need to make this decision _fast_! The bomb is expected to go off early December, which means we'd need to have forked the testnets in November and, well, have releases for this in October... which is soon!
@ethereum @nethermindeth @mkalinin2 @protolambda @alexberegszaszi So, we'll keep discussing this async and I'll spend time over the next two weeks thinking through the various options and timelines. One way or another, expect a final decision on the next ACD, which is scheduled for October 1st, 14:00 UTC. See you then πŸ‘‹πŸ»
@ethereum @nethermindeth @mkalinin2 @protolambda @alexberegszaszi Oh, and one more thing: the @go_ethereum team shared a post-mortem about the minority split we saw a few weeks ago: github.com/ethereum/go-et…

β€’ β€’ β€’

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

Keep Current with Tim Beiko | timbeiko.eth

Tim Beiko | 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

15 Sep
Exactly one year later, I'm happy to come back to this thread and say we're sending back the extra funds from the @gitcoin grant back to the CLR match pool 😁

Details below πŸ‘‡πŸ»
@gitcoin When we started to work on EIP-1559, we raised a ~90,000$ Gitcoin grant which, at the time, was the largest ever in a single round on Gitcoin. gitcoin.co/grants/946/pro…
@gitcoin We always meant for those funds to be used for common goods, and from Day 1 committed to sending any excess funds back to CLR matching.
Read 9 tweets
3 Sep
We just wrapped up another @ethereum #AllCoreDevs.

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

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 First up on the call, we went over @mkalinin2's Consensus <> Execution layer communication API doc, which you can find here: hackmd.io/@n0ble/consens…
@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.
Read 30 tweets
9 Jul
We just wrapped up another @ethereum #AllCoreDevs 🀝

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

Recap below πŸ‘‡πŸ»
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.
Read 44 tweets
11 Jun
We just wrapped up @ethereum #AllCoreDevs 😁

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

Recap below πŸ‘‡πŸ»
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.
Read 33 tweets
28 May
We wrapped up #AllCoreDevs no. 115 a few hours ago.

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

Overview of the call below πŸ‘‡πŸ»
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.
Read 50 tweets
14 May
We just wrapped up #AllCoreDevs 113 😁

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

Recap below πŸ‘‡πŸ»
The bulk of the call was focused on ironing out the final details for the London upgrade πŸ‡¬πŸ‡§
First up, we discussed the status of Baikal, our London devnet. @nethermindeth, @go_ethereum, @turbogeth, and @ConsenSysQuorum's Besu are all syncing to it πŸŽ‰
@OpenEthereumOrg is still working on merging the final EIPs before joining the network.
Read 30 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

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

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(