We wrapped up an eventful @ethereum#AllCoreDevs earlier today! Covered testnets, and everything being considered for Shanghai.. along with what "considered" even means π
@ethereum First on the call, after pushing it back a few times, we had Afri (@q9f on gh/ethmag) give us an update on the latest discussions around testnet sustainability.
@ethereum@Q9F At a high level, it's hard to offer guarantees around long-term testnet maintenance. State grows, supply gets hard to obtain, etc. Afri therefore has a proposal for more explicit commitments around testnet lifeschedules: ethereum-magicians.org/t/proposal-preβ¦
@ethereum@Q9F While testnets shutting down isn't great, if that's the default path (because they get too hard to maintain), then we should at least provide more predictability around it so users can plan migrations well ahead of time.
@ethereum@Q9F Also worth noting that there are many different uses for testnets: testing EIPs in production before mainnet, stakers testing their setup and, of course, apps and users deploying and testing contracts. There's a world where the solution for each of these looks very different!
@ethereum@Q9F Goerli is currently the only testnet available for stakers to use, but it's been really hard to get GoETH. Sepolia doesn't have this problem (can mint it), but has a restricted validator set and has less contracts on it than Goerli
@ethereum@Q9F Thinking about the best solutions for client teams, stakers, developers, users is important. @TMIYChao also shared a proposal for ephemeral staker testnets that would allow people to test their setup quickly on a network where 32ETH is easily available: github.com/taxmeifyoucan/β¦ π°
@ethereum@Q9F@TMIYChao Lastly, we discussed shutting down of Ropsten π We had already committed to doing it down post-merge, and it has mostly been deprecated by infra providers and abandoned by validators already. Expect a full shut down around the holidays, and a proper announcement π!
@ethereum@Q9F@TMIYChao And, for the rest of the call, we discussed the status of the various Shanghai proposals, along with when we'd want the upgrade to happen. There was a lot of nuance shared here, so I'd strongly recommend watching the livestream π
@ethereum@Q9F@TMIYChao First, we discussed which of the EIPs we've been discussing should be moved to "Considered for Inclusion" status. A few years ago, we added the CFI status to highlight EIPs that client teams liked and wanted to potentially implement, without committing them to a specific fork
@ethereum@Q9F@TMIYChao Over the past few upgrades, though, almost everything that's been CFI'd has been included in forks, raising questions about whether CFI is actually useful/valuable, and whether it's a waste of time to even try and articulate what's CFI vs. just include things.
@ethereum@Q9F@TMIYChao I don't think it is π Obviously, for folks who spend all of their time thinking about network upgrades, the context/distinction is quite clear, but it makes it very hard for the community to have a read around what's being considered.
@ethereum@Q9F@TMIYChao So, we took a decent chunk of the call to go over what should be CFI'd π There was a lot more back and forth, but for brevity's sake, here's where we landed on things.
@ethereum@Q9F@TMIYChao First, we discussed the EVM Object Format (EOF) EIPs. If you don't know what EOF is, @lightclients had a great thread about it last week:
@ethereum@Q9F@TMIYChao@lightclients EOF previously had two EIPs (3540/3670) CFI'd, but since then the consensus has moved to wanting to do the full suite of EOF EIPs together, to minimize any extra EOF version (which then needs to be maintained forever by clients).
@ethereum@Q9F@TMIYChao@lightclients While not everyone agreed about if/when/how we should do EOF, there is definitely strong support, and the EIPs are already being implemented in devnets, which historically has happened _after_ EIPs are CFI'd. So, the 3 other EOF EIPs have been CFI'd: 4200, 4750 and 5450 β
@ethereum@Q9F@TMIYChao@lightclients@liamihorne For similar reasons to EOF (4844 also has been prototyped and launched on devnets across multiple clients), we agreed to move it to CFI β
@ethereum@Q9F@TMIYChao@lightclients@liamihorne After that, we had an interlude discussing exactly what CFI should signify/if it has value/etc. I won't recap this part, but if you care about that stuff, I recommend watching the stream πΊ That's something we'll have to think about more, but it's unlikely to happen pre-Shanghai!
@ethereum@Q9F@TMIYChao@lightclients@liamihorne At a high-level, though, the questions are:
- Should CFI even be a thing?
- If so, should it be a signal that we want the EIP in _this_ fork (currently, no) or in _a fork soon_ (closer to people's understanding, in my view)
- How "strong" should the CFI commitment be?
@ethereum@Q9F@TMIYChao@lightclients@liamihorne Continuing on our list, the next proposal was EIP-4758, which proposes to deactivate SELFDESTRUCT, replacing by a SENDALL opcode which transfers the funds but leaves the contract as is.
@ethereum@Q9F@TMIYChao@lightclients@liamihorne One issue with this proposal is that it breaks the use cases where a contract can be deployed with CREATE2, then SELFDESTRUCTed and then re-instantiated at the same address. A smart contract author which uses this pattern came on the call to explain how it would affect them.
@ethereum@Q9F@TMIYChao@lightclients@liamihorne The consensus here was to wait to CFI the EIP until we have a proposal to address this edge case. That said, it's more and more likely that SELFDESTRUCT deprecation is a question of *when* and not *if*. Prepare for this!
@ethereum@Q9F@TMIYChao@lightclients@liamihorne Lastly, we moved EIP-2537, which introduces a BLS precompile, to CFI as well.. mostly on the grounds that it's been CFI'd since the Berlin upgrade π
@ethereum@Q9F@TMIYChao@lightclients@liamihorne So, in short, Shanghai currently is guaranteed to include the following EIPs:
EIP-3651: Warm COINBASE
EIP-3855: PUSH0 instruction
EIP-3860: Limit and meter initcode
EIP-4895: Beacon chain push withdrawals as operations
@ethereum@Q9F@TMIYChao@lightclients@liamihorne And the list of CFI'd EIPs is:
EOF (3540, 3670, 4200, 4750, 5450)
EIP-1153 (transient storage)
EIP-2537 (BLS precompile)
EIP-4844 (protodanksharding)
The SELFDESTRUCT EIP may also be CFI'd, pending spec changes to deal with existing contracts breaking.
@ethereum@Q9F@TMIYChao@lightclients@liamihorne Then, we spent the rest of the call discussing how to prioritize things for Shanghai. Again, there was a lot of back and forth here, so I'll summarize the highlights and recommend the livestream for the nuance πΊ
@ethereum@Q9F@TMIYChao@lightclients@liamihorne And I'll emphasize by saying this was a relatively non-technical conversation much more focused on "what are the important things we should do", so please don't be intimidated if your idea of ACD's is "discussing the technical implementation details of EIPs"!
We wrapped up another @Etherum#AllCoreDevs earlier, covering all things Merge as well as mev-boost and censorship resistance at the protocol level. This was a much less "procedural" call than usual, and touched on a lot of the "softer" governance questions around Ethereum.
@Etherum If you have the time (we even ended early!) I strongly recommend watching the whole recording. The Merge stuff was just ~20 mins, and then it was much more of a free flowing discussion.
@Etherum It's very hard to summarise and keep the nuance, and to not put words in people's mouth, I'll err on the side of brevity.
I try really hard to avoid being negative on here (lots of that already!) but I think this warrants an exception: @TwitterSupport seems to auto-ban accounts from certain African regions which genuinely work on crypto. Short thread ππ»
One one hand, you can provide full history on every node forever. If you want to do that, you can choose to either limit the throughput of the network (like Ethereum does), or raise the computational+bandwidth requirements of running a node.
Assuming that you want to maintain a large set of node operators, then the question is "what is the most valuable data they should *all* store", and what are things we can easily verify are correct even if they aren't stored by everyone.
Will give 1.2M Sepolia ETH to the first reliable RPC endpoint that's maintained long-term π 100k SepETH per month for the next 12 months as long as it works smoothly β¨
plz help
This has to be easier for me than waiting around for my node to sync, so the criteria for payment is you send me an RPC URL, I add it to MetaMask and It Just Worksβ’οΈ