Skip to content

Conversation

@carllin
Copy link
Contributor

@carllin carllin commented Mar 5, 2025

Problem

Alpenglow doesn't need to rely on AggregateCommitmentService to notify rpc of new roots

Summary of Changes

  1. All alpenglow roots are supermajority roots and OC
  2. No aggregation is necessary, directly notify rpc of new roots

Fixes #

.then_some(r_bank_forks.get(maybe_new_root).unwrap())
};
if let Some(new_root_bank) = maybe_new_root_bank {
let new_root = new_root_bank.slot();
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: new_root-> new_root_slot ?

rpc_subscriptions.notify_subscribers(CommitmentSlots {
slot: new_root,
root: new_root,
highest_confirmed_slot: new_root,
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there any value advertising slots who got notarize cert but not finalization cert? I'm mostly worried about the case where we would do async execution later, so that finalization may be several slots away from notarization, but I guess for now this is fine.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

notarization doesn't guarantee finality, so it's not safe to advertise it under OC/root levels of finality

We can introduce another finality level in the future for this if desired

return;
}
rpc_subscriptions.notify_subscribers(CommitmentSlots {
slot: new_root,
Copy link
Contributor

Choose a reason for hiding this comment

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

slot should be the current slot right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In today's commitment_service, it's equivalent to the slot we just voted on to make the new root:

let mut new_block_commitment = BlockCommitmentCache::new(
            block_commitment,
            aggregation_data.total_stake,
            CommitmentSlots {
                slot: aggregation_data.bank.slot(),
                root: aggregation_data.root,
                highest_confirmed_slot: aggregation_data.root,
                highest_super_majority_root,
            },
        );

which in this case, we voted on the the new root

@carllin carllin merged commit 9672cd0 into anza-xyz:master Mar 6, 2025
7 checks passed
bw-solana pushed a commit to bw-solana/alpenglow that referenced this pull request Aug 1, 2025
bw-solana pushed a commit to bw-solana/alpenglow that referenced this pull request Aug 1, 2025
bw-solana pushed a commit to bw-solana/alpenglow that referenced this pull request Aug 1, 2025
bw-solana pushed a commit to bw-solana/alpenglow that referenced this pull request Aug 1, 2025
bw-solana pushed a commit to bw-solana/alpenglow that referenced this pull request Aug 1, 2025
bw-solana pushed a commit to bw-solana/alpenglow that referenced this pull request Aug 1, 2025
bw-solana pushed a commit to bw-solana/alpenglow that referenced this pull request Aug 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants