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

AllCoreDevs - Testing #073

2026-03-09 Agenda: #1956 canonical JSON

Transcript

00:03:26
danceratopz:Alright, good morning, everyone. Welcome to ACDT number 73. It's the March 9th of 2026.
00:03:36
danceratopz:I will just drop the agenda in the chat for everyone to have a look at.
00:03:40
danceratopz:And we've got a lot of DevNets running, or about to launch, so I think that'll take up a lot of time today. Let's get to it.
00:03:50
danceratopz:First off, the status of blob DevNet Zero.
00:03:56
danceratopz:Would someone like to speak up about that, who has a bit more context?
00:04:03
Parithosh Jayanthi:That should usually be Barnabus, but he's out today. Last I've heard, there hasn't been any particular change, so I would say it's roughly the same as last week.
00:04:14
Parithosh Jayanthi:I know that he was looking a bit into bottlenecks with higher blob counts, but I think we have an agenda item later to talk about, engine API and SLZ.
00:04:26
danceratopz:Yeah, thanks a lot, Perry. That would actually be more or less now, if we want to talk about it now, if someone would like to add a… I know that Barnabas did a bit of benchmarking.
00:04:35
danceratopz:If someone else would like to pick that up, there was quite a bit of discussion in Ethereum R&D on this.
00:04:47
Stefan Starflinger:I mean, just to summarize the issue, so there has been tracing, like, OTEL tracing.
00:04:55
Stefan Starflinger:OpenTelemetry added to the clients, and then Barnabas looked at the bottlenecks, and he saw that
00:05:01
Stefan Starflinger:Serializing is quite the bottleneck.
00:05:05
Stefan Starflinger:And since we want to switch to SSC anyways, it would make sense to
00:05:10
Stefan Starflinger:have that as a way to communicate between the EO and CO.
00:05:15
Stefan Starflinger:And that's kind of the proposal. And through the capabilities, it's not really a breaking thing, just if the clients support it, then they can, basically use that, otherwise fall back.
00:05:27
Stefan Starflinger:And that's kind of necessary to scale it further. That's kind of the context of the PR.
00:05:36
danceratopz:Awesome. Thanks a lot, Stefan.
00:05:40
danceratopz:I guess this would be a decision that would be deferred to ACDE or ACDC? Would any client teams like to speak up to this suggestion and strongly oppose it, or welcome it?
00:06:03
Giulio:I have been doing some work on this over the weekend. I actually… I just… I… this is not, of course, this is a discussion for ACD, so I'm not gonna take time too much, but I did implement the spec for…
00:06:21
Giulio:Prysm, Lodestar, Lighthouse, Teku, Erigon, Nethermind, and Geth?
00:06:26
Giulio:I also run some benchmark… some benchmarks through Kurtosis.
00:06:30
Giulio:It works. It can do… it can be done very easily in,
00:06:36
Giulio:It can be done very easily.
00:06:38
Giulio:Optionally, so… yeah, I just wanted to give this quick update. I'm gonna present it maybe more on ACD, but it's basically
00:06:47
Giulio:done… I mean, it's not done, but there is already… there are already a lot of… there is already a proof of concept, and probably if you want to test it on blobdevNet0, you can take one of my PRs from one CL and one EL, and then just yellow it there, and you should see if that helps or not.
00:07:09
danceratopz:Awesome, thanks a lot for that, Julose.
00:07:11
danceratopz:I think that's really helpful, to help make a decision.
00:07:16
Parithosh Jayanthi:The proposal was also do it as an optional thing, right? So, worst case, we can roll it out asynchronously, and whichever clients have it implemented, it would be used, otherwise it doesn't.
00:07:27
Giulio:So, the way it works is that when you send a request to anywhere via HTTP or via the web, you can put your content type that you expect in the header. So, if you put the application JSON, what happens is that you're going to be redirected to JSON RPC,
00:07:46
Giulio:This is all execution layer side, right? So if the engine API, if the layer puts that JSON RPC, it will be routed to the JSON RPC. If not, it will be… if it puts Octream, it will be redirected to a REST full API,
00:08:04
Giulio:So that's why it's optional. So the CL can, you know, can test if there is the… if there is…
00:08:10
Giulio:the CSS support by seeing if it doesn't get an error, if he puts OctetStream, and then he can, you know, he can decide himself where to go by default.
00:08:20
Giulio:You know, maybe at the beginning, of course, since this will require maybe Hive tests to be adapted, you will have it basically disabled, even in CL, and be enablable by a flag.
00:08:31
Giulio:But, yeah, I think it's, you know, but…
00:08:33
Giulio:But it is optional. It's very easy to make it optional, and it's already optional as I already implemented them.
00:08:48
danceratopz:I think we'll leave that there, perhaps, to be taken up for further discussion, another call.
00:08:57
danceratopz:The only other topic we had there was… there was some,
00:09:01
danceratopz:issues on E69, but I think it was just some mainnet peers sneaking in. I don't think… I don't know if anyone wants to say anything to that. I think the problem's solved. Would there be any other topics for Blob DevNet Zero that anyone wants to talk about today?
00:09:25
danceratopz:Thanks a lot, Gilo and Parry, for the context. Moving on to Glamsterdam.
00:09:31
danceratopz:Bavnet, sorry, BAL DevNet2 is still, running, and I think Stefan just posted, in the issue below.
00:09:41
danceratopz:That you'd like to, hi.
00:09:46
Stefan Starflinger:I can go over… I can go over it, if you would like. So basically, I got around to adding some more nodes. These nodes won't have any validators attached to them, they're just different configurations with the prefetch enabled, sequential, or with all of the valid optimizations enabled, I've now rolled that out on DevNet2
00:10:11
Stefan Starflinger:just get and Bezo, so we can capture some benchmarks. I will update also the Grafana dashboard with these nodes. They're currently still syncing, and that will give us some insights. I'm not sure how long I will be running them, but we will have a little bit of data for
00:10:28
Stefan Starflinger:how good the optimizations are, and I think DevNet2 also has a
00:10:33
Stefan Starflinger:decent state by now. I mean, it's not mainnet, but it's something since we've been spamming continuously on the network.
00:10:41
Stefan Starflinger:Since it started.
00:10:44
Stefan Starflinger:But otherwise, I think, regarding nodes, it's going pretty smoothly so far. Just one issue with the Bezu tracing that is already being looked at.
00:10:56
Stefan Starflinger:And Erigon, hasn't, given an update regarding, their progress on DevNet 2. I think they switched over, focusing on DevNet 3.
00:11:06
Stefan Starflinger:about Definite 3.
00:11:08
Stefan Starflinger:But I think that's all from…
00:11:10
Stefan Starflinger:a definite tool, and I think we can…
00:11:13
Stefan Starflinger:If it's okay if anyone else has something to say for Definite 2, otherwise we can move on to Definite 3.
00:11:26
Stefan Starflinger:Okay, then, for Definite 3, we've been doing a lot of, local testing and kurtosis, trying to, find any inconsistencies with the spec or, with the different implementations.
00:11:43
Stefan Starflinger:So it's still an ongoing, process, especially for 837. These gas changes also kind of make it difficult, for…
00:11:56
Stefan Starflinger:the ball, because quickly there are consensus issues with the blocker access list and gas accounting, so that makes it a little bit harder, but it would be good if we could get an update from the clients regarding the progress.
00:12:15
Stefan Starflinger:on, about definite 3.
00:12:17
Stefan Starflinger:Maybe we can start with, Geth?
00:12:35
danceratopz:I see your PR got merged, Stefan. Does anyone from the call want to… from Geth want to speak up to that?
00:12:44
danceratopz:Looks like Marius merged the fix.
00:12:55
danceratopz:Okay, if not, shall we move on to Besu?
00:13:01
Daniel Lehrner (Besu):I… I can give an update. So with the latest spec test, 5.3…
00:13:09
Daniel Lehrner (Besu):We have, 7 filling tests.
00:13:13
Daniel Lehrner (Besu):Two of them are false positives, where BESU recognizes the block as invalid, which is expected. We just returned the wrong error message, so I need to…
00:13:26
Daniel Lehrner (Besu):to make a PR for the execution specs to fix that.
00:13:30
Daniel Lehrner (Besu):The other 5 were 8037 differences between the 5.2 test and the 5.3.
00:13:39
Daniel Lehrner (Besu):I have been fixing them this morning. I think it should work now, so…
00:13:45
Daniel Lehrner (Besu):If everything is correct, I think we should pass all the tests, but I need to… I need to double-check. As I said, except maybe for some false positives, but for the consensus-specific stuff.
00:13:57
Daniel Lehrner (Besu):It should be… it should be correct.
00:14:02
danceratopz:Thank you, Daniel. Just for context,
00:14:08
danceratopz:Ben detected some gaps in AT37 coverage, created an issue, and added some tests himself, and Spencer added a few more tests, for AT37, which resulted in another execution specs release, 5.3, which was released, like, late on Friday.
00:14:26
danceratopz:And just a heads up that that release, includes all the tests filled.
00:14:32
danceratopz:Well, it includes Osaka, but it actually includes, all forks. So not just Amsterdam.
00:14:41
danceratopz:So yeah, then, if you see any, issues with the tests, please ping us in the Discord and let us know what needs to be changed.
00:14:56
danceratopz:Then… Stefan, you also found an issue in Nimbus that…
00:15:02
danceratopz:PR also seems to be merged.
00:15:05
Stefan Starflinger:Yes, we're making some…
00:15:08
Stefan Starflinger:some small progress, but I've also been testing with all the clients with a basic payload of creating a large contract and EVM fuzzing, and those networks don't seem very healthy yet, so there are still a lot of things to uncover.
00:15:25
Stefan Starflinger:That, I'm also working on, and would be great if, client teams
00:15:30
Stefan Starflinger:Can, run kurtosis locally to see
00:15:34
Stefan Starflinger:If they can find some issues as well, still. I updated the Kurtosis configuration in the spec sheet.
00:15:40
Stefan Starflinger:To the latest one, and also updated the Ethereum Genesis generator to include the Nethermind, Timestamps.
00:15:50
Stefan Starflinger:But I think, is there anyone from Reth, that could give an update as well?
00:15:58
Stefan Starflinger:That would be great.
00:16:00
Emma:We've got Dragon working on 8.37, I think most of the changes are there, it's just, like, testing and some fixes, but otherwise, I think, on the Reth side, we're passing all the tests, so…
00:16:13
Emma:I think we're looking good.
00:16:18
Stefan Starflinger:Okay, another mind, a quick update, that'll be great.
00:16:27
Ben Adams:Yeah, we have all the features implemented, we're planning some tests at the moment.
00:16:34
Ben Adams:And the BALS optimizations we're thinking, will come a bit later.
00:16:43
Stefan Starflinger:Okay, great. I think then we're making pretty good progress. It's mostly about ironing out all the…
00:16:50
Stefan Starflinger:small issues with gas accounting that basically straight away result in consensus issues because of buzz.
00:17:02
Stefan Starflinger:Is there anything we missed on DevNet3?
00:17:10
danceratopz:Do you have a feeling, Stefan… sorry, do we… do you have a feeling, Stefan, for when we could potentially launch? Is there any, date?
00:17:23
Stefan Starflinger:I think Marius just raised his hand, but regarding the deadline, I'll try to get it for Wednesday, again. Let's get it working well.
00:17:35
Marius van der Wijden:Yeah, so, we just sat in a call for, like.
00:17:39
Marius van der Wijden:an hour, and I think they said for two more hours before that. Looking over the 1837 changes, it's…
00:17:48
Marius van der Wijden:like, the stuff that we have is partly implemented by me, which are the good parts, of course, and half of it is implemented by AI, and it's just so garbage that we basically have to, yeah, sit down and redo a lot of these.
00:18:10
Marius van der Wijden:I suspect we will not be able to finish, or I will not be able to finish that by 2.
00:18:18
Marius van der Wijden:by, by Wednesday.
00:18:20
Marius van der Wijden:The… yeah, the version we have right now, it has a…
00:18:30
Marius van der Wijden:still not passing a bunch of test cases, like a thousand, but, yeah, might be able to participate on the network, except for, yeah, if there are any transactions on it, basically. No, if there are, if there are,
00:18:50
Marius van der Wijden:complex, interactions.
00:18:52
Marius van der Wijden:So, yeah, I've tried to do my best to, to get there, but, yeah, it's not super easy.
00:19:00
Marius van der Wijden:And, yeah, the whole… logic of 1837 is also…
00:19:09
Marius van der Wijden:It's… yeah, it's… it's just not super nice, and it…
00:19:15
Marius van der Wijden:Every time I think more about it, I…
00:19:18
Marius van der Wijden:I want to change stuff, but then I think more about it, and I don't want to change them anymore, and so it's… yeah.
00:19:24
Marius van der Wijden:It's not an easy process.
00:19:31
Stefan Starflinger:So, yeah, it's hard to say what the deadline will be. I think we're… we'll make…
00:19:38
Stefan Starflinger:some more progress until Wednesday, and I think then, we can see, and maybe… Have some more specifics.
00:19:48
Ben Adams:Yeah, just to follow up on that, the implementation for us has been, like, an extremely deep change that, like, has tendrils that affect everything.
00:19:58
Ben Adams:And so we don't like it from that respect.
00:20:03
Ben Adams:But then, from the… from another aspect.
00:20:07
Ben Adams:Don't really think of anything.
00:20:16
Ben Adams:is what it is, I suppose.
00:20:23
danceratopz:Okay, alright, thanks.
00:20:24
danceratopz:for the additional context, Marius and Ben, I think Wednesday does seem a bit ambitious. As always, I think
00:20:32
danceratopz:we can lean on Highview and the test results to see how clients are doing, this week.
00:20:38
danceratopz:And obviously, Stefan's amazing ketosis testing as well.
00:20:44
danceratopz:To see if it reveals some more gaps in coverage.
00:20:52
danceratopz:Is there anything else anyone would like to discuss for BAL DevNet 3? Or we… can we wrap that up now?
00:21:00
Toni Wahrstätter:Maybe, maybe just a quick question, regarding the PAL optimizations.
00:21:05
Toni Wahrstätter:So Geth and Basil have been ready already with the parallel I.O. I wanted to quickly get a feeling how far other clients are with regards to the parallel I.O. optimization. I think I saw in the chat
00:21:19
Toni Wahrstätter:that, was it Ben or Lukash? Someone mentioned that Nethermind is… It's getting there.
00:21:26
Toni Wahrstätter:Very soon, so I'm wondering, is that already, like, Definite Free ready?
00:21:31
Toni Wahrstätter:And also hearing from other clients, like Erigon and Rap, how far they are with regards to the hardware.
00:21:37
Łukasz Rozmej:So, parallel transaction processing is almost ready, and we are experimenting with parallel I.O, but our current experimentations are not really netting any major benefit, and almost any benefit, to be honest, so…
00:21:55
Łukasz Rozmej:But we are not sure, maybe we still will.
00:22:00
Łukasz Rozmej:Managed to get something.
00:22:06
Ben Adams:Yeah, we're more focused on correctness than optimization at this stage, I think.
00:22:15
Toni Wahrstätter:Makes sense, yeah, thanks a lot for the update.
00:22:18
Toni Wahrstätter:Is there also someone from REF that could quickly… I guess Dragon is not on the call, but is there someone else who has insights into parallel I.O. on REF?
00:22:30
Emma:We've got the batch I.O. work in a PR.
00:22:44
Łukasz Rozmej:Does it give you any… mmm… benefit?
00:22:48
Emma:Oh, no, we're just doing pure implementation at this point, no optimizations.
00:22:52
Łukasz Rozmej:But I mean, have you benchmarked it? Does it give you any benefit?
00:22:56
Łukasz Rozmej:No, we haven't been to it. Okay.
00:23:00
Emma:But I can do that today and report back.
00:23:03
Toni Wahrstätter:Awesome, thanks a lot for the update. Yeah, and we have some tests prepared, some in the… it's in the…
00:23:09
Toni Wahrstätter:In the testing repo.
00:23:11
Toni Wahrstätter:There are some tests specifically written for benchmarking.
00:23:14
Toni Wahrstätter:That could be used, I can, I can post them into the Discord, so we could.
00:23:20
Toni Wahrstätter:Catch up async.
00:23:29
danceratopz:Awesome. Thanks a lot, Tony and everyone, for chiming in there.
00:23:34
danceratopz:I'm thinking that's it for about DevNet 3?
00:23:39
danceratopz:moving to the CL, Would someone like to give an update on the ePPS DevNet?
00:23:53
Parithosh Jayanthi:Yeah, so EPBS DevNet Zero launched last week, and we had a couple of early issues.
00:24:00
Parithosh Jayanthi:Portos has a write-up on his blog as to what the issues were.
00:24:07
Parithosh Jayanthi:I've linked it over here. But besides that, we aren't particularly testing or stressing the network, it's just making sure that the nodes are up-to-date and rolling out patches from clients.
00:24:18
Parithosh Jayanthi:I guess more serious testing would kind of happen on EPBS DevNet 1.
00:24:28
danceratopz:Thanks, Perry. I think POTUS wanted to talk about forcing the EL to trigger block production on older heads.
00:24:35
danceratopz:And the issue of PTC lookout.
00:24:38
danceratopz:POTUS, would you like to speak up on those topics?
00:24:42
Potuz:Yeah, so one is sort of, like, mandatory, and the other one, we need to make a decision what… how to deal with. So the first one is on the EL side. Today, there's, on the engine API,
00:24:54
Potuz:There is a May that I think needs to become a must.
00:24:58
Potuz:Which is the fact that when we send a four-choice updated message to the EL for a previous head.
00:25:05
Potuz:then the EL just ignores it and gives us a payload… an empty payload ID.
00:25:10
Potuz:But on EPBS, the problem is that we actually might have an honest reorg on the CL
00:25:15
Potuz:That, does a four-choice update to a previous head on the current branch.
00:25:21
Potuz:So I… currently, because of the issues that, well, we have, like, partial fork choice in the DevNet, this is actually being triggered on Prysm essentially every few blocks.
00:25:36
Potuz:And yes, so, well, that's the comment. I need input from the EL. Marius already replied something, but then that sort of died on Discord. I need to know from the EL if this is hard, if this is trivial, if we can have it soon, so that we can actually start testing, these kind of things.
00:25:55
Łukasz Rozmej:And alleles work like that?
00:26:01
Potuz:All the else, as far as I know, give us an empty payload ID if I give you an FCU to a previous head.
00:26:09
Potuz:At least every time that we test, the EL gives us an empty payload ID,
00:26:14
Potuz:they ignore an FCU to a previous head.
00:26:17
Potuz:And they don't trigger blood production. When I do an FCU for an old head, And that breaks CPBS.
00:26:29
Marius van der Wijden:Yeah, the program.
00:26:29
stokes:thing, or… Like, do you think it'll get better with multiple choice progress?
00:26:36
Potuz:No, no, no, I mean, this has to be the case. I mean, a reorg… I might reorg to empty, like…
00:26:42
Potuz:there's an honest behavior, which is voting for the empty block, and in that case, the CL needs to reorg.
00:26:50
Potuz:Right. A current head, and it needs to be able to produce a blog on top of a previous head.
00:27:00
Potuz:The thing that is triggering this… I mean, this shouldn't happen on production, on mainnet, regularly, right? So we want to continue building on full, but the problem is that Lighthouse and Lodestar are voting for empty everywhere.
00:27:13
Potuz:And they, they outweight us, and so we take this as a signal that we need to reorder the payload, and we try to build on empty, but then when we try to build on empty, the EL just grabs an app on us, and we get reordered.
00:27:32
danceratopz:Marius, did you want to add something?
00:27:36
Marius van der Wijden:Yes, so… The problem is that we, the spec does not allow FCU
00:27:45
Marius van der Wijden:To, a… a parent of…
00:27:50
Marius van der Wijden:little block, because that basically means we are reorging back the chain. The payload production is a different service.
00:28:12
Marius van der Wijden:To allow… Dude…
00:28:24
Potuz:Yeah, it's… I can't hear Marius.
00:28:26
Łukasz Rozmej:Yeah, we cannot hear anything.
00:28:34
Marius van der Wijden:Goddammit.
00:28:37
Marius van der Wijden:Good Lord.
00:28:41
Marius van der Wijden:Okay, different…
00:28:45
Łukasz Rozmej:Might be the internet.
00:28:57
danceratopz:Okay, we'll see if Marius can resolve his connection issues. Are there any other EL devs that would like to speak up to this in the meantime?
00:29:06
Łukasz Rozmej:Yeah, I'm taking a look, and I explicitly see this in our codebase, that yes, if we have,
00:29:15
Łukasz Rozmej:Fork choice to a…
00:29:18
Łukasz Rozmej:payload that is on the same chain as the current head, we ignore it, so… not sure what should we do, and how's the specification.
00:29:31
Marius van der Wijden:Yes, this was part of the spec. I hope you can hear me better now. I'm in a different Wi-Fi. Hopefully, I will get better internet soon. So, the problem is that we are forbidding these reorging the
00:29:47
Marius van der Wijden:reorging the same chain. What we could allow is, if you specify older, if you specify the new FOC choice.
00:29:58
Marius van der Wijden:but older payload parameters that we are building, these older blocks for you. We could do that, or we could allow for reorging the chain. But I think there was an issue with reorging the chain, why we specified it this way, but I'm not sure.
00:30:17
Łukasz Rozmej:I will add interesting… context in our…
00:30:23
Łukasz Rozmej:HiCore plugin, we actually have this feature disabled, so you can reorg to all the train.
00:30:29
Łukasz Rozmej:Which is interesting.
00:30:31
Łukasz Rozmej:But it's not in the mainnet implementation.
00:30:48
danceratopz:Okay, it seems like this topic will need to be followed up on.
00:30:54
Potuz:I just want to stress something that… I mean, it's not a matter of something that might be optional. There are reorgs on the EL that will happen where we roll back the chain.
00:31:09
Potuz:And that… that will be the head. Even if no block is produced.
00:31:13
Potuz:We are going to call the yel, saying, you just need to roll back your head.
00:31:20
Marius van der Wijden:Yeah, this is so horrible, UX. I… I… I know that this…
00:31:26
Marius van der Wijden:the way it's going to work now, but this is so horrible to UX, because we are telling the users that, hey, this is the new head, oh no, actually, the previous head is the new head. Or actually, no, we have now another sidechain that is the new head.
00:31:42
Potuz:But isn't that the way that it works now?
00:31:45
Marius van der Wijden:Yes, but it never happens.
00:31:46
Potuz:Is this behavior when you reorg a block?
00:31:48
Marius van der Wijden:Yes, but reorgs never happened.
00:31:51
Marius van der Wijden:And it seems that with.
00:31:54
Potuz:Yeah, reorgs will never happen on mainnet either, but we need to deal with them.
00:31:59
Marius van der Wijden:Okay, okay, then, then it's fine. Like, we can just prepare a branch that removes this check.
00:32:05
Marius van der Wijden:For… for Bell DevNet 1, or 0, or wherever you guys are at. I think that is… that is not a problem. Like, I can do that right now.
00:32:23
danceratopz:Okay, are there any other young, client devs who would like to speak up to that, or…
00:32:32
danceratopz:Does this discussion need to be taken in more detail elsewhere?
00:32:40
danceratopz:BOTUS, are you happy with the comments you've received?
00:32:45
Potuz:Yeah, definitely. If we just have an implementation that we can test, that'll allow us to test for choice. I mean, we don't expect to see many of these kind of reorgs, but we need to deal with them, and we need to test our for choice, so we need to have a branch that does this.
00:33:05
Potuz:no rush at all. We are not going to test for choice until two DevNets from now, so there's no problem at all not having this behavior now. We're not thinking on testing these things, even on DevNet 1.
00:33:19
Ben Adams:Is it… is it purely a testing thing, or would it need to… We expect change for me.
00:33:26
Potuz:It happens that we reorder blocks on mainnet. It will happen that we will reorder payloads on mainnet, which is done…
00:33:33
Potuz:We don't want to see it regularly, as they just don't happen today regularly. But it does happen that we have reorgs on mainnet.
00:33:50
danceratopz:All right, POTUS, when's the next EPBS breakout?
00:33:56
Potuz:We don't have breakouts since we have this meeting.
00:34:00
danceratopz:Okay, good. But I think the message was pretty clear. Thank you.
00:34:05
danceratopz:Did you want to talk about the PTC look-ahead as well?
00:34:11
Potuz:Yeah, this is an issue that Nico found, which… which is, yeah, it's a flaw in our spec. We…
00:34:18
Potuz:We need to… PTC attestations are sent during one slot.
00:34:24
Potuz:And then they are included in the next slot's block, and they are validated when we process those… that block.
00:34:31
Potuz:The problem is that, the PTC committee is computed with the balances of the given state.
00:34:39
Potuz:And that means that if you attested being on the PTC on slot 31,
00:34:45
Potuz:And your attestation got included in slot 32.
00:34:49
Potuz:you are validating the block that included that PTC attestation, and you're looking at the effective balances
00:34:56
Potuz:Of the current slot, which is 32, it's in a different epoch.
00:35:00
Potuz:And those are… that may have changed the PTC, the full committee. So an attestation that was included in the blog, because it was violent then, might just become invalid now.
00:35:13
Potuz:And to deal with this, we have a few options. I opened the most naive of the possible PRs, which is including
00:35:21
Potuz:a sort of like a look behind. We just cache
00:35:25
Potuz:the full PTC committee for the current epoch, well, the previous epoch and the current epoch on the beacon state.
00:35:33
Potuz:It is mostly useless, because this only happens at that particular slot. It's just one slot that is needed.
00:35:41
Potuz:Clients, anyway, seem to cache the full epoch to have duties, so it seems… on a first run, it seems that clients don't mind this.
00:35:52
Potuz:But I don't know. I wanted to have a small discussion, at least on what are the options, or what people prefer.
00:35:58
Potuz:I really have no strong opinion on the topic.
00:36:01
Potuz:Perhaps Nico is here, who found the topic, if you can just say something.
00:36:10
nflaig:Yeah, so I'm not sure what's the cleanest spec design here, but as for Loadstar, we currently cache the current and previous epoch, so for us, it wouldn't be extra memory usage. Also, I think it's the equivalent of
00:36:25
nflaig:I think 64 validators or something, so it's pretty small memory-wise.
00:36:40
Potuz:Yeah, so the current PR, I think it's 256 kilobytes per state that is added.
00:36:50
stokes:Does the spec right now say…
00:36:52
stokes:Like, I'm sure, like, the spec is correct, right? In terms of who you validate when and where?
00:36:56
Potuz:No, no, the spec is incorrect, actually. The spec, the specs… I mean, it's clear on whom you need to validate, but the problem is that, some.
00:37:07
Potuz:It's valid in the previous epoch is not valid in the current epoch.
00:37:13
stokes:So it's… it's using the wrong state at that point in time.
00:37:21
stokes:then yeah, we should fix the spec. But I think what you suggested makes sense. Yeah, like, I don't think we need to be more invasive, have some cash explicit in the state.
00:37:31
stokes:Clients can just cache it locally.
00:37:35
stokes:But I should just be clear, yeah, who you want to validate against.
00:37:41
Potuz:The cache is actually quite trivial. We are… it turns out that Prysm is not caching the full epoch. Prysm is only caching the committee and computing slot by slot, but moving to the full epoch is trivial for us, so it's fine.
00:37:59
stokes:Do you have a link to the PR?
00:38:24
Justin Traglia:To be clear, this solution that you guys just talked about, would that mean not adding anything to the state?
00:38:30
Justin Traglia:Like, caching it in the clients outside of the state.
00:38:36
Potuz:No, no, no, this needs to be added somewhere. It needs to be clear what is the state that you're validating with, so…
00:38:41
Potuz:the PR caches it in the state.
00:38:46
Justin Traglia:256 kilobytes is kind of a lot to be added to the state each.
00:38:51
Justin Traglia:Is it a slaughter epoch?
00:38:56
stokes:I think it's each epoch, but yeah, why can't it just say, you know, use the state?
00:39:01
stokes:In this case, I have the last slide.
00:39:04
stokes:Like, you just should just use the state that corresponds to the validators you're.
00:39:08
Potuz:Well, the state transition function is a function that takes one state, one block, and recovers a new state.
00:39:14
Potuz:If you… change the signature, that's a much deeper change. You're gonna be saying now, take two states.
00:39:22
stokes:Yeah, but we're seeing…
00:39:30
stokes:Yeah, I don't know… Is there nowhere else we don't do this?
00:39:36
Potuz:Yeah, there's no… no, no, this is… there's no way we're doing this, and… and even… we tried, like, milder changes before, of having one state and two blocks, like, to use the previous block as part of a state transition function, and…
00:39:51
Potuz:Danny almost kills us, and forced us to, like, cache… whenever we are in this kind of situation, we add an extra cache to the state. That's why we have headers, and we have a bunch of stuff in the states that we could just easily take from the previous block.
00:40:09
Justin Traglia:I think I'd prefer a solution that just adds the least amount of data to the state, whatever that is.
00:40:26
Potuz:So there is a solution that only adds, So, two committees?
00:40:34
Potuz:a thousand, indices, so it's 8 kilobytes, I think.
00:40:42
Potuz:But then that forces clients to be, like, updating this
00:40:47
Potuz:So, to keeping the cache in memory, and then updating this state every slot. I can open that PR if you want. It's easy to open.
00:40:58
Potuz:I don't know what CL clients would think it's… I mean, there's a trade-off of complexity versus, like, having the space in the state or not.
00:41:07
Justin Traglia:Yeah, I would hold off on adding a PR for that. I think we should just continue discussing this more.
00:41:18
Potuz:This one is a little bit more urgent than the previous one, because we do want to test PTC attestations, and we suspect that if we send PTC attestations now on DevNet0, we're gonna split. So I think that's the last thing we're gonna do. When we tested all of the existing structure.
00:41:34
Potuz:we are going to say, well, okay, so now we're fine by splitting, let's just send PTC attestations and see if we actually split, or everyone implemented the same kind of sort of cache.
00:41:45
Justin Traglia:Got it, yeah, let's make a decision on this, this week, and I can also…
00:41:50
Justin Traglia:make a SPAC release with this change as well.
00:41:59
danceratopz:Thanks a lot, Justin.
00:42:03
danceratopz:I think we can continue that conversation async. Just in case you missed it, POTUS, Mario's already pushed a fix to the, GEF branch, the fix for reorgan to parents in the child wealth.
00:42:17
danceratopz:Is there anything else that we'd like to discuss on the ePBS DevNet before moving on?
00:42:27
Potuz:Can we quickly, like, decide parties here of what sort of, like, things we can…
00:42:32
Potuz:We can send, or… or it's fine if we just, like, comment on the chat.
00:42:38
Potuz:We want to, like, stress now EPBS.net zero. We can probably kill it by… but we can… we should, like, test
00:42:45
Potuz:I don't know, withdrawals and these kind of things. So for this, we just need to make sure that all… that we have clients that can handle, or that
00:42:53
Potuz:Think that they can handle, and what structures they can handle.
00:42:58
Parithosh Jayanthi:Can we make a thread on EPBS, and then we can have a list of things, and we'll take care of it.
00:43:05
Potuz:I'm sorry, Barry, I didn't hear you.
00:43:07
Parithosh Jayanthi:Can we make a list on the ETH R&D EPBS channel? And then, once we have a list, we can just go through it one by one? I'd rather first test it out locally before just breaking the live network.
00:43:21
Justin Traglia:Maybe it'd be nice to get some verbal,
00:43:25
Justin Traglia:Discussion on this really quickly, though? Like, what can clients not do? Is there anything?
00:43:31
Justin Traglia:I don't know. I kind of agree with Botus that it might be nice to talk about.
00:43:42
Parithosh Jayanthi:Yeah, maybe withdrawals is the easiest first one. Is there any client that can handle withdrawals on EPPS DevNet Zero right now?
00:43:53
Potuz:Well… Withdrawals will happen once we have, Yeah, I don't know.
00:44:03
Potuz:We need to… so withdrawal request, you mean, right?
00:44:12
Potuz:I think we should be able to ha- to handle them. Not sure. We can try.
00:44:21
Parithosh Jayanthi:Okay, we can create a local test and then share the outcome.
00:44:30
Parithosh Jayanthi:I would assume it's the same for deposits, blobs, transaction load, everything, so we can just try one test locally with everything and see what breaks?
00:44:41
Potuz:Right, so I'd like to try,
00:44:44
Potuz:Current structures that exist, whether or not we can continue to handle them, handling them.
00:44:50
Potuz:Especially if there is a missed slot, or a reorg of a payload.
00:44:57
Potuz:So, now the depth net is perfect, because there aren't that many missed lots. So… So it's good.
00:45:03
Parithosh Jayanthi:Yeah. Yeah, what we can probably do is Asserta can turn on and off block production, and then we can trigger missed slots via that, and then make sure that the network's still fine.
00:45:14
Parithosh Jayanthi:Yeah, I'll set up a test for it.
00:45:20
Justin Traglia:When you say builder deposits, or sorry, when you say deposits, does that include builder deposits?
00:45:25
Potuz:No, no, no, just the usual structures that exist now, and then once we know that we can handle those, like normal deposits, then we can just start dealing with builder deposits.
00:45:35
Potuz:I think that should be easy.
00:45:38
Potuz:And after that, we can just kill everything with BTC attestations, or trying to reorder just payloads. Like, we can start, like, withholding payloads, and these kind of things, and see if people, like, reorder the full block, or just build on empty.
00:45:56
Potuz:And then I'm sure we're gonna kill the devnet. I'm sure we're gonna be split then, but that's fine.
00:46:13
Justin Traglia:Okay, we'll continue discussing this on the ETHRNG Discord.
00:46:38
Justin Traglia:Dan, are you there?
00:46:41
danceratopz:Yeah, sorry, everyone. I had a bit of a sound problem for a minute, but I think I'm back now. I could hear you, Justin. Sorry about that. I lost the last minute of whatever was said or not said.
00:46:55
danceratopz:So, I have one short… in my agenda, I mentioned that Teco and Nimbus are not running on the DevNet. Is that… is that not true? Are all clients running on the DevNets at the moment?
00:47:10
Potuz:Techo and Nimbus are not running.
00:47:13
Potuz:But, Stefan, I don't know if Stefan is here, but Stefan said that he might be able to hack a branch to sync.
00:47:20
Stefan Bratanov:So if we, if we start…
00:47:22
Potuz:from Genesis, I think, both work, but syncing is a problem, or checkpoint syncing is a problem.
00:47:28
Stefan Bratanov:Yeah, I'm working on it at the moment, but haven't done it yet.
00:47:39
danceratopz:I was just wondering whether, it's time to up the ante on testing on the DevNet when some client teams haven't joined yet, but…
00:47:48
danceratopz:I'll let you, decide that based on local testing, if that's how you're gonna move forward.
00:48:01
danceratopz:Are there any other topics for EPS DevNet Zero before we move on?
00:48:14
danceratopz:Then, Tony brought up on the agenda
00:48:20
danceratopz:he wanted to talk about a networking protocol change for Snap 2. Tony, would you like to speak to that?
00:48:28
Toni Wahrstätter:Yes, I will be quick with that one. Gary and me have,
00:48:33
Toni Wahrstätter:began inspecting SNAP2, which is, SNAP protocol using block access list.
00:48:39
Toni Wahrstätter:It's an early draft, so I would love to have more eyes on it.
00:48:44
Toni Wahrstätter:Basically, instead of, using getTryNotes, it will use the block level access list to…
00:48:49
Toni Wahrstätter:do the healing phase in SnapSync. That's kind of the TLDR.
00:48:55
Toni Wahrstätter:More to become.
00:48:58
Toni Wahrstätter:But would be great to get some feedback on it.
00:49:23
danceratopz:Sorry, yeah, thanks a lot, Tony. Tony just dropped the link in the chat if anyone wants to provide feedback.
00:49:31
danceratopz:And I think Joachim's question moves on to the next agenda point, so if, just quickly.
00:49:38
danceratopz:If anyone would like to mention something now about SNAP2, please speak up. Otherwise, we'll move on to EV70, EV71.
00:49:52
danceratopz:So, Tony had another agenda point for ETH71.
00:49:57
danceratopz:To clarify the response size cap, would you like to say something to that?
00:50:03
Toni Wahrstätter:Yeah, this was, this was a mistake I made, so I was just, thinking of the 10MB limit, which we had in EVE70 with the receipts, but, thanks to Besu, who pointed out on EVE Magicians, that GEF is using, for example, GEF is using a 2MB softcap.
00:50:22
Toni Wahrstätter:And EVE71 for block cloud access lists now also have… has the same soft cap of 2MB. So this was a…
00:50:31
Toni Wahrstätter:Very recent change I just did today, just as a heads up.
00:50:38
danceratopz:Awesome. Thanks a lot for the information, Tony.
00:50:42
danceratopz:Is there anything to discuss for EV70?
00:50:46
danceratopz:Does anyone have context on this?
00:50:50
danceratopz:Is this blocking anyone?
00:50:59
danceratopz:Okay. If no one… Has anything to say there?
00:51:04
danceratopz:then I would move on to…
00:51:08
danceratopz:Benchmarking and state bloat, in particular performance DevNet 3.
00:51:15
danceratopz:Would someone like to give an update on the Perf DevNet 3?
00:51:22
Louis:I can give a quick update. So, for the blotting process, we already completed blotting for EOA account and ERC20. We have a smaller size ERC20 that targeted, necessary benchmark.
00:51:39
Louis:And, we have an updated version of a related benchmark, including account access benchmark and Storage Operation Related Benchmark.
00:51:50
Louis:And we're now moving forward to generate the payload using guest benchmark tools from Nita and my team.
00:51:57
Louis:And collecting the data using Benchmarker.
00:52:01
Louis:On the agenda, I see there's some questions regarding the snapshot management. I'm not entirely sure about the details.
00:52:11
Louis:I see Johong on the call, maybe Johong could chime in for more details?
00:52:18
jochem-brouwer:Yeah, so on the… can everyone hear?
00:52:24
jochem-brouwer:Oh, great, great. So, on the DevNet, well, to take a snapshot, you of course have to have a synced client.
00:52:33
jochem-brouwer:As of now, we have, the clients Rev, Nethermind, Besu, and Kev.
00:52:39
jochem-brouwer:Here we go as a problem, but the plan is, if it is synced, then we will take another snapshot, and we will use that snapshot for the snapshot item.
00:52:57
danceratopz:Alright, thank you for the updates.
00:53:02
danceratopz:Lewis, did you want to add any other… did you have any other questions for client teams regarding…
00:53:11
Louis:Adding note from my side. Thank you.
00:53:18
jochem-brouwer:Yes, one more point. So we are currently targeting the benchmarks for the repricing.
00:53:25
jochem-brouwer:But, I will also ask, to start learning the block-level access list benchmarks.
00:53:34
jochem-brouwer:benchmarks for that already. I think they are not merged yet, but I will focus on that this week to get these merged, and to also add additional benchmarks to also target the block level access lists.
00:53:45
jochem-brouwer:I think we will target the Perth DevNet, because then we can also focus on the state.
00:53:51
jochem-brouwer:To see what the impact is on the block access list there. So, also building clients with the block access list optimizations and without them to see the,
00:54:01
jochem-brouwer:Well, what they optimize and what the impact of these is.
00:54:09
danceratopz:Awesome, thank you, Joachim.
00:54:12
danceratopz:Is our all client synced to the DevNet now?
00:54:20
jochem-brouwer:No. Is there still some points missing?
00:54:22
jochem-brouwer:Here we go, it's not fixed, but I see on Discord that there is a fix ready.
00:54:29
jochem-brouwer:Except that it needs a resync, so this
00:54:33
jochem-brouwer:is going to take some time, but this is not a blocker for the benchmarks, we will bring them on the synced clients, and we will try to get everyone synced, and to also add those to the benchmarks.
00:54:45
jochem-brouwer:And one of the reasons, just to add this, is that the, well, not the reason, but one of the causes is that only DevNet, we really, well, we raise, like, the gas limit by a lot, and this stresses the clients, of course, and, well, this might run into unforeseen issues.
00:55:03
jochem-brouwer:Like, I'm not going to speculate, but one of these things are, like, out-of-memory issues where,
00:55:09
jochem-brouwer:well, there's, like, a lot of state changes happening, and these state changes are all loaded into memory, and this causes an out-of-memory. And this, of course, only a thing which happens if you, like, raise the guesstimate by a lot, and then start to spam this network with a lot of these bugs.
00:55:24
jochem-brouwer:But it's, I think, still nice to see… to find these kind of bugs and to fix these now. So we are basically ready for, like, a 5-giga-gas network based on these kind of stats, yeah.
00:55:39
jochem-brouwer:But I'm not saying we should move to 5G, I guess, on mainnet, of course, yeah.
00:55:45
danceratopz:Awesome, thanks a lot for the clarification, Joachim.
00:55:50
danceratopz:All right, any other topics for Perf DevNet 3, or for… Other benchmarking topics in total?
00:56:04
danceratopz:There's, of course, an informal gaslighting committee meeting tomorrow, if client teams wants to join.
00:56:11
danceratopz:Just drop a line to Lewis.
00:56:14
danceratopz:Or Maria, or Jocham?
00:56:21
danceratopz:Any other topics on benchmarking or stay below?
00:56:30
danceratopz:So, we're very close to the end of agenda. The only other topic
00:56:36
danceratopz:that I would, that I added to the agenda was basically there was some discussion about the ACDT cadence, and whether we should reduce this. I think…
00:56:50
danceratopz:I would just say, given the amount of discussion we have on this call at the moment, I think it's… it's merited to have it weekly.
00:56:58
danceratopz:But of course, it's… I understand that it's a diverse scope of topics, and that not all topics are directly relevant to a lot of people on the call.
00:57:07
danceratopz:I added the link to the thread in the ETH R&D Discord server thread.
00:57:14
danceratopz:To the agenda, please chime in there, but if anyone wants to add quickly their two cents before we finish up for today.
00:57:22
danceratopz:Please feel free to speak up.
00:57:26
Parithosh Jayanthi:Yeah, maybe one thing I was thinking of was taking a call about next week's ACDT by roughly, like, Wednesday or Thursday.
00:57:35
Parithosh Jayanthi:If it feels like there's mostly just topics to discuss on one specific, feature, for example, if it's EPBS or whether it's block-level access list, then we could just defer the call to an EPBS breakout, so that the teams can go deeper into those, those niches.
00:57:54
Parithosh Jayanthi:Yeah, portal.
00:57:56
Potuz:I'd suggest that we have a call that doesn't have a topic, and whose topic is chosen every week. So, for example, now we could say,
00:58:05
Potuz:benchmarking this or that feature on block-level access list requires a discussion, let's just take that spot on Wednesday.
00:58:13
Potuz:So that that call actually is a technical call, and only is attended by people that know that they want to be there.
00:58:23
Potuz:No, Nick, so it's not really ACDT, because ACDT now has
00:58:28
Potuz:I don't know, 20, 30, 40 people talking about completely separate topics, and none of them actually gets to be discussed in detail.
00:58:36
Potuz:Well, at least none of the ones that I know about.
00:58:40
danceratopz:So, this suggestion would be similar to how ACD got split into the EL and the CL calls. We could do the same for ACDT and rotate.
00:58:50
Potuz:No, because that… that keeps them… that keeps them every week, already forced, everyone from ACDC to go there. What I say is.
00:58:58
Potuz:we have a topic, we decide now, today, or an ACD, or whatever, or even an async, we have this topic, let's cover it in that call. And let's just have a focused call that is a very technical call.
00:59:12
danceratopz:So just reserve the spot for breakouts, and define the breakout subject based on demand.
00:59:19
danceratopz:Okay, Tony, did you want to add something?
00:59:23
Toni Wahrstätter:Yes, we also wanted to stop doing the Brock Cloud Access List breakout calls, and move them to ACDT.
00:59:30
Toni Wahrstätter:So as of… as of today, we are still on Wednesday.
00:59:36
Toni Wahrstätter:Every two weeks is the Block Club Accessless breakout call, and every other week there is the repricing breakout call.
00:59:41
Toni Wahrstätter:And we could also use that spot, so I think that's basically what Podos said. For example, with all the benchmarking that is still needed and might still need a breakout call, we could move it to do it weekly, or have that new spot that the block of access list breakout call had to do other, breakout sessions.
01:00:07
danceratopz:Okay. All right, thanks a lot. Yep, sorry, did someone want to speak up?
01:00:13
Parithosh Jayanthi:Yeah, I think part of the issue might just be that it's a seasonal thing. Maybe right now, the better option is to seed ACD in terms of,
01:00:23
Parithosh Jayanthi:sorry, ACDT in terms of more breakout sessions, because it seems like there's more interest in diving deeper into topics rather than making quicker decisions. Maybe in two months, that's not the case anymore, and we just need to meet to make quicker decisions.
01:00:36
Parithosh Jayanthi:So yeah, we… Mario and I can maybe take a call on it on a weekly basis. If it feels like there's a lot of piled up decisions across different streams, we can say that we do ACDT, but on weeks that there aren't, then we can, cede to…
01:00:53
Parithosh Jayanthi:switch to a breakout format. Does that sound like a fair outcome?
01:01:10
danceratopz:Thank you, Perry. I think we can leave it there. Continue a discussion async, perhaps in that thread. Thanks, Justin, also for offering to help, that's awesome.
01:01:21
danceratopz:We're at the hour, so thanks a lot for everyone for coming.
01:01:25
danceratopz:And for your contributions, been a really good call.
01:01:28
danceratopz:Thanks a lot, see you next time.
01:01:37
Toni Wahrstätter:Thank you, bye-bye.

