We've got a ton to cover today: two hard forks, eth2 merge requirements, a list of things we should remove from Ethereum by @VitalikButerin and a quick shoutout for the 1559 community call with miners happening next week.
First up is checking in on YOLOv3's status: Besu, OpenEthereum, Nethermind and Geth are all in sync ✅
There are still some RPC calls to align, but those aren't consensus critical. Geth hopes to merge the last PR for Berlin in their master branch soon. They've also been fuzzing the network with transactions for EIP-2930, 2315, and more!
It's a bit out of date, and @poojaranjan19 should be updating it today based on today's update.
Next up is discussing the Berlin timeline. We have a full issue with various proposals: github.com/ethereum/pm/is…
Lots of back and forth, but I'll share the outcome here when we've agreed. You can watch the livestream for the back and forth.
Ok, so we've agreed on the following Berlin timeline 🇩🇪🎉
We'll need someone to double-check the block numbers, but assuming there are no issues, that's what we'll be going with 😁
Next up is discussing London timing. Given that the difficulty bomb will be going off in July/August, we want London to hit mainnet before then. This means we'd need to see testnets in June, pick blocks in May, do most of the testing in April, so we need to pick EIPs in March!
And March is ~2 weeks from now, so that means we'll need to spend the next couple calls discussing and deciding on what EIPs we want to see in London if we want them to live this summer!
So, if you want an EIP considered for London, open an issue on the pm repo (github.com/ethereum/pm/is…) and it will be discussed in the next few weeks 👍🏻
Things are now moving from a small working group to being a broader effort across both Eth1 & Eth2 client teams.
Mikhail is going into detail about the Eth1 clients on the call. Worth watching the livestream if you're interested in the Merge 👀
A lot of the JSON RPC components will remain similar, though some will need to be adjusted because of finality/consensus.
This means that for dapp developers, the changes should be minimal.
The EVM will also get a few more opcodes, to do things such as read the beacon state, withdraw from the beacon chain, etc.
Short list of changes on the Eth1 side by Mikhail:
One big change is that, because of finality, storing the entire history won't be a strict requirement of the consensus.
Clients may want to still keep that as a requirement for their peers, though!
.@peter_szilagyi says one big design issue with the current client design is that under the current model, the Eth1 client delegates block synchronization to the Eth2 client, which could have implications about historical data availability.
@dannyryan agrees this is a big area to think through, and that this is also a good time to re-think some of the assumptions about how our client operates.
Lots of good Q&A between Eth1 & Eth2 teams on the call now, strongly recommend watching the livestream for details 📺👀
Also a juicy discussion about how we actually *do* the PoW -> PoS swap, and what potential attacks miners can coordinate around the fork block ⛏
With regards to any merge requirements for London, the one nice-to-have would be the BLS precompile (which didn't make it into Berlin), and potentially having the difficulty bomb try to line up with a potential merge ETA.
Two requests on the call re: Eth1 requirements for the merge are (1) making it clear exactly what the requirements are for Eth1 clients post-merge and (2) what are the invariants we want to preserve/remove from Ethereum post-merge.
One last comment by @gballet: he is looking for people using the DIFFICULTY and BLOCKHASH opcodes in their contracts for other use cases than randomness. Ping him or get in the Eth R&D discord to discuss 😁
The merge (or before) is a great opportunity to clean some things up, because then clients who get developed post-merge wouldn't need to deal with these legacy features.
Removing SELFDESTRUCT is a big one here. There's a whole separate document about it 😅 hackmd.io/@HWeNw8hNRimMm…
One question by @mhswende is how do we deal with everything that would break from this?
If the amount of ETH lost/locked was quite low, perhaps we could have a community fund to refund it.
One potential breakage we could do sooner rather than later is removing refunds (hackmd.io/@HWeNw8hNRimMm…), the biggest downside here would be that gas token would break. Some core devs would like to see this come along with 1559 in London.
Vitalik and Martin will put together an EIP to remove the refunds as described above.
Last up, the @EthCatHerders will be hosting a community call to discuss EIP-1559 and specifically miners' concerns about the EIP. The blog post has more information (medium.com/ethereum-cat-h…) about it.
It's worth noting that no decision about 1559 or miners' proposal making it into a hard fork will be taken on that call, those would still need to happen on AllCoreDevs.
Hopefully the call provides somewhere for miners to voice their concerns and come to consensus about their favored proposals.
And that was it! Next call is on March 5, 14:00 UTC. See you then 👋🏻
• • •
Missing some Tweet in this thread? You can try to
force a refresh
@crypto_fruit I think it should be "ready to be considered for mainnet" in the next few weeks. See this checklist for what's left to do: github.com/ethereum/pm/bl…
We want to get the "Client Level Open Issues" done before we present it on AllCoreDevs.
@crypto_fruit As you can see on the list, there is only one issue outstanding. We have preliminary results indicating that it should be OK (hackmd.io/@timbeiko/1559…), but next week we're running a proper test.
@crypto_fruit After that, I'd be comfortable proposing 1559 for inclusion to core developers. If everyone agrees, then it would be a candidate for the next network upgrade, and those usually happen every 6-9 months. We'll probably have one over the summer.
Lots on the agenda today: possible Berlin blocks 🇩🇪, p2p protocol changes, EVM384 & 1559 updates, and a quick presentation by me about feedback gathered about AllCoreDevs 😁
This is the equivalent of the previous "Hardfork Meta" EIPs that we had for previous hard forks.
Where we're at right now is that we need one more PR merged into Geth for EIP-2718/2930, then we can set up YOLOv3 and start looking at blocks for testnets.
First on the call, @adietrichs gave an update on his work about transaction pool management. His latest writeup is available here: hackmd.io/@adietrichs/15…
The document is quite short, and worth reading, but here are the main takeaways with regards to mining ⛏