Ethereum Protocol Fellowship (EPF) Cohort 7 — Applications open until May 13

Transcript

00:07:59
Maria Silva:more people joining, so maybe we can kick off. So I think the agenda today is a bit lighter, so we'll be focusing on the State Growth EIP, so AT37,
00:08:11
Maria Silva:As the other EIPs, we are still working on the latest benchmark data collection, so there are no… no, no updates there.
00:08:21
Maria Silva:so on, 1837, maybe, Spencer, if you could, maybe you and Stefan, if you could give,
00:08:30
Maria Silva:a quick update on the current status of the Ball DevNet 3, and, any
00:08:37
Maria Silva:pending things we need to figure out and discuss.
00:08:44
Stefan Starflinger:So in general, we have, I think, in the channel, 8037, been discussing, kind of, how we should progress, and…
00:08:54
Stefan Starflinger:I think we decided that Spencer is gonna make some small adjustments, and gonna release another spec change with these small adjustments. I think Erigon shared something, then I have some tests, that will be potentially added as well.
00:09:11
Stefan Starflinger:And then there is the question.
00:09:14
Stefan Starflinger:I think which will not be added, to the next spec release, with the parent, state gas refund. That's something we can discuss, but maybe Spencer, are you here?
00:09:30
spencer:Yeah, I guess, Just to kind of relay what Stefan,
00:09:37
spencer:mentioned. I think, I mean, ideally, we wouldn't update the spec.
00:09:42
spencer:Just to get DevNet Free up and running, but I think… Because we have,
00:09:49
spencer:We have, kind of, different…
00:09:51
spencer:issues with the spec that different client teams have found, so Erigon found one.
00:09:55
spencer:And rest, fund, found more, Nether, Nethermind, Has, has one. So I think it's,
00:10:06
spencer:It makes sense to align at least these, like, kind of smaller changes, I feel like.
00:10:10
spencer:for the next release, just so that there's minimal, like, back and forth between clients, like…
00:10:16
spencer:Clients that are technically correct.
00:10:19
spencer:Than having to… Like, make a change that makes them incorrect.
00:10:25
spencer:To then revert it back in the future. So I think… Yeah, we'll…
00:10:31
spencer:Well, I'll get another test release out,
00:10:34
spencer:By the end of today, with…
00:10:37
spencer:these spec changes, I'll make it very clear what the changes are.
00:10:41
spencer:And then hopefully that can be the final…
00:10:44
spencer:DevNote-free set of spec… spec and tests, or at least the spec, I mean, we might add more tests,
00:10:51
spencer:But yeah, and then I think… For DevNet4, we can…
00:10:56
spencer:add, any other spec changes, so I think, in the… 8037 channel,
00:11:03
spencer:Yeah, there has been some discussion going on about,
00:11:07
spencer:Other spec changes, but those can be in… The next step now.
00:11:14
Stefan Starflinger:I'd also like to add, that now all clients work pretty well just with themselves in the network, so only Geth, only Nimbus EL, and so on.
00:11:26
Stefan Starflinger:But if I add a guest to any of the networks with any of the other clients, there is quite the disagreement, so it… I think it makes sense to do the small changes now, like you said, Spencer. We don't necessarily want clients to do work to…
00:11:44
Stefan Starflinger:Add code that's not gonna stay anyways, and if they're not, interrupt.
00:11:48
Stefan Starflinger:If there's no interrupt yet anyways, I think we can still make that change.
00:11:54
Stefan Starflinger:But I hope that we can still target Wednesday next week to launch, that would be the goal.
00:12:03
Maria Silva:Okay, and just so… so we are clear, so what issues would remain out of scope for, ball definet 3? So, which… which open questions or the bugs that were already reported would not be included in these small changes?
00:12:21
Stefan Starflinger:Like I said, from my side, the, thing, the change to the EIP, if the…
00:12:31
Stefan Starflinger:parent, frame, if, the state gets from the parent frame, if that gets, returned or not.
00:12:39
Stefan Starflinger:And I think this change is something we should discuss here, but I don't think it will make it into the DevNet.
00:12:46
Stefan Starflinger:So, regarding the accounting, clients should…
00:12:50
Stefan Starflinger:Return from child frames, to the parent frame if there is a failure, but the parent frame, that state guy should not be returned for the definite.
00:13:02
Maria Silva:Okay, but then that would be a situation where…
00:13:05
Maria Silva:So, clients would have to change… Indefinite for their…
00:13:11
Maria Silva:Their codebase to then have that fix.
00:13:19
Stefan Starflinger:If we decide to do that, maybe we will find a reason why this is not a good idea.
00:13:28
Maria Silva:Godragon, do you want to comment on this?
00:13:31
Dragan Rakita:Yeah, I would like to say there's, like, two discussions. First one is if this is correct behavior.
00:13:42
Dragan Rakita:In general, we should… it makes sense to unify behaviors between the subcalls and the main topmost call.
00:13:50
Dragan Rakita:And second is, discussion is, should we include this inside the Devon tree?
00:13:56
Dragan Rakita:For dentistry, I think we should skip it, just like…
00:14:00
Dragan Rakita:things true, it's basically already have branch reside red, that basically make… reverts disk change.
00:14:07
Dragan Rakita:So, I would say that for the definite tree, we are fine to not include it.
00:14:12
Dragan Rakita:Just wanted to say there is, like, two discussions that we should have.
00:14:17
Maria Silva:Right, right, makes sense. So…
00:14:19
Maria Silva:So maybe we can just focus on now for the DevNet 3, and then we can open the discussion on the correctness. Okay, so…
00:14:27
Maria Silva:seems like we are all in agreement, so just doing some small changes that wouldn't have a big impact on clients, and I'm guessing Red would have to undo that logic for the…
00:14:42
Maria Silva:reservoir… Refill on the topmost frame.
00:14:48
Dragan Rakita:Just addition to mention, this is one of the three issues that I think
00:14:55
Dragan Rakita:are affecting dignitary. One… the second one is…
00:15:04
Dragan Rakita:When the init code limit is checked, the state… it's about static call, check.
00:15:15
Dragan Rakita:It is done after the state gas is consumed.
00:15:18
Dragan Rakita:So this is the second issue?
00:15:21
Dragan Rakita:And the third issue is… When there is…
00:15:28
Dragan Rakita:At the topmost call, if there is create that fails on the init code check.
00:15:37
Dragan Rakita:The state gas for the… for…
00:15:41
Dragan Rakita:State gas is still consumed for the… state gas is returned to the topmost frame.
00:15:49
Dragan Rakita:And it… it shouldn't, because it failed.
00:15:54
Dragan Rakita:In the end, the gas limit… the gas used should be the gas limit, but it is lower than that.
00:16:03
Dragan Rakita:This is one of the two tests that…
00:16:06
Dragan Rakita:We are not passing. That's, like, the third issue.
00:16:10
Maria Silva:Sorry, do you think you can explain issues 2 and 3 again? Because I didn't fully follow it.
00:16:16
Dragan Rakita:Issue… Issue 2 is basically when you do create, there is static call check.
00:16:22
Dragan Rakita:And that statical check is done after the state gas is consumed.
00:16:29
Dragan Rakita:This means on the creator, create two opcodes.
00:16:34
Dragan Rakita:If it is called in the static call context.
00:16:39
Dragan Rakita:It will still consume the state gas, and it probably shouldn't.
00:16:45
Maria Silva:Okay, and this is the… so the current spec is like that, and it's something we would have to fix.
00:16:53
Dragan Rakita:that's specified in spec at all. I think that's just a bug in the spec code.
00:16:58
Dragan Rakita:It's not specified in the IP.
00:17:02
Dragan Rakita:But I think the spec has a bug there.
00:17:07
Maria Silva:And I'm sorry, Spencer, you are saying this is one of the things that would be fixed in the release you are doing today, or not?
00:17:15
spencer:Yeah, I was… I was going to add it, because it's a… I mean, it's a simple change.
00:17:19
spencer:For us, it was just a spec change, the tests are there.
00:17:23
spencer:And, the tests just need refilled with a small change.
00:17:27
spencer:If, that works for everyone.
00:17:35
Maria Silva:Okay, so this one, essentially, clients may have to do some updates on their code, but it would already be included in Abol DevNet 3. Okay, and the sec… and the third issue, Dragon, can you go over it again?
00:17:50
Dragan Rakita:I don't know full details, but what I noticed in the tests is
00:17:56
Dragan Rakita:There is one test with gas limit of 60 million.
00:18:01
Dragan Rakita:And that test inside calls create and create2UPCODE.
00:18:07
Dragan Rakita:Those create and create duop codes fail on init code track.
00:18:12
Dragan Rakita:So the init code is more than the maximum.
00:18:15
Dragan Rakita:And I would expect For full gas limit to be consumed.
00:18:21
Dragan Rakita:But on the test, it is consuming
00:18:24
Dragan Rakita:Something like 50 million and something.
00:18:28
Dragan Rakita:The difference is, like, 100… 100,000 gas.
00:18:39
Maria Silva:Okay, Ben, do you have a comment here, or is it at a different point?
00:18:44
Ben Adams:Yeah, on the… Sorry, it's… it's not about…
00:18:47
Ben Adams:Situation 3. That fills Situation 1.
00:18:51
Ben Adams:Do we have a test to confirm the… Opposite
00:18:55
Ben Adams:If that makes sense. So that we have consensus.
00:19:00
Ben Adams:A test to ensure consensus.
00:19:04
Dragan Rakita:Oh yeah, when that change is made inside the code, a lot of tests is going to fail.
00:19:10
Dragan Rakita:Not a lot, but, like, 10 to 20.
00:19:19
spencer:Yeah, I'm not… I'm not sure if we have a test.
00:19:22
spencer:But I can… I can check. I think, just in general, I,
00:19:29
spencer:The changes to the spec and the tests?
00:19:33
spencer:I… I'm going to try and align… so…
00:19:36
spencer:I'd say the issues are coming up because,
00:19:39
spencer:within the eel spec, I've added… I've added things that have not been defined in the actual
00:19:46
spencer:So it's kind of like a spec issue that shouldn't really be there.
00:19:50
spencer:So I think the changes are mostly just aligning the spec with the existing EIP's repo markdown file.
00:20:00
spencer:And so I… I guess I'm proposing that any Any change that requires
00:20:06
spencer:The changes to the EIPs repo should be… moved to… Devnet 4?
00:20:16
spencer:And… the changes on our end where our spec doesn't align with the EIP's markdown.
00:20:28
Dragan Rakita:To comment on that, I, I…
00:20:32
Dragan Rakita:did one implementation of AT37, and the things that I found, basically, is when I started running tests.
00:20:39
Dragan Rakita:And I saw that my implementation doesn't… it's, like, different than the test assumed. And when I started the debugging test, I found that there is, like, inconsistencies.
00:20:49
Dragan Rakita:So, I'm not sure… because the spec was kind… the AIP wording was kind of ambiguous.
00:20:58
Dragan Rakita:On some of those… on some of those, like, terms, so I, like, interpreted it in a different way than the spec code.
00:21:06
Dragan Rakita:So I don't see it as the spec being wrong here, but spec being… Sorry.
00:21:14
Dragan Rakita:I was confused back in AIP. AIP having wrong wording, but it…
00:21:20
Dragan Rakita:In a sense, they need clarification, too, so we are sure that Everything knows what exactly expected.
00:21:33
Dragan Rakita:But yeah, I think for the sake of the…
00:21:36
Dragan Rakita:Moving forward, we can move all this clarification into DevNet form.
00:21:45
Maria Silva:Okay, and sorry, on the issue 3 again, so this is something you are saying that currently is…
00:21:54
Maria Silva:breaking indefinite 3.
00:21:56
Maria Silva:And so, we will have to essentially investigate what is happening there.
00:22:01
Maria Silva:Is this something that only happens in breadth, or is it happening on other clients as well?
00:22:19
spencer:I think… I think it might only be Russ. I think,
00:22:25
spencer:Yeah, do you have the test?
00:22:31
Dragan Rakita:Let me find it, I'll be… I have turned somewhere.
00:22:41
Maria Silva:Okay, so maybe we can… Follow, this one async.
00:22:56
Maria Silva:maybe, so for DevNet 3, anything else we should discuss? I think, Ben, you raised the concern there, I don't know if you…
00:23:05
Maria Silva:Give a bit more thought on that.
00:23:09
Ben Adams:Yeah, so if there's changes we're delaying to DevNet 4,
00:23:14
Ben Adams:then the inverse test should be in DevNet 3, otherwise we'll have… the consensus will be a bit sloppy, and we'll have,
00:23:24
Ben Adams:People with different implementations.
00:23:30
Stefan Starflinger:I don't quite follow that, because if we make a change to the EIP, for example, and then that is added to the tests.
00:23:41
Stefan Starflinger:Then we don't need to test the inverse, because we're changing the existing test, right?
00:23:46
Stefan Starflinger:Or is it just the discrepancy between the EIP and the tests that currently exist, which you're referencing?
00:23:53
Ben Adams:Yeah, so if… if we're changing the EIP in DevNet 4,
00:23:59
Ben Adams:And we should be testing for the…
00:24:03
Ben Adams:the not-changed version in DevNet 3.
00:24:06
Ben Adams:Otherwise… You know, we'll have two clients that'll decide two different things.
00:24:13
Ben Adams:If it… if there was no test.
00:24:17
Maria Silva:Yeah, I would say I'm not sure if I fully agree, so I think this would be a case where we are just saying that we will not be testing that component. So, for instance, we are not doing any tests on the dynamic
00:24:32
Maria Silva:cost per byte in DevNet 3, right? So, at this point, like, we are not targeting the DevNet to cover
00:24:41
Maria Silva:all edge cases of this EIP.
00:24:44
Maria Silva:And so I think it…
00:24:47
Maria Silva:should be fine to have, like, meeting spots, then we address on DevNet 4.
00:24:53
Maria Silva:But I may be missing something, I don't know.
00:24:56
Maria Silva:Trakhan, do you have a comment there?
00:24:59
Dragan Rakita:And the spec code…
00:25:02
Dragan Rakita:get changed. The tests generated by that new spec code are going to be changed.
00:25:09
Dragan Rakita:So, tests are already covering these cases.
00:25:13
Dragan Rakita:But the problem was that no…
00:25:17
Dragan Rakita:No client basically notices that this is not correct.
00:25:22
Dragan Rakita:I… I assume that we are a lot… a lot… that's one of discussions that I…
00:25:27
Dragan Rakita:basically, we started in the, in the Discord, and…
00:25:31
Dragan Rakita:on the Monday of code dev testing call. A lot of clients, I'm assuming, is basically using AI bots, and…
00:25:38
Dragan Rakita:Like, let's pass all the tests, and not checking should they pass that test or not.
00:25:47
Dragan Rakita:So there is, like, the tests are there, tests are covering those use cases.
00:25:52
Dragan Rakita:But because the spec code has bugs, They are basically…
00:26:00
Dragan Rakita:Outcome of those tests, basically, is wrong.
00:26:05
Dragan Rakita:So when we fix the…
00:26:08
Dragan Rakita:spec code, the test outcome is going to change, and we are testing… we are going to test the cases.
00:26:16
Dragan Rakita:I think all the tests that got failed on REVM is the way how I found those, like, changes that…
00:26:25
Dragan Rakita:And how I basically… Like, try to address them.
00:26:34
Maria Silva:Okay, sounds good. So, is there anything else for Ball Definite 3 that we need to discuss?
00:26:43
Stefan Starflinger:Yeah, I would like just to agree with what Dragon said, that…
00:26:49
Stefan Starflinger:I think it's good that clients really look at and challenge the IP itself, because I also found many points where the IP is, like, really not clear, and it's just as difficult for a client as for
00:27:04
Stefan Starflinger:the EALS implementation to really get that right, and anything that's unclear.
00:27:10
Stefan Starflinger:should be really fed back into the IEP to make it as clear as possible.
00:27:17
Stefan Starflinger:And there are just many discrepancies because it's just so unclear.
00:27:26
Maria Silva:Yeah, I think… I think that's… that's, that's a great point. So I… I would say maybe before we launch DevNet 4, we could maybe try to do, like, a full review on all the tests and the IP wording, and, make sure that,
00:27:43
Maria Silva:Everything is… is… is aligned and clarified.
00:27:51
Maria Silva:Cool. Anything else on DevNet 3?
00:27:59
spencer:Yeah, this, this sounds good to me. I think just… just want to say that I'll, I'll make it very clear what the spec changes are gonna be in the next release, and…
00:28:10
spencer:Yeah, I mean, maybe, if there's anything I'm missing in that release, just please, like, flag up quickly, or anything I've added that you think I shouldn't, also flag it up.
00:28:26
Maria Silva:Perfect, thank you, Spencer.
00:28:37
Maria Silva:Okay, so should we then move to the discussion of, state gas refill on failure cases?
00:28:48
Maria Silva:Maybe I'll just add, like, from,
00:28:53
Maria Silva:from a general, like, philosophy perspective, I think the…
00:29:00
Maria Silva:What to me makes the most sense is…
00:29:03
Maria Silva:State gas should… so, state gas covers the costs of growing states, and These specifically should be…
00:29:13
Maria Silva:The… the cost of… Actually, like, renting the space in the state database.
00:29:21
Maria Silva:And not the execution or I.O. costs of in-the-moment creating that… That state.
00:29:34
Maria Silva:whenever we are splitting up the costs of each operation in state gas and regular gas, the general principle is always the burst resources, so the in-the-moment execution costs and I.O. costs go to regular gas.
00:29:50
Maria Silva:And state gas is only…
00:29:52
Maria Silva:the cost of state growth, so, like, paying the rent for using space in Ethereum's state DB.
00:30:00
Maria Silva:And, in that sense, I think a guiding principle should always be that you only pay for it if you are actually using that space, right? If you are not using that space, then
00:30:14
Maria Silva:you shouldn't pay for it. And I think this kind of, like, touches a lot of the edge cases where we kind of discuss, like, should the state gas be refunded or not?
00:30:26
Maria Silva:My… my view is that, from a general point of view, it should always be refunded.
00:30:31
Maria Silva:But I think this then enters into conflict with some behavior that we currently have in the EVM. So, for instance, the… the…
00:30:43
Maria Silva:Gaz's new account, where… it kind of…
00:30:47
Maria Silva:only tries to cover the state growth cost, because the in-the-moment I.O. cost is covered by a other parameter.
00:30:57
Maria Silva:But it's still not being refunded when… when there's a failure, so we would actually be changing
00:31:05
Maria Silva:a behavior in the EVM. Although, I would argue it seems like the correct behavior, but we need to be really careful and make sure that we are not missing anything here. But so, but this is, like, my general…
00:31:18
Maria Silva:frame when I'm thinking about this, but yeah, happy to also hear your thoughts. Johan, do you want to go next?
00:31:27
jochem-brouwer:Yes, one question on this, because I agree that from, like, a, like, how we would view these gas costs, it would make a lot of sense to refund this state cash in case that you are not creating a new account. But then we also have this similar situation for the storage keys.
00:31:47
jochem-brouwer:If you create a new storage slot, then we have the same situation, right?
00:31:52
Maria Silva:Right, I'd say, yes.
00:31:54
jochem-brouwer:Okay, okay, interesting.
00:31:57
jochem-brouwer:Yeah, I think… I think… I think…
00:32:01
jochem-brouwer:If we would apply this all in a,
00:32:04
jochem-brouwer:how do you say this? Like, in the same way for both accounts and stores, I think that makes sense.
00:32:13
jochem-brouwer:Then the refunds, these are, like, the normal refunds which get, applied after the transaction, right? Then you get back your gas.
00:32:22
Ben Adams:But… They're not normal refunds, are they? They're just… you didn't use.
00:32:28
Maria Silva:No, so I think, like, on accounts, the KZs, the account doesn't exist, and you are creating a new account, and then things fail.
00:32:37
Maria Silva:on S-Tor, is a bit simpler. I think Dragon made a comment on this in the channel as well, so it's… it's only the case where you go from 0 to X,
00:32:50
Maria Silva:And then something happens, and something fails. Or you go from 0 to X, and then to 0 again.
00:33:00
Maria Silva:Before the transaction, the slot didn't exist there.
00:33:05
Maria Silva:it never occupied space in the DB, and so you shouldn't be charged for state CAS. But in the case where, at the beginning of the transaction, there was something there, so there was X,
00:33:16
Maria Silva:and you are clearing the slot, then this… nothing changes here. So you just do the normal refunds, as we are doing right now, and it has the 20%, cap.
00:33:34
Maria Silva:In this case, this transaction would never have paid for state gas anyways.
00:33:44
jochem-brouwer:Yes, so the situation I was thinking about is, like, creating a storage slot, so not deleting a storage slot, but creating one, and then applying the same logic as creating an account to creating this storage slot, because that would… that makes sense, I think.
00:34:01
Maria Silva:Yeah, so I think… I think if we… if we end up doing it for the accounts, it would also make sense to do it for the… for the storage slots to make everything consistent.
00:34:11
Maria Silva:And it should apply, like, on… I think on the top post level, and also the call level.
00:34:19
Maria Silva:But again, I think the… the big point here is we are changing how the guys…
00:34:29
Maria Silva:costs, work. So this is not just going from one dimension to two dimensions, we are actually changing the behavior, and so we need to make sure that we are not opening ourselves up for any new, weird actors there. So in… yeah, again, like, in general, it makes sense, but then there's the question of
00:34:48
Maria Silva:We want to make… The change now, and can we think of any other issues?
00:34:53
Maria Silva:so yeah, I don't know if there are more, thoughts on these.
00:35:02
Dragan Rakita:I have you basically started with self-destruct, and it was, like, we already have, like… we already know that account is locally created, so self-destruct locally created account, we could, like, refund part of the gas that we know that's not going to be spent on creating an account.
00:35:19
Dragan Rakita:Yeah, it can be, like… the same behavior can be, like, applied to the storage, so it makes sense.
00:35:25
Dragan Rakita:I like that we have a reservoir when we don't, like, reimburse the ordinary gas, we are putting it in reservoir, so the…
00:35:36
Dragan Rakita:The main path of how the gas is used and how it's consumed still just stays the same.
00:35:41
Dragan Rakita:So, because of that, I'm slightly confident there are not going to be edge cases that we don't know about.
00:35:47
Dragan Rakita:But yeah, I agree with Maria that we need… we should think about it.
00:35:53
Dragan Rakita:It doesn't make sense to add these, but, thinking about education is always time-consuming, and we need… yeah.
00:36:01
Dragan Rakita:To be sure that everything is okay.
00:36:09
Maria Silva:Cool, are there more… more comments on these?
00:36:28
Maria Silva:Okay, so it seems like we…
00:36:31
Maria Silva:will likely not, have a decision on this call. I think this maybe would need more eyes.
00:36:41
Maria Silva:So maybe a next step here is, like, maybe…
00:36:45
Maria Silva:we can all agree that this will be up for DevNet 4, so we won't, won't, change, or test this in the, in the current, DevNet. And in the meantime, we should probably have a better view on this. So on this point, I can…
00:37:04
Maria Silva:maybe start the discussion on the ethmos…
00:37:07
Maria Silva:on the, magician's, thread,
00:37:13
Maria Silva:And maybe list all the options, and try to be as thorough as possible. And then I'll also ask you all to take a look and chime in.
00:37:26
Maria Silva:Does that sound good?
00:37:38
Maria Silva:Okay, so, on that note, is there anything else we should… we should discuss?
00:38:10
Maria Silva:Okay, so if not, we can wrap up early. Yeah, as I said at the beginning, it was likely, like, a shorter… a shorter call. Thank you all for joining, and yeah, anything else, we can chat to sync in the… in the channel.
00:38:33
jochem-brouwer:Thank you, bye-bye.