Chat Logs

00:03:35
danceratopz:https://github.com/ethereum/pm/issues/1956
00:04:43
Parithosh Jayanthi:https://github.com/ethereum/execution-apis/pull/764
00:05:09
Giulio:https://ethresear.ch/t/binary-ssz-transport-for-the-engine-api-an-initial-benchmark-on-a-live-network-with-kurtosis/24324
00:07:44
Łukasz Rozmej:not basically done -> in Nethermind it needs to be redone from scratch properly.
00:08:39
Łukasz Rozmej:Have we experimented with also using compression between EL<->CL?
00:08:49
FLCL:compression makes it slower
00:09:08
Parithosh Jayanthi:Also amount of data isn’t the issue right? Its just serializing/deserializing overhead
00:09:09
Giulio:yeah the best case is literally passing pointer to the data struct
00:09:34
Łukasz Rozmej:you mean shared memory or something?
00:10:05
Giulio:but that's for the future, shared memory beetwen processes is hacky
00:10:33
Łukasz Rozmej:it's quite simple, I've coded those in the past
00:10:48
Potuz:The best is not to pass anything
00:11:01
Potuz:not even a pointer, just a root to sign
00:11:02
Łukasz Rozmej:you can have simple messages for communication and shared memory for the payload
00:11:13
Ben Adams:Replying to "The best is not to p..." vibe validation
00:11:37
Giulio:some machine may run CL and EL on different machines
00:11:43
Potuz:Replying to "The best is not to p..." no, we don't need anything, and on notify_newPayload, we should pass the snappy we get
00:11:49
Łukasz Rozmej:yeah we need a fallback then
00:11:49
Potuz:Replying to "The best is not to p..." and you deal with it directly
00:11:54
Giulio:the best case is to pass pointer :)
00:12:03
Łukasz Rozmej:so it is only optional optimization
00:12:08
Maria Silva:Sorry if I missed it, but what is the status on BAL optimizations for the various clients?
00:12:15
Giulio:yeah like SSZ, we can do that in the future
00:12:23
Potuz:Replying to "The best is not to p..." requests are essentially the only thing we need
00:12:27
Potuz:Replying to "The best is not to p..." withdrawals could be just the hash
00:12:43
Giulio:I recall there was some feature for fast jsonrpc through shared memory but forgot about it
00:12:48
Łukasz Rozmej:Replying to "Sorry if I missed it..." still in progress on Nethermind side, sorry
00:13:01
Toni Wahrstätter:no updates,but Geth and Besu have been ready and devnet-2 is running with the optimizations enabled/disabled on different nodes
00:14:30
Stefan Starflinger:Replying to "Sorry if I missed it..." Ah yes I forgot to ask, reth has some flags updates otherewise nethermind and etherex we don't have any flags yet. Thanks for the update Lukasz
00:14:35
Łukasz Rozmej:just FYI the more we implemented 8037 the more we disliked it :(
00:14:42
Stefan Starflinger:Replying to "Sorry if I missed it..." https://notes.ethereum.org/@ethpandaops/bal-devnet-3 flags documented here
00:14:50
Dragan Rakita:Does it include refill of reservoir?
00:15:35
Łukasz Rozmej:Replying to "Does it include refi..." @Ben Adams?
00:15:36
Stefan Starflinger:https://notes.ethereum.org/@ethpandaops/bal-devnet-3
00:16:16
Dragan Rakita:Replying to "Does it include refi..." On revert/halt return child spent state_gas to reservoir.
00:16:21
Dragan Rakita:Replying to "Does it include refi..." Let me ping you in discord
00:16:27
Maria Silva:Replying to "just FYI the more we..." What are the messy parts? Anything we should take into the design and improve on?
00:16:38
Dragan Rakita:Replying to "Does it include refi..." https://discord.com/channels/595666850260713488/1476205965895536782/1476208158421549096
00:17:33
spencer:Replying to "Does it include re..." Yeah it does! It is up to date with EIPs repo now. This commit: https://github.com/ethereum/EIPs/pull/11328/changes/ec612217fd2fda7409369a98d160a929829cb66f
00:17:41
Ben Adams:Replying to "just FYI the more we..." Is a very deep change that effects everything
00:20:58
Stefan Starflinger:AI slob testing :D
00:21:15
Ben Adams:Replying to "just FYI the more we..." @Marius van der Wijden would be interested in what you'd change
00:21:27
felix (eest):Replying to "AI slob testing :D" 0-90% feels so nice with AI, but the last 10%..
00:21:33
spencer:Replying to "AI slob testing :D" Can we create an agent called slob?
00:23:55
felipe:I have some more BAL benchmark tests lined up that we should sync on @Toni Wahrstätter
00:24:03
Potuz:I'd like to discuss the two topics I added in the end to the agenda
00:24:08
Parithosh Jayanthi:https://www.potuz.net/posts/epbs-devnet-0/
00:24:58
Louis:Replying to "I have some more ben..." @Toni Wahrstätter @felipe https://github.com/jochem-brouwer/execution-specs/pull/1 This is for BAL benchmark by Felipe
00:25:14
Louis:Replying to "I have some more ben..." Sorry I’ve not yet reviewed it
00:25:33
Stefan Starflinger:Replying to "AI slob testing :D" Its very good when there are 1 or 2 things wrong, but when there are like 3+ things wrong its a real mess
00:26:47
Toni Wahrstätter:Replying to "I have some more ben..." Yeah def! That's the one focusing on parallel IO I meant: https://github.com/ethereum/execution-specs/pull/2033
00:28:18
Łukasz Rozmej:is Marius breaking up?
00:28:22
NC:Replying to "is Marius breaking u..." yes
00:28:24
felix (eest):german internet back at it again
00:31:21
Toni Wahrstätter:Replying to "I have some more BAL..." @felipe lmk how you want to proceed. My PR is still a draft but happy to convert it :)
00:37:45
Marius van der Wijden:Pushed a fix to our epbs-devnet-0 branch that allows for reorging to parents
00:37:57
Francesco:The current PR seems fine if clients are fine with the occasional last minute change for the first slot of the epoch
00:38:16
Justin Traglia:https://github.com/ethereum/consensus-specs/pull/4979
00:38:34
Ben Adams:Will we need the re-org behaviour spec'd somewhere? Since isn't allowed atm
00:39:15
Marius van der Wijden:Replying to "Will we need the re-..." Yes we should. I remember there were engine api tests that demanded this behavior
00:39:31
NC:We are adding 256kb to the state, but we really only 4kb (1 slot of PTC) of it. Is that right?
00:39:48
nflaig:Replying to "The current PR seems..." I think this is fine, we fetch duties at the start of the epoch and ptc duty is quite late in the slot, imo we don't really need 2 epoch lookahead
00:42:20
Potuz:I love you @Marius van der Wijden
00:44:25
Eitan Seri-Levi:I think LH might be able to handle them
00:48:19
Potuz:@Parithosh Jayanthi that's mostly a call for you, I suspect that deposits should not affect neither Teku's or Nimbus ability to catch up
00:48:44
Parithosh Jayanthi:Replying to "@Parithosh Jayanthi ..." Yeah I agree, I think its worth already breaking/finding out what’s broken in existing clients
00:49:04
Toni Wahrstätter:snap/2: https://github.com/nerolation/EIPs/blob/toni/snap-2/EIPS/eip-9999.md
00:49:22
jochem-brouwer:Does this remove the same msgs from eth/71?
00:50:46
jochem-brouwer:Antwoord verzenden naar "Does this remove t..." I will discuss this async
00:50:52
Potuz:@stokes want to discuss the honest reorg feature here in light of FCU changes?
00:51:28
Toni Wahrstätter:That's the PR for the eth/71 soft cap: https://github.com/ethereum/EIPs/pull/11387
00:54:33
Ameziane Hamlat:So the idea is to test the BAL optimisations on top of perf-devnet-3 (Bloat network) ?
00:55:43
Maria Silva:Replying to "So the idea is to te..." Yes, because we need bloatnet for the stageful repricings tests
00:55:52
Maria Silva:Replying to "So the idea is to te..." *stateful
00:55:58
Toni Wahrstätter:Replying to "So the idea is to te..." The pure exec optimizations (no state) can already be tested on devnet-2. For state related things we need to use a mainnet-state fork or bloatnet
00:56:33
Ansgar Dietrichs:I heard 5 Gigagas on mainnet? brb notifying stakers
00:57:24
Ameziane Hamlat:Replying to "So the idea is to te..." So we want to do the tests on one snapshot instead of having a snapshot of mainnet and another one of the bloat network
00:58:15
Ameziane Hamlat:Replying to "So the idea is to te..." I’m saying this because I don’t see the link between BAL and Bloat network
00:58:29
jochem-brouwer:Antwoord verzenden naar "isn’t that… acdt" acd-topic call? :)
00:59:16
Dragan Rakita:Can we do async reporting?
00:59:32
Potuz:yeah TBD is a good topic :)
01:00:49
Justin Traglia:I can help here too

