Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

banking_stage: do not insert legacy vote ixs, refactor & unstaked #2888

Merged

Conversation

AshwinSekar
Copy link

Problem

The feature deprecate_legacy_vote_ixs disallows all previous vote instructions in the vote program other than the TowerSync variants. Banking stage should also filter these out.

Summary of Changes

When the feature is active, do not insert votes with these legacy instructions, also some small refactoring of the weighted shuffle and unstaked check.

Copy link

mergify bot commented Sep 10, 2024

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.

@AshwinSekar AshwinSekar added the v2.0 Backport to v2.0 branch label Sep 11, 2024
Copy link

mergify bot commented Sep 11, 2024

Backports to the beta branch are to be avoided unless absolutely necessary for fixing bugs, security issues, and perf regressions. Changes intended for backport should be structured such that a minimum effective diff can be committed separately from any refactoring, plumbing, cleanup, etc that are not strictly necessary to achieve the goal. Any of the latter should go only into master and ride the normal stabilization schedule. Exceptions include CI/metrics changes, CLI improvements and documentation updates on a case by case basis.

@@ -191,6 +191,10 @@ impl VoteInstruction {
)
}

pub fn is_tower_sync(&self) -> bool {
Copy link
Author

Choose a reason for hiding this comment

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

@lidatong FYI we add a function here in case you need to replicate it on the FD side.

Choose a reason for hiding this comment

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

if these instructions need to be 1:1 for FD's implementation, could we just directly use match where we need in our client? It's not really part of the program, just our filtering logic, right?

Copy link
Author

Choose a reason for hiding this comment

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

fair point, then we don't have the maintenance burden of exposing it as part of the public API either.

apfitzge
apfitzge previously approved these changes Sep 11, 2024
@@ -191,6 +191,10 @@ impl VoteInstruction {
)
}

pub fn is_tower_sync(&self) -> bool {

Choose a reason for hiding this comment

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

if these instructions need to be 1:1 for FD's implementation, could we just directly use match where we need in our client? It's not really part of the program, just our filtering logic, right?

@AshwinSekar AshwinSekar merged commit 1334fb5 into anza-xyz:master Sep 11, 2024
40 checks passed
@AshwinSekar AshwinSekar deleted the deprecate-legacy-banking-stage branch September 11, 2024 19:28
mergify bot pushed a commit that referenced this pull request Sep 11, 2024
)

* banking_stage: do not insert legacy vote ixs, refactor & unstaked

* pr feedback: use matches instead of separate fn

(cherry picked from commit 1334fb5)

# Conflicts:
#	core/src/banking_stage/latest_unprocessed_votes.rs
AshwinSekar added a commit that referenced this pull request Sep 30, 2024
…ed (backport of #2888) (#2901)

* banking_stage: do not insert legacy vote ixs, refactor & unstaked (#2888)

* banking_stage: do not insert legacy vote ixs, refactor & unstaked

* pr feedback: use matches instead of separate fn

(cherry picked from commit 1334fb5)

# Conflicts:
#	core/src/banking_stage/latest_unprocessed_votes.rs

* fix conflicts

* rekey feature to indicate it must not be activated

---------

Co-authored-by: Ashwin Sekar <[email protected]>
Co-authored-by: Ashwin Sekar <[email protected]>
ray-kast pushed a commit to abklabs/agave that referenced this pull request Nov 27, 2024
…za-xyz#2888)

* banking_stage: do not insert legacy vote ixs, refactor & unstaked

* pr feedback: use matches instead of separate fn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v2.0 Backport to v2.0 branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants