-
Notifications
You must be signed in to change notification settings - Fork 327
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
banking_stage: do not insert legacy vote ixs, refactor & unstaked #2888
Conversation
The Firedancer team maintains a line-for-line reimplementation of the |
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. |
sdk/program/src/vote/instruction.rs
Outdated
@@ -191,6 +191,10 @@ impl VoteInstruction { | |||
) | |||
} | |||
|
|||
pub fn is_tower_sync(&self) -> bool { |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
sdk/program/src/vote/instruction.rs
Outdated
@@ -191,6 +191,10 @@ impl VoteInstruction { | |||
) | |||
} | |||
|
|||
pub fn is_tower_sync(&self) -> bool { |
There was a problem hiding this comment.
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?
8f5e62c
to
82a0171
Compare
) * 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
…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]>
…za-xyz#2888) * banking_stage: do not insert legacy vote ixs, refactor & unstaked * pr feedback: use matches instead of separate fn
Problem
The feature
deprecate_legacy_vote_ixs
disallows all previous vote instructions in the vote program other than theTowerSync
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.