Summary

24 highlights · 3 decisions · 2 action itemsExperimental

fusaka blob devnet 0

  • Engine API serialization bottleneck identified; SSZ transport proposal under review00:04:43
  • SSZ can be implemented optionally via content-type header routing00:06:10
  • Giulio implemented SSZ proof-of-concept for Prism/Lodester/Lighthouse/Teku/Aragon/Nethermind/Geth00:06:47

glamsterdam bal devnet 2

  • BAL DevNet2 running with prefetch/optimization benchmarking nodes added00:09:46
  • Aragon switching focus to DevNet3; Besu tracing issue under investigation00:11:06

glamsterdam bal devnet 3

  • EIP-8037 cross-client bug hunt ongoing; multiple consensus issues found00:11:42
  • Besu: 7 failing tests, 2 false positives; fixes in progress00:12:47
  • Marius: EIP-8037 implementation deeply complex; AI-generated code causing issues00:17:35
  • Ben/Nethermind: 8037 implementation has tendrils affecting everything; disliked from complexity standpoint00:19:57
  • Nethermind/Reth: parallel I/O not showing major benefits yet00:21:02

epbs devnet 0

  • ePBS forces EL to trigger block production on older heads; spec currently forbids00:24:49
  • Marius confirms horrible UX but accepts reorgs will happen; can prepare branch00:30:48
  • Marius pushed fix allowing reorging to parents on epbs-devnet-0 branch00:37:45
  • PTC lookahead issue: attestations valid in epoch N invalid in N+100:38:16
  • Proposed fix: cache 256KB of PTC committees in beacon state00:39:31
  • Decision on PTC fix needed this week before testing attestations00:41:24

