Will Corcoran:Thanks, everyone, for coming. This is Fast Confirmation Rule FCR breakout room number 4.
Transcript
Will Corcoran:We normally start with client updates.
Will Corcoran:I don't see any client devs on the call, please correct me if I'm wrong.
Will Corcoran:But Mikhail had a couple of spec changes that we were gonna start with.
Will Corcoran:I will drop the… Links in the chat, and Michael…
Will Corcoran:If you wanna take it away.
Mikhail Kalinin:Yep.
Mikhail Kalinin:Thanks, Will. So… Yeah, the first one… Was the,
Mikhail Kalinin:the fix for the edge case found by Ethan from Nimbus?
Mikhail Kalinin:This is, like, the edge case with the first block in the reconfirmation part of the spec, so that's the spec issue.
Mikhail Kalinin:It's addressed, there is a test already written to cover the such case.
Mikhail Kalinin:Great credits to Ethan for finding this out.
Mikhail Kalinin:Also, there were… a side of… the second change, the second change is about,
Mikhail Kalinin:Yeah, it's just, like, the most recent one.
Mikhail Kalinin:So… This changes the way we compute the adversarial threshold for
Mikhail Kalinin:like, the adversarial wait for the, compute and honest FFG support, for the honest FFG support that we have.
Mikhail Kalinin:It's kind of like, this PR, this change, introduces, like, a similar way of
Mikhail Kalinin:processing locations, so a similar way to is1Confirmed, method. In is1Confirmed, we have this,
Mikhail Kalinin:discount for validators who already equocated. We discount these from the adversarial weight. So basically, if, like, say 20% of letters got slashed, we assume that honest validators never slashed, and we basically subtract
Mikhail Kalinin:these 20% from the 25% of the potential adversarial weight, which basically increases the liveness of the FCR,
Mikhail Kalinin:without compromising security. So this was,
Mikhail Kalinin:from the beginning in the spec for ES1 confirmed, but it was not for this honest FFG support.
Mikhail Kalinin:And now they are similar, in that regard, so that's basically it.
Mikhail Kalinin:what's left to do is to fix tests. Some of the tests are broken by this change, but yeah, just please take a look and be aware of this change. I hope this… this is, like, one of the last changes to the spec.
Mikhail Kalinin:Except for potential issues with the spec or box, but… Yep.
Mikhail Kalinin:That's about it. There were a few changes that also landed the main branch after the previous call, and also we were, after the previous call, we were exploring
Mikhail Kalinin:Damn.
Mikhail Kalinin:The… the way of, like, reusing fork choice weights in the first confirmation rule.
Mikhail Kalinin:But after, like, some conversations with developers.
Mikhail Kalinin:We decided not to do this, and because, yeah, it's… it's not possible as is to reuse the fork choice weights, and will require some additional tweaks.
Mikhail Kalinin:And also, the positive thing is that, if the fast confirmation rule implementation is independent on the FOC choice.
Mikhail Kalinin:So these two components can be changed independently, and yeah, the work can happen in parallel. So we decided not to do this.
Mikhail Kalinin:And, yeah, this back is moving towards, like, its final state.
Mikhail Kalinin:That's it about this track.
Roberto Saltini:So, Mikai, do you mean that we…
Roberto Saltini:We can new… we can compute the fork choice… sorry, the…
Roberto Saltini:The, yeah, the fork choice waits for the fast confirmation route using
Roberto Saltini:The violence is coming from this.
Roberto Saltini:any checkpoint.
Roberto Saltini:No, not just… Not just considering the… Most recent justified checkpoint.
Mikhail Kalinin:Yes, yes.
Mikhail Kalinin:So that's… That's my take.
Mikhail Kalinin:So we can use, like, not arbitrary, but a different
Mikhail Kalinin:balance source for the fast confirmation that we use for the fork choice.
Mikhail Kalinin:This whole thing.
Roberto Saltini:I used it. Yep.
Roberto Saltini:Can reach that checkpoint that we intend to use originally, which is the… Credit has justified?
Roberto Saltini:at the beginning… at the beginning of the last slot of the previous epoch.
Mikhail Kalinin:Yep.
Roberto Saltini:Okay.
Roberto Saltini:That's good from a… Okay, algorithm point of view.
Roberto Saltini:So that's the… Ugh.
Roberto Saltini:Lion, lighthouse implementation of the first confirmation rule, implement this.
Roberto Saltini:the algorithm, as we had, like, in the paper, were usually justified from the…
Roberto Saltini:Last slot of the previous ebook.
Mikhail Kalinin:Yeah, I think so. To be more specific, it's, like, in the spec, but the spec is, like, this… yeah, the spec is very close to the paper.
Mikhail Kalinin:So, yeah, I think that implementation,
Mikhail Kalinin:I believe it uses the algorithm as…
Mikhail Kalinin:In the spec. Well, sorry, in the paper.
Roberto Saltini:Okay.
Will Corcoran:I just dropped a link to the Lighthouse implementation Roberto was referring to in the chat.
Will Corcoran:Great. Any other updates? Spec-related, testing-related, research-related?
Will Corcoran:Or discussion topics.
Will Corcoran:On the paper side, We're resuming work after a short pause last week. Tomorrow.
Will Corcoran:I will have a meeting with Roto to plan the next steps towards finalizing it. Thanks, Luca.
Mikhail Kalinin:On the testing side… we had…
Mikhail Kalinin:Yeah, this… let me link to the PR. This is the PR with the… is one confirmed function test.
Mikhail Kalinin:Made by Luca, it has a… quite good coverage.
Mikhail Kalinin:Also, currently, we are working on the…
Mikhail Kalinin:Like, rigorous testing of the cases where we need to confirm the block from the previous epoch.
Mikhail Kalinin:To… to… to remind, we have these… we have…
Mikhail Kalinin:I see a similar test suite done for the current epoch blocks. Now, the previous epoch block case
Mikhail Kalinin:Okay, all cases need to be covered.
Mikhail Kalinin:So it's like… I would say more than a hundred of tests to be… finished soon, so… Yeah.
Mikhail Kalinin:The goal is to have them done by
Mikhail Kalinin:By the end of next week, something like that.
Mikhail Kalinin:And, after this is done, it's like, it will be, like, 90% of test coverage, maybe 95% will need, probably, to try to cover some edge cases and some
Mikhail Kalinin:More than 100, yes, for this particular stuff, for this particular, previous epoch block test.
Mikhail Kalinin:So we, we currently have, like, around 100 tests.
Mikhail Kalinin:Maybe something like that.
Mikhail Kalinin:Yeah, and a good test coverage will allow us to,
Mikhail Kalinin:to say that the devnet implementation that passes all the tests, if it passes all the tests that,
Mikhail Kalinin:He'll give us some… Assurance that it's likely correct.
Will Corcoran:Great. Any other topics?
Will Corcoran:Alright, well, we might just… have, A short call today.
Will Corcoran:And… that's okay. Seems like we're making a lot of progress, on the testing.
Will Corcoran:Cover side, the research is about ready to wrap up, and on the specification side, so…
Will Corcoran:Seems like things are all moving in a positive direction, and…
Will Corcoran:yeah, I'm sure we'll start getting more client, participation as things… I know that they just hit, DevNet Zero with
Will Corcoran:ePBS.
Will Corcoran:So there's probably a lot of effort focused on that right now.
Will Corcoran:If there's nothing else, I say we call to call.
Roberto Saltini:Thank you.
Will Corcoran:Thank you.
Mikhail Kalinin:Thank you.
Julian Ma:Thank you.
Chat Logs
00:09:55
Will Corcoran:Fast confirmation: Fix is_confirmed_chain_safe when epoch(GU) < prev_epoch mkalinin/eth2.0-specs#29
Fast confirmation: Reduce adversary by slashed balance in FFG computation mkalinin/eth2.0-specs#30
00:15:30
Will Corcoran:https://github.com/sigp/lighthouse/compare/unstable...dapplion:lighthouse:fcr?expand=1
00:15:56
Luca Zanolini:On the paper side, we’re resuming work after a short pause last week. Tomorrow I have a meeting with Roberto to plan the next steps toward finalizing it.
00:16:29
Mikhail Kalinin:https://github.com/mkalinin/eth2.0-specs/pull/28
00:17:31
Will Corcoran:Did you say more than 100?
00:19:53
Mikhail Kalinin:I am seeing a decent progres from client side as well
00:20:11
Luca Zanolini:Thank you guys
Summary
9 highlights
· 2 action itemsExperimental
Summary
9 highlights · 2 action itemsExperimentalspec updates
- Edge case fix merged for first block reconfirmation (found by Ethan/Nimbus)00:09:48
- Equivocation discount now applied to FFG support computation, matching is1Confirmed behavior00:12:28
- Spec approaching final state; no major changes expected beyond bug fixes00:12:52
- Decision: FCR won't reuse fork choice weights—keeps components independent for parallel work00:13:07
testing progress
client implementation
- Lighthouse EPF implementation uses justified checkpoint from last slot of previous epoch00:14:42
research
- Paper work resuming; Roberto/Luca meeting tomorrow to plan finalization steps00:16:08