Skip to content

vote-program: keep block revenue collector in sync with node pubkey#8506

Merged
buffalojoec merged 2 commits intoanza-xyz:masterfrom
buffalojoec:vote-state-v4-block-revenue-sync
Oct 16, 2025
Merged

vote-program: keep block revenue collector in sync with node pubkey#8506
buffalojoec merged 2 commits intoanza-xyz:masterfrom
buffalojoec:vote-state-v4-block-revenue-sync

Conversation

@buffalojoec
Copy link
Copy Markdown

Problem

As per the amendment to SIMD-0185 in solana-foundation/solana-improvement-documents#369, we need to make sure the block revenue collector (a v4-only field) is kept in sync with the node pubkey.

Summary of Changes

In the processor for UpdateValidatorIdentity, add a step to also update the block revenue collector.

@mergify
Copy link
Copy Markdown

mergify Bot commented Oct 16, 2025

The Firedancer team maintains a line-for-line reimplementation of the
native programs, and until native programs are moved to BPF, those
implementations must exactly match their Agave counterparts.
If this PR represents a change to a native program implementation (not
tests), please include a reviewer from the Firedancer team. And please
keep refactors to a minimum.

Comment on lines +358 to +361
fn set_block_revenue_collector(&mut self, _collector: Pubkey) {
// No-op for v3: field does not exist.
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I know this looks weird, but I intentionally didn't tuck the syncing into VoteStateV4::set_node_pubkey because:

  • We will clean up impl VoteStateHandle for VoteStateV3 once the feature is active and the target version is always v4
  • We will need to decouple the setting of block revenue collector anyway

@buffalojoec buffalojoec marked this pull request as ready for review October 16, 2025 03:22
@buffalojoec buffalojoec requested a review from jstarry October 16, 2025 03:23
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.1%. Comparing base (a788b28) to head (b9b9774).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #8506   +/-   ##
=======================================
  Coverage    83.1%    83.1%           
=======================================
  Files         848      848           
  Lines      368475   368558   +83     
=======================================
+ Hits       306495   306590   +95     
+ Misses      61980    61968   -12     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@buffalojoec buffalojoec added this pull request to the merge queue Oct 16, 2025
Merged via the queue into anza-xyz:master with commit 292f5dc Oct 16, 2025
43 checks passed
@buffalojoec buffalojoec deleted the vote-state-v4-block-revenue-sync branch October 16, 2025 07:20
rustopian pushed a commit to rustopian/agave that referenced this pull request Nov 20, 2025
…nza-xyz#8506)

* vote-program: keep block revenue collector in sync with node pubkey

* add test
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.

3 participants