Skip to content

Upgrade to agave v2.2.0#85

Open
i1i1 wants to merge 1009 commits intobase-agave-v1.18from
upgrade/v2.2.0
Open

Upgrade to agave v2.2.0#85
i1i1 wants to merge 1009 commits intobase-agave-v1.18from
upgrade/v2.2.0

Conversation

@i1i1
Copy link
Copy Markdown
Contributor

@i1i1 i1i1 commented Oct 22, 2025

Refactoring and minor things:

  • solana-sdk moved to separate repo
  • better caching for accounts
  • optimizing merkle tree shreds
  • enables github actions CI!

behzadnouri and others added 30 commits January 19, 2025 22:15
…lockstore (#4523)

When inserting own shreds during leader slots, we shouldn't try to
recover shreds. If shreds are not to be recovered we don't need the
retransmit channel either. Otherwise, if we are inserting shreds from
another leader, we need to try erasure recovery and retransmit recovered
shreds.

So Reed-Solomon cache and retransmit-sender should only be present
together. The commit makes this explicit by adding

    should_recover_shreds: Option<(
        &ReedSolomonCache,
        &Sender<Vec</*shred:*/ Vec<u8>>>, // retransmit_sender
    )>,

argument to Blockstore::do_insert_shreds.
* remove solana-program from clap-utils

* missing feature activation
* remove solana-program from solana-vote

* trigger ci

* trigger ci
Legacy shreds are discarded on all clusters:
https://github.com/anza-xyz/agave/blob/91d0d0cae/ledger/src/shred.rs#L1275-L1277

Removing the branch to recover legacy shreds would allow to further
simplify and optimize shreds recovery code.
* remove solana-program from address-lookup-table-program

* sort deps
* build(deps): bump borsh from 1.5.4 to 1.5.5

Bumps [borsh](https://github.com/near/borsh-rs) from 1.5.4 to 1.5.5.
- [Release notes](https://github.com/near/borsh-rs/releases)
- [Changelog](https://github.com/near/borsh-rs/blob/master/CHANGELOG.md)
- [Commits](near/borsh-rs@borsh-v1.5.4...borsh-v1.5.5)

---
updated-dependencies:
- dependency-name: borsh
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update all Cargo files

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…om 0.2.0 to 0.2.1 (#4549)

* build(deps): bump spl-token-confidential-transfer-proof-extraction

Bumps [spl-token-confidential-transfer-proof-extraction](https://github.com/solana-program/token-2022) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/solana-program/token-2022/releases)
- [Commits](https://github.com/solana-program/token-2022/compare/js@v0.2.0...js@v0.2.1)

---
updated-dependencies:
- dependency-name: spl-token-confidential-transfer-proof-extraction
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update all Cargo files

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Ingesting shreds unnecessarily allocates a HashSet to remove invalid
repair-meta:
https://github.com/anza-xyz/agave/blob/0f56076a2/core/src/window_service.rs#L250

and a separate vector for repair flags:
https://github.com/anza-xyz/agave/blob/0f56076a2/core/src/window_service.rs#L338-L341

Similarly Blockstore::insert_shreds (called in broadcast-stage to insert
own shreds during leader slots), allocates a vector for repair flags:
https://github.com/anza-xyz/agave/blob/0f56076a2/ledger/src/blockstore.rs#L1381

All can be avoided if blockstore insert_shreds api are updated to take
an argument of type

    shreds: impl ExactSizeIterator<Item = (Shred, /*is_repaired:*/ bool)>,
* build(deps): bump semver from 1.0.24 to 1.0.25

Bumps [semver](https://github.com/dtolnay/semver) from 1.0.24 to 1.0.25.
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](dtolnay/semver@1.0.24...1.0.25)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update all Cargo files

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump indexmap from 2.7.0 to 2.7.1

Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.7.0 to 2.7.1.
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md)
- [Commits](indexmap-rs/indexmap@2.7.0...2.7.1)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update all Cargo files

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
`sender` and `receiver` are a bit generic and reduces readability.
Numeric types already implement

    fn from_{le,be}_bytes(bytes: [u8; N]) -> Self
    fn to_{le,be}_bytes(&self) -> [u8; N]

and an external dependencies is superfluous.
* Switch some functions in net-utils to tokio
* organize code better by splitting echo-client functions into a separate file
---------
Co-authored-by: Greg Cusack <greg.cusack@anza.xyz>
* add thread manager base functionality
* add park/unpark metrics collection for tokio runtimes
* support basic core affinity and priority 
* examples of use and demo of benefits

---------

Co-authored-by: Alex Pyattaev <alex.pyattaev@anza.xyz>
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
Co-authored-by: kirill lykov <lykov.kirill@gmail.com>
* Converted StableVec to use u64 virtual addresses rather than physical

* Removed an extraneous comment

* Cleaned up the use statement

* Update stable_vec.rs to fix a non-building test after field rename
* extract loader-v3-interface

* fix doctests

* update path in doc comment

Co-authored-by: Jon C <me@jonc.dev>

---------

Co-authored-by: Jon C <me@jonc.dev>
yihau and others added 17 commits February 12, 2025 22:42
ci: use ubuntu-22.04 github runner (#4934)

(cherry picked from commit abb639b)

Co-authored-by: Yihau Chen <yihau.chen@icloud.com>
ci: use ssl 3.4.1 for Windows (#4944)

(cherry picked from commit 130b1d2)

Co-authored-by: Yihau Chen <yihau.chen@icloud.com>
…954)

Scheduler: earlier fee check on receive (#4865)

(cherry picked from commit 81d19c0)

Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
…961)

* validator: Deprecate etcd tower storage (#4956)

All etcd configuration arguments are deprecated, and with etcd
deprecated, --tower-storage will also be deprecated as "file" would be
the only remaining option

(cherry picked from commit 1ed4f17)

# Conflicts:
#	validator/src/commands/run/args.rs

* resolve merge issue

---------

Co-authored-by: steviez <steven@anza.xyz>
…#4969) (#4972)

sdk: Bump all SDK crates for relaxed dependencies (#4969)

* sdk: Bump all SDK crates for relaxed dependencies

#### Problem

The SDK relaxed its internal dependencies in
anza-xyz/solana-sdk#27, but the monorepo is
still using the pinned versions.

#### Summary of changes

Update all SDK crates to their next version. For almost all of them,
that's v2.2.1

Otherwise, the address-lookup-table-interface crates goes to v2.2.2, and
the loader-v3-interface goes to v3.0.0 due to a breaking change.

To keep this PR small, the logic changes required for v3.0.0 are not
implemented, and must be done in follow-up work, which essentially means
reapplying the changes from #4661.

* Return errors instead of panicking

(cherry picked from commit a1ed2b1)

Co-authored-by: Jon C <me@jonc.dev>
@i1i1 i1i1 force-pushed the upgrade/v2.2.0 branch 3 times, most recently from ba3de1e to 272998a Compare October 22, 2025 15:29
@i1i1 i1i1 marked this pull request as ready for review October 29, 2025 13:58
@i1i1 i1i1 changed the base branch from upgrade/v2.1.0 to base-agave-v1.18 November 24, 2025 10:32
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.