Skip to content

Reapply "deps: Bump all sdk and spl crates to v3 compatibility (#7492…#7592

Merged
joncinque merged 2 commits intoanza-xyz:masterfrom
joncinque:bump-sdk-the-reckoning
Aug 20, 2025
Merged

Reapply "deps: Bump all sdk and spl crates to v3 compatibility (#7492…#7592
joncinque merged 2 commits intoanza-xyz:masterfrom
joncinque:bump-sdk-the-reckoning

Conversation

@joncinque
Copy link
Copy Markdown

…)" (#7556)

This reverts commit f149dec.

Problem

Agave should be using the SDK v3 crates before branching its own v3, for our own sanity. There's more information at #7492 and https://github.com/orgs/anza-xyz/projects/27

Summary of Changes

Pretty much reapplying the commit from #7492, and fixing a few merge conflicts:

  • solana-sbpf pulled in differently in Cargo.toml
  • some changes around TransactionContext
  • fix up the conversion between the snapshot's instruction error and the sdk's instruction error

@joncinque joncinque requested a review from buffalojoec August 19, 2025 16:51
@joncinque joncinque requested review from a team as code owners August 19, 2025 16:51
@mergify
Copy link
Copy Markdown

mergify Bot commented Aug 19, 2025

If this PR represents a change to the public RPC API:

  1. Make sure it includes a complementary update to rpc-client/ (example)
  2. Open a follow-up PR to update the JavaScript client @solana/kit (example)

Thank you for keeping the RPC clients in sync with the server API @joncinque.

@mergify
Copy link
Copy Markdown

mergify Bot commented Aug 19, 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.

@mergify
Copy link
Copy Markdown

mergify Bot commented Aug 19, 2025

For your information, the zk-keygen and zk-sdk directories are
scheduled to be relocated to solana-program/zk-elgamal-proof in a
separate repository. Additionally, the zk-token-sdk directory will
be removed. Please take these upcoming changes into account when
making modifications.

@willhickey
Copy link
Copy Markdown

I have this PR running on 67.213.119.89 against testnet. Seems good so far

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Aug 19, 2025

Codecov Report

❌ Patch coverage is 84.97577% with 93 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.4%. Comparing base (be4d14f) to head (ac427e5).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #7592    +/-   ##
========================================
  Coverage    83.4%    83.4%            
========================================
  Files         813      813            
  Lines      365417   365537   +120     
========================================
+ Hits       304871   304986   +115     
- Misses      60546    60551     +5     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@joncinque
Copy link
Copy Markdown
Author

Thanks @willhickey !

@joncinque joncinque force-pushed the bump-sdk-the-reckoning branch from e3bcb7e to 65ee12c Compare August 19, 2025 19:37
feature = "frozen-abi",
derive(AbiEnumVisitor, AbiExample),
frozen_abi(digest = "9KN64WUT7XDYj9zZopS1hztGyAP9y4N4QznsyC4mqsGs")
frozen_abi(digest = "FGw38CCo7vg24qxe7TfGP11WdX2poe6T55BGN1r3XMFA")
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

why does the hash change here? Was the hash algo changed somehow?

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.

RepairRequestHeader contains a Pubkey, which is now just a type alias for Address. The name change is typically enough to change the frozen abi digest.

See some of the changes that were made in the PR for Address anza-xyz/solana-sdk#243

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

wow I did not expect frozen_abi to care about filed names (as they are not part of the ABI). But ok I guess this is fine then=)

Comment thread gossip/src/crds_value.rs Outdated

#[test]
fn test_serialize_round_trip() {
// Unfortunately doing `Keypair::new_from_array(rng.gen())` gives
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

is it maybe preferable to let the code run and save the new hash values where they are checked? This lovely helper is not useful long-term.

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'm happy to do that if you prefer! I wanted the code to produce exactly the same results, also as a check to make sure that the rand change was done correctly in the sdk.

Just let me know either way.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I think now that we know the sdk change is ok (since test passes now) it is ok to use the new API directly and update the hashes. Or it could be a separate PR - up to you.

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.

Updated the test in ac427e5

Lichtso
Lichtso previously approved these changes Aug 20, 2025
Copy link
Copy Markdown

@brooksprumo brooksprumo left a comment

Choose a reason for hiding this comment

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

Approving for the changes to the serde/snapshot status cache.

InstructionError::Immutable => Self::Immutable,
InstructionError::IncorrectAuthority => Self::IncorrectAuthority,
InstructionError::BorshIoError(_) => Self::BorshIoError(String::new()),
InstructionError::BorshIoError => Self::BorshIoError(String::new()),
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

👍

Copy link
Copy Markdown

@alexpyattaev alexpyattaev left a comment

Choose a reason for hiding this comment

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

LGTM on gossip, sigverify shreds and repair serialization.

@joncinque joncinque merged commit 44924ba into anza-xyz:master Aug 20, 2025
54 checks passed
@joncinque joncinque deleted the bump-sdk-the-reckoning branch August 20, 2025 20:07
@joncinque
Copy link
Copy Markdown
Author

Thanks for the quick reviews everyone!

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.

6 participants