First on the call, we had @mkalinin2 present a design document for the Merge Consensus APIs: hackmd.io/@n0ble/consens…

He went over it on the call and answered some questions from other attendees.
@mkalinin2 The document was inspired by what was done in the Rayonism hackathon (rayonism.io), the merge EIP (eips.ethereum.org/EIPS/eip-3675) and even opens the door to L2 interop, as proposed by @protolambda:
@mkalinin2 @protolambda We'll have a call to discuss this in more detail next week (github.com/ethereum/pm/is…), and the @go_ethereum is working on a write up about the merge in general they hope to share on that same call 👀
@mkalinin2 @protolambda @go_ethereum Next up, I gave a summary of my conversation with client teams about what went well/bad with London, how we can improve for The Merge, and what their general roadmap is for the next ~6 months. Write up here: hackmd.io/@timbeiko/lond…
@mkalinin2 @protolambda @go_ethereum TL;DR:

Testing 🔩: teams would like to set expectations in advance of how long things should be live on testnets, what to do if a bug happens, etc. so that we don't have to take these decisions on the fly (and under pressure) as we're working on the merge.
@mkalinin2 @protolambda @go_ethereum Consensus vs. Non-Consensus changes⛓: once consensus changes are done, we should leave enough time for tooling/infrastructure to play with clients and help design the non-consensus interfaces.
@mkalinin2 @protolambda @go_ethereum Some teams were very involved for London (a shout out was given to @infura_io on the call!), but it'd be great to see more 😁 @trent_vanepps and I will keep pushing for this to happen.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps Lastly, when asked about their roadmaps, basically all teams agreed that, in addition to the consensus changes for the merge, they had other significant things they need to get done in the next few months.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps Most of these are things that clients will need to be in a better position for the merge itself: performance optimizations, better separations of the consensus engine, etc.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps Given that, we agreed to *not* have a "feature fork" in December. This means that we'll likely push back the difficulty bomb, and perhaps add other "one line" changes, but won't be including new EIPs before the Merge.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps After this, there was some conversation on the call about what to do about the various EIPs which are "pending". We discussed potentially adding them into the first fork after the Merge, but it's something we need to do more serious planning around.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps It is a bit early to make a final call given that we're still early in the merge work itself, but definitely something we will follow up on in the coming weeks/months.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps And those were the two big topics of the call! We then had a laundry list of smaller discussion points. Image
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps First, there was a discussion about limiting the maximum value for account nonces. There was back and forth about using the Int64 vs. Javascript Int (2^52) cap. You can watch the call for the full debate, but we ended with Int64, i.e. EIP-2161 (eips.ethereum.org/EIPS/eip-2681)
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps Main reasons were: Eth2 does this, we don't optimize for JS elsewhere, and JS now has BigInt support. There are other fields which need similar decisions (a lot of them detailed in EIP-1985), and we'll put together a master list for people to review.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps Then, we had @shemnon on the call to discuss EIP-1352, which proposes to reserve some addresses for precompile contracts. Prior to Berlin, this wasn't a huge deal, but now that precompiles are considered "warm" under EIP-2929, which changes their gas costs, it matters.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon Specifically, a lot of L2s use precompiles to store their system contracts, so the gas price associated with those will depend on whether they are considered cold or warm by the EVM upon initial invocation, and making an entire address range warm by default could clear this up.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon Also worth noting that there were some issues on Berlin devnets because of this: some client teams treated the address of an implemented-but-not-activated precompile as warm, while it should have been treated as cold.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon There was some disagreement about the interpretation of the EIP (should the entire range be warm, despite not having a precompile, or should only precompiles within that range be warm?) and it made it clear more discussion was needed 😅
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon You can watch the recording for more nuance, but @shemnon and others will move the discussion to the EIP's @EthMagicians thread: ethereum-magicians.org/t/eip-1352-res…
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon @EthMagicians Then, there were a few announcements related to @go_ethereum. First, ICYMI, they have scheduled a security update for next Tuesday:

🚨 If you use Go-Ethereum, you should update to that 🚨
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon @EthMagicians Second, while a PR had been merged to remove eth/65 support, it was reverted to not be bundled with the security upgrade and give the client teams who don't support eth/66 a few more weeks to do so. Both teams who didn't support it now have a PR/branch with implementations 👍🏻
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon @EthMagicians Third, EIP-3607, which verifies that the sending account for a transaction is an EOA, was merged into geth. There are some corner cases here, which are described in the EIP's discussion post and will soon have test cases for it.
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon @EthMagicians Because the EIP restricts a behavior that we've never seen on mainnet, it is activated as of the genesis block. Other client teams are in the process of adding support, with @nethermindeth investigating any potential concerns with @xdaichain support ⛓
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon @EthMagicians @nethermindeth @xdaichain Another announcement was from @AlitaMoore85, who has been working on detailing the various corner cases in different clients' JSON RPC implementations (in order to hopefully unify them!).
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon @EthMagicians @nethermindeth @xdaichain @AlitaMoore85 They've put togehter a list of the edge cases here: github.com/ethereum/execu…

They asked clients to review them, and also for any tools who have experience if/else-ing JSON RPC responses based on the node used to chime in 🛠👀
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon @EthMagicians @nethermindeth @xdaichain @AlitaMoore85 Second to last announcement: with the merge coming up, we're starting to move away from the eth1/eth2 terminology in favor of execution & consensus layer. Repos, discord channels and forum tags are being renamed 🥳 You can find the list here: notes.ethereum.org/@timbeiko/grea…
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon @EthMagicians @nethermindeth @xdaichain @AlitaMoore85 And, lastly, @dedaub has been working on some gas cost analyses for work on state expiry. They've put out a report, which they'll go over in a call next Friday, 15:00 UTC: github.com/ethereum/pm/is…

Report link: docs.google.com/document/d/1s3…
@mkalinin2 @protolambda @go_ethereum @infura_io @trent_vanepps @shemnon @EthMagicians @nethermindeth @xdaichain @AlitaMoore85 @dedaub And that was it 😁! Next ACD is scheduled for Sept 3rd, 14:00 UTC 👋🏻

• • •

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

17 Sep
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 ⛓
Read 29 tweets
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
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

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!

:(