All Core Devs - Consensus #124
All Core Devs - Consensus · 14 Dec 2023 · 36:24
Ethereum consensus client teams and researchers meet on the All Core Devs Consensus call to coordinate protocol upgrades. This call covers Deneb, with testing and devnet updates and block events in the beacon API.
Speakers
Topics
From All Core Devs - Consensus, hosted by Ethereum Foundation.
Transcript
[Music] [Applause]
h for
e time
J
Danny Ryan: okay we should be live welcome to all C dev's consensus layer call one24 this is issue 922 in the PM repo light schedule it seems but we shall see uh we'll quickly talk about denb status testing Etc a server side event being discussed uh for the block and I think how it changes INB and then open discussion from there let's go ahead and get started denb uh General testing and devet updates I think I saw new client
pair syncing
Barnabas Busa: yes uh so devet 12 is now onboarded all the different clients and all the different client combinations and we currently have prism thinking to the Head uh we didn't want to enable checkpoint thing for that because we wanted to go through a genis thing uh just to be able to make sure that genis thing still works uh we have uh enabled M for most of the different CLS except for prism at this point and uh everything seems to be on track
Danny Ryan: cool so um there's just one
instance of prism or was that many
Barnabas Busa: so this morning I have added all instances yesterday we added one with gu but now it's with all the different
a
Danny Ryan: cool and other than MB are we kind of putting the test not through the ringer is it moderately kind of just stable functionality right now
Parithosh Jayanthi: a little bit of stable functionality for now um there was this one Lighthouse bug with uh me for local payloads that's beenin fixed and just patched I think like an hour ago um besides that there seems to be an issue with um one bzu
node we're not particularly sure how it got to the state but um it's trying to convert an invalid block to a valid one um so maybe someone from bz can have a look at that one
Danny Ryan: what do you mean by convert
sorry as it question goad
Justin Florentine: no I was just agreeing with Danny that's a good question this is BAS Su team here I'd like to hear more
Barnabas Busa: uh we have put all the error messages in our chat
Justin Florentine: I've got those thank you
Parithosh Jayanthi: uh with tldr there was uh could not persist world for root hash for a
certain block and then I think B tried doing that like twice and then I guess the note restarted but at that point uh teu then says cannot change node validity from valid to invalid sorry from yeah from valid to invalid and then TECO get stuck as well
Barnabas Busa: we started another s in a totally different machine with the same uh pair also on arm and uh it passed by that uh block so it might be just some corrupted DP element
Parithosh Jayanthi: yeah could be that's why we're still not sure how we got that node into that state
Barnabas Busa: um we used to have blobber running on it and Lighthouse
validator so it's a bit different than what you would normally have
Danny Ryan: are we purposely sending bad blocks or not
Parithosh Jayanthi: uh not yet we need an updated uh B we don't have one yet
Barnabas Busa: is anyone from prison can confirm that we should be good to go with the shadow Fork
Terence Tsao: yeah we can try it we the only thing I did not test is the Builder path for the proposal but given that there's not much change since the last um since
the last commit I think we should be fine there but do let me know if you see an issue at the same time I I will also monitor the setup
Danny Ryan: yeah Terence it might be nice to have some color on you know is this prism sying and but needs a lot of work or is this like prism getting close to what youall feel like is stable and you know might need some iteration but isn't
Terence Tsao: wait I'm sorry um is there a sinking issue
or no
Danny Ryan: no sorry I just meant like prism the the thing that we currently have on testnet is that like prism is working but there's a lot of kind of
productionizing doesn't need
Terence Tsao: yeah yeah no so right now we're missing the only thing we're missing is basically bad feeling blob and some and then more verification check on the on the sinking path the sinking to head but other than that it's pretty production nice
Danny Ryan: yeah cool any other questions or discussion points on the devnet any other testing related
discussion points
Mario Vega: I haven't run the hi uh test for prison but I will do as soon as possible and just report but I think we can go ahead and prepare for the shell Fork if I find anything I will res it immediately
Danny Ryan: cool yeah anything testing a devet related other than
okay uh dline did raise two points it looks like the former is merge which is
adding proposer slashing and a tester slashing to the server side event um so D line we don't need to discuss that right
dapplion: yeah first point issue 376 it's close so I think that's fine if there is any objection just do on the pr itself so let's go for Point number two yeah cool issue 349 this was originally raised by paros so the context here is them and we're not sure if other consumers are using the SSE events for timing data they and we are aware that this is not ideal but that's the best
they can do at the moment when we add blocks to the mix if the event is emitted after importing that means waiting for all the blobs so now the data would be heavily distorted so the discussion is around should we change the event definition such that it is emitted after CIP validation or at some timing data or if anyone else wants to provide any other option for timing data via server sen events that's the context
H yeah okay
Danny Ryan: just to clarify when we add blobs the point at which we would admit
this event might be delayed even more because where the dependencies on the network and so it deviates further from when you actually receive the block on Gossip which is a valuable piece of information
dapplion: exactly so okay I can I can W up the discussion so far I think what what seems the easiest option is to emit the event after full import but attach a new property where it's a seene timestamp at where each client has perceived the
event it's not incredibly important for that definition of scene to be uniform across implementations because um at least you have the Bops they do correlation timings so as long as these timings are consistent within an implementation it's fine and this seems to satisfy all concerns
Danny Ryan: okay the alternative that you originally suggested was two separate events rather than bundling the timing into the previous event
dapplion: yeah so we could have an event after goip validation a second event after full blog import
Danny Ryan: but you you think the additional field is the better path right
now
dapplion: with the current requirements I think yes because it's not clear who really wants this blog gossip event except people timing data and if they can just get it from this one event then it seems simpler but both options would work
Danny Ryan: right yeah enri we can barely hear you uh it sounds
Enrico Del Fante: sorry maybe now it's better yeah um yeah I was thinking that adding
the time stamp in the in the in the data itself would be better for two reason one is one is that well this event can be can be can be uh served well with low low priority so it doesn't mean that when you receive on the other hand on the other side the the event itself it is their correct timing and also adding another event that says this is when I received the gossip this is when I imported it maybe is just an overkill for the use case that we are thinking about so maybe it's just easier to leave things like our now just adding uh the um the arrival the arrival
attribute
Danny Ryan: and is it is um I know you said there can be a little bit of inflation detail on that the definition that time stamp but will it be defined as gossip validation conditions have been completed or is there ambiguity on whether they could be pre-os that well
Enrico Del Fante: currently we we take all so the the arrival before the gossip validation so it's more it's closer to the the real message arriving over the wire but I don't know other clients
Danny Ryan: real quick and then we'll go to Sean dine do you do you intend to
specify if that's pre- or post executing the gossip conditions like immediately upon wire or otherwise or do we not care
dapplion: I'm not sure I'm on the fence I think whatever is easier for implementation to be honest I think for this use case it doesn't matter but it would be good to specify it yes
Danny Ryan: Sean
Sean Anderson: uh so maybe I miss this but if we're thinking of just submitting an event when we import a block would we then like not get any indication about what happened to gossip blocks that we
didn't import like some a block that filed consensus somewhere or wasn't available maybe like that would be a reason to maybe have two events
dapplion: right that's that would be the point of having the second event um there has not been demand for that we can add it but it's like a a bit of a scope grip for this specific issue
Danny Ryan: you could also put a May Adit upon block failure at any point in the pipeline um or must I don't see how it prudes in a failed
book
dapplion: I would say this event carries the idea that this block has been fully validated if you break that assumption at least you should indicate that done stream somehow
Danny Ryan: Sean does does Lighthouse emit inv valid blocks right now
Sean Anderson: um I'd have to check I I think yeah I don't know if we if we do emit events on Gossip box then that would mean we would potentially be emitting events on invalid box but
dapplion: I'm pretty certain at least you guys me the event at the end of the import so definitely not right
Enrico Del Fante: I think T has has recently added
an option to also emit the event um before import I might be wrong but I remember something like that but this is an option that needs to be enabled otherwise by default is emitted uh afterwards
Danny Ryan: are there any further comments on that do we have enough information to keep moving um with maybe a suggested PR at this point
dapplion: in my my view it seems we
should first figure out if there is a use case for Consumer of events to learn about invalid blocks if that's the case then maybe we should consider the two events or extending the event in that way otherwise seems that we should go for the time stamp property anyone opposing
Danny Ryan: does does valid SL invalid or valid true false property also satisfy this use case in the event that we wanted to have that use case
dapplion: as long as so if if we have a single event with valid property and the the time stamp yes that satisfies the original
issue I think that's that's all from me
Danny Ryan: all right thank you all right cool Sean added a couple things let's do um that PR 3561 first Sean if you want to give a quick explanation
Sean Anderson: yeah sure so I just noticed the gossam conditions for Globs sort of lead to some uh I guess like unexpected uh
consequences um I don't think it's like negative or anything it's just if you were for example using the beacon API with the broadcast validation of Gossip um it might be unexpected what messages were valid and invalid and the reason for that is because technically it's okay to gossip two blobs with different blob indices that have slash headers associated with them um so you're allowed to gossip those but you're not allowed to gossip them if they the same blob index um so initially I was thinking maybe it'd be easier to just sort of
disallow gossiping of any block or blob message that's like quote unquote it's flashable um but then Danny brought up the point that we don't necessarily like elsewhere we don't look between different message types to try to like cross validate what should be sent so what we could also do is just think about this um like slash ability within any blob index that would make it make somewhat more sense um and then yasik also brought up the point of we could instead just allow propagation of Slash like block blob
messages because you're more likely to gossip to a node around a slasher in that case um and I think the final Point Danny brought up was we could sort of do like a hybrid thing where we're we propagate slash messages until like a slashing has been seen on Gossip um yeah that's that's the general tldrs
Danny Ryan: yeah my suggestion at the end is like you do want to reduce how you know how easily a message can be gossiped um you know from in to one hopefully uh
meaning like you want caches or something to make it difficult to send repeat you know in messages once you're willing to be slashed uh and so you know if you're instead monitoring for a slashing message in relation to the message then you know you can you can drop um and that can be either you created the slashing message if you have the faculty to do so or you've seen it because somebody else saw it and created message um what are the consequences of doing nothing here
Sean Anderson: I don't think there are
consequences I just personally found it confusing when I was like trying to implement the broadcast validation function in the beacon API you can is like you can have messages that are like you get messages to this end point with like all block blobs and the block so like that message can be slash but like you would still technically like publish all parts of it and return to2 so I thought that was weird but I don't think there's anything like uh any detriments apart from it being somewhat unexpected in my point of view I think my like personal preference I
guess would be to I don't think we have to make this these changes for Deb necessarily but uh at some point having like clear rules around how we should handle slashings and maybe allowing them to propagate further I think that'd be fetting
Danny Ryan: right I suppose there's also the option to upgrade this after DB launches with thinking about the analysis of does that put us at like Network partition risk if
someone's willing to spam SL messages um I guess my my preference would be if this is cure but leads to weird or confusing scenarios that we take a minute to think about how we want to do this kind of holistically uh rather than changing this back at this point but if it's insecure then I feel otherwise
Sean Anderson: yeah no I think that sounds good to me
Danny Ryan: okay I would propose maybe towards mid mid late January um if you or anyone else has like a a design they want to propose and
feel comfortable with um to pick it up then cool are there any other um further comments on this one before we move okay next up Sean uh I do not I don't want control message
Sean Anderson: yeah so I'm not super familiar with this change but I believe it can be used as like an optimization and gossip
to reduce the amplification factor I think it's because you can like tell modes not to send you a blocker app BL we've already seen for example um and I think both age and yasek have looked at this and then Anton uh raised it but I think we're waiting for consensus to merge it or and perhaps for it to be moved along a little bit more but I think it's something that's useful for DB and um people looking to implement it possible
Danny Ryan: yeah and this can also be kind
of upgraded transparently I believe I guess the problem here is if the P2P spec maintainers want it like bundled in a big one version one two um I guess even if it's merged sensitively we could potentially start using it uh and I believe if I remember correctly this helps more when they're large message sizes than smaller um meaning you're you're more likely to kind of reduce the amplification Factor if there's slower larger messages being sent around rather than tiny messages or maybe more like
attestations I feel like the assessment was that it wouldn't do much but it would do a lot for
for
Sean Anderson: I don't know enough to comment but I I think that is the case um on the pr it says this is reduces bandwidth by 30% seems pretty good
Danny Ryan: yeah I just left the comment that it looks good um I'll try to hit up vizo in a separate form as well um I mean at a certain point if we
want this we and we're blocked on Li PDD spec maintainers we're going to have to figure out a different path um so let's see if we can get this moved along in there and uh have the conversation on the next call if we cannot okay and M did Echo that it makes sense uh for large messages only thanks
Sean okay those are the only um items that we have on the agenda for today are there any other discussion points okay uh uh call schedule um next consensus layer call is in between Christmas and New Year's I will not be available I do not intend to host this call um I was thinking if there is demand for a call it could be labeled more of kind of like a testing and kind of devet check-in call if there's people that want to get on a call on that date um is there demand for
that let's see one heart emoji
Tim Beiko: we can also decide this so next week we should have uh award devs so on the 21st we can also decide this uh then um because this came up as well on the testing call Monday where the next testing call is on December 25th we're obviously going to cancel that so yeah I think if next week people feel like we should have something um yeah we we can make that a sort of combined call
Danny Ryan: very cool so if we do do something on that week it would be at the 2 pm UTC slot on Thursday um it would not be a a full all core devs but anyone that is working on dev Nets and
things on the holidays and wants to check in or or or chat about anything um we can make that decision in one week on whether we have haven't host that and even if uh the decision is no people can certainly jump on the Discord drop a call link or jump in some of the audio chats at that Okay cool so we will have acde in one week um and if there's any further things to figure out on calls we can do so then all right any other uh discussion
points for today great well uh talk to you all next week on acde and um you know enjoy the the end of the year take care
bye bye byebye thanks by
than
Speaker names adapted from ethereum/pm, CC BY-SA 3.0.