testing infrastructure

  • Execution specs v5.3.0 released: expanded EIP-8037 coverage plus all Osaka tests00:14:26
  • Perf DevNet3: 50GB ERC20 complete, EOA bloating in progress00:50:46
  • Geth synced on perf-devnet-3; Reth/Nethermind/Besu sync issues being resolved00:52:49
  • 5 Gigagas testing revealing out-of-memory issues in some clients00:54:33

networking proposals

  • snap/2 draft: BAL-based state healing using block access lists00:48:19
  • eth/71 response size cap clarified: 2MB soft cap, not 10MB00:49:22

organizational

  • ACDT cadence discussion: proposal to rotate topics or convert to breakouts00:56:33
  • Proposal: Reserve ACDT slot for focused technical breakouts on-demand01:00:01

Decisions

  • SSZ engine API will be optional via content-type headers; deferred to ACD for final approval00:07:21
  • EL must support building on older heads for ePBS; spec will be updated00:31:05
  • ACDT cadence will be evaluated weekly; cede to breakouts when no cross-cutting topics01:00:49

Action Items

  • CL teams / Justin Traglia: Make decision on PTC committee caching approach this week00:41:20
  • Parithosh / DevOps: Test withdrawals, deposits, blobs on ePBS DevNet0 locally before live testing00:44:25

Targets

  • BAL DevNet3 launch: targeting March 11, pending client readiness00:17:31