Chat Logs

00:08:04
Maria Silva:https://github.com/ethereum/pm/issues/2000
00:15:17
Ben Adams:Do we have test to confirm the opposite?
00:16:27
spencer:For 2 I have a PR now: https://github.com/ethereum/execution-specs/pull/2608
00:20:42
FLCL:The simplest for an EL would be to have spec tests that if we make em all green will mean all 3 cases are covered for devnet-3 and everything is correct
00:22:43
Ben Adams:My concern is if the tests aren't convering the inverse of the changes for devnet-4 then consensus will be a bit sloppy?
00:23:10
Dragan Rakita:Here it is: https://discord.com/channels/1359927674746835211/1487027709803761796/1487090434713976873
00:24:58
FLCL:Just to be sure not-testing will not lead to devnet forking
00:26:46
jochem-brouwer:Which client fills tests now? Is it EELS by default?
00:26:59
spencer:Replying to "Which client fills..." Yeah!
00:27:33
Dragan Rakita:It is nasty EIP with a lot of edge cases
00:29:11
jochem-brouwer:Yup =) And also not being 100% spec ready yet means we are in the uncomfortable position where we cannot write a spec-compliant implementation, and this also means we cannot write a test suite which has 100% coverage. Because everything which is not yet specced is a grey area. So it is a collective effort for us all to polish the tests and the EIP spec 😄👍
00:29:12
Dragan Rakita:Is someone want to look, this is diff for devnet-3 for first two issue that revm has: https://github.com/bluealloy/revm/pull/3519 (Still missing third issue)
00:32:14
Stefan Starflinger:refund: https://github.com/ethereum/EIPs/pull/11476 don’t refund: https://github.com/ethereum/EIPs/pull/11468
00:36:29
spencer:EELS spec is aligned with "dont refund"^^ currently
00:36:42
Dragan Rakita:Replying to "EELS spec is aligned..." Yeah, this is new mechanism

