@ethereum First on the call, @mkalinin2 presented an upgrade to the Engine API spec to address some issues we've seen on Kintsugi w.r.t. re-orgs. Full link here: github.com/ethereum/execuβ¦
@ethereum@mkalinin2 In short, the PR makes it optional for EL clients to actually execute a payload when receiving an executePayload call (and hence renames that call to newPayload for clarity).
@ethereum@mkalinin2 The reason here is that when ELs receive payload which isn't on the canonical chain, they may choose to simply store/cache it rather than execute it immediately. This relaxes the constraints on the specification to allow this.
@ethereum@mkalinin2 That said, on the call, @mhswende suggested that we should only make this optional for non-canonical payloads, and that we should expect ELs to execute all payloads received on the main chain, see this comment:
@ethereum@mkalinin2@mhswende It also addresses some CL <> EL communication issues when clients are syncing and receiving blocks on fork chains in parallel, see:
@ethereum@mkalinin2@mhswende All EL teams on the call seemed to agree this was a good idea. We'll keep discussing this week and hopefully have it merged/agreed to by the CL call next week. Of course, we'll need to add test cases for the various edge cases implied by this change.
@ethereum@mkalinin2@mhswende The goal of this mechanism is to act as a simple guard against people potentially exposing their Engine API to the open internet when running a node. While before, the worst that could happen with exposing a port was spam/DoS, post-merge, someone could mess with validator actions
@ethereum@mkalinin2@mhswende The proposal is to use a JWT token for HTTP and websocket requests, which can be either user-supplied or, if not supplied, generated by clients on startup.
@ethereum@mkalinin2@mhswende All EL teams seemed generally fine with this approach. Martin will open a PR, and we'll get feedback from CL teams before/on the CL call next week. Assuming all that is good, we'll proceed with implementing it π
@ethereum@mkalinin2@mhswende Next up on the call, Harry from @trufflesuite raised some potential issues around tooling due to the DIFFICULTY opcode being renamed and having its value changed to RANDOM post-merge.
@ethereum@mkalinin2@mhswende@trufflesuite In short, this change will make it hard for tools which look at bytecode to, without context, know how to interpret this opcode. While this isn't great, there isn't an easy fix at the protocol level, and there are limited cases where the pre/post-merge context isn't available.
@ethereum@mkalinin2@mhswende@trufflesuite@trent_vanepps Next up, we discussed how we should approach testnets beyond the merge. A few people had been asking in the discord where they should deploy things, and we hadn't explicitly thought through the options before.
@ethereum@mkalinin2@mhswende@trufflesuite@trent_vanepps Recommend watching the livestream for the discussion, but, in short, we agreed it makes sense to always have at least one testnet with publicly open validator sets, and one with a closed one (for stability).
@ethereum@mkalinin2@mhswende@trufflesuite@trent_vanepps Similarly, we agreed that over time, testnets grow in size and there isn't a ton of value in that. So we should perhaps try and be more aggressive in deprecating old testnets and spawning new ones.
@ethereum@mkalinin2@mhswende@trufflesuite@trent_vanepps We didn't come to a crystal clear conclusion, and will keep discussing this in the coming calls, but if you are looking for the safest bet for a testnet that will stay around long term post-merge, it's probably Goerli.
@ethereum First, updates on the Kintsugi π΅ devnet! There was a lot of testing over the holidays, and @vdWijden managed to break the network again π₯
TL;DR: his fuzzer created a block which replaced certain fields by others, and because of caching+validation issues, some clients accepted an invalid block as valid.
We had our last @ethereum#AllCoreDevs of 2021 today π! This was IMO one of the most interesting calls of the year, and recommend people interested in the tradeoffs of Ethereum governance watch the entire thing π₯
@ethereum First on the call, we discussed the Arrow Glacier upgrade from yesterday. Things went smoothly! Two miners, @HuobiGlobal and @OKEx hadn't upgraded. Now, it seems they have, as they've mined blocks on the main chain:
@ethereum@HuobiGlobal@OKEx Then, we discussed progress on the Kintsugi π΅ merge devnets. The 4th devnet, devnet-3, was launched this week. While there was chaos at first, it's now stable and even @vdWijden's fuzzer didn't take it down!
Lots of thoughts on the conversations this weekend, and while I think there is a charitable interpretation to some of the criticisms, let me start by saying it's pretty rich to criticize people for "jerking off and watching the burn" when well....
Obviously, narratives get distilled on Twitter, but, to say the least, i makes it harder to educate folks about the subtleties (e.g. willeip1559lowergasprices.org) when this is what's pushed.
Similarly, no one ever dropped the "1.x roadmap": it was literally the last Ethereum event that happened pre-COVID and work on its various aspects is progressing (not to mention 1559 was part of it...)
@ethereum First on the call, we recap'ed the #amphoraπΊ interop from last week. Rather than rehashing the recap, here's the blog post covering the event π:
@ethereum A couple updates from the call that aren't in the blog post: Pithos, the new devnet which was launched yesterday, is now running with 3 consensus clients + geth. Besu + Nethermind will be added soon. Explorer: pithos-explorer.ethdevops.io
@ethereum First up, @nethermindeth had an announcement urging people to upgrade to v1.11.2 to mitigate a potential PoW vulnerability. More details here: