FCR Optimization part1: Speed up fast confirmation with memoization and one-pass chain scoring - #11212
Open
zilm13 wants to merge 5 commits into
Open
FCR Optimization part1: Speed up fast confirmation with memoization and one-pass chain scoring#11212zilm13 wants to merge 5 commits into
zilm13 wants to merge 5 commits into
Conversation
Memoize the per-slot calculator queries (slot committees and ranges, adversarial weight and safety threshold per balance source, current target score, honest FFG support, equivocator set) and score a whole chain segment in a single pass over the active validator set instead of one pass per block. Add a JMH benchmark covering both scoring paths. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
zilm13
force-pushed
the
fcr-optimization
branch
from
September 1, 2026 18:17
b97bae1 to
fdc3076
Compare
2 tasks
zilm13
marked this pull request as ready for review
September 1, 2026 19:13
rolfyone
reviewed
Sep 3, 2026
Comment on lines
1068
to
+1071
| int i = index; | ||
| while (UInt64.valueOf(i).isGreaterThan(targetSlot)) { | ||
| while (UInt64.valueOf(chainSlots.get(i)).isGreaterThan(targetSlot)) { | ||
| i--; | ||
| if (i < 0) { |
Contributor
There was a problem hiding this comment.
we're comparing to uint64, converting etc, im surprised this isn't just using UInt64 as the counter, surely the constant conversion like this s inefficient...
- add reset of shared resources in setup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Description
Numbers before, Macbook M4 Max, Mainnet:
epoch transition: 18-20 seconds
1 slot: 300-400ms
Numbers after part1:
epoch transition: 2 seconds
1 slot: 300-400ms
First part mainly addresses slow epoch transition when we do several runs on the same block inside calculator.
Speed up fast confirmation with memoization and one-pass chain scoring
Memoize the per-slot calculator queries (slot committees and ranges,
adversarial weight and safety threshold per balance source, current
target score, honest FFG support, equivocator set) and score a whole
chain segment in a single pass over the active validator set instead of
one pass per block. Add a JMH benchmark covering both scoring paths.
Fixed Issue(s)
Documentation
doc-change-requiredlabel to this PR if updates are required.Changelog