Summary

10 highlights · 3 action itemsExperimental

testing progress

  • Ball DevNet 3 launch delayed for spec alignment; client consensus issues resolved00:08:11
  • All clients work individually; Geth causes disagreement when mixed with others00:11:26
  • Spencer releasing updated spec today with small fixes; targeting Wednesday launch00:16:30

repricing updates

  • EIP-8037 spec has discrepancies between execution-specs and EIPs repo markdown00:09:14
  • Static call check bug: state gas consumed before check, should fail earlier00:14:35
  • Init code limit failure incorrectly returns state gas to topmost frame00:17:40
  • State gas refill on failure postponed to DevNet 4 for thorough review00:28:37

organizational

  • Parent frame state gas refund change excluded from DevNet 3 scope00:12:50
  • Spec changes limited to aligning execution-specs with EIPs repo; no markdown updates00:19:15
  • Clients using AI bots passing tests without validating correctness—review needed00:27:11

Decisions

  • DevNet 3 scope limited to spec alignment; no EIPs repo markdown changes included00:20:10
  • State gas refund on account/storage failures deferred to DevNet 4 discussion00:32:14
  • If accounts get state gas refunds, storage slots must follow same pattern00:34:11

Action Items

  • Spencer: Release updated EIP-8037 spec and tests with alignment fixes by end of day00:16:42
  • All teams: Full review of EIP-8037 tests and wording before DevNet 4 launch00:26:46
  • Maria Silva: Start eth-magicians discussion on state gas refill philosophy and edge cases00:37:04

Targets

  • Wednesday next week - Ball DevNet 3 launch (post-spec updates)00:12:01