Skip to content

Conversation

@mraszyk
Copy link
Contributor

@mraszyk mraszyk commented Jan 6, 2026

This PR makes consensus (certifier) poll the state manager’s method list_state_heights_to_certify to learn which heights are requested to be (optimistically) certified in advance (before DSM catches up to compute their corresponding states). The consensus certifier attempts to deliver a certification for every such height (using the existing method StateManager::deliver_state_certification) if available and aggregates/validates certifications for those heights.

@github-actions github-actions bot added the feat label Jan 6, 2026
@mraszyk

This comment was marked as resolved.

@mraszyk mraszyk force-pushed the mraszyk/optimized-node-catch-up branch from 26af951 to 4d31366 Compare February 3, 2026 10:16
@mraszyk mraszyk changed the base branch from master to mraszyk/no-state-hashing-during-catchup February 3, 2026 10:16
@mraszyk mraszyk changed the title feat: efficient node catch-up on subnets with long DSM rounds feat: no state hashing during catch-up (consensus) Feb 3, 2026
Comment on lines +194 to +196
.list_state_heights_to_certify()
.into_iter()
.filter(|height| !deliver_state_certification(*height))
Copy link
Contributor

@eichhorl eichhorl Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it guaranteed that the view of both list_... functions is consistent? Or could it happen that the same height appears in both lists?

@@ -148,29 +174,12 @@ impl<T: CertificationPool> PoolMutationsProducer<T> for CertifierImpl {
.list_state_hashes_to_certify()
.into_iter()
.filter_map(|(height, hash, witness)| {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this should also be filter instead?

Suggested change
.filter_map(|(height, hash, witness)| {
.filter(|(height, hash, witness)| {

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants